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

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

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

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

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

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

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

Макрос редактора свойств

Автор biomotor, 22.09.21, 10:34:46

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

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

biomotor

Sabahs,
   да блин мне не нужно изменить его значение или удалить совсем из списка, мне нужно 'убрать галочку'!

   попробовал так:
   iProperty = property_mng.SetProperty(false)
   и так:
   iProperty = property_mng.SetProperty(0)
   , ничего не произошло...
   (согласно SDK в интерфейсе IPropertyMng нет свойства SetProperty...)

Я об IPropertyKeeper - интерфейс получения/редактирования значения свойств.
Примеры на форуме есть.

biomotor

#22
Пробую так:

kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)
iDocument3D = kompas_object.ActiveDocument3D()
top_part = kompas_document_3d.TopPart

property_keeper = kompas_api7_module.IPropertyKeeper(top_part)

property = property_mng.GetProperty(VARIANT(VT_EMPTY, None), VARIANT(VT_R8, 5))
#property = property_mng.GetProperty(kompas_document_3d, "Наименование")
property_keeper.SetPropertyValue(property, "Имя", True)

Происходит изменение имени. Но как галочку то убрать?

biomotor

#23
Попробовал так:

rem_property = property_mng.RemoveProperty(VARIANT(VT_EMPTY, None), VARIANT(VT_R8, 20))
свойство опять удалилось...

biomotor

Подскажите чем отличается TopPart от Body7 ?
Как управлять свойствами IProperty, IPropertyMng, IPropertyKeeper ?

Toptotal

Цитата: biomotor от 23.09.21, 09:14:24В идеале если бы редактор запоминал свое состояние., но разработчики решили забить на данную функцию..
плагин к Total commander позволяет редактировать в меню изменить атрибуты по шаблону. и свойства видны все сразу без открытия в окне Total commander. При этом это универсальное средство  в зависимости от плагина любой формат и имя меняет файла в инструменте группового переименования.
Изменить свойство файлов САПР.gif

biomotor

Да не люблю я этот TotalCommander, для меня он неудобен, пользуюсь обычным проводником windows.

biomotor

Подскажите, никуя не пойму, если работать с SDK в python, Синтаксис Automation или COM?

Нашел это:
API интерфейсов. Версия 7  > Приложение  > Работа с панелью свойств  > Интерфейс IPropertyEditCheckBox  > IPropertyEditCheckBox - свойства  > CheckButton - Состояние кнопки
Как понять какие из команд работоспособны на python? CheckButton, GetCheckButton, SetCheckButton, get_CheckButton или put_CheckButton?

Михаил88

Цитата: biomotor от 24.09.21, 08:41:06Подскажите, никуя не пойму, если работать с SDK в python, Синтаксис Automation или COM?

Automation

biomotor

Возможно, за галочку отвечает это:
API интерфейсов. Версия 7  > Приложение  > Работа с панелью свойств  > Интерфейс IPropertyEditCheckBox  > IPropertyEditCheckBox - свойства > CheckButton - Состояние кнопки
НО не могу достучаться до Интерфейса IPropertyEditCheckBox... Подскажите как?

Spytnik

Добрый день.
А как получить значение свойства?
Само свойство "обозначение" получаю, но как дальше затуп(



# -*- coding: utf-8 -*-
#|1

import pythoncom # Импорт необходимых библиотек
from win32com.client import Dispatch, gencache
from pythoncom import VT_EMPTY, VT_R8
from win32com.client import VARIANT


#  Подключим константы API Компас
const = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
const_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants

#  Подключим описание интерфейсов 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)
iApplication = KAPI7.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(KAPI7.IApplication.CLSID, pythoncom.IID_IDispatch))


#  Получим активный документ
iKompasDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iKompasDocument)
iDocument2D = iKompasObject.ActiveDocument2D()


iPropertyMng2=KAPI7.IPropertyMng(iApplication)

iProperty=iPropertyMng2.GetProperty(VARIANT(VT_EMPTY, None), VARIANT(VT_R8, 4))

print(iProperty.Name)

p3452

На Форуме было НЕСКОЛЬКО тем о Свойствах - воспользуйтесь ПОИСКом...

lavgirb

Цитата: Spytnik от 02.11.24, 22:06:48Добрый день.
А как получить значение свойства?
Само свойство "обозначение" получаю, но как дальше затуп(
Используйте дальше
GetPropertyValue
+ Благодарностей: 1

p3452

До чего же ЛЕНИВЫЕ КОДЕРЫ пошли :-)))

Михаил88

Согласен с р3452. На форуме действительно не мало примеров на эту тему.