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

Профессиональные вопросы => Программирование приложений => Биржа прикладных разработок => Тема начата: Вират Лакх от 19.08.17, 07:32:57

Название: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.08.17, 07:32:57
Это запрос на создание библиотеки.
Как мы знаем, Аскон упорно не хочет проработать запись деталей без чертежа в спецификацию.
На форуме мы с вами можем встретить кучу одинаковых тем, посвященных тому, как люди напрягаются от отсутствия этой функции.
Кто из программистов может заняться написанием библиотеки?
Руководство и вознаграждение сообразим.
В 3D это пока представляется одним описанным на форуме способом: создать линию-выноску (потом скрыть её, чтобы не мешалась), в нее напихать информацию и создать ссылку в свойствах модели на неё. Вручную это делать очень долго.
Название: Re: Библиотека для деталей БЧ
Отправлено: СВ от 19.08.17, 11:04:39
 Если К17 действительно это не может, то
+5 (из 5)
Но скорее, начинать нужно с вопроса к Аскону в лице В.В. Никонова.
-  -  -
А я, дурачок, только что спрашивал http://forum.ascon.ru/index.php/topic,9150.msg241749/topicseen.html#msg241749:
Цитата: Студент 2015 от 19.08.17, 10:06:38
Я хочу чтобы детали БЧ вот так определялись и читались в спецификации. ...
- А вообще, автоматическая спецификация так умеет, автоматически?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.08.17, 11:11:31
Ничо она не умеет... Пока сами не сделаем, так и не будет уметь. Ну может в какой-нибудь V18 или дальше, но точно скорее всего наверно по-любому не в V16.х версиях. Очередной раз поднялась тема с БЧ в соседней ветке, вот я и создал эту.
UPD. И даже более того, лучше, чтобы это сделали мы сами, чем аскон. Они сделают не более чем по ГОСТу и еще неизвестно, как это у них получится. А некоторым надо по-всякому, чтобы было еще наплевательски на ГОСТ :)
Название: Re: Библиотека для деталей БЧ
Отправлено: chelkar от 24.08.17, 14:33:18
Цитата: Вират Лакх от 19.08.17, 07:32:57
Это запрос на создание библиотеки.
А что должна уметь делать эта библиотека?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 24.08.17, 14:49:17
Цитата: chelkar от 24.08.17, 14:33:18
А что должна уметь делать эта библиотека?
Мне вот тоже интересно. Уважаемый, Вират Лакх, сформируйте ТЗ пожалуйста!
Например, я детали БЧ в сборке делаю локальными, чтобы они не потерялись. В спецификацию приходит обозначение и наименование этих деталей. Вы хотите внесение наименования упростить, чтобы имелась возможность вносить туда дроби, шероховатость и  прочие знаки?
Чтоб ещё в графе Формат спецификации прописывалось "БЧ", чтоб масса в примечании проставлялась или ещё чего?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.08.17, 08:46:15
В двух словах ТЗ я написал в первом сообщении. Пока её задача сделать так, чтобы в свойствах модели в Наименовании прописать то, что нужно для деталей БЧ:
1) Наименование детали @/ - эта строка может отсутствовать.
2) Материал @/ - эта строка тоже может отсутствовать.
3) Размеры вида "L = <ссылка>±<допуск> мм", "<ссылка>±<допуск>х<ссылка>±<допуск> мм" и даже "D = <ссылка>±<допуск> мм" вплоть до "D = <ссылка>±<допуск> мм, d = <ссылка>±<допуск> мм" с возможностью отсутствия допусков.
Попробовать обойтись программно без создания этой промежуточной линии-выноски, т.к. опыты с ссылками на линию-выноску показывают, что оно там не всегда толком обновляются.
Материалы в виде ссылки тоже коряво получаются.
Так что, видимо, это будет лучше не набор ссылок, а просто вручную быстро обновляемый набор.
Библиотека берет имя (если задано) делает как-нибудь конкатенацию с материалом в виде "Лист$d4 ГОСТ 19903-74;09Г2С-12 ГОСТ 5520-79$" (если нужно) + размеры, которые берутся из переменных. А каких переменных - может это будут заранее созданные библиотечные переменные вида wodL, bchA, которые можно создать в детали-шаблоне. Пользователь сам уж впишет переменную вида v155. А можно еще круче, чтобы пользователь библиотеке указал ребро, и она бы поняла, что L = ..., или два ребра - значит АхВ, или диаметр - значит D = мм, два диаметра - значит D = мм, d = мм. Про обозначение детали БЧ в виде диаметра не комментируем :) И параметрически еще привязалась бы, вообще была бы круть.
Чтобы в Формат вписывалось БЧ и в примечание масса - с этим уже хорошо справляется библиотека Авторедактор от ув. Дмитрия22. Так что это уже сделано и не требуется.
Название: Re: Библиотека для деталей БЧ
Отправлено: pr0100 от 25.08.17, 09:45:10
Присоединяюсь к теме, потребность этого тоже имеется.
Заполнять наименование можно программно, используя данные переменных. А параметры материала это константы.


Вот кусок кода на python, его просто нужно причесать под переменные.




#########################################

# -*- coding: cp1251 -*-
#Заполнение наименование модели
import pythoncom
from win32com.client import Dispatch, gencache


import LDefin2D
import MiscellaneousHelpers as MH
name = 'тут пишем наименование'
#  Подключим константы API Компас
kompas6_constants = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
kompas6_constants_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants


#  Подключим описание интерфейсов API5
kompas6_api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
kompas_object = kompas6_api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))
MH.iKompasObject  = kompas_object


#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID, pythoncom.IID_IDispatch))
MH.iApplication  = application




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


iPart7 = kompas_document_3d.TopPart
iPart = iDocument3D.GetPart(kompas6_constants_3d.pTop_Part)




iPart.name = name
iPart.Update()

Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.08.17, 10:01:56
Цитата: pr0100 от 25.08.17, 09:45:10
... А параметры материала это константы.
Можно не совсем константы, а типа Лист$ds ГОСТ 19903-74;09Г2С-12 ГОСТ 5520-79$, где s - тоже переменная.
Название: Re: Библиотека для деталей БЧ
Отправлено: pr0100 от 25.08.17, 10:05:58
Цитата: Вират Лакх от 25.08.17, 10:01:56
Можно не совсем константы, а типа Лист$ds ГОСТ 19903-74;09Г2С-12 ГОСТ 5520-79$, где s - тоже переменная.


Ну так это я имею в виду.
Здесь три переменных.
1 Толщина
2 Ширина
3 Длина


Весь остальной текст, это константы.
В группе вк это обсуждалось, там есть готовый макрос. Который по параметрам детали вносит данные в свойства.
https://vk.com/topic-29994774_26653498?post=63195
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.08.17, 11:55:35
Задачу можно решить созданием объекта спецификации детали. Даже КОМПАС-МАКРО это записывает. Останется только допилить и унифицировать код. Будем пробовать.

Upd:
Вот для начала код, заполняющий объект спецификации текущей детали.
# -*- coding: utf-8 -*-
# БЧ

oboznachenie = u"АБВ.123456"
naimenovanie = u"Пластина"

import pythoncom
from win32com.client import Dispatch, gencache
import MiscellaneousHelpers as MH

#  Подключим константы API Компас
kompas6_constants = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
kompas6_constants_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants

#  Подключим описание интерфейсов API5
kompas6_api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
kompas_object = kompas6_api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))
MH.iKompasObject  = kompas_object

#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID, pythoncom.IID_IDispatch))
MH.iApplication  = application

iDocument3D = kompas_object.ActiveDocument3D()

iDocument = application.ActiveDocument
iKompasDocument3D = kompas_api7_module.IKompasDocument3D(iDocument)
iPart7 = iKompasDocument3D.TopPart

# Получаем материал детали
material =  iPart7.Material
# Получаем массу детали
mass = iPart7.Mass

# Получим интерфейс для работы с объектами спецификации
iSpc = iDocument3D.GetSpecification()

SpecificationDescriptions = iDocument.SpecificationDescriptions

# Если имеются объекты спецификации, удаляем их
if SpecificationDescriptions.Active:
    Description = SpecificationDescriptions.Active
    Objects = Description.Objects
    while Objects:
        for i in range(len(Objects)):
            Objects[i].Delete()
        Objects = Description.Objects


# Создаём базовый объект спецификации в разделе Детали
iSpc.ksSpcObjectCreate("", 0, 20, 0, 0, 0)

# Заполняем ячейки
iSpc.ksSetSpcObjectColumnText(1, 1, 0, u"БЧ") # Формат
iSpc.ksSetSpcObjectColumnText(4, 1, 0, oboznachenie) # Обозначение
iSpc.ksSetSpcObjectColumnText(5, 1, 0, naimenovanie + "@/" + material) # Наименование
iSpc.ksSetSpcObjectColumnText(7, 1, 0, str(round(mass*0.001, 2)).replace(".", ",") + u" кг") # Примечание
iSpc.ksSpcObjectEnd()

# Заполняем свойства детали Обозначение и Наименование
iPart7.Marking = oboznachenie
iPart7.Name = naimenovanie

iModelObject = kompas_api7_module.IModelObject(iPart7)
iModelObject.Update()

iDocument.Save()

Upd2: Добавлено получение материала детали
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.08.17, 18:37:52
Как говорит Сандор Клиган "В пекло Свойства модели - Наименование".
Но нет. У этого пути есть недостаток. Какого-то ляда при удалении объектов спецификации в сборке, куда входит эта деталь, в детали удаляется её собственный ОС. И надо снова создавать ОС в деталях.
А удалять объекты спецификации приходится, чтобы глюки всякие убрались и с нуля создавать спецификацию.
Если в спецификации будет 45 деталей бч, то после удаления ОС в сборке придется повторить во всех 45-ти деталях создание объекта спецификации.
Кто справку к компасу читает, такая пропажа ОС в деталях должна быть?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.08.17, 19:44:27
Цитата: Вират Лакх от 25.08.17, 18:37:52
У этого пути есть недостаток. Какого-то ляда при удалении объектов спецификации в сборке, куда входит эта деталь, в детали удаляется её собственный ОС. И надо снова создавать ОС в деталях.
А удалять объекты спецификации приходится, чтобы глюки всякие убрались и с нуля создавать спецификацию.
Хорошее замечание!
Выходит, что при повторном создании  объектов спецификации через сборку в них передаются только наименования и обозначения из свойств модели. Если это так, то я пока не знаю каким образом восстанавливать надпись "БЧ" и массу в примечании.
Заполнить свойства наименование и обозначение это не проблема.
И еще попутный вопрос: начал было разрабатывать код, который сам определял бы тип детали(пластина или цилиндр, для начала) и вычислял бы габариты деталей (длину, ширину или диаметр и длину). Вот только с алгоритмом определения пока трудности. Прямоугольный параллелепипед (пластина) можно отличить по 6 плоским граням и трем вариантам длины 12 ребер. Но косоугольный параллепипед имеет те же признаки. Короче, нужны идеи.

Upd:
Цитата: Справка КОМПАС-3D 6.2.3.4.2. Внутренние объекты
3. Автоматическое формирование объектов спецификации,
соответствующих компонентам

Автоматическое создание объектов спецификации в компонентах текущей сборки про­изводится с помощью команды Спецификация — Создать объекты специфика­ции....
При этом создаются объекты спецификации во всех компонентах, где их не было. В де­талях создаются обычные объекты спецификации, в сборках — внешние объекты спе­цификации. Обозначение и наименование берутся из свойств компонентов, заполняется дополнительная колонка Масса; документы-модели подключаются к созданным внутри них объектам спецификации.
Подробно команда автоматического создания объектов спецификации описана в разде­ле 6.2.3.7.1.
Для использования данного способа создания объектов спецификации необходимо, чтобы в файлах всех компонентов сборки были заданы их обозначения и наименования.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 28.08.17, 04:21:27
Цитата: ТрындецЪ от 25.08.17, 19:44:27
... я пока не знаю каким образом восстанавливать надпись "БЧ" и массу в примечании.
И еще попутный вопрос: начал было разрабатывать код, который сам определял бы тип детали(пластина или цилиндр, для начала) и вычислял бы габариты деталей (длину, ширину или диаметр и длину). Вот только с алгоритмом определения пока трудности. Прямоугольный параллелепипед (пластина) можно отличить по 6 плоским граням и трем вариантам длины 12 ребер. Но косоугольный параллепипед имеет те же признаки. Короче, нужны идеи.
"Восстанавливать надпись "БЧ" и массу в примечании" - на ряду с простановкой форматов А4, А3 и т.д. чертежей это была одна из первых функций библиотеки Авторедактор, и она с этим справляется. Так что теперь смело и легко можно грохнуть спецификацию и создать заново.
А попутный вопрос слишком неопределенный и сложный. И вроде большой необходимости в нем нет. Однажды созданная деталь БЧ скорее всего так и останется: швеллер - швеллером, а лист - листом.
В цитате из справки ничего нового: наименование, обозначение и масса в доп.колонку.
Название: Re: Библиотека для деталей БЧ
Отправлено: студент от 28.08.17, 08:01:45
Цитата: Вират Лакх от 28.08.17, 04:21:27
"Восстанавливать надпись "БЧ" и массу в примечании" - на ряду с простановкой форматов А4, А3 и т.д. чертежей это была одна из первых функций библиотеки Авторедактор, и она с этим справляется. Так что теперь смело и легко можно грохнуть спецификацию и создать заново.
А попутный вопрос слишком неопределенный и сложный. И вроде большой необходимости в нем нет. Однажды созданная деталь БЧ скорее всего так и останется: швеллер - швеллером, а лист - листом.
В цитате из справки ничего нового: наименование, обозначение и масса в доп.колонку.
Это что за библиотека такая?
Название: Re: Библиотека для деталей БЧ
Отправлено: Sabahs от 28.08.17, 08:04:57
Всё, в этой же ветке http://forum.ascon.ru/index.php/topic,29908.0.html (http://forum.ascon.ru/index.php/topic,29908.0.html).
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 28.08.17, 08:44:10
Цитата: Вират Лакх от 28.08.17, 04:21:27
А попутный вопрос слишком неопределенный и сложный. И вроде большой необходимости в нем нет. Однажды созданная деталь БЧ скорее всего так и останется: швеллер - швеллером, а лист - листом.
Основная цель идентификации типа детали - это автоматическое определение ее габаритов. Если лист, то получим длины рёбер, если круг то его диаметр и высоту цилиндра.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 28.08.17, 09:05:52
Ну успехов ) Как определить запись такой детали: круг диаметром 100 и вытянутый на 20. То ли это лист 20 с размером D=100, то ли круг 100 с длиной L = 20.
Разве что анализировать строку Материал. Если есть слово лист, то выбрать два наибольших из трех габаритов...
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 29.08.17, 02:29:39
Вот что получилось.
При запуске производится считывание свойств Обозначение, Наименование а также Материала текущей детали. Этими данными заполняются окна программы для дальнейшего ручного редактирования.

Для последнего поля ввода:
буквы "Ф" и "ф" переводятся в спецсимвол диаметра;
"+-"  переводятся  в спецсимвол "плюс-минус";
"+" перед числом переводится вместе с числом в верхний индекс средней высоты;
"-"  перед числом переводится вместе с числом в нижний индекс средней высоты.

F5 - считывает свойства текущей детали и обновляет данные в окнах;
Enter - считываются данные из окон и вносятся в свойства текущей детали;
ESC - закрывает программу.

Создание объекта спецификации отключаемая опция.

Работоспособность проверялась на КОМПАС-3D V16.0, Python  2.6.6

Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 29.08.17, 09:52:02
Цитата: ТрындецЪ от 29.08.17, 02:29:39
Вот что получилось. ...
А как-то по-другому её оформить можно? В виде библиотеки. Что-то у меня макросы из компаса хромают.
По скриншоту чего я бы хотел сделать:
1) У наименования и материала поставить рядом галочки. Если галка включена, то включить это поле в обозначение, если нет - не включать и убрать @/, которые идут за этим полем.
2) Зачем эта галочка Создавать объект спецификации?
3) А ссылки или переменные пробовали вставлять?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 29.08.17, 10:10:38
Цитата: Вират Лакх от 29.08.17, 09:52:02
Что-то у меня макросы из компаса хромают.
Компас какой версии? Хромают это как понимать?
Вообще запускается программа двойным кликом на ней, если питон установлен корректно. Если при запуске ничего не происходит, то можно попробовать обновить/поставить питон 2.х версии, возможно и на 3.х будет работать.
Сергей (pr0100), у тебя же 17 компас и питон 3. Работает эта программа?

Upd:Я не волшебник, я только учусь (с)
1) А как-то по-другому её оформить можно? В виде библиотеки. -  Этого я пока не умею делать.
2) У наименования и материала поставить рядом галочки. - Это можно.
3) Зачем эта галочка Создавать объект спецификации? - От объекта спецификации хуже никому не будет. Если кто-то не использует библиотеку "Авторедактор", то ему эта функция будет полезна. И не всегда приходится удалять объекты спецификации в сборке.
4) А ссылки или переменные пробовали вставлять? - Не пробовал, но у меня такое подозрение, что свойство может принять либо ссылку, либо текст. Как ссылка на переменную другого документа, к которой нельзя что-то добавить. Можно программно попробовать воспроизвести "костыль" с линией выноской.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 29.08.17, 10:15:51
Как хромает тут: http://forum.ascon.ru/index.php/topic,30133.new.html#new
Теперь 16.1.12х64. Двойной клик - ничего не происходит.
UPD:
У меня так ругается красным цветом в питонвине:
Traceback (most recent call last):
  File "C:\Python26\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript
    exec codeObject in __main__.__dict__
  File "D:\2.pyw", line 11, in <module>
    from tkinter import *
ImportError: No module named tkinter
Я его 2.pyw обозвал на случай глюков.
Этот пакет Tkinter должен быть у меня установлен, чтобы окно ввода данных работало?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 29.08.17, 11:26:44
Цитата: Вират Лакх от 29.08.17, 10:15:51

У меня так ругается красным цветом в питонвине:
Traceback (most recent call last):
  File "C:\Python26\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript
    exec codeObject in __main__.__dict__
  File "D:\2.pyw", line 11, in <module>
    from tkinter import *
ImportError: No module named tkinter
Я его 2.pyw обозвал на случай глюков.
Этот пакет Tkinter должен быть у меня установлен, чтобы окно ввода данных работало?
Tkinter - это стандартная библиотека для вывода графического окна.
Судя по ошибке, она не установлена. Советую снести питон и поставить заново благо он бесплатный.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 29.08.17, 11:51:18
По поводу переменных в наименовании тоже заметил такой косяк. Взято из группы в vk.com
ЦитироватьПрошу помощи. Помогите написать макрос, который бы в сборке делал следующее:
1)открывал деталь для редактирования на месте
2) имитация нажатия F5
3) Выйти из редактирования с сохранением изменений
Эти действия необходимо проделать со всеми деталями сборки. Для чего это нужно: Есть сборка в которой есть переменные. В сборке вставлены детали с переменными взятыми из этой сборки с помощью "Вставить ссылку". Эти переменные выведены в свойства детали. Теперь можно получать отчет о длине детали например. Но проблема в том что при изменении переменных в сборке данные в свойствах детали не обновляются. Чтобы отчет был актуальным необходимо открыть каждую деталь для редактирования после чего закрыть с сохранением изменений. Буду очень признателен. Готов оплатить труды.
Снёс и поставил python-2.6.6.amd64 заново. Заработало. Спасибо.
UPD:
Цитировать
2) У наименования и материала поставить рядом галочки. - Это можно.
3) Зачем эта галочка Создавать объект спецификации? - От объекта спецификации хуже никому не будет. Если кто-то не использует библиотеку "Авторедактор", то ему эта функция будет полезна. И не всегда приходится удалять объекты спецификации в сборке.
4) А ссылки или переменные пробовали вставлять? - Не пробовал, но у меня такое подозрение, что свойство может принять либо ссылку, либо текст. Как ссылка на переменную другого документа, к которой нельзя что-то добавить. Можно программно попробовать воспроизвести "костыль" с линией выноской.
2) ждем-с :)
3) объект спецификации создается, не все колонки прописывая. Доп.колонки пустые. Хотя бы массу и обозначение материала надо.
4) если делать костыль с выноской, то полюбас придется делать дополнительный костыльный макрос по проблеме обновления ссылок. Или наехать на аскон, чтобы недоделку доделали. Эти ссылки будут постоянно обманывать...
5) желательно иметь возможность запустить макрос в режиме редактирования на месте. пока облом с этим. А то и еще круче - просто выделив компонент в сборке. Библа заходит внутрь, делаем свои дела и выходим.
6) можно "х" русскую и английскую менять на специальный символ умножить.
7) окошку бы следовало закрываться сразу после внесения изменения в модель. можно, например, сделать энтер - внести и не закрываться, а ctrl+enter - внести и закрыться.
8) можно для "мм" еще отдельную галочку сделать. Когда она включена, то в конец строки добавляется " мм".
9) сейчас галочка не запоминается. а когда их станет больше ей и будущим следовало бы запоминать свое положение.
10) Не люблю я этот наклонный шрифт, которым у вас сделано в окне Обозначение и наименование. Шрифт в полях ввода тоже прямой что ли сделать, а то не сочетается с прямым курсором. Или курсор наклонить.
ну и т.д. Большое поле для критикантства.
Но уже веет от такого окошка удобством. Можно уже сейчас измерить деталь и, не закрывая информационное окно, списать в окно библиотеки цифры даже путем копи-пасте. Удобно тем, что не нужно мозг использовать как буфер обмена. Так можно дорасти до вполне приличной библиотеки.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 29.08.17, 12:52:33
Первую версию выложил, как раз, чтобы критику и предложения послушать. Одной парой глаз за всеми нюансами не углядишь. По мере возможности доработаю.

Upd: Мелкие экспресс-обновления.
1) Исправлен баг с индексами у которых более одного знака после запятой;
2) Добавлена замена "х" на соответствующий спецсимвол;
3) Добавлено заполнение доп.колонок объекта спецификации Масса и Материал
4) Ctrl + Enter вносит данные в модель и закрывает программу
5) Убран наклон шрифта
Название: Re: Библиотека для деталей БЧ
Отправлено: pr0100 от 29.08.17, 15:06:38
Цитата: ТрындецЪ от 29.08.17, 10:10:38
Сергей (pr0100), у тебя же 17 компас и питон 3. Работает эта программа?


Не верный синтаксис. Не работает. Ошибка на запуске.



Там перевод в юникод u'Теxt', если везде убрать "u", то запускается.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 30.08.17, 05:47:58
Мысль вслух. Вообще, эта библиотека (ну библиотекой её не назовешь) посвящена наименованию детали БЧ. Тому функционалу, которого нет в компасе. В текущей версии скрипта есть обозначение. Это повторение функционала компаса. На суд общественности - может выкинуть? Вроде бы и пригодится, но тогда можно и присвоение материала сделать в тут, и раздел спецификации, и еще какие-нибудь свойства модели...

Можно ли задать окну свойство всегда поверх всех окон?

Как-то повелось, что нажатие на среднюю кнопку мыши на полях ввода - это очистить содержимое. Вместо того, чтобы даблкликом выделять и нажимать del, мы просто на поле жмем СКМ. Получается быстрее. Это чтобы имя детали или содержимое последней строки стирать быстро.

Так как имя не всегда нужно, то второе считывание будет происходить так: скрипт считает первое стоящее до @/ - это будет материалом. В окне программы в имя забьется материал. Его, получается, надо быстро стереть.
Тут напрашивается настройка - та самая галочка участия имени детали. Когда она будет постоянно выключена, то второе считывание будет верным.

Лучше зеленую кнопку сделать контрол+энтером. И вообще от простого Энтера отказаться?

Можно ли для последней строки сделать на даблклик вызов текстовых шаблонов?

Если у меня масса 1,411, то программа в доп. колонку записывает 1,41. Т.е. по-своему округляет. Но ладно для колонки примечание, а в доп.колонку надо вносить точное значение.

По присвоению материала. Да, работает, но для стиля по умолчанию. А я у себя сделал не Пользовательская 3, а материал 3. Странно, что аскон по умолчанию сделали не то.

А вообще интересно наблюдать программу и к ней исходный код. Всегда можно подправить что-нибудь под себя на сколько мозгов хватит.
UPD:
Лично мне больше нравятся сообщения от компаса или библиотек в виде балуна в нижнем правом углу, чем окно с кнопкой OK, чтобы не тыкать лишний раз. Поэтому предлагаю для сообщения "Активный документ не является деталью!" изменить вид сообщения.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 31.08.17, 16:23:48
Тестируем 0.3 версию библиотеки оформления деталей БЧ!

Чему мы научились:
1) Работать с выделенной деталью сборки (с локальными пока не работает);
2) Находиться поверх всех окон;
3) Нажатие на среднюю кнопку мыши на полях ввода  очищает содержимое;
4) Появились долгожданные галочки у названия и материала, исключающие их;
5) Запуск внесения изменений Ctrl+Enter;
6) Вместо информационных окон всплывающие сообщения;
7) Масса в доп.колонке спецификации без округления;
8) Галочка добавляющая в конец наименования надпись " мм"

До чего мы ещё не доросли:
1) Даблкликом в окнах ввода вызывать текстовые шаблоны;
2) Сохранять настройки галок;
3) Делать непонятную вещь описанную Вират Лакх'ом, как:
ЦитироватьПо присвоению материала. Да, работает, но для стиля по умолчанию. А я у себя сделал не Пользовательская 3, а материал 3. Странно, что аскон по умолчанию сделали не то.

Если кто-то натолкнет на решение задачи вставки текстовых шаблонов, буду признателен.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 31.08.17, 16:36:59
Хм. Не запускается. v0.2 работает, v0.3 - нет.
UPD:
Непонятная вещь поясняется картинкой и "исправляется" с 10 на 9 в строке iSpc.ksSetSpcObjectColumnText(9, 3, 0, material) # Доп.колонка Материал.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 31.08.17, 17:03:41
Цитата: Вират Лакх от 31.08.17, 16:36:59
Хм. Не запускается. v0.2 работает, v0.3 - нет.
Перезалил. Проблема была в наличии print'ов в коде.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 31.08.17, 17:35:46
1) Работать с выделенной деталью сборки (с локальными пока не работает) - закрывает открытую в окне деталь.
5) Запуск внесения изменений Ctrl+Enter - не закрывает за собой своё окошко.
*) в доп.колонку Материал затолкал вместе с собакойдробью Лист$d5,0 ГОСТ 19903-74;Ст3сп ГОСТ 14637-89$@/
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 31.08.17, 18:14:08
Цитата: Вират Лакх от 31.08.17, 17:35:46
1) Работать с выделенной деталью сборки (с локальными пока не работает) - закрывает открытую в окне деталь.
5) Запуск внесения изменений Ctrl+Enter - не закрывает за собой своё окошко.
*) в доп.колонку Материал затолкал вместе с собакойдробью Лист$d5,0 ГОСТ 19903-74;Ст3сп ГОСТ 14637-89$@/
1) Не  учел, того что деталь может быть уже открыта. Доработаем в следующей версии.
2) Вроде, работало, перепроверю.
3) Можете решить самостоятельно срезом, добавив в строку, где вставляется материал в доп.колонку, после переменной material[:-2]
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 31.08.17, 19:31:04
2) Вы внесение и закрытие сделали почему-то на альт+энтер. По крайней мере в горячих клавишах.
3) Да лично мне особо не надо, я спецификацию делаю авторедактором. Для других пользователей в след. версии подправьте, плиз.

Как сделать, чтобы галочка была по умолчанию выключена?

На меня тут на ночь глядя снизошло озарение.
Чтобы части наименования почти всегда вставали на свои места, надо заполнять эти три части не так, как сейчас.
Когда наименование детали состоит без имени из материала и размеров, то при повторном вызове БЧ в первую строку Имя вписывается материал, а строка с размерами остается пустой.
Давайте так: заполнять будем с конца. Сначала вписываются размеры. Если "старое" имя не содержит собакидроби или содержит одну @/, то впишутся размеры (берем или всю строку, или после собаки соответственно), обновится материал, а имя останется пустое. Считаем, что имя+размеры без материала никто не пишет. Если собак две и более, то текст до первой @/ поместить в имя. Только тут косяк может быть в том, если материал будет содержать собаку, а имя не предусмотрено. Но это редкое явление. Галочку вырубил и всё.

Галочку "мм" надо поумнее. Если в конце строки уже есть мм, то не добавляться. Сейчас она тупо наращивается одна за другой.

Еще по очистке на СКМ. В библиотеке сварных соединений сделано, что скм МЕЖДУ полями в пространстве окна в диалоге очищает все поля. И тут можно так же. Если все три поля переписывать заново надо, то будет удобно.

Ладно, хватит на сегодня.
Библиотека стремительно развивается. Скоро нашей всеобщей проблеме записи деталей БЧ придет трындец :)
Название: Re: Библиотека для деталей БЧ
Отправлено: pr0100 от 31.08.17, 20:38:24
Цитата: ТрындецЪ от 31.08.17, 16:23:48
Тестируем 0.3 версию библиотеки оформления деталей БЧ!


До чего мы ещё не доросли:
1) Даблкликом в окнах ввода вызывать текстовые шаблоны;


Если кто-то натолкнет на решение задачи вставки текстовых шаблонов, буду признателен.


У меня такое предложение завести сторонний файл, который будет лежать рядом с макросом. И который будет сам обновляться в окне. В прикрепе пример списка. Я правда не знаю как вызвать событие при нажатии из цикла.
Ну и так же соответственно с сохранением галок, какой то файл. 
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 31.08.17, 23:53:08
Цитата: Вират Лакх от 31.08.17, 19:31:04
2) Вы внесение и закрытие сделали почему-то на альт+энтер. По крайней мере в горячих клавишах.
Да, точно я и забыл. Ctrl+Enter просто вносит изменения, Alt+Enter вносит изменения и закрывает программу. Если нужно оформить несколько БЧ деталей, то первый вариант предпочтительней. Ещё можно с одной детали считывать инфу, в другую заносить(без материала).
Кому не нравится, поправите под себя, там функции поменять у событий.
root.bind("<Control-Return>",lambda event: Start())
root.bind("<Alt-Return>",lambda event: Start2())
ЦитироватьКак сделать, чтобы галочка была по умолчанию выключена?
Вместо:
check.select()
написать:
check.deselect()
Цитата: pr0100 от 31.08.17, 20:38:24
У меня такое предложение завести сторонний файл, который будет лежать рядом с макросом. И который будет сам обновляться в окне.
Ну и так же соответственно с сохранением галок, какой то файл. 
Не хотелось бы изобретать велосипед. Удобнее, на мой взгляд, будет с компасовскими текстовыми шаблоны работать. А для конфига без стороннего файла не обойтись. Ввести функцию, которая собирает состояния галок перед закрытием и устанавливает при открытии. Хотя, как по мне, из-за четырех галок конфиг вводить излишне.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 01.09.17, 04:55:01
Цитата: ТрындецЪ от 31.08.17, 23:53:08
Да, точно я и забыл. Ctrl+Enter просто вносит изменения, Alt+Enter вносит изменения и закрывает программу. Если нужно оформить несколько БЧ деталей, то первый вариант предпочтительней. Ещё можно с одной детали считывать инфу, в другую заносить(без материала).
Ну это что-то уж слишком на мой взгляд. Чем не устраивало Enter - ввод без закрытия, Ctrl+enter - ввод с закрытием? То же самое, только в одном случае не надо нажимать комбинацию.
Чем хорош этот питон, каждый сам легко поменяет как ему надо. Я у себя так кнопки сделал. И галки на имя и ОС вырубил.

С велосипедом согласен.
UPD:
ЦитироватьА для конфига без стороннего файла не обойтись.
В реестр можно :) В принципе можно и не заниматься сохранением галок. Их, действительно, мало и, как правило, они в каком-то одном состоянии будут большую часть времени. В коде выставил deselect где надо и усё...

Еще предложение. Если постулат о том, что деталь БЧ не прописывается в виде имя+размеры (без материала), принимается общественностью, то можно сделать, чтобы галочка материал за собой выключала (когда её убирают) галку имя.
Вопрос. Галочку имя сделал выключенной по умолчанию. Но при запуске проги поле для ввода имени активно. Если галку включить-выключить, то поле становится как надо - неактивным. Может чего подшаманить, чтобы сразу поле было неактивным?

upd:
А может звездочку * тоже будем на знак умножить заменять? Чтобы на цифровом блоке клавиатуры в одном месте набирать.
upd2:
еще фишку надо, прям надо! чтобы можно было вызвать это окно из спецификации / объектов спецификации сборки! Чтобы можно было прям из спецификации присваивать обозначения и наименования для деталей бч и обычных. А то эти кнопочки компасные по синхронизации дебильно работают, никакой возможности работать с объектами-источниками из спецификации. У меня стоит сортировка сначала по обозначению, потом материалу (материал в доп колонке работает в отличие от настройки по умолчанию), потом по наименованию. Так что мне легко будет работать по присвоению обозначения и наименования прямо в спецификации. А не тыкаться по каждой детали, прописывая это "как положено".
upd3
А если научимся вызывать текстовые шаблоны, то может и материалы тоже сможем, чтобы в макросе можно было менять, а не только считывать. Тогда возможности в спецификации расширятся. И вообще, это будет хорошая альтернатива компасным свойствам модели.

