Leo's Assignment 2: Parametric Rhino Wing!

Here is all the documentation for assignment 2!

TL;DR:

Source Files

Available on github.com at https://github.com/LeoSalemann/LeoSalemann.github.io/tree/master/hcde598/hw02

Machine Settings (Epilog Laser Fustion M2 60 watt)

Thick Cardboard (Widescreen TV Box)

Thin Cardboard (USPS Priority Mail Box)

Adobe Illustrator Settings

Special Thanks to ....

Waaayyyyy Too Many DEETS

Day One: Fixin' To Get Ready

Right, then. We're supposed to re-create homework 1 parametrically, in Rhino with Grasshopper. The basic idea is to parametrically handle arbitrary thicknesses, and to use two thicknesses in the actual build. I think Imma have to:

  1. Draw some sketches.
  2. Watch some Grasshopper tutorials.
  3. CAD some stuff.
  4. Print some stuff.

Sketching

Parts, Thicknesses, and Parameters

Okay, so if I go with the original design, I have three parametric thicknesses at least:

  1. Airfoil Thickness (T1)
  2. "Main Hoop" Thickness (T2)
  3. Spar Thickness (T3)
In reality, T1 will probably be pretty small, T3 will be bigger, and T2 will be huge. If I wanna go crazy, Each spar could be a unique thickness, so there'd be T1, T2, T3a, T3b, T3c. It'd be a pain to gather so many material thicknesses, so I probalby won't actually go that far.

Another thing I could do is ditch the hoop entirely, and just go with notched beams at the leading and (maybe) trailind edges. It'd be interesting to see what it's like to assemble that way, and home strong the finished product is, so I'll probalby do that.

So anyway, based on what little I know of Rhino Grasshopper, my visual programming diagram thingy would look somehting like this (below). To make things easier (and lighter!) I've removed the "hoop frame" so I'm only dealing with spars and airfoils. Consequently, I no longer have to worry about T2 from the prior sketch, and can concentrate on T1 and T3.

Sketching for Grasshopper.

I've also added d1 and d3 so the cutout rectangles can have lengths to go width their widths. Rectangle A (for the spar) is d1 x T1; Rectangle B (for the airfoil a.k.a. rib) is d3 x T3. Spar height and airfoil height (I'll reserve "thickness" to describe material thickness" will both be d1+d3. When I work up spars for the other slot locations on the airfoil, the airfoil slots will always be d3 x T3, but the d1 used on the spars will vary.

A quick rework of my 3-rib prototype suggests it'll still be plenty strong.

Look Ma, no hoop! Just ribs and beams.

The tricky part in all this will be getting grasshopper to "read" my custom airfoil shape, cut notches in it, and replicate it. So having done this sketching, thinking, writing exercise, I know that I need tutorials covering:

Spoiler alert: I already figured out how to import my SVG airfoil into Rhino!

I might-just be able to pull this off..

Day Two, What to Do?

Okay last night was about thinking and sketching; tonight is tutorial time! But first .... we've got an actual assignment description now. I need:

ModelLab Grasshopper Primer

Pretty slow and wordy; got a few nuggets out of it though.

All in all, thought I found the ModelLab primer slow and wordy. The little mini tutorials that come up when you first start Grasshoper look good and succinct, though.

Day Three, Oh My Oh Me

I didn't get through nearly enough tutorials the other night, but at least I have some leads. Gonna do those ones from the Grashopper start page, as well as the Ramboll Blog Grashopper Tutorial suggested by Kimberly Dzuibinski.

Grashopper Embedded Tutorials

Let's start with the tutirials Grashopper shows at startup time. Same ones you can get to from Help > Tutorial Files.

01 Simple Input and Maths This is more like it. Really digging the open-ended exploratory feel of these. Got a good grip on how to use panels for comments, and the sprectrum of input types avaialble to me.

02 Interpolating Values This on3 helped me wrap my head around how to connect geometry from Rhino (Pt) to Grasshopper. Playing with colors was way too fun.

03 Wires & Conversions Moving right along. The "Hold down shift" trick will come in handy when connecting multiple wires, the XYZ to Point conversin might come in handy too.

04 Polynomial Grpahing with Derivatives Okay, this one's funky. Probably won't go this hardcore unless I start defining NACA airfoils from their base equations. Might come back to this one to help read & understand Dr. Gareth Paterson's NACA Series 4 Airfoil generators

