Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Биржа прикладных разработок => Тема начата: Slaviation от 20.04.18, 09:14:28

Название: PyKompasMacro
Отправлено: Slaviation от 20.04.18, 09:14:28
Уважаемые коллеги, хочу предложить Вашему вниманию приложение PyKompasMacro для КОМПАС-3D x64.
Приложение написано на Python, бесплатное, но попросит получения регистрационного ключа, доступно по ссылке https://slaviationsoft.blogspot.ru

Краткая аннотация:
PyKompasMacro - это приложение для записи и выполнения макросов в КОМПАС-3D x64.
Макросы – это сценарии, описывающие последовательность действий пользователя по созданию объектов в КОМПАС-3D. Во время записи макроса сценарий запоминается в файл с расширением .pyw в виде кода на языке программирования Python. При выполнении макроса, содержащийся в нем код воспроизводит запомненный сценарий.
Для выполнение макросов в PyKompasMacro не требуется, чтобы на компьютере был установлен Python.
PyKompasMacro будет полезен как для автоматизации работы пользователя в КОМПАС-3D так и для изучения интерфейсов прикладного программирования (API)  КОМПАС-3D.

Название: Re: PyKompasMacro
Отправлено: pr0100 от 20.04.18, 10:34:34
А возможности записи программного кода, такие же как и у библиотеки Компас-Макро или более расширенный функционал?
Ключ отправил.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 20.04.18, 10:40:13
ЦитироватьА возможности записи программного кода, такие же как и у библиотеки Компас-Макро или более расширенный функционал?
1. В макросах  PyKompasMacro приоритет использования API7 , в Компас-Макро - API5.
2. В  PyKompasMacro пока нет создания макросов для 3D.
Название: Re: PyKompasMacro
Отправлено: pr0100 от 20.04.18, 11:16:39
Первое впечатление, понравилось, что на иконке приложения видно запись. Как было реализовано в 16 версии. В 17й при переключении на команды не понятно было идет запись или нет. И в коде раскомментированно, что к чему относится. Отрезок, окружность.
Название: Re: PyKompasMacro
Отправлено: ТрындецЪ от 20.04.18, 13:27:02
Для х32 будет версия?
КОМПАС-Макро тоже Ваше творение?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 20.04.18, 14:13:45
ЦитироватьДля х32 будет версия?
Пока не знаю, но попробую.

