Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: ashtone от 03-06-2023, 14:41:25

Название: Не рисуется свой объект AcDbEntity
Отправлено: ashtone от 03-06-2023, 14:41:25
Добрый день! Я пытаюсь реализовать свой объект на основе AcDbEntity. Нашел несколько примеров по которым и реализовал свой класс наследованный от AcDbEntity. Дальше пытаюсь его вывести на экран, но ничего не выводится. Конструктор объекта вызывается, а вот метод subWorldDraw нет.

Код - C++ [Выбрать]
  1.        
  2. AcDbMyLine *pMyLine = new AcDbMyLine();
  3. pMyLine->setParam(param_1, param_2);
  4.        
  5. // Откроем таблицу
  6. AcDbBlockTable *pBlockTable =NULL;
  7. acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable,AcDb::kForRead);
  8.  
  9. // Откроем пространство модели
  10. AcDbBlockTableRecord *pBockTableRecord = NULL;
  11. pBlockTable->getAt(ACDB_MODEL_SPACE,pBockTableRecord,AcDb::kForWrite);
  12. pBlockTable->close();
  13.  
  14.  
  15. // Добавим объект в пространство модели
  16. AcDbObjectId lineId = AcDbObjectId::kNull;
  17.        
  18. pBockTableRecord->appendAcDbEntity(lineId,pMyLine);
  19. pBockTableRecord->close();
  20. pMyLine->close();

В чем может быть проблема??
Название: Re: Не рисуется свой объект AcDbEntity
Отправлено: Александр Ривилис от 03-06-2023, 17:56:56
Конструктор объекта вызывается, а вот метод subWorldDraw нет.
Возможно описание subWorldDraw не соответствует стандартному из AcDbEntity.
Название: Re: Не рисуется свой объект AcDbEntity
Отправлено: ashtone от 03-06-2023, 18:26:30
Конструктор объекта вызывается, а вот метод subWorldDraw нет.
Возможно описание subWorldDraw не соответствует стандартному из AcDbEntity.

Путем проб и ошибок выяснил что проблема при добавлении в модель.
В этой строке:
       
 Nano::ErrorStatus et = pBockTableRecord->appendAcDbEntity(pMyLine);

При добавлении "et" выдает ошибку.

Насколько понимаю проблема с регистрацией класса.

П.С. Прошу строго не судить за "детские" вопросы. Изучением ObjectARX занимаюсь всего неделю.
Название: Re: Не рисуется свой объект AcDbEntity
Отправлено: Александр Ривилис от 03-06-2023, 23:09:06
Nano
Речь идет о AutoCAD или NanoCAD? NanoCAD на этом форуме не обсуждается.
Название: Re: Не рисуется свой объект AcDbEntity
Отправлено: ashtone от 04-06-2023, 00:02:02
Nano
Речь идет о AutoCAD или NanoCAD? NanoCAD на этом форуме не обсуждается.

Изучаю по AutoCAD. Но поскольку мой код это уже большая солянка из всевозможных примеров из интернета, возможно что-то и из NanoCAD попало
Название: Re: Не рисуется свой объект AcDbEntity
Отправлено: Александр Ривилис от 04-06-2023, 15:41:51
При добавлении "et" выдает ошибку.

Насколько понимаю проблема с регистрацией класса.
Вполне возможно. Нужно анализировать код et. Для этой цели есть хорошая функция acadErrorStatusText(Acad::ErrorStatus) которая возвращает по коду ошибки ее символьное название.