this post was submitted on 07 Dec 2023
42 points (100.0% liked)

Woodworking

6128 readers
58 users here now

A handmade home for woodworkers and admirers of woodworkers. Our community icon is a planter box made by @Captain Aggravated, the winner of our summer '24 woodworking contest. Congratulations!

founded 1 year ago
MODERATORS
 

Hi everyone,

I looked through this community, and I didn't see much discussion of the use of CAD for woodworking, so I figured it was worth a post. I learned CAD ages ago, and I've used it sparingly in my professional life since then. I'm working on a project now that would benefit from CAD, so I figured I'd try to get up and running with a software for personal use.

I know sketchup and fusion360 have long been the major players for woodworkers, but I am wary of "free" personal use licenses that can be removed or degraded at any time. As this is Lemmy, I'm sure plenty of you are interested in FOSS options as well. I know there are some programs out there specifically for woodworking, but if I'm going to learn a new software, I want it to be more general purpose so I can use it to make things for 3D printing, etc, if needed. I also want something parametric to be able to easily change designs. For those of you unaware of what that means, it basically means that you can design things with variables instead of exact numbers. That way you can punch in numbers later on to easily update your design. In my case, I'm making cabinet doors in a few different sizes, and I'll be able to generate plans for different doors with only 1 model. Theoretically, I could upload the design for anyone else to use/modify as well on a place like thingiverse (someone give me a shout if they are secretly horrible or something, I'm generally wary of providing value to a corporation for free).

This all drove me to FreeCAD. FreeCAD is a FOSS CAD software that has a huge range of different capabilities. The different tools are divided into "workbenches" of different uses such as architectural drafting, 3d printing, openSCAD etc. There are also user created workbenches that you can install. There's even one specifically for woodworking (that I haven't used yet).

I've started into some tutorials, and most of them are focused on building a single widget. While that's great if you are planning on making something to 3d print, us woodworkers are usually assembling different parts. The tutorials for woodworking specifically I've followed along with so far seem to follow the same workflow:

First, a spreadsheet is set up to establish all the parameters you want to be able to change, then, each part is designed individually. Finally, all of the pieces are brought together and assembled.

While this is great if you already have a design in mind or an object, and you are trying to make a model of it, it's not the way I would ideally go about conceptualizing a new design. To make a nightstand, for example, my preferred methodology would be to assemble some simple rectangular panels to represent the top, bottom, back, front, left, and right. After those are in place, I'd start adding joinery, details like routed edges, and cutting out space for a door. It doesn't seem like freecad is necessarily set up to do things that way, though I could be wrong. This might even be how the woodworking workbench does things, I just figured I'd start learning the default workbenches first.

Anyone else use freecad or another CAD software? What's your workflow like? Want me to report back once I've had more time to play around with it and learn some stuff?

top 22 comments
sorted by: hot top controversial new old
[–] captain_aggravated@sh.itjust.works 12 points 11 months ago (1 children)

