Render.ru
Поддержать

Помогите с написанием скрипта

Sventovit

Пользователь сайта
Рейтинг
2
Всем привет! Если кто-нибудь может тпомочь в написании скрипта для Rhino, отзовитесь. Буду благодарен за любую помощь, будь то ссылки, литература, или просто добрый совет. А задачка, такова, нужно написать скрипт, который размножал бы готовый обьект, по поверхности surface , при этом вращая размножаемый объект вокруг его нормали (прошу прощения если некорректно выразился, перпендикулярно относительно surfaceа), угол вращения при этом, должен вариироваться (можно хаотично), а количество копий обьекта или расстояние между ними должно быть контролируемым. Заранее благодарю за любую помощь.
Рейтинг
167
Знаю наверное тока два более-менее толковых сайта по рине, где информацию подобного рода найти можно. 1. en.wiki.mcneel.com - отменный WIKI сайт от самих же МаКНиловцев. 2. www.cgtalk.com - просто толковый сайт по графике в целом и по Рине - в частности...
По первой ссылке наверняка найдешь чего-нибудь по сабжу...
P.S.: знание инглиша приветствуется... 🙂

Sventovit

Пользователь сайта
Рейтинг
2
Спасибо за ссылки, кое-чего нашел по теме, получится извлечь из этого пользу или нет, пока точно не скажу (надо внимательно изучить) Еще раз спасибо.

Sventovit

Пользователь сайта
Рейтинг
2
Нашел скрипт позволяющий копировать объект по созданым точкам. Вот он:

Sub CopyObjectsToSelPts()
Dim selObjects
Dim newObjects
Dim Objects
Dim Centre
Dim Points
Dim cmd
Dim pnt
Dim One
Dim obj

selObjects = Rhino.SelectedObjects

If IsArray(selObjects) Then
For Each pnt in selObjects
If Not Rhino.IsPoint(pnt) Then
Objects = SelectedObjects
Points = Rhino.GetObjects("Select points to copy to", 1)
If Not IsArray(Points) Then Exit Sub
Exit For
End If
Next
Points = Rhino.SelectedObjects
If Not IsArray(Objects) Then Objects = Rhino.GetObjects("Select objects to copy", 0)
If Not IsArray(Objects) Then Exit Sub
Else
Points = Rhino.GetObjects("Select points to copy to", 1)
If Not IsArray(Points) Then Exit Sub

Objects = Rhino.GetObjects("Select objects to copy", 0)
If Not IsArray(Objects) Then Exit Sub
End If

Centre = Rhino.GetPoint("Pick a 'copy-from' location..."😉
If Not IsArray(Centre) Then Exit Sub

Rhino.EnableRedraw vbFalse
Rhino.UnselectAllObjects
For Each pnt In Points
newObjects = Rhino.CopyObjects(Objects, Centre, Rhino.PointCoordinates(pnt))
Rhino.SelectObjects newObjects
Next
Rhino.EnableRedraw vbTrue

End Sub
CopyObjectsToSelPts

Может быть, кто-то знает, как его изменитбь, чтобы каждый копируемый объект был повернут относительно своей оси на какое-то количество градусов?

Mr.DEE

Активный участник
Рейтинг
5
Зачем скрипт, в 4-й рине есть инструмент который копирует по поверхности ориентируя обьект по указанной пользователем оси, бери да клацай хоть 200 штук быстро и качественно . . .

Sergey Volkov

Знаток
Рейтинг
75
Есть такой скрипт и давно, Harmony нвзывается, спецом для создания всяких массивов с контролем вращения, размера, можно целые облака 1 обьекта делать