Как получить габариты всех рамок на одном чертеже ??

Автор Doom, 27.07.23, 19:11:06

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

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

Doom

Не вижу связь между получением структуры документа и рамками что есть на чертеже, как пройтись по всем рамкам и получить размеры их ?

uDoc7 = api7_.ActiveDocument
LayoutSheets7 = uDoc7.LayoutSheets
for i in range(1, LayoutSheets7.Count+1, 1):
    styleSheet = LayoutSheets7.ItemByNumber(i)
    format = styleSheet.Format
    form = format.Format
    # не верные размеры
    # print(format.FormatHeight)
    # print(format.FormatWidth)
   

# не работает
#============================================================================================
        # DocSheetoptions_5 = KAPI5.ksSheetOptions(api5_.GetParamStruct(LDefin2D.ko_SheetOptions))
        # DocSheetoptions_5.Init()

        # uDoc7.ksGetDocOptions(LDefin2D.SHEET_OPTIONS_EX, DocSheetoptions_5)
       
        # sz = KAPI5.ksSheetSize(DocSheetoptions_5.GetSheetParam(True))
        # sz.Init()
       
        # s_h = sz.height
        # s_w = sz.width
       
        # print(s_h)
        # print(s_w)
        #============================================================================================



Doom

#1
Создал пользовательские рамки и даже не могу получить объект коллекции листов LayoutSheets
ошибка сохраняется если далее создать стандартные листы.


глюк был

Doom


Doom

Я не могу проверить является ли рамка пользовательской.
Например я создал 2 стандартных рамок затем изменённую и ksGetDocumentType видимо проверяет только первую рамку и выдает что рамка стандартная а не все их.

DocType = api5_.ksGetDocumentType(0)
               
elif DocType == LDefin2D.lt_DocSheetStandart:
   
    # чертеж стандартный
    print('Чертеж стандартный')
   
elif DocType == LDefin2D.lt_DocSheetUser:
   
    # чертеж нестандартный
    print('Чертеж нестандартный')

Doom

В общем видимо только вычислять по форматам..

LayoutSheets7 = uDoc7.LayoutSheets
for i in range(1, LayoutSheets7.Count+1, 1):
    styleSheet = LayoutSheets7.ItemByNumber(i)
    format = styleSheet.Format
    form = format.Format
   
    if form == const_2d_.constants.ksFormatUser:
        print(format.FormatHeight)
        print(format.FormatWidth)
    else:
        тут все вычислять и определить координаты относительно которых работать