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

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

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

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

Вират Лакх

Версия 3.11. На этом развитие программы закрываем. Итак уже 2400 строк кода.
1) Исправление ошибок в функции сохранения файла компонента в папку сборки.
2) Навел порядок в работе дочерних окон проверки, справки и штриховки: фокусировка и закрытие на Esc.
3) Специально для ТрындецЪ добавлены всплывающие подсказки.

Helicoid

У меня в 2-х последних версиях не вносятся изменения в "свойства текущего документа", если хочу изменить обозначение, наименование сборки или детали.  После нажатия на "Вставить", внизу пишется, что данные внесены, но нечего не меняется. В v3.0 все работало. v16.1.

andrei260


---------------------------
Обозначение компонентов и тел v3.11
---------------------------
Traceback (most recent call last):
  File "C:\Users\User\Desktop\Обозначение компонентов и тел v3.11.pyw", line 25, in <module>
    from win32gui import FindWindow, ShowWindow
ImportError: No module named win32gui

---------------------------
ОК   
---------------------------

ТрындецЪ

Цитата: andrei260 от 01.07.19, 08:29:29
ImportError: No module named win32gui

Не установлен пакет pywin32. Ищите ответ тут: https://forum.ascon.ru/index.php/topic,30856

Вират Лакх

Цитироватьв 2-х последних версиях не вносятся изменения в "свойства текущего документа"

Это тот случай, когда лучшее - враг хорошего. Данная ошибка - результат очередной оптимизации. Когда меняешь давно написанный код, есть шанс не вспомнить все нюансы. В новой версии будет работать лучше прежнего. Особенно должно заметно на тяжелых моделях.
ЦитироватьImportError: No module named win32gui

ТрындецЪ правильно говорит, нужно установить соответствующий вашему питону pywin32: https://github.com/mhammond/pywin32/releases

Новая версия будет позже. Нужно разобраться еще с одной ошибкой с подсказками.

Вират Лакх

Версия 3.12.
1) Исправлена вставка свойств в верхний компонент (сам документ).
2) Оптимизирована функция вставки свойств для лучшего быстродействия.
3) Улучшено чтение верхнего компонента.
4) Добавлено сообщение при чтении свойств тел о синхронизации МЦХ со сборкой-источником.
5) Переделаны подсказки на class.
_____________________________

andrei260

Эх еще бы видео как работать с библиотекой (для примера)

Вират Лакх

А вы читайте справку, всплывающие подсказки, сообщения внизу окна и эту тему. Можете протыкать прогу на ненужных сборках и детальках. Всякие защиты на неправильные действия стоят. Если снимать видео, то оно долгое получится, чтобы показать работу всего функционала. На форум такое видео не влезет, а на обменники-ютубы выкладывать не охота. И, чтобы нормальный видос снять, надо время потратить. Предлагаю тем, кто использует программу, при желании записать видео. Мне будет интересно посмотреть программу в работе у других.

Вират Лакх

Ставлю жирную точку в разработке этой программы на версии 3.13:
1) Всё тайное становится явным, или вынесены команды создания и удаления внешних объектов спецификации с кнопки ОСТ на свои отдельные СВО и УВО.
2) Давно мне не нравилось то, что в функции проверки остаются дочерние окна без кнопок, которые приходилось закрывать самому. Решил положить конец этому безобразию и сделал так, что последний вор закрывает двор последняя исчезающая кнопка закрывает свое окно.

Вират Лакх

У кого компас 17 и 18, проверьте у себя следующее.
Если в к16 в обозначении модели указать код документа, например, МД, то в спецификации такая моделька, имеющая в наименовании перенос строки @/, пишется в одну строку.
Вопрос: в какой-то из новых версий это вроде исправили, но не помню точно, в 17 или 18.
Владельцы 14 и 15 могут тоже проверить, вдруг у них нет такого.

Петрович-47

Пожалуйста:
Перенос работает

Andrei 72

Скачал OKTv313. Что делать с содержимым ( файл с расширением PYW) ? Извините за смешной вопрос. :shu:

Вират Лакх