I use FreeCAD for...well nowadays pretty much all of my personal CAD needs, including woodworking. For woodworking projects, my workflow is:

  • Open the Spreadsheet workbench and start listing out measurements. I start with things like the dimensions of stock and features of that nature in one column, important project overall dimensions in the second column, then calculated or derived component dimensions in the third column. I use a macro called EasyAlias which lets you put a label in a spreadsheet column to the left of the values, highlight those labels, click one button, and it applies that string as an alias to all the cells to their right. Why that isn't a built-in feature I don't know, but it speeds things up dramatically.

  • Switch to the Part Design workbench, create a Body, give that body a name (something like Side or Shelf or Base, not being spectacularly creative here) and then sketch-and-pad this part into existence. There's another macro from the addon manager I use here, Dimension From Spreadsheet, that makes this a much less tedious process.

  • I often put these in a Part (The equivalent of a Fusion360 "Component"; an abstract group of other things in the tree to keep them together, mostly so that I can disappear all of the parametric Bodies at once.)

  • Open the A2Plus workbench (from the Addon Manager). A2Plus is a very simple workbench; it's not really good for designing machines with moving parts, but aligning faces and edges etc. together works pretty well; it lets you glue the parts of a bookcase together. I'll import a bottom, back, middle or other "major" fixed Body into the workbench, which creates another object in the tree. These objects I often put in another Part again so I can toggle their visibility all at once. Make this first object "fixed" in space, there's a value in the Data window for this. I'll bring in another part, and join it, usually in a "this edge is coincident with this edge; this face is parallel to this face" kind of way, to the first part, and so on until the project is assembled.

  • If I need to add or adjust features on the models, I can do that by switching back to the Part Design workbench, then you Refresh the file, and then switch back to the A2Plus workbench which has its own refresh button which updates the A2PLus objects to match the Bodies they are based on. Beware the topology problem; if you create additional faces, the mates may break.

  • I don't always draw both "sides", sometimes I'll use the Mirror Body function found in the Part workbench if I feel I need to make sure something fits, sometimes I just don't bother.

  • Using the tape measure tool in the Part Design workbench I'll verify certain dimensions to make sure everything is working out okay. I've also used that tool to very quickly make overall drawings if need be.

  • I'll print out the Spreadsheet, which I find is a useful reference especially when milling and cutting stock to size.

  • Using the TechDraw workbench, I'll create drawings of more complicated parts. In my recent end table project, I didn't bother doing drawings for the tabletops or the aprons, which were very simple symmetrical parts. The legs on the other hand feature dados, tapers and mortises, so I did dimensional drawings of those.

At this point I'm ready to go to the shop and start butchering some tree meat.

It would be rather nice if there was a woodworking workbench in FreeCAD that let you work with boards and create features like miters, dados etc. in those terms, plus creating things like cut lists and calculating board feet etc. I know there are payware CAD packages that do that. I'm not skilled enough with Python to know where to start though.

[–] evasive_chimpanzee@lemmy.world 1 points 11 months ago (1 children)

That looks like the workflow I've been learning as well, so it looks like I'm off to a good start. Definitely not sure why the alias manager isn't built in, but that's okay. I actually found that the latest version of the macro doesn't work with the latest version of freecad. It seems like the spreadsheet workbench puts a ` mark before text in a spreadsheet now, and that mark is not usable in an alias. You just have to go into the line on the macro that pulls in the text, and tell it to ignore the first character.

Have you looked at this workbench at all? It seems like it does some of the stuff we'd like to be able to do. I installed it, but I haven't played around with it yet cause I want to get proficient with the more general purpose toolboxes first

[–] captain_aggravated@sh.itjust.works 1 points 11 months ago (1 children)

I prefer the Part Design workflow. This page shows a comparison between the Part and Part Design workflows for making the same part. I personally tend to prefer the Part Design workflow.

I'm not having a problem using the EasyAlias macro, I'm using v0.21.2 from Flathub. I do notice that it prefixes text strings with a ' mark in the spreadsheet, but it still works. Another thing I know about the EasyAlias macro is that it's smart enough to take a string like Overall Length (overall_length) and use only overall_lengthas the alias. That may be a workaround?

I haven't seen that workbench, thanks for sharing it. I'll give it a look. I didn't see it in the addon manager.

[–] captain_aggravated@sh.itjust.works 1 points 11 months ago (1 children)

So, about that Woodworking workbench...no that's godawful.

The UI seems to be hardcoded so that it looks good with the theme, font size, monitor resolution etc. the dev uses; it's full of misaligned and incorrectly sized things on my end. Slapdash and lazy.

The drawing tools are partially woodworking process based, partially abstract CAD, and somehow the worst of both worlds. Some things like drilling and chamfering have dedicated buttons, some things like dados you're supposed to do with boolean operations.

The BOM feature...it doesn't function using FreeCAD's in-built unit setting, so you have to choose inches every time you make one, which is tedious, and it only works in decimals not fractions. For woodworking in America, it's pretty much useless.

Uninstalling and giving up hope.

[–] evasive_chimpanzee@lemmy.world 1 points 11 months ago (1 children)

I have noticed in general that using inches doesn't work well in freecad. Generally, I wouldn't touch inches with a ten foot pole, but if all the materials are inches, I guess it makes sense. It seems like when I put a number into an expression, if I don't specially say that it's in inches, it assumes it's mm, and then converts to inches since that's set as my default unit. I noticed the fractional imperial is kinda weird, too. Like it automatically breaks things down into yards, feet, and inches. I don't know anyone who uses yards in any context other than sports. I might just use mm and convert back at the end to make things easier. That's what I do in my professional life if anyone wants US customary units, lol.

