How to Use 3d Sketch Planes to Draw Coplex Forms
Step 1: A Alert
At the very start, I want to let you know: this is going to exist one of the hardest, about esoteric 3D printing tutorials I've written yet.
You'll have to download a few random pieces of software, do visual coding of reckoner algorithms, and there's fifty-fifty some Maths.
So I'yard marking this tutorial:
You've been warned.
Things are going to get weird from hither on out.
Step ii: Why are we doing this?
Objects reflect how they were built.
If yous picked up an object and the outside looked like this, you would immediately know where it came from:
And if y'all picked up something that looked similar this:
And then recently I was at a trade show and I saw a LOT of things that looked similar this in a competitor'due south berth:
And if yous've been in the industry a while, you lot know that's sort of the 3D press 'look', right?
Semi-random, sort-of-repeating structures that could NEVER be machined, inside a larger controlled shape, is how we allow you lot know something is 3D printed.
As an industry, it's sort of go our 'aesthetic':
(That final image of the bunnies is from user u/tawmaraff in the fun subreddit r/3Dprinting, which is worth checking out for more than of this sort of thing.)
Let's have those two pink bunnies equally an example. I realized I could figure out how to make the faceted one on the correct, by just reducing the poly count in my design software:
But I realized I had NO IDEA how to create that complex bunny on the left!
Or that crazy white gyroid shape above!
I work in 3D printing but had no thought how to automatically generate the circuitous '3D Printed look' that most of the industry uses as our standard! That'south like a leather worker having no thought how to make a cow.
So that's why I started this journey: to learn how to have whatever CAD shape I can design and fill it with circuitous '3D Print looking' semi-repeating structures, and so impress information technology.
To do that, nosotros're going to have to download 2 new pieces of software.
Footstep 3: Downloading Rhino and Grasshopper
There are plain many ways to go this effect (since a lot of people do it) but I'm going to show yous the ane most accessible to me. (If you take better ideas, don't be agape to mention them in the comments!)
Start, get a copy of the 3D CAD bundle Rhino.
(I'one thousand using Rhinoceros version five because that'southward the license my company has, but Rhino version 6 is the well-nigh recent.)
If you don't want to buy a $995 license of Rhino merely for this tutorial, you can download an official
90-solar day evaluation versions of Rhino 6 hither, and the
official 90-twenty-four hours evaluation versions of Rhino 5 hither.
You lot should be able to go through this tutorial in MUCH less than 90 days, and hey, then you'll know a little Rhino for your next job!
Simply Rhino is just a CAD system. Unless we want to sketch and cutting all those circuitous shapes out of our model Past HAND, nosotros'll need a flexible, editable plan to automatically do the grunt piece of work for u.s..
In this case, that's Grasshopper, an open-ended visual coding language plug-in for Rhino:
Luckily, at that place is no license or cost associated with Grasshopper, and then you can just download and run information technology if you have Rhino! (Rhino half-dozen automatically includes Grasshopper, Rhino 5 requires a download here.)
There are many other plug-ins for Rhino, and they all seem to have fun animal names (Weaverbird, Flamingo, Penguin) only these are the simply two nosotros're using. (FOR Now.)
You tin can tell you've done this step correctly when yous can open up Rhino and type in the control 'Grasshopper' to get a carve up window:
Now, let's set a file for Rhinoceros use.
Stride 4: Preparing your model for Rhino
This step is something yous can do in any CAD software you have, but I'm going to do it in SOLIDWORKS, considering I know that organisation much better than Rhino.
What nosotros're trying to get is a model that has, at a minimum, three bodies inside it:
The reason we're doing this is considering, if you don't, subsequently you utilise Grasshopper to brand your eye torso all complex and lattice-like, it will have hundreds of jagged niggling lattice beams sticking out all along its edges, which make it a pain to agree, to use in an assembly, to attach to other models, etc.
Past having three bodies, after we lattice the middle 1, nosotros will be able to merge it back with the inner and outer bodies to control what our part borders look like.
If you don't have a hole in the middle of your model, I suppose y'all could get by with not having the inner ring body. Simply the in a higher place 3 body rule prepares you lot for most any blazon of shape.
Here'due south how I do it:
Using a Split feature, there is no overlap between your bodies, they are line-to-line perfect. But having gone through this process a few times, I'1000 mostly convinced that a niggling bit of book overlap will brand things easier to merge at the end.
Just this is the way I showtime did it, and if you get to the cease and your specific bodies don't merge well in Rhino, consider coming back hither and adding more overlap between your three bodies.
Once yous've got your model every bit a 3 trunk STL, STEP, or Rhinoceros file, nosotros can move on to some quick grooming in Rhino.
Footstep 5: Preparing your model for Grasshopper
At present that nosotros've brought our 3 trunk model into Rhino, there are iii quick things nosotros need to do to prepare the model for Grasshopper:
- Put each trunk on a unlike layer
- Make a copy of the center torso
- Explode the center trunk into surfaces
Putting each body on a unlike layer makes it easy to hide/show/color/merge them afterwards we're all done:
Making a re-create of the center body gives yous one to keep as the original (which you will need for a boolean later), and i to explode into surfaces (which Grasshopper needs as a starting signal).
Finally, take the copy of the heart trunk y'all only made and "Explode" it into surfaces:
Okay. At present we're finally ready to leap into the deep finish and use Grasshopper.
Step 6: Using Grasshopper to Create Voronoi Structures
Most of what'southward in this section I learned by watching YouTube tutorials on how to program Grasshopper.
And so subsequently reading my steps beneath, if you lot want to go to the source and watch someone create a similar Grasshopper program in real time, here'southward an excellent starting signal, from user "Parametric Business firm".
(In essence, I'm giving you a text based version of the useful parts of 2-iv videos, with additional commentary and lessons learned specific to 3D printing. It's useful to watch those videos too, if you lot actually want to become good at this.)
Grasshopper is a visual coding language, so instead of writing text similar:
x: Print "Hi World!"
20: GOTO 10
we're going to connect boxes with petty arrows on a large sheet.
Here's how Grasshopper looks when y'all commencement open it:
And if I wanted to create a program that scaled a Rhino surface by 2x, I would write:
And correct away, the power of Grasshopper is credible.
I can put ANY Rhino surface I want into that get-go orangish box, meaning this simple program is infinitely reusable.
With just a move of that slider, I tin can change from a 2x, to 3x, to 4x scale, fifty-fifty 0.5x or 0.1x.
And the output of the program is geometry that can go into OTHER Grasshopper functions, significant I can easily chain many, many piffling modules like this together to become complex, repeatable results!
And then right now, you're asking yourself: "How would I know that the number command is called 'Number Slider' and non 'Input', or 'Variable'? And how would I know calibration is called 'Scale' and not 'Enlarge'?"
And that'due south the biggest challenge of Grasshopper, I've found. It's got Then MANY options, to handle every type of geometry Rhino might have (points, curves, surfaces, meshes, solids), every sort of math you lot could practice, every sort of transform and state of affairs, that just FINDING the correct command is the hardest role.
(This is why videos like the one from Parametric Firm are so valuable to watch, to build your Grasshopper vocabulary. Recommend you check them out!)
Three quick notes here:
- To add a control to your Grasshopper program, double click on the sheet and starting time typing in the offset few letters, information technology volition auto-consummate pretty quickly.
- To input geometry from your Rhino screen, select that geometry, then right click on the Grasshopper control and cull "Set I Surface" or something equivalent.
- To link one command to another, only elevate the end nub of one command (on its right) to the showtime nub of another (on its left). Information technology will snap in place hands!
So permit's outset walking through that video and putting in the commands. I'm going to do a divide screen from here on out, to show you the Grasshopper command and the temporary result in Rhino.
First, we desire to choose our top exploded surface and make a rectangular plane which has the aforementioned dimensions, to act as a 'limiting boundary' for our complex lattice:
(If you left click on a Grasshopper command it should requite y'all a green preview of that selected command. Don't worry- the temporary green geometry is not 'baked' into Rhino yet.)
Notice how our dark-green rectangular surface seems a LOT bigger than the curved, exploded surface nosotros started with, fifty-fifty laid flat? We'll see why that'south happening a lot later.
Next, nosotros want to Populate that new flat Geometry with around 200 random points:
(You lot guys are doing these steps forth with me, right? Because you won't larn anything if you're not doing them with me.)
Next, we want to accept those 200 random points and draw a "Voronoi" diagram around them.
Become used to typing the discussion "Voronoi" considering it's a huge step in creating these complex, semi-random lattice structures we're looking for. Essentially, a Voronoi diagram is a line that's as afar from the ii points on either side of it. Read this Wikipedia article to learn more.
Luckily, Grasshopper has a simple command for Voronoi diagrams:
I think nosotros need to capeesh this for a second. On my computer, that Voronoi command made that circuitous, controllable, repeatable light-green Voronoi pattern from 200 points in less time that information technology takes me to type these bold words.
(Grasshopper is an immensely powerful add-on for CAD, and I think I'm going to be using information technology for a lot more projects from here on out!)
The video does a neat play a joke on here (5:20), and uses our flat plane surface to make a curve, which acts every bit an outer purlieus for our Voronoi diagram:
Merely we've all the same got just a theoretical, infinitely-thin lattice on our plane. We need to go far thick enough for our printers to actually print!
And so at present we're going to utilize a 'Scale' characteristic to give it some width, making a real lattice:
(Ane fun thing about Grasshopper is that yous tin can adjust those sliders, like that 0.85, and your graphics will update in real time! It will stress your graphics carte du jour if yous exercise it likewise much, merely if you want to see different thicknesses of your lattice, play around with it now!)
Now we're going to accept that collection of scaled curves (still but dissever curves) and knit them together, using a 'Purlieus Surface' command.
We are going to feed that purlieus surface 2 things: the curves nosotros just get-go with the Scale, and the original rectangular curve from our original bounding airplane (command #four).
To brand two inputs feed into the aforementioned control, merely SHIFT+drag the second input arrow into the Curve characteristic:
Notation: SHIFT+dragging a second input into our new Bend feature makes a matrix of inputs inside that curve command, similar in that location'southward a (0,1) list of the original rectangular bounding airplane bend added to a (0,200) listing of all these offset Voronoi curves, resulting in a 4x4 matrix like (0,1; 0,200).
We simply desire ane, 'flat' matrix going forward, so we have to right click on the Curve feature and 'Flatten' it (#13 above).
If this seems confusing, information technology was at get-go for me too. To recap, for this step, you are going to:
- Make a new Curve command (#12)
- Elevate the output of our Scale feature into it
- SHIFT+ Drag the output of our bounding plane (#iv) into it
- Right click on the Curve feature and Flatten it into one matrix (#13)
- Add a Boundary Surface command (#14)
If you're nevertheless dislocated, this happens in the Parametric House video at 7:00.
Whew.
Nosotros're almost in that location.
By now, yous should have a boundary Vornoi surface that looks like this:
All we accept to exercise is extrude it, map information technology dorsum onto our original shape, and so do some booleans!
Let'southward Extrude information technology in the Z management, with a little slider that lets the states control how high information technology goes:
And at present nosotros're going to 'Surface Morph' it back onto our original curved surface, with a few sliders that let u.s.a. control where exactly how far it goes:
That looks like a lot, only it's just using the output of our extrude, setting one surface similar we did at the beginning, and making 3 sets of domain sliders.
Hither's where you should be afterward that surface morph:
If you lot're having problem getting there, correct click on the Surface Morph command and 'Reparameterize' it:
Information technology's interesting to see how the U domain sliders impact where our shape morphs to. Here's a comparison:
So past changing those sliders, we can have the Morph cover every bit much or as little of our original body that we desire! (Good if you only want to Voronoi a certain section.)
And at present we've finally solved the mystery of why our original bounding plane (#4) was SO BIG compared to our exploded curved surface. It seems similar, in Rhino, a curved surface goes all the way around in a circle , and we're only seeing a trimmed section of it on screen.
This is why, the 0->1 morph goes all the way around that aforementioned circle, since we're telling information technology to use ALL of that domain.
Okay, pretty close to washed.
To get the Voronoi department to overlap with my model for a boolean, I'm going to Movement it downward in the Z direction (the management and amount you move it will change depending on your specific geometry, which is why I used a slider):
And we're washed!
Correct click on your final Move command and "Bake" that Geometry into any Rhinoceros layer to make it real, permanent Rhino object!
(It volition ask you which layer to 'Bake' your geometry onto, I usually have a layer created specifically for that. You can delete bad bakes more easily that manner.)
Pace 7: Merging Bodies in Rhinoceros
The final Voronoi construction from my terminal Grasshopper step was a piffling too spread out for my artistic tastes, then I went back and increased our number of points from 200 and made the kickoff a little more dense to make information technology await nicer:
That'due south the great thing about Grasshopper- it's generating all the geometry every time yous change a slider, and so experience gratis to edit any sliders right at present and re-bake your result earlier standing on!
(You tin can also use your saved Grasshopper script on a totally Unlike CAD file, just by opening a new file in Rhinoceros, saving hours of time!)
At present that we have REAL geometry, the first matter I'yard going to exercise is a Solid Intersection of our Voronoi shape with our original eye body (not the surfaces, but the existent middle trunk solid) to get:
This is getting actually cool.
And remember how I made yous have an inner and outer ring, way back in SOLIDWORKS? Look at that intersection we just made, with all those jagged outer edges. This is when the 3 torso method pays off, because now we do a Solid Union with those other two bodies:
(Ane more of import note here: DELETE ALL YOUR SURFACE BODIES before press. Otherwise they'll fill up in all the gaps we simply made!)
And if yous consign that result to your full color, high resolution Stratasys J750 printer you become...
Step 8: Printing!
That is exactly what I was looking for, when I started this project.
I started with a precise, curved CAD shape, used Grasshopper to 'Voronoi' my insides, and still accept my smooth, defined outer borders, to make sure information technology fits into whatever assembly I want!
And with the script written I tin exercise it again immediately, to any other CAD trunk I have!
I used Rhino to throw on a 'desert texture' and:
That'south pretty satisfying, knowing I can control the texture AND the Voronoi blueprint on nearly Whatever model I want to print.
Simply we tin can get even further.
Footstep 9: Going Farther
At that place is some other good YouTube tutorial from Parametric House about "Voronoi Attractors", which let y'all cluster your Voronoi points in a certain circle, to make your grid more dumbo in any area you wish.
I'k not going to go through that video step past step, but the full general gist is y'all are adding to your Grasshopper program:
- A) a Graphical interface to move the center of your circumvolve around,
- B-C) Sliders which say how big the circumvolve is and how many new points are in information technology
- D) a second Populate Geometry command, the output of which you will SHIFT+drag into your existing Voronoi command, to add to your original points.
Hither's how it looks added to your existing code:
(Watch that video if you desire to see that added, step-by-step.)
With that done, yous tin now add a 'cluster' of Voronoi points like this (and notice how much lag there is between my input and the upshot, showing how difficult my graphics carte du jour is straining!):
Texturing that issue and printing that file on a full-color J750 results in:
That smaller amassed area can be ANYWHERE in my model I want, at any density, and this is repeatable, for many different models- THAT'S the power of Grasshopper + Stratasys 3D printing!
There is even Some other plug-in for Grasshopper called "Weaverbird" and if y'all desire to make 3 dimensional lattices (instead of the extruded and morphed 2D grids we're essentially making). There's another Parametric Firm tutorial showing how to use Weaverbird too (I'chiliad going to accept to run across these guys sometime!) and if you go Weaverbird + Grasshopper going, you tin do things like THIS:
(A notice to employers: those two last Weaverbird examples were created by our Leap intern Anthony Valle, a senior at Suffolk University. If yous're looking for someone to rent who eagerly jumps into 3D printing complex shapes, let Anthony know!)
So some of you are probably asking, "But none of these are useful prints. What can we actually DO with all of this?"
Well, if you lot play around with Voronoi programs, texturing, and multi-textile 3D printing for about a calendar week, you can make something like this:
That's a Voronoi + galaxy textured top, printed on a prototype video game controller, and lit internally. If yous desire to larn how to do something similar THAT, I've got a tutorial on that as well.
The point is, at that place is a LOT more exercise to, once yous've got the basics of this workflow bustling!
To assistance y'all get started, if you desire to download any of the SOLIDWORKS, Rhinoceros or Grasshopper files I've used in this tutorial, go to this GrabCAD Library.
And if you have whatever questions on how Stratasys software and printers tin can get you similar results as those seen above, you lot can ever e-mail me at shuvom.ghose@stratasys.com.
And if you desire to larn more virtually the affordable, Total-color printers used to make these models that can sit right next to you in your role and churn out models, cheque out our new J55 printer at this link.
Hope this helped!
mcgriffyourbithes.blogspot.com
Source: https://grabcad.com/tutorials/how-to-3d-print-complex-semi-random-lattice-structures-easily
0 Response to "How to Use 3d Sketch Planes to Draw Coplex Forms"
Enregistrer un commentaire