ЦитироватьКОМПАС-Макро тоже Ваше творение?
В прошлом поучаствовал.
Название: Re: PyKompasMacro
Отправлено: IgorT от 23.04.18, 08:58:48
Ключ получен, установлен.
При запуске PyKompasMacro.exe получаем:  :(


W7SP1-64, К15.2-64


Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.04.18, 09:51:43
Попробуйте запустить kompas.exe с ключом -register.
Название: Re: PyKompasMacro
Отправлено: IgorT от 23.04.18, 09:59:49
Пишет:
"Ошибка регистрации.
Обратитесь к администратору."
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.04.18, 11:28:01
ЦитироватьПишет:
"Ошибка регистрации.
Обратитесь к администратору."
Если позволяют права, выполните запуск kompas.exe -register  от имени администратора.
Название: Re: PyKompasMacro
Отправлено: IgorT от 23.04.18, 14:09:19
Админ запускал под своими правами kompas.exe -register.
Регистрация прошла успешно.
Но всё равно получаем:
"Failed to execute script PyKompasMacro"

Админ обратил внимание на  PyKompasMacro.exe.manifest

<assemblyIdentity name="PyKompasMacro" processorArchitecture="amd64" type="win32" version="1.0.0.0"/>

win32 -  это так и должно быть?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.04.18, 14:40:29
Цитироватьwin32 -  это так и должно быть?
Честно говоря - не знаю.  :shu:
Выложил на сайте версию 1.1.05 с показом traceback. Пришлите появившийся текст сообщения .
Название: Re: PyKompasMacro
Отправлено: IgorT от 23.04.18, 14:51:46
После успешной регистрации библиотека выдаёт:  :(

или надо после работы версии  1.1.05 с показом traceback?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.04.18, 14:55:48
Ок, давайте перенесем поиск проблемы в личку. Я подготовлю перечень уточняющих вопросов.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.04.18, 14:57:12
После запуска PyKompasMacro версии 1.1.05 должно появиться сообщение с кучей текста, оно меня и интересует.
Название: Re: PyKompasMacro
Отправлено: pr0100 от 23.04.18, 17:20:19
Скорее всего import  win32com.client нужно в сборке py добавить
Название: Re: PyKompasMacro
Отправлено: IgorT от 24.04.18, 08:18:59
Цитата: Slaviation от 23.04.18, 14:40:29
....
Выложил на сайте версию 1.1.05 с показом traceback. Пришлите появившийся текст сообщения .
:(
Название: Re: PyKompasMacro
Отправлено: ТрындецЪ от 24.04.18, 08:43:29
У меня нормально сейчас скачалось. Похоже, блокировки РКН и Slaviation рикошетом зацепили...
Название: Re: PyKompasMacro
Отправлено: Slaviation от 17.05.18, 10:52:07
ЦитироватьДля х32 будет версия?
Коллеги, добрый день. Хочу уточнить, что PyKompasMacro - это приложение для Windows x64, работает с КОМПАС-3D обеих разрядностей, начиная 15-ой версии.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 13.07.18, 09:54:48
Коллеги, добрый день.
Добавил в PyKompasMacro некоторую поддержку редактирования объектов.

Цитировать1.1.3.11 от 13.07.2018
В макросе могут запоминаться действия пользователя по редактированию графических объектов.
Перед запуском такого макроса на выполнение необходимо селектировать в чертеже или фрагменте те графические объекты, которые требуется отредактировать.
Использование режима редактирования графических объектов можно отключить в настроечном параметре [COMMON] / EditMode файла PyKompasMacro.ini.

Пользовательский сценарий пока не идеален: перед запуском макроса, содержащего код редактирования объектов, нужно эти объекты в документе самому селектировать. Буду рад вашим предложениям по улучшению этого сценария.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 06.09.18, 09:23:48
Коллеги, добрый день.
PyKompasMacro 1.2.4.14 от 06.09.2018
Добавлена поддержка создания операций и поверхностей выдавливания и вращения в документах КОМПАС-Деталь.
Название: Re: PyKompasMacro
Отправлено: ТрындецЪ от 25.09.18, 08:22:55
Программа не записывает создание ссылок в текстах?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 25.09.18, 09:07:49
Сегодня - завтра будут готовы
Название: Re: PyKompasMacro
Отправлено: ТрындецЪ от 25.09.18, 09:25:27
А что на счёт версии х32, стоит ли надеяться и ждать?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 25.09.18, 13:54:27
ЦитироватьА что на счёт версии х32, стоит ли надеяться и ждать?
Если имеется ввиду работоспособность PyKompasMacro с КОМПАС-3D x32 то не нужно ждать:
http://forum.ascon.ru/index.php/topic,31309.msg250889.html#msg250889
Название: Re: PyKompasMacro
Отправлено: ТрындецЪ от 25.09.18, 13:58:01
Цитата: Slaviation от 25.09.18, 13:54:27
Если имеется ввиду работоспособность PyKompasMacro с КОМПАС-3D x32 то не нужно ждать:
Нет, речь о х32 операционной системе.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 09.10.18, 09:26:45
Коллеги, добрый день.
PyKompasMacro 1.2.5.15 от 09.10.2018.

Создание исполнений модели.
Изменение свойств модели.
Изменение свойств документа.
Изменение в сборке свойств компонента первого уровня.
Создание фасок и скруглений в документах КОМПАС-Деталь.
Создание операций и поверхностей по траектории и по сечениям в документах КОМПАС-Деталь.
Создание параметров вставки ссылки в текст в документах КОМПАС-Чертеж и КОМПАС-Фрагмент.
Отключен режим редактирования графических объектов в настроечном параметре [COMMON] / EditMode файла PyKompasMacro.ini.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 16.10.18, 14:18:22
Коллеги, добрый день.
PyKompasMacro 1.2.6.16 от 16.10.2018
Добавлена установка параметров цвета создаваемых модельных объектов.
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 07:55:20
PyKompasMacro 1.2.6.16 от 16.10.2018. Регистер сделал, не помогло.
Предыдущие версии работали.
upd. Установка обратно 15-й версии - та же ошибка. Наверно какие-то внешние причины.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.10.18, 08:31:32
Добрый день.
ЦитироватьPyKompasMacro 1.2.6.16 от 16.10.2018. Регистер сделал, не помогло.
Предыдущие версии работали.
upd. Установка обратно 15-й версии - та же ошибка. Наверно какие-то внешние причины.

Какая версия КОМПАС была перед тем как обратно установили версию 15?
Выполняли ли запуск КОМПАС с ключом register после того, как обратно установили версию 15?
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 08:43:18
Была и оставалась 16.1.18x64. Еще раз переставил 15-ю, ввел ключ на всякий случай, еще раз регистер компасу - всё равно ошибка.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.10.18, 08:54:19
Попробовал исправить в версии 1.2.6.17. Выложил.
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 09:03:24
Картинка немного изменилась.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.10.18, 09:11:05
Посмотрите, пожалуйста, есть ли у Вас такой файл:
<Каталог установки Python>\Lib\site-packages\win32com\gen_py\2CAF168C-7961-4B90-9DA2-701419BEEFE3x0x1x0.py.
Если есть - удалите из каталога gen_py все файлы и попробуйте опять запустить pyKompasMacro.
Если ошибка не пропала, посмотрите - если ли в указанном файле  (он опять должен появиться при запуске pyKompasMacro) следующие записи:

ksOperationCut                =2          # from enum ksOperationResultEnum
ksOperationIntersect          =3          # from enum ksOperationResultEnum
ksOperationNewBody            =1          # from enum ksOperationResultEnum
ksOperationUnion              =0          # from enum ksOperationResultEnum
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 09:19:58
Тут C:\Python26\Lib\site-packages\win32com\gen_py\ был такой 2CAF168C-7961-4B90-9DA2-701419BEEFE3x0x1x0.py файл. После очистки каталога вообще ничего не появилось при запуске PyKompasMacro. Все администраторские права тут есть. Программу с правами админа запускал - без результата.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.10.18, 09:31:07
Тогда запустите тест вложения. После этого файл в gen_py 2CAF168C-7961-4B90-9DA2-701419BEEFE3x0x1x0.py должен железно появиться.
Ну и дайте его поглядеть.
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 09:53:01
Железно появился. См. вложение. Указанные команды я там не нашел.
А вы можете рассказать теорию создания этих файлов. Это же мы так к компасу подключаемся.
Как получаются эти строки из файла test. И вообще, что откуда и куда? ) Для общего развития так сказать.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.10.18, 10:20:16
Я предположил, что источник ошибки - установленный Python 2.6.
Для запуска pyKompasMacro установленный Python вообще не нужен. Но если Python установлен, то возможен какой-то конфликт.

Выполняя строчку в тесте
kompas6_constants_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants
ваш Python генерирует из библиотеки типов с указанным GUID модуль 2CAF168C-7961-4B90-9DA2-701419BEEFE3x0x1x0.py в каталоге gen_py.
Вот я и хотел узнать сгенерирует ли Python 2.6 этот модуль с константами

ksOperationCut                =2          # from enum ksOperationResultEnum
ksOperationIntersect          =3          # from enum ksOperationResultEnum
ksOperationNewBody            =1          # from enum ksOperationResultEnum
ksOperationUnion              =0          # from enum ksOperationResultEnum
ksAxisOrientation             =0          # from enum ksOrientationTypeEnum

Сгенерировал, но без констант, что странно. Ведь в КОМПАС-16 уже есть многотельность и есть возможность назначать результат формообразующих операций (объединение, пересечение, новое тело и т. п.).
А есть ли эти константы в файле SDK КОМПАС  <Каталог установки КОМПАС>\SDK\Include\LDefin3D.pas ?
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 10:43:57
ksAxisOrientation = $00000000; - только она нашлась в SDK\Include\LDefin3D.pas
ksOperation никакого нет. Типа в API не реализовано? А если не реализовано, то и доступа не будет в самом компасе?

Меня интересует сама эта генерация. Как сформировались эти строки в файле test? где и какие библиотеки типов и GUID берутся?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.10.18, 10:56:52
ЦитироватьМеня интересует сама эта генерация. Как сформировались эти строки в файле test? где и какие библиотеки типов и GUID берутся?

Когда устанавливается КОМПАС-3D, его инсталлятор регистрирует в системе набор библиотек типов (файлы *.tlb в каталоге BIN КОМПАС).
Каждая библиотека типов имеет уникальный идентификатор GUID. Его можно посмотреть прямо в библиотеке типов к примеру утилитой OleView.exe

Функция Python gencache.EnsureModule  умеет из зарегистрированной в системе библиотеки типов по заданному GUID сформировать модуль описания библиотеки типов <GUID>.py

Как-то так ...

Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 11:35:15
Спасибо. С первыми строчками в общих чертах ясно. После того, как эти файлы создались, можно же наверно по-другому записать, типа как-то так? kompas6_constants = этот_созданный_файл.constants

А как эта строка получилась?
kompas_object = kompas6_api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))
Dispatch("Kompas.Application.5") - ?
_oleobj_ - ?
kompas6_api5_module.KompasObject.CLSID - ?
и т.д.

