Как получить координаты точек Nurbs ?

Автор Doom, 03.09.23, 18:48:11

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

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

Doom

Добрый вечер!

Как получить координаты точек Nurbs ? Пробовал 2 способами:

1) Тут значения координат не соответствуют тем что на чертеже.

iNurbs_ = KAPI7.INurbs(SelectedObject)

for l in range(1, iNurbs_.PointsCount):
    pointNext = iNurbs_.GetPoint(Index=l) #result:(True, 183.50063056711184, 211.04125556476586, 1.0)
    print(pointNext [1], pointNext [2])

Заметьте что отсчет начинается с 1 так как 0 и 1 - всегда одинаковые координаты. А конечное значение имеет индекс PointsCount а не PointsCount - 1


2) Тут динамический массив всегда равен нулю.

iNurbs_ = KAPI7.INurbs(SelectedObject)

Next_Obj_Param = api5_.GetParamStruct(LDefin2D.ko_NurbsParam)
# Next_Obj_Param = KAPI5.ksNurbsParam(Next_Obj_Param)
Next_Obj_Param.Init()

iDocument2D.ksGetObjParam(iNurbs_.Reference, Next_Obj_Param, -1)
           
Next_Obj_Param = KAPI5.ksNurbsParam(Next_Obj_Param)
array = KAPI5.ksDynamicArray(Next_Obj_Param)

count = array.ksGetArrayCount()

print(count)

Что я делаю не так ?

Doom

GetPoint - какие то точки совпадают..


Doom


Scull_

Вы сами видите, что носорог и бульдог не сильно дружат.
INurbs.png
PS. Учитесь читать SDK.

Doom

#4
Scull_, так у меня 16 версия.
del

И я не понимаю Ваши метафоры.

Как выглядит цепочка объектов? ksNurbsParam и как то прийти к ksNurbsPointParam вместо GetPPoint ?

Scull_

#5
V16.
INurbs_v16.png

Doom

Scull_, прикрепите код если не трудно.


Doom

Scull_ ааххах, так я это и реализовал в 1 сообщении - там все выдает только значения - часть не соответствует..


Doom

Цитата: Scull_ от 03.09.23, 21:49:01Нет.

У меня GetPoint не работает и Ваш код не будет работать.

Scull_

У меня работает на 16 на 22 Компасе, а то, что Вы API5 и API7 не можете отличить, я причем?

Doom

Цитата: Scull_ от 03.09.23, 21:53:25У меня работает на 16 на 22 Компасе, а то, что Вы API5 и API7 не можете отличить, я причем?

где я тут что напутал ??

iNurbs_ = KAPI7.INurbs(iSelectedObjects)

for l in range(1, iNurbs_.PointsCount):
                pointNext = iNurbs_.GetPoint(Index=l) #result:(True, 183.50063056711184, 211.04125556476586, 1.0)
                print(pointNext [1], pointNext [2])

iNurbs_  - объект существует и выдает ряд свойств.

Scull_

Чтоб Вы понимали, все значения начинаются с нуля.
Зачем пихать, не в пихаемое.

Doom


Doom



Doom


Scull_


Doom