4 ms·
Blender and Freecad[0] let the user interact via a python shell. I haven't tried to script Blender, with Freecad it's easy to start making things that auto-scal
by jakeogh 10y ago
Blender and Freecad[0] let the user interact via a python shell. I haven't tried to script Blender, with Freecad it's easy to start making things that auto-scale with a var (wall thickness for example). The two are not that comparable otherwise, Blender is light-years ahead but it's CAD roots are new-ish. CAELinux[1] has all the cool stuff bundled.
[0] http://www.freecadweb.org/ http://www.freecadweb.org/
[1] http://caelinux.com/CMS/ http://caelinux.com/CMS/
- semi-extrinsic 10y agoI have done some Python scripting in Blender, and it is very nice, but definitely a second-class citizen to the GUI. E.g. you have to insert window focus changes in your script (so that the right window has mouse focus) for certain commands to work. Also, the documentation is not very good IIRC. (This was about two years ago, so the latter point may have improved.)
- bayesian_horse 10y ago"Operators" are a very strange thing in Blender. They serve multiple functions in a Frankenstein sort of way: UI Binding, Binding between C and Python and a framework for asynchronous tasks. I even implemented an asyncio loop in Blender using a polling operator... When scripting from Python, you should almost always avoid operators, except if it is not possible to access this functionality (In the Video Sequence Editor ...). And of course the documentation never tells you what context you actually need. Besides having a ton of parameters in the definition, operators essentially take the entire state of the Blender process as a parameter passing mechanism.
- jononor 10y agoIn FreeCAD there is a clean split between UI and model. So code can just manipulate the model, without worrying about the UI. If there even is one, FreeCAD works pretty well as a plain Python library. Not trying to compare the apps otherwise, their different focus makes them great for different things.
- jononor 10y agoNote that starting with FreeCAD 0.16 one can parameterize basically anything using expressions, which binds one parameter to a mathematical expression of other parameters. So Python optional until you want to do quite complicated things.