Здесь можно задать вопрос по разделу 1

Слайд 15, отсутствие свойства LineSegments

Слайд 15, отсутствие свойства LineSegments

от Сухомлинов Александр -
Количество ответов: 1

Здравствуйте!

При запуске кода, написанного в видео "

" появилась ошибка


Так же во вкладке "Variables" у интерфейса "IDrawingContainer" нет свойства "LineSegments" - свойства.


При запуске скрипта файл чертежа открыт.

Кодом и скриншоты прилагаю.

LineSegments - свойства

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

#|Obuchenie


import pythoncom # Подключаем библиотеки

from win32com.client import Dispatch, gencache # Подключаем библиотеки



#  Подключим константы API Компас

const = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants # Подключим константы 2D документов

const_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants # Подключим константы 3D документов


#  Подключим описание интерфейсов API5

KAPI = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)

iKompasObject = KAPI.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(KAPI.KompasObject.CLSID, pythoncom.IID_IDispatch))



#  Подключим описание интерфейсов API7

KAPI7 = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)

application = KAPI7.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(KAPI7.IApplication.CLSID, pythoncom.IID_IDispatch))



#  Получим активный документ

iKompasDocument = application.ActiveDocument

iKompasDocument2D = KAPI7.IKompasDocument2D(iKompasDocument)

iDocument2D = iKompasObject.ActiveDocument2D()


# obj = iDocument2D.ksLineSeg(0,0,100,100,1)


iViewsAndLayersManager = iKompasDocument2D.ViewsAndLayersManager

iViews = iViewsAndLayersManager.Views

iView = iViews.ActiveView

iDrawingContainer = KAPI7.IDrawingContainer(iView)

iLineSegments = iDrawingContainer.LineSegment

iLineSegment = iLineSegments.Add()

iLineSegment.X1 = 0

iLineSegment.Y1 = 0

iLineSegment.X2 = 100

iLineSegment.Y2 = 100

iLineSegment.Stule = 1

iLineSegment.Update()



В ответ на Сухомлинов Александр

Re: Слайд 15, отсутствие свойства LineSegments

от Сухомлинов Александр -
Прошу прощения, в строке при копировании iLineSegments = iDrawingContainer.LineSegments забыл букву s. Код запускал с верным синтаксисом.