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

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

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

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

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

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

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

Автоматическое заполнение штампа

Автор KrasovskyO, 16.07.14, 11:39:15

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

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

KrasovskyO

Доброго времени суток! Хочу автоматизировать процесс заполнения штампа чертежей. А именно графы Фамилия и Дата. Решил попробовать библиотеку компас макро на языке Python. Что бы не вводить когд вручную есть функция записи макросов. Я воспользовался ей и заполнил основную надпись Фамилии и Дата. Затем при выполнении этой команда дата отображается только та которая была при создании макроса. Зашёл в код макроса там даты прописаны обычным текстом. Нашёл команду для вывода дадты в языке Python: print datetime.date.today(), но к сожалению слепить это всё воедино не получается. Пробовал задавать её например вначале всего когда всего макроса D=print datetime.date.today() потом в строку нужной ячейки штампа вписывать iTextItemParam.s = datetime.datetime.now() но тщетно. Подскажите пожалуйста как нужно поступить?
Возможно пример трудноват для новичка,но с чего то надо ничинать а с чего к сожалению не знаю :|


kamchadal

В Компасе это делается элементарно. В Сервисе есть Библиотека стилей, типов оформлений и основных надписей. А в справочнике пользователя всё расписано как делать.

chum

# -*- coding: cp1251 -*-
#|setTodayDate

import Kompas10API5 as KAPI
import Kompas10API7 as KAPI7
import pythoncom
from win32com.client import Dispatch
import LDefin2D
import LDefin3D
import ksConstants as CONST2D7
import ksConstants3D as CONST3D7
import MiscellaneousHelpers as MH

iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)
MH.iKompasObject = iKompasObject

iApplication = Dispatch('KOMPAS.Application.7')
iApplication = KAPI7.IApplication(iApplication)
MH.iApplication = iApplication

iDocument2D = iKompasObject.ActiveDocument2D()
iDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)


iStamp = iDocument2D.GetStamp()
iStamp.ksOpenStamp()
iStamp.ksColumnNumber(130)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))
iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = datetime.date.today()
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksCloseStamp()


В активном документе сегодняшняя дата попадет в графу №130 штампа, которая находится в колонке "Дата" на строке "Разраб."

Vin

В папке установки Компас 3D есть файл graphic.pmn.
Отрываем. Редактируем меню 12 вписывая нужные фамилии.
MENU 12
BEGIN
MENUITEM "Меню, настраиваемое пользователем (Graphic.pmn MENU 12)" GRAYED
MENUITEM SEPARATOR
POPUP "Разработчики"
BEGIN
  MENUITEM "&Поликарпов П.П.|Поликарпов"
  MENUITEM SEPARATOR
  MENUITEM "&Иванов И.И.|Иванов"
  MENUITEM "П&етров П.П.|Петров"
  MENUITEM "&Сидоров С.С.|Сидоров"
END
POPUP "Технологи"
BEGIN
  MENUITEM "&Семенов Ю.Ю.|Семенов"
  MENUITEM SEPARATOR
  MENUITEM "&Дубинина А.Б.|Дубинина"
  MENUITEM "&Петрова М.Я.|Петрова"
  MENUITEM "П&оловинин И.И.|Половинин"
END
POPUP "Нормоконтроль"
BEGIN
  MENUITEM "&Буянов М.Ю.|Буянов"
  MENUITEM SEPARATOR
  MENUITEM "&Козлов В.Б.|Козлов"
  MENUITEM "&Самохвалов А.А.|Самохвалов"
END
END

KrasovskyO

Спасибо всем за помощь. Кстати решил проблему почти сразу и почти как написал пользователь chum. Только в самом начале импортировал модуль import datetime. Теперь ещё один вопрос. С оформлением чертежа всё в порядке фамилии дата всё теперь вводиться как надо. Но в файле спецификации при всех одинаковых параметрах форматирования текста все фамилии и дата почему то выравниваются по середине строк. В чём может быть причина? Вот текст моего макроса:
# -*- coding: cp1251 -*-
#|Спецификация ГПИ СБ

import Kompas10API5 as KAPI
import Kompas10API7 as KAPI7
import pythoncom
from win32com.client import Dispatch
import LDefin2D
import LDefin3D
import ksConstants as CONST2D7
import ksConstants3D as CONST3D7
import MiscellaneousHelpers as MH
import datetime

iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)
MH.iKompasObject = iKompasObject

iApplication = Dispatch('KOMPAS.Application.7')
iApplication = KAPI7.IApplication(iApplication)
MH.iApplication = iApplication

iDocumentSpc = iKompasObject.SpcActiveDocument()

