Можно ли сделать макрос для работы с БЧ из Библиотеки металлоконструкций?

Автор IgorT, 06.12.22, 11:43:33

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

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

IgorT

Цитата: dimak222 от 07.12.22, 13:05:04На основе другого макроса с рекурсией, сделал этот по быстрому...
...
1. Добавить определение именно дет. МК (есть идеи, к примеру, по отсутствию обозначения/форматки... или какой-либо записи в обозначении/наименовании дет.).
Класс!
Вот только с определением деталей МК... Простые детали отличаются в дереве от деталей  визуально. Может быть есть какие-то признаки, что они из МК? Сам Компас их ведь различает.

Вроде как у простых деталей всегда эскиз перед телом имеется. У БЧ КМ эскиза нет и тело одно. Может за это зацепиться?

dimak222

Цитата: IgorT от 07.12.22, 13:35:30Простые детали отличаются в дереве от деталей  визуально.
Вот возможно как-то за это, но как оно определяет идей пока нет.

Цитата: IgorT от 07.12.22, 13:35:30эскиз перед телом имеется
Тело состоит из выдавливания, отв. и т.д... (Рис. 1) Не зависит от последовательности. Главное наличие хотя бы одной операции которое создаёт тело.

Вират Лакх

А если проще. Когда имя тела отличается от имени по умолчанию, т.е. не начнется с "Тело", значит там что-то нужное и это надо прописать в "верхний компонент".

IgorT

Вот типичная деталь БЧ из МК.


Не вижу эскизов в дереве.

Михаил88

Может фильтровать через чтение свойств. У меня к сожалению нет МК, а то я бы посмотрел. Попросил знакомого, чтобы выгрузил свойства, которые есть у детали вставленной через МК.
изображение_2022-12-07_162353335.png

p3452

Головой о стену... - это на любителя :)

p/s: Обратите внимание на "картинки", там четко виден заголовок раздела Компоненты и есть все данные, в том числе и Длина, и макрос никакой не понадобился.

p/s: p/s: IgorT, как Вы трактуете аббревиатуру "БЧ"?

IgorT

Цитата: p3452 от 07.12.22, 14:28:32...

p/s: Обратите внимание на "картинки", там четко виден заголовок раздела Компоненты и есть все данные, в том числе и Длина, и макрос никакой не понадобился.

...
Точно. Данные есть. По Вашему как, их руками прописывать в наименование?


Цитата: p3452 от 07.12.22, 14:28:32...

p/s: p/s: IgorT, как Вы трактуете аббревиатуру "БЧ"?
Странно, что Вы задаёте такой вопрос. "БЧ" означает Без чертёжные. А Вы как трактуете?

Вират Лакх

Если есть длина профиля (само свойство и значение), то тело является объектом металлоконструкций). Но это для сборки с телами МК. А у такой детали вроде нет даже свойства.

Михаил88

я про свойство длина профиля и не писал, я подсветил другие свойства.

IgorT

Может кто попробует способ определения БЧ? У такой детали только одно тело и эскизов нет. Чем не признак?


p3452

Деталь_Отчет1.png
То что обведено красным Наименование детали и получается оно без всякого макроса и заполнения ручками

IgorT

Что я ничего не понял...
Вы бы модельки выложили, где сиё наглядно узреть можно было бы.

p3452

Цитата: IgorT от 07.12.22, 15:29:28Что я ничего не понял...
Вы бы модельки выложили, где сиё наглядно узреть можно было бы.
- Что тут непонятного: настройки, которые нужно выполнить в Приложении-Металлоконструкции, показаны - выставляете их, делаете все Тела (кандидаты в БЧ) Локальными деталями и ву-а-ля.

dimak222

"Изменение наименования по имени тела v.0.2.0.0"

Что нового:
1. Добавил определение МК по имени тела (если есть в наименовании тела слово "Тело" - это не МК).

P.S. Вроде бы костыль, но работать должно=)
+ Благодарностей: 1

IgorT

Цитата: p3452 от 07.12.22, 15:44:45- Что тут непонятного: настройки, которые нужно выполнить в Приложении-Металлоконструкции, показаны - выставляете их, делаете все Тела (кандидаты в БЧ) Локальными деталями и ву-а-ля.
Вы тему с начала читали?
Ваш пост годится для тел, которые вставлены в сборку из МК. Но проблема в том, что вставлять их не удобно. Вот в чем дело.

IgorT

Цитата: dimak222 от 07.12.22, 16:11:13"Изменение наименования по имени тела v.0.2.0.0"

Что нового:
1. Добавил определение МК по имени тела (если есть в наименовании тела слово "Тело" - это не МК).

P.S. Вроде бы костыль, но работать должно=)
Класс!!! Похоже то, что нужно!

Михаил88

Цитата: Вират Лакх от 07.12.22, 15:00:36А у такой детали вроде нет даже свойства.

Свойство есть.

from win32com.client import gencache, Dispatch

kompas_api7_module = gencache.EnsureModule('{69AC2981-37C0-4379-84FD-5DD2F3C0A520}', 0, 1, 0)
application = Dispatch('Kompas.Application.7')

kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)
iPart7 = kompas_document_3d.TopPart
iFeature7 = kompas_api7_module.IFeature7(iPart7)
iBody7 = iFeature7.ResultBodies
property_mng = kompas_api7_module.IPropertyMng(application)
property_keeper = kompas_api7_module.IPropertyKeeper(iBody7)
print(property_keeper.GetPropertyValue(property_mng.GetProperty(kompas_document, 316618764777.0), '', True, True))
вот, что получил на выходе я читал свойство "Эскиз сечения"
Screenshot_1.bmp

запускал на такой детальке
Screenshot_2.bmp

если все детали МК имеют такое свойство то можно по условию спокойно отфильтровывать нужные детали.

Вират Лакх

Цитата: p3452 от 07.12.22, 15:18:04То что обведено красным Наименование детали и получается оно без всякого макроса и заполнения ручками
А если изменить длину профиля, то наименование тоже изменится?

IgorT

Цитата: Вират Лакх от 07.12.22, 17:31:13А если изменить длину профиля, то наименование тоже изменится?
Нет. Не изменится.

А макрос от dimak222 меняет как надо!
Прекрасно!
Но надо помнить, что макрос не обрабатывает локальные детали. 

Но тут выяснилась особенность...
Если мы нашу деталь делаем в МК и применяем к ней разделку, то макрос считает ее за БЧ и переименовывает её Наименование. Но нам этого не надо.
Как с этим быть?