Hello community, I’ll try to be brief. My 13 year old son got a 3d printer as a gift, and I’d like to learn alongside him. We have 0 experience. However, I am a data scientist, so lots of professional Python experience, if that helps. We’re a foss/Linux family so my questions are:
What tools are the best to learn for 3d printing for me? I am ready to learn CAD programming. Can you all recommend a tech stack and resources to learn it?
Before you go the octoprint or other hosted app route, I humbly suggest printing from the SD card while you learn the process engineering to get prints to come out decent. This reduces the number of things you have to learn at once, and the points of failure. The workflow is then simply: (1) acquire or design the model (STL file). (2) slice it (generate .gcode file) and copy to sd card. (3) use the touchscreen to run the gcode file.
You’ll spend most of your fiddling on step 2 since you need to learn what temperatures and speeds work well.
To expand on this, also wait to do any big modifications to the printer until you familiarize yourself with it and again, are able to get decent prints. Nothing is worse than starting out with something new and not knowing whether your issues are caused by a lack of experience or something you changed yourself.
Depending on the printer going for klipper directly might make it easier to use. Being able to have the abl probe and calculate what adjustments need to be made makes life so much easier.
Hi there. I’m something of a 3D printing veteran, I’ve built a dozen printers, had a side gig maintaining printers for a small manufacturer, done all kinds of crazy crap with 3D printing.
I see from other comments you have an Ender 3 Pro. Decent little machine, should be lots of fun.
The biggest advice I can give you is: Watch the thing print. You can learn so much just by watching the thing print. Especially if something is going wrong. Sit there and watch it like television. It will give you this great sense for how the printer works. It’s not a Star Trek replicator, physics is happening while the part is halfway done. Heat, inertia, gravity, they’re all factors.
Download stuff from Thingiverse to print out. There’s lots of godawful models out there written by people who don’t have a clue what they’re doing. They’re extremely instructive. I found a cool little low poly skull that was modeled tilted at a slight angle to the axes, so the bottom layer was at a very slight angle to the bed and it tried to print the thing uphill. Print stuff out, watch it fail. Learn.
As for a tech stack: I’m a Linux guy myself. My current favorite workload is FreeCAD and Slic3r.
FreeCAD is very powerful, if a bit clunky. The UI is written in Python, and it leaks into the user experience a bit. Start using the parametric features, especially referring to the built-in spreadsheet in your sketches, and you’ll start to recognize it. I’ve also used Fusion360 and OnShape at various points in my career, and learned things from both, but I do all my 3D design work in FreeCAD now.
Most slicer software works on Linux, even Simplify3D does. I’ve used many of them over the years, and they all do a pretty good job. Try several out, you’ll find most of them in your distro’s package manager.
One thing I would suggest: Learn a little bit of G-code. Reasons why: It’s useful when diagnosing problems with the machine, and it can be handy to customize the start of print and end of print routines. Like when you start a print, and it heats up the bed, then it heats up the nozzle, then it homes the axes, and maybe ejects a little filament to clear the nozzle…that’s all G-code that the slicer software appends to the .gcode file. Usually there’s a text field somewhere in the settings that lets you alter it.
Thanks for this. I was initially thinking of starting with OpenSCAD but FreeCAD was another contender. Perhaps I need to go with whichever has the best documentation, examples, and learning resources.
TinkerCAD is free and browser-based. It’s remarkably powerful for something that’s basically explicitly supposed to be simple enough a child could learn to use it.
And I’ll second trying to understand some G-code. When a malfunction causes your print to stop cleanly midway, pretty much your only way to salvage it is to figure out which Z-layer it malfunctioned at, and directly edit the G-code to start where it left off. It’s finicky, but a lifesaver on large prints. Nothing is worse than 30 hour print failing 80% of the way in.
OpenSCAD is rather unique; you draw parts by programming them in code, which I never personally hitched horses with. Neat if gimmicky idea.
FreeCAD is trying to be all things to all people and achieving it extremely slowly. You can code parts in Python, and it has an OpenSCAD workbench, though my personal preference for workflow is Part Design; drawing 2D shapes and then extruding them into 3D.
Blender is another option, probably preferable for hand-sculpting/art/etc.
For me, I design with Fusion360 and I slice with Cura (I have a Creality Ender 3 Pro v1). Honestly, I think the biggest learning curve for me was learning all the little changes and optimizations that you have to make to get the printer to print well. So I’ll just collect a bunch of the little tips that I’ll learned:
- When designing, try to think about the orientation of the thing you’re printing. ie, do you plan to print it standing up or laying on its side? This will influence its strength (if you plan to use it for engineering projects), since 3d prints are generally pretty good at handling compressive forces but are weaker at handling shear forces along the z-axis of the print (ie, across different layers).
- Printers are generally able to print up to 45 degrees for overhangs without needing supports, so you can try to orient your part around to minimize the need for supports
- The times when a print is most likely to fail are when the printer is printing the first couple of layers. If you see a print successfully complete the first, say, 3 layers without mistakes or detaching, you can generally be pretty assured that the rest of the print will be fine.
- Bed adhesion can be an issue until you optimize settings for it (ie, the print detaches from the bed during the print). First, check for dust on the bed. Second, I find that it really helps if you use 2 different bed temperatures during the print. You may have to dig around in your slicer’s settings, but there should be an option for “initial layer temperature.” I find that for PLA, a good temperature is 200C for the nozzle, 65C for the initial bed temperature, and then 50C for the regular bed temperature (ie, the bed starts off at 65C, and after the printer finishes the first layer, the bed drops down to 50C for the remainder of the print).
- Additionally, it can also be good to slow down the print speed for the first 1-2 layers. Again, you’ll have to dig through your settings, but what I prefer is 80 mm/s travel speed, 25 mm/s print speed for the initial layers. With these settings, I find that I basically never need a brim or an adhesion support - the print itself actually sticks onto the bed a bit too well, making it somewhat hard to remove after the print is finished, which is a good problem to have when it comes to 3d printing
- The auto-bed leveling on your 3D printer is nice, but it’s not a replacement for manually leveling the bed. Manually level the bed before every print, since taking off your last print from the bed has the tendency to make your bed not level. Then, after manual leveling, do an auto-bed leveling to remove the remaining tiny variations in the bed level
- Use gyroid for your infill pattern. It’s just better than the default.
- Enable filament retraction during hops - it helps remove a lot of the strings left behind when the nozzle moves to a different location of the print. I also like to have a z-hop height of around 0.4 mm just to make sure there’s no strings
- When I got my printer, my bed was wobbly. I think you got the same printer as me, so it could be worth checking for that. For the longest time I assumed that that was just how it was, and then wondered why my prints were coming out so strange. If you see bed wobbling on your printer, you should tighten the wheels (not the leveling knobs) under the bed. There should be instructions on ifixit for how to do that
The auto-bed leveling on your 3D printer is nice, but it’s not a replacement for manually leveling the bed. Manually level the bed before every print, since taking off your last print from the bed has the tendency to make your bed not level. Then, after manual leveling, do an auto-bed leveling to remove the remaining tiny variations in the bed level
Depends on your printer, I think. Mine is quite happy being leveled only after nozzle changes, and the autolevel is Good Enough.
Designing stuff: FreeCad and OpenSCAD. Lots of YouTube material for educational purposes.
Regarding the printer, this depends on the make/model/manufacturer, but the more serious people (not starting a flame war here, just my observation) tend to use Klipper. Most printers run some form of Marlin, but most can run Klipper as an alternative firmware.
And there are the slicers… A huge amount of choice here, but one way or the other, most are forks/spinoffs of previous work. Personal choice here is SuperSlicer, mostly due to its interface and me being too lazy to use OrcaSlicer of one of the other options.
But beware: tuning, measuring adjusting will take a lot of time. And the entire 3d printing community likes is.
I actually use Blender to 3d design. I guess it’s easier for me? Maybe I’ll give the other ones a shot.
I use OpenSCAD to have a declarative method to ‘design’ boxes for my electronic projects. So boxes and lids with hinges and stuff.
When I need something with accurate measurements but a more complex design, FreeCad is the go-to tool. Sprockets, PS5 controller loading-station, bolts and nuts.
Blender probably can be used too, but I have never used it.
Look into OpenSCAD. It’s a declarative language you can use to do 3d modeling. I suck with graphical programs like Fusion and Blender but I’m a programmer, and OpenSCAD has made my life a lot easier.
OpenSCAD is great for programmers because you write code to generate 3D objects. If you love Python there are ways to write Python that then generates OpenSCAD code, so that may be worth looking into.
I’d find a good YouTube Channel like Makers Muse or Make With Layers for some beginner tips and tricks, that really helped me when I was starting out to get into the lingo.
As for software suggestions. Follow the recommendations from the manufacturer for the printer for software. Using Printables or Thingiverse for models to start with. At least to get started.
Then understand what printer you have. There is a world of difference between an Flashforge Adventure, Ender 3, and Prusa Mini.
After printing some fun models like a Benchy, try making your own stuff you’ll have a good feel for what’s a good print once you’ve printed other models, and have a few failures.
My software recommendations are as follows:
Modelling software for the teen: TinkerCAD, it’s free, it’s simple, and there are hundreds of tutorials going over how to use it. The software feels limiting for the experienced, but for a newbie it’s not bad
Next steps: Google Sketchup is another free software, still limited but has a lot of resources and is a good intro into cad.
For you: Fusion360, I think it’s still free, but with heavy restrictions. But from the last I checked it still has all the tools you need to get started. Plus it’s well documented with dozens of tutorials and guides.
My Software: I use to use Fusion, but I moved to FreeCAD. Made with layers goes over why this isn’t the best software and it’s many many issues. But for me I personally love using it with the sheer precision and control I can get with my designs. It’s not for beginners and the documentation is poor, with virtually no tutorials. I’ve done a small write up for how to get started before so check my comments if you are interested.
Otherwise Cura or PrusaSlicer is to get your models to print.
I never fully got into 3d printing, but I got far enough that I designed a lot in openscad. This was 10 years ago, and it was really popular back then, and might still be.
What kind of printer is it? The more-experienced-than-me folks will probably be able to point you in the direction of specific resources depending what type of printing you’ll be doing.
When we first got into printing I taught my husband the basics of CAD with Fusion360, and after a bit of wrangling with the unintuitive controls he found it pretty easy to use. It’s free for personal use, which is the main draw, but also it makes it easy to share designs with each other. That said I’m sure someone will be along to recommend a FOSS alternative because this is Lemmy after all.
Mainly I just wanted to say welcome to the gang and have fun printing a load of stuff you didn’t even know you needed! :D
Thanks! I think it’s a creality ender 3 pro
I have a home lab running two docker hosts, does it need to be dedicated hardware, or would this work?