Как программно разрушить фрагмент

Автор MissKsaa, 22.11.12, 10:16:01

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

MissKsaa

Разрабатываю библиотеку фрагментов в Компас-3D под Делфи. Когда вставляю фрагменты в чертеж, они распознаются как вставной фрагмент ksDrFragment, но для дальнейшей обработки чертежа мне необходимо, чтобы эти вставленные фрагменты были типа макрообъект. Если вставленные фрагменты разрушить, то они становятся именно этого типа. Так вот, вопрос в том как их разрушить программно, Подскажите, пожалуйста?

var
Fragment:ksFragment;
ConturDoc2D:ksDocument2D;

ConturDoc2D.ksDestroyObjects(Fragment.Reference);

+ Благодарностей: 1

demosfenus

MissKsaa, а как вы вставляете фрагмент? Его же можно "вставить россыпью". Или я не правильно вас понял?

Цитата: SDK.chm
ksInsertFragmentParam::insertType

Способ вставки фрагмента.
Тип данных - short.

Значения свойства:
0 - взять в документ,
1 - вставить внешней ссылкой,
3 - вставить локальный фрагмент.

Попробуйте 3 способ.

MissKsaa

Sabahs, именно такой функции не нашла даже в справке компас.
Зато нашла этот метод в ksDocument2D.
При ее реализации объект разрушается и становится типа ALL_OBJ.
Хотя когда разрушаешь фрагмент непосредственно в самом компасе через контекстное меню "разрушить", он разрушается до макрообъекта.

demosfenus, фрагменты вставляются непосредственно в компас, как чертеж, а затем с помощью программы уже анализируется.

Всё правильно, этот метод есть в ksDocument2D и LibTool.pas.
Разрушили и дальше собрали в макроэлемент IMacroObject::AddObjects.