05 Measure and Display Values I like the title of this one. A little hard to grock, but I think I'll be able to use some of this when I want to measure positions off my airofoils, like d3 and d1 below.

Imma need to measure d1 and d3 eventually.

06 Adaptive Pattern within Shape Thought this would be out of my league at first glance, but I can kinda see how Join, InCurve, and Cull could be used to create my rectangular "slots" and clip them into my airfoils.

07 Column Arcade Oooh ... repeating patterns! Hmm... I dunno. There's a lot of fuky stuff going on in this one, and the simple "replicate this shape in XY for N times" isn't jumping out at me. probalby need to look elsewhere for that.

A beginner’s guide to visual scripting with Grasshopper

Right, then. Feeling a bit less noobish, but still wanna look at the Ramboll Blog Grashopper Tutorial that Kimberly Dziubinski found. Skimmed the first page or tow, but found some good nuggets starting right before section 3.

Okay, the big reaveal for me is how to use tabs other than Params and Components. The Ramboll Blog Tutorial got me into the Curve tab. I'm normally very GUI-oriented, but getting more and more drawn to the "double-click and type" textual method.

Right Then, Let's Build Something!

I'll start with a gauge. It'll be nice have a middle slot that matches my caliper reading, and the rest auto-calculate like this:

My first rectangle

Okay, let's go into Grashopper for real this time. A couple number sliders a Rectangle component and ...

My first rectangle

Now let's see if I can re-create ... THE NOTCH. Last time it was about 0.3 inches. Use hard-coded number param, grab the rectangle dimentions, a bit of math, and ... I don't know why that was so hard. The bloody Move wouldn't work -- kept saying "this component is currently inactive." Finally I just went back to my in-class document, rejiggered it, and did a save as/overwrite of my original guage doc. Whatever, it's working now.

Adding THE NOTCH

Okay, on to the main event, let's make the actual "gauge slots ..." well that was more complicated than I thought. Good thing I found the Group function or I'd be going nuts about now.

Adding the Caliper slot

Now let's get those other slots. We want three above the middle "caliper slot", each of which 0.002 in. smaller than the previous. Same thing below the middle one, but 0.002 larger. Getting pretty hard to avoid a rats' nest ...

Hard to keep the wiring neat.

...but it works!

Got three slots though.

Okay, three slots left ... we can do this. Turned out to be ugly as hell ...

This is really gross.

Still works, though.

Not quite as ugly.

I thnk I figured out how to make it less crappy. I used relays & Scribbles To label my inputs for the bottomost slot.

Perhaps there is hope.

Day Four, I Should Really Print Someting

So, all of last night in the UW MILL ended up being a massaive Grashopper CAD-fest. Didn't print a darn thing. Ended up with a functional Guage, but the wiring was a complete and total rat's nest. So how did I decide to start Day Four? Plowing ahead with fillets and printing? Oh no, I just had to fix those wires. Pretty happy with the results, thought.

Semi-decipherable wiring .. good enough!

Grouping and labelling really helped. Each group is like its own little "chip" with specific inputs and outputs.

Groups.

Relays helped, too. Easiest way was to (gasp!) unwire eveyrhting, then redo wires with relays, and little "label groups" that helped me keep my Slot Depth, Caliper Slot Thickness, Slot Position Delta, Slot Size Delta all straight.

Groups and Relays.

Good Wires, Good Rectangles, Time to Cut and Fillet

Let's try Gabi Duncome's advicd of Merging THE NOTCH and all the slots into one thing, then use Region Difference once. Turns out I need to use Grashopper's funky Zoomable User Interface (ZUI) to add enough inputs. In my case, I need six.

Huh, something was almost ... easy. My Relay game's solid enough that I could wire this up without rat-nesting again. Then I had to disable Preview on the intermediate shapes and ...

OMG, it Worked! All that's left is to round some corners.

Finally, figured out how to Fillet. S'pose I could have gotten real fancy and only fillet the outer corners of the caliper slots, but I've had enough masochism on this assingment so I'm just going to fillet everytning and call it good.

Fully-filleted, finally finished.

Oh Yeah, Printing ...

Got so excited seeing my complete geomety that I forgot there's even more to do before I can print. Gotta dupe it so I have two, bake it, then do whatever else is needed to get the final rhino file ready for the laser-cutter.

