К примерам преобразования API5 в API7 и обратно


В примере 3D дано преобразование:

iPart7_new = iKompasObject.TransferInterface(iPart7,1,0)

Первый параметр преобразуемый объект, второй API в который он преобразуется и третий - тип объекта (в справке написано, что допускается 0, но нужно указывать явно, в нашем случае для ksPart – o3d_part или 104) и код должен быть:

iPart7_new = iKompasObject.TransferInterface(iPart7,1,const_3d.o3d_part)

или:

iPart7_new = iKompasObject.TransferInterface(iPart7,1,104)


В примере  для 2D на самом деле никакого преобразования интерфейсов не дано:

iDocument2D.ksMoveObj(iLineSegment.Reference,50,50)

Reference - это свойство, позволяющее получить указатель на объект iLineSegment, а не преобразующее интерфейс API7 в API5.

В качестве примера можно привести такой вариант:

#Создадим отрезок с помощью API5

obj5 = iDocument2D.ksLineSeg(100,100,200,100,1)

# Преобразуем объект из API5 в API7 с помощью метода TransferReference,

# где первый параметр – указатель на объект в API5, 

# второй параметр – указатель на документ в котором находится объект, если 

# 0 – текущий документ

obj7 = iKompasObject.TransferReference(obj5,0)

#Изменим координату второй точки отрезка

obj7.Y2 = 200

obj7.Update()

Этот пример как раз показывает и преобразование интерфейсов в 2D и обратное преобразование интерфейсов, тогда как в примере для 3D дано преобразование интерфейса из API7 в API5.



Last modified: Friday, 25 June 2021, 2:07 PM