That's sad to hear about the woodworking workbench. It literally is just one person working on it for free, so I can't complain too much.

[–] captain_aggravated@sh.itjust.works 1 points 11 months ago* (last edited 11 months ago) (1 children)

In the options menu you can put it into inch mode, which will stpp it defaulting to mm. Internally it stores dimensions in mm but it will translate for you, so you can work in inches.

It would be nice to have a simple inch-fraction system, in kind of tired of seeing 1' 2 3/32" just say 14 3/32".

I've been contemplating doing a woodworking CAD package from scratch in Godot. Whould require less laziness though.

[–] evasive_chimpanzee@lemmy.world 1 points 11 months ago (1 children)

Yeah, I have it in decimal inches which is a bit easier to deal with. When I use parameters, and I have something like "part_a.length +5" and it gives a unit mismatch error cause the 5 is still assumed to be in mm even though the other parameter is in inches. If the expression has no parameters like sqrt(3^2 + 4^2 ), the result will be .2 inches, not 5 because it only does math in mm unless specifically instructed otherwise.

I hear you on the laziness, though. There's a lot of things I technically could do myself, but at a point it feels less like a hobby and more like a job.

[–] captain_aggravated@sh.itjust.works 1 points 11 months ago (1 children)

Ah no, it's not assuming the 5 is in mm, it's assuming it's unitless. Like imagine if part_a is 5 times as tall as it is long, part_a.height = part_a.length * 5 will work just fine. But if it's 5 inches taller than it is wide, part_a.height = part_a.length + 5 won't work because 5 what? you have to say part_a.height = part_a.length + 5 in and that will work.

This is flexible enough to allow you to work in metric and standard in the same document, 15 in + 4cm will parse just fine.

[–] evasive_chimpanzee@lemmy.world 1 points 11 months ago (1 children)

It seems like that isn't the case, though. If that were the case, having a math expression (with no parameters) wouldn't work without specifying units. My pythagorean formula example works with no units specified at all. If you plug that into an expression, it gives you 5 mm. No matter what your units are set to. If your units are inches, it just shows up as .2 inch.

"part_a.height = part_a.length + 5" doesn't work even in mm, though, so something weird is afoot.

[–] captain_aggravated@sh.itjust.works 2 points 11 months ago* (last edited 11 months ago)

It can do math on all unitless numbers.

Opening a new FreeCAD document, creating a spreadsheet, I get the following results:

=5+5 evaluates to 10

=5" + 5" = 10"

=5" + 5 returns a Quantity::Operator Unit mismatch error.

=5" * 5" returns 2'1"

=5" + 5mm returns 5"+3/16". I'm working in fractional inches and have it set to 1/16" maximum display precision. Right clicking the cell, going to Display Unit and typing in mm that cell computes to 132.00mm

Note everywhere I typed a " can be replaced with ' in'. FreeCAD will parse both.

If you're working in the sketcher, it will let you type "5" in for a distance constraint, and is smart enough to go "A unitless length? Okay, we'll assume the unit is the document default setting" and will insert 5mm or 5 in. So it will automatically--and quietly--assign a unit to that unitless number you typed in.

In the expression part_a.length + 5, part_a.length is in inches, 5 is unitless. It can't add those. It can do part_a.length + 5" though. with the " meaning inches. or part_a length + 5 mm.

Note that when mixing inches and millimeters, it may round numbers for display. There's a setting in the options for maximum display precision, it's so you don't end up with something like 152.00231078422872 mm or 1 93/2048". I do believe that it calculates and renders geometry precisely though. Like above adding 5 inches and 5 millimeters is maybe a bad example because it does just so happen to create a round number.

[–] grillgamesh0028@lemmy.world 8 points 11 months ago (2 children)

I use solidworks.... cracked for personal use.

I know, I know... it ain't FOSS, but man it works really well and I have several industry standard certifications for it.

I have a fully fleshed out model of my house, and as I design things, I spacecheck to ensure a good for, and a good aesthetic. then I build the thing, and put it where I designed it to go.