в PyKompasMacro введете try для отсутствующих констант?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 23.10.18, 12:32:13
Это место можно писать намного короче: kompas_api_object = Dispatch("Kompas.Application.5")

А мудреная запись с QueryInterface лишь для того, чтобы дополнительно проверить получение именно интерфейса KompasObject.из модуля kompas6_api5_module.

Таким способом можно получить ЛЮБОЙ интерфейс, описанный в модуле kompas6_api5_module напрямую, а не добираясь до него через лабиринт, берущий начало от головного интерфейса.
Название: Re: PyKompasMacro
Отправлено: ТрындецЪ от 23.10.18, 12:43:18
Цитата: Slaviation от 23.10.18, 12:32:13
Таким способом можно получить ЛЮБОЙ интерфейс, описанный в модуле kompas6_api5_module напрямую, а не добираясь до него через лабиринт, берущий начало от головного интерфейса.
А как работать в Python c экспортными функциями, которые описаны в SDK?
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 23.10.18, 13:01:49
Прошу прощения за вопросы не в тему, но, думаю, многим будет полезно знать эту кухню.
Еще немного мастер-класса, если можно:
1) Так что насчет уже созданных файлов вида 2CAF168C-7961-4B90-9DA2-701419BEEFE3x0x1x0.py? Можно как-то готовые использовать?
2) Что вообще такое Dispatch?
3) Откуда я узнаю, что надо написать строку "Kompas.Application.5", "Kompas.Application.7" или "Materials.BOSimpleProvider"?
4) Вот это выдает замудренная строка, и оно работает.
<win32com.gen_py.0422828C-F174-495E-AC5D-D31014DBBE87x0x1x0.KompasObject instance at 0x44646792>
А вот kompas_api_object = Dispatch("Kompas.Application.5") выдает
<COMObject Kompas.Application.5>
и оно не работает, например, не канает kompas_object.ActiveDocument3D()
5) Не понял про получение любого интерфейса. Каким таким? Например, тот же ActiveDocument3D как напрямую получить?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 24.10.18, 07:08:19
1.
gencache.EnsureModule не создает модуль <guid>.py попусту, при каждом вызове, а лишь если его еще нет или он есть, но уже не соответствует зарегистрированной с этим guid библиотеке типов, т. е. не актуальный (к примеру разработчики добавили новые интерфейсы или изменили существующие).

