Jon Phillips wrote: > What would be the closest free software equivalents to Autocad and > solidworks, the solid modeller?
For 2D, QCad seems to be a highly popular choice. I don't particular like it, because it's not parametric. So if you develop a design interactively, you'll go back and forth a lot. If you're capturing an existing design, it may work well, though. For parametric 2D work, I sometimes abuse fped. Or if it's something too complicated for fped, I write a script that outputs paths in gnuplot style. These are easy to process and the various tools I've written for massaging CNC data use some variant of gnuplot. For 3D, the choice is hard. Again, lots of the programs are not parametric. A while ago, I looked at Art of Illusion, Wings 3D, and HeeksCAD. They all have nice GUIs and are okay for some simple work, but they don't preserve the construction process. So if you decide to make, say, the basic shape everything else attaches to a little larger, you have to manually play back all the construction steps. I haven't tried FreeCAD yet. There are also some more obscure CAD systems, including BRL-CAD. For the Ben counterweight, I ended up using HeeksCAD with the scripting extension HeeksPython, which then provides the ability to model in a parametric way. HeeksCAD also has an extension called HeeksCNC to generate machining instructions. HeeksCAD also has some extensions that allow more advances parametric modeling, such as an equation solver that lets you define some goals and it then numerically adjusts a set of parameters until these goals are met. I haven't used this yet. I don't know of any 3D CAD that tightly integrates a programmatic approach with a GUI, like fped does. In fped, all the dimensions come from the keyboard and the logical structure is defined with the mouse. That is, if you choose GUI mode. You can also use it non-interactively, much like a compiler. Which brings us to scripted CAD/modeling systems. There are basically try types: the ones that have their own language, like OpenSCAD or POV-Ray, and the ones that build upon an existing scripting language, usually Python. I've used POV-Ray in the past and liked it so far, but it has licensing issues. I've also experimented with OpenSCAD and Python-based Cadmium. OpenSCAD has a very nice interactive development environment. You still do the usual edit-compile-run cycle, that is edit-render-display. One weakness of OpenSCAD is that the CSG engine (OpenCSG) is very unforgiving about numerical errors. E.g., as a 2D example, if fuse a triangle (0, 0)-(1, 0)-(0, 1) with a triangle (1, 0)-(1, 1)-(0, 1), do you get a square or still two triangles with an infinitely small gap between them ? With OpenCSG, both outcomes are possible. Even better, it may fuse them partially and you get a very narrow "fjord" some distance into the square-like area. Similarly, if you subtract one of the above triangles from a unit square, you may not get just a triangle as you'd expect, but also two very narrow critters on the sides that should have disappeared. If you translate this to 3D, these narrow critters would be faces, so the result may just look like before, with a hollow inside. Or maybe with the hollow partially covered. Programs used for further processing, such as MeshLab or a converter for machining may have their own misgivings about such artefacts. In OpenSCAD, you can solve such issues by introducing small overlaps where rounding errors may leave behind artefacts, but it's tedious work to instrument your model this way. Cadmium uses Open CASCADE that seems to have a better idea of what output people expect and doesn't produce such artefacts. Its drawback is slowness. See also this thread for OpenSCAD vs. Cadmium details and a lot more background: http://lists.en.qi-hardware.com/pipermail/discussion/2011-July/008476.html All the scripted 3D systems (HeeksCAD, OpenCAD, Cadmium, etc.) I've seen so far expect the user to do the math and to provide just coordinates. They don't have concepts like calculating a tangent, although the ones written for sufficiently powerful scripting languages could be extended in this direction. Alas, they also don't have things like chamfering or filleting. In the case of HeeksPython, the HeeksCAD GUI would have such things. When the geometry gets tricky, I often resort to just writing my own scripts. E.g., here: http://projects.qi-hardware.com/index.php/p/wernermisc/source/tree/master/vialtray The output is this: http://downloads.qi-hardware.com/people/werner/tmp/vialtray.jpg None of the above 3D CAD systems makes me feel confident that I'd be able to do a real product-oriented design without tripping over some of its limitations sooner or later. I've started to experiment with extruding 2D polylines along 2D polyline paths in combination with smoothing (this prouces the chamfers and fillets), as opposed to constructing things from basic solids, but that's still in progress: http://projects.qi-hardware.com/index.php/p/cae-tools/source/tree/master/ptrude The Blender controls make me feel like being given the task of flying the Vogon variant of a 747 while hung upside down from the cockpit ceiling. I haven't been able to figure out how to do things beyond a "hello world" cube with it, nor can I tell if it does any of the basic tasks better than the others. - Werner _______________________________________________ Qi Hardware Discussion List Mail to list (members only): discussion@lists.en.qi-hardware.com Subscribe or Unsubscribe: http://lists.en.qi-hardware.com/mailman/listinfo/discussion