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

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

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

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

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

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

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

Написать процедуры для задания и получения свойств макроэлемента

Автор psiv, 27.11.16, 20:55:47

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

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

ТрындецЪ

Код на Python
# -*- coding: utf-8 -*-
# Добавление нового свойства выделенному макроэлементу

import pythoncom
from win32com.client import Dispatch, gencache

id_prop = 295566205320.0 # ID свойства "Маркировка"

#  Подключим описание интерфейсов API5
KAPI = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
iKompasObject = KAPI.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(KAPI.KompasObject.CLSID, pythoncom.IID_IDispatch))
#  Подключим описание интерфейсов API7
KAPI7 =  gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
api = KAPI7.IKompasAPIObject(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(KAPI7.IKompasAPIObject.CLSID, pythoncom.IID_IDispatch))
const = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants
iApplication = api.Application

iDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)
iKompasDocument2D1 = KAPI7.IKompasDocument2D1(iKompasDocument2D)
SelectionManager = iKompasDocument2D1.SelectionManager
SelectedObjects  = SelectionManager.SelectedObjects

# интерфейс Менеджера свойств
iPropertyMng = KAPI7.IPropertyMng(iApplication)

# путь к системной папке
Path_SYS = iKompasObject.ksSystemPath(0)

# интерфейс свойства из библиотеки
iProperty_lib = iPropertyMng.GetProperty(Path_SYS + "\properties.lpt", id_prop)

# добавим свойство в документ
iProperty = iPropertyMng.AddProperty(iDocument, iProperty_lib)

# интерфейс получения/редактирования значения свойств
iPropertyKeeper = KAPI7.IPropertyKeeper(SelectedObjects)

# установим значение в базовых единицах измерения (СИ)
iPropertyKeeper.SetPropertyValue( iProperty, u'Значение свойства', True )
+ Благодарностей: 3

psiv

Спасибо большое, Игорь!
Буду пробовать применить Ваш код в Делфи...

lavgirb

Цитата: ТрындецЪ от 17.09.18, 10:07:16Код на Python
# -*- coding: utf-8 -*-
# Добавление нового свойства выделенному макроэлементу

import pythoncom
from win32com.client import Dispatch, gencache

id_prop = 295566205320.0 # ID свойства "Маркировка"

#  Подключим описание интерфейсов API5
KAPI = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
iKompasObject = KAPI.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(KAPI.KompasObject.CLSID, pythoncom.IID_IDispatch))
#  Подключим описание интерфейсов API7
KAPI7 =  gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
api = KAPI7.IKompasAPIObject(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(KAPI7.IKompasAPIObject.CLSID, pythoncom.IID_IDispatch))
const = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants
iApplication = api.Application

iDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)
iKompasDocument2D1 = KAPI7.IKompasDocument2D1(iKompasDocument2D)
SelectionManager = iKompasDocument2D1.SelectionManager
SelectedObjects  = SelectionManager.SelectedObjects

# интерфейс Менеджера свойств
iPropertyMng = KAPI7.IPropertyMng(iApplication)

# путь к системной папке
Path_SYS = iKompasObject.ksSystemPath(0)

# интерфейс свойства из библиотеки
iProperty_lib = iPropertyMng.GetProperty(Path_SYS + "\properties.lpt", id_prop)

# добавим свойство в документ
iProperty = iPropertyMng.AddProperty(iDocument, iProperty_lib)

# интерфейс получения/редактирования значения свойств
iPropertyKeeper = KAPI7.IPropertyKeeper(SelectedObjects)

# установим значение в базовых единицах измерения (СИ)
iPropertyKeeper.SetPropertyValue( iProperty, u'Значение свойства', True )
Получается, что можно менять свойства одномоментно у группы объектов? Правильно понял?