iStamp = iDocumentSpc.GetStamp()
iStamp.ksOpenStamp()
iStamp.ksColumnNumber(110)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = "Красовский"
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(111)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = "Елизаров"
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(113)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = "Мишак"
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(114)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = "Прохоркин"
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(115)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = "Пушкарёв"
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(130)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = datetime.date.today()
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(131)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = datetime.date.today()
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(133)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = datetime.date.today()
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(134)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = datetime.date.today()
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksColumnNumber(135)
iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
iTextLineParam.Init()
iTextLineParam.style = 32768

iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))

iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
iTextItemParam.Init()
iTextItemParam.iSNumb = 0
iTextItemParam.s = datetime.date.today()
iTextItemParam.type = 0

iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
iTextItemFontParam.Init()
iTextItemFontParam.bitVector = 4096
iTextItemFontParam.color = 0
iTextItemFontParam.fontName = "GOST type A"
iTextItemFontParam.height = 3.5
iTextItemFontParam.ksu = 1.0

iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

iTextLineParam.SetTextItemArr(iTextItemArray)
iStamp.ksTextLine(iTextLineParam)

iStamp.ksCloseStamp()

KrasovskyO

Для исключения лишних вопросов немного поясню. Поставленню задачу я решаю через макросы на языке Python, потому что в зависимости от вида изделия проверяющие меняются. И так получается очень удобно, нажатием всего двух кнопок автоматически заполняются все графы (фамилии и дата другие не интересуют).

Poltava

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

# -*- coding: cp1251 -*-
#|Заполняет поля с фамилиями, названием предприятия, первичная применяемость беря их из файла name_stamped.ini который автоматически создаеться в папке со скриптом

import Kompas10API5 as KAPI
import Kompas10API7 as KAPI7
import pythoncom
from win32com.client import Dispatch
import LDefin2D
import LDefin3D
import ksConstants as CONST2D7
import ksConstants3D as CONST3D7
import MiscellaneousHelpers as MH
import sys
import os

iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)
MH.iKompasObject = iKompasObject

iApplication = Dispatch('KOMPAS.Application.7')
iApplication = KAPI7.IApplication(iApplication)
MH.iApplication = iApplication

iDocument2D = iKompasObject.ActiveDocument2D()
iDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)
iDocumentSpc = iKompasObject.SpcActiveDocument()

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

def fileexists () :
    """Функция проверяет существует ли файл с настройками в папке соскриптом и при отсутствии такового создает его и вносит в него данные по умолчанию"""
    global fname
    i = 0
    if os.path.exists(fname): #Проверяем существует ли путь
        if os.path.isfile(fname): #Проверяем являеться ли путь файлом
            i = 1
    if i == 0 : #Ниже создаем файл с настройками при условии его отсутствия
        f = open(fname, 'w')#создаем файл и открываем его для заиси
        f.write('Если вместо надписи после | в строку поместить знак - то будет сохранен исходный текст\nРазраб.|ФИО\nПров.|ФИО\nРук.раб.|ФИО\nН.контр.|ФИО\nУтвердил.|ФИО\nпервичная применяемость|\nПредприятие строка1.|ЧАО\nПредприятие строка2.|Рога & Копыта\nПредприятие строка3.|г. Харьков\n')#Текст по умолчанию
        f.close()#Закрываем файл

def addText(columnNumber,text,height=3.5,aling=0,ksu=1.0,style=32768,color=0,fontname="GOST type A"):
    """"Функция заполнения текстом ячейки
    входные параметры
    Обязательные:
    columnNumber - номер ячейки для заполнения
    text - вносимый текст
    то что можно не указывать так как есть значение по умолчанию,
    а для ввода своего значения если оно идет не подряд нжно указать
    и имя передаваемой переменной тогда их порядок не имеет значения
    height - высота текста
    aling - выравнивание текста
    ksu - сужение текста
    style - номер стиля текста
    color - цвет текста
    fontname - название шрифта"""

    if columnNumber != -1 :#Исключение для многострочого текста
        iStamp.ksColumnNumber(columnNumber) #Номер ячейки для заполнения
    iTextLineParam = KAPI.ksTextLineParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextLineParam))
    iTextLineParam.Init()
    iTextLineParam.style = style

    iTextItemArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(4))
   
    iTextItemParam = KAPI.ksTextItemParam(iKompasObject.GetParamStruct(LDefin2D.ko_TextItemParam))
    iTextItemParam.Init()
    iTextItemParam.s = text #Текст вносимый в ячейку
    iTextItemParam.type = 0

    iTextItemFontParam = KAPI.ksTextItemFont(iTextItemParam.GetItemFont())
    iTextItemFontParam.Init()
    iTextItemFontParam.bitVector = 4096
    iTextItemFontParam.color = color
    iTextItemFontParam.fontName = fontname
    iTextItemFontParam.height = height
    iTextItemFontParam.ksu = ksu

    iTextItemArray.ksAddArrayItem(-1, iTextItemParam)

    iTextLineParam.SetTextItemArr(iTextItemArray)
    iStamp.ksTextLine(iTextLineParam)
    iStamp.ksSetTextLineAlign(aling)#Выравнивание текста в ячейке

       
