原文
原始链接: https://news.ycombinator.com/item?id=41543386
OpenSCAD 提供了一种创建数字模型的独特方法。 然而,它不会取代目前可用的传统计算机辅助设计 (CAD) 系统。 用户发现将现实世界的对象解构为可绘制、组合或修改的组件具有挑战性,尤其是在处理 2D 绘图、草图、照片时。 作为数十年 CAD 用户培训师,大多数人可能不具备编写上述详细描述的能力。 尽管参数化 CAD 具有强大的功能,但其复杂性可能会带来困难。 OpenSCAD 的完全开发版本可以作为现有 CAD 软件的宝贵伴侣,因为它能够利用成熟的几何内核来处理大量复杂的细节和边缘/角落情况。 一些高级 CAD 应用程序包含类似的功能。 例如,Siemens NX支持“SNAP”等编程接口,使用户能够创建实体、执行查询、重命名、转换、修改、布尔运算、拆分、连接等,以及利用通用编程环境。 通过结合这些工具,工程师可以以 3D 方式分析其设计、评估和使用各种传统 CAD 功能。 总体而言,OpenSCAD 允许纯粹的分析设计创建以及用于评估、调试和其他 CAD 任务的用户友好界面。 虽然概念设计和制造用途尚未采用这种方法,但它非常适合涉及具有可变特征的目录零件、仿真驱动的模型形状或将机器学习与几何相结合以通过自然语言处理生成项目的专业用例。
In it's current form, it will never replace CAD as we know it today.
People have a hard enough time breaking an object they can see into features they can draw and combine, or modify as is done today. Add in the need to work with 2D drawings, sketches, photos, and it gets a bit harder for them still.
I have been training people to use CAD since the days of serious transition away from drafting boards. Very few of them would be able to author the descriptive text examples up thread.
And to be fair, parametric CAD, with or without history is powerful, but hard enough for plenty of people to really struggle, but that difficulty seems a couple orders below what we are discussing here.
Frankly, a better developed OpenSCAD could become a very powerful tool to be used in tandem with traditional CAD. It could even make use of the mature geometry kernels that way too. Those make more complex object and feature create actually work well because they have solutions for the almost innumerable corner and edge cases which always come up.
It is possible to create things largely OpenSCAD style in some CAD programs too. NX has a variety of programming interfaces, one being essentially Visual Basic with CAD appropriate functions.[2] (NX SNAP, as I recall)
You get entity create, query, rename, transform (full transform, scale, translate, rotate), modify like adding a fillet to an edge, boolean cut, join, intersect, split, add, partition... and a whole lot more! (It may not support partition, but it is supposed to for SDRC compatability, and that isn't the point anyway, so... yeah)
And there is the general purpose programming environment. Useful in all the obvious ways we here know well.
The main point is one can take an entirely analytical approach to model create, while also having the robust 3D and on NX 3D stereo[1] even, GUI to evaluate, debug, and all the other good CAD stuff!
To me, that is the OpenSCAD strength. The team can take a peek at the tools I just mentioned, add features and Open Cascade will do way more geometry cases than people think, and now you have model and entity create that can really work for some tough use cases:
--catalog parts with conditional features
--simulation and or analytically driven model shapes, many of which could be used as base features to be finished into manufacturable things
--coupled with an LLM trained on geometry, could result in Star Trek like plain language model create
There is more.
But the actual engineering, product design and manufacturing use cases are not going this way at all. It is too obtuse. People need to see, and I would argue benefit from haptics for interrogation, assembly and more.
Don't get me wrong here. All the open CAD tools are awesome. Open CAD is important and we just don't have much yet, and more is better. We do not have much yet because CAD is really hard, and the robust, mature geometry kernels out there have gazillions of man dev hours in them. Open Cascade is actually quite impressive to be for how well it really does work Given the tiny fraction of dev hours it has by comparison.
And what this means is CAD inertia is a problem likely an order harder than say the replace C code inertial some feel is worth doing.
Best bang for the dev hour investment us to augment and compliment traditional CAD, IMHO of course!
[1] All you need is a stereo capable GPU and display. I used my laptop with nVidia Quadro series and a fast Samsung 3D plasma TV for huge stereo modeling. Frankly, it was crazy good for evaluating technical surfaces and complex, think airplane internals, assembly was down right fun! Recommended and I am unsure why this is not more widely done.
[2] I used SNAP to convert bitmaps into voxel objects, where each voxel was a cube, and from those, combine them into larger voxel objects that were the basis for tooling models to make the desired shape. The retro pixel look you are picturing was desired and I wish I could show the finished project. Neat!
Have also used it to make plenum and manifolds driven by simulation output or area / flow equations.
Both cases would be torture using the traditional CAD model create UX. OpenSCAD is aligned well here if you ask me.