Selection

Обсуждение вопросов импорта поддерживаемых форматов
Post Reply
y.kuklin
Posts: 9
Joined: 11 May 2019, 22:50

Selection

Post by y.kuklin » 11 Aug 2019, 07:04

В документации я не нашел каким образом можно выделять объекты.
В примерах для Delphi есть EditorLite. Не могли бы вы выслать пример выделения объектов, а также их узлов на С++ для Borland XE4.

support
Posts: 3271
Joined: 30 Mar 2005, 11:36
Contact:

Re: Selection

Post by support » 12 Aug 2019, 20:32

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

Визуальное выделение объектов не является частью функционала библиотеки, поэтому это не отражено в документации. В проекте EditorLite для Delphi используется модуль sgSManager, который содержит класс TsgSelectionManager как пример реализации выделения объектов. К сожалению, аналогичного модуля (как и примера EditorLite) на С++ Builder на данный момент нет.

Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support

y.kuklin
Posts: 9
Joined: 11 May 2019, 22:50

Re: Selection

Post by y.kuklin » 13 Aug 2019, 07:48

В библиотеке для С++ имеется модуль sgSelection , но описание также отсутствует.
Возможно ли использование функций этого модуля для написания программы выделения объектов при помощи мышки. Какие функции можно использовать и как.

Существует ли функция пересчета координат TsgDrawingNavigator Canvas в значения GetDrawingCoords?

Как скрыть и показать объект? Свойства Visible и Visibility не помогают.

Как задать имя объекта? Свойство Name возвращает тип объекта, например POLYLINE, хотя задавалось другое имя. В то же время, цвет и ширина линии задаются правильно.

Можно ли выбрать объект по имени?

Можно ли присвоить объекту и целиком файлу дополнительные свойства типа Параметр - Значение?

Вопросы срочные. Мы начинаем новый проект и нам нужно понять, можно ли его полностью выполнить используя CAD VCL. До настоящего времени мы использовали только импорт из DXF, а затем конвертировали в наш формат.

support
Posts: 3271
Joined: 30 Mar 2005, 11:36
Contact:

Re: Selection

Post by support » 13 Aug 2019, 21:26

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.

Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support

y.kuklin
Posts: 9
Joined: 11 May 2019, 22:50

Re: Selection

Post by y.kuklin » 14 Aug 2019, 07:35

Текст программы где свойство Visible не работает в приложении.
Значения GetDrawingCoords:
TsgDrawingNavigator * Navigator;
Navigator = (TsgDrawingNavigator *)(Sender);
vPt = Navigator->GetDrawingCoords(X, Y, vUnits);
Можете ли вы сказать какие функции из sgSelection.hpp можно использовать для выбора объектов и их узлов?
Attachments
SharpLaseVCL.rar
(2.1 KiB) Downloaded 722 times

support
Posts: 3271
Joined: 30 Mar 2005, 11:36
Contact:

Re: Selection

Post by support » 23 Aug 2019, 19:38

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

Для управления видимостью объекта используйте свойство Visibility. Свойство Visible действительно не работает.

Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support

y.kuklin
Posts: 9
Joined: 11 May 2019, 22:50

Re: Selection

Post by y.kuklin » 26 Aug 2019, 18:50

Но свойство Visibility так же не работает.

y.kuklin
Posts: 9
Joined: 11 May 2019, 22:50

Re: Selection

Post by y.kuklin » 26 Aug 2019, 18:54

А на последний вопрос о функциях Selection.hpp вы сможете ответить?

support
Posts: 3271
Joined: 30 Mar 2005, 11:36
Contact:

Re: Selection

Post by support » 26 Aug 2019, 20:04

y.kuklin wrote:
26 Aug 2019, 18:50
Но свойство Visibility так же не работает.
Уточните, пожалуйста, номер версии CAD VCL, на которой Вы проверяли данную проблему.

Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support

support
Posts: 3271
Joined: 30 Mar 2005, 11:36
Contact:

Re: Selection

Post by support » 26 Aug 2019, 20:50

y.kuklin wrote:
26 Aug 2019, 18:54
А на последний вопрос о функциях Selection.hpp вы сможете ответить?
К сожалению, на текущий момент не могу дать развернутый ответ по данному вопросу, так как код указанного модуля не документирован и, следовательно, требует изучения. Скажу только, что для выбора объектов следует использовать класс TsgSelectionMatrix:

Code: Select all

class PASCALIMPLEMENTATION TsgSelectionMatrix : public System::TObject
Михаил
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support

y.kuklin
Posts: 9
Joined: 11 May 2019, 22:50

Re: Selection

Post by y.kuklin » 27 Aug 2019, 14:53

Свойство Visibility работает, просто нужно было сделать обновление: RefreshCurrentLayout().

Post Reply