Перейти к публикации

BMIDE CDT - custom extension


alexkr

Рекомендованные сообщения

Всем привет.

Уже всю голову сломал, перекурил документ Business Modeler IDE Best Practices Guide (стр 220-226 и не только), выучил и повторил все примеры от https://www.learnteamcenter.com/post/building-custom-extension-with-example до https://teamcenter-open-gate.blogspot.com/2016/12/teamcenter-itk-api-bom-creation-with.html

 

И даже раскопал пример scribd

 

В общем, хочу сделать проект с кастомным обработчиком, выполняемым  PostAction.

.

Причем именно в BMIDE.

 

TC10.1

VC10

 

cсоздал проект

настроил Build, path and symbols

создал library (активная)

создал 'extension (активное)

добавил extension availibility 

перешел на объект, к операции настроил extension attachment

выполнил Code Generation - C++ Classes

 

в Navigation tab появляется src/server/...

там 3 файла, среди который один схх, второй рхх

 

В схх файле создается метод-заглушка

#include...
int MyExtension(METHOD_message_t * msg, va_list args)

{

return 0;

}

 

все шикарно.

но если добавляю код

#include <fclasses/tc_string.h>
#include <tc/tc.h>
#include <tccore/grm.h>
#include <tccore/aom.h>
#include <tccore/aom_prop.h>
#include <tccore/grm_msg.h>
#include <property/prop.h>
#include <fclasses/tc_stdio.h>
#include <fclasses/tc_stdlib.h>
#include <fclasses/tc_string.h>
#include <fclasses/tc_stdarg.h>
#include <fclasses/iman_stdarg.h>
#include <iostream>
#include <stdarg.h>
using namespace std;

int MyExtension(METHOD_message_t * msg, va_list args)

{
printf("Hello, this is first message");
return 0;

}

Project - Build Project

Все ОК

Упаковываю проект, устанавливаю

 

через cmd VS проверяю dumpbin /EXPORTS %path%\%mylibrary%.bin

все ок - выводит имя метода (правда во всех примерах с _перед именем, а у меня без _ - но и в hxx тоже  extern без _)

 

Выполняю действия (например, создал проект по реакции PostAction на Item - create)

в консоль ничего не выводится.

 

Пробовал повторить проект с https://www.learnteamcenter.com/post/building-custom-extension-with-example

вместо DesignItemRevision взял ItemRevision (n3_property1)

DocumentRevision (n3_DocProperty1)

 

при специальной вставке (IMAN-SPecification) DocumentRevision в ItemRevision с должно выполняться

ItemRevision.n3_property1 = DocumentRevision.n3_DocProperty1 (да, это не из С++, я раньше только на С# немного программировал)

 

#include <N3library/N3extenstion.hxx>
#include <fclasses/tc_string.h>
#include <tc/tc.h>
#include <tccore/grm.h>
#include <tccore/aom.h>
#include <tccore/aom_prop.h>
#include <tccore/grm_msg.h>
#include <property/prop.h>
#include <fclasses/tc_stdio.h>
#include <fclasses/tc_stdlib.h>
#include <fclasses/tc_string.h>
#include <fclasses/tc_stdarg.h>
#include <fclasses/iman_stdarg.h>
#include <iostream>
#include <stdarg.h>
using namespace std;

int N3extenstion( METHOD_message_t * msg, va_list args )
{
	tag_t tPObject = va_arg(args,tag_t);
	tag_t tSObject = va_arg(args,tag_t);
	char* pPropertyValue = NULL;
	AOM_ask_value_string(tSObject, "n3_DocProperty1", &pPropertyValue);
	//cout << "pPropertyValue = " + pPropertyValue;
	AOM_lock(tPObject);
	AOM_set_value_string(tPObject,"n3_property1",pPropertyValue);
	AOM_save(tPObject);
	AOM_unlock(tPObject);
	std::cout << "my first console message";
 
	return 0;

}

 

и ничего не происходит

Ни cout, ни printf не выводят в консоль ничего. 

 

еще одна странность - раз 6 Build проекта сделаешь без изменений - пойдет какая нибудь ошибка, которую исправить нельзя, даже удали код (привязана к строке, удаление кода не удаляет ошибку)

 

P.S. Как понял - при разработке через BMIDE кастомные бибилотеки, экстеншены автоматом регитсрируются. Т.е. прописывать допом в preferences не нужно.

 

Может кто имел опыт - подскажет. Буду признателен. 

 

 

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts

Соберите сами свой бизнес моделлер 

т.е возьмите правильной версии чистый эклипс с cdt 

а потом впрысните туда бмидешные жарки, в манах описано 

Ссылка на сообщение
Поделиться на других сайтах
11 часов назад, Krusty сказал:

Соберите сами свой бизнес моделлер 

т.е возьмите правильной версии чистый эклипс с cdt 

а потом впрысните туда бмидешные жарки, в манах описано 

 

т.е. если взять дистриб ТС10.1, из него поставить также BMIDE и установить VC 10, то даже при правильных настройках и безошибочной сборке проекта кастомный код работать не будет?

 

P.S.

Пошел изучать 

Business Modeler IDE Guide

Server_Customization_Best_Practices_Guide

Business Modeler IDE Best Practices Guide

 

в Business Modeler IDE Guide

есть такой раздел

Цитата

Install the Business Modeler IDE to an existing Eclipse environment

 

я подозреваю, это оно :-)

