Библиотека а-ля "изоляция"

Автор ТрындецЪ, 24.05.18, 10:35:11

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

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

ТрындецЪ

24.05.18, 10:35:11 Последнее редактирование: 24.05.18, 15:02:27 от Вячеслав Никонов
Цитата: IgorT от 24.05.18, 10:30:32

Не плохо бы иметь в Компасе библиотеку а-ля "изоляция".
С Вас ТЗ с меня макрос.
+ Благодарностей: 1

IgorT

24.05.18, 11:04:38 #1 Последнее редактирование: 24.05.18, 15:03:49 от Вячеслав Никонов
Ну шо, уподобимся кЕтайцам, используем трофейную идею?

Задача: сосредоточить внимание на отдельных компонентах сборки.

1. Указываем любым способом интересующие компоненты

2. Давим кнопку "Изолировать"

3. Компоненты, не попавшие в набор выбора становятся невидимыми.
Появляется кнопки "Выйти из изоляции" и "Отобразить скрытые компоненты".

4. Производим желаемые действия над изолированными компонентами.

5. Если понимаем, что нужно видеть ещё что-то из сборки, нажимает конку
"Отобразить скрытые компоненты". При этом происходит инверсия видимости компонентов, и становится доступной кнопка "Выход из отобразить".

6. Указанием нужных компонентов отправляем их в набор для "изоляции". Они становятся невидимыми.

7. Нажатие кнопки "Выход из отобразить" возвращает нас в режим "Изоляция". Наблюдаем там желанные компоненты. Кнопка "Выход из отобразить" скрывается.

8. Производим дальнейшие действия над изолированными компонентами.

9. Когда "Изоляция" становится не нужной, давим "Выйти из изоляции"
Компоненты сборки принимают свойства видимости, установленные для начала режима "Изоляция". Кнопки "Выйти из изоляции" и "Отобразить скрытые компоненты" скрываются.



Может кто чего добавит или подправит?

ТрындецЪ

24.05.18, 14:18:00 #2 Последнее редактирование: 24.05.18, 15:07:36 от ТрындецЪ
Сделал только "Изолировать" и "Выйти из изоляции".
Скрытие компонентов происходит перебором по одному, поэтому занимает мно-о-о-ого времени. Как "толпой" скрыть компоненты, такого метода в SDK не нашёл.
+ Благодарностей: 4

IgorT

24.05.18, 14:49:18 #3 Последнее редактирование: 24.05.18, 15:04:11 от Вячеслав Никонов
Класс! :) Спасибо!  :)  Удивляюсь Вашим способностям.  :shu:

Ещё бы добавить возможность изолировать компоненты из подсборок.... А то сейчас можно обработать только компоненты главной сборки.
Возможно такое?

ТрындецЪ

24.05.18, 14:55:16 #4 Последнее редактирование: 24.05.18, 15:03:58 от Вячеслав Никонов
Цитата: IgorT от 24.05.18, 14:49:18
Ещё бы добавить возможность изолировать компоненты из подсборок.... А то сейчас можно обработать только компоненты главной сборки.
Возможно такое?
У меня для деталей из подсборок тоже работает. Может опять всё дело в версии КОМПАСа? Что за сборка? Деталь локальная или внешняя?

IgorT

Все детали внешние. Сборка маленькая. 97 компонентов, 12 подсборок. Текущая моя проработка.

ТрындецЪ

Цитата: IgorT от 24.05.18, 15:08:10
Все детали внешние. Сборка маленькая. 97 компонентов, 12 подсборок. Текущая моя проработка.
У меня нормально работает. Компонентов поменьше, конечно. Кто-нибудь ещё проверьте на других версиях.
IgorT, у Вас он подсборки скрывает, если выделена деталь подсборки или не скрывает? Кстати, компонент надо целиком выделять, а не только грань его или ребро.

IgorT

24.05.18, 15:14:33 #7 Последнее редактирование: 24.05.18, 15:34:39 от IgorT
Сосем странно... Для одних подсборок работает корректно, для других скрывает подсборку целиком. Разницы между ними пока не нашёл...

На счет скорости. Да, на более крупных сборках медленная скорость напрягает.

mikor

ТрындецЪ, у меня макрос не запускается. А вот макрос вставки ТТ работает.

ТрындецЪ

