Собственный объект наследник от AcDbEntity

Автор Тема: Собственный объект наследник от AcDbEntity  (Прочитано 7007 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн knightrockerАвтор темы

  • ADN OPEN
  • Сообщений: 31
  • Карма: 1
Здравствуйте форумчане.
В процессе изучения ObjectARX, наткнулся на задачу создания собственного объекта на базе AcDbEntity.
Для изучения использую книгу Полещука "Программирование для Autocad 2013 - 2015"
В рамках книги есть третья глава в которой имеется описание данного процесса и соответственно пример.
Именно его я и захотел импортировать в свой проект, который создал "ручками", а не использовать готовый пример из книги, в силу громоздкости.
Подскажите, почему после загрузки моего arx-модуля, при вызове команды SHIP_DRAW и исполнении функции draw_ship (при том, что я внёс все необходимые параметры)
объект Ship не добавляется на чертёж ?

Файлы с проектом прикрепил в Архиве
Среды: MSVS 2015. Autocad 2017. Platform x64.

Отмечено как Решение knightrocker 11-06-2018, 15:56:09

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
а под дебагом посмотреть?
Код - C++ [Выбрать]
  1. if ((es = Blok->appendAcDbEntity(pEnt)) != Acad::eOk)
возвращает eNoClassId.
короче говоря, в app01.cpp нада добавить пару строчек
Код - C++ [Выбрать]
  1. extern "C" AcRx::AppRetCode
  2. acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
  3. {
  4.   switch (msg)
  5.   {
  6.     case AcRx::kInitAppMsg:
  7.       acrxUnlockApplication(pkt);
  8.       acrxRegisterAppMDIAware(pkt);
  9.       initApp();
  10.   Ship::rxInit(); // вот эту строчку
  11.   acrxBuildClassHierarchy();// и эту
  12.       break;
  13. ...

ну и еще в функции getModelSpace открывается дважды getBlockTable, но закрывается один раз

Цитировать
В процессе изучения ObjectARX
А где, если не секрет именно так учат создавать новые проекты?

Оффлайн knightrockerАвтор темы

  • ADN OPEN
  • Сообщений: 31
  • Карма: 1
А где, если не секрет именно так учат создавать новые проекты?

Так как никто не обучает, и всё, что дали в зубы это SDK ... то всё это результат исключительно самообучения.
А выродил именно такой метод создания проекта я в результате сложения двух вещей:

1) Примера из SDK
\Autodesk\Autodesk_ObjectARX_2017_Win_64_and_32_Bit\samples\com\AsdkMfcComSamp_dg

2) Куска из первой главы Николая Полещука "Программирование для Autocad 2013 - 2015"
Где есть пошаговая инструкция для создания собственного проекта с нуля
https://zapdoc.site/poleshuk-nn-programmirovanie-dlya-autocad.html

а под дебагом посмотреть?
Только только заставил проект под дебагом запускаться, до того, что-то с настройками было не так.
Сильнейше Благодарю за ответ. Помогло!

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Так как никто не обучает, и всё, что дали в зубы это SDK ... то всё это результат исключительно самообучения.
есть такая штука, называется ObjectARX Wizard. ставится поверх студии и добавляет шаблон создания проектов именно для arx и dbx.
вот за пару секунд нашел видео правда китайское, но сути это не меняет :)


хз, на мой взгляд попроще будет, да и ручного ввода буковок слегка меньше :)