I keep trying FreeCAD every 3-6 months, but it's so full of little bugs and crashes it's not really usable in my mind. I'm using the version from Debian unstable.
The UI is unstable (very easy to crash just by fiddling around), and the geometric kernel has a ton of little issues that you have to work around. At every new project I have the liberty of giving it a try without many constraints (no import/export required, minimal assemblies of elementary geometry). I really wonder how can you actually go through the relatively complex projects I've seen as a tutorial, really. I would always give up after a dozen crashes.
I've used SolveSpace in at least 4 projects, and I absolutely love it. The UI is different than FreeCAD, but in a very positive way (after learning the basics, I genuinely prefer SolveSpace's a dozen times!). It's a bit sad that SolveSpace's kernel is definitely inferior in terms of capability to FreeCAD (notably: no offsets and no chamfers!), but what is supported _is_ stable. I cannot say the same in FreeCAD, where chamfers would sometimes cause degenerate geometry or downright crash. The only minor complaint in SolveSpace is that currently it's not always obvious to see the construction tree, as it's represented linearly.
I bought a copy of VariCAD that I use on linux. But while it's certainly a capable CAD, I really don't like the UI, and the parametric modeling is clunky at best.
I don't think there's much more available in terms of parametric modeling on linux if we exclude prohibitive stuff like NX. I'd like to be proved wrong here.
I still think the best modeler I've ever used is still Rhino, a joy to work with. But while it supported parametric surfaces, it didn't really allow parametric modeling when I last used it.
I've used Solvespace a lot and agree, it's very intuitive and stable. Unfortunately it lacks a lot of the more in-depth features and also its constraints engine gets confused very easily, plus it doesn't do great with curved surfaces. I ended up moving away from it after getting frustrated that certain tasks were oddly difficult and complex, e.g. fillets/chamfer or changing the color of an object.
Nowadays I mostly use OnShape. It's similar to Solvespace in terms of workflow, but more comparable to a "real" CAD package feature-wise. It's also free for hobby use as long as you are willing to share your designs. The major disadvantage (to me at least) is that it isn't OSS, but by virtue of being in-browser it at least runs on Linux.
Edit: I'd also still recommend Solvespace, especially if you just want to do some basic drawings or learn parametric CAD.
FreeCAD's architecture that combines history based modeling with inferior kernel (Open CASCADE) is about the worst choice from a reliability standpoint.
The best kernel, Parasolid, only started to get good when mainstream Unigraphics went history based parametric in 1992. The reason is that all of sudden Parasolid has to be able to correctly rebuild every model ever made in Unigraphics, SolidEdge and SOLIDWORKS - including bug-for-bug compatibility. That's an extremely hostile evolutionary environment, and to survive Parasolid had to get extremely good.
OpenCASCADE in contrast only has to replay FreeCAD models, and there are modulo zero of those, and actually zero paying customers.
SpaceClaim has things the right way round to built a reliable CAD system: direct modeling X still v good b-rep kernel (ACIS).
Free/open source doesn't have a good curved surface kernel.
To build one is difficult. Every time you add a new surface or curve type, then case analysis for the intersection algorithms goes up with the square, so the key is to limit severely the number of surface types. One though I had was to just use Dupin cyclides (which covers the quadrics) and approximate everything else with cyclide sheets. There are some architectural CAD papers on these.
Disclaimer: Parasolid dev 1989-1995.
Edit: maybe that's what Solvespace does - limit to just NURB surfaces? Way to go! The Dupin cyclide approach would have to approximate NURBS with cyclide sheets, but the intersection algorithms could be easier to implement because they are implicit quartic surfaces.
I'm not sure, I think Solvespace is history based, but I don't know enough about CAD geometry engines to give an in-depth answer. Most of my experience with CG comes from the simulation modeling aspect (think more GEANT instead of CAD).
I'm pretty sure Solvespace is using their own geometry engine implementation and not something like OpenCASCADE or CGAL (as in OpenSCAD). As you note, it really struggles with curved surfaces. Just drawing a cylinder and doing some booleans on it will cause problems. And it can have a fit with constraints too, e.g. the symmetry constraint almost always leads to an unsolvable sketch for me. Onshape and Solidworks (which I dislike) perform noticeably better.
But, Solvespace really in most cases gets the UI and workflow right. It's highly intuitive except for a few things (as I said, a couple things like changing colors for a solid are really irritating). I think it's in most cases a better choice to learn for hobbyists than something like OpenSCAD, which is the maker darling.
OnShape to me feels like what I want Solvespace to grow into. The workflow is actually very similar, but as you say the geometry engine is vastly superior. And it's obviously the money thing. CAD is very much a "long tail" process, where it's not hard to make 90% of the features that are needed, but where everybody needs lots of stuff from that last 10%. This has always been an area where open source has had trouble.
If I was doing it, which I'm not, for the free (as in freedom) and/or open-source kernel, I think the best way forward would be to salvage the STEP, IGES etc import/export code from OpenCASCADE and graft that on to Solvespace.
It's overly complex for what I do, which is mostly hobby stuff with some occasional custom designs for my work use (academic research lab, mostly custom mounts and brackets for obscure equipment). Also the onerous licensing and price. Admittedly it's been a while since I used it, so maybe the UI is more friendly nowadays but I never really found it to be particularly intuitive.
But the biggest reason is I'm a Linux guy and I want something I can run without rebooting into Windows or a VM. I'm usually extremely wary of complex applications running in a browser, but I have to say OnShape works great and performs well. And being in browser means it runs on Linux no problem, which is a major benefit to me.
>...it's so full of little bugs and crashes it's not really usable in my mind. I'm using the version from Debian unstable.
Ever try it on another platform or build? I've been learning FreeCAD for the past few months, and while have certainly come across "quirks" (like certain boolean operations not working quite right, the polar array feature in the Draft workbench working with everything I throw at it, but the polar array feature on the Part Design workbench choking on somethings, etc.). I've never had it crash. I've been using the "stock" v0.16 x64 build on Windows 10. It could be that since I'm just a CAD newbie, that I'm not exercising it hard.
I know and cannot deny the enormous effort of OCE. I tried to develop a simpler parametric 2d cad once for almost two years, but couldn't keep up with the complexity before getting myself /something/ I could use.
This is why I keep trying. FreeCAD is the closest package we got to a decent CAD in an OSS package, and I cannot wait to avoid using closed software in my designs.
But I'm just stating facts here: I couldn't follow the tutorial without incurring in crashes. I similarly tried CadQuery, but incurred with mostly the same issues.
But like I said, the issues are also on the UI, not just on the OCE engine.
UNDO management is often completely broken. Undoing line properties for instance used to only partially revert line properties, but revert previous geometry changes as a side effect. I got crashes just by toggling snapping states (even before hovering over the geometry that would cause some actual computation to be done). I thought I could help on those issues, but the build process involving OCE is time consuming and requires some non-trivial time investment before you can become an effective contributor (as for most large projects - cannot blame anyone here).
I occasionally use FreeCAD also as a simple 2d (non-parametric) CAD package. Still very frustrating. You would think we had more options for 2d drafting, but not really. I do not consider qcad/librecad to be real CAD packages. They're like toys in my eyes. I used inkscape (yes...) with greater results.
I too would dearly love FreeCAD to succeed because the FOSS world dearly needs at least semi-decent parametric MCAD.
My view is that the UI and UNDO problems that you report are likely more tractable than the deeper problems with OCE.
My first encounter with CASCADE was before it was Open in 1993 and Maura was still trying to sell it. I was a consultant at the time, and the client at the time was initially sold on it by the Matra salesman. At the end, though when CASCADE utterly failed to perform he had a screaming row with the Maura consultant.
CASCADE was refactored from Euclid which was the loser MCAD system of the time because it didn't really support curved surfaces properly.
Then Dassault purchased Matra, presumably for the Euclid client base who they swiftly moved onto CATIA, and they saw no value in the CASCADE technology so OCE was born.
> and the geometric kernel has a ton of little issues that you have to work around
Under the hood, OpenCASCADE is an eyesore. Here are my notes from a deep dive where I was attempting a sane reimplementation: http://diyhpl.us/wiki/cad/opencascade/
The development is moving along at a good rate [1] so if you haven't tried it lately, give 0.16 or even 0.17-dev a shot if you're brave enough to try compiling [2][3][4], there have been 4500+ commits since 0.16 with a lot of improvements.
>Has anyone tried this recently? I did a few years ago and it wasn't really usable.
I use it on the regular for making small mechanical parts for 3d printing. When I was on windows I used autodesk inventor for this, but that doesn't work on linux, so here I am.
It's certainly got some issues, but they can be sidestepped with some basic experience. I wouldn't recommend it to an engineering design firm, but I'd happily suggest it to a student startup, at least to try and see if it works for them before they spring several grand for autodesk. Mostly I'm just happy that it continues to be worked on, and look forward to each new version.
Yes, I use it often. It works pretty well although it's really not perfect.
It's the only program I know that's able to directly import files from OpenSCAD.
I like to do a rapid sketch on OpenSCAD and then add fillet or chamfer in FreeCAD.
It also does good extruding of svg drawings.
I have tried other software, from Rhino (>$1000) to Onshape (free) but none match the simplicity of this workflow: openscad or svg to freecad, then export to .step
If you don't really care too much about parametric modelling, blender can import svg, extrude and bevel it quite well.
It also has a nifty 3D printing addon that is useful for cleaning up a mesh. I've started using blender almost exclusively for my 3D prints because by the time I spin up my Windows VM and pull a SolidWorks license I would have my mostly simple models done in blender.
But I love parametric modelling. I like thinking about elementary shapes (cubes, spheres, cylinders) and inputing them very precisely by setting mm and angles, etc. (really)
I have not really tried blender yet; is there a simple tutorial that you would recommend?
You can be pretty precise in blender - you can manipulate geometry to real world units easily. However unlike parametric CAD the geometry is mostly faces, edges and verts.
There are a lot of great resources online. BlenderGuru is probably the most popular.
Yes. I use version 0.16, as 0.14/0.15 was not usable.
0.16 is fairly good. I used it to design a microscope assembly. It took a ton of time to learn all the features required but once i did, it was fairly straightforward. I'd probably switch to Inventor or something else if I had the time (my coworkers use OnShape, which looks good enough for the basic stuff we do).
To me the advantage of FreeCAD is, well, it's free, and it runs on all the major platforms (IE I don't have to leave Linux to use it).
The technical weak point that will always hold it back is the kernel, Open CASCADE, when compared with Parasolid, which powers OnShape.
Parasolid is in effect subsidized by the Industrial-Military complex.
It was started in 1987 - around 20 developers then. [1]
I would guess (conservatively) that they have at least 10 developers still working on it now in 2017. An average of 15 developers over 30 years - gives around 450 person-years - all paid for by the Industrial-Military complex that funds the opaque behemoth that is Siemens PLM. [2]
Disclaimer: Parasolid dev 1989-1995.
[1] That doesn't include customer support etc - IIRC department headcount was over 40.
[2] To quote GrabCAD founder Hardi Meybaum in his Kindle ebook The Art of Product Design: "Although Siemens is a public company the PLM division is such a small part of its total business that very little financial information specific to the PLM division is released."
"I would guess (conservatively) that they have at least 10 developers still working on it now in 2017. An average of 15 developers over 30 years - gives around 450 person-years - all paid for by the Industrial-Military complex that funds the opaque behemoth that is Siemens PLM. [2]"
You make it sound like a bad thing when it's actually a solution. What you in effect said was there is a pile of money in defense contracts that can be used to subsidize development of FOSS tools. Some people are doing this (esp Galois Inc). Whoever was trying to make FOSS CAD happen didn't do this and still isn't. If they want high-quality CAD, they need to figure out how to get defense sector funding paid, skilled programmers to build the hardest parts with easy extensions by volunteering contributors. I've seen enough people in defense sector griping online about low-quality CAD tools they have that there's certainly demand. Probably just needs to be priced much lower than a lot of the others.
Some more idle thoughts [1] refining what I wrote elsewhere on this thread:
FreeCAD Arch is a smart pivot: they just need to do a hard fork from the rest of FreeCAD and replace Open CASCADE with CGAL.
History based parametric MCAD is hugely resource intensive and the 800lb gorilla SOLIDWORKS is formidable.
Best idea stay away!
If that doesn't put you off:
(1) replace history based with direct modeling
(2) have a single curved surface type of G1 (and approx G2) sheets of some closed set of implicit quartic surfaces - e.g. Dupin Cyclides or some appropriate generalization. Get very good at intersecting these!
[1] I've exited all 3D. Even the areas with dynamic markets, such as 3D-printing and augmented reality, are oversupplied with talent.
I strongly agree with all that. In fact, being FOSS could be a huge advantage.
The #2 kernel ACIS by Spatial is massively held back by albatross round its neck - ie. the parent company Dassault who have foisted there own IMO inferior kernel CGM on them in the bizarre belief that it is a technical marvel.
Dassault is also the albatross round the neck of another subsidiary: SOLIDWORKS [1], and is famous for the $6.18 billion cost overrun when Airbus transitioned the A380 from the Catia V4 kernel to the Catia V5 kernel, which is essentially CGM. [2]
My point was that it is very difficult for OpenCASCADE with its setup to compete with 450 person-years of core dev work on essentially $0 funding.
[1] "One of the non-technical issues with CGM will probably be licensing costs. DS (and, hence, Spatial) is “proud” of CGM, and will be pricing it higher than ACIS."
IMO that's the reason that OnShape exists at all though - the rockstar team that founded Solidworks finally got fed up with Dassault and decided to write Solidworks for the cloud.
ShapeManager by Autodesk is probably the technical #2, and is doing well. You can't buy it easily though. It powers Inventor/Fusion360 and is also in Revit and AutoCAD.
I've heard of Galois Inc. Isn't that where Don Stewart one of the RWH authors worked for a while? Looking a the Galois team on their webpage he doesn't seem to be there now.
There seems to be far more opportunity in crypto related stuff than anything CAD right now. It's a matter of opinion whether any particular crypto currency is a bubble but in the long term, blockchain technology isn't going to just go away and that surely must disrupt markets for years to come.
So, even though I know a lot more about CAD, I've actually just started working on my own AGPL3 crypto toolkit in a private GitHub repository in the hope that I can build a consultancy business around it and maybe do the dual-licensing thing.
Idk about Stewart or their people: just look at their projects like the Haskell VM, Cryptol, and Ivory language.
Far as crypto, there's currently a rush or bubble on blockchains. Definitely a chance for you to make money on the hype. There's also a lot of competition (noise). That will undermine you a bit. Good luck.
I used last year for modeling and later 3dprinting and really liked.
I had some little problems with some crashes and undoes but otherwise its a really nice software.
I think this project would gain much more traction if it was simple to integrate it within jupyter notebooks. Currently, it is possible, but FreeCAD window pops out outside of browser, or if it is inside the browser the scene is static (no interaction, selecting, zooming etc.) Anybody here knows solution to this?
I think this a smart pivot for FreeCAD: from MCAD to Arch.
The weak point in the kernel (Open CASCADE) is curved surfaces (and associated nightmare case analysis for blends/fillets/chamfers).. They just aren't that important in Arch. For example, SketchUp doesn't have them at all.
So now we have in free (as in freedom) software:
Arch CAD: FreeCAD - history based parametric architectural CAD - with no curved surfaces.
MCAD: Solvespace - direct modeling with streamlined NURBS only kernel.
Don't think this can be considered a pivot, just a couple of people putting extra effort into the Arch side of things.
CAM (Path module) and a revamp of Part Design are (with groundwork for Assembly) are also happening in 0.17
The UI is unstable (very easy to crash just by fiddling around), and the geometric kernel has a ton of little issues that you have to work around. At every new project I have the liberty of giving it a try without many constraints (no import/export required, minimal assemblies of elementary geometry). I really wonder how can you actually go through the relatively complex projects I've seen as a tutorial, really. I would always give up after a dozen crashes.
I've used SolveSpace in at least 4 projects, and I absolutely love it. The UI is different than FreeCAD, but in a very positive way (after learning the basics, I genuinely prefer SolveSpace's a dozen times!). It's a bit sad that SolveSpace's kernel is definitely inferior in terms of capability to FreeCAD (notably: no offsets and no chamfers!), but what is supported _is_ stable. I cannot say the same in FreeCAD, where chamfers would sometimes cause degenerate geometry or downright crash. The only minor complaint in SolveSpace is that currently it's not always obvious to see the construction tree, as it's represented linearly.
I bought a copy of VariCAD that I use on linux. But while it's certainly a capable CAD, I really don't like the UI, and the parametric modeling is clunky at best.
I don't think there's much more available in terms of parametric modeling on linux if we exclude prohibitive stuff like NX. I'd like to be proved wrong here.
I still think the best modeler I've ever used is still Rhino, a joy to work with. But while it supported parametric surfaces, it didn't really allow parametric modeling when I last used it.