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

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

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

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

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

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

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

ksSetSpcObjectColumnText внутри цикла while или for

Автор bionorica2015, 23.10.21, 19:23:52

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

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

bionorica2015

Здравствуйте
Как можно правильно организовать вставку ksSetSpcObjectColumnText внутри цикла while чтобы из excel данные циклом перенеслись в Kompas спецификацию.
Вот код.


У
# -*- coding: utf-8 -*-
#|заполнить сп

import pythoncom
from win32com.client import Dispatch, gencache

import LDefin2D
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


Documents = application.Documents
#  Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_spc = kompas_api7_module.ISpecificationDocument(kompas_document)
iDocumentSpc = kompas_object.SpcActiveDocument()
###

import os
put=os.getcwd()
print (put)

import win32com.client
Excel=win32com.client.Dispatch('Excel.Application')
ex=Excel.Workbooks.Open(put+'\SP.xlsx')

listEx=ex.ActiveSheet
stroka1=1
stroka2=100


while stroka1<stroka2:
    stroka1=stroka1+1
    razdel=listEx.Cells(stroka1,8).value
    vivod1=listEx.Cells(stroka1,1).value
    vivod3=listEx.Cells(stroka1,3).value
    vivod4=listEx.Cells(stroka1,4).value
    vivod5=listEx.Cells(stroka1,5).value
    vivod6=listEx.Cells(stroka1,6).value
    vivod7=listEx.Cells(stroka1,7).value
    if vivod==None:
        break
  else:
        print (vivod1, vivod3, vivod4, vivod5, vivod6, vivod7)
        iSpc = iDocumentSpc.GetSpecification()
        iSpc.ksSpcObjectCreate("", 0, razdel, 0, 0, 0)
        obj = iSpc.ksSpcObjectEnd()
        iSpcObjParam = KAPI.ksSpcObjParam(iKompasObject.GetParamStruct(LDefin2D.ko_SpcObjParam))
        iSpc.ksSpcObjectEdit(obj)
        iDocumentSpc.ksGetObjParam(obj, iSpcObjParam, LDefin2D.ALLPARAM)
        iSpcObjParam.blockNumber = 0
        iSpcObjParam.draw = 1
        iSpcObjParam.firstOnSheet = 0
        iSpcObjParam.ispoln = 0
        iSpcObjParam.posInc = 1
        iSpcObjParam.posNotDraw = 0
        iDocumentSpc.ksSetObjParam(obj, iSpcObjParam, LDefin2D.ALLPARAM)
        iSpc.ksSetSpcObjectColumnText(1, 1, 0, vivod1)
        iSpc.ksSetSpcObjectColumnText(3, 1, 0, vivod3)
        iSpc.ksSetSpcObjectColumnText(4, 1, 0, vivod4)
        iSpc.ksSetSpcObjectColumnText(5, 1, 0, vivod5)
        iSpc.ksSetSpcObjectColumnText(6, 1, 0, vivod6)
        iSpc.ksSetSpcObjectColumnText(7, 1, 0, vivod7)
        obj = iSpc.ksSpcObjectEnd()


        iSpcObjParam = kompas6_api5_module.ksSpcObjParam(kompas_object.GetParamStruct(kompas6_constants.ko_SpcObjParam))
        iSpc.ksSpcObjectEdit(obj)


        iDocumentSpc.ksGetObjParam(obj, iSpcObjParam, LDefin2D.ALLPARAM)
        '''
        iSpcObjParam.blockNumber = 2
        iSpcObjParam.draw = 1
        iSpcObjParam.firstOnSheet = 0
        iSpcObjParam.ispoln = 0
        iSpcObjParam.posInc = 0
        iSpcObjParam.posInc = 0
        '''
        iDocumentSpc.ksSetObjParam(obj, iSpcObjParam, LDefin2D.ALLPARAM)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)


        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(1, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(2, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ''
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(3, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = vivod
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(4, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = vivod2
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(5, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = "1"
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(6, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(7, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(8, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 13, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 14, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 15, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 16, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 4, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 1, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 2, 0, iTextLineArray)
        iTextLineArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_LINE_ARR)

        iTextLineParam = kompas6_api5_module.ksTextLineParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextLineParam))
        iTextLineParam.Init()
        iTextLineParam.style = 0
        iTextItemArray = kompas_object.GetDynamicArray(LDefin2D.TEXT_ITEM_ARR)
        iTextItemParam = kompas6_api5_module.ksTextItemParam(kompas_object.GetParamStruct(kompas6_constants.ko_TextItemParam))
        iTextItemParam.Init()
        iTextItemParam.iSNumb = 0
        iTextItemParam.s = ""
        iTextItemParam.type = 0
        iTextItemFont = kompas6_api5_module.ksTextItemFont(iTextItemParam.GetItemFont())
        iTextItemFont.Init()
        iTextItemFont.bitVector = 4096
        iTextItemFont.color = 0
        iTextItemFont.fontName = "GOST type A"
        iTextItemFont.height = 3.5
        iTextItemFont.ksu = 1
        iTextItemArray.ksAddArrayItem(-1, iTextItemParam)
        iTextLineParam.SetTextItemArr(iTextItemArray)

        iTextLineArray.ksAddArrayItem(-1, iTextLineParam)
        iSpc.ksSetSpcObjectColumnTextEx(10, 3, 0, iTextLineArray)
        obj = iSpc.ksSpcObjectEnd()


После строк

        iSpc.ksSetSpcObjectColumnText(7, 1, 0, vivod7)
        obj = iSpc.ksSpcObjectEnd()
все не нужно я предполагаю.

graphdark

Цитата: bionorica2015 от 23.10.21, 19:23:52Как можно правильно организовать вставку ksSetSpcObjectColumnText внутри цикла while
Может как-то так.
function ZapRazd (j, razdel:integer):Integer;
begin
while Form4.StringGrid1.Cells[2,j+1]<>'' do
    begin
    if razdel=5 then Form4.StringGrid1.Cells[1,j+1]:=IntToStr(0);
    zapsp(razdel,           //Раздел СП
    StrToInt(Form4.StringGrid1.Cells[1,j+1]),//Позиция
    Form4.StringGrid1.Cells[3,j+1],//Количество
    Form4.StringGrid1.Cells[0,j+1],//Обозначение
    Form4.StringGrid1.Cells[2,j+1],//Наименование
    Form4.StringGrid1.Cells[4,j+1],//Примечание
    Form4.StringGrid1.Cells[5,j+1]);//Формат из столбца комментарий
    inc(j,1);
    end;
Form4.StringGrid1.Cells[5,1]:=IntToStr(j);
end;

procedure zapsp (razdsp, pozic: integer; kolvo, obozn, naimen, prim, format: string);
overload;
begin
//Cоздаем объект в разделе (5-документация, 10-комплексы, 15-СЕ, 20-детали,
//25-СИ, 30-ПИ, 35-материалы, 40-комплекты. Переменная razdsp)
Specification:=ksSpecification(SpcDocument.GetSpecification());
Specification.ksSpcObjectCreate(str,1,razdsp,0,0,0);
//Specification.ksSpcObjectEnd();
//Заполняем колонку "Наименование"
Specification.ksSetSpcObjectColumnText(SPC_CLM_NAME,1,0,naimen);
//Запоняем колонку "Позиция"
Specification.ksSpcPosition(pozic);
//Заполняем колонку "формат"
Specification.ksSetSpcObjectColumnText(SPC_CLM_FORMAT,1,0,format);
//Заполняем колонку "Обозначение"
Specification.ksSetSpcObjectColumnText(SPC_CLM_MARK,1,0,obozn);
//Заполняем колонку "Количество"
Specification.ksSpcCount(1,kolvo);
//Заполняем колонку "Примечание"
Specification.ksSetSpcObjectColumnText(SPC_CLM_NOTE,1,0,prim);
//Закрываем объект в разделе
Specification.ksSpcObjectEnd();
end;

bionorica2015

Цитата: graphdark от 24.10.21, 10:47:12Может как-то так.
function ZapRazd (j, razdel:integer):Integer;
begin
while Form4.StringGrid1.Cells[2,j+1]<>'' do
    begin
    if razdel=5 then Form4.StringGrid1.Cells[1,j+1]:=IntToStr(0);
    zapsp(razdel,           //Раздел СП
    StrToInt(Form4.StringGrid1.Cells[1,j+1]),//Позиция
    Form4.StringGrid1.Cells[3,j+1],//Количество
    Form4.StringGrid1.Cells[0,j+1],//Обозначение
    Form4.StringGrid1.Cells[2,j+1],//Наименование
    Form4.StringGrid1.Cells[4,j+1],//Примечание
    Form4.StringGrid1.Cells[5,j+1]);//Формат из столбца комментарий
    inc(j,1);
    end;
Form4.StringGrid1.Cells[5,1]:=IntToStr(j);
end;

procedure zapsp (razdsp, pozic: integer; kolvo, obozn, naimen, prim, format: string);
overload;
begin
//Cоздаем объект в разделе (5-документация, 10-комплексы, 15-СЕ, 20-детали,
//25-СИ, 30-ПИ, 35-материалы, 40-комплекты. Переменная razdsp)
Specification:=ksSpecification(SpcDocument.GetSpecification());
Specification.ksSpcObjectCreate(str,1,razdsp,0,0,0);
//Specification.ksSpcObjectEnd();
//Заполняем колонку "Наименование"
Specification.ksSetSpcObjectColumnText(SPC_CLM_NAME,1,0,naimen);
//Запоняем колонку "Позиция"
Specification.ksSpcPosition(pozic);
//Заполняем колонку "формат"
Specification.ksSetSpcObjectColumnText(SPC_CLM_FORMAT,1,0,format);
//Заполняем колонку "Обозначение"
Specification.ksSetSpcObjectColumnText(SPC_CLM_MARK,1,0,obozn);
//Заполняем колонку "Количество"
Specification.ksSpcCount(1,kolvo);
//Заполняем колонку "Примечание"
Specification.ksSetSpcObjectColumnText(SPC_CLM_NOTE,1,0,prim);
//Закрываем объект в разделе
Specification.ksSpcObjectEnd();
end;
Я сделал в питоне примерно такой же код как в Вашем, но почему то позиции и количество в специю записываются с плавающей точкой:
1.0
2.0
3.0
И тд
С чем это может быть связано?

graphdark

Цитата: bionorica2015 от 25.10.21, 07:56:21Я сделал в питоне примерно такой же код как в Вашем, но почему то позиции и количество в специю записываются с плавающей точкой:
С типом данных в переменной. Нужен строго инт.

bionorica2015

Цитата: graphdark от 25.10.21, 08:07:35С типом данных в переменной. Нужен строго инт.

Цитата: graphdark от 25.10.21, 08:07:35С типом данных в переменной. Нужен строго инт.
Как мне правильно преобразовать эту переменную в int: vivod1=listEx.Cells(stroka1,1).value?
Чтобы плавающих точек не было в специи?
Именно с vivod1 помогите, пожалуйста!
Дальше я сам.

graphdark

#5
https://pyneng.readthedocs.io/ru/latest/book/04_data_structures/numbers.html
Забыл питон, но вроде vivod1=int(listEx.Cells(stroka1,1).value)

p3452

Зачем дважды менять тип данных?
Из Grid-а взяли строковый тип, его и передаем в процедуру, а в процедуре так:
//Заполняем колонку "Позиция"
Specification.ksSpcPosition(pozic);
Specification.ksSetSpcObjectColumnText(SPC_CLM_POS, 1, 0, pozic);


bionorica2015

#8
Цитата: p3452 от 25.10.21, 13:38:32Зачем дважды менять тип данных?
Из Grid-а взяли строковый тип, его и передаем в процедуру, а в процедуре так:
//Заполняем колонку "Позиция"
Specification.ksSpcPosition(pozic);
Specification.ksSetSpcObjectColumnText(SPC_CLM_POS, 1, 0, pozic);
vivod1=int(listEx.Cells(stroka1,1).value)
Это правильно значит?
Мне для пайтона нужен, а у Вас друзья в delphi или c#, я точно не знаю. Не пайтонский код точно.

bionorica2015

Цитата: bionorica2015 от 25.10.21, 17:48:44vivod1=int(listEx.Cells(stroka1,1).value)
Это правильно значит?
Мне для пайтона нужен, а у Вас друзья в delphi или c#, я точно не знаю. Не пайтонский код точно.
Все нашел своб ошибку
Надо было пустые строки в начале строки убирать
У меня сработал if cell==none: break)))

bionorica2015

Цитата: graphdark от 25.10.21, 08:07:35С типом данных в переменной. Нужен строго инт.
А как можно обходить тот момент когда тип данных равен none, и нужно перейти к следующей ячейке.
А текущую просто оставить пустым?

bionorica2015

Цитата: p3452 от 25.10.21, 13:38:32А как можно обходить тот момент когда тип данных равен none, и нужно перейти к следующей ячейке.
А текущую просто оставить пустым?