3D printing with Grasshopper

I am learning Grasshopper for 3Dprinting with ABB robot.
Is anyone help me to get started? I can’t get any documentation to know how to use a robot for 3D printing in Grasshopper. What is the best plug in to use? Where can I find some useful documents?

Please help me, Thanks.

Probably good to just go to food4rhino.com and search for “ABB”: https://www.food4rhino.com/en/browse?searchText=abb&form_build_count=1&sort_by=score

There seem to be a bunch of plugins which usually have some example files and tutorials.

Thank you for your Reply, Armin. Now I know what plug ins to use. I would like to know how to generate the toolpath for the robot to follow in grasshopper.

I am learning Grasshopper to be able to use the CAD models to generate the toolpath in grasshopper for a robot to follow to print 3D parts.

I just know the basics so far. Could you guys please help me with some documents and some samples on how I can program the robot for a 3D printing process with robots?

I would appreciate your help!


Hi Gerthie - I’ve been using Grasshopper for several years to design parts for 3D printing. But - my printer is a regular FDM printer, not a robot machine. This means I can use pre-existing and well proven programs called slicers to create the necessary tool path to physically print the geometry that I export from Rhino.

What you need is a program that corresponds to a standard slicer that takes the geometry defined by GH and exported from Rhino as it’s input, and then creates all the required robot control codes (which is more than just a tool path) required to machine the part out of whatever material you decide to use.

Usually the robot manufacturer will have such software, and there should be instructions that tell you what type of input (exported from Rhino) you have to have, what all the parameters that control the robot are (and how to use them), and how to generate the robot’s control code and actually have the robot run that and make the part you designed.

If you identify the robot you have and describe the kinds of parts you want to make you should be able to get more specific information about how to proceed.

Thank you for your help, Birk. I am using ABB IRB 4600 robot for additive manufacturing (3D printing).
My concern is I don’t know how to program the robot in Grasshopper for the 3D printing process.

I think it’s quite a challenge you have set yourself there. Have you used the robot arm for anything like 3D printing with another software, like Autodesk Fusion, before? Robot arms are not for the faint of heart and starting by learning Grasshopper and the robot arm at the same time seems like quite a lot that can go wrong. Did I understand you correctly, that you are new to both?

Anyways, not wanting to discourage you. You might want to start out with one thing at a time, so 3D printing with Grasshopper, controlling the robot arm and then the combination.

For the first part, I would probably get this book or course from WASP about using Grasshopper to directly 3D print using Gcode, which is also what a robot arm uses most likely. Incidentally, we will get a WASP clay printer soon and I will be taking the same course.

With robot arms, I don’t really have any experience or things to point you to, but I am sure some information on it is out there. That robot arm you have sure seems beastly! :slight_smile:

Gerthie - I think you are mixing horses with Buicks. That means you seem to be confusing the function of creating/defining geometry with the process of physically creating geometry.

Grasshopper/Rhino create geometry, meaning they define what the geometry is supposed to look like in the real world. This definition is what Rhino exports, which in the case of 3D printing is an STL file on disk.

To physically make the geometry you need another machine like a 3D printer, milling machine, laser cutter, etc. These types of machines have associated software that can read the Rhino data file and produce a new file that has the commands to drive the machine that will make the phisical part.

From what I can tell from your robot’s website it does not do what 3D printing requires, which is either adding material like a regular 3D printer, or removing material like a milling machine. So I’d suggest you contact someone at that site and talk about what it would take to allow your robot to make physical parts from the geometry you create with Grasshopper/Rhino.

Maybe @osuire is able to give you some pointers.

I also know these people are using robot arms to directly print large objects and floors using grasshopper files:

They have made a proprietary printing solution though.

@Birk_Binnard I think you are also oversimplifying. What he wants to achieve is absolutely possible. Robot arms can be used for 3D printing. All you have to do is attach an extruder to the end of it.

Grasshopper can not just create geometry. It can also directly generate Gcode, which is what a slicer software would normally send to a 3D printer. So no need to export geometry and use another software.

Not saying it’s easy or advisable for someone new to the field, but it is absolutely possible.

