Библиотека для деталей БЧ

Автор Вират Лакх, 19.08.17, 07:32:57

« предыдущая - следующая »

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

matb

26.12.18, 09:25:29 #320 Последнее редактирование: 26.12.18, 09:55:48 от matb
1. Запуск программы pyw - библиотеки.png Повторение.

2.  Спасибо ТрындецЪ за PortablePython_3.2.5.1.exe http://forum.ascon.ru/index.php/topic,31668.msg258317.html#msg258317
и наставления по запуску.

Вират Лакх

Обозначение компонентов и тел v3.0
1. Чтение и запись свойств тел в сборках и подсборках аналогично работе с компонентами. Тела в деталях не обрабатываются.
2. Расширена проверка сборки и её объектов спецификации, улучшено включение синхронизации объектов спецификации с их геометрией.
3. Новая кнопка "S" включает всем базовым объектам спецификации Синхронизацию с документом-владельцем.
4. Теперь измерения геометрии в Компас v18 работают.
5. Добавлена отмена измерения геометрии на Esc и через ПКМ.
6. Меню материала на ПКМ со свободного пространства окна переставлено на поля материал.
7. Добавлено в меню на ПКМ: "Добавить в буфер" и "Удалить".
8. Теперь меню на ПКМ адаптивное.
9. Улучшено получение нужного экземпляра компонента для записи "БЧ" и "кг" в первый из его копий объект спецификации.
10. Исправлены другие некоторые ошибки (в т.ч. совместимость программы для python 2.x и 3.x), оптимизирован код программы.

Коллеги, поздравляю Вас с Новым годом и дарю Вам свеженаписанные 1800 строк кода этой программы.
Это финальная версия. Нового функционала скорее всего не будет, а только незначительные улучшения, исправление ошибок и совместимость с различными версиями Компас-3D и Python.

На написание программы было потрачено очень много личного (вечернего, ночного, утреннего) и рабочего времени. Поэтому, если кому-то программа нравится, приму благодарность не только кнопкой на форуме, чтобы хоть как-то компенсировать семье занятое время.

vasurnik

данная версия не запускается (Компас V16.1.4х64, Python2.6)

DesignЯR

Цитироватьданная версия не запускается (Компас V16.1.4х64, Python2.6)

Если поподробнее то как-то так
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
RESTART: C:\Users\USER\Desktop\Обозначение компонентов и тел v3.0\Обозначение компонентов и тел v3.0.pyw

Traceback (most recent call last):
  File "C:\Users\USER\Desktop\Обозначение компонентов и тел v3.0\Обозначение компонентов и тел v3.0.pyw", line 1547, in <module>
    import pythoncom, re, sys, math, win32gui, ctypes, win32con, os, subprocess
ImportError: No module named pythoncom

Вират Лакх

Бывает, что установленная с Компасом связка Python + pywin32 не работает или перестает в какой-то момент работать. Проблема pythoncom - это ошибка в pywin32. Нужно переустановить его.

Вот сайт, откуда брать дистрибутивы pywin32: https://github.com/mhammond/pywin32/releases
Для питон 2.6 последняя версия pywin32 на сегодня (не забываем про разрядность x32 или x64):
https://github.com/mhammond/pywin32/releases/download/b221/pywin32-221.win-amd64-py2.6.exe

А лучше деинсталлировать весь питон 2.6 с его pywin32, удалить папку C:\Python26 и поставить с нуля последние на сегодняшний день питон + пивин32. Если Вы используете макросы, написанные для версии 2.x, то это будет (устанавливать в этой последовательности):
1) Python 2.7.15 для x64: по этому адресу https://www.python.org/downloads/release/python-2715/
берем ссылку https://www.python.org/ftp/python/2.7.15/python-2.7.15.amd64.msi
2) pywin32 для x64:
https://github.com/mhammond/pywin32/releases/download/b224/pywin32-224.win-amd64-py2.7.exe

Если макрос не будет запускаться обычным двойным кликом, то укажите windows, что файлы .pyw нужно запускать программой pythonw.exe

"Обозначение компонентов и тел v3.0" должен работать на любом питоне, начиная с 2.6, заканчивая актуальным 3.7.2. Если Вам кажется, что программа где-то работает неправильно, то у файла макроса измените расширение .pyw -> .py Тогда при запуске двойным кликом будет еще чёрное окно. В нём будут отображаться ошибки.

vasurnik

Цитироватьу файла макроса измените расширение .pyw -> .py Тогда при запуске двойным кликом будет еще чёрное окно. В нём будут отображаться ошибки.

