Заполнение основной надписи с переменными данными

Автор Lazy64, 11.08.22, 19:17:35

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

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

Lazy64

Коллеги, подскажите как реализовать заполнение основной надписи с возможностью изменения исполнителей. Накидал простую форму, но не знаю в каком направлении двигаться дальше

p3452

Самый простой вариант - отредактировать файл \SYS\GRAPHIC.PMN.

Lazy64

Цитата: p3452 от 11.08.22, 19:38:49Самый простой вариант - отредактировать файл \SYS\GRAPHIC.PMN.
Не вариант, хочу сделать в 1 клик

СВ

 Напишите, как хотя бы ТЕОРЕТИЧЕСКИ вы видите замену фамилии в один клик. Я, к примеру, представить это не могу.

Михаил88

# -*- coding: utf-8 -*-

import pythoncom
from win32com.client import Dispatch, gencache, VARIANT

#  Получи константы
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

#  Получи API интерфейсов версии 7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
kompas_api_object = kompas_api7_module.IKompasAPIObject(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IKompasAPIObject.CLSID, pythoncom.IID_IDispatch))
application = kompas_api_object.Application

#  Получи интерфейс активного документа
kompas_document = application.ActiveDocument

layout_sheets = kompas_document.LayoutSheets
layout_sheet = layout_sheets.Item(0)
stamp = layout_sheet.Stamp
text = stamp.Text(110)
text.Str = "Фамилия 1"
text = stamp.Text(111)
text.Str = "Фамилия 2"
text = stamp.Text(112)
text.Str = "Фамилия 3"
text = stamp.Text(114)
text.Str = "Фамилия 4"
text = stamp.Text(115)
text.Str = "Фамилия 5"
stamp.Update()
+ Благодарностей: 1