2.
Функция win32com. Тут документация в помощь.

3.
http://rsdn.org/article/com/COMvs.xml

4.
Тоже работает, если вызов ActiveDocument3D сделать как свойство, без скобок.
kompas_object = Dispatch("Kompas.Application.5")
ks_document_3d = kompas_object.ActiveDocument3D
print(ks_document_3d.fileName)

5.
ЦитироватьТаким способом можно получить ЛЮБОЙ интерфейс, описанный в модуле kompas6_api5_module напрямую, а не добираясь до него через лабиринт, берущий начало от головного интерфейса.
Коллеги, тут я сам набредил, этот перл прошу не принимать во внимание :)
Ответ на вопрос зачем делать такой мудреный способ получения kompas_object с использованием QueryInterface, похоже в п.4.



Название: Re: PyKompasMacro
Отправлено: Slaviation от 24.10.18, 07:14:36
ЦитироватьА как работать в Python c экспортными функциями, которые описаны в SDK?
Не знаю возможно ли это в принципе.
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 24.10.18, 07:32:38
Цитата: Slaviation от 24.10.18, 07:08:19
4. Тоже работает, если вызов ActiveDocument3D сделать как свойство, без скобок.
kompas_object = Dispatch("Kompas.Application.5")
ks_document_3d = kompas_object.ActiveDocument3D
print(ks_document_3d.fileName)
Ну и, надеюсь, последняя пара вопросов.
I) Без скобок - как свойство, а со скобками - как что?
II) Можно ли попроще (чем та замудреная запись) трансформировать kompas_object = Dispatch("Kompas.Application.5") в "нормальный" kompas_object, чтобы ActiveDocument3D не как свойство осталась работать со скобками?
p.s.
ЦитироватьА мудреная запись с QueryInterface лишь для того, чтобы дополнительно проверить получение именно интерфейса KompasObject из модуля kompas6_api5_module.
А разве может попасться какой-то левый?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 24.10.18, 07:39:59
ЦитироватьБез скобок - как свойство, а со скобками - как что?
Метод, принимающий список аргументов, даже если их нет.