Еще. Если в сборке деталь редактируется на месте, то макрос должен понимать это, что мы уже в детали, и не просить указать её в дереве сборки.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 01.09.17, 11:08:46
Цитата: Вират Лакх от 01.09.17, 04:55:01
Чем не устраивало Enter - ввод без закрытия, Ctrl+enter - ввод с закрытием? То же самое, только в одном случае не надо нажимать комбинацию.
Видимо, я не правильно понял Ваше предыдущее пожелание:
Цитата: Вират Лакх от 30.08.17, 05:47:58
Лучше зеленую кнопку сделать контрол+энтером. И вообще от простого Энтера отказаться?
Ну так я и отказался от Enter и сделал зелёную кнопку Ctrl + Enter. :)
Цитировать
Вопрос. Галочку имя сделал выключенной по умолчанию. Но при запуске проги поле для ввода имени активно. Если галку включить-выключить, то поле становится как надо - неактивным. Может чего подшаманить, чтобы сразу поле было неактивным?
Nazvanie["state"] = 'disabled' #делает виджет неактивным
Nazvanie["state"] = 'normal' #снова делает его активным


Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 01.09.17, 11:37:29
Да, зеленым сделать ctrl+enter. И чтобы эта зеленая кнопка закрывала. И простой enter на тот момент вроде как оказался не у дел. Но с вашей идеей обработать несколько деталей, не закрывая окно, ему будет применение: вносить данные в модель, не закрывая окно. Я сейчас так сделал у себя и вроде удобно. Просто в компасе ctrl+enter всегда завершает команду.

Нашел Nazvanie["state"], а что сделать, чтобы при запуске виджет был неактивным, не догоняю. Галку отключил, а поле ввода - нет.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 01.09.17, 14:43:39
Цитата: Вират Лакх от 01.09.17, 11:37:29
Нашел Nazvanie["state"], а что сделать, чтобы при запуске виджет был неактивным, не догоняю. Галку отключил, а поле ввода - нет.
См. скрин.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 02.09.17, 11:30:20
Еще на тему редактирования детали из сборки.
Выделили деталь, запустили макрос. Чтобы записать данные, измеряем деталь, т.е. выделение её снимается. Когда дело доходит до ввода значений в модель, программа говорит "Выделите деталь". Предлагаю ей запоминать, с какой деталью она работает.

Я же раньше не писал про контекстное меню в окне? Просто хотя бы копировать, вставить, вырезать.
А у вас не возникал вопрос ко мне "А харя не треснет?" :)
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 05.09.17, 20:10:12
Наконец-то созрел очередной многострадальный релиз программы для оформления деталей БЧ.
Встречаем версию 0.4!

Особых новшеств нет.
Основной упор был сделан на унификацию работы: с файлом-деталью, с деталью сборки (локальной, внешней, находящейся в режиме редактирования "на месте", выделенной пользователем).
1) Добавлено "запоминание" программой последней детали, с которой она работала.
2) Даблклик  ЛКМ в поле ввода вызывает окно выбора компасовских текстовых шаблонов. Вставляемый шаблон заменяет имеющийся текст целиком( т.к. я не нашёл пока рабочего способа считывать текущую позицию курсора)
3) Клик правой кнопкой мыши очищает окно ввода (от нажатия колеса пришлось отказаться, т.к. это событие вызывает баг, вставляющий в окно  часть текста из предыдущей вставки).
4) "Умная" опция  "мм": если введенный текст заканчивается на мм, то не дублирует "мм" и снимает галку с себя.
Горячие клавиши:
Enter - вставка данных; Ctrl + Enter - вставка данных и выход; Esc - выход; F5 - считать данные.

Не реализовано:
1) Создание объекта спецификации локальной детали(не знаю, как получить у неё интерфейс iDocument3D, через который создаю объекты спецификации iDocument3D.GetSpecification() )
2) Работа со свойствами из спецификации.
3) Контекстное меню (вырезать, копировать, вставить). По причине того, что не смог, как уже было сказано, получать текущую позицию курсора, да и возиться с этим было некогда. В коде есть зачатки этой функции с комментариями, на случай если кто-то захочет развить эту тему самостоятельно.


P.S.: Чем длиннее становится код, тем тоскливее его редактировать :%:
Название: Re: Библиотека для деталей БЧ
Отправлено: NikoNLay от 05.09.17, 20:44:08
как подключать библиотеку?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 05.09.17, 21:25:59
Цитата: NikoNLay от 05.09.17, 20:44:08
как подключать библиотеку?
При корректно установленном Python версии 2.х, она запускается двойным кликом по файлу.
Название: Re: Библиотека для деталей БЧ
Отправлено: Sabahs от 05.09.17, 21:26:30
Это - макрос, но не библиотека.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 06.09.17, 05:25:08
1) Надо написать "Выделите деталь и нажмите F5", а лучше после выделения самой сделать F5.
2) Для локальной детали ctrl+enter не закрывает окно.
3) У меня почему-то ЛКМх2 не вызывает шаблоны, а закрывает окно.
4) что-то с "мм" не то. Не надо "мм" выключаться / переключаться, делаться активной / неактивной. Пользователь сам выставит в коде галку по умолчанию. Просто она умная, когда включена. Суть галочки звучит так: если я включена, то буду добавлять мм, если её не хватает; если я выключена, то ничего не делаю. Перемудрили малость.
5) Со средней кнопкой печалька...
6) Вы не смотрели по заполнению частей наименования с конца, которое я описывал ранее?
Вы скиньте куда-нибудь (сюда или в личку) номер телефона или карты, попробую хоть как-то возместить "аморальный" ущерб.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 09:16:06
Экспресс-обновление v0.4.1
Цитата: Вират Лакх от 06.09.17, 05:25:08
1) Надо написать "Выделите деталь и нажмите F5", а лучше после выделения самой сделать F5.
Не всегда нужно считывать данные. Например, введу данные, выделю деталь и внесу изменения. Изменю данные, выделю другую деталь и внесу в неё изменения. И к тому же, чтобы вводить проверку на выделение, нужно включать бесконечный цикл с периодическим опросом КОМПАСа (раз в секунду, например) на предмет наличия выделенной делали. Этот вариант мне не нравится.
Цитировать2) Для локальной детали ctrl+enter не закрывает окно.
Поправил.
Цитировать3) У меня почему-то ЛКМх2 не вызывает шаблоны, а закрывает окно.
Проверял на двух машинах - работает.
Цитировать4) Что-то с "мм" не то. Не надо "мм" выключаться / переключаться, делаться активной / неактивной.
Убрал самодеактивацию. "мм" ещё не ставится, если последняя строка пуста.
Цитировать6) Вы не смотрели по заполнению частей наименования с конца, которое я описывал ранее?
Я не вижу в этом необходимости. Если какое-то поле не заполнено, то оно игнорируется
Все пробелы в начале и конце во всех полях удаляются при вставке свойств.
Например, если наименование состоит из метериала и габарита, то при считывании материал не попадёт в название, а габарит попадёт на своё место.
Если наименование состоит только из имени (или габарита), то при считывании, если поле "название" активно, то всё вносится в него, если неактивно, то всё вносится в габарит.
Материал всегда вносится на своё место. При считывании наименования материал "вырезается" из него. Всё что до первой @/ считается названием, всё что после последней @/ считается габаритом. Не помню в какой версии это сделал.

Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 06.09.17, 09:54:13
Цитата: ТрындецЪ от 05.09.17, 21:25:59
При корректно установленном Python версии 2.х, она запускается двойным кликом по файлу.
Я полный нуб в программировании. Скачал библиотеку. Скопировал на рабочий стол файл. По двойному клику просто ничего не происходит. Питон 2.6.6 установлен и х32, и х64. Компас х64 15.2.20. Что не так делаю?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 09:57:22
Цитата: KiDim от 06.09.17, 09:54:13
Я полный нуб в программировании. Скачал библиотеку. Скопировал на рабочий стол файл. По двойному клику просто ничего не происходит. Питон 2.6.6 установлен и х32, и х64. Компас х64 15.2.20. Что не так делаю?
Должен ещё быть запущен КОМПАС и открыта либо деталь, либо сборка.
Подумываю над тем, чтобы убрать это ограничение и позволять запускаться в любой момент.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 06.09.17, 10:15:13
Запустил Компас, создал файл детали, запустил библиотеку. Опять ничего. Тоже попробовал для файла сборки. Результат идентичный. Либо версия Компаса не подходящая, либо кривой Питон. Может переустановить его?
На сайте у них уже 3.4.7 лежит дистриб.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 10:35:18
Цитата: KiDim от 06.09.17, 10:15:13
Запустил Компас, создал файл детали, запустил библиотеку. Опять ничего. Тоже попробовал для файла сборки. Результат идентичный. Либо версия Компаса не подходящая, либо кривой Питон. Может переустановить его?
На сайте у них уже 3.4.7 лежит дистриб.
Можно и переустановить, но под питоном 3.х не запустится без доработок кода (pr0100 уже писал об этом).
Можно ещё попробовать запустить через библиотеку КОМПАС МАКРО, изменив расширение файлу на a3m для сборки, m3m для детали.
Upd: Вообще, научите кто-нибудь, как код питона в *.rtw перегнать!
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 06.09.17, 10:40:57
1) Точно!
3) У меня окно уходит, а на его место шаблоны не приходят. Макрос так и остается висеть в диспетчере задач. И не только у меня. Но в то же время на другой точиле попробовал - работает. Что бы это могло быть... Что-то с настройками.
Цитировать
6) Если наименование состоит только из имени (или габарита), то при считывании, если поле "название" активно, то всё вносится в него, если неактивно, то всё вносится в габарит.
Я вырубил по умолчанию название: Nazvanie["state"] = 'disabled' и check1.deselect()
Деталь называется просто L = 100 мм. При вызове макроса текст все равно заносится в название, а не в габарит. Если потом нажать обновить, то перескакивает вниз, как вы описали сейчас. Где бубном постучать, чтобы при запуске понимал вырубленность названия?
ЦитироватьВообще, научите кто-нибудь, как код питона в *.rtw перегнать!
Или в DLL. Мне вот нравится, как Дмитрий22 делает.
upd
Попробуйте у себя в шаблонах добавить свой файл tdp (см. картинку). Может это каким-то боком влияет.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 06.09.17, 11:04:24
Компас v13 sp2 работает в любом окне 3D и в объектах спецификации без ошибок. Питон 2.6.2.2. Спасибо за скриптик, очень не хватало такой.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 06.09.17, 11:09:17
Переустановил Петон. Теперь Python 2.7.13. Картина таже. Куда еще копать можно? Может еще какие компоненты в системе нужны?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 06.09.17, 11:21:53
Цитата: Умка от 06.09.17, 11:04:24
Компас v13 sp2 работает в любом окне 3D и в объектах спецификации без ошибок. Питон 2.6.2.2. Спасибо за скриптик, очень не хватало такой.
В объектах спецификации окно запускается, но сами объекты макрос еще не понимает.
Присоединяйтесь к вознаграждению автора. Он уже устает от этой программы.
KiDim, я этот ставил: https://www.python.org/ftp/python/2.6.6/python-2.6.6.amd64.msi (https://www.python.org/download/releases/2.6.6/)
Там на сайте было написано: The last binary release of Python 2.6 was 2.6.6. Может нужна именно версия 2.6? Прошлый удаляли?
Название: Re: Библиотека для деталей БЧ
Отправлено: pr0100 от 06.09.17, 11:23:17
Цитата: KiDim от 06.09.17, 11:09:17
Переустановил Петон. Теперь Python 2.7.13. Картина таже. Куда еще копать можно? Может еще какие компоненты в системе нужны?


Скорее всего не в питоне дела, а в библиотеке компаса


Цитата: ТрындецЪ от 06.09.17, 10:35:18
Можно и переустановить, но под питоном 3.х не запустится без доработок кода (pr0100 уже писал об этом).


Здесь уже что-то другое, операции по изменению синтаксиса не проходят. Видимо в коде появились, имеются какие-то функции по различию версий.
И видимо они где-то в "PartAPI5"
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 11:24:38
Цитата: KiDim от 06.09.17, 11:09:17
Переустановил Петон. Теперь Python 2.7.13. Картина таже. Куда еще копать можно? Может еще какие компоненты в системе нужны?
Через КОМПАС МАКРО тоже не работает?
Попробуйте открыть и запустить через отладчик IDLE (Python GUI), который в комплекте с питоном идёт. И посмотрите какую ошибку он напишет.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 06.09.17, 11:39:24
Значит сначала опишу ситуевину. Мало ли чего важного упустил.

Стоял Компас 15.2.20 х64. Стоял Питон 2.6.6 х32 и х64 (думаю с дистриба Компаса, т.к. сам не помню чтобы ставил).

1) Компас Макро установлен не был. Поставил на прошлой неделе через обновление Компаса.
2) Сегодня удалил Питон (оба через установку Винды).
3) Скачал дистриб с сайта изготовителя 2.7.13 (написано что самый стабильный и т.д. и т.п.)
4) Поставил оба дистриба х32 и х64 в разные папки.

Запускаю Компас. Создаю файл детали. Создаю новый объект специи. Запускаю библиотеку. Ничего не происходит (визуально).

Запустил Компас Макро. Открываю объекты специи. Жму кнопку Макросы. Там выбираю Добавить. Выбираю библиотеку, которую ранее переименовал для детали m3m. Выбираю и жму Ок. В поле Макрос пусто и кнопка выполнить не активна.

Вот такая вот печалька...
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 06.09.17, 11:40:49
Цитата: ТрындецЪ от 06.09.17, 11:24:38
Попробуйте открыть и запустить через отладчик IDLE (Python GUI), который в комплекте с питоном идёт. И посмотрите какую ошибку он напишет.
Запускаю через Edit with IDLE. На курсоре появляется колесико секунды на 2 и все.
Название: Re: Библиотека для деталей БЧ
Отправлено: Sabahs от 06.09.17, 11:47:58
Цитата: ТрындецЪ от 06.09.17, 10:35:18
...
Upd: Вообще, научите кто-нибудь, как код питона в *.rtw перегнать!
Наверно, лучше перейти на, что нибудь из этого списка:
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 12:27:41
Цитата: KiDim от 06.09.17, 11:40:49
Запускаю через Edit with IDLE. На курсоре появляется колесико секунды на 2 и все.
Попробуйте запустить сначала IDLE из ПУСКа, в ней открыть макрос и запустить на выполнение. Перед этим в диспетчере убейте все висящие процессы называющиеся "pythonw".

Цитата: KiDim от 06.09.17, 11:39:24
Создаю файл детали. Создаю новый объект специи. Запускаю библиотеку. Ничего не происходит (визуально).
Объект спецификации программа сама создаст для детали.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 06.09.17, 12:35:38
Цитата: ТрындецЪ от 06.09.17, 12:27:41
Попробуйте запустить сначала IDLE из ПУСКа, в ней открыть макрос и запустить на выполнение. Перед этим в диспетчере убейте все висящие процессы называющиеся "pythonw".
Запускаю из Пуск. Колесико на курсоре пару секунд и все. Процессов в памяти с названием "pythonw" не нашел. Стоит корпоративный Каспер. Не может он банить Питон? Обычно, если блокирует, то вываливается окошко от него, а тут просто ничего. Но мало ли...
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 12:43:05
Цитата: KiDim от 06.09.17, 12:35:38
Запускаю из Пуск. Колесико на курсоре пару секунд и все. Процессов в памяти с названием "pythonw" не нашел. Стоит корпоративный Каспер. Не может он банить Питон? Обычно, если блокирует, то вываливается окошко от него, а тут просто ничего. Но мало ли...
Даже не знаю, что еще предложить. Обычно все мои проблемы с питоном решались его переустановкой.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 06.09.17, 13:15:43
Помучаю еще админов. Может они еще чего скажут... Спасибо за помощь!
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 13:58:58
Цитата: Вират Лакх от 06.09.17, 10:40:57
Попробуйте у себя в шаблонах добавить свой файл tdp (см. картинку). Может это каким-то боком влияет.
Т.е. у Вас свой файл? А где вы к нему путь прописали для КОМПАСа? Что-то в *.ini не нахожу.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 06.09.17, 14:21:06
Есть свой и стандартный. Они оба в окне шаблонов есть. Оттуда же и открывается свой. Путь никакой не прописывается. Поэтому и влиять не должно, но мало ли. Я свой убрал, оставив стандартный, - эффекта ноль.
Судя по коду, шаблоны как-то мутно вызываются.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 14:43:50
Цитата: Вират Лакх от 06.09.17, 14:21:06
Судя по коду, шаблоны как-то мутно вызываются.
Вызывается оно так:

ksDynamicArray = kompas_object.ksExecDialPredefinedTextEx (float(str(win)[1:]))

Вызываем шаблоны указывая функции дискриптор (номер) дочернего окна, которое в начале было создано и спрятано от глаз:
win = tk.Toplevel(root)
win.withdraw())

Эту запись float(str(win)[1:]я вывел опытным путём.
print win выдавало строку вида ".456786"
Я удалил из нее точку и поменял тип на "действительное число"
После этого заработало.
Возможно Ваша система как-то по другому задаёт дискрипторы.
Нужно смотреть в отладчике что выдаст "print win"

Цитата: Вират Лакх от 06.09.17, 10:40:57
Я вырубил по умолчанию название: Nazvanie["state"] = 'disabled' и check1.deselect()
Деталь называется просто L = 100 мм. При вызове макроса текст все равно заносится в название, а не в габарит. Если потом нажать обновить, то перескакивает вниз, как вы описали сейчас. Где бубном постучать, чтобы при запуске понимал вырубленность названия?
Удалите строку 548
in_Nazvanie.set(naimenovanie)
и замените в строке 578
in_Gabarit.set("") на in_Gabarit.set(naimenovanie)

Цитата: pr0100 от 06.09.17, 11:23:17
Здесь уже что-то другое, операции по изменению синтаксиса не проходят. Видимо в коде появились, имеются какие-то функции по различию версий.
И видимо они где-то в "PartAPI5"
Я ещё изменил способ вызова модуля Tkinter для 2.х питона с from Tkinter import * на import Tkinter as tk, а для третьего питона не поменял.
Попробуй заменить с from tkinter import * на import tkinter as tk.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 06.09.17, 15:58:48
запустил в отладчике при включенном компасе с открытой деталью. не увидел включенный компас?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 16:14:28
Экспресс-обновление v0.4.2
1) Теперь запустится и не только в детали или сборке,
2) Добавлена нормальная вставка текстовых шаблонов (вместо выделения или на текущую позицию курсора)
3) Шаблоны вызываются одним нажатием ПКМ, очищение даблкликом ЛКМ.

Цитата: Вират Лакх от 06.09.17, 15:58:48
запустил в отладчике при включенном компасе с открытой деталью. не увидел включенный компас?
Что-то в системе заглючило. Раньше же без проблем запускался. Перезагрузка!
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 06.09.17, 17:49:53
ЦитироватьУдалите строку 548
in_Nazvanie.set(naimenovanie)
и замените в строке 578
in_Gabarit.set("") на in_Gabarit.set(naimenovanie)
А можно в код в нужных местах сделать if else в зависимости от одного check1.select() или deselect. Т.е. тут меняю, а остальное "переделывается само", т.е. идет по условию.
Цитировать3) Шаблоны вызываются одним нажатием ПКМ, очищение даблкликом ЛКМ.
Испокон веков было шаблоны на ЛКМх2. Может поменяем местами, раз СКМ не работает?
ЦитироватьЧто-то в системе заглючило. Раньше же без проблем запускался. Перезагрузка!
После перезагрузки то же самое, что и до нее: pyw запускается, а в отладчике - нет.
ЦитироватьЭту запись float(str(win)[1:]я вывел опытным путём.
А почему к коде версии 0.4.2 без флоата? ksDynamicArray = kompas_object.ksExecDialPredefinedTextEx (str(win)[1:])
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 06.09.17, 22:54:44
Цитата: Вират Лакх от 06.09.17, 17:49:53
А можно в код в нужных местах сделать if else в зависимости от одного check1.select() или deselect. Т.е. тут меняю, а остальное "переделывается само", т.е. идет по условию.
Тут снова *.cfg файл напрашивается. Кроме Вас вряд ли кто будет код править под себя.

ЦитироватьИспокон веков было шаблоны на ЛКМх2. Может поменяем местами, раз СКМ не работает?
Не припомню, где такое есть. Вообще все эти удобства чисто субъективны, кто к чему привык, тому так и удобно.
В любом случае, при острой нетерпимости каждый под себя поправить может.

ЦитироватьПосле перезагрузки то же самое, что и до нее: pyw запускается, а в отладчике - нет.
Черт его знает, что ему не нравится. Могу только посоветовать скачать другую программу для отладки. PyScripter бесплатный, например.

ЦитироватьА почему к коде версии 0.4.2 без флоата? ksDynamicArray = kompas_object.ksExecDialPredefinedTextEx (str(win)[1:])
Потыкал сегодня, оказалось и срез строки принимает.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 07.09.17, 02:50:23
Из-за меня одного не надо пока cfg.
В той же основной надписи, в таблице на чертеже, в спецификации, еще где-нибудь - везде ЛКМх2 вызов шаблонов.
Отсюда и привычка. Тут будет неудобно, если не поменять.
Задрал этот питон. PyScripter сказал, что ему надо х32. Я поставил. В итоге опять не работают макросы.
В этом PyScripter запускаться не стало: на эту u, которая перед текстом ругался.
upd:
На другом компе попробовал.
Вот что он говорит на запуск шаблонов:
>>>
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "D:\!Компас\Макро\БЧ.pyw", line 582, in <lambda>
    Gabarit.bind("<Button-3>", lambda event: Text_shablon(Gabarit))
  File "D:\!Компас\Макро\БЧ.pyw", line 450, in Text_shablon
    ksDynamicArray = kompas_object.ksExecDialPredefinedTextEx (str(win)[1:])
  File "C:\Python26\lib\site-packages\win32com\gen_py\0422828C-F174-495E-AC5D-D31014DBBE87x0x1x0.py", line 352, in ksExecDialPredefinedTextEx
    ret = self._oleobj_.InvokeTypes(93, LCID, 1, (9, 0), ((3, 0),),HWindow
ValueError: invalid literal for int() with base 10: '93116360L'

Не вникая в китайскую грамоту выше, выдвину версию, что у вас все эти дела х32-битные, а на х64 - не канает.
Или у вас тоже 64-битность?
При последующих попытках запуска изменяет номер, который в кавычках в конце: Валуев Еррор: инвалид литерал ... '90707912L' или 91621320L и т.д.
Этот print win затолкал в код после win = tk.Toplevel(root) и win.withdraw()
Он написал .91109320L
Потом этот же номер в валуеве пишет после нажатия на правую кнопку.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 07.09.17, 07:46:17
Ошибка: При редактировании детали на месте в сборке убиваются ВСЕ объекты спецификации.

Пожелание: В колонке Примечание в массе нужны незначащие ноли после запятой.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 07.09.17, 08:42:18
Цитата: Вират Лакх от 07.09.17, 02:50:23
В той же основной надписи, в таблице на чертеже, в спецификации, еще где-нибудь - везде ЛКМх2 вызов шаблонов.
Отсюда и привычка. Тут будет неудобно, если не поменять.
Не замечал, спасибо! Поменял. Но этот вариант плох тем, что нельзя выделить фрагмент текста и вызвать шаблон который этот фрагмент заменит, т.к. двойной клик ЛКМ снимает выделение. Это не знаю где прописано, видимо, в самой Windows.
ЦитироватьValueError: invalid literal for int() with base 10: '93116360L'
Не вникая в китайскую грамоту выше, выдвину версию, что у вас все эти дела х32-битные, а на х64 - не канает.
Или у вас тоже 64-битность
У меня Win7 х32, проверял ещё на х64 Win8 с х32 Компасом 16.0 тоже работало.
По поводу .93116360L могу сказать, что у меня в конце буквы не выдавало, возможно в них и проблема.
Попробуйте с разными вариантами:
просто (win);
(str(win)[1:-1])
(int(str(win)[1:-1]))
(float(str(win)[1:-1]))
Думаю, что второй вариант должен сработать.

Цитата: Умка от 07.09.17, 07:46:17
Ошибка: При редактировании детали на месте в сборке убиваются ВСЕ объекты спецификации.
Не замечал и не смог воспроизвести. И локальные пробовал и внешние. Может поподробнее опишите или эту сборку скините, если не выше v16.0.
ЦитироватьПожелание: В колонке Примечание в массе нужны незначащие ноли после запятой.
Строка 104
iSpc.ksSetSpcObjectColumnText(7, 1, 0, str(round(mass*0.001, 2)).replace(".", ",").rstrip("0").rstrip(",") + u" кг") # Примечание
Тут: round(mass*0.001, 2)
2 - это число знаков после запятой.
Чтобы незначащие нули показывались нужно вырезать  .rstrip("0").rstrip(",")
В итоге для трех знаков с незначащими нулями получим:
iSpc.ksSetSpcObjectColumnText(7, 1, 0, str(round(mass*0.001, 3)).replace(".", ",") + u" кг") # Примечание

Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 07.09.17, 09:38:15
Пардонте-с, ошибка при редактировании детали на месте в сборке не повторилась.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 07.09.17, 12:48:19
На обычный (win) вместо валуева выругался AttributeError: Toplevel instance has no attribute '__trunc__'
(str(win)[1:-1]) - заработало! Вот замуты такие приходится преодолевать...
С заменой фрагмента текста можно или обломиться, или продублировать на СКМ или ПКМ...
Что-то я так не догнал, что там с очисткой на СКМ? Я переставил на буттон-2 - вроде работает.
Уф-ф... Так, над чем дольше работаем?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 07.09.17, 13:19:39
Цитата: Вират Лакх от 07.09.17, 12:48:19
Что-то я так не догнал, что там с очисткой на СКМ? Я переставил на буттон-2 - вроде работает.
Я вставлял шаблон в одно поле,переходил в другое поле, нажимал СКМ и у меня самопроизвольно  вставлялся текст из предыдущего поля.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 07.09.17, 13:22:06
С утра включил комп и снова попробовал библу. Через IDLE запустилась и выдала след. текст.

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\kiselev\Desktop\БЧ_v0.4.2.pyw ==============

Traceback (most recent call last):
  File "C:\Users\kiselev\Desktop\БЧ_v0.4.2.pyw", line 5, in <module>
    import pythoncom, re, sys
ImportError: No module named pythoncom
>>>
Что скажете?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 07.09.17, 13:55:27
Цитата: KiDim от 07.09.17, 13:22:06
ImportError: No module named pythoncom
Что скажете?
Может быть не видит модуль из-за того, что две версии питона поставили (х32 и х64). Снесите обе и поставьте ту, на которую давал ссылку Вират Лакх.

По поводу проблемы с вызовом шаблонов:
Унифицировал запись. В следующих версиях будет так:  (re.findall(r'\d+', str(win))[0]) - будет вытаскивать только цифры.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 07.09.17, 18:18:41
На том компе, где запортачилось, та же песня. Ни перестановка, ни отключение контроля учетных записей, ни чистка реестра от старого питона не помогают. Тот же ImportError: No module named pythoncom
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 07.09.17, 22:18:41
Цитата: Вират Лакх от 07.09.17, 18:18:41
На том компе, где запортачилось, та же песня. Ни перестановка, ни отключение контроля учетных записей, ни чистка реестра от старого питона не помогают. Тот же ImportError: No module named pythoncom
Погуглил. Пишут, что pythoncom - это модуль для работы с Windows API.
Если нет его, можно тут (https://translate.googleusercontent.com/translate_c?depth=1&hl=ru&prev=search&rurl=translate.google.ru&sl=en&sp=nmt4&u=https://sourceforge.net/projects/pywin32/files/pywin32/Build%2520221/&usg=ALkJrhjX4zux5TqMUnkYPjwWhEOKTTS_fw) скачать, насколько я понял.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 08.09.17, 07:44:22
# Надмись "мм" - в коде м на п поменяйте. Пусть это комментарий, но тем не менее.

Этот pythoncom с компасовским питоном приходит, а чистый с сайта без него. Попробуем по вашей ссылке поставить. Надо, видимо, чтобы еще версии совпадали.

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

По поводу вставки шаблона. Вот как лучше, чтобы он сам сразу замещал весь текст или вставлялся в текущую позицию курсора?
Мне кажется, что лучше сразу замещать весь. Создал шаблон вида 'L = +-' или '+-*+-' и вставляй его поверх того, что там устаревшее/ненужное есть. А сейчас получается надо сначала удалить содержимое самому, а потом шаблон. Может вернем замещение?

Вот как я под себя макрос делаю: без Названия по умолчанию, с ОС в 9-й тип колонки, без создания объекта спецификации по умолчанию, с очисткой на СКМ. См. архив.

На локальной детали, когда галочка создавать ОС выключена, ошибочно пишет, что не удалось создать объект спецификации. Я его и не просил создавать.

Ну и хотелось бы подвести итог на сегодня.
Было бы интересно, чтобы макрос понимал объекты спецификации.
А еще интереснее - это более продвинутый путь ввода габаритов. Как я писал в ТЗ, или это специальные переменные в детали-заготовке, или указание ребер.
Как видится указание ребер. Нажимаем некую новую кнопку. Она работает типа как "Длина ребра". Если указали одно ребро, то макрос автоматом вставляет L = <измеренная длина>. Если указали второе ребро, то убирает L и пишет <измеренная длина>х<измеренная длина>. Может даже с тремя ребрами так сделать. И с диаметрами так же: D = , d =. Может, чтобы не выдумывать свои команды пользоваться компасными, просто считывать у них данные.
А по переменным так. Если они отличны от нуля, то вписать при запуске макроса их в габарит. С условиями, конечно. Например, есть переменные bchl, bcha, bchb, bchs, bchd1, bchd2. Если все по нулям, кроме bchd1, то вписать D = <bchd1>. Если бардак в переменных или все по нулям, то как сейчас есть: считать старые габариты.
Или какие ваши идеи?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 08.09.17, 10:24:17
Цитата: Вират Лакх от 08.09.17, 07:44:22
... Можно этот баг использовать как копирование текста одним нажатием из одного поля в другое :)
Предлагаю сделать все же СКМ очистку, а третью кнопку зарезервируем на меню.
У меня СКМ вставляет не весь текст, а часть его. Поэтому, от нее хочу отказаться вообще. На ПКМ у нас есть 1 клик, 2 клика и даже 3 клика, есть где разгуляться.
Цитировать
По поводу вставки шаблона. Вот как лучше, чтобы он сам сразу замещал весь текст или вставлялся в текущую позицию курсора?
Мне кажется, что лучше сразу замещать весь. Создал шаблон вида 'L = +-' или '+-*+-' и вставляй его поверх того, что там устаревшее/ненужное есть. А сейчас получается надо сначала удалить содержимое самому, а потом шаблон. Может вернем замещение?
Не нравится мне лично вызов шаблонов даблкликом ЛКМ, т.к. теряем возможность выделения, которую лучше иметь. Поэтому полное замещение считаю не нужным. Полное удаление в любом случае забиндим куда-то. +-1 нажатие погоды не сделает.
Upd: Сейчас ещё один вариант на ум пришел: по даблклику ЛКМ заменяем целиком а в контекстном меню (ПКМ) добавим пункт Вставить текст и можно будет выделять и через меню заменять часть текста.
ЦитироватьНа локальной детали, когда галочка создавать ОС выключена, ошибочно пишет, что не удалось создать объект спецификации. Я его и не просил создавать.
Косяк исправлю к следующей версии.
ЦитироватьБыло бы интересно, чтобы макрос понимал объекты спецификации.
Имеются в виду объекты спецификации сборки или отдельного документа спецификации, где они связаны с деталями?
ЦитироватьА еще интереснее - это более продвинутый путь ввода габаритов. Как я писал в ТЗ, или это специальные переменные в детали-заготовке, или указание ребер.
....
Или какие ваши идеи?
Я свой вариант раньше выдвигал, чтобы автоопределение типа детали было.
Например, при нажатии ПКМ в поле ввода габариты выпадет менюшка, где помимо Вырезать, Копировать, Вставить будет пункт Автогабарит. Нажимаем на него и программа пытается определить тип детали (вот над алгоритмом надо подумать).
Нужно сначала определиться с типами БЧ деталей.
1) Прямоугольная пластина (3 измерения: толщина в материале должна быть заложена, получаем длину и ширину)
2) Круглая пластина(2 измерения: толщина в материале должна быть заложена, получаем диаметр)
3) Сортовой прокат [трубы, уголки, швеллеры и т.п.](все параметры в материале, получаем только длину)
Вы ещё писали о двух диаметрах, это деталь типа шайбы что ли? Я не сталкивался с такими.
А вариант с чтением переменных неуниверсален. Сомневаюсь, что кто-то будет заморачиваться с созданием спец.переменных для примитивных деталей.
Ещё как вариант добавить пункт Снять размеры, это когда, как Вы писали, предлагается пользователю ткнуть в ребро или грань и получить их размеры. Этот вариант, наверное, проще в реализации, поэтому начать с него можно.

