Привет всем !
Прошу помощи.
Не получется скриптом подсчитать превышение размера какой-либо edge в модели.
Вот скрипт:
p = convertToPoly($)
nEdgeCount = p.EditablePoly.GetNumEdges()
for i=1 to nEdgeCount do
(
vertex1 = p.GetVertex(p.GetEdgeVertex i 1)
vertex2 = p.GetVertex(p.GetFaceVertex i 2)
ndist = (distance vertex1 vertex2)
print ("v1: " + vertex1 as string)
print ("v2: " + vertex2 as string)
print ("dist: " + ndist as string)
if ndist > (nameof_high_limit.text as float) Then append result i
if ndist < (nameof_low_limit.text as float) Then append result i
)
p.SetSelection #Edge result
for q=1 to result.count do
(
deleteItem result q
)
)
)
Проблема в том, что результаты получаются не верны.
Единици измерения стоят в юнитах, т.к. как я попутно понял - скрипт кроме юнитов расстояние не в чем показывать не может.
Если мерять при помощи tape выбрав Tape инструмент в меню , то размер в метрах показывается правильный. Если вывести результат скрипта - то результат получается не верен, даже на кубе единичной длины сторон ! Что уж говорить о сложных моделях В ходе исследования было выявлено, что 3d max не правильно выдает координаты на второй вертекс vertex2 = p.GetVertex(p.GetFaceVertex i 2) , хотя по докумендации написано все вроде верно.
Помогите пожалуйста, убил на эту проблему 2 рабочих для. 3D max и MAx script вижу первый раз. Можно ли вообще получить длину каждого edge в метрах или хотя бы в юнитах?
Прошу помощи.
Не получется скриптом подсчитать превышение размера какой-либо edge в модели.
Вот скрипт:
p = convertToPoly($)
nEdgeCount = p.EditablePoly.GetNumEdges()
for i=1 to nEdgeCount do
(
vertex1 = p.GetVertex(p.GetEdgeVertex i 1)
vertex2 = p.GetVertex(p.GetFaceVertex i 2)
ndist = (distance vertex1 vertex2)
print ("v1: " + vertex1 as string)
print ("v2: " + vertex2 as string)
print ("dist: " + ndist as string)
if ndist > (nameof_high_limit.text as float) Then append result i
if ndist < (nameof_low_limit.text as float) Then append result i
)
p.SetSelection #Edge result
for q=1 to result.count do
(
deleteItem result q
)
)
)
Проблема в том, что результаты получаются не верны.
Единици измерения стоят в юнитах, т.к. как я попутно понял - скрипт кроме юнитов расстояние не в чем показывать не может.
Если мерять при помощи tape выбрав Tape инструмент в меню , то размер в метрах показывается правильный. Если вывести результат скрипта - то результат получается не верен, даже на кубе единичной длины сторон ! Что уж говорить о сложных моделях В ходе исследования было выявлено, что 3d max не правильно выдает координаты на второй вертекс vertex2 = p.GetVertex(p.GetFaceVertex i 2) , хотя по докумендации написано все вроде верно.
Помогите пожалуйста, убил на эту проблему 2 рабочих для. 3D max и MAx script вижу первый раз. Можно ли вообще получить длину каждого edge в метрах или хотя бы в юнитах?