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

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

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

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

Михаил88

так можно менять свойство, но в источнике свойство останется прежним.

# -*- coding: utf-8 -*-
import pythoncom
from win32com.client import Dispatch, gencache

#  Подключим описание интерфейсов 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))
property_mng = kompas_api7_module.IPropertyMng(application)

kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)
iPart7 = kompas_document_3d.TopPart
parts = iPart7.PartsEx(0)

for part in parts:
    property_keeper = kompas_api7_module.IPropertyKeeper(part)
    property_keeper.SetPropertyValue(property_mng.GetProperty(kompas_document, 5.0), 'Пластина', True)
    # print(property_keeper.GetPropertyValue(property_mng.GetProperty(kompas_document, 5.0), '', True, False))

Если нужно менять свойство источника тогда только через открытие или редактирование на месте

IgorT

А что плохого в открытии или редактировании детали на месте?

Михаил88

Плохого ничего нет, немного дольше по времени обрабатываться будет

dimak222

Цитата: Михаил88 от 12.12.22, 17:55:29... но в источнике свойство останется прежним.
...
Вот это и хотел поправить, менять источник.

Цитата: Михаил88 от 12.12.22, 17:55:29..
Если нужно менять свойство источника тогда только через открытие или редактирование на месте
Жаль, ну открытие, так открытие. Уже делал так, самы простой по логике способ.

 
Цитата: Михаил88 от 12.12.22, 20:13:17Плохого ничего нет, немного дольше по времени обрабатываться будет
Когда компас открыт в "невидимом" режиме, в сравнение с "видимым" очень быстро работает. Как я помню, можно и когда запущен компас в "видимом" режиме открывать детали в "невидимом" (вкладка что-ли, без отрисовки модели открывается), похоже по аналогии как в V21 ввели (перетаскиванием чертежей и моделей).

Послезавтра попробую доделать.

Вират Лакх

А что вы хотите менять в источнике? Формат и массу, которая должна быть в примечании? Формат может прокатит (для новых версий), а Примечание вы куда собираетесь вписать? Массу с припиской "кг" вбить остается только в объект спецификации. А раз уж мы вписываем массу в ОС, то и формат тоже. Тогда смысла открывать источник особо нет. Это если в стиле спецификации поменять у Примечания свойство...
При невидимом открытии вкладка не появляется.

Михаил88

Цитата: dimak222 от 12.12.22, 23:15:48Когда компас открыт в "невидимом" режиме, в сравнение с "видимым" очень быстро работает.

я имел ввиду сравнение с тем, как у вас сейчас сделано (ISourcePart7Params) по сравнению  с открыванием в невидимом режиме.

dimak222

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

Что нового:
1. Список удаляемых слов/строк.
2. Запись массы и БЧ в св-ва дет.
3. Добавлены настройки МК дет. превращённые в дет.

Что изменено:
1. Сделано переименование, изменение формата и заполнение примечания (массы) в дет. через её открытие.

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

P.S. Пока идей что не так нет, утро вечером мудренее... Если не найду решение, верну версию с прописыванием св-в не в дет., а в св-ва сборки.
+ Благодарностей: 1

IgorT

Что-то не постиг ошибки. Покрутил сейчас сборку их трех деталей и ошибку не наблюдаю. Можете модельку с ошибкой выложить?

dimak222

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

Что изменено:
1. Переработано сохранение (если дет. не изменилась она не пересохраняется).

P.S. Баг с ошибкой (см. описание v.0.4.0.0b) воспроизводится в КОМПАС v19 (тестировал на нём). В КОМПАС v21 работает без проблем.
+ Благодарностей: 1

IgorT

Очень хорошо!
Можно попросить, что бы к "Массе" БЧ приписывались "кг"?
Возможно ли сделать так, что бы для размеров БЧ допуска указывать?

dimak222

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

Что нового:
1. Добавлена возможность вписать единицу измерения.

Цитата: IgorT от 15.12.22, 12:02:11Возможно ли сделать так, что бы для размеров БЧ допуска указывать?
Возможно, нужно на каждую дет. писать своё нахождение размера (швеллер: "S = \d+ мм"; пластина: "\d+ x \d+"....) и менять его на этот размер с допуском.
МБ потом добавлю, пока не хочется, долго...

p3452

Цитата: IgorT от 15.12.22, 12:02:11Возможно ли сделать так, что бы для размеров БЧ допуска указывать?
Не подумайте, что "цепляюсь", но у Деталей "БЧ" может быть только один "допуск" - точность измерительного инструмента!!!

dimak222