Но меня больше тревожит сейчас невозможность создавать объекты спецификации локальных деталей.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 08.09.17, 11:15:25
ЦитироватьУ меня СКМ вставляет не весь текст, а часть его.
Да, ту часть которую выделили.
ЦитироватьСейчас ещё один вариант на ум пришел: по даблклику ЛКМ заменяем целиком, а в контекстном меню (ПКМ) добавим пункт Вставить текст и можно будет выделять и через меню заменять часть текста.
Пусть так.
ЦитироватьИмеются в виду объекты спецификации сборки или отдельного документа спецификации, где они связаны с деталями?
Пока объекты спецификации сборки. Это всё происходит в рамках одного документа, поэтому проще должно быть. Посмотрим от этого пользу.
ЦитироватьНапример, при нажатии ПКМ в поле ввода габариты выпадет менюшка, где помимо Вырезать, Копировать, Вставить будет пункт Автогабарит.
Получается, назревает меню ПКМ, в котором будут операции с буфером, вставка шаблонов без очистки, автогабарит, снять размеры вручную (как у трубы указать ребро?). Если всплывающее меню хз как делать, можно и применить все ПКМ: одинарное, двойное и тройное.
ЦитироватьВы ещё писали о двух диаметрах, это деталь типа шайбы что ли? Я не сталкивался с такими.
Это из области беспредела, когда деталь по-хорошему чертить надо. Это круглая пластина с отверстием в центре такого-то диаметра.
ЦитироватьА вариант с чтением переменных неуниверсален. Сомневаюсь, что кто-то будет заморачиваться с созданием спец.переменных для примитивных деталей.
Согласен. Так себе затея, конечно. Не рассматриваем.
ЦитироватьНо меня больше тревожит сейчас невозможность создавать объекты спецификации локальных деталей.
А меня и других пользователей Авторедактора не тревожит :)
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 08.09.17, 13:31:22
Таки про не работу Питона. Пошерстил форум. Нашел полезную инфу:

Цитата:
Другое дело отладка макросов - т.е запуск макросов не из под библиотеки КОМПАС-Макро.
Для этого в каталоге расширения питона PyWin32 -  \Lib\site-packages\pythonwin\ должны лежать модули
Kompas6API5.py
Kompas10API5.py
Kompas10API7.py
ksConstants.py
ksConstants3D.py
LDefin2D.py
LDefin3D.py
MiscellaneousHelpers.py
piksupport.py
+ в каталоге питона \Lib\site-packages\pythonwin\pywin модули pik.cfc и pik.cfg.

Переустановил Питон и модуль PyWin32. Перечисленных выше файлов там не оказалось. Нашел их на другом компе (почему их нет на моем - не знаю). Переписал файлы и перезагрузил комп (это обязательно). Все работает! Присоединяюсь к освоению модуля!
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 08.09.17, 13:46:02
Цитата: KiDim от 08.09.17, 13:31:22
Kompas6API5.py
Kompas10API5.py
Kompas10API7.py
ksConstants.py
ksConstants3D.py
LDefin2D.py
LDefin3D.py
MiscellaneousHelpers.py
piksupport.py

Эти модули устанавливает вместе с собой библиотека КОМПАС МАКРО, это от АСКОНа.
До 17 версии КОМПАСа макросы при записи ссылались на эти модули и работали через них.
В 17 версии макросы сделали более универсальными.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 09.09.17, 16:19:59
Цитата: Умка от 07.09.17, 07:46:17
Ошибка: При редактировании детали на месте в сборке убиваются ВСЕ объекты спецификации.
...
Пардонте-с, ошибка при редактировании детали на месте в сборке не повторилась.
Вы просто перепутали немного. Все объекты спецификации убиваются при редактировании БЧ из сборки, не заходя в редактирование на месте, т.к. макрос вычищает ОС там, где находится. В этом случае он находится в сборке. Видно, как макрос заходит в редактирование на месте и сразу выходит. Так может пусть не выходит сразу, а после ctrl+enter или Esc ?

Еще:
После применения макроса в редактировании на месте слетают галочки Наименование и Обозначение в свойствах измененного компонента. Ух, как я это не люблю! Зачем их Аскон вообще придумал?! Как они задолбали!
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 10.09.17, 12:27:25
Цитата: Вират Лакх от 09.09.17, 16:19:59
После применения макроса в редактировании на месте слетают галочки Наименование и Обозначение в свойствах измененного компонента. Ух, как я это не люблю! Зачем их Аскон вообще придумал?! Как они задолбали!
Макрос меняет свойства детали в сборке и в источнике, поэтому галка погоды не делает. Я не нашел, как программно ее ставить.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 10.09.17, 12:36:23
Делает она погоду. Потом, если надо будет поменять обозначение или наименование, бегай за этими галочками. Особенно, когда одна деталь входит несколько раз или в разных сборках, и обозначение или наименование меняются в самой детали. Так что пока приемлемый способ редактировать только открытую в окне деталь.

UPD
Так не надо её менять в сборке! Только в источнике. Это необходимо и достаточно. И не испортится галочка, и не надо искать, как её возвращать. Можно попробовать включить в макрос после редактирования источника перестройку модели, чтобы пользователю самому не нажимать F5.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 11.09.17, 16:27:24
Представляю очередную версию библиотеки оформления деталей БЧ!

Что нового:
Появилось контекстное меню у полей ввода(вызывается кликом ПКМ).
Через контекстное меню можно снять измерения с детали:
принимает прямое ребро, окружность, четырехугольную грань, цилиндрическую грань.

Изменения:
В свойства компонентов сборки больше не вносятся изменения, только в источник.
Текстовый шаблон, вставленный по даблклику ЛКМ, заменяет имеющийся текст целиком.

Изменение горячих клавиш:
СКМ - очистка.

Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 11.09.17, 21:01:33
1) Окно появляется без фокуса на себе.
2) Надо бы ограничить возможности макроса в отношении стандартных изделий.
3) если мы, вызвав на лкмх2 шаблоны, ничего не вставили и вышли из шаблонов, то макрос все равно стирает содержимое поля.
4) Самое главное - не исправлено "Все объекты спецификации убиваются при редактировании БЧ из сборки, не заходя в редактирование на месте"
5) Если стоит галочка создавать объект спецификации, то при редактировании детали из сборки и редактировании на месте дублируется её объект спецификации.
6) Чтобы добраться до Измерить, нужно два раза нажать: ПКМ и выбор его в меню. Надо сократить одно нажатие, сделав кнопку рядом (перед) полем габарит.
7) Точность (кол-во знаков после запятой) ввода цифр от команды измерить, я так понимаю, регулируется в коде макроса.
8) Я бы пробелы не ставил до и после знака умножить.
9) Т.к. команда измерить вставляет готовый текст вида 55х66, то она должна перед вставкой очистить строку от старого. Или другой подход? Просто цифру/ы вставлять как сейчас сделано для длины, а остальное юзер допишет или повставляет столько измерений, сколько хочет? Я бы для длины сделал сразу запись L = , стерев перед этим содержимое строки. Если полностью стирать, то не одно выделение надо допустить... А может лучше для ПКМ оставить такое единичное выделение без очистки аля вставки шаблона без очистки, а на будущую кнопку (см. п.6) сделать вставку готовых текстов вида L = ... с очисткой. Над работой чудо-кнопки придется хорошенько подумать.
10) если я вместо грани выделил, например, эскиз в дереве построения, то он почему-то говорит, что "выделите только один объект".
11) В режиме выбора для команды Измерить нельзя отказаться от этого на Esc. Обязательно вынь да подай "грань или ребро"
12) Я бы написал "поверхность или ребро". "Цилиндрическая грань" как-то в голове не укладывается.
13) "Грань не является четырехугольником" лучше заменить на "прямоугольником".
Пока хватит. Хорошего по-маленьку :)
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 18.09.17, 15:07:40
Библиотека оформления деталей БЧ v0.6

Учтены по возможности почти все пожелания Вират Лакх'а из предыдущего сообщения, кроме:
Цитировать12) Я бы написал "поверхность или ребро". "Цилиндрическая грань" как-то в голове не укладывается.
При вызове КОМПАС'овской команды "Информация об объекте и указании цилиндрической грани в информационном окне выводится сообщение"Грань тип: цилиндрическая". Ничего ужасного в этой записи не вижу.
Цитировать13) "Грань не является четырехугольником" лучше заменить на "прямоугольником".
Не могу заменить, т.к. в программе не заложена проверка перпендикулярности сторон, и она не отличает прямоугольник от параллелограмма, квадрат от ромба.


Отдельная кнопка "Измерить" заменяет в окне "Габарит" имеющийся текст целиком.
Отказ от измерений -> Esc (срабатывает не чётко, может потребоваться неоднократное нажатие)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.09.17, 05:09:11
1) Если в сборке запустить макрос и потом указать деталь, то уже не хочет так работать. Говорит "выделите деталь", а дальше ничего.
2) Ох уж эта галочка создания объекта спецификации... Без неё всё хорошо. С ней (см.рис.):
а) Если стоит галочка создавать объект спецификации, то при редактировании детали из сборки и/или редактировании на месте дублируется её объект спецификации - не исправлено. У меня, чтобы это проявилось, я сначала удаляю объекты спецификации и делаю редактирование, как говорится, с чистого листа. Тут, возможно, опять из-за разницы стилей СП - у меня пользовательская, а не которая по умолчанию.
б) у меня стоит сортировка деталей в СП в том числе и по наименованию. После создания объекта спецификации макросом сортировка нарушается: если деталь стояла последней, то потом уходит наверх.
в) изменяется номер позиции. Т.е. у нас на лицо удаление старого объекта спецификации и создание нового.
г) это удаление несет за собой множество проблем. Например, еще удаляется привязанный к основному объекту спецификации вспомогательный ОС. Или, вернее, несоздание его с новым объектом.
Короче, нельзя ли обойтись именно редактированием существующего объекта, а не удалением-созданием?
3) Измерить ни через правую кнопку, ни на новую кнопку не работает. Говорит "Теперь укажите грань или ребро", при этом окно исчезает и сразу появляется. Не может ли это опять связано с битностью? В IDLE (Python GUI) ничего не говорит.
12) Компас - не истина в высшей инстанции. Согласно интернету, грань - это "Плоскость, образующая часть ломаной поверхности тела, сторона геометрической фигуры." или "плоская поверхность предмета, составляющая угол с другой такой же поверхностью" и т.д. Если не хотите писать " "поверхность или ребро", то можно "грань, цилиндрическую поверхность или ребро". Ужасного, действительно, нет ничего, просто неграмотно.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 19.09.17, 09:39:14
Цитата: Вират Лакх от 19.09.17, 05:09:11
1) Если в сборке запустить макрос и потом указать деталь, то уже не хочет так работать. Говорит "выделите деталь", а дальше ничего.
У меня нормально работает.

Цитировать2) Ох уж эта галочка создания объекта спецификации... Без неё всё хорошо. С ней (см.рис.):
...
Короче, нельзя ли обойтись именно редактированием существующего объекта, а не удалением-созданием?
Попробую через редактирование организовать.

Цитировать3) Измерить ни через правую кнопку, ни на новую кнопку не работает. Говорит "Теперь укажите грань или ребро", при этом окно исчезает и сразу появляется. Не может ли это опять связано с битностью? В IDLE (Python GUI) ничего не говорит.
Все признаки того, что программа считает клавишу ESC нажатой (ctypes.windll.user32.GetAsyncKeyState(0x1b) == True). С чем это связано, не знаю. Видимо, другой способ отмены искать надо. Возможно, отдельное окно с кнопкой "Отмена".
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.09.17, 09:49:42
ЦитироватьУ меня нормально работает.
Еще у кого как работает?
ЦитироватьВсе признаки того, что программа считает клавишу ESC нажатой (ctypes.windll.user32.GetAsyncKeyState(0x1b) == True). С чем это связано, не знаю. Видимо, другой способ отмены искать надо. Возможно, отдельное окно с кнопкой "Отмена".
С кнопкой Esc печалька... А если не отдельное окно, а в том же самом окне? Кнопку с линейкой заменять на Стоп.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 19.09.17, 10:56:23
Только сейчас заметил, что кнопки в коде одинаково назывались. Может от этого проблема.
Поправил и текст сообщений заодно.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.09.17, 11:09:18
Тексты поменялись, но измерения не заработали.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 19.09.17, 11:09:28
Компас V13 измерения не работают
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 19.09.17, 11:28:59
Давайте тогда отменим проверку нажатия ESC и оставим как было, пока не  найдётся рабочий метод прерывания.
Во вложении.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.09.17, 12:22:53
Офигенно! Аскон, наверное, никогда бы нам так не сделал.
3) Надо будет все-таки порешать с выходом из измерения. Может правда миниокном? И наглядно видно, что макрос работает, и кнопка стоп будет.
4) Мысли вслух по "мм". Мы мм вынесли в отдельную галочку. Тогда может при считывании габарита из свойства детали, если будет в конце мм, то мм не писать в поле габарита, а включить галку мм (если она была выключена). Я имею ввиду, что мм в строке габарита не должна маячить, т.к. её обрабатывает галочка. Непервостепенно, от нечего делать можно этим заняться.
5) Сделайте, пожалуйста, одну переменную округления измеренных габаритов. Чтобы пользователь не шарил по всему коду, а в одном месте поменял и всё. Это по п.7 ответа 88.
6) Через ПКМ вставляет текст вида L=69 или Ф30. Я предлагаю, чтобы ПКМ в отношении ребер вставляла только число, а поверхности вставлять так же. Это типа для самостоятельного формирования поля габарит. Это еще одна разница между кнопкой и ПКМ.
7) В компасах версии < 17 иконки балунных сообщений различаются на информационные синие и предупреждающие желтые. Надо бы расставить их по макросу в зависимости от характера сообщения.
8) Знак равно предлагаю по умолчанию разделять пробелами: не L=69, а L = 69
p.s. Кнопка с линейкой - это так называемая текстовая кнопка? Как их делают?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 19.09.17, 14:30:05
Цитата: Вират Лакх от 19.09.17, 12:22:53
4) Мысли вслух по "мм". Мы мм вынесли в отдельную галочку. Тогда может при считывании габарита из свойства детали, если будет в конце мм, то мм не писать в поле габарита, а включить галку мм (если она была выключена). Я имею ввиду, что мм в строке габарита не должна маячить, т.к. её обрабатывает галочка. Непервостепенно, от нечего делать можно этим заняться.
Я изначально так и делал, но Вы же сами забраковали. Галка включалась/отключалась в зависимости от наличия/отсутствия "мм" в конце.
Если Вы хотите, чтобы галка только включалась, то начнется путаница:
Например, галка включена, и я считываю данные у которых нет "мм" в конце. Если галка не отключается сама, то я не пойму было ли "мм" в данных или нет. И если "мм" мне нужно, то мне придётся вносить изменения, чтобы точно знать что "мм" попадёт в свойства. Короче, вернул автовключение/отключение "мм".
Цитировать5) Сделайте, пожалуйста, одну переменную округления измеренных габаритов. Чтобы пользователь не шарил по всему коду, а в одном месте поменял и всё. Это по п.7 ответа 88.
Сделал. Ввёл две константы в начале кода
Цитировать6) Через ПКМ вставляет текст вида L=69 или Ф30. Я предлагаю, чтобы ПКМ в отношении ребер вставляла только число, а поверхности вставлять так же. Это типа для самостоятельного формирования поля габарит. Это еще одна разница между кнопкой и ПКМ.
8) Знак равно предлагаю по умолчанию разделять пробелами: не L=69, а L = 69
Реализовано.
Цитироватьp.s. Кнопка с линейкой - это так называемая текстовая кнопка? Как их делают?
Почему это кнопка текстовая? Просто кнопка. Линейка - это gif картинка преобразованная в Base64 и установленная на кнопку. Вот сайт для онлайн-преобразования (https://www.base64-image.de/)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.09.17, 18:14:30
а) "запятой  для полученных измерений детали вставляемых в окно ввода "Габарит"" - лишний пробел и запятую после слова деталей.
б) таким же образом еще хотелось бы три настройки сделать (значения переменной типа булеан: true/false):
I) создавать объект спецификации,
II) Использование названия детали по умолчанию,
III) добавлять мм в габарит по умолчанию.
Тогда мне или кому-то еще не нужно будет переписывать программу под себя.
в) И сейчас бракую такое поведение галочки "мм". Знаете, что мне хочется от этих "мм"? Забыть о них! Есть у пользователя два подхода: или не писать везде мм, или писать везде. Вот этот выбор пользователь и отразит в настройке III. Давайте будем по умолчанию писать мм. Как вы сейчас вернули - это постоянное включение галки для новых деталей БЧ тем, кому нужно мм везде. Как было: не нужно постоянно включать галочку для новых деталей. Последняя моя мысль была - оставить как есть работу галки, но скрыть мм, чтобы они не маячили. В итоге формулировка такая: галка носит типа информационный характер с возможностью изменения. Выставляется по умолчанию в настройках / константах макроса. Она у меня, например, будет всегда включена. В поле габарит "мм" никогда не пишутся, т.е. удаляются, если есть. А потом включенная галка добавляет обратно. Выключенная - не добавляет. По-моему зашибись.
г) Предлагаю перекомпоновку окна как на рисунке ниже. "мм" будут непосредственно стоять после габарита, типа дописываются к нему. Кнопки все в одном месте, т.е. блок управления. Я бы даже разделил кнопку Вставить [enter] на две кнопки: "вставить" и "вставить и закрыть". Получаются три квадратные кнопки. Я бы, наверное, хотел пользоваться обеими кнопками "вставить".
UPD.
Из тех трех кнопок, которые будут рядом стоять, первая должна идти "Обновить", потом "вставить", потом "вставить и закрыть".
UPD2
А-а-а, я затупил! "1) Если в сборке запустить макрос и потом указать деталь, то уже не хочет так работать. Говорит "выделите деталь", а дальше ничего." - работает она. Просто я опять забыл про этот F5. Вот её надо сделать с подписью там и так, как я показал, может она лучше будет восприниматься.
UPD3
Давайте выберем один какой-нибудь шрифт. А то Наименование и Обозначение - гостовский, остальные тексты - обычный...
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 20.09.17, 02:27:30
Что значит, когда вот так пишет? На том компе, где запортачилось раньше, теперь не вставляет на Enter или Ctrl+enter.
ЦитироватьTraceback (most recent call last):
  File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "D:\bch.pyw", line 128, in Start
    Past_prop_detal() # Вставляем свойства
  File "D:\bch.pyw", line 71, in Past_prop_detal
    iPart7.Marking = oboznachenie
  File "C:\Python26\lib\site-packages\win32com\client\__init__.py", line 471, in __setattr__
    self._oleobj_.Invoke(*(args + (value,) + defArgs))
AttributeError: 'module' object has no attribute 'VARIANT'

Еще по команде Измерить. Когда измеряем цилиндрическую поверхность, то не надо её прописывать как ф30х1000. Это, конечно, интересно, но диаметр трубы или круга будет записан в материале, и "ф30х" придется вручную стирать и писать "L = ".
Или на выбор пользователя. В блоке настроек/констант выбор варианта записи цилиндрической поверхности.

UPD
Усё, переставил наконец-то питон до полностью рабочего состояния. Вычистил папку с реестром на всякий случай. В дистрибутиве компаса есть эти питоны в \Base\Support. Вот их поставил и файлы *.py и *.pyc с другого компа \Lib\site-packages\pythonwin. Есть подозрение, что *.pyc не нужны, они то ли сами появляются при установке pywin. Что-то он там компилирует, когда ставится.

Давайте напишем в сообщении "Выделите деталь" типа того "Выделите деталь и при необходимости обновите окно" или "... нажмите F5". Непосвященному может быть непонятен этот тонкий момент в условиях, когда макрос говорит, что надо просто выделить деталь.
Ну и про необходимость восклицательных знаков подумайте. В синих информационных сообщениях лишние эмоции ни к чему. Я бы нигде их не писал.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 20.09.17, 06:14:50
Объекты спецификации добавляет, не удаляя старые. Измерения не выполняются, окно закрывается и питон висит в процессе.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 20.09.17, 06:25:44
Умка, я бы галкой создавать объекты спецификации пока не пользовался.
По измерениям указываете ребро, грань или цилиндр? - и ничего?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 20.09.17, 06:29:51
Измерения не выполняются. Стабильная версия 0.4.4
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 20.09.17, 06:35:28
Запустите макрос через IDLE (Python GUI) или через змейку. См. картинку. И сделайте измерения. Будет ли ругаться в окошке или нет.
Кто такая стабильная 0.4.4? Используйте всегда последнюю версию макроса. Нет сейчас никаких стабильных версий.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 20.09.17, 07:02:31
Я с питоном не дружу. Мне это долго нужно объяснять... БЧ V 0.4.4 действительно удачная версия. Спасибо разработчику. Замеры выполняю компасом. Часто приходится выполнять замеры длины прутков и труб.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 20.09.17, 07:14:30
Я тоже не дружу. Но запустить окно IDLE (Python GUI), там нажать ctrl+O, открыть БЧ.pyw и нажать F5 (при включенном компасе с активной деталью или сборкой) под силу каждому.
Текущая версия умеет измерять цилиндры.
Кстати, Трындец, если макрос запустить без компаса, то выдает сообщение Запустите компас и повторите попытку.
Заголовок к этому окну-сообщению сделаем?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 20.09.17, 08:34:52
У меня только одна версия КОМПАСа в наличии и комп одной конфигурации. Я не имею возможности тестировать работоспособность на другом КОМПАСе и с другим железом/системой. На моём ПК всё работает (КОМПАС 16.0 x32, Win7 x32).
И сообщения типа:
Цитата: Умка от 20.09.17, 06:14:50
Объекты спецификации добавляет, не удаляя старые. Измерения не выполняются, окно закрывается и питон висит в процессе.
мне не дают никакой полезной информации. Только запуск через отладчик и его сообщение об ошибке может что-то прояснить, да и то не всегда.
А вообще макрос очень сырой и вы все его используете, как говорится, на свой страх и риск :)
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 20.09.17, 08:39:15
версия КОМПАС V13 + Windows XP отсюда видимо ошибки.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 20.09.17, 08:51:10
Цитата: Умка от 20.09.17, 08:39:15
версия КОМПАС V13 + Windows XP отсюда видимо ошибки.
На будущее указывайте разрядность винды и Компаса. Разрабам это иногда очень важно!
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 21.09.17, 12:09:20
Представляю очередную версию  программы оформления деталей БЧ.

1) Реализовано прерывание измерений. Окно программы теперь не сворачивается. На месте кнопки с линейкой появляется кнопка с иконкой "Stop", так же, если окно активно, прервать команду можно, нажав <Esc>. В связи с этим пришлось заменить горячую клавишу выхода из программы на двойное нажатие <Esc>.
2) В блок констант добавлены константы, активирующие/деактивирующие при запуске "Создание объекта спецификации", поле ввода "Названия" и "Материал".
3) Надпись "мм" из чекбокса превратилась в текстовую метку с сохранением своего функционала (активация/деактивация производится кликом мыши).
4) Изменён графический интерфейс, шрифты, всплывающие сообщения разделены на 2 типа. Всё в соответствии с пожеланиями Вират Лакх'а.



Название: Re: Библиотека для деталей БЧ
Отправлено: Vin от 21.09.17, 13:01:09
Цитата: ТрындецЪ от 21.09.17, 12:09:20
Представляю очередную версию  программы оформления деталей БЧ.
Всё в соответствии с пожеланиями Вират Лакх'а.
Рыжий любого уболтает :)
За программу - спасибо.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 21.09.17, 16:41:01
Ха-ха, "рыжий" )
Я не убалтываю, а руковожу разработкой )
Обалденная версия. Мечты сбываются!
1) Как насчет проверки запущенной копии макроса? Это возможно? Замечал неоднократно у себя, что второй открыт оказывался.
2) Без особого восторга встречаю двойное нажатие на Esc. Думается, что выход из программы - событие гораздо более частое, чем прерывание выбора. "Измерить" же надо прервать только в случае, когда нечего предложить из того, что понимает макрос. Выключить команду теперь можно стопом, крестиком по окошку программы или выделить хоть что-нибудь, что понимает программа. Я бы не портил одинарный esc для выхода из программы, имея столько вариантов.
Кстати, так гораздо нагляднее, когда окно не уходит для измерения.
3) При измерении цилиндра линейкой (кнопкой) перед числом не пишет L =
4) Еще одно сомнительное изменение - нажимать на сами "мм", а не на галку рядом. Это как в библиотеке МиС кнопка для редактирования - это текст внизу в углу. Кто не знает про это, никогда не догадается.
Все-таки предлагаю сделать как на моей картинке.
5) Сформулировал окончательно работу "мм". Я так понимаю вам моё видение не очень нравится.
Итак, в настройках делаем переменную логического типа, которая, естественно, принимает значения true/false. Настройка называется аля "Автоматическое добавление мм". Если true, значит галка мм всегда включена после F5 и добавляет мм, если их нет. Если false, то поведение по вашей версии: не добавляет мм, если их нет и галочка включается, если были найдены мм в конце наименования в "области" габарита.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 22.09.17, 05:04:03
2') Еще вариант для выключения команды измерить. Какая самая популярная кнопка наряду с Esc? Конечно Enter. Если нужна именно клавиша для прерывания, то будет нечто типа пустой ввод. См. UPD ниже.
6) По измерениям:
а) Можно ли сделать выбор круглой грани, а не только ребра, чтобы получить диаметр?
б) Предлагаю настройку записи диаметра. В соответствии с ТЗ диаметр должен записываться в виде D =
Мне значок диаметра что-то не очень. Как-то привык считать, что этот значок привилегия размеров на чертеже. Там еще есть другие значки типа квадрата. Мы же не пишем в спецификации квадратный лист "квадрат50", а пишем 50х50. Тут текстовой документ, во-первых. Во-вторых, D = будет аналогично L =.
в) По измерениям вроде все варианты разобрали, кроме моей экзотики вида D= d= для шайбы с отверстием?
Был бы полный фарш, если можно было указать при измерении поверхность этой шайбы и получить D= d=
7) Дробь материала возможно оформлять покомпактнее? А то "числитель" и "знаменатель" как-то далеко от черты.

UPD
- Попробовал Enter для остановки Измерить. Получается, нельзя в двух местах (процедурах) использовать одну клавишу. Тогда можно сделать but4.bind("<Key>", lambda event: Stop()) и нехай. На любую кнопку отключать можно измерялку (кроме занятых). Только это как-то не по-людски. Будет каждый раз вызываться процедура Стоп.
<Pause> - работает на Pause/Break. Может её? Со времен MS-DOS забыли про break.
Плюс к этому еще работает Пробел = нажатие на кнопку Стоп. Но это всё только при активном окне макроса.

- Кстати!!! А на вызов линейки-то у нас нет горячей клавиши?! Усиленно предлагаю левый Ctrl Alt. Я написал "root.bind("<Alt_L>",lambda event: Izmerit(event))", но там мутить дальше надо с процедурой.

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

- А ещё мне не нравятся квадратные скобки ни в файловых менеджерах, ни тут. Убал в обоих местах.

- Допустим, я для замера свернул окно макроса в панель задач. Можно ли организовать так, чтобы после получения макросом замера, окно восстановилось?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 22.09.17, 11:39:45
Экспресс-обновление v0.7.1

Что нового:
Перед запуском ищет ранее открытые свои копии и, если находит, разворачивает окно.
Научились измерять круглую грань и круглую грань с круглым отверстием (шайбу).
Если окно было свёрнуто для измерения, то снова разворачивается со вставленными значениями.
Добавил константу для подписи "мм" (чекбокс не верну, даже не просите! Могу я, хоть что-то от себя оставить!?)

Горячие клавиши:
Левый Alt - вызов измерений,
Пробел - отмена измерений.
Esc - вернулся на закрытие программы.


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

Upd: К вопросу о "дроби" в материале.
По сути там не дробь, а три строки:
mat2['text'] = material2 + "\n" + "-"*max([len(material2), len(material3)])
mat3['text'] = material3

Черта получается из набора символов "-". Менять это на что-то другое, так же, особого желания нет. Снова всё окно переворошить придётся.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 22.09.17, 12:54:55
1) Свернутое (на левую кнопку и трех в верхнем правом углу) окно макроса пропускает и все равно открывает дубль.
2) После выбора геометрии для команды Измерить стало "окно" макроса, которое в панели задач, мигать. Мол, на меня переключись! Причем не всегда. Но особенно проявляется на шайбах. Не нравится мне так, раздражает. Это наверно из-за разворачивания со вставленными параметрами. Ему надо еще фокус отдать, да? А то я не могу сделать замер и сразу ctrl+enter.
3) Запятую перед " d = " для шайбы.
4) На кнопке Ctrl + Enter предлагаю писать без пробелов до и после +. Эстетика тоже важна :)
5) Пробел - отмена измерений - и так работала с другой клавишей. Может поставим все-таки <Pause> или <Up> (см. п.6)? С пробелом как сейчас при записи габаритов вручную эта команда стоп будет выполняться же. Пусть это не видно будет, но как-то это нелогично.
6) Тоже самое с альтом я поторопился. Решил язык ввода поменять для записи габарита, а линейка запустилась. Сюда предлагаю Down. Поставил себе вверх и вниз. Попробую, на сколько это удобно будет.

Еще думаю отрегулировать появление окна чтобы не в центре, а где-нибудь в углу экрана... Потом отпишусь. Видел, где это в коде написано.

UPD
Думаю, может командам Измерить все же сворачивать окно в панель задач? В прошлый раз-то оно просто исчезало, а тут можно будет развернуть самому, если надо. Тут еще логично получается, что кнопка Down, которая вызывает Измерить, уносит окно вниз.
Или стрелке Up отдать сворачивание окна в панель задач. Получится быстрая комбинация вниз-вверх. Кому не надо сворачивать, вверх не нажимать.
Давайте первый вариант все-таки попробуем?
Потом еще одну мысль напишу.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 22.09.17, 15:15:54
Что смог, поправил  в v0.7.2.

Возможно, не находит свои дубли из-за разрядности системы. Там снова дескриптор окна фигурирует. Внёс изменения по аналогии с шаблонами, может, заработает. На моём ПК нормально вычисляет копии.

Решил попутно проблему с дублированием объектов спецификаций документа-детали (не работало удаление старых объектов). Пока, до редактирования объектов, не дошёл.

Горячие клавиши:
Стрелка вниз - "Измерить" (сворачивается окно).
Стрелка вверх - "Стоп".


После разворачивания так и не смог установить фокус на окно.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 23.09.17, 05:44:50
1) Не заработала. Все равно дубль открывает. Как этот дескриптор посмотреть в отладчиках?
2) Отсутствие фокуса после измерения всю малину портит... А если не сворачивать для измерения, то тоже не ставится фокус?
3) Во всплывающем меню вставку шаблона лучше так и назвать "Вставить шаблон", а не текст.
4) Небольшая фишка еще. У меня материал по умолчанию удален, т.е. пустая строка. Если пустой материал, то умная галочка должна отключиться или, оставаясь включенной, не прописывать @/.
5) А вот та самая еще одна мысль. Еще один путь для замеров. Сейчас мы запускаем линейку, а потом указываем. Но возможен путь такой: я выделяю грань, запускаю макрос и линейку. Линейка понимает, что что-то выделено и вставляет, если выделено правильное.
6) Что вы думаете насчет автозапуска линейки и/или автоctrl+enter после линейки? Второе особенно может быть интересно в условиях неработающего фокуса на окне макроса после измерений. Давайте сделаем еще пару настроек для этих двух авто. Просто обозначение детали я могу сделать в другое время, Название отключено. И мне, кроме линейки, делать-то в макросе нечего.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 23.09.17, 11:33:48
Цитата: Вират Лакх от 23.09.17, 05:44:50
1) Не заработала. Все равно дубль открывает. Как этот дескриптор посмотреть в отладчиках?
Вот тут его получаем (44 строка):
hwnd = win32gui.FindWindow(None, buff.value)
А вот тут я пытался получать из него только цифры, хотя, у меня он и без того только из цифр состоял:
hwnd = int(re.findall(r'\d+', str(hwnd))[0])

Возможно, затык где-то раньше в этой функции. Тогда, после каждого определения переменной, нужно print c именем переменной вводить и смотреть какая переменная не получает значения (она будет равна None), значит проблема в этом месте.

По поводу фокуса:
Метод root.focus_force() должен давать фокус окну, но что-то не работает.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 23.09.17, 21:06:53
Попробовал print переменную написать в разных местах - отзывается компилировать...
вот тут https://stackoverflow.com/questions/22751100/tkinter-main-window-focus пишут:
If focus_force() is not working you can try doing:

window.after(1, lambda: window.focus_force())
It's essentially the same thing, just written differently. I just tested it on python 2.7.