ЦитироватьМожно ли попроще
Не знаю :(

Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 03.12.18, 07:35:50
Теперь я знаю, как проще записать подключение к компасу из питона:

from win32com.client import gencache, Dispatch
KompasAPI5 = gencache.EnsureModule('{0422828C-F174-495E-AC5D-D31014DBBE87}', 0, 1, 0)
KompasAPI7 = gencache.EnsureModule('{69AC2981-37C0-4379-84FD-5DD2F3C0A520}', 0, 1, 0)
KompasConst = gencache.EnsureModule('{75C9F5D0-B5B8-4526-8681-9903C567D2ED}', 0, 1, 0).constants
KompasConst3D = gencache.EnsureModule('{2CAF168C-7961-4B90-9DA2-701419BEEFE3}', 0, 1, 0).constants
KompasObject = Dispatch('Kompas.Application.5', None, KompasAPI5.KompasObject.CLSID)
Application = Dispatch('Kompas.Application.7') # или KompasObject.ksGetApplication7()

Можно заменить KompasAPI5.KompasObject.CLSID на '{E36BC97C-39D6-4402-9C25-C7008A217E02}', чтобы не зависеть от KompasAPI5
Название: Re: PyKompasMacro
Отправлено: Slaviation от 14.01.19, 08:53:12
Коллеги, добрый день.
Прошу пользователей КОМПАС-3D V15.x поделиться файлами SDK\Include\ksConstants.h и ksConstants3D или LDefin2D.pas и LDefin3D.pas.
Спасибо.
Название: Re: PyKompasMacro
Отправлено: Sabahs от 14.01.19, 09:35:14
Файлы во вложении.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 05.03.19, 08:24:21
Коллеги, добрый день.
Вопрос в топике https://forum.ascon.ru/index.php/topic,32155.0.html сподвиг добавить в очередную версию PyKompasMacro следующее:

1.2.17.34 от 05.03.2019
Создание технических требований в чертежах КОМПАС-3D.

1.2.16.33 от 05.03.2019
Добавлена поддержка создания форматированного текста в ячейках основной надписи. Для этого в файле conf / PyKompasMacro.ini нужно установить параметр FormattedTextInStamp = 1.

Название: Re: PyKompasMacro
Отправлено: ALEXEY ZATEEV от 04.04.19, 11:51:38
скажите, а умеет ли pyKompasmacro записывать сплайн-кривые?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 04.04.19, 14:05:37
Цитироватьскажите, а умеет ли pyKompasmacro записывать сплайн-кривые?
Может.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 18.04.19, 08:36:52
1.2.20.38 от 18.04.2019
Создание массивов компонентов в документах КОМПАС-Сборка.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 22.05.19, 14:18:44
1.2.21.40 от 22.05.2019
Сохранение документов в формате pdf.
Название: Re: PyKompasMacro
Отправлено: Solovey1873@mail.ru от 12.07.19, 16:58:51
Как запустить макрос если его добавить в пользовательскую панель инструментов(тут на форуме програма) Подскажите как запустить макрос без вашей проги. Спс
Название: Re: PyKompasMacro
Отправлено: Slaviation от 19.07.19, 14:34:34
1.2.22.42 от 19.07.2019
Добавлена возможность перетаскивания панели PyKompasMacro при нажатой правой клавише мыши.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 15.01.20, 07:12:37
1.4.27.54 от 15.01.2020
Добавлено сохранение позиции и прозрачность панели PyKompasMacro.
Название: Re: PyKompasMacro
Отправлено: pampam от 24.02.20, 22:30:06
В описаниях версий нашёл, что программа умеет:
"Добавление в КОМПАС-Сборку компонентов, локальных деталей, деталей-заготовок."
Может ли программа перемещать и поворачивать Компас-Детали в КОМПАС-Сборке?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 25.02.20, 06:28:05
Добрый день. Нет не может :(
Задача определения макросом редактируемого ( или перемещаемого / поворачиваемого ) объекта не решена. Макрос мы записываем при одном контексте, а запустить его на выполнение можем при совершенно другом.
Пока есть несколько неуклюже работающий вариант в 2D, который позволяет записать макрос редактирования объектов. Перед запуском такого макроса пользователь должен сам селектировать те объекты, которые макрос определит через менеджер селектированных объектов.
Если есть идеи как еще в макросе, ВО ВРЕМЯ ЕГО ВЫПОЛНЕНИЯ, можно определить редактируемый объект - буду рад подсказке :)
Название: Re: PyKompasMacro
Отправлено: Sabahs от 25.02.20, 07:08:25
Через события КОМПАС-3D можно определить, для 2D - IObject2DNotify:
BeginCopy - Начало копирования объекта;
BeginDelete - Начало удаления объекта;
BeginDestroyObject - Начало разрушения объекта;
BeginMove - Начало сдвига объекта;
BeginProcess - Начало редактирования\создания объекта;
BeginPropertyChanged - Начало изменения свойств объекта;
BeginRotate - Начало поворота объекта;
BeginScale - Начало масштабирования объекта;
BeginSymmetry - Начало симметричного преобразования объекта;
BeginTransform - Начало трансформации объекта;
ChangeActive - Переключение активности объекта (вид, слой);
Copy - Завершение копирования объекта;
CreateObject - Объект создан;
Delete - Завершение удаления объекта;
DestroyObject - Завершение удаления объекта;
EndProcess - Завершение редактирования/создания объекта;
Move - Завершение сдвига объекта;
PropertyChanged - Изменения свойств объекта;
Rotate - Завершение поворота объекта;
Scale - Завершение масштабирования объекта;
Symmetry - Завершение симметричного преобразования объекта;
Transform - Завершение трансформации объекта;
UpdateObject - Объект отредактирован.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 25.02.20, 07:15:17
Спасибо, это понятно. Вопрос был про другое. Если запускать макрос на выполнение в другом документе, не в том в котором оно был записан, как в макросе, во время его выполнения, определить объект, над которым нужно произвести операцию?
Название: Re: PyKompasMacro
Отправлено: Sabahs от 25.02.20, 07:38:18
Если про 3D и другом файле можно по индексу в дереве построения брать, если такой там есть и соответствует параметрам, но ворочать и двигать в сборке может быть проблематично, т.к. детали могут быть зафиксированы, наложены сопряжения, таким макросом в реальной сборке можно больше дров наломать.
Судя по вопросу, нужна просто анимация процесса сборки, хотя могу и ошибаться.
Название: Re: PyKompasMacro
Отправлено: pampam от 25.02.20, 11:23:43
Да, я понял, что не совсем корректно выразился.
По факту нужно вставлять деталь в сборку в конкретное место под конкретным углом. После вставления двигать и крутить не нужно.
Интересует, записывает ли приложение координаты и углы (например, Эйлера), которые вписываются с клавиатуры в соответствующие графы до вставки?
Название: Re: PyKompasMacro
Отправлено: pampam от 26.02.20, 07:08:50
Попробовал, записал - цифры есть. Теперь надо разобраться с матрицей 4х4. Спасибо.
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 10.04.20, 12:12:09
При попытке записать макрос создания отчета на компас 16.1 версия рекордера 1.4.28.57 от 08.04.2020 на каждом шаге выдает ошибку - см. картинку.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 11.04.20, 10:11:29
Добрый день.
Подскажите, пожалуйста, в 16.1-ом КОМПАС есть команда "Добавить деталь-заготовку"?
При работе с версиями КОМПАС до 17-ой возможны такого рода сообщения. Из вашего видно, что в КОМПАС API не нашлась константа prAddBilletFromFile, которая определяет процесс вставки детали-заготовки.
И еще:  возможности записи макросов создания отчетов в PyKompasMacro еще нет. :)
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 13.04.20, 04:58:40
Да, константа не нашлась, но есть:
IBilletObsolete, IBilletsObsoletes

