Макрос "Менеджер позиций"

Автор ТрындецЪ, 13.02.18, 14:09:40

« назад - далее »

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

ТрындецЪ

Занялся разработкой макроса для работы с позициями.
Мотивацией послужило это сообщение пользователя IgorT.
До реализации пожелания пока дело не дошло. Начал с простого.

:idea: Менеджер позиций v0.2
Умеет массово изменять номера обозначений позиций на чертеже.
Работает с позициями в выделении или во всём чертеже.
Можно задать интервал номеров, в котором нужно произвести замену (номера, задающие интервал, тоже включаются в обработку).
Так же, находит обозначения позиций в макроэлементах любого уровня вложенности. Работает с многострочными позициями и "вариантными" позициями (например, "17 или 25").
Игнорирует позиции на погашенных видах и слоях.

Выражаю благодарность пользователю Вират Лакх за помощь в написании кода!
+ Благодарностей: 8

IgorT

Под какими Питонами работает?

ТрындецЪ

Выложил две версии: для 2.х и 3.х python.
+ Благодарностей: 1

IgorT


Вират Лакх

Цитата: IgorT от 13.02.18, 14:53:39
Спасибо! Работает!  :)
Действительно спасибо!
Ув. ТрындецЪ не сказал, что связанные с позициями объекты спецификации макрос не меняет. Если изменить ОС, то связанная позиция станет такой, как у ОС. Над этим надо подумать, что делать.
Соц. опрос. См. рисунок. Как бы выбрали: словами уменьшить/увеличить, стрелками вверх/вниз или знаками +/-?

ТрындецЪ

Цитата: Вират Лакх от 14.02.18, 09:13:03
Ув. ТрындецЪ не сказал, что связанные с позициями объекты спецификации макрос не меняет. Если изменить ОС, то связанная позиция станет такой, как у ОС. Над этим надо подумать, что делать.
Со связанными позициями надо работать через спецификацию, все изменения проводить в ней. Нынешний функционал макроса связанным позициям и не нужен, в спецификации несложно объекты двигать.

Вират Лакх

Бывают ситуации, когда часть позиций привязаны, а часть - нет. Отвязаться могут из-за ряда причин. Поэтому нужна команда проверки привязки и самой привязки позиций к ОС с этими номерами.
Можно сделать проверку на лишние или недостающие позиции на чертеже относительно спецификации...
У позиции есть свойство, указывающее на связанный с ней ОС?
В общем тема позиций еще не раскрыта :)

ТрындецЪ

Цитата: Вират Лакх от 14.02.18, 09:49:14
У позиции есть свойство, указывающее на связанный с ней ОС?
В общем тема позиций еще не раскрыта :)
Думаю, что это:
GetSpecificationObjectsForGeom - По геометрии получить массив объектов спецификации в виде SAFEARRAY'я DISPATCH - VT_ARRAY | VT_DISPATCH
Да, тут есть где разгуляться творческой мысли!


IgorT

А в принципе возможно реализовать задуманное? В смысле получить инфу о том, в каком компонент сборки мы тыкаем мышью на чертеже?
API позволяет?

ТрындецЪ

Цитата: IgorT от 14.02.18, 10:05:19
А в принципе возможно реализовать задуманное? В смысле получить инфу о том, в каком компонент сборки мы тыкаем мышью на чертеже?
API позволяет?
Ткнув мышью на пустое поле чертежа, мы только получим координаты курсора. Тут самостоятельно нужно разработать алгоритм поиска геометрии и определения наиболее вероятной детали.

IgorT

Собственно об этом я и интересуюсь. У вражеских программ такая функция заложена в самих программах.
Очень хотелось бы иметь аналогичную в Компасе.

ТрындецЪ

 IgorT, есть небольшой повод для радости.
Менеджер позиций v0.3
Добавлена команда создания на чертеже обозначений позиций, автоматически связываемых с объектами спецификации этого чертежа.
Порядок работы:
- запустить команду;
- указать геометрический примитив, принадлежащий объекту спецификации;
- указать точку, на которую будет указывать линия выноска;
- указать точку начала полки линии выноски.
+ Благодарностей: 3

Falcon555

а чем этот макрос лучше компасовской библиотеки расстановки позиций?

ТрындецЪ

Цитата: Falcon555 от 26.02.18, 13:56:17
а чем этот макрос лучше компасовской библиотеки расстановки позиций?
Эта команда макроса будет удобна, когда в большом проекте появится новая деталь.
Вообще, о подобной команде мечтал  уважаемый IgorT. Скорее всего, он уже когда-то описывал все прелести такой команды.

IgorT

Тестирую прогу.  :)
Вот это да! Это замечательно. По ходу мечты сбываются!

Уважаемый ТрындецЪ, можно  ещё пожелать, что бы фантом позиции отображался, что бы видеть куда позицию ставим, а не только по точкам ориентироваться?
Оно конечно всегда можно поправить, но как то приятнее, когда сразу видно куда. :shu:

Народ! Нам что, на пару с Трындецом нужна сия волшебная позиция? Че отмалчивается?

Вират Лакх

Хорошая прога, но её еще пилить и пилить )
upd. А потом еще точить и точить...

ТрындецЪ

Цитата: IgorT от 27.02.18, 09:47:52
... можно  ещё пожелать, что бы фантом позиции отображался, что бы видеть куда позицию ставим, а не только по точкам ориентироваться?
Планирую, конечно, фантом добавить. Но я ещё с ними не работал, поэтому нужно время на освоение.
Цитата: Вират Лакх от 27.02.18, 09:50:08
Хорошая прога, но её еще пилить и пилить )
upd. А потом еще точить и точить...
... а потом шлифовать и шлифовать...

Resfeder

"Создать ассоциативное обозначение позиции" впечатлило! Браво! :fr: Да, фантома не хватает.
Теперь про изменение позиций: номер позиции на чертеже изменился, а в спецификации нет. Хотя связь есть. Что-то я не понял зачем это.

ТрындецЪ

Цитата: Resfeder от 27.02.18, 11:45:52
Теперь про изменение позиций: номер позиции на чертеже изменился, а в спецификации нет. Хотя связь есть. Что-то я не понял зачем это.
Это поле для несвязанных позиций задумывалось.
Связанные, как уже говорилось ранее, легко двигать через редактирование спецификации.

Вират Лакх

Если компасом связать и менять позицию, то объект спецификации меняется. А тут пока нет.