I thought I would knock some dust off my drafting skills after a small chat with @[email protected]
Seeing this image on the tutorial made me realize, FreeCAD seems to be a Technical Geometry Super-Suite. It makes sense that CAD would grow to include all of these things. But I thought sharing the initial perspective of some one who hasn’t looked at this stuff in about 18 years might be interesting.
Granted I’m not actually familiar with most of this stuff, and none of it from the POV of FreeCAD. If this can deliver 10% of what I’m looking at, I’m in for a treat.
Completely agree about STL, however, I cannot for the life of me understand why 3MF isn’t a binary format.
It has all these big tech companies behind it, and they landed on incredibly short sighted mistake of making the format human readable, instead of providing good tools for reading and modifying the binary format.
Compressing the human readable content is fine for reducing storage size. But de/serializing the XML is going to be at least 3 orders of magnitude slower. Given a sufficiently large file, the difference would be waiting 30 seconds, vs a barely noticeable 0.3 seconds.
What isn’t variant of XML these days? I know, it’s bad but it’s what it is.
XML isn’t as common as one would think. It’s been steadily decreasing in popularity and use. It’s a very verbose format that is suited to enrich a larger set of data, such as HTML documents. For data heavy documents where, it’s a particularly bad match, as you end up using as much text for annotation as the data itself.
Using XML for 3MF is IMHO a technical cop-out, where you don’t really want to solve it “correctly”, so you go with something that is “good enough”. With XML, you know it’ll be able to encode anything, be human readable, and have existing parsing libraries in pretty much any programming language and standard libraries. So, it makes sense. However, if you’re creating such a format, the least one should do, is write a sibling standard for how to directly binary encode the data. This isn’t a hard thing to do. It just need a standard for how to do it, so everyone agrees. Here is an example online on how a rudimentary implementation could be done for OBJ files, but the principle is the same. That way you could chose to export either as 3MF or 3MFB (for binary), and as long as your slicer, and what not, can decode it, you’re good.
The hard part of 3MF was all the great work in standardizing what, and how that is represented.