Grasshopper

algorithmic modeling for Rhino

Hi everybody!

I am new to this discussion group and would appreciate your help. 

I've run into the following problem: 

- I have a group of lines, each of the lines points into different direction.

- I would like to move/arrange them in a way that the ending point of one line would be the starting point of another line.

- Starting point of the first line would be 0,0,0.

- The lines would arrange automatically.

 

Could anybody give me some advice or suggestions? Thanks a lot!

Views: 316

Replies are closed for this discussion.

Replies to This Discussion

What would be the rule that says which line is the next one to be placed end to start or is it your intention that the placement be random?

 

Chris

 

Here's a Rhinoscript that will do this (randomly unless you pick the lines one at a time in the order you want them to be placed).

Chris

 

Option Explicit
'Arranges a set of lines head to tail, joins them and places the polyline at (0,0,0).
Call Main()
Sub Main()
    Dim arrObjects,i,arrStart,arrEnd,arrVector,arrXform,arrJoined

    arrObjects = Rhino.GetObjects("Select lines to arrange head to tail.",4)

    If Not IsArray(arrObjects) Then Exit Sub
   
    For i=0 To Ubound(arrObjects)-1
       
   
        arrStart=Rhino.CurveStartPoint(arrObjects(i+1))
        arrEnd=Rhino.CurveEndPoint(arrObjects(i))
        arrVector = Rhino.VectorCreate(arrEnd,arrStart)

        arrXform = Rhino.XformTranslation(arrVector)

        Call Rhino.TransformObject(arrObjects(i+1), arrXform)

    Next
   
    arrJoined=Rhino.JoinCurves(arrObjects,True)
    arrStart=Rhino.CurveStartPoint(arrJoined(0))
    arrVector=Rhino.VectorCreate(Array(0,0,0),arrStart)
    arrXform=Rhino.XformTranslation(arrVector)
    Call Rhino.TransformObject(arrJoined(0),arrXform)
   
End Sub

Attachments:

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service