Цитата: mikor от 24.05.18, 15:47:33
ТрындецЪ, у меня макрос не запускается. А вот макрос вставки ТТ работает.
Этот макрос для Pyton 2.х. У вас скорее всего 3.х, если я не прав, то запускайте через отладчик и будем смотреть текст ошибки.

mikor

Цитата: ТрындецЪ от 24.05.18, 15:50:34
Этот макрос для Pyton 2.х. У вас скорее всего 3.х, если я не прав, то запускайте через отладчик и будем смотреть текст ошибки.
так точно!

Петрович-47

Боюсь спросить...

А если до команды изоляция деталь была скрыта... то после отмены изоляции она останется там (в скрытых) или появится на свет божий?


Уф спросил...

ТрындецЪ

Цитата: mikor от 24.05.18, 15:54:37
так точно!
Во вложении макрос для Python 3.x
Цитата: Петрович-47 от 24.05.18, 15:56:55
А если до команды изоляция деталь была скрыта... то после отмены изоляции она останется там (в скрытых) или появится на свет божий?
Останется скрытой.
+ Благодарностей: 1

IgorT

Цитата: Петрович-47 от 24.05.18, 15:56:55
Боюсь спросить...

А если до команды изоляция деталь была скрыта... то после отмены изоляции она останется там (в скрытых) или появится на свет божий?


Уф спросил...
А эксперимент провести ? Не?
Тогда докладываю: Сборка вернётся в состояние видимости как было до применения "изоляции".

Вират Лакх

25.05.18, 04:46:24 #14 Последнее редактирование: 25.05.18, 05:13:02 от Вират Лакх
0) Подписываюсь на тему. Усаживайся, Трындецъ, поудобнее, сейчас буду рвать и плющить макрос )
1) Я бы ширину окошка уменьшил до размера, чтобы заголовок окна впритык. Вплоть до изменения названия до короткого "Изолировать", "Изоляция" и т.д. Чтобы окошко маленькое было. "Выйти из изоляции" можно заменить на "Вернуть"...
2) Как всегда, хотелось бы разнообразия в логике: if есть выделенное then сразу запомнить состояние и скрыть.
3) Не скрывает тела в сборке. Учитывая возможность к18 ставить их в спецификацию, применение тел может расшириться, их станет много, значит надо скрывать тоже.
4) Предлагаю взять за основу процедуру Takepart из Обозначения компонентов для определения компонента по выделенной геометрии.
5) Не работает в режиме Редактировать на месте.
6) Хотелось бы кнопочку "Отобразить всё" (во всех подсборках) как в той 32-битной библиотеке.
7) Я так понимаю, ты проходишь все детали в подсборках и скрываешь их. Так, конечно, будет чудовищно медленно. Если выделен компонент в одной подсборке или в корневой сборке, то не надо перебирать все компоненты в других подсборках, а надо сразу скрывать всю ненужную подсборку. Т.е. перебираем массив ненужных подсборок, скрывая их, а не компоненты в каждой из них.
8) Что там с локальными деталями не то? Не догнал с ходу.
Цитата: IgorT от 24.05.18, 15:14:33
Сосем странно... Для одних подсборок работает корректно, для других скрывает подсборку целиком. Разницы между ними пока не нашёл...
9) Разница в том, что подсборка размножена массивом. Если есть массив подсборки, то выделенную деталь тоже скроет, не зависимо какой экземпляр. Надо тут скрывать подсборками целиком (см. п. 7) и не трогать выделенный компонент в другом экземпляре, тогда не будет этого.
10) У тормозов есть побочный плюс: анимация создания сборки ) Правда, последовательность не та, но и так интересно посмотреть.
+ Благодарностей: 2

Умка


mikor

Цитата: ТрындецЪ от 24.05.18, 15:58:55
Во вложении макрос для Python 3.xОстанется скрытой.
Заработало. Почему-то не изолирует подсборки, скрывает их полностью. С деталями проблем нет.

IgorT

Цитата: Вират Лакх от 25.05.18, 04:46:24
.....9) Разница в том, что подсборка размножена массивом. Если есть массив подсборки, то выделенную деталь тоже скроет, не зависимо какой экземпляр....
что-то не пойму... В моём узле нет массивов. Только вставленные детали и подсборки .

Скорость работы не  зависит от среды разработки макроса?

Умка

Не изолируются массивы в сборках и в подсборках.