def doc (td) :
    global listnames
    """Функция проверяет необходимость заполнения ячейки по признаку '-' в текстовом ффайле
    и при необходимости вызывает функцию заполнения ячейки"""

    if str (listnames[1][listnames[1].find('|')+1:]) != '-' :
        addText(110,str (listnames[1][listnames[1].find('|')+1:]))

    if str (listnames[2][listnames[2].find('|')+1:]) != '-' :
        addText(111,str (listnames[2][listnames[2].find('|')+1:]))
       
    if str (listnames[3][listnames[3].find('|')+1:]) != '-' :
        if td == 0:
            addText(112,str (listnames[3][listnames[3].find('|')+1:]))
        else :
            addText(113,str (listnames[3][listnames[3].find('|')+1:]))
       
    if str (listnames[4][listnames[4].find('|')+1:]) != '-' :
        addText(114,str (listnames[4][listnames[4].find('|')+1:]))
       
    if str (listnames[5][listnames[5].find('|')+1:]) != '-' :       
        addText(115,str (listnames[5][listnames[5].find('|')+1:]))

    if str (listnames[6][listnames[6].find('|')+1:]) != '-' :       
        addText(25,str (listnames[6][listnames[6].find('|')+1:]))

    visp = 0
    if str (listnames[7][listnames[7].find('|')+1:]) != '-' :
        visp = 1
        if str (listnames[8][listnames[8].find('|')+1:]) != '-' :
            visp = 2
            if str (listnames[9][listnames[9].find('|')+1:]) != '-' :
                visp = 3

    for i in range(2):
        #Заполнение однострочного текста
        if visp == 1 :
            addText(9,str (listnames[7][listnames[7].find('|')+1:]),7.0,1)
        #Заполнение двустрочного текста
        if visp == 2 :
            #Заполнение первой строки текста
            addText(9,str (listnames[7][listnames[7].find('|')+1:]),5.0,1)
            #Заполнение второй строки текста
            addText(-1,str (listnames[8][listnames[8].find('|')+1:]),5.0,1)
        #Заполнение трехстрочного текста
        if visp == 3 :
            #Заполнение 1 строки текста
            addText(9,str (listnames[7][listnames[7].find('|')+1:]),3.5,1)
            #Заполнение второй строки текста
            addText(-1,str (listnames[8][listnames[8].find('|')+1:]),3.5,1)
            #Заполнение третей строки текста
            addText(-1,str (listnames[9][listnames[9].find('|')+1:]),3.5,1)


ROOT_PATH=os.path.dirname(sys.argv[0])#определение пути с которого запущен файл на выполнение
fname = ROOT_PATH + '\\name_stamped.ini'#Создание пути к файлу настроек
fileexists ()
f = open(fname, 'r')
listnames = f.read()
f.close()
listnames = listnames.split ('\n')
Tip_documenta = iKompasObject.ksGetDocumentType(0)
global iStamp

if Tip_documenta == 1 or Tip_documenta == 2 :
    iStamp = iDocument2D.GetStamp()
    iStamp.ksOpenStamp()
    doc(0)
    iStamp.ksCloseStamp
    iKompasObject.ksMessage("Данные успешно внесены")
if Tip_documenta == 4 or Tip_documenta == 9 :
    iStamp = iDocumentSpc.GetStamp()
    iStamp.ksOpenStamp()
    doc(1)
    iStamp.ksCloseStamp
    iKompasObject.ksMessage("Данные успешно внесены")
if Tip_documenta != 1 and Tip_documenta != 2 and Tip_documenta != 4 and Tip_documenta != 9: iKompasObject.ksMessage("Данные не внесены так как не опознан тип документа")


Код не претендует на изящное решение так как в программировании профан но свою задачу выполняет
+ Благодарностей: 2

KrasovskyO

Александр Михайлович, спасибо Вам! Я был близок и помогла вот эта строка выполняющая выравнивание.

iTextLineParam.SetTextItemArr(iTextItemArray)
    iStamp.ksTextLine(iTextLineParam)
    iStamp.ksSetTextLineAlign(aling) #Выравнивание текста в ячейке


Только я нашёл в справке что надо ставить цифру в зависимости от выравнивания в моём случае по левому краю - 0 iStamp.ksSetTextLineAlign(0)
Универсальность макроса пока не требуется я только только начинаю осваивать Python в связке с КОМПАС SDK. Может быть Вы мне подскажите как освоить это дело? Сейчас я пробовал методом тыка. С датой получилось с выравниванием вот нет. В руководстве к Компас SDK описания к функциям минимум а то и вовсе нет, или я чего не понимаю. Где можно почерпнуть азы термины и прочее?