root.focus_force() wouldn't work but the above method did.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 25.09.17, 06:06:48
Кнопочки работают корректно все, кроме измерений. Прошу подсказки как это выполнить на КОМПАС V 13
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.09.17, 06:12:43
Написали же раньше, вы предоставьте сообщения отладчика.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 25.09.17, 07:20:21
Это или я ошибся?
com_error: (-2147352571, '\xcd\xe5\xf1\xee\xe2\xef\xe0\xe4\xe5\xed\xe8\xe5 \xf2\xe8\xef\xee\xe2.', None, 1)
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.09.17, 08:13:51
Цитата: Умка от 25.09.17, 07:20:21
Это или я ошибся?
com_error: (-2147352571, '\xcd\xe5\xf1\xee\xe2\xef\xe0\xe4\xe5\xed\xe8\xe5 \xf2\xe8\xef\xee\xe2.', None, 1)
Нужно сообщение целиком, там будет указана строчка в коде, где ошибка произошла.
Тут пишет "Несовпадение типов".

Цитата: Вират Лакх от 23.09.17, 21:06:53
window.after(1, lambda: window.focus_force())
Это тоже не даёт результата.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 25.09.17, 09:31:48
Traceback (most recent call last):
  File "C:\Program Files\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Program Files\ASCON\Á×_v0.7.2.pyw", line 987, in <lambda>
    but3 = tk.Button(frame, image = img, command = lambda event = None: Izmerit(event))
  File "C:\Program Files\ASCON\Á×_v0.7.2.pyw", line 755, in Izmerit
    application.MessageBoxEx( u"УкажиÑ,е грань, цилиндрическую поверÑ...носÑ,ÑŒ или ребро", u"Сообщение библиоÑ,еки", 64)
  File "C:\Program Files\Python26\lib\site-packages\win32com\gen_py\69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.py", line 703, in MessageBoxEx
    , Caption, Flags)
com_error: (-2147352571, '\xcd\xe5\xf1\xee\xe2\xef\xe0\xe4\xe5\xed\xe8\xe5 \xf2\xe8\xef\xee\xe2.', None, 1)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.09.17, 09:34:33
Цитата: Вират Лакх от 23.09.17, 21:06:53
Попробовал print переменную написать в разных местах - отзывается компилировать...
Тут, оказывается, выравнивание в коде важно. Не следует писать в РАЗНЫХ местах :)
По копиям:
def Copy_program():
    """
    Ищет ранее запущенные свои копии
    """
    EnumWindows = ctypes.windll.user32.EnumWindows
    print EnumWindows
    EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int))
    print EnumWindowsProc
    GetWindowText = ctypes.windll.user32.GetWindowTextW
    print GetWindowText
    GetWindowTextLength = ctypes.windll.user32.GetWindowTextLengthW
    print GetWindowTextLength
    IsWindowVisible = ctypes.windll.user32.IsWindowVisible
    print IsWindowVisible
    def foreach_window(hwnd, lParam):
        print foreach_window
        print IsWindowVisible(hwnd)
        if IsWindowVisible(hwnd):
            length = GetWindowTextLength(hwnd)
            buff = ctypes.create_unicode_buffer(length + 1)
            GetWindowText(hwnd, buff, length + 1)
            print length
            print buff
            print hwnd
            if buff.value.find(u"Оформление детали БЧ") != -1:
                hwnd = win32gui.FindWindow(None, buff.value)
                hwnd = int(re.findall(r'\d+', str(hwnd))[0])
                win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) # разворачивает окно
                sys.exit()
Выдает:
<_FuncPtr object at 0x000000000330B1E8>
<class 'ctypes.WinFunctionType'>
<_FuncPtr object at 0x000000000330B2B8>
<_FuncPtr object at 0x000000000330B388>
<_FuncPtr object at 0x000000000330B458>
<function foreach_window at 0x00000000036FA278>
0
Получается, первые 7 принтов выдает, а дальше IsWindowVisible(hwnd) фалит (= 0) и по if, соответственно, ничего не делает.

По фокусу: ХЗ.

Зачем в таких местах (см. ниже) писать "нажали""отпустили", когда хватает только "отпустили"?
Gabarit.bind("<ButtonRelease-2>", clear)
Gabarit.bind("<ButtonRelease-3>", activate_flash_menu)
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.09.17, 09:49:25
Цитата: Умка от 25.09.17, 09:31:48
  File "C:\Program Files\ASCON\Á×_v0.7.2.pyw", line 755, in Izmerit
    application.MessageBoxEx( u"УкажиÑ,е грань, цилиндрическую поверÑ...носÑ,ÑŒ или ребро", u"Сообщение библиоÑ,еки", 64)
У Вас вообще всплывающие сообщения появляются?
Закомментируйте 755 строку (см. скрин.)

Цитата: Вират Лакх от 25.09.17, 09:34:33
Получается, первые 7 принтов выдает, а дальше IsWindowVisible(hwnd) фалит (= 0) и по if, соответственно, ничего не делает.
Попробуйте удалить это условие
if IsWindowVisible(hwnd):
или сделать его всегда истинным: if True:
ЦитироватьЗачем в таких местах (см. ниже) писать "нажали""отпустили", когда хватает только "отпустили"?
Потому что, можно нажать кнопку в одном поле, а отпустить в другом.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 25.09.17, 09:54:53
Всплывающих сообщений нет! Никаких.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.09.17, 10:08:17
Цитата: Умка от 25.09.17, 09:54:53
Всплывающих сообщений нет! Никаких.
Видимо, они у Вас отключены в настройках (Сервис — Параметры... — Система — Общие — Всплывающие сообщения), отсюда все проблемы.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.09.17, 10:31:40
    def foreach_window(hwnd, lParam):
        print IsWindowVisible(hwnd)
        if True:
            length = GetWindowTextLength(hwnd)
            buff = ctypes.create_unicode_buffer(length + 1)
            GetWindowText(hwnd, buff, length + 1)
            print length
            print buff
            print hwnd
            print buff.value.find(u"Оформление детали БЧ")
            if buff.value.find(u"Оформление детали БЧ") != -1:
                hwnd = win32gui.FindWindow(None, buff.value)
                hwnd = int(re.findall(r'\d+', str(hwnd))[0])
                win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) # разворачивает окно
                sys.exit()
Выдает:
0
0
<ctypes.c_wchar_Array_1 object at 0x0000000003390CC8>
<__main__.LP_c_long object at 0x0000000003390748>
-1
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.09.17, 10:40:05
Цитата: Вират Лакх от 25.09.17, 10:31:40
Выдает:
0
0
<ctypes.c_wchar_Array_1 object at 0x0000000003390CC8>
<__main__.LP_c_long object at 0x0000000003390748>
-1
Там функция есть EnumWindows(EnumWindowsProc(foreach_window), 0), которая перебирает все окна.
То что у Вас выдало, это для одного окна. Для других ничего не выдаёт?

Upd: Вообще, решение взято отсюда (https://sjohannes.wordpress.com/2012/03/23/win32-python-getting-all-window-titles/) и немного переделано.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.09.17, 10:54:39
Её как писать? Так?
    EnumWindows(EnumWindowsProc(foreach_window), 0)
    print EnumWindows
    print EnumWindows(EnumWindowsProc(foreach_window), 0)
    print EnumWindowsProc(foreach_window)
Ответы:
<_FuncPtr object at 0x00000000033D01E8>
0
<WinFunctionType object at 0x00000000033D0528>
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 25.09.17, 11:13:34
Сообщения в настройках не отключены, но нет всплывающих сообщений для Библиотеки для деталей БЧ.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.09.17, 11:40:09
Цитата: Умка от 25.09.17, 11:13:34
Сообщения в настройках не отключены, но нет всплывающих сообщений для Библиотеки для деталей БЧ.
Попробуйте вот эту версию.

Upd:
Цитата: Вират Лакх от 25.09.17, 10:54:39
Её как писать?
Попробуйте как на скрине. В отладчике должен список заголовков окон появиться.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 25.09.17, 12:32:43
Спасибо, измерения, всплывающие сообщения и прочие фишки выполняются корректно! Особо любо замеры длины прутка!
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.09.17, 12:35:43
Цитата: Умка от 25.09.17, 12:32:43
Спасибо, измерения, всплывающие сообщения и прочие фишки выполняются корректно! Особо любо замеры длины прутка!
Вероятно, метода MessageBoxEx не было ещё в 13 версии.
Хотя, был метод. Ошибка в несоответствии типов всплывала... Я хз, короче)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.09.17, 13:01:24
    #if True:
            length = GetWindowTextLength(hwnd)
            buff = ctypes.create_unicode_buffer(length + 1)
            print buff
            GetWindowText(hwnd, buff, length + 1)
            print "Hello"
            print buff.value
            if buff.value.find(u"Оформление детали БЧ") != -1:
                hwnd = win32gui.FindWindow(None, buff.value)
                hwnd = int(re.findall(r'\d+', str(hwnd))[0])
                win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) # разворачивает окно
                #sys.exit()
Ответ:
<ctypes.c_wchar_Array_1 object at 0x000000000325FCC8>
Hello

Буфф валуев пустой получается.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 25.09.17, 13:48:44
Цитата: Вират Лакх от 25.09.17, 13:01:24
Буфф валуев пустой получается.
Я больше не знаю, чем помочь.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.09.17, 08:33:04
ТрындецЪ, вы из оригинала зря убрали return True
Сейчас такой код
    EnumWindows = ctypes.windll.user32.EnumWindows
    EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int))
    GetWindowText = ctypes.windll.user32.GetWindowTextW
    GetWindowTextLength = ctypes.windll.user32.GetWindowTextLengthW
    IsWindowVisible = ctypes.windll.user32.IsWindowVisible
    def foreach_window(hwnd, lParam):
        if IsWindowVisible(hwnd):
            length = GetWindowTextLength(hwnd)
            buff = ctypes.create_unicode_buffer(length + 1)
            GetWindowText(hwnd, buff, length + 1)
            print buff.value
            print buff.value.find(u"Оформление детали БЧ")
            if buff.value.find(u"Оформление детали БЧ") != -1:
               hwnd = win32gui.FindWindow(None, buff.value)
               print hwnd
               win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) # разворачивает окно
               sys.exit()
        return True
    EnumWindows(EnumWindowsProc(foreach_window), 0)
выдает:
Пуск
-1

-1
Оформление детали БЧ v0.7.2
0
3083502
и работает, т.е. раскрывает ранее открытое из коммандера окно макроса. Но работает только если я запускаю "вторую копию" через IDLE (Python GUI). Если второе из коммандера запустить, то все равно копия получается, блин :( Приложил файл.
UPD:
Хорошо, что вы исходник дали. Я добавил titles = [] и print titles. Оно выдает типа того: [u'\u041f\u0443\u0441\u043a', u'', u'*Python Shell*', u'\u0411\u0427.pyw ... Т.е. русские буквы заменены их кодами. Я название окна заменил на root.title (u"VVV") - заработало без отладчика!  :j:
Как-то понимание русского языка можно включить? Если код вписать в название окна, то опять не работает.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 26.09.17, 09:32:29
Цитата: Вират Лакх от 26.09.17, 08:33:04
ТрындецЪ, вы из оригинала зря убрали return True
Сейчас такой код
...
и работает, т.е. раскрывает ранее открытое из коммандера окно макроса. Но работает только если я запускаю "вторую копию" через IDLE (Python GUI). Если второе из коммандера запустить, то все равно копия получается, блин :(
Принты закомментируйте.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.09.17, 09:42:46
Цитата: ТрындецЪ от 26.09.17, 09:32:29
Принты закомментируйте.
Я в шоке :) Работает теперь и с русскими буквами! Теперь разобраться бы с фокусом...
Умка, лучше такие сообщения в виде отдельного окна удалить, чем их иметь в этом виде.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 26.09.17, 10:26:47
Сообщения как доп информация на компе с тормозами не помешает. Всегда понятно когда операция выполнена.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.09.17, 12:58:53
1) hwnd = int(re.findall(r'\d+', str(hwnd))[0]) - это теперь можно удалить.
2) Еще в коде есть # Метериал - надо исправить опечатку чисто из уважения к великому могучему.
Вот тут https://mail.python.org/pipermail/python-win32/2006-May/004678.html рассказывают, как сделать фокус путем Tkinter и win32.
Оттуда я понял, что лучше написать root.focus() при появлении окна при запуске, т.к. _force - это, видите ли, impolite.
В проблемной строчке фокус такой не канает. Попробовал путем винды и понял, что я до этого не дорос. Может у Вас получится?
А вот тут https://stackoverflow.com/questions/3842220/make-tkinter-widget-take-focus посоветовали задержку.
В итоге, если путь винды не получится, то я предлагаю root.after(70, lambda: Gabarit.focus_force())
Фокус на габарите для того, чтобы сразу можно было вводить данные. Минус один клик. Задержку может подлиннее сделать, чтобы хватало времени.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 26.09.17, 15:09:51
Цитата: Вират Лакх от 26.09.17, 12:58:53
В итоге, если путь винды не получится, то я предлагаю root.after(70, lambda: Gabarit.focus_force())
Фокус на габарите для того, чтобы сразу можно было вводить данные. Минус один клик. Задержку может подлиннее сделать, чтобы хватало времени.
Вот это:
root.deiconify()
time.sleep(0.05)
Gabarit.focus_force()
иногда даёт фокус развернутому окну и виджету, но редко. Манипуляции со временем задержки эффекта не дают. С win32gui не разобрался ещё.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.09.17, 15:18:57
root.after(70, lambda: Gabarit.focus_force()) - это я, видимо, фигню написал. Надо поди уж или оба рут писать, или оба габарит? Gabarit.after(300, lambda: Gabarit.focus_force()).
Манипуляции со временем задержки эффекта не дают - это где: в слипе или афтер? В афтере я видел, как фокус отдавался макросному окну после этой задержки. Просто я хочу минимальную задержку сделать.
Получается то же, что и в Ответ #119, только задержку больше надо.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 27.09.17, 05:17:10
Я так понял, макрос с компасом этот фокус делят между собой.
Экспериментально 400 мс вроде хватает: root.after(400, lambda: Gabarit.focus_force())
Если практика покажет, что мало, тогда добавим 50 или 100 мс. В общем, не более 500 мс, чтобы не успела второй раз мигнуть в панели задач.
Предлагаю на win32gui на тратить время и двигаться дальше по пп. 3-6 ответа #117 и пп.1-2 ответа #142.
upd
Еще из нового функционала для сборок: деталь выделять не только в дереве или с shift+ЛКМ на поверхность, но и попробовать научить макрос определять чья (какой детали принадлежит) выделенная поверхность.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 27.09.17, 06:22:16
Как подправить, чтобы при снятии галки "Создать объекты спецификации" объекты спецификации не удалялись и не создавались новые при этом изменялись в свойствах модели только обозначения, наименования не изменялись? В массе не хватает незначащих нолей после запятой.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 27.09.17, 08:16:26
Цитата: Умка от 27.09.17, 06:22:16
Как подправить, чтобы при снятии галки "Создать объекты спецификации" объекты спецификации не удалялись и не создавались новые при этом изменялись в свойствах модели только обозначения, наименования не изменялись? В массе не хватает незначащих нолей после запятой.
Про то, как вернуть незначащие нули, я писал ранее. А по первому вопросу ответ на скрине.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 27.09.17, 08:57:26
При снятии галки "Создать объекты спецификации" объекты спецификации удаляются
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 27.09.17, 09:30:09
Цитата: Умка от 27.09.17, 08:57:26
При снятии галки "Создать объекты спецификации" объекты спецификации удаляются
Ну, я же показал, что удаление надо закомментировать.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 27.09.17, 09:34:14
подправил удалением строк
        iSourcePart7Params.SourceName = naimenovanie
       
        iPart7.Name = naimenovanie
заработало!

Сейчас как сделать чтобы при снятии галки "Создать объекты спецификации" объекты спецификации не удалялись, изменялись только свойства детали.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 27.09.17, 09:40:17
Цитата: Умка от 27.09.17, 08:57:26
При снятии галки "Создать объекты спецификации" объекты спецификации удаляются
Да, непорядок. Если галки нет, то и не надо никаких операций с ОС проводить. В будущих версиях исправить надо.
upd
По незначащим нулям можно настройку в константах сделать.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 27.09.17, 09:42:01
Цитата: Вират Лакх от 27.09.17, 09:40:17
Да, непорядок. Если галки нет, то и не надо никаких операций с ОС проводить. В будущих версиях исправить надо.
Удаление введено для того, чтобы не было рассогласования между данными в свойствах и данными в объекте спецификации.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 27.09.17, 09:46:47
Цитата: ТрындецЪ от 27.09.17, 09:42:01
Удаление введено для того, чтобы не было рассогласования между данными в свойствах и данными в объекте спецификации.
Пардон, логично. Зачем тогда это Умке? upd: Умка, вы хотите макрос использовать просто для задания обозначений обычным деталям? Какова ваша конечная цель?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 27.09.17, 10:01:57
Для чего нужно:
Библиотекой для деталей БЧ я редактирую каждый файл, ввожу наименование. Файлов много. Затем в объектах спецификации сборки сортирую по наименованию и присваиваю порядковое обозначение. В  КОМПАСе V13 при этом свойства деталей не изменяются!!!! Нужно изменить свойства детали по его объекту спецификации.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 27.09.17, 10:12:49
Цитата: Умка от 27.09.17, 10:01:57
Для чего нужно:
Библиотекой для деталей БЧ я редактирую каждый файл, ввожу наименование. Файлов много. Затем в объектах спецификации сборки сортирую по наименованию и присваиваю порядковое обозначение. В  КОМПАСе V13 при этом свойства деталей не изменяются!!!! Нужно изменить свойства детали по его объекту спецификации.
Ну, это уже отдельная тема. Тут добавлением/удалением пары строк не отделаешься.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 27.09.17, 10:30:15
Хотелось бы одной галочкой только заблокировать вставку объекта спецификации с разрешением вставки в свойства детали
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 27.09.17, 10:33:29
Позволю себе оффтоп. Значит вы присвоили в наименовании размеры деталей бч, потом в СП у отсортированных по наименованию расставили обозначения типа АБВГ.000.001 2 3 и т.д. Чтобы эти обозначения вписались в источник-деталь, надо включить кнопку Синхронизировать с документом-владельцем объекта (возможно, лучше при этом отключить Синхронизировать со свойствами компонента, чтобы не снималась галочка, а то всяко бывает). Чтобы кнопка у всех ОС сразу была включена попробуйте разные пути создания ОС в сборке. В одном из них у всех ОС она включена. Но и глюки разные бывают в разных версиях. Не помню, как там в 13-й. В 14-й и дальше переделали сортировку деталей. Чтобы этими муторными кнопочками не заниматься, в новой версии Авторедактора, о котором упоминали в начале темы, разрабатывается команда Переименовать все экземпляры выбранного ОС, она еще должна будет уметь вносить в источник данные Наименования и Обозначения. Пока новый Авторедактор в стадии тестирования.
upd
ЦитироватьХотелось бы одной галочкой только заблокировать вставку объекта спецификации с разрешением вставки в свойства детали
Не совсем догоняю. Разве это не равно просто отключенной галочке?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 27.09.17, 10:41:35
При отключенной галке объекты спецификации удаляются
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 28.09.17, 05:14:59
Если две ранее описанные желаемые фишки реализуются, то их можно будет объединить в один это путь. Выделяем в сборке ребро, грань или цилиндр и запускаем макрос. Макрос определил, какой детали выделенное принадлежит, обновил содержимое полей у себя в окне по этой детали. Потом пользователю можно сразу запускать линейку, а она сразу берет выделенную геометрию и вставляет в поле Габарит.

Для измеренного габарита вида "D = 55, d = 66" при включенных " мм" хорошо бы добавить " мм" перед запятой, чтобы в итоге стало: D = 55 мм, d = 66 мм
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 04.10.17, 08:07:09
Для чего задержка root.after(500, Selection) ?

Задержка перед передачей фокуса на Gabarit не везде дает переключение на окно макроса.
Мои поиски привели меня к тому же, что у нас уже есть! Процедура Copy_program нормально же открывала окно!
Отсюда предлагаю сделать так:
Цитировать
def Copy_program(exit):
    """
    Ищет ранее запущенные свои копии
    """
    EnumWindows = ctypes.windll.user32.EnumWindows
    EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int))
    GetWindowText = ctypes.windll.user32.GetWindowTextW
    GetWindowTextLength = ctypes.windll.user32.GetWindowTextLengthW
    IsWindowVisible = ctypes.windll.user32.IsWindowVisible
    def foreach_window(hwnd, lParam):
        if IsWindowVisible(hwnd):
            length = GetWindowTextLength(hwnd)
            buff = ctypes.create_unicode_buffer(length + 1)
            GetWindowText(hwnd, buff, length + 1)
            if buff.value.find(u"Оформление детали БЧ") != -1:
                hwnd = win32gui.FindWindow(None, buff.value)
                win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) # разворачивает окно
                if exit:
                   sys.exit()
        return True
    EnumWindows(EnumWindowsProc(foreach_window), 0)
Цитировать
"""_____________________НАЧАЛО ПРОГРАММЫ___________________________________"""
Copy_program(True)
Цитировать
if root.state() != "normal":
                Copy_program(False)
                Gabarit.focus()
Только вопрос маленький в том, что при проверке копии программы перестает перебирать окна sys.exit(), а как остановить перебирание окон после того, как нужное нашлось, в случае, когда надо просто развернуть окно?

Проверьте у себя, работает ли таким образом передача фокуса макросному окну после измерения.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 04.10.17, 08:31:06
Цитата: Вират Лакх от 04.10.17, 08:07:09
Только вопрос маленький в том, что при проверке копии программы перестает перебирать окна sys.exit(), а как остановить перебирание окон после того, как нужное нашлось, в случае, когда надо просто развернуть окно?
Проверьте у себя, работает ли таким образом передача фокуса макросному окну после измерения.
Отлично работает! Молодец!
Я особо не вникал в функцию, пусть себе перебирает все окна, на результате работы не отражается и ладно.
ЦитироватьДля чего задержка root.after(500, Selection) ?
Это пауза в зацикливании. Программа проверяет не выделено ли что-нибудь с периодичностью в 0,5 сек.
Тут правильнее было бы подписаться на событие окна документа, но с этим я пока не дружу.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 05.10.17, 09:27:02
Новая версия 0.7.3. Пока основной программист занят, ребенок балуется с питоном :) Вроде ничего не испортил.
За исходник взят макрос версии 0.7.2 из Ответа #116 : 22.09.17, 18:15:54

* Исправлено появление копии программы.
* Исправлен фокус на окно макроса после измерения.
* Изменен текст во всплывающем меню для шаблонов на "Вставить шаблон".
* Добавлена настройка в константах по отображению незначащего нуля после запятой. По той рекомендации <Чтобы незначащие нули показывались, нужно вырезать .rstrip("0").rstrip(",")> показывается только один нуль, который после запятой. В остальном толку нет. Или я не догнал что к чему. Возможно, тут зависимость от единиц измерения в модели: граммы или килограммы...
* Попробовал для отображения дроби использовать вместо минуса знак подчеркивания. Вроде красивее стало.
* Доделана приписка мм для шайб: "D = 55 мм, d = 66 мм", когда activ_mm = True.
* Добавлена настройка для типа доп. колонки Обозначение материала (по сути для себя сделал, чтобы новые версии легче настраивать было).
* Добавлена экспериментальная опция автозапуска Измерения. Только её допилить надо в зависимости от ситуации. В деталях сойдет, а в сборочниках, где еще не выбрана деталь или не реализован п.8 (см. ниже), неуместно пока.

Итоги. Из ранее написанного варианты развития:
4) Небольшая фишка еще. У меня материал по умолчанию удален, т.е. пустая строка. Если пустой материал, то умная галочка должна отключиться или, оставаясь включенной, не прописывать @/.
5) Еще один путь для замеров. Сейчас мы запускаем линейку, а потом указываем. Но возможен путь такой: я выделяю грань, запускаю макрос и линейку. Линейка понимает, что что-то выделено и вставляет, если выделено правильное.
6) Что вы думаете насчет автозапуска линейки и/или автоctrl+enter после линейки? Давайте сделаем еще пару настроек для этих двух авто. Просто обозначение детали я могу сделать в другое время, Название отключено. И мне, кроме линейки, делать-то в макросе нечего.
7) Еще из нового функционала для сборок: деталь выделять не только в дереве или с shift+ЛКМ на поверхность, но и попробовать научить макрос определять чья (какой детали принадлежит) выделенная поверхность.
8) п.7 + п.5 = Выделяем в сборке ребро, грань или цилиндр и запускаем макрос. Макрос определил, какой детали выделенное принадлежит, обновил содержимое полей у себя в окне по этой детали. Потом пользователю можно сразу запускать линейку, а она сразу берет выделенную геометрию и вставляет в поле Габарит.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 05.10.17, 10:05:18
Цитата: Вират Лакх от 05.10.17, 09:27:02
Новая версия 0.7.3. Пока основной программист занят, ребенок балуется с питоном :) Вроде ничего не испортил.
За исходник взят макрос версии 0.7.2 из Ответа #116 : 22.09.17, 18:15:54
Давно бы так))) Я вас всех научу Python любить :-)))

Замечание по коду: переменную exit лучше переименовать, т.к. это имя уже зарезервировано за системной функцией exit().
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 06.10.17, 12:29:29
перестало выполнять замеры, однако
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 18.10.17, 09:03:40
Микрообновление v0.7.4, чтобы тема не забывалась.
* сделал п.4: про пустой материал и @/
Цитировать# Получаем материал
    if mat_var.get() and iPart7.Material != "":
* доделал п.6: добавил настройку "автоctrl+enter после линейки". Но мне не нравится, что при нажатии на Стоп тоже вносятся изменения и закрывается программа. А должно прерваться измерение и ждать следующих действий пользователя. Значит не туда вставил и/или какие-то условия надо добавить. Ув. ТрындецЪ, добейте, плиз :)
Цитироватьif auto_close:
              Start_2()
Умка, про замеры. Вам надо поудалять или закомментировать сообщения в этой процедуре, если я правильно понимаю.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 18.10.17, 13:24:45
Цитата: Вират Лакх от 18.10.17, 09:03:40
доделал п.6: добавил настройку "автоctrl+enter после линейки". Но мне не нравится, что при нажатии на Стоп тоже вносятся изменения и закрывается программа. А должно прерваться измерение и ждать следующих действий пользователя.
Нужно было ещё отступов добавить, чтобы попало в условие, вставляющее текст в габарит.

Попутно добавил обработку предварительного выделения перед вызовом замеров (п.5). Давно реализовал в черновой версии.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 18.10.17, 15:33:56
Классно! Осталось только п.8 сделать, но это точно мне как до луны раком.
И всё, у меня идей нет больше для того варианта программы, как сейчас.
Остается только пробовать полный автомат определения габаритов и ссылки через линию-выноску.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 22.10.17, 09:44:09
Немного смущает способ чтения свойств источника. Сейчас макрос заходит в редактирование на месте и сразу выходит, видимо, считав оттуда обозначение, наименование и материал. Но компасная команда Информация об объекте может считать свойства источника без входа/выхода в компонент. Может наведем эстетику и пересмотрим чтение свойств? Кто знает, как прочитать свойства источника, не заходя в редактирование на месте?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 27.10.17, 11:07:41
БЧ_v0.7.4.1.7: application.MessageBoxEx заменил на kompas_object.ksMessage и если я указываю где выполнить замер, а потом запускаю линейку, то получаю размер. Если запускаю линейку, то получаю зависание.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 27.10.17, 11:18:55
Цитата: Умка от 27.10.17, 11:07:41
БЧ_v0.7.4.1.7: application.MessageBoxEx заменил на kompas_object.ksMessage и если я указываю где выполнить замер, а потом запускаю линейку, то получаю размер. Если запускаю линейку, то получаю зависание.
Выложите свой код. Похоже, где-то пропустили сообщение.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 02.11.17, 06:22:34
Испытания макроса в боевых условиях привели к желанию иметь комбинацию ctrl+a для выделения всего текста в полях ввода.

Еще есть мысли по последовательности записи размеров листа. Как оно сейчас происходит? Видимо так: XxY. Может записывать сначала меньший размер, а потом больший типа не 260х80, а 80х260? Это я к тому, если будут несколько одинаковых, но по-разному созданных листов одной ширины и длины. Тогда объекты спецификации станут разными из-за разных наименований. И для вообще разных листов тоже неплохо бы однообразную запись. Если группировать БЧ в спецификации под один материал, то эти детали по правилам должны быть отсортированы от меньшего к большему. И внутри габаритов ту же сортировку от меньшего к большему. Тогда группа будет такой: 80х260 мм, 80х300 мм, 100х500 мм и т.д.
UPD
Если макрос был запущен в детали, а потом я пошел в сборку выяснить некоторые подробности и в ней вношу данные, то макрос говорит "Выделите деталь". Можно как-то запоминать, с чем имеем дело?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 02.11.17, 13:19:04
Цитата: Вират Лакх от 02.11.17, 06:22:34
Испытания макроса в боевых условиях привели к желанию иметь комбинацию ctrl+a для выделения всего текста в полях ввода.
... Может записывать сначала меньший размер, а потом больший типа не 260х80, а 80х260?
Реализовано в v0.8.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 03.11.17, 07:44:06
1) добавил применение title (давно хотел это вам предложить, смотрю в других макросах title используете, значит и тут сделаете в новых версиях) тут: root.title(title + " v0.8") и if buff.value.find(title) != -1
2) Если стандартным путем идти в сборочнике: выделить деталь и потом измерить, то макрос на меня говорит желтым знаком "выделите грань...". Но я же ничего плохого не сделал :) Макрос смотрит при измерении, что что-то выделено, а выделено не то: деталь вместо геометрии. Вот и ругается. Поменял 48 на 64.
3) Хотел объединить start и start2 типа так: def Start(exitprog), но, видимо, в кнопках нельзя писать "command = Start(True)". Напортачил в коде :)
А объединить хотел для того, чтобы ввести в процедуре локальную переменную activedoc, значение которой меняется на False после application.MessageBoxEx( u"Активный документ не является деталью или сборкой!", title, 48). Потом этот фолс не дал бы выйти из программы: if exitprog and activedoc: sys.exit().
Всё это для того, чтобы макрос не отключался при ctrl+enter на 2D чертеже. А то функция внесения изменений и закрытия закрывает, а вносит или нет - сразу непонятно.
Придется тогда глобальную переменную создавать и передавать её в start2, да?
4) а) ocircumflex - это какая кнопка? б) И не могу найти в коде, где в габарите сначала ставится меньшая цифра, потом большая (для общего развития).
5) С включенным capslock ctrl+A не работает.
6) А еще хотел добавить в контекстном меню строчку "Выделить всё" и подписи: Ctrl+X, Ctrl+C, Ctrl+V, Ctrl+A, ↓
Как, интересно, их по правому краю сделать. Просто пробелами - не вариант.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 08.11.17, 09:18:20
Сам делаю свои хотелки, часть вторая. Версия 0.8.1. Сделал п. 1, 2, 3, 6.
ТрындецЪ, ответьте по п. 4, плиз.
upd: Если вызвать контекстное меню без мигающего курсора на поле ввода, то Выделить всё не срабатывает. Надо как-то фокус передавать при ПКМ на поле или при команде "выделить всё".
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 08.11.17, 10:27:46
Ошибка при замере

Traceback (most recent call last):
  File "C:\Program Files\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Program Files\ASCON\Á× v0.8.1.pyw", line 990, in <lambda>
    but3 = tk.Button(frame, image = img, command = lambda event = None: Izmerit(event))
  File "C:\Program Files\ASCON\Á× v0.8.1.pyw", line 743, in Izmerit
    kompas_object.ksMessage( u"УкажиÑ,е грань, цилиндрическую поверÑ...носÑ,ÑŒ или ребро", title, 64)
