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

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

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

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

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

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

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

Обозначения массы в графе "Примечания" модели

Автор ArkadyNaumov, 10.07.24, 20:54:47

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

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

ArkadyNaumov

Здравствуйте, передо мной встала задача обозначения массы в графе "Примечания"
(см. картинку: )

Так вот, насколько мне известно, можно задать формат, обозначение, раздел и тд, но как задать Примечание? Я не нашел инструмента для редактирования этого свойства или даже свойств внешнего объекта спецификации:


Сразу скажу, что задание ссылкой мне не подходит, поскольку не хватает приписки "кг".

Еще бы очень помогли, если бы напомнили указатели на задание "БЧ" и формата.

Pokemon

#1
Цитата: ArkadyNaumov от 10.07.24, 20:54:47задание ссылкой мне не подходит, поскольку не хватает приписки "кг".
Как вариант можно сначала создать в поле модели линию-выноску, в которую добавить нужную ссылку и после неё добавить текст "кг".
А далее уже в поле "Примечание" можно сослаться на текст созданной линии-выноски.

ArkadyNaumov

Нет, это плохая идея, поскольку вызывает проблемы с обновлением данных.

Вот решение моей проблемы:
# -*- coding: utf-8 -*-
# БЧ

oboznachenie = u"АБВ.123456"
naimenovanie = u"Пластина"

import pythoncom
from win32com.client import Dispatch, gencache
import MiscellaneousHelpers as MH

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

#  Подключим описание интерфейсов API5
kompas6_api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
kompas_object = kompas6_api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))
MH.iKompasObject  = kompas_object

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

iDocument3D = kompas_object.ActiveDocument3D()

iDocument = application.ActiveDocument
iKompasDocument3D = kompas_api7_module.IKompasDocument3D(iDocument)
iPart7 = iKompasDocument3D.TopPart

# Получаем материал детали
material =  iPart7.Material
# Получаем массу детали
mass = iPart7.Mass

# Получим интерфейс для работы с объектами спецификации
iSpc = iDocument3D.GetSpecification()

SpecificationDescriptions = iDocument.SpecificationDescriptions

# Если имеются объекты спецификации, удаляем их
if SpecificationDescriptions.Active:
    Description = SpecificationDescriptions.Active
    Objects = Description.Objects
    while Objects:
        for i in range(len(Objects)):
            Objects.Delete()
        Objects = Description.Objects


# Создаём базовый объект спецификации в разделе Детали
iSpc.ksSpcObjectCreate("", 0, 20, 0, 0, 0)

# Заполняем ячейки
iSpc.ksSetSpcObjectColumnText(1, 1, 0, u"БЧ") # Формат
iSpc.ksSetSpcObjectColumnText(4, 1, 0, oboznachenie) # Обозначение
iSpc.ksSetSpcObjectColumnText(5, 1, 0, naimenovanie + "@/" + material) # Наименование
iSpc.ksSetSpcObjectColumnText(7, 1, 0, str(round(mass*0.001, 2)).replace(".", ",") + u" кг") # Примечание
iSpc.ksSpcObjectEnd()

# Заполняем свойства детали Обозначение и Наименование
iPart7.Marking = oboznachenie
iPart7.Name = naimenovanie

iModelObject = kompas_api7_module.IModelObject(iPart7)
iModelObject.Update()

iDocument.Save()