ksObj3dTypeEnum - Типы объектов документа-модели:
o3d_Billet 571 Операция 'деталь за­готовка'
 
KompasAPIObjectTypeEnum - Типы объектов КОМПАС API:
ksObjectBilletObsolete 11234 Деталь заготовка и Зеркаль­ная деталь
ksObjectBilletsObsoletes 11235 Коллекция деталей заготовок и зеркальных деталей
Название: Re: PyKompasMacro
Отправлено: Вират Лакх от 11.06.20, 05:33:17
Компас 16.1 + PyKompasMacro 1.4.28.59 от 30.04.2020
Запуск команды Отрезок или её остановка.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 13.06.20, 12:36:41
Добрый день.
Из описания на https://slaviationsoft.blogspot.com
PyKompasMacro распространяется бесплатно, не требует, чтобы на компьютере был установлен Python и работает с КОМПАС-3D, начиная с версии 17
Название: Re: PyKompasMacro
Отправлено: antiflamberg от 06.01.21, 17:03:05
Доброго времени суток!
Не могли бы обновить ссылку на гугл драйв на утилиту? спасибо! Очень хочется воспользоваться.
Название: Re: PyKompasMacro
Отправлено: Slaviation от 07.01.21, 07:37:19
Добрый день.
PyKompasMacro доступен по ссылке
https://slaviationsoft.blogspot.com/
Ссылка не работает?
Название: Re: PyKompasMacro
Отправлено: antiflamberg от 08.01.21, 00:24:07
https://drive.google.com/uc?export=download&id=1nccnJvhxgU2V8t9rFfaecKAt6LyubFfA

