CAD Data Translation
A few years ago, I was involved with the introduction of a new product for viewing CAD files. It would view, measure, and perform some basic manufacturing type analysis of the models. Presenting this product to an aerospace manufacturer, the question came up whether the product was certified for certain data types. In other words, how would they know that once the file was translated and read in, that the data was exactly as was output?If you were involved with 3D CAD data in the late 1980's and early 1990's, one of the biggest issues was exchanging data between different systems. For reading 3D models, back then IGES was a common exchange format, with SET and VDA less often used, at least in the U.S.
Bezier, B-Spline, Degree, etc.
Back in the 1990's, CAD systems used different math for their 3D data. The most common were Bezier and B-spline. I don't want to get into deep math here, so if you're interested in that, I'll put some links at the end.Splines and freeform surfaces are basically polynomial math equations. Different CAD systems could accept splines up to a maximum degree, where degree is the largest exponent of the polynomial equation, and the order was typically the degree plus one. (if the equation went to the 5th exponent, it was a order 6 curve). Bezier systems typically allowed for polynomials of high order, some as high as 13.
Bezier patches |
B-Splines on the other hand use several lower-order polynomial equations and tie several of them together (with knots) to make more complicated curves, rather than just making one equation with higher exponents. NURBS, or Non-Uniform Rational B-Splines became the most popular data format for 3D freeform data.
B-Spline Patches |
So if you were reading data between a b-spline system vs a Bezier system, it had to rebuild the surfaces for their own database. Any time you rebuild data, there is always a tolerance involved, hence the question "how do you know it's exact?"
Solid Models
Solid modelers are usually B-Rep or Boundary Representation. That is they are defined by topology and geometry. Topology includes faces, edges, and vertices. Whereas geometry is surfaces, curves, and points, that make up the topology. Some faces can be defined by an elementary type, such as planes, cylinders, conics, spheres, etc. These can be translated more exactly, because a plane is a plane in most any system.Today
These days, you don't hear much about the order of faces in translation. New translation formats have increased reliability, and accuracy is close enough for most manufacturing needs. So why all of this you ask?Recently, I was contacted by someone interested in buying a small Tormach mill, and I was used as a local reference. They wanted to see first hand the finish the mill is capable of. I asked what they cut, and found a part on GrabCAD (credit to Winston Jennings for the design) that was representative of what they do.
Original model from GrabCAD |
I loaded the part into two CAD systems, and saw a significant difference on screen. In NX, the part on screen matched what was shown on GrabCAD.
Model in NX |
However, when loaded into Fusion360, not only did colors not match up, the shading made it look like there could be a problem. Not only does the shading have wrong tesselations, it appears that the face in question has a trim boundary on it that the original does not.
Model in Fusion 360 |
After further examination, the surface data seemed good enough for manufacturing. The original file is Parasolid, which is the same geometry kernel that NX uses, and Fusion360 does not, meaning it had to translate or convert the data. We wonder if this translation caused some of the rendering tesselation issue.
This is one of the reasons it is often recommended to perform manufacturing in the same system, because how do you know the data is exact? Below is the part off of the mill.
Milled part - from Tormach 440 |
Hence the original question from the aerospace company, "How do you know the data is exact?"
Links:
Want to know more about Bezier and B-splines? - Here are some linkshttps://www.cs.unm.edu/~angel/CS534/LECTURES/CS534_07.pdf
https://www.cs.bham.ac.uk/~slb/courses/Graphics/g95.html
https://pdfs.semanticscholar.org/4982/54fdd06e219cb2af519386a517fef887526f.pdf
http://www8.cs.umu.se/education/examina/Rapporter/461.pdf.pdf