Версия Пи (3.14). Дальнейшая полировка. Это, видимо, бесконечный процесс. Количество строк осталось прежним 2500.
1) Кое-какая оптимизация кода.
2) Изменено разделение наименования на название, материал и габарит. Теперь, если убрана галочка Получать материал, материал в названии не будет портиться, а останется как есть, чтобы потом правильно вставиться обратно.
3) Предупреждение "Использование кода документа в моделях может вызвать ошибки с многострочным наименованием" выдается только для версий компаса с 14 по 16.
4) Раньше при чтении наименование и обозначение компонентов просто сравнивались с их источниками. Отсюда предупреждение могло появиться только при их различии с источником. Т.е. могли быть сняты галочки Источник, а программа при этом промолчать. Теперь проверяется сама галочка Источник. При равных значениях при снятой галке теперь программа выдаст предупреждение об отсутствии синхронизации.
5) При отсутствии галочки ПМ чтение тел сделал аналогично компонентам (раньше материал всё равно вырезался из наименования).
6) Если в размерах допуск стоит вида 100+3-2, то высоту индексов теперь используем малую. Для допусков типа 100+3 остается средней высоты.
7) Раньше при создании объекта спецификации тела менялись точки на запятые у всего наименования. Эта замена для тел библиотеки металлоконструкций, где размеры пишутся зачем-то через точку. Эта замена могла испортить название или материал, если они содержали точки. Теперь программа старается сделать замену только в габаритах.
8) В проверке сборки теперь тоже проверяются сами галочки Источник, а не равенство свойства источнику.
9) В проверке сборки соответствие МЦХ источнику теперь происходит сразу при получении материала. Тем самым хоть чуточку еще увеличить скорость обработки.
Цитата: Andrei 72 от 18.07.19, 12:12:51
Что делать с содержимым ( файл с расширением PYW) ?

С содержимым ничего лучше не делать. Файлик нужно запускать через pythonw.exe. Для этого должны быть в наличии и в рабочем состоянии python и дополнение к нему pywin32. Некоторые подробности тут: https://forum.ascon.ru/index.php/topic,30856.0.html
Если что-то не работает, то установить снова https://www.python.org/downloads/ и соответствующий ему https://github.com/mhammond/pywin32/releases

andrei260

Здравствуйте, подскажите как с помощью этой чудесной библиотеки вставлять размеры детали как  во вложении?

Вират Лакх

Что-то я вопрос не понял. Одна картинка соответствует другой. Данные внесены из программы в деталь.
Вопрос в том, как получить сами размеры 750 и 50?
Как вариант, выделяете грань и нажимаете кнопку с линейкой, или по горячей клавише, или через меню на ПКМ.
Или сначала кнопку с линейкой (клавишу или через ПКМ), а потом грань. Или можно отдельно ребра измерить.
Точность измерения настраивается задвигалкой 0 мм. Можно дописать допуски типа 750-3х50+3.
p.s. Любой, кто считает программу чудесной, может совершить donate :)

andrei260

Сформулирую по другому вопрос, по нажатию на линейку программа измеряет размер грани и проставляет его в окно, а хотелось бы чтобы она , при необходимости формировала надпись формата 100х200.
PS Донатить куда?

Умка

Убери галку "мм". Можно ещё драйвер для коврика под мышь установить ::) :-)))...

andrei260

ЦитироватьУбери галку "мм"

А вот и не так, чтобы проставить габариты детали на ЛКМ нажать на поверхность детали было
ЦитироватьМожно ещё драйвер для коврика под мышь установить
ну не надо ля ля

Вират Лакх

Вы о какой "необходимости" говорите? Умка правильно догадался? Вы о добавлении "мм" к размерам? Так и говорите :)
Можно еще коврик для мыши совсем удалить. Я, например, без ковра.
Если нужно эту галочку "мм" совсем отключить, чтобы она при повторном запуске не была включена опять, то в строке 2408 кода замените True на False, соблюдая регистр:
mm_var.set(True) -> mm_var.set(False)
или просто удалите эту строку.
p.s. Про донателло напишу в лс. Сразу скажу, что часть сразу отправится основателю программы ув. ТрындецЪ. Тем более, эту функцию измерений он заложил.
-------------------------
"Или сначала кнопку с линейкой (горячую клавишу или через ПКМ), а потом грань" - я так и говорил.
В итоге Вы вроде получили что хотели.

andrei260

Программа все правильно делает, просто я еще в ней не до конца разобрался и некоторых функциях приходится догадываться методом научного тыка.
Если мерить длину ребра, то программа пропишет L=100 мм, а если нужны габариты детали то нужно нажать на поверхность детали и она проставит габариты 100х200, причем не добавляя ММ, не зависимо от того стоит галка в мм или нет