черное окно запускается на несколько секунд и закрывается... ошибок не вижу.
Предыдущие версии библиотеки для деталей БЧ запускались и работали

vasurnik

Цитата: Вират Лакх от 30.12.18, 20:12:54

А лучше деинсталлировать весь питон 2.6 с его pywin32, удалить папку C:\Python26 и поставить с нуля последние на сегодняшний день питон + пивин32. Если Вы используете макросы, написанные для версии 2.x, то это будет (устанавливать в этой последовательности):
1) Python 2.7.15 для x64: по этому адресу https://www.python.org/downloads/release/python-2715/
берем ссылку https://www.python.org/ftp/python/2.7.15/python-2.7.15.amd64.msi
2) pywin32 для x64:
https://github.com/mhammond/pywin32/releases/download/b224/pywin32-224.win-amd64-py2.7.exe

Если макрос не будет запускаться обычным двойным кликом, то укажите windows, что файлы .pyw нужно запускать программой pythonw.exe


снес Python 2.6 и  переустановил Python 2.7 - не помогло, программа Обозначение компонентов и тел v3.0 - не запускается. Версия программы Обозначение компонентов v2.7 - запускается и работает

Вират Лакх

Интересный случай. Я вам подготовлю другую версию макроса с выводом сообщений на черный экран. Напишите мне свою почту, давайте в диалоге выясним, почему не работает. Это где-то в начале кода при подключении компаса...

Вират Лакх

Обозначение компонентов и тел v3.1
1) Исправлен запуск макроса на некоторых компьютерах.
2) Добавлена проверка наличия стиля штриховки у материала в graphic.dns.
3) Новая функция - через нажатие на правую кнопку мыши на кнопку S создаются объекты спецификации для всех тел текущей сборки, у которых ОС не было (в справке отражено).
4) Оптимизация кода.
5) Количество строк - 1900. Завершение разработки этой программы.

matb

11.01.19, 09:32:04 #329 Последнее редактирование: 11.01.19, 14:28:29 от matb
Рекомендую PortablePython 3.2.5.1 - админа на предприятии просить не пришлось.

От ТрындецЪ
Освоение спецификации в 18м компасе.
Ответ #114
"...Вот ссылка на самораспаковывающийся архив с портативным питоном
http://ftp.nluug.nl/languages/python/portablepython/v3.2/PortablePython_3.2.5.1.exe
В распакованной папке будет отладчик IDLE, запустите его, откройте в нём файл "Обозначение компонентов и тел v3.0 alpha.pyw" и запустите на выполнение (F5)."

matb

11.01.19, 10:04:57 #330 Последнее редактирование: 11.01.19, 16:01:01 от matb
1. Справка Обозначение компонентов и тел v3.1.xls
2. Запускал IDLE-Portable.exe, открывал через него ... v3.1.pyw,
нажимал F5 - но запуск ... v3.1.pyw не стабилен (иногда.. запускается со второго раза по F5)

Вират Лакх

matb, чтобы запустить макрос, не надо идти в соседнюю калитку через Владивосток.
То, что вы изобразили, - это для отладки и написания кода.
Для запуска программы достаточно нажать двойным кликом левой кнопкой мыши по файлу .pyw
Если не работает, то сказать винде, что pyw надо открывать с помощью pythonw.exe (см. картинку).
UPD.
Написанное выше справедливо для установленного питона.
В портативном питоне открывать нужно через Python-Portable.exe, иначе возникает ошибка при загрузке модулей.

Вират Лакх

Цитата: Вират Лакх от 11.01.19, 10:43:17
В портативном питоне открывать нужно через Python-Portable.exe, иначе возникает ошибка при загрузке модулей.

1) Кстати, не всегда возникает такая ошибка импорта модулей.

2) Если у кого-то макрос не запускается (matb, например), то возможно мешает отсутствие прав на запись для подобной папки:
c:\Python27\Lib\site-packages\win32com\gen_py\
В таком случае заменяем две строки в макросе на эти:

import KompasAPI5 # = gencache.EnsureModule('{0422828C-F174-495E-AC5D-D31014DBBE87}', 0, 1, 0)
import KompasAPI7 # = gencache.EnsureModule('{69AC2981-37C0-4379-84FD-5DD2F3C0A520}', 0, 1, 0)