First-off, let's dupe the gauge. This is actualy a good time to document the "Groups and Relays" technique I've developed to avoid rat-nesting. In this case, my goal is to have two copies, side-by side. I know I'm going to need a Linear Array component and an Unit X Vetor. To avoid overlap, I need to use the width of the "Main Rectangle" I used when starting the guage. There' also going to be some multiplication involved, and ... I may as well ad control for the number of copies to make. Using Relays, Scribbles the other elementes mentioned above, I can lay out the basic parts and group them.

Starting things the right way for once.

Now I can wire up the internals, re-arranging elements if I need to.

Wiring Up the internals.

Yup, a lot of shuffling occurred already. With the internals squared away, now I can wire up the externals for the "Main Recangle width" and the "Finished Guage Geometry."

There, that wasn't so bad. Far less rat-nesting.

And whattaya know? It worked on the first try.

Okay that felt wierd. I'm used to having to suffer for a few hours before getting what I want.

A brief Diversion into Wing-Making

I got some time to kill at home before heading to the MILL later tonight, so I'll keep cadding.

All that work and I don't have a wing yet. Hope I can use that NACA generator, but I may need to punt and use the airfoil from assingment 1. Let's start with a spar. I'll need a wingspan, spar thickness, airfoil cardboard thickness, and slot depth. Same Merge, Region Difference, and Fillet as I did for the gauge.

That was quick, I even got rounded ends!

Now the slots. Need to make the basic rectangle (airfoil-thickness x slot-depth), space them evenly across the spar. TBD discuss the success at putting slots at the two ACKNOWLEDGMENTS

Wing with end slots

Finally at the MILL, Actual Measurements

Between my garage, the MILL, and (ahem) the Post Office, I've been able to scrounge up a healthy assortment of cardboard thicknesses and sizes.

  • Science Fair Tri-Fold Good spar material. A full 36 inches wide and 0.1465 inches thick.
  • Hunk of TV box Very strong, but not much left. 25 x 13 inches area and a whopping .02725 inches thick. Could make very strong but heavy airfoils. Curious to see how the laser cutter would handle this stuff.
  • USPS Priority Mail Medium Flat Rate Box Appearently these are free if you visit your local post office after hours. 20x15 inches overall, a mere 0.0835 inches thick. Surprisingly stiff, could make good airfoils. Would push the limit of my gauge & slot cutting.
  • Joe Average Cardboard Plain, basic, 31x18 inches overall, 0.1590 inches thick. Good backup matrial. Just-long enough to be a spar; stiff enough to be airfoils.
  • Thin Costco Cardboard Came "for free" with a few large flower pots my wife and I bought off a pallet. 31x22 inches overall, 0.1220 inches thick.

Okay, so given these choices, my order of preference is ...

  1. 0.1466 in. spar with 0.0835 in. airfoil.
  2. 0.1466 in. spar with 0.2725 in. airfoil.

So I need to generate three pairs of gauges for the three thicknesses.

Bake, Export, Print

Pull up my Grashooper doc, set the Caliper Slot to 0.1466 in.

First real caliper measurement , set for 0.1466 in.

After baking, I grab the "fresh" geomety, move it in X then set a new caliper thickness and rebake. Repeat until I have three gauge pairs.

Three pairs for three caliper measurments.

For export, I had better luck going straight to Adobe Illustrator rather than through dxf. Only trick was to select 1 mm = 1 inch.

Export straight to AI, 1 mm = 1 inch.

Once in Adobe Illustrator a had to move the geometry from the bottom-left corner of the doc to upper-left, then resize the artboard to match my cardboard size, and set the stroke width to 0.001 in. Seem reasonable, especially since I'll be resizing the AI doc for specific cardboard size, not to mention compensating for holes and other odd cardboard shapes.

Okay, off to the laser cutter! First-up, Imma try my super thick TV box cardboard. Get the placment n the upper-left corner.

Adobe Settings, first pass.

Next up, epilog.

  • Job Type: Vector
  • Horizontal: 20 (match my cardboard)
  • Vertical: 5 (match my cardboard)
  • Speed: 26%
  • Power: 100%
  • Freq: 100%
Epilog Settings

Back to Adobe Illustrator settings. Some how my Orientation was messed up so I hdat to set it to portrait. Now the preview looks good, and I'm ready to print.

Settings three