Цитата: p3452 от 15.12.22, 12:33:50только один "допуск" - точность измерительного инструмента!!!

Как я понял, имелось ввиду так: "Профиль Швеллер ..... L = 1200 ± 5мм" , "Пластина .... 300 x 200 ± 3мм".

Что бы можно было отрезать швеллер 1203 мм и он подойдёт. Не надо сидеть с напильником и подтачивать.
Либо другая история, сделали 1208 и говорят, ну у вас же допуска нет...
+ Благодарностей: 1

IgorT

Цитата: p3452 от 15.12.22, 12:33:50Не подумайте, что "цепляюсь", но у Деталей "БЧ" может быть только один "допуск" - точность измерительного инструмента!!!
Гражданин! Я с Вас удивляюсь!

СВ

Цитата: dimak222 от 15.12.22, 12:43:46"Профиль Швеллер ..... L = 1200 ± 5мм" , "Пластина .... 300 x 200 ± 3мм".
Именно так.
Тут можно как: либо "автоматика" сама понимает, что к каждому материалу подходит (где только длина, где длина х ширина),  либо иметь выбор, либо дать универсальную запись, в которой затем лишнее удалить. Допуск может быть как плюс/минус, так и плюс, и минус, и даже по квалитету. Главное, чтобы удалять лишнее было удобно и в правильном месте.
 - - - - -
Вспомнил - для круга (трубы?) можно указать фаски. Вроде бы и для листа (они будут по углам). И не забывать про шероховатость.
Типичный пример:  "Круг ..... L = 120 ± 1мм, фаски 2х45 , торцы Ra 12,5"

IgorT

Да еще у длину свой допуск, а у ширины её, ширинный.

Макрос получается замечательный! Обратил бы не него внимание Аскон...

p3452

Цитата: IgorT от 15.12.22, 12:48:01Я с Вас удивляюсь!
Это мне приходится "удивятся" с машиностроителей:
- не может быть допуска у детали "БЧ" - потому что "допуск" можно показать только в размере на чертеже.
- не может быть разделки  у детали "БЧ" - потому что "разделку" можно показать только на чертеже.

IgorT

Чавойта?
Это Вы в своих монастырях порядки наводите. У нас принято размеры деталей контролировать. А если допуска нет, то по чем контролировать?
Иде Вы видели детали БЧ с разделкой? Покажите такое чудо, повеселите нас!

dimak222

Цитата: СВ от 15.12.22, 12:50:13Тут можно как: либо "автоматика" сама понимает
Ну, тут можно такой алгоритм:

1. Если найдено "S = \d+ мм", заменить на "S = \d+ "N" мм", где "N" - "± n";"- n";"+ n";
2. Если найдено "\d+ x", заменить на "\d+ "N" x", где "N" - "± n";"- n";"+ n";
3. Если найдено "x \d+", заменить на "x \d+ "N"", где "N" - "± n";"- n";"+ n";
4. Если нужно общий на оба размера пластины, записываем только второй допуск;
.....
Я конечно не смотрел сколько там ещё разных дет. и разных записей, мб. этого и хватит.

Цитата: IgorT от 15.12.22, 12:53:03Обратил бы не него внимание Аскон...
Я думаю это совсем частный случай... Ниразу не нужно было брать наименование с имени тела, и скорее всего не понадобится.

IgorT

Цитата: dimak222 от 15.12.22, 13:10:24Ну, тут можно такой алгоритм:

1. Если найдено "S = \d+ мм", заменить на "S = \d+ "N" мм", где "N" - "± n";"- n";"+ n";
2. Если найдено "\d+ x", заменить на "\d+ "N" x", где "N" - "± n";"- n";"+ n";
3. Если найдено "x \d+", заменить на "x \d+ "N"", где "N" - "± n";"- n";"+ n";
4. Если нужно общий на оба размера пластины, записываем только второй допуск;
.....
Я конечно не смотрел сколько там ещё разных дет. и разных записей, мб. этого и хватит.
Я думаю это совсем частный случай... Ниразу не нужно было брать наименование с имени тела, и скорее всего не понадобится.
Мне не понятно, куда мы предполагаем прописывать величины "n"?
Ещё почему-то в МК нет возможности указать допуска на размеры тел.  Везде это есть, а тут нету. Совсем не понятно. Чем им, жалко что-ли было?

На счет частного случая. У МК есть функционал преобразования тел в детали, а механизма передачи геометрии с поддержкой связи нет. ИМХО недоработочка.
Ваш макрос прекрасно выполняет эту задачу.
Почему-то Аскон не предусмотрел этого в  МК.