TypeError: ksMessage() takes at most 2 arguments (4 given)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 08.11.17, 10:35:47
Это всё та же тема с сообщениями в вашем компасе. Поставьте # перед kompas_object.ksMessage на 743 строке.
И во всех остальных местах, где есть такая ошибка.
upd: А, вообще, TypeError нерусским по белому говорит, что якобы ksMessage() берет не больше чем два аргумента, а дали 4. Где он там четыре насчитал - хз, но попробуйте удалить ", title, 64" из команды.
upd2: У вас точно включено "Сервис->Параметры->Система->Общее->Всплыва­ющие сообщения->Использовать всплывающие сообщения вместо информа­ционных диалогов" и вторая рядом галка?
Вам бы все-таки порешить со всплывающими сообщениями.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 08.11.17, 10:54:32
", title, 64" в строке удалил и заработало! Спасибо.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 08.11.17, 11:05:21
Цитата: Вират Лакх от 03.11.17, 07:44:06
4) а) ocircumflex - это какая кнопка? б) И не могу найти в коде, где в габарите сначала ставится меньшая цифра, потом большая (для общего
a) Это для "Ф" русской раскладки мне такое выдало, когда я коды клавиш "пробивал".
б) Строка 628 в версии 0.8.1
text = (str(round(min(ab),n_izm))).replace(".",",").rstrip("0").rstrip(",") + u"х" + (str(round(max(ab),n_izm))).replace(".",",").rstrip("0").rstrip(",")
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 08.11.17, 11:50:31
Спасибо, ясно. А как вы пробиваете? Это вы пробили для маленькой "ф". Я для "Caps Lock + a" добавил, но еще "Caps Lock + ф" осталось.
Что скажете по upd из Ответ #174? Есть быстрое решение?
UPD
И еще мысль: а не научить ли нам макрос присваивать материал? У нас, например, есть считанный материал от первой детали и есть еще детали, которые должны быть из этого же материала, но материал не указан или стоит неправильный. Можно было бы этот считанный материал присваивать другим деталям.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 08.11.17, 12:06:51
Сейчас нет времени разбираться со всем этим. Как-нибудь вернусь к этой теме. 
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 09.11.17, 06:35:00
Сам делаю свои хотелки, часть третья. Версия 0.8.2. Сделал:
* п. 4+5 (caps lock для A и Ф)
* upd из Ответ #174 (не срабатывала "Выделить всё" через меню на нефокусном поле).
* дописал в контекстном меню комбинацию клавиш для вызова шаблонов.
* добавил фокус для нефокусного поля после "Удалить всё" через контекстное меню.

UPD: Заметил, что у полей ввода есть свои стандартные комбинации, например, Выделить всё ctrl+/ или переместить курсор в конец строки ctrl+e, а в начало строки как раз-таки ctrl+a (я думал, чего он курсор дергает в начало при Выделить всё).
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 09.11.17, 08:43:28
Цитата: Вират Лакх от 09.11.17, 06:35:00
Сам делаю свои хотелки, часть третья.
(https://forum.ascon.ru/proxy.php?request=http%3A%2F%2Fi.smiles2k.net%2Flol_smiles%2Fthumbsup.gif&hash=742df420383070ff943be136708c706dd5878de6)
Цитата: Фердинанд ПоршеЕсли хочешь сделать что-то хорошо, сделай это сам.
Наткнулся ещё на проблему с зацикливанием, если выделены грань или ребро  не подходящие по параметрам. Решил введением отмены выделения.
Upd: Пора справку к программе писать.
Upd-2: Ещё термин "константы", как я считаю, не подходит для переменных в настройках.  Суть константы в том, что она никогда не изменяется, а у нас как раз наоборот.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 09.11.17, 09:22:42
"Если хочешь сделать что-то хорошо, сделай это сам." Это не полная истина. Расширенный вариант фразы звучит так: "... сделай это сам или попроси ТрындецЪ'а" :)

Закцикливание я видел давно. Видно было, как шапка окна компаса мигала. Думал это то самое "Программа проверяет не выделено ли что-нибудь с периодичностью в 0,5 сек. Тут правильнее было бы подписаться на событие окна документа, но с этим я пока не дружу." Сейчас без зацикливания приятнее стало.

Когда будет версия 1.0, тогда тов. Vin попросим написать справку )
Я бы хотел к версии 1.0 иметь еще п.8 из Ответ #162.

"Константы" в новой версии кто-нибудь из нас переименует в "Настройки".

Еще вы забыли в шапке окна версию изменить на root.title (title + " v0.8.3"). Я подумывал переменную ввести наряду с title для версии...

UPD: Кстати, в "боевых" условиях макрос помогает в преодолении глюков спецификации быстрым созданием объекта спецификации.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 09.11.17, 15:20:13
На скорую руку реализовал п.8 из ответа #162 - перед запуском теперь достаточно выделить элемент нужной детали (грань, ребро или вершину), чтобы программа поняла с чем работать.
По хорошему, конечно, надо свойства считывать, а не в режим редактирования на месте заходить, но лень код ворошить, там уже столько нагорожено, что я уже забывать стал что к чему.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 10.11.17, 06:03:44
при замерах зависает, ошибок нет
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 10.11.17, 06:09:39
Вооот. Макрос поднялся еще на уровень. Спасибо.

Сейчас выделение элемента детали работает на чтение, а на запись - нет.
Макросом же можно считанные данные записывать в другие детали. Его можно использовать не только для БЧ, но и при присвоении обозначений и наименований обычным деталям. Вместо того, чтобы долбаться со свойствами-источниками компонентов, можно этим макросом легко расставить всем деталям обозначение и наименование. А для этого тоже элементы хорошо бы выделять, а не в дереве или с шифтом.
Таким образом макрос может к версии 1.0 стать (фактически уже почти стал) не "Оформление деталей БЧ", а "Обозначение компонентов" или типа того.
В новом на сегодняшний день Авторедакторе 1.30 появилась отличная команда Переименовать, которая делает типа того же, но из объектов спецификации. Кстати, от нас с Дмитрием22 тебе, ТрындецЪ, спасибо, мы использовали часть кода этого макроса для присвоения данных в источник. Две программы отлично дополняют друг друга. Но из объектов СП не очень удобно расставлять обозначения и наименования, можно, но надо переключаться между окнами, включать постоянно подсветку геометрии...

По считыванию свойств не через редактирование на месте я может попробую пораскинуть мозгами. За полгода поди справлюсь ) Но в v1.0 не хочется её пропускать, иначе будет "качество не моей мануфактуры".

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

Ну и потом уже от нечего делать можно внесение считанного материала в другие компоненты сделать. Кстати, это же не долго делать? Просто, что считали, то и записали на то же место. Может я сам попробую сделать.

Умка, сдались вам эти сообщения? Закомментируйте их в процедуре def Izmerit(event)
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 10.11.17, 06:19:00
мда...Это как?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 10.11.17, 06:23:37
Цитата: Умка от 10.11.17, 06:19:00
мда...Это как?
См. начало Ответа #176. Вроде и ТрындецЪ писал раньше. Решетка # перед текстом кода - это комментарий, который не используется в работе программы. Будет типа удалил в корзину, из которой можно достать, если вдруг понадобится.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 10.11.17, 07:26:13
Удалил все ", title, 64", сейчас всё работает
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 10.11.17, 07:28:36
Цитата: Умка от 10.11.17, 07:26:13
Удалил все ", title, 64", сейчас всё работает
Так проблема была только в титлах 64 и 48? Тип сообщения не меняли, остались всплывающие сообщения в углу?
Если да, то как сообщение выглядит?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 10.11.17, 09:23:58
тип сообщения не менял, сообщения в центре экрана
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 13.11.17, 12:23:48
Версия 0.9.1.

Из Ответ #186 сделал работу Вырезать, Копировать, Вставить для нефокусных полей ввода. Т.е. если курсор стоит на одном поле или нигде не стоит, а пользователь нажимает сразу ПКМ на другом поле, то указанные команды будут работать для всего текста в указанном поле.

Попробовал присвоить считанный материал обратно в Материал типа iPart7.Material = material. А не тут-то было. Оно якобы для чтения и надо это делать по-другому.
Название: Re: Библиотека для деталей БЧ
Отправлено: Sabahs от 13.11.17, 12:27:51
iPart7.SetMaterial
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 13.11.17, 12:31:20
Цитата: Вират Лакх от 13.11.17, 12:23:48
Попробовал присвоить считанный материал обратно в Материал типа iPart7.Material = material. А не тут-то было. Оно якобы для чтения и надо это делать по-другому.
Если материал задавать, тогда и плотность надо с детали-прототипа считывать.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 13.11.17, 12:33:48
Цитата: Sabahs от 13.11.17, 12:27:51
iPart7.SetMaterial
Цитата: ТрындецЪ от 13.11.17, 12:31:20
Если материал задавать, тогда и плотность надо с детали-прототипа считывать.
Ага, видел её. Это и имел ввиду, что там плотность еще участвует... Просто тут написал по-простому, дабы не вдаваться в подробности. На сегодняшний момент понял, что это делается по-другому. Дальше вникать тоже нет времени. И без того много уходит времени на простейшее.
UPD Еще пытаюсь вычислить это "ненужное" редактирование на месте...
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 13.11.17, 12:48:13
Цитата: Вират Лакх от 13.11.17, 12:33:48
Еще пытаюсь вычислить это "ненужное" редактирование на месте...
PartAPI5.BeginEdit () # начать редактирования на месте
Read_prop_detal() # Считываем инфу
PartAPI5.EndEdit (0) # завершить редактирование на месте без перестроения
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 13.11.17, 12:53:11
ТрындецЪ, заметил кАсяк в версии 0.9. От него и в 0.9.1. После измерения не восстанавливает окно макроса обратно :( Как так случилось? Из-за title? Нет, не из-за него. Копия нормально отрабатывает. Что-то Вы там в процедуре def Izmerit(event) сделали не то... В v0.8.3 работало.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 13.11.17, 14:24:29
Цитата: Вират Лакх от 13.11.17, 12:53:11
ТрындецЪ, заметил кАсяк в версии 0.9. От него и в 0.9.1. После измерения не восстанавливает окно макроса обратно :( Как так случилось? Из-за title? Нет, не из-за него. Копия нормально отрабатывает. Что-то Вы там в процедуре def Izmerit(event) сделали не то... В v0.8.3 работало.
Сам не понимаю. Почему-то функция Copy_program не восстанавливает окно.

Upd: Починил. Не работало, потому что я версию в title загнал. Вернул обратно. Так и не понял, чем версия не угодила... Лень сейчас разбираться, работает и ладно.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 13.11.17, 21:43:25
Это у вас 0.9.1.1 работает, а у меня нет. Зачем опять return True удалили?
А проблема тут не в версии, а в том, что мы имеем два окна, содержащих title, одно из которых балун. Вот на нем и останавливается перебирание окон. Надо разделить названия этих окон. Что я и сделал в версии 0.9.1.2.
Попробовал PartAPI5.BeginEdit и PartAPI5.EndEdit убрать, а чтение разделить на два варианта: def Read_prop_detal(component), где component = True, если считываем у компонента сборки. И обозначение написать так:
# Получаем свойство Обозначение
    if component:
       iSourcePart7Params =kompas_api7_module.ISourcePart7Params(iPart7)
       oboznachenie = iSourcePart7Params.SourceMarking
    else:
        oboznachenie = iPart7.Marking
Но не работает. Короче, далеко мне еще до этого. И SourceMaterial не существует...
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 13.11.17, 23:08:26
Цитата: Вират Лакх от 13.11.17, 21:43:25
Это у вас 0.9.1.1 работает, а у меня нет. Зачем опять return True удалили?
А проблема тут не в версии, а в том, что мы имеем два окна, содержащих title, одно из которых балун. Вот на нем и останавливается перебирание окон.
А я и не сообразил. Так вот почему мне несколько одноименных окон "принтил", когда я ошибку искал. Теперь всё понятно стало.

Со свойствами работать надо через IPropertyKeeper.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.11.17, 10:34:57
v0.9.2 alpha - недоделанная.
* Переделал этот title немного по-другому и применил его между делом для tkMessageBox.showwarning(title_version, u"Запустите КОМПАС-3D и повторите попытку")
* В Gabarit.grid сделал sticky= W + E для растягивания при длинных материалах.
* Сделал присвоение материала и плотности для обычных компонентов. Галка справа от материала. Для локальных не знаю как. Опять через редактирование на месте?
* Надо еще прочитанную штриховку переносить на другую деталь. Написал # Получаем свойство Штриховка     hatch = iPart7.HatchParam
Но это пальцем в небо. Там опять всякие интерфейсы и только для чтения.
Нид хэлп.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 14.11.17, 11:43:14
Как штриховку назначать, я тоже не нашёл.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.11.17, 14:53:20
В чем отличие редактировать на месте от открыть в невидимом режиме? Второе неприменимо для локальных деталей? Почему оба способа используются в программе? Реально в локальность прописать материал+плотность каким-нибудь путем? Насколько я помню, компасная команда присвоения материала скопом компонентам сборки в локальные материал прописывает не в источник.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 14.11.17, 15:14:52
Для локальных в режиме редактирования на месте  свойства записывались/считывались, для обычных в режиме скрытого их открытия, если уже не открыты. Другого способа я не придумал тогда. Как локальным присваивать материал пока ответить не могу.
Присваивать материал скопом никогда не пробовал и не знаю, как это делается в программе.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.11.17, 16:05:00
Цитата: ТрындецЪ от 14.11.17, 15:14:52
Присваивать материал скопом никогда не пробовал и не знаю, как это делается в программе.
Пооффтопим малость. Вот тут в источник локальным не прописывается материал.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 15.11.17, 21:22:32
Версия 0.9.3
* Похозяйничал в коде. Переставил кое-что местами для лучшего мне восприятия.
* Не нравилось разное заполнение поля Габарит при запуске макроса и при обновлении в случае отключенной галки Название для двухстрочного наименования. Не бралась первая строка. Сделал при запуске однообразно с обновлением.
* Слегка изменил в окне выделение текста жирным. Типа жирность - это то, на что нажимать. Чтобы мм заметнее стали, а то проскакивают куда не надо.
* Раньше при измерении шайбы с отверстием после первого диаметра мм ставилось по настройке, а теперь в зависимости от включенности жирных мм справа.
* Перенос штриховки и присвоение материала в локальную деталь для себя считаю невозможной. Равно как и считывание свойств не через редактирование на месте.
* Еще хочу узнать, где в коде определение компонента по его выделенной геометрии. Вдруг смогу повторить аналогично для записи свойств.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.11.17, 00:09:04
SelectedObjects.Part - вот так получаем интерфейс компонента iPart7 от выделенного объекта.
По хорошему, тут нужно ещё проверку вводить, как в функции с измерением: является ли выделенный объект модельным (if SelectedObjects.Type == 11001:), и не выделено ли несколько объектов (if type(SelectedObjects) == tuple:).
Лучше в отдельную функцию это вынести: передаём ей выделение, а она возвращает iPart7, или окно с текстом ошибки.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 16.11.17, 12:13:23
Вот v0.9.4. Дел по программе еще полным-полно, оказывается 88))
1) По процедуре опознания компонента по его выделенной геометрии в общих чертах я понимаю, а что писать в части взаимодействия с компасом - туплю. У меня в вам предложение написать напротив таких строк комментарии побольше в выложенной последней версии. Для новичков эта программа будет нехилым учебником. И заодно напишите процедуру :) Её надо будет вставить в запись и заменить в чтении тамошний код на процедуру. И предупреждайте меня в ЛС, что принимаетесь за редактирование макроса, чтобы мы параллельные версии не делали. А я потестирую )
*) В этой версии оптимизировал код в части заполнения виджетов при запуске и обновлении. Плюс сделал, чтобы текст вида "L = 100 мм" записывался не в название, а в габарит. Теперь можно галку названия в настройках не отключать тем, кто названием для БЧ не пользуется. Может в будущем эту галку совсем убрать... Это нацелено на универсальность будущего макроса аля "Обозначение компонентов 1.0".
*) Для спортивного интереса сделал для шайб вида D=,d= при включении и отключении жирных мм в поле Габарит убирается и появляется мм между D= и запятой.
2) Как можно сделать проверку концентричности отверстия в шайбе D=d= ?
*) Привел к общей концепции название галки "Создавать объекты спецификации" (убрал жирность и изменил высоту шрифта).
3) Обработку данных в def Read_prop_detal() надо переделывать. Я давно вроде писал, что надо начинать с конца. Выделить габарит по признакам х, =, мм до первой с конца собакидроби. Если таковых не будет, то это всё - название.
4) Для сборок, чтобы зря пустое окно не отображать при запуске без выделенного компонента, предлагаю .TopPart вписывать в виджеты. Будет аналогично с запуском в обычной детали. В рамках универсальности макроса. При этом сообщение Выделите деталь... можно оставить.
5) Вернемся к проблеме галочек Источник у компонентов. См. рисунок. Можно вот так отображать отключенность галочки Источник. Или хотя бы несовпадение данных в источнике от данных в компоненте. Так вот, сейчас макрос считывает данные источника только при редактировании на месте нелокального компонента. Остальное - это информация компонента.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 05.02.18, 06:26:34
Крупное обновление программы. Переработан и оптимизирован код, добавлены новые функции и настройки.
В связи с расширением возможностей программа получила новое название "Обозначение компонентов".
Описание - см. прилагаемый файл ReadMe.pdf
Две версии: для python 2.6 (v??.? <= Компас <= v16.x) и 3.0 (Компас 17.x).
Работоспособность программы проверялась только на Компас версии 16.x.
В архиве одна и та же программа в исходном виде и виде байт-кода (сохранение байт-кода позволяет интерпретатору не тратить лишнее время на перекомпиляцию кода модулей при каждом запуске).
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 05.02.18, 10:32:43
Ошибка Кv13, WXPsp3
File "C:\Program Files\ASCON\Обозначение компонентов.pyw", line 148, in read_prop
    hatchstyle = iPart7.HatchParam.Style                        # Получаем сÑ,иль шÑ,риÑ...овки
  File "C:\Program Files\Python26\lib\site-packages\win32com\client\__init__.py", line 454, in __getattr__
    raise AttributeError, "'%s' object has no attribute '%s'" % (repr(self), attr)
AttributeError: '<win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.IPart7 instance at 0x24949504>' object has no attribute 'HatchParam'
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 05.02.18, 10:56:07
Оказывается, в то время еще не было параметров штриховки у 3D моделей. Ладно, допилим. А пока строку 148 сделайте: hatchstyle = -1 и строку 399 с решеткой: # iPart7doc.HatchParam.Style = hatchstyle
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 05.02.18, 11:52:25
Спасибо! :)

А можно сделать так, что бы программа запускалась по нажатию кнопочки в Компасе?
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 05.02.18, 11:57:14
Тут http://forum.ascon.ru/index.php/topic,28546.40.html я Вам рассказывал, как делать макрос на кнопку.
upd. Может до конца не рассказал. Потом - см. картинку - взять в этом окне команду и вынести её на панельку.
Потом через ПКМ можно настроить иконку кнопки.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 05.02.18, 12:14:21
При замере активируется команда "Усечение кривой", отключается через Esc или Stop, при этом программа "Обозначение компонентов" свёрнута. Замер выполняется корректно.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: IgorT от 05.02.18, 12:17:04
Цитата: Вират Лакх от 05.02.18, 11:57:14
Тут http://forum.ascon.ru/index.php/topic,28546.40.html я Вам рассказывал, как делать макрос на кнопку.
upd. Может до конца не рассказал. Потом - см. картинку - взять в этом окне команду и вынести её на панельку.
Потом через ПКМ можно настроить иконку кнопки.
Спасибо!  :) Всё получилось!
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 05.02.18, 12:28:38
Цитата: Умка от 05.02.18, 12:14:21
При замере активируется команда "Усечение кривой", отключается через Esc или Stop, при этом программа "Обозначение компонентов" свёрнута. Замер выполняется корректно.
Поищите в своем SDK.chm вот это "40524". У меня оно - Команды 3D документа, ksCMViewFeatureInTree 40524 Показать в дереве.
А как у Вас?
строка 670: application.ExecuteKompasCommand(40524, 1) - попробуйте 1 на 0 изменить или как всегда # перед командой.
аналогично строка 103.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 05.02.18, 13:17:27
40524 в SDK.chm не нашёл. Поставил решётки и заработало нормально! Не хватает кнопочки "Не менять наименование в свойствах"
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 05.02.18, 13:37:51
Цитата: Умка от 05.02.18, 13:17:27
Не хватает кнопочки "Не менять наименование в свойствах"
Так у наименования есть "галочка", которая за это отвечает.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 05.02.18, 14:10:41
Цитата: Умка от 05.02.18, 13:17:27
40524 в SDK.chm не нашёл. Поставил решётки и заработало нормально! Не хватает кнопочки "Не менять наименование в свойствах"
Сделайте архив с максимальным сжатием и томами 1Мб своей сдк. Почитаю.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 05.02.18, 14:12:29
А можно помечтать о знаке позиции на сборке, который сам связывался бы с номером позиции из спецификации.  ::)
Куда индивид поставил знак в чертеже, с той геометрии знак взял бы инфу о компоненте сборки и получил его номер из специи...  :shu:
И что бы если поставил на линию - то позиция со стрелкой. Если на тело - то точка у знака.  :)
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 05.02.18, 14:26:50
С самого начала не заметил ошибку: не записывает данные в объекты спецификации. Не могу отправить файлы, даже архивы по одному. Что-то слишком большое!
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 05.02.18, 15:00:17
Цитата: IgorT от 05.02.18, 14:12:29
А можно помечтать о знаке позиции на сборке, который сам связывался бы с номером позиции из спецификации.  ::)
Куда индивид поставил знак в чертеже, с той геометрии знак взял бы инфу о компоненте сборки и получил его номер из специи...  :shu:
И что бы если поставил на линию - то позиция со стрелкой. Если на тело - то точка у знака.  :)
Задача этой программы - менять свойства. Ваше предложение-это уже совсем другая история.

Цитата: Умка от 05.02.18, 14:26:50
С самого начала не заметил ошибку: не записывает данные в объекты спецификации. Не могу отправить файлы, даже архивы по одному. Что-то слишком большое!
ОС создаются только из сборки и только для БЧ нелокальных деталей.
А архив можно через файлообменник перекинуть.
Название: Re: Библиотека для деталей БЧ
Отправлено: Sabahs от 05.02.18, 15:09:30
Чтобы почитать SDK, достаточно два файла прикрепить, правда их уже бесполезно упаковывать.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 05.02.18, 15:16:43
Цитата: ТрындецЪ от 05.02.18, 15:00:17
Задача этой программы - менять свойства. Ваше предложение-это уже совсем другая история.
....

Так предлагал уже ...
Похоже идея мало кого греет.
Неужели не интересно?
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 05.02.18, 15:18:41
Цитата: ТрындецЪ от 05.02.18, 15:00:17
ОС создаются только из сборки и только для БЧ нелокальных деталей.
Не совсем так. Программа теперь не создает объекты спецификации, ибо это противоречит философии Источника.
Объекты спецификации вы создаете сами стандартными средствами или компас сам это делает. Программа только пишет/удаляет БЧ и кг в уже созданных ранее объектах спецификации деталей локальных и нелокальных, у которых в макросе при вставке включен был материал в наименование или в поле размеров был текст. Если у сборки, куда входит компонент, нет объектов спецификации, то ничего не произойдет.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 05.02.18, 15:21:10
Цитата: IgorT от 05.02.18, 15:16:43
Так предлагал уже ...
Похоже идея мало кого греет.
Неужели не интересно?
Создайте отдельную тему, сформулируйте ТЗ, авось когда-нибудь и получите. Только непонятно мне, зачем в сборке нужны позиции?...
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 05.02.18, 15:34:10
Цитата: ТрындецЪ от 05.02.18, 15:21:10
Создайте отдельную тему, сформулируйте ТЗ, авось когда-нибудь и получите. Только непонятно мне, зачем в сборке нужны позиции?...
:?:
Похоже я не очень удачно оформил пост.  Позиции в сборочном чертеже и их связь с СП. Сейчас то руками часто проходится делать. Автопозиции очень часто требуют корректировки,  а это ИМХО не удобно.

Интересно, API Компаса в принципе позволяет сделать подобное?
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 06.02.18, 05:45:05
Обновление v1.1. Всё в одном архиве.
Исправлена ошибка получения стиля штриховки для старых версий компаса. Если не удалось прочитать стиль, отобразится "-1".
В сообщение при измерении детали добавлено в перечисление геометрии "круг без отверстия или с отверстием в центре".
В API КОМПАС-3D V13 SP1 написано то же самое: ksCMViewFeatureInTree 40524 Показать в дереве.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 06.02.18, 06:07:40
Кv13 WXPsp3 свойства не изменяет и не вставляет, замеры выполняет только после указания на объекте.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 06.02.18, 08:32:44
Для Умки и у кого старые компасы.
По команде Показать в дереве - скорее всего ошибка этой версии Компас.
Удалить или закомментировать application.ExecuteKompasCommand(40524, 1)
По сообщениям - аналогично. Придется их все заменить на kompas_object.ksMessage(u"бла-бла-бла") или pass
"не записывает данные в объекты спецификации" - может и не записывает. Придется самостоятельно или пробовать библиотеку Авторедактор.
Остальное должно работать, а может и не должно...
Будем считать, что данная программа не поддерживает старые версии компас.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 06.02.18, 10:31:51
Для Кv13 не подходит, пользуюсь версией 0,9.
Проект развивайте дальше, в нём очень нужные функции. Постоянные функции лучше вывести в отдельное меню чтоб "с глаз долой".
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.02.18, 09:20:10
Микрообновление v1.2 без изменения функционала.
Немного скорректирована функция Проверка (проверка наличия компонентов в сборке, поведение кнопки и вид стрелки мыши во время работы команды, выдача пары сообщений одним сообщением) и заменено окно сообщения о присвоении материала локальному компоненту.
P.S. Владельцы старых версий компаса могут заменить application.MessageBoxEx на WindowsBalloonTip (если надо будет, скину код класса). Тогда всё должно работать.
Еще вариант можно подумать такой, что заменить глючные питоновские файлы (Kompas10API5.py, Kompas10API7.py и т.д.) v13 и какие еще версии не работают на файлы от 16.1 версии, если аскон разрешает такое.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 14.02.18, 09:28:56
Цитата: Умка от 06.02.18, 10:31:51
Проект развивайте дальше, в нём очень нужные функции.
Мне не понятно в какую сторону ещё развивать эту программу. Все задуманные Вират Лакхом задачи реализованы, а что не реализовано (работа с локальными деталями) - так это из за отсутствия необходимых функций в API, тут мы бессильны.
Если есть какие-то конкретные пожелания для развития функционала, то предлагайте. Обраще не только к Умке, но и ко всем "неравнодушным".
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.02.18, 09:40:26
Не совсем все задачи реализованы. В первых сообщениях темы говорили о редактировании материала. Можно было бы сделать отображаемый материал редактируемым на даблклик, чтобы померить толщину листа или стенки трубы и вписать их в материал. Но это так, от совсем нечего делать.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 14.02.18, 10:02:04
А  можно мне сказать?
ИМХО было бы не плохо, если бы программа имела фейс типа таблицы а-ля Редактора объектов СП или Редактора свойств, который из Отчетов. При этом использовался бы функционал ОК.
Лично мне удобнее видеть как можно больше строк компонентов сборки.
И ещё. Если бы  Редактор свойств Компаса позволял бы передавать введённые пользователем данные, в том числе и материал, в модели компонентов сборки, было бы замечательно. Но он в отличии от ОК этого не делает. Но фейс его боле информативен. Всё ИМХО.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.02.18, 10:08:28
ОК работает из объектов спецификации сборки. В описании я про это писал. Это про фейс объектов СП.
Если вы хотите видеть много строк, то уменьшайте масштаб в объектах спецификации :)
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 14.02.18, 10:18:22
То есть ловчее использовать ОК, работая с таблицей ОС? Я правильно понял?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.02.18, 10:26:33
Да. В объектах спецификации сборки типа можно и без ОК работать, там есть пара кнопок синхронизации с источником и с компонентом. Но я давно пришел к выводу, что их лучше не трогать. В разных версиях компаса какие я только глюки не видел с ними... Короче говоря, Вы можете попробовать самостоятельно работу по переименованию ОС штатными средствами и с помощью ОК. Макрос работает только с источником.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 14.02.18, 11:17:00
Заметил, что Ctrl-C и проч. работают с клавиатуры только на импортной раскладке.
Не плохо бы иметь возможность копировать-вставлять-вырезать клавишами не переключаясь с русского языка.
Это возможно сделать?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.02.18, 11:18:48
Возможно. Сделаем попозже.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 14.02.18, 11:35:02
Заметил, что если обозначение вида АБВГ-1,0.04.00.702, то нажатие стрелок не меняют циферки в группах.
Это никак не исправить?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.02.18, 11:43:18
Сейчас все, что после "-" считается исполнением. Возможно криво будет не только со стрелками, но и вставляться в исполнения. Не по-людски это АБВГ-1. Если придумаете алгоритм обработки, то сделать можно будет.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 14.02.18, 11:47:03
Цитата: Вират Лакх от 14.02.18, 11:43:18
..... Не по-людски это АБВГ-1. Если придумаете алгоритм обработки, то сделать можно будет.
Сиё: "АБВГ-1" данность сверху....



Полагаю, сейчас поиск "-"  начинается с начала строки.
Может быть отлавливать знак "-" двигаясь по строке с конца?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.02.18, 11:51:11
Да тут, видимо, без разницы с какой стороны. Придется поле обозначения разбивать на две части, где первая часть - базовое обозначение, вторая - номер исполнения...
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 14.02.18, 12:38:49
Цитата: Вират Лакх от 14.02.18, 11:51:11
Да тут, видимо, без разницы с какой стороны. Придется поле обозначения разбивать на две части, где первая часть - базовое обозначение, вторая - номер исполнения...
Нужно на деталь ориентироваться - если у модели есть исполнение, то его брать, если нет, то всё в обозначение.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 14.02.18, 15:46:06
Подумалось, может есть смысл дополнить кнопки получения и вставки свойств? Предлагаю организовать кнопки:


"Получить обозначение", "Получить Наименование",

"Получить Обозначение и наименование"

аналогично для вставки:

"Вставить Обозначение", "Вставить Наименование"

"Вставить Обозначение и Наименование"

А вот прямо сейчас получилось, что Вставил по всему дереву сборки Наименование "Кронштейн".  :bang:
Так как брал свойства предыдущую детали и менял только последние цифры в Обозначения...  8-)
Сам виноват, но всё-таки  :)
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 14.02.18, 15:57:47
Цитата: IgorT от 14.02.18, 15:46:06
А вот прямо сейчас получилось, что Вставил по всему дереву сборки Наименование "Кронштейн".  :bang:
Так как брал свойства предыдущую детали и менял только последние цифры в Обозначения...  8-)
Сам виноват, но всё-таки  :)
Там же галки есть специально для таких случаев. Если у наименования галку отключить, то оно не будет записываться в деталь.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 14.02.18, 16:09:27
Точно! Теперь осознал.  :) Спасибо!
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 15.02.18, 10:16:35
Версия 1.3
1) Добавлены crtl+ч, crtl+с, crtl+м для вырезать, копировать, вставить (спасибо мне).
2) Переделана логика отделения номера исполнения от базового обозначения (спасибо ТрындецЪу). Теперь последовательное изменение номера базового обозначения стрелками работать будет и с дефисом. Аналогично и с разделением обозначения во время вставки в свойства источника компонента. Теперь -01.01 не считается исполнением с доп.номером, а рассматривается как часть базового обозначения. Ну и ладно )
P.S. Отдельные кнопки делать не будем. Места для них нет и времени свободного. Черезчур много кнопок будет.
З.Ы. Читайте ReadMe v1.1 внимательно (выложен ранее).
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 15.02.18, 10:38:52
Первый пункт как добавить в раннюю версию (0.9) ?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 15.02.18, 10:47:50
Цитата: Умка от 15.02.18, 10:38:52
Первый пункт как добавить в раннюю версию (0.9) ?
После widget.bind('<Control-KeyRelease-Ocircumflex>', select_all) в трех местах добавить:
widget.bind('<Control-KeyRelease-division>', pkmcut)
widget.bind('<Control-KeyRelease-multiply>', pkmcut)
widget.bind('<Control-KeyRelease-ntilde>', pkmcopy)
widget.bind('<Control-KeyRelease-Ntilde>', pkmcopy)
widget.bind('<Control-KeyRelease-igrave>', pkmpaste)
widget.bind('<Control-KeyRelease-Igrave>', pkmpaste)
а лучше сделать как в новой версии процедурой.
а еще лучше Вам переделать балунные неработающие сообщения компаса на балуны винды (см. вложение) и пользоваться модифицированной таким образом новой версией (с удалением команды показать в дереве).
upd. Еще вынести процедуры pkmcut pkmcopy pkmpaste из def activate_flash_menu(e) в глобальность.

Замечено, что первый старт макроса тормозит компас на более-менее тяжелых сборках. Скажем, компас что-то усиленно делает около минуты, потом всё нормально. Что бы это могло значить?
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: IgorT от 15.02.18, 11:05:17
Цитата: Вират Лакх от 15.02.18, 10:16:35
Версия 1.3
...
Что-то не вижу компилированных файлов? Плохо смотрю?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 15.02.18, 11:15:15
да я не положил. сами сделайте python -m py_compile %1, где %1 - это макрос .pyw (если название с пробелами, то имя файла в кавычках).
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 08:45:57
Интересная особенность Питона...
Пытался делать так:  python -m py_compile "Обозначение компонентов v1.3.pyw"
Файл компилировался, но в Компасе ничего не запускалось. То есть команда при нажатии кнопки запуска в Компасе срабатывала, но окно программы "ОК v1.3" не появлялось.
Что оказалось. У меня на машине присутствует Питон 2.6 и Питон 2.7. Получается так, что при компиляции файл обрабатывал Питон 2.7.
И полученный скомпилированный файл не работал как надо. Но после компиляции Питоном 2.6 всё стало работать!
Может быть кому пригодится.

