Harvard GSD



Sep '04 - Aug '08

  • anchor

    Elite Modeling School { Day 2: Rhino }

    By bryan boyer
    Oct 12, '07 1:28 AM EST

    Welcome back to Elite Modeling School. If you missed it, day one would be a good place to start. As a reminder, we're not focusing on extreme cases: this tutorial is about optimizing your workflow in rhino and later maybe we'll cover other programs.

    In general, the instructions here will be fairly brief. Please download the scripts and give them a whirl; everything covered here will be pretty straightforward. If you have further questions or suggestions to share you can post them in the comments below.

    All scripts mentioned below are available here.

    Keep it Clean

    I am a bit obsessive about having clean geometries in my rhino files. Generally I despise having isocurves turned on for my surfaces unless I'm working with a complex curved geometry.

    Left: Three cubes with isocurves turned on. Right: Three cubes as separate objects but isocurves turned off.

    This issue can become especially obnoxious when working with booleaned solids because, by default, the faces of the original solids are maintained. This can lead to some confusing extra lines in the viewport and it's why I developed the "cleanBoolean" script. This script will perform a normal boolean union, then select the new unioned solid, and finally run "mergeallfaces" to eliminate extra iso curves. The result: perfect, clean solids.

    Left: Three cubes booleaned into one with default boolean command. Right: Results of the cleanboolean script.

    Measuring Quickly

    One of the biggest pains in my ass last summer was trying to do some general plan layouts for a building with a totally irregular geometry. We had very specific area requirements for each line item in the brief, so controlling general surface distributions was critical.

    Rhino's built in "area" command is excellent but it only works for surfaces and closed curves. When you're sketching out a plan it can be quite a pain to convert individual rooms into unique polylines so that you can test their area. Why not test the area of an arbitrary bounded figure regardless of whether it's caught between one curve or multiple? This is exactly what the script "boolArea" accomplishes.

    When you run "boolArea" the script will ask you to click inside the areas that you would like to add to your selection. Once you do this and then hit space bar it will report on the combined area.

    Left: Separate curves. Right: Arbitrary shape selected

    Congratulations, you've passed Elide Modeling School #2!

    p.s. If you're not familiar with it, try using the "dot" command. Dots are super useful for labeling program chunks in your model since they always "look" at the active camera.


    • FOG Lite

      Both scripts look pretty useful, thanks!

      (Paul, when's the t-shirt coming?)

      Oct 12, 07 1:11 pm  · 

      I'm sure if i used Rhino I'd be adding more useful commentary - but instead I'm just caught up with the logo

      Oct 12, 07 6:40 pm  · 

      are there going to be ranks?

      Oct 12, 07 11:50 pm  · 


      Oct 13, 07 2:27 am  · 
      jd steelritter

      great use of your school blog! much appreciated from the rest of us trying to streamline our rhino use.

      they're a little bit buggy, though. the arcDist script likes to snap to apparently random places and creates runtime errors in lines 24 and 31 when escaping from a command and when exiting, respectively. check these out, and maybe use your fellow stuio-mates as guinea pigs before you post the next.

      keep 'em coming, though.

      Oct 15, 07 4:15 am  · 
      bryan boyer

      jd, sorry to hear you're having some problems but remember to read the preface to the script: everything is provided as-is.

      There's nothing in arcdist that effects snapping, so any odd snap behavior you're witnessing is a result of the normal rhino snaps...

      Oct 15, 07 5:08 am  · 

      they aren't actually errors jd. the script is returning a null value if you don't create an arc, and thus the error that comes up is Rhino telling you it doesn't have an arc to measure.
      the following modification won't return any error values.

      Oct 15, 07 7:11 pm  · 

      Call arcDist ()
      Sub arcDist

      Dim arrPoint, strView, arrObjs, dblLength, strDeg, strRadius


      arrObjs = Rhino.LastCreatedObjects

      If IsNull (arrObjs) Then
      Call Rhino.MessageBox ("You Forgot To Make An Arc")
      Exit Sub
      End If

      If Rhino.IsCurve(arrObjs(0)) Then
      dblLength = Rhino.CurveLength(arrObjs(0))
      strDeg = Rhino.ArcAngle(arrObjs(0))
      strRadius = Rhino.ArcRadius(arrObjs(0))

      Rhino.Print "Arc Length: " & Round(CStr(dblLength),3) & "units /// Degrees: " & Round(strDeg,3) & " /// Radius:" & Round(strRadius,3)
      End If
      End Sub

      Oct 15, 07 7:11 pm  · 
      bryan boyer

      NICE! Thanks, ks!

      Oct 15, 07 11:49 pm  · 
      jd steelritter

      beats me where the snapping was coming from, but it was while measuring with no arc. problem solved; copy-paste.

      thanks, kyle.

      Oct 16, 07 6:28 am  · 
      le bossman

      i didn't even know you could turn the isocurves off in rhino

      Oct 17, 07 10:21 am  · 
      le bossman

      i'm going to go home and load all these scripts. i am totally into this.

      Oct 17, 07 10:25 am  · 

      Rhino > Option > General (show isocurves) if you don't want to see any

      Oct 17, 07 5:43 pm  · 

      Block this user

      Are you sure you want to block this user and hide all related comments throughout the site?


      This is your first comment on Archinect. Your comment will be visible once approved.

    • Back to Entry List...
  • ×Search in:

Affiliated with:

Authored by:

  • bryan boyer

Other blogs affiliated with Harvard University:

Recent Entries