• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Изменить значение переменной модели средствами КОМПАС-Макро

Автор IgorT, 24.05.17, 15:06:24

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

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

IgorT

Я совершенно не в теме написания макросов, хотелось бы выяснить, стоит ли с ними связываться для решения одной задачки..
Может кто пример подарить как это сделать или где посмотреть подобные примеры?

Lotos82

Писать так сказать с нуля, или средствами самого компаса?
Если то второе, то там как-бы ничего сложного. На панеле макросов кнопочка "Начать запис", далее последовательность необходимых действий, и "Остановить запись". Как бы все...
Если первое, то все сложно )

IgorT

Типа пытался как бы записать макрос... Ожидал, что чудо-рекордер Компаса запишет действия в виде кода, на подобие того, как это делает макрорекордер VBA  Excel.
Не. Полученный код не выполняет действий по редактированию существующих объектов. Может я чего-то не понимаю?

IgorT

Выходит надо с "нуля".
В том то и дело, что сложно.... Хоть бы подсмотреть как это делается.

ТрындецЪ

# -*- coding: cp1251 -*-

#Импортируем необходимые библиотеки
import Kompas10API5 as KAPI
from win32com.client import Dispatch
import LDefin3D

#Подключаемся к КОМПАС-3D
iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)

#Подключаемся к активной модели
iDocument3D = iKompasObject.ActiveDocument3D()

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

#Получаем коллекцию внешних переменных
VariableCollection = iPart.VariableCollection()

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

#Получаем интерфейс переменной по её имени
Variable = VariableCollection.GetByName('A',True,True) # 'А' - имя

#Задаём новое значение переменной
Variable.value = 55

#Перестраиваем модель
iPart.RebuildModel()

Lotos82

Если ветку форума "Программирование приложений" почитать, то мозг вскипает )

IgorT

Цитата: ТрындецЪ от 24.05.17, 15:24:31
# -*- coding: cp1251 -*-

#Импортируем необходимые библиотеки
import Kompas10API5 as KAPI
from win32com.client import Dispatch
import LDefin3D

#Подключаемся к КОМПАС-3D
iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)

#Подключаемся к активной модели
iDocument3D = iKompasObject.ActiveDocument3D()

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

#Получаем коллекцию внешних переменных
VariableCollection = iPart.VariableCollection()

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

#Получаем интерфейс переменной по её имени
Variable = VariableCollection.GetByName('v19',True,True) # 'А' - имя

#Задаём новое значение переменной
Variable.value = 55

#Перестраиваем модель
iPart.RebuildModel()



вместо 'A'  прописал 'v19'.... Она есть в модели. До запуска макроса имеет значение 160.
Запустил макрос, модель не изменилась.

ТрындецЪ

Цитата: IgorT от 24.05.17, 15:37:27

вместо 'A'  прописал 'v19'.... Она есть в модели. До запуска макроса имеет значение 160.
Запустил макрос, модель не изменилась.
Переменная должна быть внешней.
+ Благодарностей: 1

IgorT


IgorT

Хотелось бы узнать, каким нелпом пользоваться начинающему?
В SDK не вижу материалов по работе с Python в среде Компаса... Где можно узреть справку?

ТрындецЪ

Цитата: IgorT от 24.05.17, 16:25:35
Хотелось бы узнать, каким нелпом пользоваться начинающему?
В SDK не вижу материалов по работе с Python в среде Компаса... Где можно узреть справку?
Лучше всего скачивать готовые макросы с форума и смотреть код. В SDK дана общая для всех языков информация. Но нужно хотя бы азы python знать, чтобы начать решать задачи.
+ Благодарностей: 1