Спасибо Вират Лакх и ТрындецЪ! Очень удобная программа!
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 16.02.18, 12:40:10
Революционная версия 1.4 :)
1) Отказались от балунных сообщений компаса, которые не работают на старых компасах и выглядят по-другому в 17-й версии.
Теперь все сообщения в строке сообщений внизу главного окна.
Умка, тестируй ) Должно все работать, кроме команд "показать в дереве". Остальные люди, тоже посмотрите внимательно, может добавить каких-то сообщений, чтобы старые стерлись и информативнее было.
2) В связи с п.1 убрал автоматическое скрытие окна программы при измерении. Если кому надо, то скроет самостоятельно. После получения правильной геометрии окно восстановится. У меня давно эта фишка вызывала сомнения. Как теперь сделано как-то нагляднее получается.
3) Исправлен косяк с циклом процедуры Измерения. Ошибка должна быть в версиях с 1.0 до 1.3. После команды Стоп цикл не останавливался.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 13:06:54
Замечено, что если взять свойства детали, у которой было установлено Б/Ч, то галка на материале не наблюдается.
ИМХО она должна приезжать с модели, если она была раньше там установлена.
Сейчас получается, что галка улетает  и материал не прописывается в СП  :(
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 16.02.18, 13:24:07
Косяки:
1.При команде "Измерить" выползает функция "Команда Усечение кривой".
2. Прямоугольники не измеряются.
3. Не создаются объекты спецификации.
4. Команды "показать в дереве" не вижу.
Кv13 WXPsp3
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.02.18, 13:46:01
Цитата: IgorT от 16.02.18, 13:06:54
Замечено, что если взять свойства детали, у которой было установлено Б/Ч, то галка на материале не наблюдается.
ИМХО она должна приезжать с модели, если она была раньше там установлена.
Сейчас получается, что галка улетает  и материал не прописывается в СП  :(
Я не смог воспроизвести проблемы. Как вы добились того, чтобы галка материала сама пропала? Её отключить может только юзер.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 13:57:43
Цитата: ТрындецЪ от 16.02.18, 13:46:01
Я не смог воспроизвести проблемы. Как вы добились того, чтобы галка материала сама пропала? Её отключить может только юзер.

Дело было так ....
ОК была запущена при выделенной модели всей сборки. Галки б/ч у меня там обычно нет.
Далее выделяю нужную мне деталь, которой присвоено Б/Ч. После нажатия кнопки "Получит свойства" в программе ОК свойства детали попадают в окно программы. Но галка от туда не приезжает. Попробуйте у себя.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.02.18, 14:04:40
Цитата: IgorT от 16.02.18, 13:57:43
Дело было так ....
ОК была запущена при выделенной модели всей сборки. Галки б/ч у меня там обычно нет.
Далее выделяю нужную мне деталь, которой присвоено Б/Ч. После нажатия кнопки "Получит свойства" в программе ОК свойства детали попадают в окно программы. Но галка от туда не приезжает. Попробуйте у себя.
Всё дело в том, что по умолчанию (при запуске) галка отключена и не включится сама, пока юзер этого не сделает.
Вират Лакх сделал это для того, как мне кажется, чтобы ненароком не поменять материал по невнимательности.
Upd: Галка не кочует от детали к детали, а живет самостоятельной жизнью.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 14:15:47
Повторил опыт ещё раз.
Выбрал деталь без б/ч  с модели сборки .
Полeчил свойства детали  в ОК. Галки нет. Всё хорошо.
Теперь не закрывая ОК выбираю в дереве сборки деталь со свойством б/ч.
Получаю её свойства в ОК. Галки на материале нет. И если теперь нажать "Передать свойства" мы получим с СП эту деталь без материала.
Не понятно, почему ОК не прочитала, что у детали уже была галка на материале?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.02.18, 14:30:43
Цитата: IgorT от 16.02.18, 14:15:47
Не понятно, почему ОК не прочитала, что у детали уже была галка на материале?
ОК прочитала, что в наименовании был материал, но никак это не отразила.
Нужно поработать ещё над этим моментом, теперь я понял что Вы хотите от неё.
Нужно, чтобы при считывании, если у детали в наименовании есть материал, то поле "материал" становилось активным и галка появлялась. Обсудим и доработаем.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 14:37:46
Здесь ещё такой момент присутствует.
Если запускать ОК по детали, у которой уже есть галка на материале, то она успешно появляется в окне ОК.
Но если с начала выбрать деталь без Б/Ч и получит её свойства, а потом взять свойства у детали Б/Ч, то галка материала не попадает в ОК.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.02.18, 14:57:13
Цитата: IgorT от 16.02.18, 14:37:46
Здесь ещё такой момент присутствует.
Если запускать ОК по детали, у которой уже есть галка на материале, то она успешно появляется в окне ОК.
Но если с начала выбрать деталь без Б/Ч и получит её свойства, а потом взять свойства у детали Б/Ч, то галка материала не попадает в ОК.
Да, для первого запуска была такая фишка, а для последующих считываний нет. Поправил. Тестируйте.
P.S: Только правильнее выражаться не "детали, у которой уже есть галка на материале", а "детали, у которой есть материал в наименованиии",т.к. именно строку с материалом ищет программа в наименовании.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 15:57:24
У меня что-то случилось с Питоном 2.6  :(
Не желает компилировать "Обозначение компонентов v1.4.1"  :`(
Может быть вложите компилированный файл (Питон 2.6)?

ругается вот так:
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.02.18, 15:59:07
Цитата: IgorT от 16.02.18, 15:57:24
У меня что-то случилось с Питоном 2.6  :(
Не желает компилировать "Обозначение компонентов v1.4.1"  :`(
Накой вам его компилировать? Запускайте так.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 16:15:23
 :o
Я прошлые версии на кнопочку назначал  :shu:
Хотелось бы и сейчас.
Но "что-то пошло не так".... Питон дурит.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.02.18, 16:18:51
Цитата: IgorT от 16.02.18, 16:15:23
Я прошлые версии на кнопочку назначал
Хотелось бы и сейчас.
Но "что-то пошло не так".... Питон дурит.
Расширение .*pyw никак не мешает добавить макрос в утилиты.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 16:31:16
И как это сделать?
Назначил на кнопку Утилит файл "Обозначение компонентов .pyw"
Нажимаю кнопку - ничего не происходит.

Если на такую же конопку в утилитах назначен "Обозначение компонентов .pywc" , программа ОК запускается.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 16.02.18, 16:40:10
Цитата: IgorT от 16.02.18, 16:31:16
Назначил на кнопку Утилит файл "Обозначение компонентов .pyw"
Нажимаю кнопку - ничего не происходит..
Скорее всего у Вас в системе расширение pyw не ассоциировано с программой pythonw.exe
У меня вот наоборот: pywc не знает какой программой выполняться.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 16.02.18, 21:29:54
Версия 1.5.
Цитата: Умка от 16.02.18, 13:24:07
Косяки:
1. При команде "Измерить" выползает функция "Команда Усечение кривой".
2. Прямоугольники не измеряются.
3. Не создаются объекты спецификации.
4. Команды "показать в дереве" не вижу.
Кv13 WXPsp3
1. и 4. - это одно и то же. Вы забыли, как перед application.ExecuteKompasCommand(40524, 1) ставили # ? Убрал эту фишку.
2. С версии 1.0 введена проверка прямоугольности. Сейчас вместо == поставил <= 1e–6. Теперь должно работать всегда и везде.
3. Объекты спецификации в деталях не создаются. Если есть в сборке объекты спецификации и деталь признана БЧ, то в формат и примечание вписываются или удаляются БЧ и кг. Видимо, опять у вас недоразвитость API сказывается. Могу пока посоветовать Авторедактор. В отладчике какие-то ошибки пишет?
---------------
IgorT, вам зачем два питона на компе? Теперь путаетесь. Переводите в байт-код на одном, запускаете на другом... Так как вы 2.7 ставили позже (?), то pyw, видимо, хочет запуститься на нем. Но, значит, программа не подходит для него в изначальном виде. Свяжите pyw с pythonw.exe версии 2.6.
5. Исправлено поведение галочки внесения материала в наименование при получении свойств.
6. Подправлен вывод строки сообщений.
7. Исправлена мелкая ошибка в анализе четырехугольника при измерении.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 16.02.18, 22:14:52
Цитата: Вират Лакх от 16.02.18, 21:29:54
....
---------------
IgorT, вам зачем два питона на компе? Теперь путаетесь. Переводите в байт-код на одном, запускаете на другом... Так как вы 2.7 ставили позже (?), то pyw, видимо, хочет запуститься на нем. Но, значит, программа не подходит для него в изначальном виде. Свяжите pyw с pythonw.exe версии 2.6.
5. Исправлено поведение галочки внесения материала в наименование при получении свойств.
6. Подправлен вывод строки сообщений.
7. Исправлена мелкая ошибка в анализе четырехугольника при измерении.

Я сам не помню как они два у меня на компе оказались. Комп служебный и прав админских у меня нет. Так в конторе принято.
Так что почему два - загадка великая есть.

Сейчас вот на домашнем компе экспериментирую.
Прекрасно запускается компилированный файл ОК 1.5  :) ("Обозначение компонентов v1.5.pywc")
Точно так же прекрасно запускается файл "Обозначение компонентов v1.5.pyw" по нажатию организованной кнопки утилит.

Осталось разобраться, что предпочтительней "*.pyw" или "*.pywc"?
И понять, почему на служебном не работает  :?:

Вообще, ребята, огромное спасибо за ваш труд! Эта программа очень полезна в каждодневной будничной  работе конструктора!
Вот бы ещё волшебный "Знак позиции" создали!!!
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 17.02.18, 07:54:04
Цитата: IgorT от 16.02.18, 22:14:52
Осталось разобраться, что предпочтительней "*.pyw" или "*.pywc"?
Вообще, ребята, огромное спасибо за ваш труд! Эта программа очень полезна в каждодневной будничной  работе конструктора!
Что предпочтительней - по большому счету без разницы, как Вы сами и ощутили.
Если у кого-то есть благодарность не только словами, то я могу дать реквизиты ТрындецЪа. Он создал эту программу, а я только причесал. Чтобы ему веселее работалось над остальными интересными и полезными программами.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 17.02.18, 09:13:37
Цитата: Вират Лакх link=topic=30640.msg247899#msg247899 date=1518843244
Он создал эту программу, а я только причесал.
/quote]
Ты слишком принижаешь объем проделанной тобой работы. Там половина кода твоя и лучше тебя в ней сейчас никто не разбирается. Для человека, который до этого не программировал, ты очень быстро научился всему.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 19.02.18, 06:17:54
Можно кнопку проверки синхронизации выделить в отдельный скрипт?
Название: Re: Библиотека для деталей БЧ, макрос Проверка синхронизации компонентов
Отправлено: Вират Лакх от 19.02.18, 07:11:11
Проверка синхронизации компонентов v1.0 - см. архив.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 19.02.18, 09:45:30
Замечена особенность OK v1.5  :(

Вот так программа получает свойства детали, у которой уже был  прописан материал как у Б/Ч.
Можно исправить?
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов
Отправлено: Вират Лакх от 19.02.18, 10:51:40
Не там .replace("@/","") поставил.
Версия 1.6:
1) Исправлен описанный выше косяк.
2) Немного переделан вывод окон при проверке компонентов и объектов спецификации (шрифт в кнопках и убрал возможность менять размеры окон).
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 19.02.18, 11:35:23
Цитата: IgorT от 16.02.18, 22:14:52
Вообще, ребята, огромное спасибо за ваш труд! Эта программа очень полезна в каждодневной будничной  работе конструктора!
IgorT, спасибо за денежное вознаграждение! Перевод получен и поделён "по братски" между  создателями (мной и Вират Лакхом)!
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.0
Отправлено: Вират Лакх от 06.03.18, 16:28:49
Версия 2.0. Описание программы ReadMe будет позже.
1) Оптимизация кода.
2) Возможность редактировать материал, включая измерение геометрии (например, толщины листа).
3) Вызов файла graphic.dns и выбор материала (с плотностью и штриховкой) или только значение плотности (для соответствующего поля).
4) Вызов списка кнопок выбора стилей штриховки с номерами от 0 до 14.
5) Фон поля стиля штриховки для локальных компонентов меняется и выдается сообщение, что стиль штриховки может быть прочитан неправильно (из-за ошибки API + Компас)
6) При чтении свойств модели проверяется синхронизация МЦХ с источником компонента и выдается сообщение. И добавлено в процедуру Проверки по всем компонентам.
7) Теперь производится чтение материала ИСТОЧНИКА компонента (кроме локальных компонентов при отключенной синхронизации МЦХ).
8) Расширены возможности измерений геометрии (длина любого ребра, диаметры неконцентрических окружностей для "шайб" с отверстием, получение габаритного прямоугольника). Габариты определяются в системе координат плоскости, то есть, если прямоугольник изначально изобразить в эскизе повернутым, то габариты выдаст вдоль осей X и Y, и они не будут соответствовать размерам этого прямоугольника.
9) Снятие цвета фона полей ввода-вывода "неправильных" компонентов при нажатии на клавиатуру в этом поле.
10) Добавлен пункт в контекстном меню "Вставить имя файла".
11) Добавлено сообщение при чтении свойств: "Использование кода документа в моделях может вызвать ошибки с многострочным наименованием" (ошибка Компас).
12) Исправлено неправильное чтение стиля штриховки исполнений компонента.
13) Устранение других мелких недостатков.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.1
Отправлено: Вират Лакх от 07.03.18, 07:32:47
Стоп! Ахтунг! Версия 2.0 кривая. Вот версия 2.1 вроде нормально должна работать :shu:
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.2
Отправлено: Вират Лакх от 07.03.18, 20:54:11
Эксплуатация в боевых условиях выявила два недостатка версии 2.1, которые исправлены в версии 2.2:
1) Не к месту срабатывал запрос на изменение материала локального компонента пользователем вручную. Решилось округлением получаемой плотности: round(iPart7.Density, 3)
2) Компас по-разному ведет себя с массой компонента, у которого вырезали в сборке отверстие и он стал из-за этого легче. Если включена синхронизация МЦХ с источником, то показывает массу источника без выреза; если установлен в МЦХ компонента расчет по плотности, то при той же плотности компас дает массу уже с вырезом, т.е. которая легче. Нам масса нужна для БЧ исходная при записи её в примечание в спецификации. И это еще не всё. Даже при включенной синхронизации МЦХ с источником, когда мы видим в свойствах модели и в информации об объекте массу источника, IPart7.Mass, IMassInertiaParam7.Mass и IPart.GetMass() (через IEmbodiment не пробовал) выдавали тоже резаную массу. Помог способ через IPropertyKeeper.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.3
Отправлено: Вират Лакх от 30.03.18, 06:01:23
Версия 2.3. Исправлены две ошибки в работе программы.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.4
Отправлено: Вират Лакх от 07.05.18, 06:25:50
Версия 2.4. Небольшое обновление:
1) Добавлены сообщения в нижней части окна программы для функции вставки имени файла в название. И теперь еще имя файла вставляется, удаляя в поле старое значение.
2) Для функции чтения свойств компонента добавлен возврат к объектам спецификации. Если открыта сборка, её объекты спецификации и ассоциативный чертеж сборки, то при чтении свойств объекта спецификации компас перекидывает с окна ОС на окно сборки. При записи свойств этот возврат был сделан, теперь похожая ситуёвина для чтения.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.5
Отправлено: Вират Лакх от 24.09.18, 09:25:29
Версия 2.5 (описание потом когда-нибудь):
1) Переработано окно программы: стало компактнее за счет удаления лишних текстов и кнопки Вставить и закрыть.
2) Исправлена давняя ошибка с очисткой на СКМ полей ввода.
3) Для полей ввода добавлены команды Удалить слева и Удалить справа (см. контекстное меню на ПКМ). Удаление от мигающего курсора.
4) Измерения геометрии теперь на клавиши F11 и F12.
5) Добавлена новая функция получения материала из библиотеки МиС. При вызове команды на соответствующую кнопку вызывается основное окно справочника с разделом Сортаменты для выбора материала. Если материал будет выбран, то включается (если была выключена) галочка Материал, изменяющая материал в источнике. Цвет материала не учитывается. Вызов команды на клавиатуре - F10.
*) И немного подправлена работа команд Ctrl+X, Ctrl+C, Ctrl+V.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 29.10.18, 10:38:53
при вызове измерения ошибка:
Traceback (most recent call last):
  File "C:\Program Files\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Program Files\Python26\lib\lib-tk\Tkinter.py", line 495, in callit
    func(*args)
  File "C:\Program Files\ASCON\Îáîçíà÷åíèå êîìïîíåíòîâ v2.5.pyw", line 878, in <lambda>
    root.after(200, lambda: selection())                     # после задержки мс провериÑ,ÑŒ выделенносÑ,ÑŒ объекÑ,а
  File "C:\Program Files\ASCON\Îáîçíà÷åíèå êîìïîíåíòîâ v2.5.pyw", line 793, in selection
    xyzA = ksLineSeg3dParam.GetPointFirst()         # КоординаÑ,Ñ‹ первой Ñ,очки ребра
  File "C:\Program Files\Python26\lib\site-packages\win32com\gen_py\0422828C-F174-495E-AC5D-D31014DBBE87x0x1x0.py", line 8792, in GetPointFirst
    , y, z)
com_error: (-2147352571, '\xcd\xe5\xf1\xee\xe2\xef\xe0\xe4\xe5\xed\xe8\xe5 \xf2\xe8\xef\xee\xe2.', None, 1)
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 29.10.18, 11:06:58
Цитата: Умка от 29.10.18, 10:38:53
при вызове измерения ошибка:
Что пытаетесь мерить? Длину отрезка?
Отрезок/объект предварительно выделен или нет?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 29.10.18, 11:17:32
данные в объекты спецификации при редактировании в окне не вставляются и не удаляются

прямоугольники не измеряются и вылет через 1-2 раза.

К13WXPsp3
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 29.10.18, 12:20:55
1) Скиньте свой прямоугольник, напишите, как указываете.
2) В файле SDK.chm поищите GetPointFirst. Есть ли он там вообще. Если есть, то скиньте сюда описание.
upd
3) Попробуйте пару вариантов. Найдите xyzA и xyzB и впишите в скобки (0, 0, 0) или (0.0, 0.0, 0.0) типа того:
xyzA = ksLineSeg3dParam.GetPointFirst(0, 0, 0)
xyzB = ksLineSeg3dParam.GetPointLast(0.0, 0.0, 0.0)
Отпишитесь мне, какой вариант будет работать. Сейчас делаю версию 2.6, внесу туда исправление.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 29.10.18, 12:47:33
ksLineSeg3dParam::GetPointFirst
ILineSeg3dParam::GetPointFirst
Интерфейс...

Получить координаты первой точки отрезка.

Синтаксис Automation:

BOOL GetPointFirst (double * x, double *y, double *z);

Синтаксис COM:

BOOL GetPointFirst (double * x, double *y, double *z);

Выходные параметры:

x, y, z
- координаты первой точки отрезка.


Возвращаемое значение:

TRUE
- в случае успешного завершения,

FALSE
- в случае неудачи.


Примечание:

Значения x, y, z возвращаются в системе координат компонента.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 29.10.18, 13:02:49
3) оба варианта работают

Измерения стали выполнятся, за исключением высоты цилиндра.
данные в объекты спецификации при редактировании в окне не вставляются и не удаляются
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 29.10.18, 20:07:08
По цилиндру замените две строки point_1 и point_2 на эти:
point_1 = ksSurface.GetPoint(0, ksSurface.GetParamVMin(), 0, 0, 0)
point_2 = ksSurface.GetPoint(0, ksSurface.GetParamVMax(), 0, 0, 0)
Добавилась vmin, т.к. скругление у основания цилиндра не учитывалось.
И отпишитесь о результате.

"данные в объекты спецификации при редактировании в окне не вставляются и не удаляются" - в каком окне? В объектах спецификации? Тоже текст ошибки сюда скидывайте.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 30.10.18, 07:25:05
замеры выполняются все без вылетов, скругления и фаски не учитываются (это правильно).

данные в объекты спецификации не вставляются и не удаляются во всех случаях сборки  и в деталях. Пайтон ошибки не показывает.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 30.10.18, 08:01:54
Эти скругления учитывались бы как-то однообразно, а то с одной стороны берется, с другой - нет... Поэкспериментируйте, если хотите. Я оставил так, как надежно показывает. То есть с фасками/скруглениями "короче" цилиндр получается.

Ошибки не показывает, т.к. там try стоит на строках с 419 до 458.
Иначе на этой функции косяки в неподходящих случаях вылазят:
ObjectSpc = Description.BaseObjects.GetSpecificationObjectsForGeom(pe[i], False, 20, 0)[0]
Вот ОК2.5 без try. Пробуйте.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 30.10.18, 08:51:19
Traceback (most recent call last):
  File "C:\Program Files\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Program Files\Python26\lib\lib-tk\Tkinter.py", line 495, in callit
    func(*args)
  File "C:\Program Files\ASCON\Îáîçíà÷åíèå êîìïîíåíòîâ v2.5 wo try.pyw", line 878, in <lambda>
    root.after(200, lambda: selection())                     # после задержки мс провериÑ,ÑŒ выделенносÑ,ÑŒ объекÑ,а
  File "C:\Program Files\ASCON\Îáîçíà÷åíèå êîìïîíåíòîâ v2.5 wo try.pyw", line 793, in selection
    xyzA = ksLineSeg3dParam.GetPointFirst()         # КоординаÑ,Ñ‹ первой Ñ,очки ребра
  File "C:\Program Files\Python26\lib\site-packages\win32com\gen_py\0422828C-F174-495E-AC5D-D31014DBBE87x0x1x0.py", line 8792, in GetPointFirst
    , y, z)
com_error: (-2147352571, '\xcd\xe5\xf1\xee\xe2\xef\xe0\xe4\xe5\xed\xe8\xe5 \xf2\xe8\xef\xee\xe2.', None, 1)
Измерения не выполняются
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 30.10.18, 09:13:59
Ну так поставьте нули, где нужно. Вы же знаете. Я скинул версию 2.5 без каких-либо изменений, кроме try, для испытания вами объектов спецификации. Всё новое и исправленное будет в версии 2.6.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 30.10.18, 10:30:59
при редактировании отдельной детали БЧ данные в объект спецификации не вставляются,
при редактировании детали в контексте сборки вставка ОС выполняется

в остальном все измерения выполняются , без учёта фасок и скруглений.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 30.10.18, 10:51:09
Объект спецификации в отдельном документе m3d - это рудимент, который отпал в 18-й версии. В силу того, что информация в ОС детали может отличаться от свойств этой же детали, считаю ОС в m3d потенциальным злом, которое может всплыть когда угодно. Поэтому уже давно в этой программе БЧ и кг прописываются только в сборках. Кроме этого, у редактируемой на месте детали, имеющей в сборке ОС, тоже не прописываются БЧ и кг, т.к. хз, как до них добраться при включенном режиме редактирования на месте.
Try надо оставить, с ним тоже должно работать. Он защищает от ошибок при получении ОС, из-за которых программа дальше не работает. В новой версии добавлю сообщение в строке информации программы, которое будет сигнализировать о таком событии. Версия 2.6 не за горами.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 30.10.18, 11:04:03
БЧ и кг в сборке не прописываются при любом методе редактирования!

Расположение окна программы заморожено на одном месте, при перезапуске место не запоминает.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 30.10.18, 11:46:48
Цитата: Умка от 30.10.18, 10:30:59
при редактировании детали в контексте сборки вставка ОС выполняется
А это вы про что? Про то, что меняется Обозначение и Наименование? Тогда это не вставка ОС, а изменение свойств источника, затем компонента, потом объекта спецификации сборки.
Чтобы прописались БЧ и кг должно выполняться несколько условий:
1) это не верхний компонент (сам документ);
2) не редактирование на месте;
3) есть в сборке текущее описание спецификации (есть объекты СП);
4) нужный ОС и компонент связаны (у ОС есть геометрия);
5) деталь считается БЧ: включена галочка вставки материала в наименование или поле габаритов не пустое;
Еще берется первая копия данного компонента, чтобы прописалось в первую копию ОС, а не в скрытую. Возможно, тут криво работает. Попробуйте Показать все объекты в СП после вставки. Может оно прописывает не в первую копию.

Переименуйте расширение pyw на py.
После ObjectSpc = Description.BaseObjects.GetSpecificationObjectsForGeom... на новой строке напишите:
print "ObjectSpc: ", ObjectSpc
Будет ли там в черном окне при вставке отображаться типа того <win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.ISpecificationBaseObject instance at 0x80881544>
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 30.10.18, 12:53:47
Спасибо за проделанную работу. С К13+WXPsp3 думаю не стоит продолжать! ОС вставляются с переменным успехом/неудачей. Испортилась структура файлов, открытых в другом окне! Пора бы переходить на новую версию К..., но политика организации всегда верна! (
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.6
Отправлено: Вират Лакх от 07.11.18, 09:53:44
Версия 2.6. Исправление ошибок и дальнейшее развитие программы.
Что изменилось - рассказывать долго и нет времени вспоминать. Короче говоря, эта версия лучше предыдущих.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 07.11.18, 10:29:29
Цитата: Вират Лакх от 07.11.18, 09:53:44
Что изменилось - рассказывать долго и нет времени вспоминать. Короче говоря, эта версия лучше предыдущих.
От себя и от всех пользователей прошу освежить справку о программе  :writer:. Даже я уже не знаю, как с ней работать, и что она умеет  :cl:, хоть я и сам начинал писать этот код. :bang:
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 07.11.18, 11:13:45
Для начала сделал встроенную справку под кнопкой "?" и горячей клавишей F1. Там плотным текстом написано, для чего каждый элемент окна программы. Плюс читайте меню на ПКМ на полях ввода-вывода (и горячие клавиши оттуда).
Одно из изменений: шаблоны пришлось всё-таки переставить с двойного клика левой кнопкой мыши на двойной клик средней кнопкой мыши. Тем самым мы получили выделение текста на ЛКМх2 и ЛКМх3 с его последующим копированием на СКМ на другом поле и отсутствие глюков из-за этого встроенного функционала полей ткинтера.
Позже когда-нибудь думаю поразбираться с телами в сборке. Во-первых, в 18-м компасе по ним создаются объекты спецификации; во-вторых, всякие металлоконструкции делают свои объекты телами, а ОС создают не так, как хотелось бы. С удалением описаний СП эти объекты удаляются... Надо бы включить в проверку наличие в сборке тел и их ОС. Тогда справку пошире допишу, горячие клавиши, еще что-нибудь типа порядка работы. А пока общий принцип можно почитать в справке от версии 1.1: http://forum.ascon.ru/index.php?action=dlattach;topic=30640.0;attach=76926
Отличие данного старого описания от современной работы программы:
1) Теперь материал можно по-всякому менять.
2) Проверяется синхронизация МЦХ (в том числе материал) с источником.
3) Масса деталей БЧ с вырезами в сборке не должна быть меньше.
4) Измерения с выдачей только значения перемещено с F10 на F11.
5) Окно программы теперь не прячется при измерении.
6) Вызов шаблонов на ЛКМх2 -> СКМх2.
7) Остальные горячие клавиши пока можно почитать в тексте кода в конце программы и в процедуре entry_bind(wiget). Но опыт использования программы говорит, что клавиатурные клавиши особо не нужны.
---------------
Интересно узнать, как прога работает на к17 и к18.
Для Умки и у кого 13-й (sp1 ?) компас: если не включать галочку БЧ (редактирование объектов спецификации деталей без чертежа - запись в формат БЧ и массы в Примечание), то спецификацию программа не трогает, и глюков быть не должно.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 09.11.18, 06:59:58
У меня вопрос к владельцам старых компасов типа v13. Как выглядит graphic.dns внутри?
Типа того: Материал = 7.85|0 ? Или нет штриховки, указанной после символа "|"?

upd. Вопрос снят.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.7
Отправлено: Вират Лакх от 12.11.18, 11:07:11
Версия 2.7:
0. Объем кода :w: 1500 строк плотным текстом :cl: :o :%:
1. Новая функция: открытие на кнопку 'М' нажатием на СКМ, на свободном поле через ПКМ и F4 файла graphic.dns в привязанной к нему программе или блокноте.
2. Новая функция: добавление в файл graphic.dns материала из окна программы через ПКМ и F2.
3. Теперь не будет разделения версий программы для питона 2.х и 3.х - один универсальный код.
4. Прописаны разные меню на ПКМ для полей ввода-вывода и остального пространства окна. Весь функционал теперь виден на ПКМ-менюшках.
5. Оптимизация кода и добавление сообщений в нижней строке окна.
6. Проверка перенесена с ctrl+= на F6.
7. Остановка Измерения на клавиши F11 и F12. Получается удобство и исключение ситуации множественного запуска Измерения.
Спасибо ТрындецЪ за участие!
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 12.11.18, 11:23:10
Кто в работе использует эту программу? В какой версии КОМПАСа Вы работаете с ней?
Известна ошибка с измерениями в новых версиях, но никто о ней ещё не заявил. Складывается впечатление, что программой пользуются 2-3 человека, включая Вират Лакха.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов 2.7
Отправлено: Вират Лакх от 12.11.18, 11:45:14
Вообще, ветка сейчас неправильно называется. Программа уже давно переросла это название "Библиотека для деталей БЧ". Видимо, мало кому нужны детали без чертежа в 3D. А проходящие мимо ненужного названия в разделе "Биржа прикладных разработок" не знают о сегодняшних её способностях. Возможности переименовать всю тему нет. Или можно новую создать, или я сам буду пользоваться программой с удовольствием )
Название: Re: Библиотека для деталей БЧ
Отправлено: plscomeback от 14.11.18, 22:25:03
я пользовался, потом получил новый пк и забыл про нее, так много моделирую и мало черчу... но она реально спасет в скорости.. принимаются ли предложения по улучшению?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 15.11.18, 02:20:14
Принимаются. Сейчас пишется обработка тел в сборке, проверка тел со спецификацией. Была мысль автоматической расстановки обозначений по компонентам.
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 19.11.18, 21:41:54
как это работает?
"БЧ" и масса в СП заносится автоматически?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 20.11.18, 03:37:45
Если включить эту галочку, то при наличии в сборке описания спецификации, наличии в нем у выбранного компонента объекта спецификации ему в колонки формат и примечание пропишутся БЧ и кг в момент нажатия кнопки Вставить или Enter. Но не всегда. Компонент должен считаться деталью без чертежа:
1. Компонент - это деталь, а не сборка.
2. В окне программы в момент вставки в поле габаритов (самое нижнее) есть текст или включена галочка добавления в наименование материала.
Почитайте ответ #300 - там условия подробнее.
То есть вы можете включить эту галку, а программа сама будет ставить и убирать БЧ и кг там, где нужно.
Без нее вставка происходит несколько легче, т.к. мельше дел нужно сделать. Тем, кто пользуется Авторедактором, она не нужна, ибо лучше из него сразу всем расставить в конце оформления.
Название: Re: Библиотека для деталей БЧ
Отправлено: tramp_m от 20.11.18, 15:05:05
Вот в этих таблицах
https://ssopromat.ru/sortament
Как-то не внимательно, не увидел длины, для составления групповых чертежей с массой изделия и может быть 3D моделью....
Этой группы сортаментов...
Вместо Б/Ч библиотек для снятия проблем со спецификацией....
А, вот термин Компонент Конструкторской - проектной документации, ну не нашел в ЕСКД...
Прошу прощения если что не так...

Название: Re: Библиотека для деталей БЧ
Отправлено: plscomeback от 20.11.18, 15:22:55
Цитата: Вират Лакх от 20.11.18, 03:37:45
Тем, кто пользуется Авторедактором, она не нужна, ибо лучше из него сразу всем расставить в конце оформления.

это как, не совсем понял? это при использовании автоматической спецификации, можно всем поставить бч, если к ним не привязан чертеж?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 21.11.18, 03:37:18
Не совсем так. При использовании спецификации любой - ручной или по модели - можно расставить БЧ и кг тем объектам спецификации, которые попадают под настроенные критерии БЧ (условия, при которых программа считает ос бч деталью). В ручной СП надо массу внести в доп.колонку самому предварительно. Авторедактор изначально создавался не для привязки чертежей к ос. Но у него есть недописанная функция автоматической привязки чертежей.
Название: Re: Библиотека для деталей БЧ
Отправлено: VladAV от 21.11.18, 05:05:09
Здравствуйте.

