Тема: CustomEntity в виде таблицы.

Здравствуйте!

Я еще не совсем разобрался в процессе создания Custom Entity, поэтому обращаюсь к специалистам.
Скажите, пожалуйста, можно ли создать Custom Entity, которая будет иметь форму таблицы? Если можно, то посоветуйте как можно это сделать.

Частный примитив Table в AutoCAD не устраивает по ряду причин, одна из них - это то, что при внесении данных в ячейку таблицы, она деформируется. А также, то что нельзя запретить деформирование таблицы.

Заранее благодарен за ответы!

Re: CustomEntity в виде таблицы.

Метод subWorldDraw определяет геометрию вашего объекта. Ограничений на форму нет. Рисуйте свою таблицу отрезками с нужными свойствами. С текстом будет потруднее.

Re: CustomEntity в виде таблицы.

Николай Полещук пишет:

С текстом будет потруднее.

И вообще чтобы реализовать функциональность таблиц AutoCAD - это придётся очень хорошо попотеть. Большой вопрос нужно ли это...

Re: CustomEntity в виде таблицы.

Николай Полещук пишет:

Метод subWorldDraw определяет геометрию вашего объекта. Ограничений на форму нет. Рисуйте свою таблицу отрезками с нужными свойствами. С текстом будет потруднее.

Как раз текст и составляет проблему.

Александр Ривилис пишет:

И вообще чтобы реализовать функциональность таблиц AutoCAD - это придётся очень хорошо попотеть. Большой вопрос нужно ли это...

Ну допустим это будет не таблица, а некая фигура, у которой есть текст, то редактировать его можно только с помощью диалоговых окон (ну или через командную строку)?

Re: CustomEntity в виде таблицы.

Если функциональности таблицы не требуется, то создайте команду редактирования, которая запрашивает объект (или сама выбирает его в чертеже), считывает данные и выводит в виде диалогового окна (MFC). По успешному закрытию окна удаляйте старый вариант объекта и с помощью конструктора создавайте новый вариант. Больших проблем нет.
Можно написать версию без окна, с выводом параметров в командную строку (аналогично команде PEDIT). Другие возможности тоже есть, но труднее в реализации (редактирование по месту и т.д.).

(изменено: Shraybicus, 27 августа 2012г. 19:56:49)

Re: CustomEntity в виде таблицы.

Николай Полещук пишет:

Если функциональности таблицы не требуется, то создайте команду редактирования, которая запрашивает объект (или сама выбирает его в чертеже), считывает данные и выводит в виде диалогового окна (MFC). По успешному закрытию окна удаляйте старый вариант объекта и с помощью конструктора создавайте новый вариант. Больших проблем нет.

Можно написать версию без окна, с выводом параметров в командную строку (аналогично команде PEDIT). Другие возможности тоже есть, но труднее в реализации (редактирование по месту и т.д.).

Спасибо большее за Ваш ответ!

Вот, интересна возможность редактирования текста по месте, как если бы это был просто тескт или мультитекст, как можно это реализовать?

Re: CustomEntity в виде таблицы.

Для редактирования по месту надо создавать окно без заголовка, наложенное на редактируемый текст. Не думаю, что это просто. Я не пытался.
Можно попробовать поработать с классами AcDbTextEditor, AcDbText, AcDbMText.