FreeCAD Day 2023: Report and continued discussion
forum.freecad.org
forum.freecad.org
This is a meta complaint I have with a LOT of software. The problem AFAICT stems from how we create software. For a developer the idea of editing a configuration file or other tedious minutia to get what we want isn't a big deal. It IS to "normal" users of software. A lot of times a developer will appreciate a simple way to do something even if they don't see it as being worth the time to implement.
There is a reason people love Solvespace over FreeCAD even though it is incredibly limited in comparison. What it does, it does well by users and is even a joy to use in comparison. All software can benefit from going beyond "there exists a way to do what you want".
I struggle to work with people can justify just about any complaint. Before I know it, I have suggestions to put wordy explanations everywhere, and a dozen unrelated buttons on a given page. All because three or four people who may not have been paying attention while they did the thing provided feedback… sometimes there are people who don’t even use the software….
I wish I could find a reliable way of getting feedback from a broad range of users not just a handful who wish to complain.
I want the software to work for most people who:
1. Use the software.
2. Are trying.
3. Are reasonably good at their job.
Sometimes I feel like I’m asked to make changes that hurt the majority at the behest of a few.
When folks do surveys do political polls, for example, the worst & lowest quality polls are basically facebook polls because individuals select themselves by clicking an ad.
Higher quality polls work by having a representative sample of the population, and getting that is very difficult & time consuming.
In software, I think you have two options here:
- it is practical to capture analytics from about 100% of the population, so if it's possible to analyze this data to determine if your software works well, great! - you can work hard to get feedback from a representative cohort. not sure how to do this... gift cards, swag, "you're part of the cool users club" communications? But be sure you're the one doing the sampling, and vet users' demographics (whatever that means for you) yourself.
It also depends what your goals as a project are - if you just want to build better software for your existing power-users, then great. If you want to become the next blender, you need to understand why people are using Maya/3DS Max instead (or in this example, why some people try to migrate to FreeCAD and fall back to using AutoCAD).
It looks like the author was following this as much as possible though - i.e. not just focussing on some workarounds that a power-user had and focussing on how users should be able to do things easily without a lot of knowledge. The worlds most-used applications lower their barrier to entry as much as possible.
> There is a reason people love Solvespace over FreeCAD even though it is incredibly limited in comparison.
As a SolveSpace user for nearly a decade, who started to learn FreeCAD last month, I may say that both apps has own pros'n'cons: SolveSpace has simpler UI (but lack of features for experts), while FreeCAD has a lot of features (but UI to complex for "normal" users).
About "limited in comparison", he is may latest quick comparison of both apps:[1]
SolveSpace is a good "Stage 1" tool for sketching ideas, while FreeCAD is more like "Stage 2" tool for converting sketch into real product. SolveSpace exported DXF (2D & 3D wireframe) & STL/OBJ (mesh) could be used as a base for FreeCAD and other apps (Blender, LibreCAD).[2]
While SolveSpace is not a competitor to FreeCAD, it still could be used for design wide range of complex things for 3D printing or shop drawings, including assemblies.[3,4,5,6]
The main problem of SolveSpace, is that it still has broken STEP export, as a result exported solid surfaces are non-manifold and after import into FreeCAD it is almost unusable (it may require a lot of work with "Shape builder" and "Surface" Workbench to revert it back to solid body).[7]
There are also many NURBS & mesh issues in SolveSpace worse to fix.[8]
[0] https://old.reddit.com/r/solvespace
[1] https://fosstodon.org/@app4soft/109812747058078617
[2] https://fosstodon.org/@app4soft/109813465975914195
[3] https://fosstodon.org/@app4soft/109740222184364152
[4] https://fosstodon.org/@app4soft/107098074104816439
[5] https://fosstodon.org/@app4soft/109804453127760634
[6] https://twitter.com/app4soft/status/1479875838451585026
Yes, and SolveSpace still could be used as a sketchbook for quickly sketching 3D shapes for FreeCAD. If only FreeCAD's Skethcer" Workbench would has "SolveSpace mode", it would be much easier to make things.
FTR, Here are my latest quick tips on using both apps together:[0]
[0] https://www.patreon.com/posts/faq-how-to-use-78302533 (public post; no paywall)
Thank you.
>> Yes, SolidWorks is easy to pick up and use with no training. FreeCAD is not; it requires dedicated time to learn, following tutorials, and at least a few throw-away projects to gain proficiency. There are a lot of easy mistakes that can sabotage progress, and multiple ways of doing things that are different under the hood, where those differences aren't obvious, including some ways that are bad and wrong. But there's a lot it can do, and it gets better all the time.
> My goal was to produce the design, not to master design tool. The less time I spent the better is my ROI. I have neither time nor desire to dedicate myself to be a master of particular tool.
This is actually how a lot of the "Niche language $FOO is a superior language" arguments go.
That defence is used for $SUPERIOR_LANGUAGE too. Look at the large numbers of devs who feel that the extra cognitive load needed to learn (for example) monads is worth it.
Or the large number of posts explaining Rusts syntactical mess as "It's doing a complicated job so the interface has to be complicated."
Hell, nevermind languages, that argument gets thrown across the entire tech stack - the submission yesterday about complexity had a number of posters who felt that there's no additional complexity in using Kubernetes even for an application that never needs to scale horizontally!
Is it any surprise then that we see the same argument for different tech, even though it's a clearly invalid argument 99% of the time.
What's not ok is denying that failure and gaslighting users into self-blame while preventing trying something better.
Forgive me, I wasn't attempting to imply that the practice is okay.
I was just pointing out that the practice is normal, across the entire tech stack.
It is common for people to reject high-cognitive load stuff, and at this point it is common to have others jump in with "they're dinosaurs resistant to change", "Every $TECH has a learning curve" or similar stuff.
CATIA is rubbish. But everything else is way worse.
I did not need to assemble the airplane / LHC so this particular benefit you are describing is / was completely irrelevant to me.
I'm glad it exists, and appreciate the herculean task that it is, it's just a shame, and it really is clunky/unintuitive compared to F360. Personally I think some focus on UI & polish would go a long way, drive more adoption, which is presumably somewhere on the long road to more support in development and funding.
I get the impression it's probably made by and for a few though, scratching an itch and not too bothered about adoption. Even among hobbyists it seems to be a fairly uncommon choice - pick a Youtube channel and it's usually Fusion360 I find (and as far as I've seen not sponsored, unlike Altium Designer say which is an even weirder (more limited/expensive) choice for a hobbyist).
I do miss FreeCAD's chamfer & fillet tools, though.
You might be interested in CadQuery:
But I agree with you about the UI -- it's straight up painful, and knowing how to work it doesn't make it less of a PITA. Especially when it comes to telling you what you've just done wrong. It's almost like it's just trying to torture you.
Being the first one, and with some concern about limited space, we did not broadcast it super-widely. With good reason, too, since it was packed.
Its impressive what they've managed to do (geometry kernels are incredibly difficult) but its got a long way to go. I'm begrudgingly using Solid Edge Community at the moment.
0.20.1 and 0.20.2 seem pretty solid so far but I’m not a pro CAD user. Just designing things for my 3D printer.
The assembly situation does suck. But I’ve been using Assembly 4 and that seems the easiest to understand.
But what’s worse is that as a non-cad person. It’s difficult to get started still. The information is there but I’ve been using FreeCAD for years, and often the best place to look is YouTube for help.
I’ve also found the forum a bit hostile because I ask stupid questions since I don’t know how to ask in the right way with the right words.
I didn’t even realise why I might need an assembly workbench until very recently and then that changed my perspective on how I structured all my models. I wish there was a higher level explanation of how to use FreeCAD for complete beginners.
Unfortunately, as I understand it, the only way to truly get rid of that is to entirely rewrite the geometry kernel. :(
The team is working on a merge, but it's a big merge.
To be clear, it is not a dev branch, but RealThunder's Link branch (FreeCADLink is a fork of FreeCAD).
For topology naming, here is dev branch[0,1]
[0] https://github.com/FreeCAD/FreeCAD/tree/development/toponami...
[1] https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/topo-...
Though the one feature I miss from Fusion 360 is the thread plugin. It's not perfect but the custom thread profiles were way more powerful than F360.
I'm surprised nothing has been done with the BRL-CAD kernel.
This is a much bigger problem than any missing features or UX issues with the software, and much harder to fix.
Oh, yes, so much this. I dislike the forums, and certainly wouldn't ask any questions on them. When I use them, it's to browse through and hope someone else has already asked the question and received a useful answer.
I've just started trying to use FreeCAD for woodworking projects, and currently find the designing of separate parts and connecting them to be very difficult to understand.
It is an uphill battle as Fusion360 is very intuitive and forgiving while FreeCAD can do most of the same things but you need to do it the right way. Especially changing for example dimensions later on can break the whole thing.
FreeCAD seems to suffer under a sort of feature creep, there are multiple ways and buttons to do the same thing but not exactly the same. For example an extrusion.
I wish there was a general overhaul of the UI similar to what was done in blender which is a joy to use even thought it is extremely complex.
However every time someone does ask me which parametric 3d tool they should learn I say go with FreeCAD. For a beginner the learning curve is the same as for Fusion 360 and in the end you will be much better off no matter what. (I wasted to much time exporting MY 3d models from Fusion360)
Or how there are like 2 or 3 different "2D editors", each with different set of features.
There’s a tendency to be unable to delete things that work in large collaboratively developed software. But it feels like that’s what’s needed with regards to the legacy workbenches so that new users don’t go astray from the intended path.
In solidworks, its super easy to create an assembly, import your parts, set the constraints, see how things move, and measure distances.
In Freecad, you have to use external workbenches, and it seems like there are 5 that do the above to a certain extent but not fully, and with many more steps.
It'll be a while no matter what, but their success will largely depend on how well their roadmap aligns with the needs of their potential financial backers.
FreeCAD is my current go-to CAD program. I’m really glad I finally took the time to learn it.
I've done the standard: Google "freecad tutorial", click open a bunch of likely-looking result tabs, and have a quick browse to locate quality. From youtube, to written and illustrated guides, etc.
It's not difficult to find useful instruction. But the overall pool of easily-searchable knowledge suffers from that standard internet Time Fragmentation effect : that is, within months and years of publication, most of it is out of date by anywhere ranging from A Little to A Lot; a degree which is only determinable to the casual reader through trial-and-error. So a certain degree of inefficiency and double-work is near guaranteed.
After that, I would run into questions and google searches tend to help a lot. Just last week I was trying to figure out how to cut a hole in a curved surface and found a forum thread that suggested a good solution. (That solution felt a little weird from a design standpoint, but it worked, and the history was maintainable.)
Searchable forums are tremendously useful for software packages at this level.
But start reading some docs and watch a turorial on how to use sketches and it makes a lot of sense.
Very happy to "own" my own CAD package as well. Got really tired of the SaaS nature of Fusion.
https://hackspace.raspberrypi.com/books/freecad
Note/check:
>For anyone who prints this out, they failed to insert a page 25, so if you’re printing double-sided, print up through pg. 24, then print page 26 separately, then print pages 27 onward to get things to back up properly.
In general I found it almost comically hard to use, but I learned on Fusion360 so I imagine I don't have the experience of someone who learned on older CAD software that was similar in UI.
Yes, it should be easier than this. The STL export preferences should allow you to specify a mesh tolerance for the export process. I'm sure that's how it will work in a future version, but this is how you can do it now.
If we disregard the different paradigms for a moment: What can FreeCAD do, that Blender can't? Should I give it a try?
In FreeCAD and others like Fusion 360 you create sketches on planes with dimensions that can be variables. You then extrude, make more sketches based on previous features etc. This allows you at a later time to change the value of a dimension and it propagates through the entire part.
When it comes to 3d printing I use this a lot of things like lids which need to snap on. There is a certain amount of spacing between the lid of the box which may need to be adjusted to get the right amount of "snap". With parametric modeling I can just go and adjust the variable of my gap to be a bit smaller or larger and it will adjust all places where this applies.
I want to script up these models in python, but if I can't print them then it's not useful to me.
Can you share a FreeCAD project & the generated broken STL file and I'll see if I can reproduce the problem?
What I do when I get a faulty STL out of it is to use other programs to fix the STL. That gets me there. And many slicers these days (especially Prusa) are getting much better at doing this themselves, making it less necessary to do it as a separate step.
There might be something specific in your workflow that's running into a bug I see though. If you still see problems today it might be worth a bug report.
As mentioned in a previous reply, a lot has been improved in three years so it's probably worth giving it another go and filing a bug if you find an issue.
https://hackspace.raspberrypi.com/books/freecad
(check the pagination if you're going to print it, missing page 25 last I checked)