Ссылка на сообщение
Поделиться на других сайтах

Поделюсь результатами

1. BMIDE нормально работает из коробки (по крайней мере ТС 10.1.6)

Просто установить, установить VS2010 SP1

Создать проект, создать свою библиотеку, экстеншн

 

2. А вот где писать код (казалось бы в Impl - читаем Server Customization Programmer's Guide )

image.png

 

image.png

 

и вот вопрос

после генерации у нас есть 

srv/server

 

а есть 

Generated Source

 

причем в srv/server лежит шаблон  Impl файла.

Казалось бы - его кастомизируй и дело в шляпе.

 

Но какие я туда алгоритмы не загонял - не работает.

 

даже std::cout ничего не выводит

 

А вот наблюдение - если Build без ошибки (именно в части кода), то проект устанавливается. Я подозреваю что дело не в BMIDE и его варианте установке, а в "прокладке" - нужно как кто правильно логику тестовую хотя бы реализовать

буду дальше осваивать.

 

Разберусь во всем - дам инструкцию :-)

 

Ссылка на сообщение
Поделиться на других сайтах
  • 8 месяцев спустя...
01.03.2023 в 17:54, alexkr сказал:

Поделюсь результатами

1. BMIDE нормально работает из коробки (по крайней мере ТС 10.1.6)

Просто установить, установить VS2010 SP1

Создать проект, создать свою библиотеку, экстеншн

 

2. А вот где писать код (казалось бы в Impl - читаем Server Customization Programmer's Guide )

image.png

 

image.png

 

и вот вопрос

после генерации у нас есть 

srv/server

 

а есть 

Generated Source

 

причем в srv/server лежит шаблон  Impl файла.

Казалось бы - его кастомизируй и дело в шляпе.

 

Но какие я туда алгоритмы не загонял - не работает.

 

даже std::cout ничего не выводит

 

А вот наблюдение - если Build без ошибки (именно в части кода), то проект устанавливается. Я подозреваю что дело не в BMIDE и его варианте установке, а в "прокладке" - нужно как кто правильно логику тестовую хотя бы реализовать

буду дальше осваивать.

 

Разберусь во всем - дам инструкцию :-)

 

 

