- Рейтинг
- 4
Здравствуйте!
Проблема №1
Пытаюсь довести до ума скрипт для исправления проблем с некорректным значением scale для геометрии в выборке (например, после использования Mirror компоненты .scale — отрицательные)
Вопрос в том, как проитерировать o.scale (Point3)? Текущая реализация выдает ошибку
-- No "map" function for [-1,-1,-1]
P.S. Формально можно вручную трижды записать if для (o.scale.x/y/z < 0) или (o.scale[1/2/3] < 0). Хочется найти лаконичный вариант.
Проблема №2
Существует ли в природе magicFunction?
Заранее спасибо!
Проблема №1
Пытаюсь довести до ума скрипт для исправления проблем с некорректным значением scale для геометрии в выборке (например, после использования Mirror компоненты .scale — отрицательные)
Код:
if (selection.count>0) do (
for o in selection where superclassof o == geometryClass do (
isScaleNormal = true
for c in o.scale do (
if (c < 0) then isScaleNormal = false
)
if (not isScaleNormal) then (
addModifier o XForm
addModifier o normalModifier
)
)
)
-- No "map" function for [-1,-1,-1]
P.S. Формально можно вручную трижды записать if для (o.scale.x/y/z < 0) или (o.scale[1/2/3] < 0). Хочется найти лаконичный вариант.
Проблема №2
Код:
theBox = box() -- подопытный объект
properties = #("name", "wireColor", "pos") -- массив с именами свойств
-- требуется вывести значения свойств, имена которых содержатся в массиве
for p in properties do print (magicFunction theBox p)
Заранее спасибо!