This post is also available in:
I came across the question the other day while researching a blog post about whether you need to learn programming to be able to 3D print. And the question about programming knowledge, even if it may not seem so at first glance, has its justification.
So do I need to be able to develop software to operate a 3d printer? No, it is not necessary to learn or have learned programming to be able to 3D print. Neither the operation of the printer, nor the creation of designs require programming experience. Nevertheless, basic programming skills offer the possibility of using additional tools.
Basically, a 3D printer can be operated very well without programming experience. It remains a very visual activity. However, when building a 3D printer or if you want to create your 3D models using a scripting language, programming skills can be quite helpful.
Is it necessary to learn programming to be able to 3D print?
No, neither the operation of the 3D printer, nor the creation of 3D models or their preparation for printing necessarily require the knowledge of a programming language. However, it can be an advantage to be able to program at some points in the process.
The 3D designs are usually created with CAD tools. There are beginner tools like Tinkercad, but also advanced or professional tools like Fusion 360 or Solidworks. However, the list of tools mentioned is by no means complete.
The first confirmation that programming experience could open up additional opportunities for you comes right here. If you know how to program, you will not only have the possibility to model 3D models, but also the possibility to program these models by script. You can do that with e.g. Google’s OpenSCAD. I myself use OpenSCAD to create my keychains and cable clips in my store.
If you want to prepare your 3D models for printing using Slicer, you don’t necessarily need programming skills here. The various settings are all set via dropdown menus, text or radio buttons.
Many slicers also offer you the possibility to influence the printer or the printing process before, during or after the slicing process by using the so-called GCODE. The GCODE are essentially the instructions for controlling the printer. Here you will find information such as heat the nozzle, heat the print bed, extrude so and so much material, move the X axis at speed X to position Y, etc.
If you have basic programming experience here, you’ll definitely have an easier time. But even as an experienced programmer, you first have to find your way around the GCODE commands. But this is definitely easier for you with the appropriate experience.
Most printers offer a graphical interface that is quite easy to use. But there is also the possibility to combine your printer or several printers with a print server like Octoprint and manage them via a Raspberry Pi. To install, configure and manage such a print server, it is not necessary to know how to program, but you will definitely find it a lot easier.
And last but not least, there’s the troubleshooting. In programming, you spend a lot of time looking for and correcting errors. So you learn to think analytically over time. This means that with the appropriate programming experience, you will most likely have a much easier time troubleshooting.
So, to summarize once again. No, it is not absolutely necessary to be able to program. Nevertheless, programming knowledge and a little technical understanding make troubleshooting and, above all, problem solving easier if something does not work in the print preparation or in the printing itself.
What advantages do I have in 3D printing if I can program?
The fact that you can program does not necessarily give you any advantages in terms of 3D printing. Neither your designs, nor your prints will get any better. This might make it easier for you to deal with new programs and technical terms when configuring the slicer.
The advantages of basic knowledge of programming are therefore more likely to be found in the 3D printing environment. This means that you have at least one additional option for creating 3D models and you may find it easier to find errors.
Where you might also have an advantage is if you want to open and edit the GCODE file. This may be necessary, for example, to pause printing at a certain point for whatever reason.
Do I need to know how to program to configure a 3D printer?
Here one must distinguish what is meant by configure. If it is to be understood in relation to the printer configuration, i.e. changing any settings of a basically running printer or to the configuration of the slicer in the course of print preparation, then the answer is rather in the negative. You’ll probably have an easier time with some technical terms and understand the context of any options more easily, but that’s about it.
However, if you are planning to build your own 3D printer, then it is definitely advisable to have at least a rudimentary understanding of software development. The various printer firmwares available are basically fully developed, but you will still have to edit at least one or two files in which you make the configurations that apply to your printer.
How do I create my own 3D models without programming?
The creation of 3D models happens in an estimated 98% of cases without programming. The models are usually drawn. There are different methods for this.
If you use Tinkercad , for example, then you have a choice of 3-dimensional objects available. You connect them together or cut one object out of the other and create your new object step by step.
But you can also work with Fusion 360, for example, and either use objects to create other objects as in Tinkercad, or you can draw 2D sketches and then create 3D models from them. You can also use it for completely free-form modeling. This means that you have a model divided into so-called splines and can push, pull or squeeze the individual splines and thus deform the model.
How do I create models with programming?
Actually, I only know of OpenSCAD for this purpose. Correctly one should also mention OpenJSCAD . This is basically nothing else or very, very similar to OpenSCAD, but can be executed in the browser and thus be integrated into your homepage.
You design your model in this type of design by using specific commands in a script to create, for example, a cube or a cylinder of a defined size. You pass the size as a parameter. With further commands you can then connect or subtract these objects from each other.
But you can also use it to create dynamic scripts by defining input parameters. This means that the code for the object to be created always remains the same, but the target object depends on the input parameters.
To make it more understandable, I’ll try to describe it using my personalized keychains. There is an eyelet where the key ring will go in later, and then there is a name or a font in which the name should be written. The keychain looks the same in principle, but due to the name or font is different depending on the order.
Where can I get 3D printing models without programming or drawing?
Well, there are essentially only two options left here.
The first option is, you can exclusively download ready-made models via platforms like thingiverse or myminifactory. Here, however, you will reach your limits relatively quickly. My experience with some of the models on these platforms was that they either didn’t fit the way I would have liked or I generally didn’t find a suitable model for my use case.
The second option is to have someone, such as a freelancer, draw the objects for you. However, this can become very expensive relatively quickly. Of course, depending on how often you need a model and how difficult your models are to draw.
Either way, it gets very boring and unsatisfying relatively quickly. If you bought the printer, but ultimately don’t want to design anything yourself or aren’t willing to learn the ropes in any way, you should have asked yourself beforehand whether buying a printer is really the right decision or whether a printing service wouldn’t have done as well.