Thanks for showing that video Armin - that’s the first one like that I’ve seen. There’s no question that it’s possible to put an extruder and reel of filament on the end of a robotic arm, but I wonder why anyone would do that. In the video the 6 axis robot is printing a vase shape using the same series of horizontal layers my 2 1/2 axis 3D printer uses. So in other words, they took a $5000 machine (or whatever it cost) and turned it into a $450 machine - which is what my printer cost. And my guess is to create the 3D printing GCode for the robot they used a standard slicer like the one I use.

For me the benefit of using a 6 axis device to make 3D objects (like a spoon shape for example) would be to take advantage of it’s ability to move in any direction and make the shape with smooth 3D curves, not just planar ones. If that were possible we’d be able to transform GH/Rhino smooth surface definitions into real world objects that were exact matches for the definitions, and not just close approximations.

And as for using GH to directly generate GCode, I can only say “be careful what you wish for.” Here’s a screenshot of just one of the many pages of parameters my slicer supports:

Of course I don’t use all of those settings all the time, but I print using only 1 type of material, I don’t have to match any pre-existing dimensions, and I can adjust my geometry to accommodate the physical limitations of my particular printer. (I actually do that a lot.) My point here is that it’s not clear to me that any GH definition could support all the parameters needed to support a general purpose machine capable of using 3 axes, let alone 6. (But of course I’d love to be able to do that.)

Hello Binnard,
Yes, it is possible to do 3D printing using robot arms. I am doing good so far. We are using an extruder: Meltio Engine (the robot tool) to print in 3D with ABB robot. We import the 3D model in Rhino, than program the robot in Grasshopper in order to obtain the GCODE that needs to be imported in the real robot for the 3D printing process. Thank you for helping!

Thank you so much! That is absolutely possible. We are using other slicer to get the Gcode. However, there’s some limitations when we need to print 5 axis parts. That’s why we switch to Grasshopper.

Thanks for showing the video!

Researchers have been using GH to control 6-axis robots for ages - In my experience grasshopper definitions provide much more control than any slicer program, but maybe that’s because it ends up just being a tool to write the GCode (and you obviously have to create all your own logic). Slicer programs are helpful but they do limit you to whatever the software dev/designer decided.

For example here’s some 3D-printed ceramics with an extruder attached to a ABB robot, all done using grasshopper → gcode. I was using the robots 6-axis to create patterns on the tile surfaces. Not something a conventional 3D printer could achieve > Luke Ransfield - Nga Kōrero: Reimagining the Design Process. There’s heap more research/examples like this as well.

1 Like

One big reason is scale. These were printed in polycarbonate on a kr150 STUDIO ROLAND SNOOKS
The other is flexibility. The same robot has also used a bandsaw, spindle and I believe now a welding torch. The files are generated in grasshopper

1 Like

When importing a mesh in Rhino, what should be the best components to use in Grasshopper to get X,Y,Z points for the target points of the robot. In fact, I am using contour-control points-polyline, this logic doesn’t work fine.
Please! Any samples?


What’s not working well about it? It’s the go-to technique. Looking in this book I recommended, that is exactly what they use.

I think you should be the one to think of a new technique if the old one does not work for you. We will help you get there in GH, but you have to do the thinking part yourself and show us what you are trying to do and where you are stuck. This forum is not for providing ready-made solutions to people’s problems.

Armin, I agree with you. I attached the files so I can get some help from you and from the other people in the forum.

In fact, I need some help to fix this script. I need to 3D print this part in Grasshopper. I am using HAL Robotics plug in.

I am not sure if the components that I am using are the correct components for the 3D print logic and I don’t know what other steps I am missing to get a correct 3D printing path.

Right now the path is not correct, the robot extrude material on the holes. How can I also fix the the extruder so it can be turn correctly when the robot is doing the path? Is there a special component to use to draw the holes? How can I stop extrusion for the travels? Right now, the robot extrude material everywhere. I am new to grasshopper, please help me. I attached both, rhino file and grasshopper file. I imported the tool and the 3D part in Rhino.

Rhino file:
Essay1.3dm (639.7 KB)

Grasshopper file:
New_Essay3WS_P1.gh (42.8 KB)

Thank you!

1 Like