Please enable JavaScript to view this site.

Создание прикладных библиотек  > Рекомендации по созданию прикладных библиотек 

Редактирование зеркально отраженных библиотечных макроэлементов

Scroll

В Placement (см. ksDocument2D::ksPlacement, lPlacement) макроэлементов хранится флаг зеркальной симметрии объекта. Если при операциях, выполняемых базовым функционалом системы КОМПАС, происходит зеркальное отображение макроэлемента, имеющего Placement, то для полученного в результате операции макроэлемента флаг зеркальной симметрии автоматически инвертируется. Поэтому, если макроэлементы, создаваемые при помощи прикладных библиотек, будут в дальнейшем редактировать библиотеками, необходимо задавать этим макроэлементам Placement.

Макроэлементы, у которых не задан Placement и геометрия которых была зеркально отражена (например, операцией Симметрия), не могут быть корректно отредактированы библиотеками - после редактирования их геометрия вернется в нормальное (не зеркальное) состояние.

Чтобы определить, является ли геометрия макроэлемента зеркально отображенной, можно воспользоваться функцией ksGetMacroPlacementEx (ksDocument2D::ksGetMacroPlacementEx). Если в параметре mirrorSymmetry (флаг зеркальной симметрии объекта) вернется ненулевое значение, то геометрия макроэлемента зеркально отображена.

Если редактирование при помощи библиотеки макроэлемента, имеющего Placement, reference на который получен через EditMacroMode (ksDocument2D::ksEditMacroMode), запускается двойным щелчком мыши или через хот-точки, проверять, является ли он зеркально отображенным, и принимать какие-то другие меры для сохранения правильного отображения геометрии не нужно. Корректное отображение геометрии в данном случае обеспечится функционалом КОМПАС. В данном случае функции SetMacroPlacement и GetMacroPlacement можно использовать без ограничений.

Если при создании нового макроэлемента нужно, чтобы его геометрия была сразу зеркально отображена, то следует задать макроэлементу Placement функцией ksSetMacroPlacementEx (ksDocument2D::ksSetMacroPlacementEx), значение параметра mirrorSymmetry которой надо задать равным 1. Далее создание геометрии для такого макроэлемента не отличается от создании геометрии "нормального" макроэлемента, т.к. зеркальная трансформация геометрии производится функционалом системы КОМПАС-3D.

Если редактирование макроэлемента, запускаемое двойным щелчком мыши или через хот-точки, проводится путем удаления исходного макроэлемента и построения нового, то при необходимости сохранения зеркального построения геометрии следует выполнить следующие действия.

1. Получить у исходного макроэлемента признак зеркальной симметрии объекта (параметр mirrorSymmetry функции GetMacroPalcementEx).

2. Задать Placement нового макроэлемента при помощи функции ksSetMacroPlacementEx (ksDocument2D::ksSetMacroPlacementEx), передав в нее в параметре mirrorSymmetry полученный ранее флаг зеркальной симметрии объекта. Далее создание геометрии для такого макроэлемента не отличается от создании геометрии "нормального" макроэлемента, т.к. зеркальная трансформация геометрии производится функционалом КОМПАС.

Примечание:

Если в макроэлементе есть вставки рисунков, то следует учитывать, что в них так же хранится флаг зеркальной симметрии объекта, который обрабатывается независимо от аналогичного флага в макроэлементе.

Подразделы:

(отсутствуют)

© ООО «АСКОН-Системы проектирования», 2024. Все права защищены. | Единая телефонная линия: 8-800-700-00-78