Копирование всех объектов чертежа во фрагмент

Автор feuer628, 27.08.25, 18:07:07

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

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

feuer628

Здравствуйте! поделитесь знаниями, пожалуйста)
Хочу все геометрические объекты из чертежа (линии, окружности, дуги и тд) скопировать во фрагмент.

получаю все нужные объекты
IDrawingContainer = kompas_api7_module.IDrawingContainer(IView)
IDrawingContainer.Objects(0)

и вот теперь их нужно вставить во фрагмент...

подобным образом линия добавляется...
fragment = Documents.AddWithDefaultSettings(kompas6_constants.ksDocumentFragment, True)
iDocument2D = kompas_object.ActiveDocument2D()
iDocument2D.ksLineSeg(0, 0, 200, 200, 1)

но очень уж сложно все объекты/все типы перебирать и добавлять их подобным образом...

Наверняка есть более удобный способ...

Пробовал так:
iDocument2D.ksCopyObj(IDrawingContainer.Objects(0)[0], 0,0,0,0,1,0)

но компас требует указатель на объект.
Может знаете как получить указатель на объект (IDrawingContainer.Objects(0)[0] (ILineSegment), например)?

Либо любой другой способ избавиться от штампа на чертеже)
Заранее спасибо!

lavgirb

Цитата: feuer628 от 27.08.25, 18:07:07Либо любой другой способ избавиться от штампа на чертеже)
А просто в чертеже удалить основную надпись не пробовали?
+ Благодарностей: 1

p3452

Оформление -> Очистить = исчезнет и рамка и штамп.

Черех API - аналогично...
+ Благодарностей: 1

feuer628

Спасибо за указание в правильное направление!

решил так:

    LayoutSheets = kompas_document.LayoutSheets
    ILayoutSheet = LayoutSheets.Item(0)
    ILayoutSheet.LayoutStyleNumber = 15
    ILayoutSheet.Update()
Имя библиотеки (ILayoutSheet.LayoutLibraryFileName) -  'C:\\Program Files\\ASCON\\KOMPAS-3D v21\\Sys\\graphic.lyt'