2013-04-09 2 views
3

Я пытаюсь получить длину кривой, но получаю сообщение: MissingMemberException: 'Guid' object has no attribute 'length' Тот же скрипт на C# отлично работает. В чем проблема с переводом python? Вот Documentation.MissingMemberException: объект 'Guid' не имеет атрибута 'length'

ПИТОН:

import rhinoscriptsyntax as rs 

ln = rs.AddLine(pt1, pt2) 

a = ln 
b = ln.Length 

C#:

Line ln; 

ln = new Line(pt1, pt2); 

A = ln; 
B = ln.Length; 

ответ

5

У меня был быстрый взгляд на documentation. Я думаю, вы должны использовать rhinoscriptsyntax.CurveLength. AddLine возвращает объект Guid, а не объект кривой. Вы можете передать Guid на CurveLength.

rs.CurveLength(ln) 
+0

Я как раз собирался опубликовать это. Очевидно, что возвращается GUID новой строки, а не сама строка. – kindall

+0

Благодаря она работает, что если я изменить на следующий код: 'импорт Rhino, как Rhino п = Rhino.Geometry.Line (pt1, pt2) а = пер б = ln.Length' В этом случае я получаю следующее сообщение об ошибке: '(ArgumentTypeException): ожидается Point3d, получил Guid' Почему у меня также есть GUID в этом случае, а не сама строка? –

+1

Ошибка 'ArgumentTypeException', поэтому я думаю, что это говорит о том, что хотя бы один из аргументов' pt1' и 'pt2' является Guid, а не объектом' Point3d'. Отслеживание исключений должно указать вам, в какой строке кода произошла ошибка. –