Хочу попросить - подытожте возможности библиотеки.
Надоело бороться со спецификацией.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 21.11.18, 08:03:37
В двух словах так: (еще читаем содержимое окна на кнопку ? или F1 и ответ #304)
1) а) Когда у нас новая сборка или из старой надо переделать на новую сборку, нужно всем составляющим изменить обозначения и наименования. Особенно при системе обозначений вида абвг.000000.000, абвг.000000.001 это легко сделать с помощью программы. В любом случае программа записывает в источник компонента данные. То есть без этой программы нам приходится запускать редактирование на месте или открывать в окне подсборку или деталь, вызывать свойства, вносить данные может набирать, может из буфера обмена, закрывать свойства и окно или редактирование на месте. Слишком много дел для того, чтобы внести данные в компонент. Особенно это чувствуется, когда прописка данных идет друг за другом на готовой сборке. Программа же позволяет, находясь в сборке, легко, просто выделив компонент (а в новой версии будет еще тело) в дереве, в объектах спецификации или геометрию, нажатием на одну кнопку внести данные: обозначение, наименование и материал, кроме цвета.
б) Для чего программа создавалась. Легко можно оформить запись детали без чертежа. Без программы нам приходится копипастить материал и вставлять его в наименование, прописывать там собаки-дроби, потом измерять, запоминать, вызывать свойства, вспоминать длину или другой размер детали, туда его вписывать, добавляя в конце мм, плюсом (что еще хлеще) допуски к размерам. Из свойств это сделать очень трудно. Из объектов спецификации - косяки с рассинхронизацией, в каких-то версиях и путях создания спецификации кракозябры и прочее обеспечены. Легко можно создать и сохранить свой материал, внести его компонентам.
2) Отдельной темой программы является проверка у модели всех этих синхронизаций: галочки обозначение и наименование у компонентов, синхронизация мцх компонентов с источником, синхронизация объекта спецификации с компонентом, есть ли у объекта спецификации подключенная геометрия или это возможно левый объект, например, пришедший из плоского чертежа при вставке СИ и сохранении 2D, включена ли галочка у компонентов и тел на создание объекта сп (а то вдруг у компонента отключил и забыл или созданным металлоконструкциями телам после пересоздания с нуля СП не создал объекты спецификации).
Короче говоря, проверка узких мест, где невнимательность юзера или кривота компаса может навредить. Описанная расширенная проверка будет в версии 2.8. Вернее, она уже есть. Сейчас пишется чтение и запись свойств тел в сборках.

В чем заключается ваша борьба со спецификацией? У меня все отлично, особенно с оформлением её в файле cdw рядом со сборочником. Единственно, напрягает раздел Материалы с как попало работающей шизонутой галочкой синхронизации наименования с материалом. И то, это решаемо нашей программой.
Название: Re: Библиотека для деталей БЧ
Отправлено: matb от 25.12.18, 13:08:05
"В чем заключается ваша борьба со спецификацией?" СП 10 листов + 4 исполнения как правило.  У нас наработки в 16 версии и при создании объектов СП -
1. много лишних строк и
2. кол-во деталей может не совпадать (больше).
3. Пропадают "галочки включить СБ/деталь в СП.
4. БЧ переносится в примечание, а
5. масса с актуальной ссылкой и кг заданной точности не прописывается автоматически в примечании.
6. Дополнительное требование фирменное (стандарт предприятия) прописывать мелко в правом углу номер страницы ККД.
7. Перенос строки в наименовании @/ не всегда срабатывает.
Название: Re: Библиотека для деталей БЧ
Отправлено: matb от 25.12.18, 21:06:43
Цитата: Вират Лакх от 21.11.18, 08:03:37
... напрягает раздел Материалы с как попало работающей шизонутой галочкой синхронизации наименования с материалом.
8. Да, и с этим сталкиваемся.
Название: Re: Библиотека для деталей БЧ
Отправлено: matb от 26.12.18, 09:25:29
1. Запуск программы pyw - библиотеки.png Повторение.

2.  Спасибо ТрындецЪ за PortablePython_3.2.5.1.exe http://forum.ascon.ru/index.php/topic,31668.msg258317.html#msg258317
и наставления по запуску.
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.0 и проверка модели
Отправлено: Вират Лакх от 30.12.18, 05:44:32
Обозначение компонентов и тел v3.0
1. Чтение и запись свойств тел в сборках и подсборках аналогично работе с компонентами. Тела в деталях не обрабатываются.
2. Расширена проверка сборки и её объектов спецификации, улучшено включение синхронизации объектов спецификации с их геометрией.
3. Новая кнопка "S" включает всем базовым объектам спецификации Синхронизацию с документом-владельцем.
4. Теперь измерения геометрии в Компас v18 работают.
5. Добавлена отмена измерения геометрии на Esc и через ПКМ.
6. Меню материала на ПКМ со свободного пространства окна переставлено на поля материал.
7. Добавлено в меню на ПКМ: "Добавить в буфер" и "Удалить".
8. Теперь меню на ПКМ адаптивное.
9. Улучшено получение нужного экземпляра компонента для записи "БЧ" и "кг" в первый из его копий объект спецификации.
10. Исправлены другие некоторые ошибки (в т.ч. совместимость программы для python 2.x и 3.x), оптимизирован код программы.

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

На написание программы было потрачено очень много личного (вечернего, ночного, утреннего) и рабочего времени. Поэтому, если кому-то программа нравится, приму благодарность не только кнопкой на форуме, чтобы хоть как-то компенсировать семье занятое время.
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 30.12.18, 14:34:11
данная версия не запускается (Компас V16.1.4х64, Python2.6)
Название: Re: Библиотека для деталей БЧ
Отправлено: DesignЯR от 30.12.18, 18:40:59
Цитироватьданная версия не запускается (Компас 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
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 30.12.18, 20:12:54
Бывает, что установленная с Компасом связка 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 Тогда при запуске двойным кликом будет еще чёрное окно. В нём будут отображаться ошибки.
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 30.12.18, 20:35:54
Цитироватьу файла макроса измените расширение .pyw -> .py Тогда при запуске двойным кликом будет еще чёрное окно. В нём будут отображаться ошибки.
черное окно запускается на несколько секунд и закрывается... ошибок не вижу.
Предыдущие версии библиотеки для деталей БЧ запускались и работали
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 31.12.18, 13:25:59
Цитата: Вират Лакх от 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 - запускается и работает
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 31.12.18, 14:01:19
Интересный случай. Я вам подготовлю другую версию макроса с выводом сообщений на черный экран. Напишите мне свою почту, давайте в диалоге выясним, почему не работает. Это где-то в начале кода при подключении компаса...
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.1 и создание ОС тел
Отправлено: Вират Лакх от 10.01.19, 22:35:15
Обозначение компонентов и тел v3.1
1) Исправлен запуск макроса на некоторых компьютерах.
2) Добавлена проверка наличия стиля штриховки у материала в graphic.dns.
3) Новая функция - через нажатие на правую кнопку мыши на кнопку S создаются объекты спецификации для всех тел текущей сборки, у которых ОС не было (в справке отражено).
4) Оптимизация кода.
5) Количество строк - 1900. Завершение разработки этой программы.
Название: Re: Библиотека для деталей БЧ
Отправлено: matb от 11.01.19, 09:32:04
Рекомендую 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)."
Название: Re: Библиотека для деталей БЧ
Отправлено: matb от 11.01.19, 10:04:57
1. Справка Обозначение компонентов и тел v3.1.xls
2. Запускал IDLE-Portable.exe, открывал через него ... v3.1.pyw,
нажимал F5 - но запуск ... v3.1.pyw не стабилен (иногда.. запускается со второго раза по F5)
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.1 и создание ОС тел
Отправлено: Вират Лакх от 11.01.19, 10:43:17
matb, чтобы запустить макрос, не надо идти в соседнюю калитку через Владивосток.
То, что вы изобразили, - это для отладки и написания кода.
Для запуска программы достаточно нажать двойным кликом левой кнопкой мыши по файлу .pyw
Если не работает, то сказать винде, что pyw надо открывать с помощью pythonw.exe (см. картинку).
UPD.
Написанное выше справедливо для установленного питона.
В портативном питоне открывать нужно через Python-Portable.exe, иначе возникает ошибка при загрузке модулей.
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.1 и создание ОС тел
Отправлено: Вират Лакх от 12.01.19, 04:42:52
Цитата: Вират Лакх от 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-й не пойдет.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 14.01.19, 12:17:49
Ох уж этот питон - у одних работает, у других по-разному: то работает, то нет, у третьих - вообще не работает.
ЦитироватьТогда рядом с макросом или рядом с 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\ ...
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.1.exe - 1/3 часть
Отправлено: Вират Лакх от 15.01.19, 10:53:46
Для особо тяжелых случаев сделал из скрипта программу с помощью py2exe. В файле ReadMe.txt перечислено то, что должно быть в операционной системе (как правило, это уже должно у всех быть). Через PyInstaller по меркам форума слишком большой объем - в архиве 9 Мб. Эта сборка весит примерно 5 Мб.
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.1.exe - 2/3 часть
Отправлено: Вират Лакх от 15.01.19, 10:54:34
Продолжение.
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.1.exe - 3/3 часть
Отправлено: Вират Лакх от 15.01.19, 10:55:12
Конец архива.
Название: Библиотека деталей БЧ, программа Обозначение компонентов v3.2 - локальные детали
Отправлено: Вират Лакх от 24.01.19, 12:00:22
Очередная последняя версия.
В Обозначение компонентов v3.2 следующие изменения:
1) кое-что убрано
2) кое-что добавлено
3) кое-что исправлено
4) кое-что оптимизировано
5) расширены возможности программы по локальным компонентам: теперь можно присваивать материал и номер исполнения в обозначение в источник компонента и теперь читается материал у источника локальных деталей; в основу положен этот способ http://forum.ascon.ru/index.php/topic,31982.msg259086.html#msg259086
В архиве API от Компас v18, эти файлы должны лежать или рядом с программой, или рядом с pythonw.exe, или в папке питона site-packages
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 24.01.19, 20:19:50
У меня 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 - локальные детали
Отправлено: Вират Лакх от 25.01.19, 07:23:30
Забыл еще написать в описании версии v3.2:
6) кое-что поменяно местами, а именно на кнопке S действие ЛКМ и ПКМ, т.к. функция создания тел более частая и интересная, чем синхронизация с источником объектов спецификации, тем более, что в к18 теперь вообще нет такой кнопки-функции как синхронизация ОС с источником компонента.
vasurnik, у вас запустилось, потому что к16.1 и питон такой же 2.7.15.
7) Во вложении более универсально: pyc для к18, которые пойдут на всех версиях компаса и на питонах 2.7.15 и 3.2.5 (который портативный).
Должны лежать рядом с моей программой pyw. Когда мы рядом ставим модули в формате py, то это не решает проблему запуска у тех пользователей, у которых запрет на запись, т.к. при компиляции все равно там должны создаваться файлы.
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 25.01.19, 11:12:55
все равно не запускается с файлами API из данного архива...
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.3: финальная версия
Отправлено: Вират Лакх от 31.01.19, 23:14:19
Дарю вам 2000 строк кода версии 3.3 (теперь скорее всего точно наверно по-любому может быть наверняка последняя):
1) Исправлена куча ошибок и недоработок, в том числе работа на новых версиях компаса и чтение и запись источника локальной детали. Вот эта работа с локальностью здорово кровушки попила. В итоге код по универсальности и надежности сильно отличается от этого http://forum.ascon.ru/index.php/topic,31982.msg259086.html#msg259086
Чуть не в такой последовательности запишешь инструкции - зависание или падение компаса, особенно, если на локальном компоненте в сборке есть отверстие. Настоятельно не рекомендую использовать версию v3.2 во избежание проблем.
2) Добавлены проверки сборки:
а) проверка синхронизации материала (МЦХ) тела с его сборкой-владельцем (если стоит по источнику, то у тела будет свойства МЦХ от его сборки; если мы телу присваиваем материал из программы ОКТ, то синхронизация отключается - так же поступает библиотека металлоконструкций, которая телами создает объекты).
б) по просьбе трудящихся - отсутствие Раздела спецификации при включенной галочке Создавать объекты спецификации и наличии описания спецификации (т.е. отсутствие объекта спецификации, когда он должен быть).
3) Добавлена галочка получения материала ("П.М."). Вставка материала теперь называется "В.М.". Если П.М. выключена, получение обозначения и наименования без материала будет быстрее (особенно для локальных компонентов).
4) Добавил выдачу сообщения при ошибке импорта необходимых модулей. Теперь программа пытается создать необходимые модули. Если не получается из-за защиты записи, то пытается импортировать готовые py/pyc-файлы (они должны называться KompasAPI5 и KompasAPI7, иначе нужно в 30-й строке кода записать так: import ... as KompasAPI5, ... as KompasAPI7), где ... - название ваших модулей API Компас. Ранее я готовые модули уже выкладывал: https://forum.ascon.ru/index.php/topic,30640.msg259406.html#msg259406
5) Добавил возможность закрывать дочерние окна на Esc (которые с кнопками появляются при проверки модели).
P.S. Donate приветствуется.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 08:19:42
 :(

>>>

Traceback (most recent call last):
  File "D:\БЧ Вират Лакх\Обозначение компонентов и тел v3.3.pyw", line 7, in <module>
    if sys.version_info.major < 3:
AttributeError: 'tuple' object has no attribute 'major'
>>>
:?:
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 01.02.19, 09:15:12
Прикольно. У вас какая версия питон?
В седьмой строке sys.version_info.major замените на sys.version_info[0] или int(sys.version[0])
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 09:30:23
2.6

заменил
получил
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 01.02.19, 10:56:32
sys.version_info[0] - не стала работать?
IEmbodiment::Part – Компонент исполнения появился только в 16 версии оказывается. Думаю, можно это порешать.
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 01.02.19, 10:58:37
... не могу скачать...
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 11:01:49
Цитата: Вират Лакх от 01.02.19, 10:56:32
sys.version_info[0] - не стала работать?
...
нет.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 11:03:22
Цитата: vasurnik от 01.02.19, 10:58:37
... не могу скачать...
странно... у меня и ещё  у людей скачивается. Может быть у Вас что-то не так с Инетом?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 01.02.19, 11:10:18
Эка диво! Компас v 13 Windows 10 библиотека магически работает, все кнопочки нереально выполняют свои задания! Кроме добавления объекта спецификации. Можно это дополнить с ранних версий?
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 01.02.19, 11:14:44
прошу прощения, скачал...
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 01.02.19, 11:19:14
Цитироватьsys.version_info[0] - не стала работать?
Цитата: IgorT от 01.02.19, 11:01:49
нет.
IgorT, интересно, что тогда выдаст sys.version_info без квадратных скобок. Она же 'tuple' object, должна что-то выдать.
1) Запустите python.exe
2) Введите import sys
3) Введите sys.version_info
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 11:36:20
Цитата: Вират Лакх от 01.02.19, 11:19:14
IgorT, интересно, что тогда выдаст sys.version_info без квадратных скобок. Она же 'tuple' object, должна что-то выдать.
1) Запустите python.exe
2) Введите import sys
3) Введите sys.version_info

вот
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 01.02.19, 11:45:20
4) А теперь введите sys.version_info[0] должно выдать 2
Вы наверно что-то не так сделали.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 12:05:41
да.
выдаёт 2.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 12:09:08
Цитата: Вират Лакх от 01.02.19, 11:45:20
...
Вы наверно что-то не так сделали.
Понять бы, что я делаю не так.
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.4: работа Компас 15
Отправлено: Вират Лакх от 01.02.19, 13:01:13
Версия 3.4:
1) IgorT, проверьте на 15-й версии компаса чтение и запись свойств во всякие разные исполнения, еще чтобы текущее исполнение в читаемой или записываемой сборке не сбивалось.
2) Сделал пока что sys.version_info[0], если с какой-то стати не будет работать, то поставьте int(sys.version[0])
3) Исправил заодно ошибку при работе с локальными деталями в сборке без имени.
Цитата: Умка от 01.02.19, 11:10:18
Кроме добавления объекта спецификации. Можно это дополнить с ранних версий?
4) Умка, тут https://forum.ascon.ru/index.php/topic,30640.msg256091.html#msg256091 я вам писал, что можно попробовать и что должно соблюдаться (еще пункт: должна быть включена галка БЧ).
Между строками 495 и 496 напишите:
ObjSpc = SpecificationObjects[0]
print(ObjSpc)
if mat_var.get() or in_gabarit.get().strip():   # Если деталь БЧ
Дополнять из ранних версий не буду. Если что, пользуйтесь Авторедактором.
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.02.19, 13:35:08
Да. Работает. Спасибо!
С исполнениями потренируюсь  :)
Название: Библиотека для деталей БЧ - Обозначение компонентов и тел v3.5: лок.дет и К14-15
Отправлено: Вират Лакх от 04.02.19, 06:09:39
Версия 3.5:
1) Окончательно добил работу с локальными деталями. Могло зависать окно модели. Просто поменял пары строк местами:
Doc3D.windowNeedRebuild = False # Сначала должно идти окно, а потом дерево
Doc3D.treeNeedRebuild = False
2) Для Компас 14 и 15 при чтении компонента сделал, чтобы не сбрасывалось его выделение, когда текущее исполнение в источнике отличается от текущего исполнения в сборке.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 04.02.19, 10:35:50
Вират Лакх, print(ObjSpc) не помогло. Чёрного окна нет. При вставке отображения типа <win32com.gen_py.69AC2981-37C0-4379-84FD-5DD2F3C0A520x0x1x0.ISpecificationBaseObject instance at 0x80881544> также нет.
Программа запускается, свойства заполняются правильно. Кнопочки работают корректно. Добавления объекта спецификации не происходит.
Последняя версия с правильным добавлением объектов спецификации БЧ v0.9.
К13W10.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 04.02.19, 12:25:53
Само по себе print(ObjSpc) не поможет. Для начала нам этой инструкцией надо увидеть, что прога получает объект спецификации. Черное окно будет, когда вы переименуете расширение .pyw на .py и запустите через python.exe.
Еще раз, о каком добавлении мы говорим. Как такового добавления ОС теперь давно нет в программе. В 18 версии у деталей внутри теперь нельзя добавить ОС. У старых версий (< 18) можно, но нафиг надо. Есть и должно быть одно место, где находится описание модели, - это свойства. Объект спецификации может переопределять их ("Шурик, вы комсомолец? Это же не наш метод!"). Сейчас вписывается "БЧ" и масса в объект спецификации компонента в сборке (вам нужно находится в сборке и в ней на любой глубине раздавать обозначения и прочее деталям и подсборкам), если описание СП есть в этой сборке или подсборке, если ОС компонента есть, если включена галка БЧ, если в габарите есть данные или материал включен в наименование.
Вы хотите, чтобы в источнике детали создался ОС? Или чтобы прописались в ОС детали в сборке БЧ и кг?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 04.02.19, 14:38:09
Нужно чтобы в детали внутри создавался объект спецификации с БЧ и кг
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 04.02.19, 14:47:17
Зачем? Чем не устраивает вписать бч в ос компонента сборки? Я это делать не буду. Это пережиток прошлого и в принципе ерунда.
Название: Re: Программа Обозначение компонентов и тел v3.6
Отправлено: Вират Лакх от 13.05.19, 06:53:08
Новая версия программы - Обозначение компонентов и тел v3.6:
1) Доработано окно программы в части подгонки ширины полей ввода для названия и материала после команд через ПКМ;
2) В кнопке '≠' добавлена проверка на наличие компонентов, файлы которых расположены вне каталога или подкаталогов текущей сборки.
Если такие компоненты будут найдены, то выдаётся список этих объектов в виде кнопок, нажатие на которые копирует файл выбранного компонента в каталог сборки и заменяет (или компас выдаёт запрос на изменение ссылок, если файл был изменен и не сохранен) файл-источник данного компонента на созданную копию.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.05.19, 05:13:33
Специально для Kilia :)
Вот макрос, создающий не привязанную к геометрии позицию (с запросом текста), на которую в наименование вставляется ссылка.
Есть ограничение - если в модельке не будет геометрии и позиция не будет скрыта или исключена из расчета, то компас может падать при смене ориентации вида (спереди, диметрия и т.д.).
Прошу испытать надежность работы ссылки в деталях, которые расположены в сборках-подсборках, т.к. думаю включить в функционал новой версии программы ОКТ.
Название: Re: Библиотека для деталей БЧ
Отправлено: matb от 19.05.19, 15:29:51
Специально для работы в 18.1.5 с  Обозначение компонентов и тел v3.6.pyw будут специальные рекомендации/ограничения?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 20.05.19, 04:26:13
У меня нет и не будет компаса 17 или 18, поэтому какие-то тонкости в работе программы я не могу сказать. Теоретически всё должно быть нормально. Если бы были специальные рекомендации/ограничения, я бы сказал.
Название: Re: Программа Обозначение компонентов и тел v3.7 (ex. Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 22.05.19, 13:34:55
Крупное и финальное обновление программы до версии v3.7.
1) Добавлена замена остальных компонентов текущей сборки в проверке путей (ранее заменялся только первый).
2) Добавилась проверка материала в наименовании у компонентов и тел текущей сборки (актуально для деталей без чертежей).
3) Добавлена функция копирования материала в буфер через ПКМ и на горячую клавишу (удобно для создания ссылок у деталей БЧ).
4) Добавлена функция вставки ссылки в наименование через обозначение позиции (работает на Компас v16.1; на тех компасах, где не работает, доделывать ссылки придется самостоятельно).
5) Изменилось главное окно программы (функции, которые были спрятаны на некоторых кнопках через ПКМ и/или СКМ, выведены на отдельные кнопки; остались только ПКМ на кнопках '▲' и '▼').
6) Небольшая оптимизация кода (получение свойств Масса, Раздел спецификации и прочее).
7) Проработано перемещение между элементами окна по клавише Tab (сначала последовательно по полям ввода-вывода, затем всё остальное).
8) Добавлен вызов всплывающего меню на кнопку между правыми win и ctrl (а вот у компаса 16.1 этого нет для дерева модели).
9) Изменены некоторые горячие клавиши (указаны во всплывающих меню).
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 27.05.19, 05:32:00
Вместо FAQ:

1) "Нажал ≠" - это вы запустили проверку текущей сборки по 13-ти различным пунктам.

2) "Пощёлкал всё что вылезло." - появившиеся окна - это списки кнопок по каждому пункту, где есть подозрения на ошибку. В заголовке каждого окна написано, про что этот список и что совершает с указанным компонентом или телом нажатие на кнопку (что-то, например, включает или просто выделяет, чтобы можно было легко добить руками и не искать самому).

3) "(почему-то "первые 20 из...")" - списки ограничены 20-ю пунктами для того, чтобы окно с кнопками не было слишком длинным для окна монитора. Длинный список, как правило, результат массива "проблемного" компонента или тела. Если мы видим, что они повторяются, то должно быть достаточно нажать только первый из них. А затем провести повторную проверку, чтобы убедиться в полном исправлении всех замечаний.

4) "Создались объекты спецификации." - библиотека металлоконструкций (по крайней мере v16.1) топорово создает объекты спецификации. Лучше на них забить, библиотекой МК не создавать, а потом кнопками ОСт и ≠ навести порядок.

5) "Вручную присвоил недостающие Обозначения и они сгруппировались в СП. :o" - тут ничего удивительного нет; в компасе по умолчанию сортировка по обозначению (пока обозначения нет, объекты не группируются). Хотя может вру, у меня сортировка расширена давно.

6) "... жму ≠ и о чудо! Всё верно! Что я сделал и какие настройки программы мне нужны я так и не понял... Но получилось то что хотел!" - программа выполнила свою миссию - помогла неопытному в компасных заморочках человеку ) У '≠' настроек практически нет, разве что, возможно, обращается к галочкам БЧ и 0,0 с задвигалкой 0000 кг.

7) "Где почитать инструкцию к этому скрипту?" - у программы есть кнопка "?" - это вызов окна со справкой по программе. Можно вместо "?" традиционно нажать на клавиатуре F1. Кроме этого, можно прочитать всю тему
'Библиотека для деталей БЧ' https://forum.ascon.ru/index.php/topic,30640.0.html - тут вся история развития её функционала в течение 1 года и 9 месяцев. Ну или первую и последние страницы.

8) "Можно ли с помощью этого скрипта, автоматически присваивать Обозначения или Наименования деталям?" - автоматически нет. Как можно автоматизировать присвоение Обозначения? У всех свой подход к обозначениям: по классификатору или по последовательному изменению последних цифр. Наименования - тем более. Но программа облегчает раздачу Обозначений и Наименований с Материалом (в обычном виде или БЧ) деталям и телам текущей сборки, её подсборкам и компонентам и телам этих подсборок и т.д. на любую глубину. И, конечно, самим текущим документам: детальке или сборке.

9) Напомню основное про программу ОКТ:
- Выделить тот объект, который мы читаем или прописываем, можно как в дереве модели, так и геометрию в окне (поверхность, ребро, точку).
- Есть функционал по измерению геометрии для деталей БЧ.
- Материал можно выбрать из трех мест: МиС, graphic.dns и Текстовые шаблоны.
- Недавно добавилось создание ссылок для наименования.
- Можно работать из окна объектов спецификации текущей сборки.

Ещё раз благодарю ув. ТрындецЪ за то, что он заложил основу этой программы и научил меня Python и API Компас.
P.S. Donate приветствуется.
Название: Re: Программа Обозначение компонентов и тел v3.8 (ex. Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 06.06.19, 12:57:56
Теперь точно последняя версия v3.8 (2350 строк кода):
1) Вернул определение раздела спецификации у тел при создании им объектов спецификации и кое-что ещё переделал.
2) Улучшил работу с телами металлоконструкций (у неё материал и наименование тел зачем-то сделали через ' $b ').
3) Изменено расположение кнопок и галочек в главном окне программы.
4) Добавлена на кнопку '12' расстановка номеров позиций в объектах спецификации сборки (еще вызывается на клавиатуре кнопкой Pause и через всплывающее меню). При нажатии на эту кнопку в сборочном чертеже или спецификации запускается штатная расстановка позиций + сохранение документа (если файл создан), чтобы изменения передались в модель.
5) Новая секретная функция. На правую кнопку мыши кнопка 'ОСТ' копирует внутренние объекты спецификации текущей сборки во внешние. Созданные внешние объекты спецификации никак ни с чем не связаны, просто копии. Одинаковые базовые объекты складываются и записываются одной строкой. Это нужно для тех случаев, когда нужно подсборку вставить одним компонентом, а её внутренние объекты спецификации перешли в сборку, как будто вставлена россыпью или разрушена. Проверка на такую вставку будет ругаться. Эта команда особенно актуальна для подсборок, которые выполнены телами, например, библиотекой металлоконструкций. В этом случае разрушение подсборки приводит к исчезновению тел.
6) Дополнительная секретная функция. На среднюю кнопку мыши кнопка 'ОСТ' удаляет все внешние объекты спецификации текущей сборки.
7) Ещё какая-то оптимизация кода местами.
0) Про объекты спецификации в детальке.
Цитата: Умка от 04.02.19, 14:38:09
Нужно чтобы в детали внутри создавался объект спецификации с БЧ и кг
Цитата: Вират Лакх от 04.02.19, 14:47:17
Зачем? Чем не устраивает вписать бч в ос компонента сборки? Я это делать не буду. Это пережиток прошлого и в принципе ерунда.
Не такая уж ерунда эти ОС в детальке. Оказывается, можно выделить корень дерева детали и добавить объект спецификации с геометрией. Тогда ОС будет завязан со свойствами детали. Можно будет в таком случае в ОС прописать многострочное наименование (добавить материал через библиотеку, вставить шаблонный текст, спецсимволы и т.д.), что трудно или невозможно сделать через свойства. В новых компасах убрали же ОС в деталях? Значит, ушла такая возможность прописывать сложные тексты в наименовании? Плохо, что при удалении объектов спецификации сборки эти объекты внутри деталей тоже удаляются...
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 07.06.19, 11:04:30
Аналогично работаю! Выделяю корень дерева детали и добавляю объект спец. вместе с геометрией, БЧ и примечания ручками.
Название: Re: Программа Обозначение компонентов и тел v3.9 (ex. Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 26.06.19, 10:49:35
Версия v3.9. Шлифовка программы:
1) Проверка обращала внимание на компоновочную геометрию, теперь игнорирует. И обращала внимание на разницу $d и $b в наименовании и материале тел, созданных библиотекой металлоконструкций.
2) Некоторая оптимизация кода в плане быстродействия при проверке сборки и вставке свойств в компоненты.
3) Еще какие-то внутренние дела.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 26.06.19, 10:56:00
Хорошо было бы, если бы были реализованы всплывающие подсказки при наведении указателя мыши на кнопку, как в КОМПАСе. Там столько кнопок, что запутаешься, а справку лень лазить каждый раз.
Upd: Я даже ссылку (https://ru.stackoverflow.com/questions/807269/%D0%9A%D0%B0%D0%BA-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8E-%D0%BF%D1%80%D0%B8-%D0%BD%D0%B0%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BC%D1%8B%D1%88%D0%BA%D0%B8-%D0%BD%D0%B0-%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D1%83-%D0%B2-tkinte) нашёл, как это реализовывается.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.06.19, 11:11:20
Потом эти подсказки маячить будут. И тут гораздо меньше кнопок, чем в компасе :)
В справку лазить придется первое время. Потом не будешь пользоваться лишними кнопками и запомнишь нужные. И подсказки написать - это опять же время, которое и так было потрачено на программу в огромном количестве.
Так что извиняйте :)
Название: Re: Библиотека для деталей БЧ
Отправлено: pr0100 от 26.06.19, 11:30:56
Просьба запоковать в exe, не работает не последняя не предпоследнии версии
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.06.19, 11:51:14
pr0100, у меня к вам ответная просьба. Мне эти exe не очень нравятся. Давайте разберемся, почему у вас не работает. Я старался написать универсальный код, который бы работал на 2.х и 3.х питонах и со всеми компасами. Всяких попыток импорта внешних модулей сделал... Можем для разборок перейти с форума в другое место.
Или тут выложите, что показывает программа. Если не показывает, то запустите через IDLE (Python GUI) или чем вы пользуетесь для написания и отладки скриптов.
Название: Re: Библиотека для деталей БЧ
Отправлено: pr0100 от 26.06.19, 12:45:04
Ошибка в модуле re
*** Удаленный интерпретатор инициализирован повторно***
Traceback (most recent call last):
  File "Z:КД_StandartProducts.01_МакросыОбозначение компонентов и тел v3.9.pyw", line 2348, in <module>
    read_prop()                                                      # Считываем свойства компонента или тела
  File "Z:КД_StandartProducts.01_МакросыОбозначение компонентов и тел v3.9.pyw", line 262, in read_prop
    oboznachenie = re.split(oboznCode+'$', oboznachenie)[0]
  File "C:UserskAppDataLocalProgramsPythonPython36-32lib e.py", line 212, in split
    return _compile(pattern, flags).split(string, maxsplit)
ValueError: split() requires a non-empty pattern match.
>>>


Странно, что не работает через среду разработки. PyScripter. Через стандартное IDLE запускается
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 26.06.19, 13:17:35
Цитата: Вират Лакх от 26.06.19, 11:11:20
Потом эти подсказки маячить будут. И тут гораздо меньше кнопок, чем в компасе :)
В справку лазить придется первое время. Потом не будешь пользоваться лишними кнопками и запомнишь нужные. И подсказки написать - это опять же время, которое и так было потрачено на программу в огромном количестве.
Так что извиняйте :)
В КОМПАСе подсказки же не маячат, там пауза есть до появления (1 сек. наверное)
Вот нарыл код, который класс подсказок создаёт. Останется только для каждого виджета написать следующее:
CreateToolTip(имя_виджета, 'Текст подсказки')
У кого со временем посвободнее, реализуйте. У меня тоже со временем напряг.

class CreateToolTip(object):
    """
    create a tooltip for a given widget
    """
    def __init__(self, widget, text='widget info'):
        self.waittime = 1000     #пауза перед появлением подсказки (в микросекундах)
        self.wraplength = 180   #pixels
        self.widget = widget
        self.text = text
        self.widget.bind("<Enter>", self.enter)
        self.widget.bind("<Leave>", self.leave)
        self.widget.bind("<ButtonPress>", self.leave)
        self.id = None
        self.tw = None

    def enter(self, event=None):
        self.schedule()

    def leave(self, event=None):
        self.unschedule()
        self.hidetip()

    def schedule(self):
        self.unschedule()
        self.id = self.widget.after(self.waittime, self.showtip)

    def unschedule(self):
        id = self.id
        self.id = None
        if id:
            self.widget.after_cancel(id)

    def showtip(self, event=None):
        x = y = 0
        x, y, cx, cy = self.widget.bbox("insert")
        x += self.widget.winfo_rootx() + 25
        y += self.widget.winfo_rooty() + 20
        # creates a toplevel window
        self.tw = tk.Toplevel(self.widget)
        # Leaves only the label and removes the app window
        self.tw.wm_overrideredirect(True)
        self.tw.wm_geometry("+%d+%d" % (x, y))
        self.tw.wm_attributes('-topmost', 1)
        label = tk.Label(self.tw, text=self.text, justify='left',
                       background="#ffffff", relief='solid', borderwidth=1,
                       wraplength = self.wraplength)
        label.pack(ipadx=1)

    def hidetip(self):
        tw = self.tw
        self.tw= None
        if tw:
            tw.destroy()
