Most active commenters
  • rao-v(5)

←back to thread

238 points jamesbvaughan | 11 comments | | HN request time: 0.653s | source | bottom
1. rao-v ◴[] No.44437398[source]
Isn’t the python based build123d the current best CAD in code solution? The problem with OpenSCAD is that it cannot export solid geometry, just a final mesh.

More broadly, I was genuinely shocked to realize, when I was playing with it, that there is no cross CAD file format that captures even simple design concepts like “this hole is aligned to the center of this plate” or even “this is a 2mm fillet”. STEP (the file format) mostly just captures final geometry.

I think CAD people just … redesign the part again if they need to move from say Fusion 360 to FreeCAD or whatever. How do they live like that?!

replies(4): >>44437853 #>>44437963 #>>44438309 #>>44439117 #
2. fwip ◴[] No.44437853[source]
I don't think they change programs very often, and only very rarely in the middle of a project.
replies(1): >>44439973 #
3. rjsw ◴[] No.44437963[source]
STEP is capable of capturing what you describe, it is down to the "user group" of customers of the CAD vendors to ask for it to be implemented by each CAD system in terms of what they import and export.

We put in for some funding for the next edition of STEP AP242 for me to be able to work more closely with the user group to improve this area.

replies(1): >>44439029 #
4. mk_stjames ◴[] No.44438309[source]
It's really hard to explain if you don't know how CAD kernels produce final BREP shapes via their process trees, but, try give an example- something like "this is a 2mm fillet" requires a 'fillet solver' that is deeply ingrained in the kernel. It isn't something that would ever be portable, say, from Fusion360 to CATIA natively because those are completely different kernels with different ways of 'solving' the model (and not just fillets, but, everything).

That is why STEP containing the final BREP manifold solid is the standard interchange that it is - it is a final representation of the solved output that IS portable, and anything else is... difficult.

replies(1): >>44439962 #
5. rao-v ◴[] No.44439029[source]
That's awesome! Yeah it seems strange to me that we don't have a standard way of tracking how a model is built up and parameterized (basically Fusion 360's history mode). I'd naively assumed that this was a solved problem in the CAD world - given the whole point of parametric CAD is to be able to easily tweak the distance between two points and have the whole model update.
6. ethan_smith ◴[] No.44439117[source]
The interoperability problem stems from CAD kernels using proprietary B-rep representations and constraint solvers, with STEP's AP242 standard attempting to address this by including Product Manufacturing Information (PMI) and semantic annotations, though adoption remains fragmented.
replies(1): >>44439980 #
7. rao-v ◴[] No.44439962[source]
This is helpful but surely we can save a consistent description of the process step and the input parameters alongside the final geometry in the same file format?
replies(1): >>44447197 #
8. rao-v ◴[] No.44439973[source]
I think this maybe why!

Of course it’s great for vendor lock-in.

But given how many companies need to work with diverse suppliers, there must be a whole bunch of re-creating models happening. There is no chance that everybody is using the same CAD tool

replies(1): >>44441646 #
9. rao-v ◴[] No.44439980[source]
I’d have assumed that somebody had a format for just the basic operations … but it looks like even that is just being considered
10. rjsw ◴[] No.44441646{3}[source]
The big example of this is Airbus on the A380 [1], design offices were using different versions of CATIA, we added some features to STEP to allow wiring harnesses to be modelled explicitly.

[1] https://en.wikipedia.org/wiki/Airbus_A380#Production_and_del...

11. mk_stjames ◴[] No.44447197{3}[source]
Yes, we could, but there are very few open source fully parametric couplings of kernels and the file format out there. FreeCAD (using OpenCASCADE as a kernel) is one of the few. And that is nothing close to the vastness of modern CAD+PLM systems in level of functionality.

There is a reason that systems like Dassault's CATIA are both ubiquitous in aerospace and automotive and closed source- it is literally the culmination of probably 3000+ person-years of programming, stemming from the 1970s. The same for many others... making them interoperable would mean making the entire chain of systems open source and there isn't a reason for them to do so.

For small projects though, building DSLs and graphical tools on top of OpenCASCADE (which is GNU LGPL version 2.1 licensed) is about the closest you could get right now, particularly, in my opinion, building something like a pseudo-gui+textural tool with the Python package Build123D.