this post was submitted on 25 Nov 2023
47 points (94.3% liked)

3DPrinting

15591 readers
8 users here now

3DPrinting is a place where makers of all skill levels and walks of life can learn about and discuss 3D printing and development of 3D printed parts and devices.

The r/functionalprint community is now located at: [email protected] or [email protected]

There are CAD communities available at: [email protected] or [email protected]

Rules

If you need an easy way to host pictures, https://catbox.moe may be an option. Be ethical about what you post and donate if you are able or use this a lot. It is just an individual hosting content, not a company. The image embedding syntax for Lemmy is ![](URL)

Moderation policy: Light, mostly invisible

founded 1 year ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 11 months ago (1 children)

Personally I prefer OpenSCAD and SolveSpace for designing as they provide easy way to work and get precise measurements.

  • OpenSCAD is programming based CAD tool, which is to say you write down commands like make a cube, 10mm high, from it subtract a cylinder, etc. It's great for basic models and doing a quick one off things. It's capable of more complex stuff but lack of optimization and no help of any kind makes it a wasted effort for complex stuff. Because it's like a programming language it's the de-facto standard when it comes to configurable prints;

  • SolveSpace is parametric CAD tool. You draw things with simple elements like lines, arcs and similar and then form the shape with restrictions. For example you can tell two lines to be parallel and equal in size. And then only define size of one. Drawing is considered solved when there are no more degrees of freedom left. Solve space is more what a technical person would like. It looks kind of like AutoCAD and other CAD softwares. You can do quite complex stuff with it but complex stuff can take time because you approach the design with a technical drawing and then move from there by adding extrusions, revolves and similar. FreeCAD works in the same way, but I prefer SolveSpace;

  • Blender is also a notable 3D design tool and the one that's easiest to do quick mockups and free hand. However setting up blender scaling so 1unit = 1mm cane be quite a problem. Also Blender is not exactly designed for precise work. You can of course specify width and angles and whatnot, but it's mostly modeling tool so most of its tools are going to be targeted towards that.

For slicer, I wholeheartedly recommend PrusaSlicer from Prusa labs. It will give you sane defaults and excellent print quality without overwhelming you with configuration and data. I use to use CURA and pretty much gave up on it simply because it has too many options. PrusaSlicer works and works well. There are other options out there, even super expensive paid versions, but I don't think they are worth it. Some people swear by them, but to me they don't provide much benefit for the price they cost.

I wouldn't suggest going OctoPrint route just yet. It's a lot more to add to the learning curve and only benefit you get is a bit of convenience with network print and supervision. Which is not all that useful anyway. I use to run OctoPrint server, but stopped doing so last year. Once you have well configured printer it will be a fire and forget kind of thing anyway.

Good advice I can give you is look into better nozzle at some point. You don't have to go the expensive route. Simple MicroSwiss plated nozzle is good enough (~20$). High quality nozzle means a lot, and I mean a lot. It's a huge difference between issues you had trouble figuring out and print looking very consistent with proper layer bonding and similar.

TeachingTech has an awesome resource and YouTube channel related to 3D printing. He goes into details with everything and does explain things with examples. His 3D printer calibration scripts are great. They are basically GCODE generating scripts which make lives very easy. Things like flow calibration, temperature towers, z-offset, etc. All easily done and explained with a video.

Am not sure which printer you got, but if it has manual bed leveling with springs, get rid of them and replace them with silicone pads. Easily the best upgrade you'll do. Springs are a never-ending source of issues with first layer. They slightly bend, your print unsticks. You print 2-3 times, have to recalibrate, etc. Silicone is compressible but remains firm so there's no wobble and once configured bed remains leveled forever.

If you have detailed questions, ask-away.

[–] [email protected] 1 points 11 months ago (2 children)

OpenSCAD is great, but with Python experience I'd recommend taking a look at CadQuery.

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago) (1 children)

Managed to get it working and while performance is much better, syntax is downright disgusting. I know it's Python, but looking at any code written for CQ would give Guido a nightmare. Am not sure looking up to jQuery was a good idea to begin with. I'll try and give it a shot few more times, but boy does code written in this syntax look ugly and cryptic. Thanks for the recommendation though.

Maybe am missing something important here with chaining of commands?

[–] [email protected] 1 points 11 months ago (1 children)

It's not ideal, no, but I find it better than OpenSCAD for the simple reason that it's inside of a complete programming language. But that's rarely needed so, eh?

I don't know what my ideal code-first solution would look like, but at least there's multiple options!

[–] [email protected] 1 points 11 months ago

It's great that it's inside of Python as a language but at the same time sad that they didn't take advantage of readability of the language. Syntax is very convoluted. But I'll give it a shot some more times, perhaps there's some obvious logic am missing.