Page 1 of 1
Selection
Posted: 11 Aug 2019, 07:04
by y.kuklin
В документации я не нашел каким образом можно выделять объекты.
В примерах для Delphi есть EditorLite. Не могли бы вы выслать пример выделения объектов, а также их узлов на С++ для Borland XE4.
Re: Selection
Posted: 12 Aug 2019, 20:32
by support
Здравствуйте,
Визуальное выделение объектов не является частью функционала библиотеки, поэтому это не отражено в документации. В проекте EditorLite для Delphi используется модуль sgSManager, который содержит класс TsgSelectionManager как пример реализации выделения объектов. К сожалению, аналогичного модуля (как и примера EditorLite) на С++ Builder на данный момент нет.
Михаил
Re: Selection
Posted: 13 Aug 2019, 07:48
by y.kuklin
В библиотеке для С++ имеется модуль sgSelection , но описание также отсутствует.
Возможно ли использование функций этого модуля для написания программы выделения объектов при помощи мышки. Какие функции можно использовать и как.
Существует ли функция пересчета координат TsgDrawingNavigator Canvas в значения GetDrawingCoords?
Как скрыть и показать объект? Свойства Visible и Visibility не помогают.
Как задать имя объекта? Свойство Name возвращает тип объекта, например POLYLINE, хотя задавалось другое имя. В то же время, цвет и ширина линии задаются правильно.
Можно ли выбрать объект по имени?
Можно ли присвоить объекту и целиком файлу дополнительные свойства типа Параметр - Значение?
Вопросы срочные. Мы начинаем новый проект и нам нужно понять, можно ли его полностью выполнить используя CAD VCL. До настоящего времени мы использовали только импорт из DXF, а затем конвертировали в наш формат.
Re: Selection
Posted: 13 Aug 2019, 21:26
by support
y.kuklin wrote: ↑13 Aug 2019, 07:48
В библиотеке для С++ имеется модуль sgSelection , но описание также отсутствует.
Возможно ли использование функций этого модуля для написания программы выделения объектов при помощи мышки. Какие функции можно использовать и как.
Модуль sgSelection можно использовать для написания программы выделения объектов при помощи мыши. Однако, к сожалению, на данный момент у нас нет соответствующего примера кода на С++ Builder.
y.kuklin wrote: ↑13 Aug 2019, 07:48
Существует ли функция пересчета координат TsgDrawingNavigator Canvas в значения GetDrawingCoords?
Правильно ли я понимаю, что под "значениями GetDrawingCoords" подразумеваются CAD координаты?
y.kuklin wrote: ↑13 Aug 2019, 07:48
Как скрыть и показать объект? Свойства Visible и Visibility не помогают.
Уточните, пожалуйста, какой код Вы пробовали.
y.kuklin wrote: ↑13 Aug 2019, 07:48
Как задать имя объекта? Свойство Name возвращает тип объекта, например POLYLINE, хотя задавалось другое имя. В то же время, цвет и ширина линии задаются правильно.
Если Вы хотите задать произвольное имя для визуального объекта (примитива), то через свойство Name это сделать невозможно. Свойство Name возвращает название класса примитива (TObject.ClassName) в верхнем регистре, без префикса "TSGDXF" или "TSGCAD". Однако, возможно задать произвольное имя через расширенные данные объекта (extended data или xdata). C документацией по extended data Вы можете ознакомиться по ссылке ниже.
https://www.autodesk.com/techpubs/autoc ... dxf_ab.htm
В CAD VCL расширенные данные объекта поддерживаются, начиная с версии 11.0, через свойство EED у классов-наследников TsgDXFEntity:
Code: Select all
property EED[const AAppID: UInt64]: TsgCADExtendedData read GetEED write SetEED;
y.kuklin wrote: ↑13 Aug 2019, 07:48
Можно ли выбрать объект по имени?
Если произвольное имя записано в расширенных данных объекта, то можно найти объект по имени, прочитав EED.
y.kuklin wrote: ↑13 Aug 2019, 07:48
Можно ли присвоить объекту и целиком файлу дополнительные свойства типа Параметр - Значение?
Да, это возможно через EED.
Михаил
Re: Selection
Posted: 14 Aug 2019, 07:35
by y.kuklin
Текст программы где свойство Visible не работает в приложении.
Значения GetDrawingCoords:
TsgDrawingNavigator * Navigator;
Navigator = (TsgDrawingNavigator *)(Sender);
vPt = Navigator->GetDrawingCoords(X, Y, vUnits);
Можете ли вы сказать какие функции из sgSelection.hpp можно использовать для выбора объектов и их узлов?
Re: Selection
Posted: 23 Aug 2019, 19:38
by support
Здравствуйте.
Для управления видимостью объекта используйте свойство Visibility. Свойство Visible действительно не работает.
Михаил
Re: Selection
Posted: 26 Aug 2019, 18:50
by y.kuklin
Но свойство Visibility так же не работает.
Re: Selection
Posted: 26 Aug 2019, 18:54
by y.kuklin
А на последний вопрос о функциях Selection.hpp вы сможете ответить?
Re: Selection
Posted: 26 Aug 2019, 20:04
by support
y.kuklin wrote: ↑26 Aug 2019, 18:50
Но свойство Visibility так же не работает.
Уточните, пожалуйста, номер версии CAD VCL, на которой Вы проверяли данную проблему.
Михаил
Re: Selection
Posted: 26 Aug 2019, 20:50
by support
y.kuklin wrote: ↑26 Aug 2019, 18:54
А на последний вопрос о функциях Selection.hpp вы сможете ответить?
К сожалению, на текущий момент не могу дать развернутый ответ по данному вопросу, так как код указанного модуля не документирован и, следовательно, требует изучения. Скажу только, что для выбора объектов следует использовать класс TsgSelectionMatrix:
Code: Select all
class PASCALIMPLEMENTATION TsgSelectionMatrix : public System::TObject
Михаил
Re: Selection
Posted: 27 Aug 2019, 14:53
by y.kuklin
Свойство Visibility работает, просто нужно было сделать обновление: RefreshCurrentLayout().