Software Development and 3D printing
As programmers, we’ve all been in a situation where we code for hours and hours, and we’re so enveloped with our program that we don’t even notice how we missed lunch, dinner, our friend’s one act (sorry!) and our bus to go home. The code is not tangible, and sometimes very abstract in the form of programs and invisible processes through our computer.
Haven’t you ever wanted your code to come to life? Well, one area where our code becomes physically manifested is in 3D printing.
For those of you that haven’t encountered 3D printing, it’s basically magic…
Well, sort of. 3D printing is the making of a 3D object using a digital model on a computer. What’s so magical about 3D-printing is how we can make any object in our imagination come to life.
Seriously though, whatever you picture in your head can become a real thing. 3D printing is basically a genie here to grant your wishes.
Want a unicorn? You got it:
Have a broken heart? No problem:
Aliens attacking the planet? Already on it:
What’s even more amazing is the precision and accuracy the printer has to make things. Any shape, color, and texture is available to help customize your design.
The process a 3D printer uses is called additive manufacturing (AD), where the machine layers material to form a specific object.
How does this relate to coding? Well…
Just like our programs, 3D printers use code as instructions on where to layer, with what temperature, and at what speed.
We first start with a CAD (computer-aided designs), which is a blueprint to how the object will be made. This model is then saved in a file that can be converted into something a printer can read and use.
Usually this means an STL file, although there are other formats, such as OBJ, AMF, PLY, and WRL. The file then needs to be converted into G-code, or geometric code, through a slicer program. This code is written in a programming language the printer understands and uses.
Let’s look at some now:
Simple right? Each line starts with a command for the printer. In this case, G1 is the command to move in a straight line. Then comes the coordinates on the X,Y,Z plane where the nozzle of the printer needs to travel to. Lastly, we have the feed rate (F3000.0) as well as the extrusion rate (E0.0377). These settings tell the printer how fast the nozzle needs to travel to the coordinate, as well as at what rate should the nozzle release the building material.
There’s a bunch of other printer commands for the movemenr of the nozzle. However, there is also code for turning on fans, setting bed and nozzle temperature, and selecting different nozzles. Here’s a table of what each command means:
There is also code to warm up the printer, as well as to cool down the printer and set it back to default.
Lastly, the slicer sends the G-code to a 3D-print host in order to print the object.
So, you’re probably thinking…this is wonderful Diego, but if 3D printing is a dream come true, why can’t I go to the store and print out a Ferrari?
Well, we’re not quite there yet.
While 3D printers have advanced tremendously in the past 20 years, we’re still very far off from having industrial-level printers mass-producing objects and allowing us to purchase these objects at a reasonable price.
The software to identify for potential mistakes before the object is printed, as well as looking at how the object will interact with it’s environment, is in it’s starting stages.
The software to create a universal CAD file reader, splicer, and print host are also still in development. While printing is available, without these quality control programs, it would be very hard to complete large orders and have it be cost-efficient.
However, with that being said, the market size for 3D printing is expected to grow over 150% in the next four years; it is also projected that by the year 2021, nearly 30% of the additive manufacturing software market will be custom to a specific area in the market.
This is where we come in.
The 3D printers have an unlimited potential, especially in the medical field. The idea of being able to custom build objects with a push of a button and in the comfort of our own home will revolutionize manufacturing and consumerism.
If we as programmers become invested in the growing field of 3D engineering, we can literally fill the world with our wildest dreams.