6 ms·
I think the GUI would be the hard part there. The paid / professional tools have a lot of functions that improve the process of constructing models and viewing
by generalizations 6y ago
I think the GUI would be the hard part there. The paid / professional tools have a lot of functions that improve the process of constructing models and viewing them. A clean backend would be nice, but the user experience is what would need to be solved.
- elcritch 6y agoGood point. The professor who taught my course on FEM said most of the commercial tools had FEM models not much more complex than the ones you'd make in a graduate FEM course. The real money was the GUI (and market share). One thing I've been waiting in Julia is a nice GUI toolset, but they all seem to be broken or incomplete. Julia's static compile ability is also lacking currently. My take is that there's an opening in the market for a good CAD program based on an open source modeling engine. Sell the GUI for money (or an enterprise polished version), but make the core engine and modeling open source and with a good API. It'd be a small market slice (e.g. grad students, small startups), but perhaps it could gain mindshare over time.
- imtringued 6y agoIsn't the market for CAD software pretty much saturated? Most users learn one of the few established CAD programs during college or on the job and never learn anything else. There is still an opportunity for a good opensource CAD program but only because the existing ones such as FreeCAD need an overhaul. Forking FreeCAD and fixing the glaring flaws would be significantly less work. The FreeCAD project is stagnating. There is an issue about someone wanting a visualization of the internal coordination system of a datum plane. That visualization already exists in other parts of FreeCAD but when you go through the forum posts you see that one of the users is blocking this absolutely microscopic change because of mathematical purity. Mathematically speaking planes don't have an orientation and therefore this feature would not make logical sense and you should use a local coordinate system if you want to change the orientation, including visualization. Except FreeCAD implements a datum plane with an internal local coordinate system. This results to weird things like sketches being rotated by 90°. There is no way to know in which direction your sketch has been rotated without the requested visualization so even if you wanted you can't just reattach your sketch in the correct orientation. You first have to mark the "up" direction by drawing an arrow in the sketch and then orienting the sketch with the help of that arrow. There is no need to talk about mathematical purity when the software has already broken it and makes the user suffer as a result.
- willis936 6y agoSolidworks and Autocad have horrible backends. They are slow as sin and single threaded. Neither company is paying technical staff to improve the product. I use openSCAD for 3D printing, but its limitations become quickly obvious. All surfaces are a series of 4 sided polygons. I would prefer to be able to define smooth curves and only choose the resolution on export. The language itself is a trip to wrap your head around. I regularly need to keep 4 levels of transformation in my head when working on an individual piece. There are better ways. I will need to look at AngelCAD.
- rjsw 6y agoYou could take a STEP schema and generate Julia composite types from that.
- elcritch 6y agoOh that sounds very fascinating! Could you elaborate on that? I know little of the STEP format internals.
- rjsw 6y agoSTEP is in two parts. There is the exchange format itself and the definitions of the models that are behind any exchange file. The modelling is currently done in a language called EXPRESS but this is changing to use SysML tools and then transforming a SysML model to an XML schema using XSLT. Maybe have a look at some of the Open Source CAD systems with full STEP capabilities like BRL-CAD [1] or Open Cascade Technology [2]. They contain C++ class definitions for each of the classes in supported STEP models as well as code to read and write exchange files, basically serializing and deserializing object instances. The STEP C++ classes in a system like the two mentioned are typically machine generated from the standardized model, the tool that is used in BRL-CAD to do this is stepcode [3]. [1] https://en.wikipedia.org/wiki/BRL-CAD https://en.wikipedia.org/wiki/BRL-CAD [2] https://en.wikipedia.org/wiki/Open_Cascade_Technology https://en.wikipedia.org/wiki/Open_Cascade_Technology [3] https://github.com/stepcode/stepcode https://github.com/stepcode/stepcode
- blacksqr 6y agoDon't forget about BRL-CAD. Fully open source, decades old, actively maintained, scriptable, with a mature Tk GUI.
- weinzierl 6y ago> The professor who taught my course on FEM said most of the commercial tools had FEM models not much more complex than the ones you'd make in a graduate FEM course. I haven't worked in this space for 15 years so this might have changed, but back then no one used CAD tools for serious FEM modeling. The fundamental reason is that the requirements for a good FEM mesh are different from a good geometry mesh. Just one example from my work back then is that we had to follow modeling guidelines which required the use of quads with balanced aspect ratio only. Use of triangles had to be justified. We basically remodeled everything in the FEM software (PATRAN, FEMAP and lots of in-house tools in our case).
- globuous 6y agoYeah, I did work on exactly that,porting a 2 metro ton hydrogen fuel cell CAD model to Ansys. It was a nightmare. You first have to simplify everything by hand (aka remove all the small details) and then rework the topology when importing in the FEM tool (modelling supports, junctions etc). This is actually a very active area of research (at least 5 years ago when I worked in simulation). There were papers on voxel methods, Fourier analysis (move the model to the frequency domain and filter out small details that are hard to mesh and affect convergence) to automatically réparé CAD models to an FEM environment :) I have no idea how things have advances since, but it looked nowhere near usable in the industry half a decade ago. Actually, maybe a statistical algorithms would be suited to simplify models should one have a proper dataset to train on, because it's very hard to do analytically.
- tgflynn 6y agoThe whole point of tools like OpenSCAD is that you can create complex 3D models without needing to use a GUI. I think this approach is most likely to appeal to people whose background is in programming where we often find that text based interfaces are a more efficient way of getting things done than working with a complicated GUI.
- imtringued 6y agoI haven't used OpenSCAD yet but to me the workflow appears to be verry different from what e.g. FreeCAD is doing. There is some overlap but it's not that big. OpenSCAD is useful if you can describe your model as an algorithm. FreeCAD is useful when you want to define your model visually. I don't think one can say either of them is strictly better than the other because they are not quite the same. However it's easy to see how avoiding the need for a constraint solver significantly reduces the complexity of the software.
- elcritch 6y agoOpenSCAD appealed to me as a programmer. I needed to prototype some parts and openscad was simpler than any of the GUI tools. Not sure how but I have talent making SolidWorks blow up with non-invertible matrices. :/ But OpenSCAD’s approach hit a wall quickly for me. Trying to figure out the distances for new objects was a PITA. It would be nice to have a simple GUI tool for placing an item by inserting the proper code. Ideally you’d be able to link changeable parameters in the GUI to code variables and be able to do things like show/hide in the GUI, or even a repl.
- tgflynn 6y agoI don't have much experience with it myself but based on what you said it sounds like there's a real need to have the geometry definition language embedded within a full programming language, like the parent comment said. In the meantime another possibility might be to write a code generator for the scad language.
- justinclift 6y ago
- Animats 6y agoYes, good 3D GUIs for design are very, very hard. Blender has been struggling with theirs for two decades now. Autodesk Inventor is pretty good, and that took over a decade of refinement. Trying to design 3D objects by writing code is using the wrong tool for the job. You can make cool curvy things. Now try to design an auto suspension. Or a head.