пишет 404 ошибку. (NOT FOUND ERROR 404)
пробовал с разных компьютеров и даже с телефона.
Название: Re: PyKompasMacro
Отправлено: VLaD-Sh от 08.01.21, 06:37:47
Странная какая-то у вас ссылка. Вроде автор дает другую https://dl.orangedox.com/PyKompasMacro122140
Название: Re: PyKompasMacro
Отправлено: antiflamberg от 08.01.21, 11:17:07
Цитата: VLaD-Sh от 08.01.21, 06:37:47Странная какая-то у вас ссылка. Вроде автор дает другую https://dl.orangedox.com/PyKompasMacro122140
Все верно, а с неё на гугл.драйв перенаправляет. У всех качается? Могу попросить на почту отправить? antiflamberg@gmail.com
Спасибо!
Название: Re: PyKompasMacro
Отправлено: Slaviation от 11.01.21, 13:51:05
Добрый день.
Ссылку поправил.
Название: Re: PyKompasMacro
Отправлено: Алексей Дубовицкий от 15.01.21, 13:57:17
Цитата: Slaviation от 11.01.21, 13:51:05Ссылку поправил.
Всё равно "Not Found".
Название: Re: PyKompasMacro
Отправлено: Slaviation от 18.01.21, 07:20:11
Коллеги, добрый день.
Обнаружил, что PyKompasMacro, собранный с помощью PyInstaller, с некоторых пор стал определяться несколькими антивирусами, как потенциально опасный. Информации по этой проблеме набралось уже достаточно (набрать в поисковике PyInstaller virus), но ее решения пока не нашел. Думаю именно это повлияло на то, что перестала работать ссылка скачивания PyKompasMacro на GDrive.
Название: Re: PyKompasMacro
Отправлено: antiflamberg от 20.01.21, 11:00:58
Цитата: Slaviation от 18.01.21, 07:20:11Коллеги, добрый день.
Обнаружил, что PyKompasMacro, собранный с помощью PyInstaller, с некоторых пор стал определяться несколькими антивирусами, как потенциально опасный. Информации по этой проблеме набралось уже достаточно (набрать в поисковике PyInstaller virus), но ее решения пока не нашел. Думаю именно это повлияло на то, что перестала работать ссылка скачивания PyKompasMacro на GDrive.
С яндекса прекрасно скачалось. Спасибо большое!
Название: Re: PyKompasMacro
Отправлено: Slaviation от 26.01.22, 10:07:08
Добрый день.
В PyKompasMacro появилась команда "Сохранить как макрос". Если запустить ее на активном документе, то можно получить макрос его создания.
Название: Re: PyKompasMacro
Отправлено: p3452 от 04.02.22, 14:31:35
На Win 7.1x64
При получении ключа.png
Название: Re: PyKompasMacro
Отправлено: Slaviation от 07.02.22, 09:50:01
Добрый день.
Да, есть такая проблема.

https://www.python.org/downloads/release/python-390/
Installer news
This is the first version of Python to default to the 64-bit installer on Windows. The installer now also actively disallows installation on Windows 7. Python 3.9 is incompatible with this unsupported version of Windows.
Новости установщика
Это первая версия Python, для которой по умолчанию используется 64-разрядный установщик в Windows. Установщик теперь также активно запрещает установку в Windows 7. Python 3.9 несовместим с этой неподдерживаемой версией Windows.
Название: Re: PyKompasMacro
Отправлено: p3452 от 07.02.22, 10:38:20
Вот! Вот! - Увы!

 
Название: Re: PyKompasMacro
Отправлено: Iwanckiniw от 07.03.23, 17:37:43
Возникла проблема при запуске PyKompasMacro после установки. Выдаёт ошибку что Компас 3D неустановлен или не активирован, рекомендацию из окна выполнил и ничего не изменилось. Как можно решить проблему, может ли это быть связанно что установлены две разные версии компаса?


Вылетает следующая ошибка:

Возможно не установлен КОМПАС-ЗD x64.
Если КОМПАС-ЗD x64 установлен, то возможно не.
зарегистрирован.

Зарегистрируйте КОМПАС-ЗD, запустив от имени.
администратора из подкаталога Вип каталога установки.
КОМПАС-ЗD файл kompas.exe с ключом register.

Traceback (most recent call last):
File "PyKompasMacro.pyw', line 20,in <module>
File "<frozen importiib._bootstrap>", line 1027, in
_find_and_load

File "<frozen importlib._bootstrap>", line 1006, in
_find_and_load_unlocked

File "<frozen importlib._bootstrap>", line 688, in
_load_unlocked

File "Pylnstallen\loader\pyimod02_importers.py', line 499, in
exec module

File  "recorder\useful_features.py', line 5, in <module>
File "<frozen importlib._bootstrap>", line 1027, in
_find_and_load

File "<frozen importlib._bootstrap>", line 1006, in
_find_and_load_unlocked

File "<frozen importlib._bootstrap>", line 688, in
_load_unlocked

File "Pylnstallen\loader\pyimod02_importers.py', line 499, in
exec module

File "kompas\kompas_constants.py', line 148, in <module>
AttributeError: type object 'constants' has no attribute
'vt_Remote2D'
Название: Re: PyKompasMacro
Отправлено: Slaviation от 07.03.23, 20:41:10
Добрый день.
Может. Возможно, что староватая версия КОМПАС-3D SDK которого еще не имеет контанты vt_Remote2D.
Название: Re: PyKompasMacro
Отправлено: Iwanckiniw от 07.03.23, 22:19:51
Добавил файлы ksConstants3D, LDefin2D.pas и LDefin3D.pas и заработала. Спасибо
Название: Re: PyKompasMacro
Отправлено: Slaviation от 14.04.23, 14:42:28
Добрый день.
1.7.53.108 от 14.03.2023
Для команды «Сохранить как макрос» добавлена возможность сохранения в макрос группы выделенных объектов чертежей и фрагментов.
https://slaviationsoft.blogspot.com
Название: Re: PyKompasMacro
Отправлено: rain от 13.11.23, 14:23:01
Цитата: Slaviation от 07.03.23, 20:41:10Добрый день.
Может. Возможно, что староватая версия КОМПАС-3D SDK которого еще не имеет контанты vt_Remote2D.

