
FreeCAD Arch development news - buovjaga
http://yorik.uncreated.net/guestblog.php?2017=361
======
usernam
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.

~~~
gh02t
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.

~~~
delhanty
Is Solvespace history based 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.

~~~
gh02t
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.

~~~
sidegrid
What do you dislike about SolidWorks?

~~~
gh02t
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.

------
IshKebab
Has anyone tried this recently? I did a few years ago and it wasn't really
usable.

The only good open source CAD program I've found is SolveSpace
([http://solvespace.com/](http://solvespace.com/)). It's a bit of a weird
program but actually works well.

~~~
bambax
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

~~~
knolan
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.

~~~
bambax
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?

~~~
knolan
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.

This is one I came across here on HN that I like

[https://learntemail.sam.today/blog/blender-for-
hackers-3d-mo...](https://learntemail.sam.today/blog/blender-for-
hackers-3d-modeling-is-just-like-using-vim/)

------
buovjaga
My hat is off to LulzBot creators Aleph Objects for sponsoring FreeCAD
development in addition to the two full time Blender devs.

Maybe someone knows, if there are even more FOSS 3D projects they are funding?

~~~
hugs
They also have sponsored Slic3r.
([http://slic3r.org/donations](http://slic3r.org/donations))

------
MichailP
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?

~~~
kwk1
This was a Google Summer of Code project that didn't get an applicant/accepted
this year:
[https://www.freecadweb.org/wiki/IPython_notebook_integration](https://www.freecadweb.org/wiki/IPython_notebook_integration)

------
delhanty
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.

~~~
jononor
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