[–] evasive_chimpanzee@lemmy.world 3 points 11 months ago (1 children)

A full model of your house is awesome, that must have taken ages to get right.

[–] grillgamesh0028@lemmy.world 2 points 11 months ago

it -did- help that I had the original architectural drawings, xD

only took.... I wanna say, 4 hours(?) to get it all imported :D

[–] rambos@lemm.ee 2 points 11 months ago

I second pirated SW 🙃

[–] Viper3210@lemmy.world 5 points 11 months ago (1 children)

I've been using freecad for several years and it has improved a lot. I tried fusion and sketchup and a few other "freemium" options but features kept disappearing into the paid section so I decided to stick with something actually free and learn it.

I use the two dimensional sketcher the most. Find some tutorials about using constraints properly and it is very easy to use. The tech draw workbench lets you add dimensions and information in a printable format. Figure out how to do 1:1 scaling with your printer and you can make templates with perfect accuracy in minutes using only a few key dimensions.

Assembly is still a complicated process though. The assembly 3 and assembly 4 workbenches are great but pretty arcane. I don't remember which one I used last time I did a full multipart plan but the result was great. Basically they let you create anchors on lines and vertexs and such that then interact with each other across parts.

The trouble is in how those anchors interact with their parts. If you round an edge you just made some lines shorter. Was that anchor point attached to that line? Now it's in a different spot. Essentially you have to be perfect every step of the way and plan ahead or change many things for even a tiny change like a round edge.

With a little practice I've been able to get the assembly benches to make great results. You really have to do it correctly though or it all falls apart. The lack of in depth tutorials means you have to make a lot of mistakes and learn from them.

I would suggest trying freecad with either assembly bench. I'm not sure which one would be better suited to your needs. If it doesn't work for you paying for sketchup or fusion might be a better option. I think in a few years freecad will be very competitive but for now it lags behind on ease of use. Sometimes by a lot.

[–] evasive_chimpanzee@lemmy.world 1 points 11 months ago

One of these days I need to buy a printer for stuff like this; I haven't had one for 10 years. Have you used assembly 2+? Apparently assembly 2 used to be the best, but then development stopped for a while, so someone forked it and kept adding to it. Most tutorials I've seen use that one.

[–] karpintero@lemmy.world 3 points 11 months ago

That would be cool. I use linux as my daily driver, but occasionally switch to windows for certain programs like SketchUp. It would be nice to not have to switch

[–] pr06lefs@lemmy.ml 3 points 11 months ago (2 children)

I've used OpenSCAD. "Fun" I'd say, if you're a programmer. No support for any kind of toolpath stuff, purely for making the shapes and that's all. I made the shapes in openscad and imported them into Fusion360 to do the toolpaths. Fusion360 didn't have awesome support for STL models which was what openscad could make, so sometimes things weren't the best - like slots that were the width of the tool plain couldn't be cut.

If it could be made to work I'd much prefer using a foss workflow.

[–] nyan@lemmy.cafe 4 points 11 months ago

Yeah, OpenSCAD is purely a CAD program with no support for CAM, which is the toolpaths part. FreeCAD is the only reasonably mature multiplatform open-source CAM-supporting software that I'm aware of, although there might be something Windows-specific or Web-based that I haven't found. There may be a Blender plugin somewhere, but I wouldn't trust it.

[–] evasive_chimpanzee@lemmy.world 2 points 11 months ago

Freecad has an openscad workbench, so if you are used to that workflow, you can do that, and then switch to other workbenches for whatever you need. Another bonus is that it has a built in python console, so you can use that to do stuff programmatically

[–] EmergMemeHologram@startrek.website 2 points 11 months ago

Not FOSS but I use Shapr3D which has terrible pricing and a crappy free plan, but the constraints system works very well for me.

[–] MY_ANUS_IS_BLEEDING@lemm.ee 1 points 11 months ago

I use Onshape personally. It's free, web browser based, and uses parametric modelling which is handy for fiddling about with sizes. It works very similar to Solidworks as it's done by the same guys.

It lacks woodworking specific tools though. You're pretty much limited to sketching and extruding panel-by-panel.