Обновление модели после изменения внешней переменной в компоненте

Автор hubth, 01.10.24, 09:40:12

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

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

hubth

Добрый день всем!
Столкнулся со следующей проблемой: в сборку вставляется элемент из библиотеки kle, у которого есть внешние переменные, отвечающие за параметризацию. Далее пытаюсь отредактировать значение одной из переменных, и, судя по выводу в консоли, значение переменной изменяется, но это никак не отображается на самой модели. Полазил на форуме, но именно такую проблему не встретил.
Кусок кода, который отвечает за изменение переменной:

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

#Получаем интерфейс компонента
iPart = iDocument3D.PartCollection(True)

print(iPart.GetCount())
print(iPart.GetByIndex(0).name)

#Коллекция внешних переменных
VariableCollection = iPart.GetByIndex(0).VariableCollection()

Variable_count = VariableCollection.GetCount()
print(Variable_count)

#обновляем коллекцию внешних переменных
VariableCollection.refresh()

#Получаем интерфейс переменной по её имени
Variable = VariableCollection.GetByName('Dn',True,True)
print(Variable)
#Задаём новое значение переменной
Variable.value = 1800

print(Variable)
#Перестраиваем модель

kompas_document_3d.RebuildDocument()
iDocument3D.GetPart(-1).RebuildModel()

Вывод в консоли:

hubth

Цитата: hubth от 01.10.24, 09:40:12Добрый день всем!
Столкнулся со следующей проблемой: в сборку вставляется элемент из библиотеки kle, у которого есть внешние переменные, отвечающие за параметризацию. Далее пытаюсь отредактировать значение одной из переменных, и, судя по выводу в консоли, значение переменной изменяется, но это никак не отображается на самой модели. Полазил на форуме, но именно такую проблему не встретил.
Кусок кода, который отвечает за изменение переменной:

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

#Получаем интерфейс компонента
iPart = iDocument3D.PartCollection(True)

print(iPart.GetCount())
print(iPart.GetByIndex(0).name)

#Коллекция внешних переменных
VariableCollection = iPart.GetByIndex(0).VariableCollection()

Variable_count = VariableCollection.GetCount()
print(Variable_count)

#обновляем коллекцию внешних переменных
VariableCollection.refresh()

#Получаем интерфейс переменной по её имени
Variable = VariableCollection.GetByName('Dn',True,True)
print(Variable)
#Задаём новое значение переменной
Variable.value = 1800

print(Variable)
#Перестраиваем модель

kompas_document_3d.RebuildDocument()
iDocument3D.GetPart(-1).RebuildModel()

Вывод в консоли:

Нашел ошибку в коде: обновлял сборку, а не сам компонент.