Render.ru

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

Sventovit

Пользователь сайта
Рейтинг
2
#1
Всем привет! Если кто-нибудь может тпомочь в написании скрипта для Rhino, отзовитесь. Буду благодарен за любую помощь, будь то ссылки, литература, или просто добрый совет. А задачка, такова, нужно написать скрипт, который размножал бы готовый обьект, по поверхности surface , при этом вращая размножаемый объект вокруг его нормали (прошу прощения если некорректно выразился, перпендикулярно относительно surfaceа), угол вращения при этом, должен вариироваться (можно хаотично), а количество копий обьекта или расстояние между ними должно быть контролируемым. Заранее благодарю за любую помощь.
 

EGGO

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

Sventovit

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

Sventovit

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

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
#5
Зачем скрипт, в 4-й рине есть инструмент который копирует по поверхности ориентируя обьект по указанной пользователем оси, бери да клацай хоть 200 штук быстро и качественно . . .
 
Рейтинг
75
#6
Есть такой скрипт и давно, Harmony нвзывается, спецом для создания всяких массивов с контролем вращения, размера, можно целые облака 1 обьекта делать
 
Сверху