I’ve finally reached a brick wall where I can’t just find something on Printables/Thingiverse that I can modify for my use case. Until now, I’ve been able to find something close and use OrcaSlicer to make small adjustments or occasionally kit bash two models together.
Now, it seems, I need to design something from scratch.
I’ve had Blender recommended, but I just cannot make sense of it no matter how many Youtube videos make it look so easy.
I’ve also got FreeCAD installed but am still getting my bearings and nothing has come of it yet.
So, recommendations? The only limitations are that it has to run on Linux and not be a cloud service. I’m willing to pay for a license if need be but no SaaS or having to fight with Wine to get it going.
Dune3D is a relatively new 3D CAD for Linux. https://docs.dune3d.org/en/latest/ I haven’t tried it, but it looks very promising.
Personally, I use FreeCAD, which is leagues better than it used to be, and improving quickly
This Dunes looks very similar to FreeCAD in workflow.
I’ve been looking for something to replace Sketchup, this looks promising. bonus it runs on Linux!
thanks!
I’ll check it out. Thanks!
Blender and FreeCAD.
Blender for organic, sculpted shapes.
FreeCAD for parametric, accurate parts.
CAD Sketcher is a free and open-source project that adds constraint-based sketching and parametric modeling to Blender.
Neat!
I wouldn’t recommend Blender for anything that needs to have accurate dimensions, as it is a pain to get things right, even with the “CAD” addon.
FreeCAD seems great, but the UI and UX are horrendous. It’s a steep learning curve.
If you have any coding experience, I recommend giving OpenSCAD a look, like mentioned in another comment. I believe most of the older Prusa printer parts were designed on it.
If you have any coding experience, I recommend giving OpenSCAD
That’s certainly an interesting way to go about it lol. That said, I read through the tutorial and honestly I’m gonna give it a try. The syntax doesn’t look too awful and doing it in code seems like it would allow for easy precision and also eliminates having to learn the UI of FreeCAD which I agree is absolutely horrendous.
Thanks.
Also, if you’re making raspberry pi enclosures as I think I read in the comments, there is this library that has pre-modeled rpis to use as a reference: https://github.com/nophead/NopSCADlib
Nice. A lot more than RPis, too.
This is actually for a Banana Pi but it’s in the Pi Zero form factor so should be easy to modify.
It’s honestly pretty powerful, you can even import libraries from other users. A good example I’ve found is the board game inserts that user “js500” is uploading on Printables. He has his own library with things like rounded cubes, finger holes and whatnot, then uses that to create inserts for different games. Here’s an example: https://www.printables.com/model/1192543-white-castle-with-matcha-insert-organizer-also-fit (Make sure to also download the library file included)
Given your requirements of no cloud, no SaaS, and running in Linux you have already arrived at the correct two choices, depending on what you’re trying to model.
I am a diehard FreeCAD user, and I would say just stick with it until you are able to build what you’re trying to build. Via the expedient of Noodling Around With It I’m now proficient enough to do everything I personally want to do with FreeCAD, i.e. using its part design tools and studiously avoiding all of the other workbenches I have no use case for.
Well, switching the mouse navigation mode got me further and less frustrating than before, so progress I suppose! The default “CAD” navigation was hell to use with my trackball since the DPI button is right below the wheel and wheel + button to free rotate the model was just awkward on so many levels. OpenCascade seems to be the sweet spot.
I’ll stick with it. Was just hoping there was something more for dummies like me lol.
Look up Mango Jelly on youtube for excellent tutorials on FreeCAD use. He has extensive videos to learn from.
I watched a few of the digikey tutorials in YouTube for the basics, and that was good enough for me to get started. But also I think like a computer after years of software dev, and I’ve done constraint-based UIs before, so I think it was pretty native for me.
Here are some “once you know what the buttons do” tricks that I’ve learned:
Early on I tried to put all of the details into one sketch, because it looked like “what I was trying to make”, and then it was a pain to pad this and then pocket that, etc. Now I think of it as an interative process, more like sculpting, I guess. But also you don’t have to do things in manufacturing order either!
Maybe I want the outline of the case to be dependent on the screw holes, so it feels like I have to do them together. Wrong. In the Part Design workbench, in a single body, one sketch can just be the circles for the screw holes, because those have a fixed size and location. Done. Next sketch can be the the internal outline of where your board fits in, referencing the circles of the screw hole sketch using the “external geometry” button. Okay, now I have a sketch for the screws and a sketch for the internal bits, but I haven’t actually “made” anything yet. That’s fine! Now we can do another sketch for the outside perimeter that again uses the external geometry feature to be constrained based on the screw holes from one sketch and the internal space from the other, while maintaining a 4mn wall thickness around those features, or whatever. Great! Now we’re in a place where we can pad down the outline, pocket out the internal gap to one thickness, pocket down the screw holes to a different depth. The way we “built” the 3D features didn’t have to match the order we designed the sketches.
Now that we have that, it’s still mutable. We can at this point add another sketch for some risers you want, and pad those up. Great, what else? Maybe this edge is a bit sharp. Click it and apply a chamfer. Okay what’s next? You know? Just step through it getting closer every time. You don’t necessarily have to get all features defined up-front.
If things start at different heights, you can use datum planes! From your body, click the datum plane button, then it will be asking what you want to reference it off. From here you can expand your Origin in the tree view and click the XY Plane to have another one like that. Then you can set the offset in the task panel on your right to be basically 7mm above the XY plane or whatever. Great! Probably name it, and then hide it because it’s just visual clutter. But now when you’re making your next sketch you can attach it to this “screw height” plane, and be exactly where you need to be to either pad up from here or pocket down or whatever. And when padding or pocketing you can also use the “to face” mode instead of “dimension” mode, and pick the datum plane as your face, to have an easy “it’s as thick as it needs to be to get here” thing that will ensure your pockets down always line up with your pads up, for example.
You want a lid? Great! New body in the Part Design Workbench. But you want it to be based on your other bottom part so you don’t have to redo everything? You want a Shape Binder, which looks like a green blob for some reason. And if you have your lid as the active part (its name is bold in the tree), then you can select any sub-element of your main body before clicking the binder button and only grab that element. Like, for the lid you probably want the sketch of the screw holes rather than the whole thing. And maybe another of the sketch of the outside perimeter. And now you can use that as external reference geometry in your lid sketch and have the whole thing done in 10 minutes! And there’s even a chance that if you adjust a constrain on those screw holes later, the whole body and perimeter and lid will all adjust together because they’re all referencing each other. Of course, the downside is if you delete a line and redraw it in the screw hole sketch, everything downstream might break because all of their references are now missing. But having several simple sketches makes this better than one mega-sketch with all the detail.
The number one number one number one thing to not get tripped up on early is that an individual body, the 3D part, must always be connected at all times! Which kinda makes sense as a finished product, it has to be one thing, but it can be confusing when you’re in the middle of working on it. Your sketches can have shapes wherever, but the 3D part must stay contiguous. So let’s say you wanted some posts around each screw hole to act as stand-offs. Makes sense. So you make a sketch for the screw holes, which is just some circles in space and nothing else, and you make a sketch based on that for the posts and it’s also just some circles in space. And you think “I’ll just pad these down to give me the posts, then I’ll pocket the holes into them, and then I’ll get to work attaching them with a base”. Wrong. Sensible but wrong. When you do that you’ll only get one post, because the others aren’t connected to it! You can build up the sketches in any order, but when it comes time to realize it, it needs to stay contiguous. So sketch the holes, then the posts, then the outline for the base, but then pad the base up, then pad the posts down from the screw layer to the base layer. Or up from the base layer to the screw later. Whatever. Now that they’re connected to the base, you’ll get all the posts, because they’re one thing. Now you can pocket the screw holes from each post. Etc.
If at some point you’re missing something, or your whole body disappears, make sure you haven’t cut something off from the main body. Everything must be attached! If not, it’s a separate body and should use the shape binder, as mentioned, to reference cross-body external geometry.
Have fun, and don’t expect to be amazing right away! Oh and also, remember your goal is the print. Any amount of ugly in the CAD is something you have to contend with, but won’t affect the print. It’ll still be a case if you had to copy the constraints 5 times. It’ll still be a case if you used a circle instead of a bezier curve. You can’t see those sins in the print. And likely you won’t be starting a business of custom prints, so even you may never have to look at this CAD file again. So do whatever you need to to get the print. Make a new sketch that references the other sketch as external geometry and then traces all the relevant details in a particular order just to get the loft right. Ask me how I know. It’s stupid, but it works, and it gets the print.
You got this!
Oh, one other thing I wished I knew earlier: There’s all these drawing tools in the sketcher like line and multi line and arc and whatever. And coming from something like Inkscape I thought there was a similar sort of “path” concept, but there really isn’t. Every line is just a line on its own, just with constraints from its endpoint to the end of the next line. But you get those automatically when clicking with the line tool too! So early on, if I messed something up, I’d feel the need to delete the whole “path” and draw it right. Dumb. Just delete whatever line you need to delete, draw any other lines with any tool makes sense, and it’ll be equivalent. Just do whatever, the system doesn’t care and can’t tell them apart anyway.
Obviously if something downstream is depending on the position of that line that might mess up those constraints, but that was more likely to happen when deleting all the lines rather than just the one problematic one I forgot to make as a curve or whatever.
Wow thanks! That’s actually super helpful. Gonna save this and probably throw it in a text document for later reference. I was 100% trying to do an all-in-one-go single project like you described because “that’s what i wanted it to look like”. The result was predictably frustrating and just awful.
I’ve watched a few tutorials but a lot of it went over my head or talked in terms I wasn’t familiar with yet or started in the middle of an existing project. Will definitely try breaking things down into smaller, simpler primitives. I’ve not done CAD work before so this is all brand new to me, so things like the actual workflow are things I need to learn (and you’ve described very well).
Freecad is horrible in terms of ux, but otherwise very powerful and worth the time investment, IMO. Keep at it, I think it will pay off for you in the long run.
The UX is getting better In addons search for the Open Light or Open Dark themes and install them. The 1.1 RC are far smoother to use.
For me I’m a big fan the of Pie Menu addon. I can create custom pie menus as needed with the tools I want. It allows fast working with the tools I mostly use right at the point of work.
Besides FreeCAD and Blender, there’s also OpenSCAD (never used it myself, but it sounds pretty cool. Programming 3D models, I want to try it soon. Everyone says it has a high learning curve though)
Ideally you would want to get the hang of either Blender or FreeCAD, depending on what kind of models you’re trying to make.
These are project cases for a Pi Zero clone, so FreeCAD would probably be the most logical choice. Though someone else commented a plugin for Blender that adds a CAD-like workflow to it.
Do yourself a favor:
Use Onshape until you are comfortable and confident with your CAD work. Onshape’s design is much more industry standard (I think it is derived from Solidworks?) and pretty much all of the workflows and terminology are similar. Contrast that with FreeCad where a lot of tools have very specific names and some are split out into two.
https://www.youtube.com/watch?v=SaTNTUzA5dM is a great video on the subject. Just… watch at like 1.25x-1.5x speed because Deltahedra has a very specific speaking cadence and… yeah. But a great example is the mindset of extrude (positive or negative) versus having to decide if you are padding or pocketing. It isn’t a huge difference once you know what you are doing but it can really trip people up when they are learning the ropes. Especially since most people will just say “make a sketch and extrude it”.
FreeCAD is an excellent second (or third) CAD tool. I strongly discourage anyone from making it their first. And yes, it sucks to use closed source cloud only nonsense. But OnShape is actually REALLY good (for now…) and it is more important to have that solid foundation so you can move on to FreeCAD.
Like, if you learn OnShape you have also more or less learned SolidWorks and Fusion360 and… If you learn FreeCAD… you have learned FreeCAD.
The other side is to make actual models in Blender. Blender… I actually like blender a lot. I don’t have enough of a background to know if the workflows are meaningfully different as my experience is limited to using one tool decades ago (might have been Maya?) for making models for UT before switching to Blender. Just understand that Blender is more for making “art” rather than functional parts.





