• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Не могу получить свойства макрообъекта.

Автор feron, 05.11.23, 12:18:10

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

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

feron

Добрый день!

Не могу извлечь свойства макрообъекта в К16.1

    for views_item in views:
        view = KAPI7.IView(views_item)
        drawing_container = KAPI7.IDrawingContainer(view)
        macro_objects = drawing_container.Objects(const_2d_.ksDrMacro)
        if macro_objects:
            for macro_objects_item  in macro_objects:
                macro_object = KAPI7.IMacroObject(macro_objects_item)
               
                ''' macro_object:
                ['AddDefaultHotPoint', 'AddObjects', 'Application', 'AttachedLeaders', 'CLSID',
                'Command', 'Delete', 'DeleteAttachedLeaders', 'DeleteDefaultHotPoint',
                'DoubleClickEditable', 'DrawingObjectParamType', 'DrawingObjectType',
                'ExternalEditable', 'GetPlacement', 'HotPointsEditable', 'LayerNumber',
                'LibraryFileName', 'LibraryName', 'Name', 'Parent', 'PropertyObjectEditable',
                'Reference', 'SetPlacement', 'Temp', 'Type', 'Update', 'UserParams', 'Valid',
                'coclass_clsid']
                '''
                # всегда пусто
                for user_param in user_params:
                    print(user_param)

PropertyObjectEditable ?

sde.jpg

feron

Решил пойти следующим способом:

property_mng = KAPI7.IPropertyMng(api7_.Application)
properties = property_mng.GetProperties(macro_object)

#properties всегда пуст
# если добавить например iDoc2D (KAPI7.IKompasDocument2D(iDoc)) то выдает список

По сути это не критично:

    property_keeper = KAPI7.IPropertyKeeper(macro_object)
   
    ps = property_keeper.Properties
    print(ps)

feron

#2
Поспешил с выводами..

Получаю следующее из Properties (ps)

<?xml version="1.0" encoding="utf-16"?>
<document modified="0">
        <descriptions>
                <propertyDescriptions>
                        <propertyDescription id="4" name="Обозначение" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="5" name="Наименование" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="8" name="Масса" typeValue="double" natureId="V16F0ACEB123048408CFC1292992D9C44" unitId="VD53586643AE74C38A1BDF03D34991850"/>
                        <propertyDescription id="9" name="Материал" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="10" name="Плотность" typeValue="double" natureId="V19FC3778AF154EB79CAEFBF05ECA64BE" unitId="V0E6F6906E36F473797089A7D9DEC8E29"/>
                        <propertyDescription id="11" name="Автор" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="12" name="Организация" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="13" name="Комментарий" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="14" name="Тип объекта" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252">
                                <valueVariant id="0" value="Сборочная единица"/>
                                <valueVariant id="1" value="Деталь"/>
                                <valueVariant id="2" value="Стандартное изделие"/>
                                <valueVariant id="3" value="Компонент из библиотеки"/>
                                <valueVariant id="4" value="Тело"/>
                                <valueVariant id="5" value="Деталь-заготовка"/>
                                <valueVariant id="6" value=""/>
                                <valueVariant id="7" value=""/>
                                <valueVariant id="8" value=""/>
                                <valueVariant id="9" value=""/>
                                <valueVariant id="10" value=""/>
                                <valueVariant id="11" value=""/>
                                <valueVariant id="12" value=""/>
                                <valueVariant id="13" value=""/>
                        </propertyDescription>
                        <propertyDescription id="15" name="Позиция" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="16" name="Полное имя файла" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>   
                        <propertyDescription id="17" name="Имя файла" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="18" name="Создан" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="19" name="Последнее изменение" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="20" name="Раздел спецификации" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="6" name="Количество" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="21" name="Разработал" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="22" name="Проверил" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="23" name="Утвердил" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="24" name="Т. контр." typeValue="string" comment="Технологический контроль" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="25" name="Н. контр." typeValue="string" comment="Нормоконтроль" natureId="V9838B815F57644818A63FC39DB304252"/>
                        <propertyDescription id="26" name="Класс точности" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>     
                        <propertyDescription id="37" name="Знак неуказанной шероховатости" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252">
                                <valueVariant id="0" value="Шероховатость не задана"/>
                                <valueVariant id="1" value="Способ обработки не устанавливается"/>
                                <valueVariant id="2" value="С удалением слоя материала"/>
                                <valueVariant id="3" value="Без удаления слоя материала"/>
                        </propertyDescription>
                        <propertyDescription id="38" name="Параметр неуказанной шероховатости" typeValue="string" natureId="V9838B815F57644818A63FC39DB304252"/>
                </propertyDescriptions>
        </descriptions>
        <properties>
                <property id="4" value="1111$|$|$|$|$|$|" modified="0"/>
                <property id="5" value="Макро:1" modified="0"/>
                <property id="8" value="2" modified="0"/>
                <property id="14" value="Макроэлемент 2D" valueVariantId="4294967295" modified="0"/>
                <property id="16" value="G:\СБ_Гидроцилиндр.cdw" modified="0"/>
                <property id="17" value="СБ_Гидроцилиндр.cdw" modified="0"/>
                <property id="18" value="15.08.2017 10:49:11" modified="0"/>
                <property id="19" value="13.01.2023 19:30:04" modified="0"/>
                <property id="6" value="1" modified="0"/>
        </properties>
</document>


но когда пытаюсь последовательно разобрать - не чего не выходит

property_mng = KAPI7.IPropertyMng(api7_.Application)
properties = property_mng.GetProperties(iDoc2D)

if macro_objects:
            for macro_objects_item  in macro_objects:
               
                macro_object = KAPI7.IMacroObject(macro_objects_item)
                property_keeper = KAPI7.IPropertyKeeper(macro_object)
               
                # ps = property_keeper.Properties
                # print(ps)
               
                for property_item in properties:
                    property_ = property_mng.GetProperty(macro_object, property_item.Id)

                    value = property_keeper.GetPropertyValue(property_, "", True, True)[1]
                    print(property_item.Id, value, ' : ', property_item.Comment)

значения property_item..Id совпадают с предыдущим результатом но value всегда пуст.

                properties = [4,5,8,14,18]
                for property_item in properties:
                    property_ = property_mng.GetProperty(macro_object, property_item)
                    value = property_keeper.GetPropertyValue(property_, "", True, True)[1]
                    print(property_item, value,)
                print('-----------------------------')

Михаил88

+ Благодарностей: 1

feron

#4
Да, но это не работает в К16.

Все увидел, еще раз Спасибо!

Михаил88

+ Благодарностей: 1

feron