Тогда рядом с макросом или рядом с pythonw.exe должны лежать эти два модуля: KompasAPI5.pyc и KompasAPI7.pyc, которые питон сам генерирует из соответствующих файлов .py
а) Во вложении версия v3.1 с таким импортом и модулями от компас 16.1 (Обозначение компонентов и тел v3.1 import.7z). Программа должна запускаться. При использовании этого варианта макроса с компас 18 и выше нужно заменить эти модули на его модули (от 18-й версии), иначе местами будут ошибки при обработке тел. Скорее всего имена модулей будут отличаться. Значит надо записать так:

import имя_вашего_модуля_компас_апи_5 as KompasAPI5
import имя_вашего_модуля_компас_апи_7 as KompasAPI7

б) Еще в "обычной" версии с KompasAPI5 = gencache.EnsureModule... поменял местами строки (импорт этих двух модулей поставил в начало кода) - см. вложение: Обозначение компонентов и тел v3.1.7z. При исправлении запуска версии 3.0 была какая-то проблема в последовательности. Может эта версия будет работать лучше.
в) Еще я сделал Обозначение компонентов и тел v3.1.exe. Но у него размер в запакованном виде 9 Мб. И модули API от 16.1 - для 18-й не пойдет.

Вират Лакх

Ох уж этот питон - у одних работает, у других по-разному: то работает, то нет, у третьих - вообще не работает.
ЦитироватьТогда рядом с макросом или рядом с pythonw.exe должны лежать эти два модуля: KompasAPI5.pyc и KompasAPI7.pyc, которые питон сам генерирует из соответствующих файлов .py

Оказывается, байт-коды .pyc для каждой версии питона разные. Поэтому вместо .pyc надо в указанных местах иметь исходники модулей .py, а каждый интерпретатор сам при первом обращении сделает себе байт-коды. Для варианта с импортом вида import KompasAPI5, а не KompasAPI5 = gencache.EnsureModule вот во вложении новый комплект с апи от 18 версии и без импорта gencache на всякий случай. Теперь должно работать везде и всюду на любом компасе и любом питоне, у которого есть PyWin32. Просто распаковываем и запускаем с помощью pythonw.exe
upd.
Эти модули .py идут с библиотекой Компас-макро и у 18-й версии расположены тут:
C:\ProgramData\ASCON\KOMPAS-3D\18\Python 3\App\Lib\site-packages\pythonwin
У старых версий компаса типа того, только в начале c:\Python26\Lib\site-packages\ ...

Вират Лакх

Для особо тяжелых случаев сделал из скрипта программу с помощью py2exe. В файле ReadMe.txt перечислено то, что должно быть в операционной системе (как правило, это уже должно у всех быть). Через PyInstaller по меркам форума слишком большой объем - в архиве 9 Мб. Эта сборка весит примерно 5 Мб.

Вират Лакх


Вират Лакх


Вират Лакх

Очередная последняя версия.
В Обозначение компонентов v3.2 следующие изменения:
1) кое-что убрано
2) кое-что добавлено
3) кое-что исправлено
4) кое-что оптимизировано
5) расширены возможности программы по локальным компонентам: теперь можно присваивать материал и номер исполнения в обозначение в источник компонента и теперь читается материал у источника локальных деталей; в основу положен этот способ http://forum.ascon.ru/index.php/topic,31982.msg259086.html#msg259086
В архиве API от Компас v18, эти файлы должны лежать или рядом с программой, или рядом с pythonw.exe, или в папке питона site-packages

vasurnik

У меня OK32 не запускается с файлами API из данного архива...

Цитата: Вират Лакх от 24.01.19, 12:00:22
... в архиве API от Компас v18...


заменил файлами их архива "Обозначение компонентов и тел v3.1 import.7z" (от сюда - http://forum.ascon.ru/index.php?action=dlattach;topic=30640.0;attach=81767) - версия OK32 - ЗАПУСТИЛАСЬ :um:

Вират Лакх

Забыл еще написать в описании версии v3.2:
6) кое-что поменяно местами, а именно на кнопке S действие ЛКМ и ПКМ, т.к. функция создания тел более частая и интересная, чем синхронизация с источником объектов спецификации, тем более, что в к18 теперь вообще нет такой кнопки-функции как синхронизация ОС с источником компонента.
vasurnik, у вас запустилось, потому что к16.1 и питон такой же 2.7.15.
7) Во вложении более универсально: pyc для к18, которые пойдут на всех версиях компаса и на питонах 2.7.15 и 3.2.5 (который портативный).
Должны лежать рядом с моей программой pyw. Когда мы рядом ставим модули в формате py, то это не решает проблему запуска у тех пользователей, у которых запрет на запись, т.к. при компиляции все равно там должны создаваться файлы.