3 ms·
I wish there was a way to combine the power of an imperative language driven model generating language like this (that generates breps, NOT meshes like openscad
by mk_stjames 4y ago
I wish there was a way to combine the power of an imperative language driven model generating language like this (that generates breps, NOT meshes like openscad) but with the initial modeling using a GUI like a standard CAD tool. The reason being, it is much, much faster to draw complex parts using traditional methods versus trying to 'program' them. Writing code is fine for basic shapes, but go and try an 'code' a complex ribbed casting with bezier-definied swept surfaces.
I'd love to see a way to generate models with normal tools but, in the background, be able to access a code file that could then be embedded in an external script, headlessly. This way, say I have a part where 3 parameters change- I could take the code for that part, nest it in 3 for-loops, and iterate thru all the combinations of dimensions, procedurally generating the models (and potentially exporting them to a permanent format). FreeCAD allows actions to be scripted with Python but again, the actions have to be done in the language first- there is no 'going backward' from a part done in the GUI to Python (from what I can tell).
This is what parmetric programs like NX, Catia, Solidworks have the ability to do via "design tables" or other internal tools. But even those tools don't have an easily portable 'language' that the models are portable in, and the kernels aren't something that you can get in and poke around with (or interface with, say, Python, which is my dream).
Just food for thought for the author of this.
- speps 4y agoSee Houdini: https://www.sidefx.com/ https://www.sidefx.com/ As a programmer, it's my favourite tool to make meshes. It's become a game studio standard over the last decade.
- mk_stjames 4y agoMeshes are not CAD data. Engineering applications need math surfaces, and thus use Boundary Representation (brep) based models, not triangle meshes. This is the main difference between video games & vfx tols and engineering CAD tools and the reason why there is so little crossover in the software development of those tools. The author's tool here uses OpenCascade which is a true solid modeling brep kernel, hence my comments.
- nikki93 4y agoDoes Grasshopper in Rhino count?
- mk_stjames 4y agoGrasshopper can indeed drive NURBS surfaces in Rhino if I remember correctly, yes. But it suffers from the same problem I describe initially- you have to start with design from Grasshopper- it is a one-way-flow. There is no way to parametrically model something in Rhino and have it automatically generate a model graph that can then be reused. This is the main difference between tools like Rhino and the aforementioned parametric modelers (Autodesk Fusion360 is another fully parametric solid modeler that supports a 'tree' build with parameters that can then be changed at will at any time, and the model will rebuild).
- rcme 4y agoWhat is the end result you want? If you're modeling by hand, why do you want to "program" the model later? What would that look like? What units would you operate on? What would the output be? etc.
- mk_stjames 4y agoAn example would be similar to how a catalog / design table is used for generating parts procedurally in software like Catia: Say you have a CAD model of a special bolt you have made completely from scratch and it is fully parameterized- you can edit the diameter, the shank length, the thread length and pitch, the head size and height, etc. all by changing values in the parameters linked in the design tree. Doing this automatically updates the geometry. Now say you have a catalog of 1000 sizes of this flavor of bolt. M6 thru M14, different threads, all the dimensions change to very specific standards... and you need to generate files for all those so they can be used by your company in assemblies or sent to others, but individually. Professional tools have ways to take, say, a CSV table of all those numbers and link the CSV to the CAD, and then generate and export STEP files and save them to a disk. I've done just this example many times over the years in Catia V5. Highly parameterized part catalogs are prevalent in automotive and aerospace companies tied very closely to their CAD and PLM solutions (and thus highly non-portable and very much proprietary...) It would be great if there was some FOSS that was lightweight and similarly capable. Looking more into it, FreeCAD can actually do something similar, but I don't know if the parameters are accessible to rebuild the models via a Python module outside of the GUI.
- throw_m239339 4y agoHoudini, as a mesh based modeler, also called artistic modeler, is not appropriate for industrial design, because of the way it handles topology like every other mesh modelers. This is a very different use case. CA industrial D software are actually aware of how machine tools work, that's why their tools and API are named based on real machine tools and have the exact same constraints as physical machine tools. Houdini has no such constraints nor awareness about manufacturing trade, anything goes including non-manifold geometries in topologies.
- eternauta3k 4y agoI've done that with the excellent Salomé[1]. Model and mesh something manually, export my actions to a python script, clean it up and refactor it. https://www.salome-platform.org/ https://www.salome-platform.org/
- mk_stjames 4y agoWow, yep a quick look and this is exactly what I am talking about. I was aware of the Salome project as the FE pre and post tools for code_aster and I'd even used the geometry and meshing tools before years ago, but had no idea they had a much fuller fledged CAD tool in this 'Shaper' module. Honestly it's kinda buried in the fact that Salome as a whole has so many domains. I feel like more people would use this if it was promoted standalone. In some ways it looks similar yet more useable than FreeCAD.