Open-source Grasshopper definitions for 3D printing with a UR robotic arm, tailored for various extrusion processes
This repository contains Grasshopper definitions designed for 3D printing with a robotic arm, specifically using a UR10e and the Robots plugin by Visose. Each script is tailored for different aspects of the robotic extrusion process, with illustrations provided for each definition.
The field of computer-aided design often lacks cohesive resources for robotic arm applications, with existing materials being scattered, disorganized, or closed source. This project addresses these challenges by offering open-source tools and comprehensive documentation. I designed these scripts as part of my work at FAU to help set up the robotic lab from scratch.
All scripts share a common base setup for the tool and system, including choosing the robot, setting parameters such as speed and extrusion rate, and providing a similar user interface. More scripts will be added over time.
Each script includes detailed comments and annotations to help you understand and customize them for your specific needs. These scripts were tested using a UR10e robotic arm.
- Universal Robot arm (or any 6-axis compatible arm)
- Extruder
- Controller box for the extruder (see my other projects: WASP Clay Kit Controller, MDPH2 Controller)
- Rhinoceros 3D Grasshopper
- Robots plugin by Visose
- Extra plugins: Flexibility, Pufferfish, Parakeet, Human
This script includes everything you need to get started with robotic extrusion on a Universal Robot. It serves as the foundation for the other, more specialized scripts.
Designed for printing non-closed objects, this script creates vertical zigzagging, which is useful for portions of an object with a hole. It can be used in addition to the standard closed curve technique. Applications include creating a two-part mold of a column or a shape with a vertical opening from the side.
This script allows for the adjustment of seam points in an object. The end points of a curve are relative to an adjustable attractor point, enabling you to hide the seam or place it in a convenient location. It also helps fix random endpoint errors that can occur during contouring. For example, bypassing this part of the script can reveal path errors.
This definition enables jumping from one curve to another and stopping/starting the extrusion command when printing complex shapes. Steps to use:
- Split your shape into multiple parts to isolate the zone requiring jumping.
- Set up the jump height.
- Set up the position of the extrusion ON/OFF command for the jump. An offset can be added if the extruder is unpredictable. Overlap can be useful.
This script slices your BRep with tweened surfaces automatically generated from the BRep. You need to create a curve at the center of your volume, from bottom to top, which will be used to generate one or more surfaces to control the planar orientation of the toolpath. For meshes, additional smoothing operations and threshold controls are required to avoid open curves.
This script provides variable speed or extrusion rates to compensate for localized differences in layer height in certain areas. Define a curve as an attractor for variable speed and adjust the Bezier curve on the GraphMapper to control the speed transition precisely. A color gradient helps visualize the speed.
RoboticPrint_Basic_Script-light.mp4
RoboticPrinting_Open_Curve-light.mp4
RoboticPrinting_Seam_Ajustment2-light.mp4
RoboticPrinting_Jump_Between_Curves-light.mp4
RoboticPrint_Non-Planar_Extrusion-light.mp4
RoboticPrinting_Ajustable_Speed2-light.mp4
RoboticPrinting_Ajustable_Speed_1-light.mp4
Contributions and suggestions are welcome! Please submit a pull request or open an issue to discuss any changes or improvements. You can also contact me.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Special thanks to Luigi Pacheco and Bhavleen Kaur from the FIU RDFlab for the tips.
This project was developed on my own initiative at the School of Architecture of Florida Atlantic University within the Environmental Design and Natural Materials lab, directed by Shermeen Yousif.