What is the Difference Between STL & OBJ Files for 3D Printing?
There are different types of files for 3D printing, two of which are STL & OBJ files. Many people wonder what the actual differences are between these files so I decided to write an article explaining it.
The difference in STL & OBJ files is the level of information the files can carry. They are both files that you can 3D print with, but STL files doesn’t compute information such as color and texture, while OBJ files have a great representation of these attributes.
This is the basic answer but keep on reading for more useful information about different 3D printing files.
Why Are STL Files Used for 3D Printing?
STL files are used for 3D printing because of their simplicity and compatibility with 3D printing software like CAD and slicers. STL files are relatively lightweight, allowing machines and software to handle them easier. They focus on the shape of models and the external surfaces mostly.
STL files, although finding it difficult to meet up with modern 3D printing demands, are still the popular choice of 3D printing file formats today.
The head start STL files had in the 3D printing world has made them the standard for a long time. For this reason, many 3D printing software is designed to be compatible and be easily integrated with STL files.
Their simple file format also makes it easier to store and process. So, you wouldn’t have to worry about dealing with files too heavy.
If you are thinking of creating an STL file, you will need a Computer-Aided Design software (CAD). There are many CAD software that can be used such as:
Once you have created or downloaded your STL files, you can simply transfer them to your 3D printing slicer to process the STL file into a G-Code file, something your 3D printer can understand.
Can OBJ Files Be 3D Printed?
Yes, OBJ files can be 3D printed by simply transferring them to your slicer, similar to STL files, then converting them into G-Code as usual. You cannot directly 3D print an OBJ file on your 3D printer since it wouldn’t understand the code.
3D printers cannot understand the information contained in an OBJ file. This is why slicer software is important like Cura or PrusaSlicer. A slicer software converts the OBJ file to a language, G-Code, that can be understood by the 3D printer.
In addition, the slicer software inspects the geometry of the shapes/objects contained in the OBJ file. It then creates a plan for the best means that the 3D printer can follow to print the shapes in layers.
You must check the specifications of your 3D printer’s hardware and the slicer software being used. I realized that some users could not print OBJ files either because the slicer software did not support the OBJ file, or the object being printed was beyond their printer’s build volume.
Some 3D printers use proprietary slicers which are special to just that brand of 3D printers.
In a situation where your slicer software does not support an OBJ file, a way around this would be to convert it to an STL file. Most, if not all slicer software support STL files.
Check out the video below to know how to convert an OBJ file to an STL file using Fusion 360 (free with personal use).
Are STL or OBJ Files Better for 3D Printing? STL Vs OBJ
Practically speaking, STL files are better than OBJ files for 3D printing as it provides the exact level of information required for 3D models to be 3D printed. OBJ files contain information like surface texture that aren’t usable in the 3D printing. STL files provide as much resolution as a 3D printer can handle.
STL files are better in the sense that they are more widely used and generally have a smaller file size, while OBJ files provide more information.
Some would argue that the better file for printing is based on the needs of the user. For example, most online 3D models are STL files. This is easier for a user to source for instead of going through the hassle of getting an OBJ file.
Also, its compatibility with many software makes it more convenient for hobbyists.
Some users have stated that they prefer an STL file to an OBJ file because of its simple format and its small size. This becomes less of a factor if you try to increase the resolution because an increase in resolution will cause an increase in the file size. This can cause the file to get too big.
On the other hand, if you are a user who wants to print in color and also appreciates a better representation of texture and other attributes, an OBJ file is the better option.
In essence, I would suggest that you determine your use of a 3D printer. Based on that decision, it would help you pick the best file format for yourself, but STL files are usually better overall.
What is the Difference Between STL & G Code?
STL is a 3D file format containing information that the 3D printer uses to print models, while G-Code is a programming language used to execute information contained in 3D file formats that 3D printers can understand. It controls the hardware of a 3D printer on temperatures, print head movements, fans and more.
Like I mentioned above, 3D printers cannot recognize information (geometry of objects) carried by a 3D format file. It doesn’t matter how good the information is, if the printer cannot understand and therefore execute it, it’s not usable for 3D printing purposes.
This is the purpose of a G-Code. A G-Code is a Computer Numerical Control (CNC) programming language that is understood by the 3D printer. G-Code instructs the printer hardware on what to do, and how to do it to properly reproduce the 3D model.
Things like movement, temperature, pattern, texture, etc are some of the elements controlled by a G-Code. Any changes made to the printer settings result in a unique G-Code being made.
Check out the video below by Stefan from CNC Kitchen.
How to Convert STL to OBJ or G Code
To convert an STL file to either an OBJ file or a G-Code, you will need the appropriate software for each. There are many software out there that could be used.
For this article, I will be sticking to the Spin 3D Mesh Converter for STL to OBJ, and slicer software, Ultimaker Cura for STL to G-Code.
STL to OBJ
- Download Spin 3D Mesh Converter
- Run the spin 3D mesh converter app.
- Click on the “Add file” in the top-left corner. This will open your file folder.
- Select the STL files you want to convert and click “Open”. You can also drag the STL file and drop it into the spin 3D app.
- In the bottom-left corner of the app, you will see the “output format” option. Click on this and select OBJ from the drop-down menu.
- Ensure you have selected the right files by clicking on them to preview on the preview window by the right.
- Select where you want to save the converted app from the “output folder” option. This is in the bottom-left corner of the app.
- In the bottom-right corner, you will see the “convert” button, click on this. You can convert one file or multiple files at the same time.
You can watch this YouTube video if you prefer a video guide.
STL to G-Code
- Download and install Cura
- Open the location of the STL file you want to convert to G-Code
- Drag and drop the file into the Cura app
- You can make adjustments to your model such as position on the build plate, size of the object, as well as temperature, fan, speed settings and more.
- Navigate to the bottom-right corner of the app and click the “Slice” button and your STL file will be converted into G-Code.
- Once the slicing process is done, at the same corner you will see a “save to removable” option. If you have your SD card plugged in, you can save it directly to the disk drive.
- Click eject and safely remove your external storage device
Here is a quick video showing off the process.
Is 3MF Better Than STL for 3D Printing?
3D Manufacturing Format (3MF) is technically the better file format option for design rather than 3D printing since it contains information such as texture, color, and much more which cannot be contained in an STL file. The quality between them would be the same. Some people report issues importing 3MF files.
STL files work great for 3D printing, but 3MF files can be better since they provide unit measurements and surface textures for models.
One user did report that they had issues when trying to send 3MF files into Cura from Fusion 360, which doesn’t happen with normal STL files. Another issue with 3MF files is how they keep a co-ordinate position within your CAD software, which also translates to importing the file in your slicer.
You might find that the position of your model is on the edge of your build plate, or hanging off a corner, so you’ll need to position the model more often. Also, you want to make sure that the height of the model is at 0.
Another user mentioned how when they save 3D models as 3MF and import it into a slicer like PrusaSlicer, it detects mesh errors, but when they save the file as an STL file, it has no errors.
If you do have a model that is significantly detailed, using a 3MF file can be worthwhile, usually for SLA resin 3D printing since it has resolutions up to just 10 microns.
It’s been mentioned that 3MF files are actually smaller than STL files, though I haven’t looked too much into it.
STL
The pioneer of 3D file formats, STL is still quite the celebrity in recent years. Developed by 3D systems in 1987, its use is not limited to 3D printing alone. Rapid prototyping and Computer-aided manufacturing are other sectors that have benefited from its creation.
Pros
- It is the most available and widely used 3D file format
- Very simple file format
- Compatible with many 3D printer software and hardware, making it a convenient choice.
- Very popular, means that more online repositories provide 3D models in STL file format
Cons
- Relatively lower resolution, but still very high for 3D printing usage
- No representation of color and texture
- Arbitrary scales and units of length
3MF
Designed and developed by the 3MF consortium, they make a bold claim that this new 3D printing format will allow users and companies to “focus on innovation”. Given the features it comes packed with, I also think that they are serious contenders for the best 3D printing file format.
Pros
- Stores information for texture and color support in a single file
- Consistency in file translation from physical to digital
- Thumbnails that allow external agents to easily view the contents of a 3MF document.
- Public and private extensions are now possible without compromising compatibility due to the implementation of XML namespaces.
Cons
- It is relatively new in the 3D printing sphere. So, it’s not compatible with as many 3D software programs as the STL file format.
- May produce errors when importing into 3D printing software
- It has relative positioning to the CAD software so importing it can require re-positioning.
You can read more on its features here.