--THIS SCRIPT CAME STRAIGHT OUT OF THE 3DS MAX MAXSCRIPT REFERENCE.
--SEARCH FOR 'ALIGN SURFACE' AND ITS THE 1ST ON THE RESULTS LIST.
macroscript MoveToSurface category:"HowTo"
(
fn g_filter o = superclassof o == Geometryclass
fn find_intersection z_node node_to_z =
(
local testRay = ray node_to_z.pos [0,0,-1]
local nodeMaxZ = z_node.max.z
testRay.pos.z = nodeMaxZ + 0.0001 * abs nodeMaxZ
intersectRay z_node testRay
)
on isEnabled return selection.count > 0
on Execute do
(
target_mesh = pickObject message:"Pick Target Surface:" filter:g_filter
if isValidNode target_mesh then
(
undo "MoveToSurface" on
(
for i in selection do
(
int_point = find_intersection target_mesh i
if int_point != undefined then i.pos = int_point.pos
)--end i loop
)--end undo
)--end if
)--end execute
)--end script
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
smartus
Подскажите, есть ли аналог скрипта http://www.scriptspot.com/3ds-max/scripts/move-to-surface для Rhino 5???
Задача - выровнять массив объектов по поверхности в одной оси
Или возможно это делается существующими инструментами.
Пример задачи на картинке
Вложения
Hardcore
Можно попробовать массив по поверхности или по кривым, которые на поверхности.
Скрипта не знаю.
smartus
особенно после просмотра скрипта для макса )))
--THIS SCRIPT CAME STRAIGHT OUT OF THE 3DS MAX MAXSCRIPT REFERENCE.
--SEARCH FOR 'ALIGN SURFACE' AND ITS THE 1ST ON THE RESULTS LIST.
macroscript MoveToSurface category:"HowTo"
(
fn g_filter o = superclassof o == Geometryclass
fn find_intersection z_node node_to_z =
(
local testRay = ray node_to_z.pos [0,0,-1]
local nodeMaxZ = z_node.max.z
testRay.pos.z = nodeMaxZ + 0.0001 * abs nodeMaxZ
intersectRay z_node testRay
)
on isEnabled return selection.count > 0
on Execute do
(
target_mesh = pickObject message:"Pick Target Surface:" filter:g_filter
if isValidNode target_mesh then
(
undo "MoveToSurface" on
(
for i in selection do
(
int_point = find_intersection target_mesh i
if int_point != undefined then i.pos = int_point.pos
)--end i loop
)--end undo
)--end if
)--end execute
)--end script
(Удалённый пользователь)
попробуй поискать с запросами типа scatter rhino3d.... а лучше в динамике все это двигать, то чрез grasshopper