Hm. even at full power, it didn't cut thru the tv box, stopping at the last layer. Looking at the dot pattern on the back side, I think I need to slow down the speed.

Failed to cut though. White side was facing torward the bottom.

Try the postal board. Nice clean cuts, good and stiff. On the minus side, all my slots are too loose for everything :(.

Postal Board cuts.

Try the costco carcboard. Also worked. Y'know ... I should have refocused the laser when switching material thickness. Good thing the epilog is forgiving. About the same thinness as the usps box, but not nearly as stiff.

TBD Costco cuts.

Well, crap. Almost all my gauge slots are too loose for everything. The only one that worked was for the regular science fair trifold cardboard. Even then, it wasn't the middle slot that matched the calliper -- it was the smallest notch -- that was two "deltas" smaller.

Smallest slot on medium cardboard -- the only slot that works.

DAY FIVE: OMG This is taking so long

So ... yeah, almost all my guage slots from yesterday are too big. Let's measure the actual gap size with calipers, and compare to what we see in Grasshopper.

Time to Play the Slots Again

My grashopper file was last used for the TV Box cardboard, so I'll start with that one. Caliper slot still says 0.2725, let's measure the what actually got cut.

SlotCaliper MeasurementGrasshopper Measurement
1 (top)0.27500.2625
20.27950.2675
3(caliper)0.29800.2725
40.30400.2775
50.30150.28.25
TV Box Gauge Measurements

Well, no wonder -- I had my slot size delta set to a mere five one thousandth's of an inch! That's why they're so similar I can barely see a difference in the calipers.

Only five-thousandth delta? So that's why id didn't work.

Now, about that one anomalous case that actually worked. Yesterday, I had set the caliper measurement to 0.1465 which means the smallest measurement would have been 0.1365. In other words, I had to reduce my caliper measurment by 0.01 for a just-barely tight enough fit.

New Plan I'm going to use a delta of 0.02. Idealy, the smallest slot will be too small, and the middle or one the one just above or just below will fit. Also, re-measure the cardboard. This time, I took my caliper and measured each cardboard 3-5 times, looking for the smallest measurment that still fit. Then, I scrolled up in this doc to look up yesterday's measurements.

CardboardToday's MeasurmentYesterday's Measurment
TV Box 0.2530 0.2725
Trifold 0.1205 0.1465
USPS 0.0580 0.0835

So yeah, everything's waaayyyyy smaller than yesterday. Time to fire up Grashopper and re-run the bake export Adobe Epilog pipeline. This time, I'll use a size delta of 0.05 in for the TV Box and Trifold, and 0.015 in for the super-thin USPS box. Once again, I have six guages; but this time, I'm going to isolate each one to its own Adobe Illustrator layer, so I can print them one at a time, tinkering power/speed/frequency settings between runs.

This time around, I set the orientation correctly from the get-go.

Only five-thousandth delta? So that's why id didn't work.

Rather than the traditional 25% speed, I took it down to 20%

Speed Limbo ... how low can you go?

Dropping speed from 25% to 20% helped, but still not 100% cut.

Closer, but not a full cut just yet.

Try 15%. Successful 100% cut. Tricky to pull out though, so keep dropping.

This is more like it.

Try 10%. Perfect! The parts fall right out now!

Try 12%. Will the parts till fall out if I take it back up to 12%? Yes!

Try 13% Still working, but resists a bit more.

Try 14%Still works.

So, a speed of 14 cuts all the way though while providng a bit of a safety factor.

Looks like 14% is as high as I can go.

Got Some New Slots, so How do they Fit?

Got another full set of six gauges. Trying to fit against the super-thick TV Box, the regular-thick Science Fair Trifold, and the super-thin USPS box.

TV Box. The middle slot fits, but not as tight as I would like (below). One shake makes it drop. The next slot up is too thin to fit at all. Everything else is loose enough for parts to fall out. I could go with this, or do one more (seriously?) guage with a smaller delta-thickness.

It holds, as long as you don't shake it. At all.

Science Fair Trifold The middle slot has the same "tight enough but almost too loose" feel as the TV Box case. The next slot up (thinner) has a realy satisfying grip, holding up to vigorous shaking.

This is the grip I'm used to.

USPS Box I wouldn't trust the middle slot, but the next one up is very trustworthy. Totally shake-resistent. Almost feels like it was glued. Based on my Grashopper parameters, this slot is 0.0580 - 0.0150 = 0.0430 inches.

Feels like I glued it.

Okay, so What Thicknesses Are We Going to Use?

Gotta use the USPS cardboard. Thin, stiff, and we have an excellent slot width figured out. Using the TV Box for spar Material is equaly irrestible -- really higlight the thickness difference. So we'll do big thick strong spars, with thin little slots. The airfoils wil be super thin, but with very wide slots.

So, the next guage set will be cut in USPS cardboard. Last time 0.2530in was a tad too wide, and 0.2330 was hopelessly narrow. We could have the largest gap at 0.2500, and the smallest at 2400. A good sequence would be 2400, 2425, 2440, 2460, 2475, 2500, and who am I kidding I don't have time to keep tweaking this.

DAY SIX: I Can Haz Wing Now?

Four hours of build time left? I'm not worried at all. The slot for the large cardboard isn't perfect, but it should be enough for reasonaly shake resistant build. Back on Day 4 I built an initial wing spar with a slot at each en, just need one more in the middle. No time to use that Grashopper airfoil generator (sniff) so I'll just re-import the SVG one I used in homework two. Three ribs, Three spars, six parts, two thicknesses, good enough.

Okay, whipped out a center slot generator in short order without obsessing on perfect wiring.

Add one airfoil slot in the center of the spar.
Rhino Results.

No need to replicate the whole spar; I'll just generate one multiple times, adusting thickness and slot depth for each baking. On to the airfoil.

This is where I got quick, dirty, and way less parameterized. I had to abandon Dr. Peterson's NAC Airfoil Generator and import my own from Homework 1's Adobe Illustrator file. I tweaked around some of my Grashopper inputs to set the spar slot depth to just be one half of spar height. Also added a Spar Cardboard thickness input. Now I can key in the thicknesses I gleaned from the Guage-Making Death March that consumed my whole week.

Input Mods

I also added a module to generate the rectangluar slot that needs to be cut into the airfoils. To summarize:

So with that said, I basically just needed a rectangle component wired to the right inputs. I tried to get fancy connect it direclty to the airfoil geometry from Rhino, but couldn't get it to happen in time so I just went with the output of the Rectangle.

Airfoil slot generator.

Running Out of Time ...

Uh-oh. It's past 10:30. No time to do all the auto-repliaction I did for the gauge. Just going to bake, replicate, and bake again like this:

  1. Start Rhino, import my NACA 2415 from Adobe Illustrator. When the AI Import options come up, Preserve units so 1 inch = 1 Rhino unit.
    Airfoil slot generator.
  2. From Rhino, start Grashopper and load the hw02-wing01 file.
  3. Airfoil slot generator.
  4. Scale the airfoil in Rhino and the spar height in Grashopper. Keep adjusting things until the proporation look about right. Airfoil a about 1 1/3 as thick as the spar.
    Scaled Airfoil.
  5. Go to Grashopper, right-click the output of the spar generator and select Bake.
    Baking the Spar output.
  6. Go to Rhino, move the spart to make room for the next one
  7. Repeat the bake & move for a total of three spars
    Three baked spars.
  8. Back to Grasshopper; but this time, bake the Airfoil slot (The rectangle not the failed attempt to region difference)
    Baking the airfoil slot
  9. Now we get busy in Rhino. Bake-and-move the airfoil slot thee more times for a total of for. Reposition the slots and the aorfiol. Rotate the slots around and line them up with the airfoil edge like this:
    Airfoil with slots.
  10. At this point I would split trim, and fillet. But it's the eleventh hour (literally) and I'm having trouble remembering/finding the commands. Y'know what? I'll bet these notches will cut out just fine.

What'd I tell you? No x-acto required.

Printed Airfoil.

Printing was somewhat uneventful. I used 100% power, 100% frequency at all times. Used 25% speed for the thin airfoils; 12% speed for the thick spars. Once agian, Layering in Adobe Illustrator let me control which parts get printed when, so I could print one at a time and adjust if needed. The wierdest thing was the draw order for the spars -- the line sequencing skipped around a bit, and the whole thing got lasered twice. No fires, but I had to wash my hands after handling them.

All parts.

Assembly was satifying, tight flush fits eveyrwhere ... until I figure out I had more slots than spars in the airfoil.

Lol, should have printed a fourth spar.