К примерам преобразования 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.