Здравствуйте! возникла такая же проблема с запуском. где и как можно посмотреть на наличие константы vt_Remote2D? питон на комп не установлен
Название: Re: PyKompasMacro
Отправлено: _Валентин_ от 03.04.24, 14:55:20
Добрый день.
Решил скачать PyKompasMacro.
а на сайте мне говорят, что файлы удалены, т.к. истёк срок хранения.
ужОс!
как быть, куда бежать?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 10.06.24, 07:11:16
Добрый день, коллеги.
ЦитироватьДобрый день.
Решил скачать PyKompasMacro.
а на сайте мне говорят, что файлы удалены, т.к. истёк срок хранения.
ужОс!
как быть, куда бежать?
Да, такое иногда случается. Буду периодически обновлять ссылки для скачивания.
Название: Re: PyKompasMacro
Отправлено: zaytsev от 10.07.24, 11:42:53
Slaviation подскажите пожалуйста
возможно ли в Вашем дебагере подключить функционал захватывающий работу с переменными (внешними и локальными)(для сущностей, эскизы, тела и т.д.)

в файле PyKompasMacro.ini
выставил
; Режим редактирования  графических объектов
; Позволяет записывать в макрос последовательность действий пользователя редактирования графических объектов, созданных в текущем сеансе записи макроса.
EditMode=1

; Режим создания форматированного текста : 0 - создание неформатированного, 1 - создание форматированного текста
FormattedTextMode = 0

;Режим создания графических объектов с параметрическими ограничениями: 0 - создание параметрических ограничений не записывается в макрос, 1 - записывается в макрос
;ParametricConstraintMode = 0
ParametricConstraintMode = 1

но работа с переменными не цепляется....

и второй вопрос - есть ли какие либо дополнительные настройки/рекомендации чтобы маркрорекордер записывал максимальное количество пользовательских действий/событий (создания/редактирования) в интерфейсе компас 22/API7?

Спасибо за отличный софт!
Название: Re: PyKompasMacro
Отправлено: chromium от 10.07.24, 12:27:31
Цитата: Slaviation от 10.06.24, 07:11:16Добрый день, коллеги.Да, такое иногда случается. Буду периодически обновлять ссылки для скачивания.

может на яндекс или гугл диск выложить? там не удаляются.

Для 23 версии компаса будет?

Можно ли сделать Portable версию?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 22.07.24, 13:42:43
Добрый день.
Они не дают выкладывать, модуль не проходит проверку на их антивирусах.
Под КОМПАС-3D версии  23  вроде работает.
Не знаю, надо пробовать.
Название: Re: PyKompasMacro
Отправлено: zaytsev от 07.08.24, 09:48:53
кстати, 'сгорела' тачка - отдавал в ремонт (починили - железо то же, система таже, компас тот же (или 22 на 23 апгрейдил не помню))
но до ремонта макрорекордер работал (и на 23м хотя регистрация была на 22) - после нет...(регистрационный ключ не установлен или имеет неверное значение) (запросил у вас новый серийник)
просто непонятно (ремонт=замена батарейки на биосе )) ) - даже лицензия на компас не слетела хотя жестко к железу привязана....

у вас видно привязка к железу еще жестче!!!! Круто))))
Название: Re: PyKompasMacro
Отправлено: Slaviation от 14.01.25, 19:01:12
1.7.58.117 от 14.01.2025
Изменен способ задания эскизов и модельных объектов в создаваемых операциях.
В коде макроса все создаваемые модельные объекты запоминаются в виде model_object_n, где n – порядковый номер созданного модельного объекта в текущей сессии PyKompasMacro.
Таким образом, если для создания операции требуется эскиз или модельный объект, то используются запомненные.
Если требуемых модельных объектов среди запомненных нет, то используется прежний способ их определения (по индексу в коллекциях).
Название: Re: PyKompasMacro
Отправлено: Doom2 от 25.01.25, 18:59:18
Добрый день!
Хотел воспользоваться данным приложением а он требует ключ и где его взять если в карманах дырки?
Название: Re: PyKompasMacro
Отправлено: Slaviation от 27.01.25, 08:48:43
ЦитироватьХотел воспользоваться данным приложением а он требует ключ и где его взять если в карманах дырки?

Добрый день.
Просто смело и внимательно отработайте процедуру получения регистрационного ключа (registration.txt в каталоге установки PyKompasMacro).