Название: Re: Программа Обозначение компонентов и тел v3.10 (ex Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 27.06.19, 04:39:40
Версия 3.10. Исправление ошибки, возникающей на новых питонах (теперь нельзя делить строку пустым разделителем).
Название: Re: Программа Обозначение компонентов и тел v3.10 (ex Библиотека для деталей БЧ)
Отправлено: pr0100 от 27.06.19, 07:31:24
Цитата: Вират Лакх от 27.06.19, 04:39:40
Версия 3.10. Исправление ошибки, возникающей на новых питонах (теперь нельзя делить строку пустым разделителем).


Работает
Название: Re: Программа Обозначение компонентов и тел v3.11 (ex Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 30.06.19, 04:48:12
Версия 3.11. На этом развитие программы закрываем. Итак уже 2400 строк кода.
1) Исправление ошибок в функции сохранения файла компонента в папку сборки.
2) Навел порядок в работе дочерних окон проверки, справки и штриховки: фокусировка и закрытие на Esc.
3) Специально для ТрындецЪ добавлены всплывающие подсказки.
Название: Re: Библиотека для деталей БЧ
Отправлено: Helicoid от 30.06.19, 21:17:37
У меня в 2-х последних версиях не вносятся изменения в "свойства текущего документа", если хочу изменить обозначение, наименование сборки или детали.  После нажатия на "Вставить", внизу пишется, что данные внесены, но нечего не меняется. В v3.0 все работало. v16.1.
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 01.07.19, 08:29:29

---------------------------
Обозначение компонентов и тел 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

---------------------------
ОК   
---------------------------
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 01.07.19, 09:49:12
Цитата: andrei260 от 01.07.19, 08:29:29
ImportError: No module named win32gui
Не установлен пакет pywin32. Ищите ответ тут: https://forum.ascon.ru/index.php/topic,30856 (https://forum.ascon.ru/index.php/topic,30856)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 01.07.19, 09:56:15
Цитироватьв 2-х последних версиях не вносятся изменения в "свойства текущего документа"
Это тот случай, когда лучшее - враг хорошего. Данная ошибка - результат очередной оптимизации. Когда меняешь давно написанный код, есть шанс не вспомнить все нюансы. В новой версии будет работать лучше прежнего. Особенно должно заметно на тяжелых моделях.
ЦитироватьImportError: No module named win32gui
ТрындецЪ правильно говорит, нужно установить соответствующий вашему питону pywin32: https://github.com/mhammond/pywin32/releases

Новая версия будет позже. Нужно разобраться еще с одной ошибкой с подсказками.
Название: Re: Программа Обозначение компонентов и тел v3.12 (ex Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 04.07.19, 22:08:09
Версия 3.12.
1) Исправлена вставка свойств в верхний компонент (сам документ).
2) Оптимизирована функция вставки свойств для лучшего быстродействия.
3) Улучшено чтение верхнего компонента.
4) Добавлено сообщение при чтении свойств тел о синхронизации МЦХ со сборкой-источником.
5) Переделаны подсказки на class.
_____________________________
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 05.07.19, 08:11:56
Эх еще бы видео как работать с библиотекой (для примера)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 05.07.19, 09:05:20
А вы читайте справку, всплывающие подсказки, сообщения внизу окна и эту тему. Можете протыкать прогу на ненужных сборках и детальках. Всякие защиты на неправильные действия стоят. Если снимать видео, то оно долгое получится, чтобы показать работу всего функционала. На форум такое видео не влезет, а на обменники-ютубы выкладывать не охота. И, чтобы нормальный видос снять, надо время потратить. Предлагаю тем, кто использует программу, при желании записать видео. Мне будет интересно посмотреть программу в работе у других.
Название: Re: Программа Обозначение компонентов и тел v3.13 (ex Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 05.07.19, 20:06:02
Ставлю жирную точку в разработке этой программы на версии 3.13:
1) Всё тайное становится явным, или вынесены команды создания и удаления внешних объектов спецификации с кнопки ОСТ на свои отдельные СВО и УВО.
2) Давно мне не нравилось то, что в функции проверки остаются дочерние окна без кнопок, которые приходилось закрывать самому. Решил положить конец этому безобразию и сделал так, что последний вор закрывает двор последняя исчезающая кнопка закрывает свое окно.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 17.07.19, 08:42:24
У кого компас 17 и 18, проверьте у себя следующее.
Если в к16 в обозначении модели указать код документа, например, МД, то в спецификации такая моделька, имеющая в наименовании перенос строки @/, пишется в одну строку.
Вопрос: в какой-то из новых версий это вроде исправили, но не помню точно, в 17 или 18.
Владельцы 14 и 15 могут тоже проверить, вдруг у них нет такого.
Название: Re: Библиотека для деталей БЧ
Отправлено: Петрович-47 от 18.07.19, 09:09:34
Пожалуйста:
Перенос работает
Название: Re: Библиотека для деталей БЧ
Отправлено: Andrei 72 от 18.07.19, 12:12:51
Скачал OKTv313. Что делать с содержимым ( файл с расширением PYW) ? Извините за смешной вопрос. :shu:
Название: Re: Программа Обозначение компонентов и тел v3.14 (ex Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 19.07.19, 05:24:16
Версия Пи (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
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 25.07.19, 06:54:36
Здравствуйте, подскажите как с помощью этой чудесной библиотеки вставлять размеры детали как  во вложении?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.07.19, 19:44:17
Что-то я вопрос не понял. Одна картинка соответствует другой. Данные внесены из программы в деталь.
Вопрос в том, как получить сами размеры 750 и 50?
Как вариант, выделяете грань и нажимаете кнопку с линейкой, или по горячей клавише, или через меню на ПКМ.
Или сначала кнопку с линейкой (клавишу или через ПКМ), а потом грань. Или можно отдельно ребра измерить.
Точность измерения настраивается задвигалкой 0 мм. Можно дописать допуски типа 750-3х50+3.
p.s. Любой, кто считает программу чудесной, может совершить donate :)
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 26.07.19, 04:04:17
Сформулирую по другому вопрос, по нажатию на линейку программа измеряет размер грани и проставляет его в окно, а хотелось бы чтобы она , при необходимости формировала надпись формата 100х200.
PS Донатить куда?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 26.07.19, 06:27:42
Убери галку "мм". Можно ещё драйвер для коврика под мышь установить ::) :-)))...
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 26.07.19, 06:51:37
ЦитироватьУбери галку "мм"
А вот и не так, чтобы проставить габариты детали на ЛКМ нажать на поверхность детали было
ЦитироватьМожно ещё драйвер для коврика под мышь установить
ну не надо ля ля
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.07.19, 07:01:31
Вы о какой "необходимости" говорите? Умка правильно догадался? Вы о добавлении "мм" к размерам? Так и говорите :)
Можно еще коврик для мыши совсем удалить. Я, например, без ковра.
Если нужно эту галочку "мм" совсем отключить, чтобы она при повторном запуске не была включена опять, то в строке 2408 кода замените True на False, соблюдая регистр:
mm_var.set(True) -> mm_var.set(False)
или просто удалите эту строку.
p.s. Про донателло напишу в лс. Сразу скажу, что часть сразу отправится основателю программы ув. ТрындецЪ. Тем более, эту функцию измерений он заложил.
-------------------------
"Или сначала кнопку с линейкой (горячую клавишу или через ПКМ), а потом грань" - я так и говорил.
В итоге Вы вроде получили что хотели.
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 26.07.19, 07:13:16
Программа все правильно делает, просто я еще в ней не до конца разобрался и некоторых функциях приходится догадываться методом научного тыка.
Если мерить длину ребра, то программа пропишет L=100 мм, а если нужны габариты детали то нужно нажать на поверхность детали и она проставит габариты 100х200, причем не добавляя ММ, не зависимо от того стоит галка в мм или нет
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 26.07.19, 07:37:05
"мм" в поле размеров прога никогда не пишет, чтобы не мешались. Она их только добавляет при вставке, если есть галка. Должно работать одинаково: что для 100, что для 100х200. Есть другая разница в работе измерений. Через кнопку Линейка или на клавиатуре PageDown она прописывает всегда в поле размеров и добавляет текст типа 'D = ' или 'L = '. Через меню на ПКМ или кнопкой PageUp она добавляет в то поле, которое указано, без дополнительного текста, только одно число (нужно, например, для измерения толщины листа для вставки её в поле материал). Возможно стоит сделать, чтобы не добавляла, а вставляла в текущую позицию курсора...
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 26.07.19, 10:57:10
габариты 100х200 не добавляя ММ это есть универсально для многих пожеланий от многоуважаемых юзеров, п.м.м. это правильно. Догадываться не стоит, есть кей "?" с описаниями, можно так-же анализировать эту тему форума с самого начала. Ну пардоньте-с ежеле не так-с!
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 15.08.19, 06:34:19
Глюк, баг или фича? Если в обозначении детали БЧ присутсвует дефис "-" то программа делает эту деталь исполнением. Например 12345-01, 12345-02, то это будет деталь 1235-01 и 2-я исполнение 2
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 16.08.19, 04:10:03
"Глюк, баг или фича?" - фича. Исполнением не делает, а вносит текст после последнего дефиса в часть обозначения, которое номер исполнения. Это поведение не привязано к БЧ-шности детали. С любым компонентом так поступит. По ескд дефис - это разделитель исполнения. Возможно, стоит выделить для номера исполнения отдельное поле.
Название: Re: Библиотека для деталей БЧ
Отправлено: FR347 от 28.08.19, 07:59:16
Все! Разобрался!))

Уважаемый Вират Лакх, возможно ли добавить для деталей БЧ возможность сразу ставить ± после размеров?
Т.е. не 100х200, а сразу 100±х200±. У нас нормоконтроль требует ставить допуски в СП.

Попробовал что то поменять в коде, но для меня мудрено это. ))

Получилось поменять D на знак диаметра, и знак х на /.

Но плюс-минус никак не выходит...

Как понял для окружностей тут меняется:
   text = "⌀" + text1 + "/⌀" + text2

Но как не меняю, ошибку выдает синтаксическую.
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 28.08.19, 11:28:33
Цитата: FR347 от 28.08.19, 07:59:16

Уважаемый Вират Лакх, возможно ли добавить для деталей БЧ возможность сразу ставить ± после размеров?
Т.е. не 100х200, а сразу 100±х200±. У нас нормоконтроль требует ставить допуски в СП.
Попробовал что то поменять в коде, но для меня мудрено это. ))
Получилось поменять D на знак диаметра, и знак х на /.
Но плюс-минус никак не выходит...
Как понял для окружностей тут меняется:
   text = "⌀" + text1 + "/⌀" + text2
Но как не меняю, ошибку выдает синтаксическую.
Для этого не надо править код. Всё уже реализовано: (https://forum.ascon.ru/index.php/topic,30640.msg242148.html#msg242148)
ЦитироватьБуквы "Ф" и "ф" переводятся в спецсимвол диаметра;
"+-"  переводятся  в спецсимвол "плюс-минус";
"+" перед числом переводится вместе с числом в верхний индекс средней высоты;
"-"  перед числом переводится вместе с числом в нижний индекс средней высоты.
Название: Re: Библиотека для деталей БЧ
Отправлено: СВ от 28.08.19, 12:36:17
Цитата: Вират Лакх от 16.08.19, 04:10:03
"Глюк, баг или фича?" - фича. Исполнением не делает, а вносит текст после последнего дефиса в часть обозначения, которое номер исполнения. Это поведение не привязано к БЧ-шности детали. С любым компонентом так поступит. По ескд дефис - это разделитель исполнения. Возможно, стоит выделить для номера исполнения отдельное поле.
А что - БЧ-детали бывают с исполнениями?

- - - - - - -
 
     К автору темы:
тема стала такой старой и большой, что для понимания возможностей Библиотеки понадобится много времени на изучение всех этих страниц.
Нельзя ли по-новой дать, так сказать, АННОТАЦИЮ Библиотеки? Это здорово поможет ... всем, в общем.
Название: Re: Библиотека для деталей БЧ
Отправлено: FR347 от 28.08.19, 15:34:57
Цитата: ТрындецЪ от 28.08.19, 11:28:33
Для этого не надо править код. Всё уже реализовано: (https://forum.ascon.ru/index.php/topic,30640.msg242148.html#msg242148)

Я правильно понимаю, что надо вводить +- и ф в ячейку с размерами?
Название: Re: Библиотека для деталей БЧ
Отправлено: ТрындецЪ от 28.08.19, 15:39:32
Цитата: FR347 от 28.08.19, 15:34:57
Я правильно понимаю, что надо вводить +- и ф в ячейку с размерами?
Да.
Например: ф10+-2, Ф15+1
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 29.08.19, 05:38:25
Рекомендую использовать последнюю версию программы 3.14. В ней были кое-какие изменения на тему обработки названия и габаритов (см. https://forum.ascon.ru/index.php/topic,30640.msg264438.html#msg264438).
Перед тем, как что-то менять в программе, лучше спросить авторов. Скорее всего желаемое уже реализовано.
За 1 год и 11 месяцев разработки программа многому научилась в области обозначения и наименования объектов.
Кроме ф и +- еще заменяется -+ и * на знаки "минус-плюс" и "х" соответственно.
"А что - БЧ-детали бывают с исполнениями?" - кто его знает, у кого-то может и бывают.
Чтобы составить представление о программе, почитайте встроенную в программу справку ("?" или "F1").
Название: Re: Библиотека для деталей БЧ
Отправлено: FR347 от 29.08.19, 06:49:25
Добрый день всем!

Во первых огромное спасибо автору за данную библиотеку.
Пользуюсь из сторонних программ больше всего ей.
Еще компас-тулбаром (очень не хватает настраиваемой горячей панели из 16 Компаса).
Расстановкой еще... Но из-за СП компаса, скорее всего буду пользоваться генератором (автору спасибо!), а потом все в ручную (достали глюки СП).

Во вторых я сделал так, что бы сразу вводились +-.. Согласитесь, что бы ввести +-, надо тоже немного времени).
А ф и Ф вводить тоже время, плюс может раскладка быть английская.
К тому же у нас на круглые БЧ знак ∅, а не D. Например: ∅50±1∅40±1.
И для прямоугольных деталей, большую сторону нормоконтроль рекомендует ставить первой (ну что бы знать больший габарит необходимой заготовки). Поэтому тоже в коде для себя подправил.
Решил не тревожить автора,  не просить готовый код под себя, а сам подправить ))
К тому же мне интересно просто поизучать такие темы (хотя и не сильно силен в программировании))

""+" перед числом переводится вместе с числом в верхний индекс средней высоты;
"-"  перед числом переводится вместе с числом в нижний индекс средней высот"

А вот это пропустил (хотя мониторю тему).

Спасибо за программу!!!


Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 29.08.19, 09:53:58
В итоге вы решили проблему с плюс-минус? Может быть в будущем расширим возможности по настройке по себя.
По большей стороне первой - мы тут руководствовались по сортировке в спецификации от меньшего к большему как между деталями, так и размеры одной детали. Для листов вида 40х500, 40х600, 50х300 так вроде лучше...
Повторюсь, любой пользователь может выразить благодарность в форме donate :)
Название: Re: Библиотека для деталей БЧ
Отправлено: FR347 от 29.08.19, 10:25:28
1 - Ну это не проблема была. Просто не хочется тратить время на замену D на ф, вставку +-, замену х на /, в круглых деталях БЧ.
Да нашел где поменять ) Заодно немного поизучал код)))

2 - а сортировка же не по наименованию, а по обозначению деталей идет.
Я понимаю, что имелось ввиду сначала дать обозначения по возрастанию, а потом уже номера.
Но у нас это бесполезно, все меняется многократно))

3 - donate где находится?) В профиле Вашем нет вроде...
Название: Re: Библиотека для деталей БЧ
Отправлено: Volk62 от 02.09.19, 06:54:12
Вот чего не хватает так это кнопки реверса в размере плиты, т.е. иногда надо вместо например 1000х500 писать 500х1000, это надо для использования в мебели, там первый размер всегда указывает направление текстуры
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 11.09.19, 10:49:11
Никак не пойму, некоторым деталям приписывает БЧ и масса, а некоторым нет. Куда смотреть?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 12.09.19, 04:28:40
Чтобы прописались БЧ и масса:
- должна стоять галочка БЧ;
- компонент должен быть деталью;
- компонент должен быть не верхний, т.е. не активный документ-деталь или сборка, а деталь в сборке;
- редактирование объекта спецификации в локальной подсборке не делает;
- при редактировании детали на месте не будет изменен её объект спецификации;
- в сборке должно быть описание спецификации (внутренние объекты спецификации);
- изменение объекта спецификации происходит всегда у первого вставленного компонента из нескольких копий, чтобы БЧ и кг прописывалось не у скрытых объектов спецификации (может тут какой-то промах идет?);
- раздел спецификации должен быть Детали;
- должна быть включена галочка вставки материала в наименование или должны быть указаны размеры габаритов.
Название: Программа Обозначение компонентов и тел v3.15 (ex. Библиотека для деталей БЧ)
Отправлено: Вират Лакх от 22.10.19, 17:36:24
Версия 3.15
1) Неправильно работало чтение плотности при запуске через Питон 3. Например, у 7850 кг/м3 откидывался нуль.
Вставка плотности из graphic.dns - аналогично.
2) Исправлена работа округления и отображения незначащих нулей при записи массы в колонку Примечание.
3) После вставки имени файла добавился автоподбор ширины окна.
4) Через меню на ПКМ или кнопкой PageUp функция Измерить раньше добавляла значение в конец строки.
Теперь не добавляет, а вставляет в текущую позицию курсора.
5) Добавлена функция реверса размеров листа через меню на ПКМ. Например: 500х1000 -> 1000х500
Пункт меню появляется при условии наличия х или *, по обе стороны от которых есть цифры.
[attach id=undefined]OKTv315.zip[/attach]
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 24.10.19, 08:44:09
6) Внесены исправления в функцию создания внешних объектов спецификации (кнопка СВО).
См. вложение.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 12.11.19, 05:23:08
Коллеги, у кого компас версии ниже 16.1, проверьте, пожалуйста, у себя на тестовой сборке с одной простой (нелокальной) деталью этот макрос.
Есть случай, когда присвоение IsLocal = True не работает на v16.0.
Или по-другому. Взять ОКТ v3.15 и прочитать локальный компонент с включенной галочкой ПМ. Он в случае ошибки должен стать нелокальным.
Название: Re: Библиотека для деталей БЧ, программа Обозначение компонентов и тел v3.16
Отправлено: Вират Лакх от 15.11.19, 10:40:35
Версия 3.16
1) Включение галочек Источник на Обозначении и Наименовании в функции проверки текущей сборки. Раньше на кнопку вызывались свойства компонента.
2) Улучшение функции вставки материала из graphic.dns:
  а) Исправлена ошибка при работе в Python 3
  б) Сделано корректное чтение материала, записанного через $b (привет библиотеке металлоконструкций). Раньше читался только через $d.
3) Улучшение функции создания внешних объектов спецификации текущей сборки (копирование всех внутренних ОС во внешние).
4) Для облегчения кода и уменьшения времени запуска программы убрана проверка запущенного компаса. Теперь, если его нет, то будет запущен в видимом режиме.
5) На компасах версии меньше 16.1 не работало чтение и запись свойств в локальные компоненты из-за ошибки API. Кое-как нашелся обходной путь.
Название: Программа Обозначение компонентов и тел v4.0 - Вставка свойств в несколько объектов!
Отправлено: Вират Лакх от 06.12.19, 06:15:16
Теперь существует новая версия программы v4.0, которая умеет вносить свойства в одно нажатие на кнопку "Вставить" в несколько выбранных компонентов и тел.
Функция хорошо пригодится, например, для импортированных моделей, где элементы массивов становятся разными файлами.
Напомню, что свойства вносятся в источник компонента и можно выделять грани, ребра и вершины (чтобы не искать в дереве, но тогда будет медленнее вставка).
При этом, как и раньше, выбирать объект можно на любой глубине текущей сборки.
Новую версию программы меняю на вознаграждение.
Название: Re: Библиотека для деталей БЧ
Отправлено: Grinka от 06.12.19, 08:17:36
Полную версию темы не читал (много) но суть понял.
Идеально было бы в свойствах модели добавить разделы спецификации прямо в главном окне- такие как Б/ч, детали,и др, вообще взять или не взять в спецификацию. А стандартные изделия я думаю по умолчанию должны заносится в СП с вставкой Б/ч. :um:
Название: Re: Библиотека для деталей БЧ
Отправлено: Warlock-72 от 06.12.19, 09:51:16
Цитата: Grinka от 06.12.19, 08:17:36... стандартные изделия я думаю по умолчанию должны заносится в СП с вставкой Б/ч. :um:
На каком основании?
Требования ГОСТ 2.106 (п. 3.17) Вам не указ?
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 20.12.19, 04:26:40
ЦитироватьТеперь существует новая версия программы v4.0, которая умеет вносить свойства в одно нажатие на кнопку "Вставить" в несколько выбранных компонентов и тел.
А где она? 3.16 последняя или уже нет?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 20.12.19, 05:13:45
Она пока только у меня. Ждет, когда найдется кто-то, кому будет сильно нужна такая функция на столько, что готов будет приобрести её за вознаграждение. Тратится уйма времени (в основном вечернего-ночного-утреннего), чтобы прописать алгоритм. Хочется хоть какую-то печеньку за труды. Версии 3.16 и 4.0 обе последние на сегодня.
Название: Re: Библиотека для деталей БЧ
Отправлено: KiDim от 20.12.19, 08:19:28
Думаю оптимальным будет озвучить цену и разделить на страждущих. Этот вариант более реализуем на мой взгляд.
Название: Re: Библиотека для деталей БЧ
Отправлено: Grinka от 20.12.19, 09:20:20
Цитата: Warlock-72 от 06.12.19, 09:51:16На каком основании?
Требования ГОСТ 2.106 (п. 3.17) Вам не указ?

Извиняюсь. Конечно указ. Просто по привычке приходилось вписывать БЧ! А теперь все конечно упростится.
Название: Re: Обозначение компонентов и тел v4.0
Отправлено: Вират Лакх от 26.12.20, 06:18:20
Уважаемые коллеги, оказывается, тема неактивна больше года. Поздравляю Вас с наступающим Новым годом!
Во вложении программа версии 4.0, которая умеет вносить свойства в одно нажатие на кнопку "Вставить" в несколько выбранных компонентов и тел. Это может занять длительное время, поэтому напоминаю, что любой питоновский макрос можно на порядок ускорить, зажав кнопку на мышке для вращения модели в окне (среднюю - для старых версий компаса, правую - для новых).
Название: Re: Библиотека для деталей БЧ
Отправлено: andrei260 от 11.01.21, 09:43:30
Это как Новогодний подарок? Спасибо, если так, протестируем. Всех с наступившим Новым Годом, отдельно поздравляю разработчика сей чудно программы!
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 31.03.22, 15:37:37
Не мойму, каким образом в К20 задействовать ОК4.0?
Как вообще использовать *.pyw?
Программа запускается через PyScripter, но это не очень удобно. Можно как-то кнопочку назначить на запуск OK4.0?
Название: Re: Библиотека для деталей БЧ
Отправлено: Михаил88 от 31.03.22, 16:53:23
нужно просто через Открыть с помощью указать, чтобы такие файлы открывались через python.exe
Назначить на кнопку в к20 уже можно смотрите справку
Название: Re: Библиотека для деталей БЧ
Отправлено: p3452 от 31.03.22, 18:01:57
Вот почему, до сих пор, никто (в том числе и сами АСКОН-овцы) не написал "крутилку" для скриптов под Компас?
Проблема часто всплывает на форуме...
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 31.03.22, 19:18:08
По версии 4.0. Включение источника у компонента в функции проверки в новых компасах не работает. Для старых - этот способ, для новых - другой в версии 4.1, которая ждёт своего часа.

Цитата: Вират Лакх от 26.12.20, 06:18:20любой питоновский макрос можно на порядок ускорить, зажав кнопку на мышке для вращения модели в окне (среднюю - для старых версий компаса, правую - для новых).
Это справедливо только для старых компасов. В новых питон и так хорошо летает, поэтому ПКМ не даст эффекта.

Цитата: IgorT от 31.03.22, 15:37:37Не мойму, каким образом в К20 задействовать ОК4.0?
Как вообще использовать *.pyw?
Программа запускается через PyScripter, но это не очень удобно. Можно как-то кнопочку назначить на запуск OK4.0?
Если двойным кликом на файл pyw ничего не происходит, то нужно в винде ассоциировать это расширение с исполняемым файлом pythonw.exe (без консоли), в то время как py связан с python.exe (консольный). А ещё лучше удалить компасный старый питон и поставить новое с сайта https://www.python.org/downloads/ и https://github.com/mhammond/pywin32/releases Установщики все ассоциации сделают как надо.

Можно макросы через утилиты в конфигураторе запускать (см. картинку).
конфигуратор.jpg

Цитата: Михаил88 от 31.03.22, 16:53:23Назначить на кнопку в к20 уже можно смотрите справку
Или я не знал, или забыл, как можно макрос сделать с кнопкой в интерфейсе К20. Кто в курсе, подскажите. В старом компасе макрос сделать на кнопку - проще простого.

Цитата: p3452 от 31.03.22, 18:01:57Вот почему, до сих пор, никто (в том числе и сами АСКОН-овцы) не написал "крутилку" для скриптов под Компас?
Может эта панель поможет? https://forum.ascon.ru/index.php?topic=31913.120
Название: Re: Библиотека для деталей БЧ
Отправлено: Михаил88 от 31.03.22, 19:31:56
Цитата: Вират Лакх от 31.03.22, 19:18:08Или я не знал, или забыл, как можно макрос сделать с кнопкой в интерфейсе К20. Кто в курсе, подскажите. В старом компасе макрос сделать на кнопку - проще простого.

https://www.youtube.com/watch?v=b7FCTwJc0i0&list=PLb7fMw7ZZbFgp9E7Lj84Y1FP3tEvknYLX&index=3
начиная с 31 минуты.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 31.03.22, 19:56:21
А, точно. За год подзабылось уже. Только иконку свою там не сделать. Или, опять же, можно как-то?
Название: Re: Библиотека для деталей БЧ
Отправлено: Михаил88 от 31.03.22, 20:10:12
этого не знаю. У меня к сожалению нет к20
Название: Re: Библиотека для деталей БЧ
Отправлено: p3452 от 31.03.22, 21:41:14
Цитата: Вират Лакх от 31.03.22, 19:18:08Может эта панель поможет?
Ну кому-то, на старых версиях и поможет, но:
1. В v20 можно макросы навесит на кнопки.
2. "Панель" и "кнопки" это, всего лишь, полумера...
3. Любая "крутилка" имеет ряд дополнительных опций, как минимум:
- выполнение (созданного самим пользователем) списка макросов,
- ветвление выполнения, в зависимости от заданных (самим пользователем) условий,
- "список" и "условия" выполнения может менять сам пользователь (без переделки исполняемого файла самой "крутилки").
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.04.22, 08:13:19
Что такое "крутилка"? Поведайте.
Название: Re: Библиотека для деталей БЧ
Отправлено: p3452 от 01.04.22, 10:43:43
"Крутилка" это "движок" то, что выполняет скрипты.
На примере 3D игр:
- Есть "игровой движок (https://ru.wikipedia.org/wiki/%D0%98%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BE%D0%BA)"
- Есть "скрипты" (сценарий игры, поведение "героев игры", погода и т.п.).
Название: Re: Библиотека для деталей БЧ
Отправлено: IgorT от 01.04.22, 10:58:29
Что-то отстал в этих терминах. Не догоняю.
И как это должно быть представлено в Компасе?
Название: Re: Библиотека для деталей БЧ
Отправлено: vasurnik от 05.08.22, 10:15:35
Пробовал ли кто-то работоспособность макроса на Компас-3D V21?
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 19.12.23, 08:45:48
Перешли на Компас v22 библиотека не работает. Со скриптами вообще непонятки....
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 19.12.23, 12:49:36
Что конкретно не работает? Наверное справочник СИ? Если он, то это надо дописывать под новую версию.
Название: Re: Библиотека для деталей БЧ
Отправлено: zhykas от 22.12.23, 18:29:02
Цитата: Вират Лакх от 19.12.23, 12:49:36Что конкретно не работает? Наверное справочник СИ? Если он, то это надо дописывать под новую версию.
Не прописывается формат БЧ и не добавляется масса в примечании. (v.21)
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 23.12.23, 12:20:21
Цитата: zhykas от 22.12.23, 18:29:02Не прописывается формат БЧ и не добавляется масса в примечании. (v.21)
Галочку БЧ включали? Программа предназначена не только для БЧ, поэтому она отключена по умолчанию.
Название: Re: Библиотека для деталей БЧ
Отправлено: zhykas от 24.12.23, 07:42:12
Цитата: Вират Лакх от 23.12.23, 12:20:21Галочку БЧ включали? Программа предназначена не только для БЧ, поэтому она отключена по умолчанию.
Включал. Да, но пользуюсь ей для БЧ.
Делал по методике:
Цитата: Вират Лакх от 12.09.19, 04:28:40Чтобы прописались БЧ и масса:
- должна стоять галочка БЧ;
- компонент должен быть деталью;
- компонент должен быть не верхний, т.е. не активный документ-деталь или сборка, а деталь в сборке;
- редактирование объекта спецификации в локальной подсборке не делает;
- при редактировании детали на месте не будет изменен её объект спецификации;
- в сборке должно быть описание спецификации (внутренние объекты спецификации);
- изменение объекта спецификации происходит всегда у первого вставленного компонента из нескольких копий, чтобы БЧ и кг прописывалось не у скрытых объектов спецификации (может тут какой-то промах идет?);
- раздел спецификации должен быть Детали;
- должна быть включена галочка вставки материала в наименование или должны быть указаны размеры габаритов.
Пробовал и так и сяк. Не помогает. Приходится после вручную дописовать формат, массу и допуск габаритов с нижним индексом с помощью спецзнаков.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.12.23, 10:17:28
Цитата: Умка от 19.12.23, 08:45:48Перешли на Компас v22 библиотека не работает. Со скриптами вообще непонятки....
В v21.0.24 не работает SelectedObjects на примитивах (гранях, ребрах). Поэтому не работает функция Измерить (линейка).
Вместо нормального интерфейса объекта мы получаем <COMObject SelectedObjects>
После приведения к типу API7.IKompasAPIObject(SelectedObjects) попытка получения любого свойства выдаёт ошибку.
Но, например, с телом или компонентом работает. Похоже, API закосячили. Надо пробовать через API5. Там стабильнее.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 25.12.23, 10:27:05
Цитата: zhykas от 22.12.23, 18:29:02Не прописывается формат БЧ и не добавляется масса в примечании. (v.21)
Да, формат не прописывается. Масса в Примечание вписалась. При этом сбивает связь с источником у Обозначения и Наименования.
Короче говоря, для новых компасов программа нерабочая.
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 27.02.24, 15:23:09
Цитата: vasurnik от 05.08.22, 10:15:35Пробовал ли кто-то работоспособность макроса на Компас-3D V21?
Цитата: Умка от 19.12.23, 08:45:48Перешли на Компас v22 библиотека не работает. Со скриптами вообще непонятки....
Цитата: zhykas от 22.12.23, 18:29:02Не прописывается формат БЧ и не добавляется масса в примечании. (v.21)
До v20 основной функционал ещё более-менее работает. Вспомогательные функции, такие как работа с файлом DNS (штриховка), синхронизация объектов спецификации с документом-владельцем, вставка ссылки в наименование через выноску, создание и удаление внешних объектов спецификации, возможно что-то в проверке сборки, отпали где-то на версиях, начиная с v17. Особо не следил. Внесение в формат БЧ и в примечание массы могло перестать работать с появлением свойства Формат, но может оно и в v20 работает. В v21 появились групповые объекты спецификации, что сильно подкосило функционал программы. В v22 на смену МиС пришел Полином. Какой-то затык с измерением линейкой возник на этих версиях или раньше...
На дворе актуальная версия компаса 22, но программа свою значимость не потеряла до сих пор. Особенно полезна будет при (не) работе с тяжелым Полиномом (МиС, СИ).
По просьбам трудящихся я восстановил работоспособность программы до v22 включительно, кроме кнопок СВО и УВО. Кроме этого исправил кое-какие недочеты и добавил функцию разделения наименования по первому пробелу на обозначение и остальную часть наименования (кнопка О_Н, F8 и в меню на ПКМ).
Эта версия 5.0 точно продажная и выкладываться здесь не будет. Цена 1000 р. Обращаться в ЛС.
Название: Re: Библиотека для деталей БЧ
Отправлено: Умка от 17.03.24, 17:53:56
Пока пользуюсь "Обозначение компонентов и тел v4.0". Не работают МиС и измерения. При вставке step файлов, создании их симметричных деталей и сборок и изменении их свойств "Обозначение" и "Наименование" происходит вылет КОМПАС-22. Что с этой операцией происходит в версии 5.0?
Название: Re: Библиотека для деталей БЧ
Отправлено: Вират Лакх от 18.03.24, 04:51:38
Не знаю, надо пробовать. Присылайте набор файлов.