Grasshopper

algorithmic modeling for Rhino

Normal Line From Midpoint Of Shortest Side Of Polygon

Hello.  I am a studio furniture maker and new to Grasshopper.  I have been trying to create a definition that will draw a perpendicular line from the midpoint of the shortest side of a 2D polygon intersecting itself. The resultant line would then be grouped to that polygon.  The definition would then allow me to set input an angle and rotate the polygon with that line determining that angle (the intersection of the perpendicular line and the shortest side being the center of rotation).  I have attached a jpeg with 3 irregular pentagons with their corresponding lines on the left.  On the right, for example, the polygons have been rotated 90 degrees. If anyone has done something similar and would care to share it with me, that would be great!  Thanks. 

Views: 4016

Attachments:

Replies to This Discussion

It's a bit naughty with the Flattening, but that can be fixed if it's a problem.

--

David Rutten

david@mcneel.com

Innsbruck, Austria

Attachments:

Dear David, Thank you so much for your definition.  It doesn't quite work exactly as it is supposed to and I should not attempt to usurp more of your time but here goes anyway.  More specifics.  One if the things I have been doing the last number of years is sawing my own wood veneer, creating patterns in CAD, laser cutting the tiles/parquets and then gluing them onto various cores to make furniture.  I have needed to control grain direction in these tiles and in the case I sent you, my scheme is to orient the grain of the wood tile in the direction of that perpendicular line from the shortest side of the polygon.  If I have a piece of tiled veneer with a few thousand tiles, by the time I draw all these lines, group and rotate the tiles, nest them so I can cut them out of veneer, this can take weeks.  I am now using RhinoNest so I at least have freed myself from manual nesting.  I a perfect world, I would have a more flexible tool or Grasshopper Definition that would be able to follow a 'grain map' of lines or partial lines that I would create and superimpose onto the tile pattern and have the individual tiles rotated as informed by that 'grain direction line'. I suspect that this would not necessarily be an hugely complicated definition but it is beyond me.  If I could persuade you or hire you to create this for me It would save me a mind-numbing amount of time so that I could get to complete global domination before dinner.  I am sending you a Rhino file of sample tiles so you can try your definition and see the problem.  I am also sending you a jpeg of a coffee table I made of Swiss Pearwood about 53" x 35" x 17" to hopefully get you excited.  I can also be directly emailed: aaronlevine@qwest.net and even called on my cellphone: (206) 714-0646 West Coast Time Seattle.  Thanks you so much for even looking at this confoundedness.  Best,  Aaron.

Attachments:

David,  Here is your definition as it appears in my version of Grasshopper.  v. 9.0014 I think.

Attachments:

This is based on David's definition.  The numbering problem still has to be addressed.  How are you currently assigning the numbers?

Attachments:

Here it is with a numbering method.  Also I meant to say how nice the furniture is. 

Attachments:

I just noticed a couple of missed rotations.  I thought I had it. Oh well...

It's fixed.  You have to set the recursive decomposition of the segments parameter in the Explode Component to False.

Attachments:

Dear Chris,  Your are fantastic!  This definition will be incredibly helpful!  I did, however, discover that I have made major mistake in how Grasshopper works.  I enclosed a small Rhino file with tiles.  What you will see when viewing it is the Reference Polygon with nested polygons inside and finally numbers that I entered into my drawing manually as text curves.  I thought that if I grouped something in Rhino, then selected only the Reference Polygon, the rest of the nested geometry would come 'along for the ride' and rotate etc. with the Ref. Polygon because in the end, I need to be cutting out the Zebra wood and Bubinga wood geometries.  I need the numbers as curve objects because I laser engrave them into the tiles very lightly so I can keep track of the many tiles (The numbers get sanded off later).  The dot formatting seems to be only good for internal bookkeeping.  Grouping, apparently, does not pass back and forth between Grasshopper & Rhino? Anyway, if you have any suggestions on an approach, once again I would be grateful. I hope this makes sense. Best,  Aaron. 

Attachments:

Dear Chris,  I was able to figure out the definition to deal with single curves.  I just select them by type.  The numbers that I generated have different numbers of curves.  I cannot figure out how to deal with a two or three or four digit number as one group.  Is there an easy fix?  Thanks,  Aaron.

Attachments:

Aaron,

I haven't looked at your recent attachments yet but can you explain your workflow a little bit more precisely?  I'm assuming that 1) You start with a pattern of polygons; 2) You run the GH script to simultaneously number them and reorient them for grain direction; 3)  You then Bake the result into Rhino; 4)You group the individual text and polygon shape for each tile; 5) You nest the thusly grouped tiles for laser cutting and engraving; 6)  You generate the G-code for cutting and engraving with some CAM program.   I'm assuming that RhinoNest allows you to nest grouped objects.  Is this the basic idea?

Looking at your attachments my next question is how are you generating the tile numbers?

Bake the tile shape first and then bake the numbers into Rhino.  Immediately after baking the numbers go to the Rhino command line and type in 'Sellast' (without the quotes).  Then explode the selection.  This will give you curves for your cam software.

Note that I should have used the '3D Text Tag' and I've changed this in the Rev1 file below.  Now we just need to get the grouping of the number and the tile shape sorted out.

Attachments:

Chris,

You are on the right track.  Dealing with a variable number of curves is done, it is just that issue about numbers being made with one or more curves.  I even thought of creating numbers that are underlined and joined so they are one object (worse case scenario).  I am sending you two more things.  One is a jpeg of what the table veneer will look like.  The black Field between the tiles is Wenge, the red is Bubinga wood and the white is Zebrawood.  I am also going to send you a Rhino of my workflow process but I think that it is redundant as you are understanding that the real problem is that GH does not know that a single digit number is any different than a multiple digit number.  You persistence is admirable.  Thanks, Aaron

Attachments:

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service