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

Профессиональные вопросы => Программирование приложений => Тема начата: IgorT от 29.01.18, 14:45:55

Название: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: IgorT от 29.01.18, 14:45:55
Есть ли в природе такой макрос?
Задолбало самопроизвольное улетание сих птиц.
Был бы такой макрос - жизнь производственная стала бы веселе  :)
Если нету чудесного макроса, может кто возьмётся сочинить?
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Вират Лакх от 29.01.18, 15:27:18
Тоже давно задолбал Компас своими этими галочками Источник и кнопками Синхронизировать со свойствами компонента.
Как раз заканчивается работа над макросом-программой Обозначение компонентов v1.0, в которой есть кнопочка в верхнем правом углу, проверяющая эти галки. Вернее, сами галки хз как проверить, команда проверяет равенство свойства компонента свойству источника. Если не равны, то в окошке выдаст список кнопок этих неравных источникам компонентов.
Эта программа - глобальная переработка и мощное расширение программы для деталей БЧ http://forum.ascon.ru/index.php/topic,30640.200.html
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: IgorT от 29.01.18, 20:23:54
Класс! :)
Ждём-с  ::)
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Вират Лакх от 05.02.18, 06:29:33
Смотрите программу тут http://forum.ascon.ru/index.php/topic,30640.new.html#new
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: IgorT от 25.04.19, 08:29:56
А можно предложение озвучить?
Предлагаю дополнить функционал этой замечательной программы возможностью изменять имя файла компонента так, что бы оно совпадало с Обозначением - Наименованием.
Что скажете?
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Вират Лакх от 25.04.19, 19:02:55
Если кто-то называет файлы только наименованием? Плюс какой разделитель между обозначением и наименованием? У каждого свой шаблон. Придется каждому под себя править код или делать настройку. Допустим, имя файла источника изменили вместе с его свойствами. А кто будет менять его в сборке? Может сама программа у выбранного компонента. А если этот компонент вставлен в сборку не один раз, плюс в подсборки и, вообще, в другом файле? Что скажет сборка, когда ей у других копий компонента переименуют файл? При каждой замене имени файла искать его в текущей сборке и её подсборках?
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Lito 2 от 01.05.19, 18:32:22
Здравствуйте.
Для 15 версии делал библиотеку, которая проставляла галочки для источника у обозначения в 3D-сборках, если интересует могу скинуть.
Дополнительно можно было просмотреть отчет
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Вират Лакх от 06.05.19, 04:56:13
Цитата: Lito 2 от 01.05.19, 18:32:22
Для 15 версии делал библиотеку, которая проставляла галочки для источника у обозначения в 3D-сборках, если интересует могу скинуть.
Приветствую. Интересует сама программа и способ включения галочек у обозначения и наименования (работа с интерфейсами по SDK).
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Lito 2 от 06.05.19, 14:33:21
Вот ссылка для скачивания https://yadi.sk/d/zmwnRoAFklQiKw
Библиотека только для 15 версии.
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Вират Лакх от 07.05.19, 04:33:22
Команды из папки Источник не работают на v16.1х64 для локальных деталей - см. картинку.
Э-э, так она не включает галочки, а просто приравнивает значение свойств компонента источнику.
При объединении сборки в одну m3d быстрым способом происходит косяк с отрисовкой окна исходной сборки, как будто вы применяли windowNeedRebuild и обратное включение не происходит... Ну и название получаемой детали вроде хотите сделать с датой и временем, а на выходе получается просто название исходной сборки.
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Lito 2 от 07.05.19, 08:58:17
Для локальных деталей, которые внутри сборочной единицы, установить источник не делалось, задачи такой не было.
Про время это не команда "Источник".
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: once от 29.10.19, 13:50:17
Цитата: Вират Лакх от 06.05.19, 04:56:13Интересует сама программа и способ включения галочек у обозначения и наименования (работа с интерфейсами по SDK).

Чтобы установить галочку Источник у обозначения нужно вызвать метод SetPropertyValue(property, "", true), установив значением свойства пустую строку. Однако с Наименованием так не получается, пока не знаю как :(.
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: once от 29.10.19, 14:03:47
С наименованием тоже получилось. Если присвоить пустую строку компоненту в сборке part.Name = ""; part.Update(); то после этого наименование у компонента в сборке становится как у источника и проставляется галка.
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Вират Лакх от 30.10.19, 04:21:37
Вау! Как, оказывается, просто! Спасибо большое! Кто бы мог подумать!
В Компасе наименование полностью не удалить, а у обозначения источник включается только после ctrl+enter.
Разработчику SDK следовало написать об этом.
Значит, информация поверх присваивается, если она есть. Если пустое, то отображает источник.
upd:
У исполнения обозначение сбрасывать не всегда получается простым ''. У себя я так написал:
KompasVersion = KompasObject.ksGetSystemVersion(0, 0, 0, 0)[1]
k14 = True if KompasVersion >= 14 else False
iPart7.Marking = '$|$|$|$|$|$|' if k14 else ''
Название: Re: Проверка галок в свойствах компонентов в моделях сборок
Отправлено: Вират Лакх от 24.04.21, 12:24:55
На новых версиях Компаса описанный выше способ включения источника не прокатывает.
Оказывается, это был костыльный способ. На самом деле должно быть так для любого свойства:

from pythoncom import VT_EMPTY
from win32com.client import VARIANT
iPropertyKeeper.SetPropertyValue(iProperty, VARIANT(VT_EMPTY, None), True)

В SDK же написано, что вносить нужно тип VARIANT:
SetPropertyValue( LPDISPATCH Property, VARIANT Value, BOOL BaseUnit )