Добрый день. Удалось разобрать до конца в итоге?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • TVM
      Для общего развития интересовался. И на предложение, спроектировать крышечку - там все просто, не ведусь. 
    • Gorich
    • Нанософт разработка
      Одним из эффективных способов осуществления строительного надзора является использование результатов лазерного сканирования с построением 3D-моделей, что дает наиболее полную информацию о строительных объектах с привязкой к пространственным, инфраструктурным и центральным инженерным коммуникациям. Институт «Сибгипробум», активно работающий над совершенствованием мониторинга и созданием цифровых двойников, использует комбинацию технологий «Платформа nanoCAD + ReClouds» как бесшовную инженерную среду для проектирования и для работы с облаками точек. Комплексную поддержку при внедрении программных решений предоставила компания «Бюро САПР» – премьер- и фокус-партнер компании «Нанософт» по направлениям «Конструкции», «Инженерия» и «Землеустройство».   О компании АО «Сибгипробум» – институт, на протяжении 65 лет специализирующийся в области проектирования предприятий лесной и целлюлозно-бумажной промышленности, объектов глубокой химико-механической переработки древесины, а также разрабатывающий проекты экологических и энергетических объектов. В проектной деятельности институт активно использует технологии лазерного сканирования и информационного моделирования. Исходная ситуация ·        Отсутствие возможности оперативного повсеместного контроля строительства на промплощадке. ·        Отсутствие актуальной трехмерной модели объекта, которую в дальнейшем можно было бы сопоставить с облаком точек. ·        Сжатые сроки, которые не позволяли создать трехмерную модель. Задачи цифрового мониторинга ·        Поиск изменений между отчетными периодами. ·        Подсчет объемов монтажа. ·        Поиск пространственно-временных коллизий. Сравнение облака точек в двух отчетных периодах на графике строительства – S-кривой. Красным подсвечено то, что изменено (это было сделано на другой платформе)   Оптимальное технологическое решение можно выбрать в зависимости от степени сложности точечной задачи в рамках цифрового мониторинга. Продемонстрируем это на конкретных примерах. Прикладная задача 1: проверка проектного положения монтируемого оборудования и конструкций. Выбранная технология: Платформа nanoCAD для совмещения 2D-чертежей с облаком точек. Алгоритм работы технологии: загрузка исходного облака точек формата LAS в nanoCAD импортом NPC → создание удобной ПСК для сравнения облака точек в нужном ракурсе → копирование чертежа и совмещение по «точкам доверия» (например, по колоннам здания) → создание сечения → поиск отклонений. Полученный прикладной результат: разрез на определенной отметке показал отклонение по колоннам здания, из-за чего стена построена «криво». Благодаря этим данным авторский надзор перепроверил расчетные значения и скорректировал решения. В результате эту стену пришлось укреплять дополнительными металлоконструкциями. Плюсы и минусы технологии Плюсы: Минусы: ·        не требуется трехмерная модель; ·        простая технология, которую может освоить каждый; ·        низкие требования к аппаратному обеспечению; ·        низкая стоимость контроля проектных решений без выезда на площадку. ·        трудозатратно, если требуется проверить несколько разных разделов в одной точке; ·        проверка происходит в рамках одного сечения; ·        каждый раз в новом месте проверки требуется совмещение чертежа и облака точек.     Поиск отклонений в конструкциях путем совмещения 2D-чертежей с облаком точек в Платформе nanoCAD   Прикладная задача 2: анализ деформации оборудования – цилиндрической печи. Выбранная технология: ReClouds для сравнения облака точек печи с ее 3D-моделью. Алгоритм: загрузка исходного облака точек (в формате LAS) и цилиндра, выполненного в виде 3D-солида, равного диаметру печи → совмещение 3D-моделей → использование команды ReClouds Сравнение → побор опытным путем радиуса отклонения (вылет точки от нормативного положения) → создание градиентного графика отклонений → поиск отклонений. Полученный прикладной результат: выявлены отклонения трубы от нормативного положения: вмятина и провисание. Наглядный способ проинформировать проектировщиков и строителей, на какие участки следует обратить внимание, чтобы принять решения о ремонте, частичной или полной замене. Эффективность использования ReClouds ·        Автоматизация обработки данных 3D-сканирования. ·        Работа в знакомой инженерной среде с интуитивно понятным интерфейсом. ·        Высокая скорость работы. ·        Минимум финансовых и аппаратных ресурсов. ·        Интеграция со специализированными решениями. ·        Гибридность используемых технологий: Платформа nanoCAD и ReClouds позволяют одновременно работать с 3D-моделью, 2D-чертежом и облаком.                                         Анализ деформации цилиндрической печи с помощью ReClouds. Справа красным и зеленым цветом подсвечена сама труба   Отклонения трубы от эталонного 3D-солида: слева видна вмятина, справа – провисание трубы Мнение пользователя Павел Владимирович Коротких, главный специалист – руководитель группы отдела по цифровизации инженерных процессов и данных, АО «Сибгипробум»   «Когда геополитическая ситуация обострилась и были введены санкции, перед нашим институтом, как и перед предприятиями многих других отраслей, встала задача импортозамещения.   Много где возникали сложности, но было очень отрадно знать, что базовое инженерное ПО нам есть чем заменить. Этим ПО стала Платформа nanoCAD, которая оказалась намного большим, чем просто скопированный зарубежный продукт.   Из стандартного функционала хотелось бы отметить, во-первых, Диспетчер чертежа, который позволяет удобно осуществлять менеджмент чертежей; а, во-вторых, базовые операции при работе с облаками точек: импорт/экспорт, настройки визуализации, подрезку, сечения и т.д.   Использование ReClouds – вертикального приложения к Платформе nanoCAD – дало нам расширенные возможности взаимодействовать с облаками точек, при этом оставаясь в единой инженерной среде.   Обнадеживает активное развитие продуктов со стороны разработчика и неуклонно растущее комьюнити пользователей».   О компании «Нанософт» «Нанософт» – российский разработчик инженерного ПО: технологий автоматизированного проектирования (CAD/САПР), информационного моделирования (BIM/ТИМ) и сопровождения объектов промышленного и гражданского строительства (ПГС) на всех этапах жизненного цикла, а также сквозной цифровизации всех процессов в производстве. Миссия компании – формирование условий для массового оснащения российского рынка лицензионными, качественными и доступными отечественными программными продуктами. «Нанософт» помогает своим заказчикам достичь импортонезависимости в области инженерного ПО и нацелена на развитие собственных технологий в фокусе реальных потребностей. Это позволяет гарантированно защитить критически важную ИТ-инфраструктуру, что особенно актуально сейчас, когда западные вендоры уходят с рынка, замораживают поставки ПО и техническую поддержку. Все программные продукты компании включены в Единый реестр российских программ для электронных вычислительных машин и баз данных. Официальный сайт: nanocad.ru.  
    • Raven
      Спасибо всем кто, ответил Проблема была в том что в БД свойство было строковое не массив, хотя в бизнес-моделере свойство с таким же именем было массивом типизированых ссылок.
    • Raven
      Привет. Подскажите почему может не отображаться пункт меню Вид - Применяемость
    • Gorich
      Я вот не совсем понял где и что смотреть...а руководство по эксплуатации от станка ну так сказать такое себе...там какие то совсем основы... нашел там типо какой то общий сброс...это не сможет помочь?)
    • Viktor2004
      а как проверить шпиндель, хорошо ли он держит инструмент? Не снимая шпиндель и не разбирая его
    • gudstartup
    • gudstartup
      почитайте руководство по эксплуатации я думаю или в сервисе или в пусконаладке нажмите кнопку plc  вы сигнал определили?
    • Gorich
×
×
  • Создать...