Improving your software workflow can shave vital minutes off your 3D printing process. Here’s how researchers improved the additive manufacturing workflow with RoboDK.
When you’re 3D printing with a robot, your software workflow can have an important impact on your productivity. If you can shave even a few minutes off the workflow, over time this could translate into quite a lot of extra productivity.
The time that it takes you to switch between different software packages is usually short, but it makes your workflow less smooth and, as a result, can make additive manufacturing less efficient.
Researchers from Portugal and Norway recently developed an application to streamline RoboDK’s additive manufacturing workflow even further via the RoboDK API.
Meet the Researchers
This engineering application was developed for a study by researchers Filipe Monteiro Ribeiro and J. Norberto Pires from the University of Coimbra, Portugal, and Amin S. Azar from SINTEF — Norway’s leading center for manufacturing research.
What Were the Researchers Trying to Achieve?
RoboDK is a great way to add robotics to additive manufacturing. We’ve already seen people use it for printing a diverse array of objects, including 3D printed concrete structures, 3D printed art, and 3D printed food.
The 3D printing workflow is already quite good in RoboDK — you simply generate the GCODE with a slicer software (commonly the open source Slic3r) and then load the resulting path into RoboDK.
However, the team of researchers identified that RoboDK alone does not provide the most streamlined workflow possible. Their study outlines a program they developed to directly combine the capabilities of RoboDK and Slic3r without having to manually move G-code files between the two programs.
To achieve this, the team developed a graphical program using Python and the RoboDK API.
The goals for this study were:
- To develop an additive manufacturing simulation — This is particularly easy with RoboDK, which provides an intuitive environment for robot simulation. The team also added a simple Python program to simulate the deposition of 3D printed material, as this is not something that RoboDK currently simulates itself.
- To allow for offline simulation of robots — According to the researchers, this was an essential part of their application as using a virtual environment reduced the risk of damage to a real robot. RoboDK makes it very easy to turn the simulated robot program into code for the real robot via its numerous post-processors.
- Asynchronous operation — It was important for the team that the program they created did not interfere with the operation of the simulated robot in RoboDK. For example, the simulation should continue running when the program was loading a new model into Slic3r. This is easy to achieve using our robolink Python module, which provides an asynchronous link between RoboDK and any Python program.
The resulting program sits between Slic3r and RoboDK and coordinates the additive manufacturing process.
What Did the Study Demonstrate?
The team’s application made very good use of RoboDK’s capabilities. In particular they demonstrated how effective it can be to use the API to combine parts of your own workflow.
The RoboDK API is a very powerful part of RoboDK, but it is not used by many of our users. This is unfortunate as it can help to significantly improve the smoothness of your robot programming workflow. It supports several programming languages, but the Python library that the researchers used is particularly easy to use — assuming, of course, that you like the Python programming language (and why wouldn’t you? It’s such an easy language!).
The Advantage of Asynchronous Operation
One of the key aspects in the study was the asynchronous operation. It was important for the team to ensure that no part of the program would stop the operation of another part of the program.
RoboDK already runs in an asynchronous manner — you can run multiple Python scripts at the same time and they won’t interfere with each other — but the team needed their own program to also have this asynchronous capability.
For example, they did not want their program to “hang” when waiting for Slic3r to finish generating GCODE. They needed to be able to control the robot while the program was doing other things. They achieved this with the asyncio library for Python which is a popular option for concurrent programming.
How to Improve Your Own Workflow With the API
Although the study was performed by robotics researchers, don’t think that this means that programming with the RoboDK API is complicated. Even if you’re not a programming wizard, you can easily use the API yourself.
If you want to develop your own program to boost your workflow, you can follow the following steps:
- Become familiar with the API via the documentation page. Read about its capabilities and think about what you could use it for in your application.
- Plan what parts of your application you will code in the external program.
- Create your program using the API to interact with RoboDK.
- Test your program before integrating it into your process.
Of course, you don’t need to write your own code to improve your workflow. You could also use the RoboDK plugins for programs such as SolidWorks which also streamline the workflow when you are using other programs in conjunction with RoboDK.
But, as the team of researchers showed, the API can be very effective in smoothing out disparate parts of your workflow for software that does not already have a plugin.
Remember, even shaving a few minutes off your programming process could lead to extra productivity in the long term.