Перенести на другой слой

Автор evgs, 22.11.22, 14:28:34

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

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

evgs

Как программно можно перенести объект на другой слой?


evgs

Вроде сам разобрался. Кому интересно, выкладываю код.  Созданный отрезок переносится на слой 1
# -*- coding: utf-8 -*-
#|00

import pythoncom
from win32com.client import Dispatch, gencache

import LDefin2D
import MiscellaneousHelpers as MH

#  Подключим константы API Компас
kompas6_constants = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
kompas6_constants_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants

#  Подключим описание интерфейсов API5
kompas6_api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
kompas_object = kompas6_api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))
MH.iKompasObject  = kompas_object

#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID, pythoncom.IID_IDispatch))
MH.iApplication  = application

Documents = application.Documents
#  Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)
iDocument2D = kompas_object.ActiveDocument2D()

obj = iDocument2D.ksLineSeg(-1631.49221223107, -674.471143231422, -1214.082247732462, -397.397287486656, 1)

iDocument2D.ksChangeObjectLayer(obj,1)

Doom

07.04.23, 09:45:57 #2 Последнее редактирование: 07.04.23, 09:56:51 от Doom
evgs,
а если объектов несколько и они связаны параметризацией ?