zlacker

[return to "Text-to-CAD: Risks and Opportunities"]
1. digdug+eN[view] [source] 2023-10-20 05:07:12
>>danboa+(OP)
The world doesn't need Text-to-CAD. The world needs a fully capable open source parametric 3D geometric CAD kernel.

Solidworks, Creo, AutoCAD, Fusion, etc., can all take their bug ridden unoptimized single threaded rent-seeking monstrosities and stick em where the sun don't shine.

Seriously - if anyone wants to create an absolutely world-changing piece of software, start working on a new CAD kernel that takes the last 50 years of computer science advances into account, because none of the entrenched industry standards have done so. Don't worry about having to provide customer service, because none of the entrenched industry standards worry about that either.

And no - while openCascade and solvespace are impressive, they aren't fully capable, nor do they start from a modern foundation.

◧◩
2. wizzle+o21[view] [source] 2023-10-20 08:08:57
>>digdug+eN
Have you worked with Open Cascade recently? As someone who works with it every day for developing a CAD application, it would be interesting to know what people see as its limitations. It's the only geometry kernel I've had access to, and it seems like an absolute gift
◧◩◪
3. westur+G81[view] [source] 2023-10-20 09:11:56
>>wizzle+o21
cadquery wraps OCC (OpenCascades) but used to wrap freeCAD.

Here's a LEGO interlocking block brick in cadquery: https://cadquery.readthedocs.io/en/latest/examples.html#lego... .

awesome-cadquery: https://github.com/CadQuery/awesome-cadquery

cadquery and thus also jupyter-cadquery now have support for build123d.

gumyr/build123d https://github.com/gumyr/build123d :

> Build123d is a python-based, parametric, boundary representation (BREP) modeling framework for 2D and 3D CAD. It's built on the Open Cascade geometric kernel and allows for the creation of complex models using a simple and intuitive python syntax. Build123d can be used to create models for 3D printing, CNC machining, laser cutting, and other manufacturing processes. Models can be exported to a wide variety of popular CAD tools such as FreeCAD and SolidWorks.

> Build123d could be considered as an evolution of CadQuery where the somewhat restrictive Fluent API (method chaining) is replaced with stateful context managers* - e.g. with blocks - thus enabling the full python toolbox: for loops, references to objects, object sorting and filtering, etc.*

"Build123d: A Python CAD programming library" (2023) >>37576296

build123d docs > Tips & Best Practices: https://build123d.readthedocs.io/en/latest/tips.html

BREP: Boundary representation: https://en.wikipedia.org/wiki/Boundary_representation

Manim, Blender, ipyblender, PhysX, o3de, [FEM, CFD, [thermal, fluidic,] engineering]: https://github.com/ManimCommunity/manim/issues/3362

NURBS: Non-Uniform Rational B-Splines: https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline

NURBS for COMPAS: test_curve.py, test_surface.py: https://github.com/gramaziokohler/compas_nurbs :

> This package is inspired by the NURBS-Python package, however uses a NumPy-based backend for better performance.

> Curve, and Surface are non-uniform non-rational B-Spline geometries (NUBS), RationalCurve, and RationalSurface are non-uniform rational B-Spline Geometries (NURBS). They all built upon the class BSpline. Coordinates have to be in 3D space (x, y, z)

https://github.com/compas-dev

compas_rhino, compas_blender,

- [ ] compas_o3de

Blender docs > Modeling Surfaces; NURBs implementation, limits, challenges: https://docs.blender.org/manual/en/latest/modeling/surfaces/...

/? "NURBS" opencascade https://www.google.com/search?q=%22nurbs%22+%22opencascade%2...

OCCT (OCC) Open Cascade Technology: https://en.wikipedia.org/wiki/Open_Cascade_Technology

OCCT > Standard Transient _ MMtg_TShared > Geom_Geometry > Geom_Curve > Geom_BoundedCurve > Geom_BSplineCurve https://dev.opencascade.org/doc/occt-6.9.1/refman/html/class...

OCC > Standard Transient _ MMtg_TShared > Geom_Geometry > Geom_Surface > Geom_BoundedSurface > Geom_BSplineSurface: https://dev.opencascade.org/doc/occt-6.9.1/refman/html/class...

Cadquery.Shape.toSplines(degree: int = 3, tolerance: float = 0.001, nurbs: bool = False)→ T https://cadquery.readthedocs.io/en/latest/classreference.htm...

[go to top]