Подвижная сборка

Автор Lemieux, 27.11.24, 19:55:54

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

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

Lemieux

Всех приветствую. Возможно ли с помощью API сделать сборку подвижной?

UU

Деталь можно подвижной сделать.
Сборка, куча подвижных деталей.

Lemieux

Пока что нет реализации в API. Делается через команду.

feron

Цитата: Lemieux от 27.11.24, 22:29:00Пока что нет реализации в API. Делается через команду.
Любой каприз за Ваши монетки.

Юрий Деточкин

Можно ли объекты, если это сборки, из полином делать подвижными? И можно ли объектами из полином управлять через таблицу переменных или деформацию?

pr0100

#5
#Сделать подвижной СИ
import pythoncom
from win32com.client import Dispatch, gencache

# Подключаем описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)

kompas_app = Dispatch("Kompas.Application.7")  # Создаем COM-объект

# Преобразование к интерфейсу API7
application = kompas_api7_module.IApplication(kompas_app._oleobj_.QueryInterface(
    kompas_api7_module.IApplication.CLSID,
    pythoncom.IID_IDispatch
))
# Создаем объект для API5
#  Подключим описание интерфейсов API5
api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
iKompasObject = api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))

# Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)

# Менеджер селектирования
SelectionManager = kompas_document_3d.SelectionManager

# Селектирование
SelectedObject = SelectionManager.SelectedObjects
# Проверка имеется ли выделение в дереве
if SelectedObject is None:
    application.MessageBoxEx('Ничего не выделено', '', 64)
#Проверяю является ли тип кортежем
elif not isinstance(SelectedObject, tuple):
    # Преобразуем выделенный объект в API5
    SelectedObject_API5 = iKompasObject.TransferInterface(SelectedObject, 1, 0)
    iKompasObject.ksExecuteKompasCommand(62251, False)
    application.MessageBoxEx('Сборка сделана подвижной', '', 64)

 Или так:
import pythoncom
from win32com.client import Dispatch, gencache
#  Подключим описание интерфейсов 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))
#  Подключим описание интерфейсов 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))
# Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)
iDocument3D = kompas_object.ActiveDocument3D()
#Менеджер селектирования
SelectionManager=kompas_document_3d.SelectionManager
#Селектирование
SelectedObject = SelectionManager.SelectedObjects

kompas_object.ksExecuteKompasCommand(62251, True)