Working with Imported Data from Other CAD Systems

Intro Associativity Part History PDM Imported Data Family Tables

The previous sections of this Primer have assumed that the data is all created and utilized in one CAD/CAM software system.  This simplifies matters because the data is in a form fully understood by the system and compatible/consistent with the numerical techniques used in the system.  Things get significantly more involved and potentially unreliable when data from CAD/CAM system A is to be used in system B, especially if the incoming data is to be a parent leaf in a part history tree and if this part is to be referenced as a parent by other children parts.

Often the data is received from the originating CAD/CAM system in a standard interface file format such as IGES (or STEP or VDA).  Some background on what then happens or needs to happen:

  • The surfaces and edge curves for the part are read from the IGES file. Hopefully the receiving system can store the curves/surfaces in original form and not have to map to another form -- this is today usually not a problem since most all systems handle non-uniform rational b-splines (NURBS) directly.

  • The first challenge is that if the geometry was modeled in a surface modeling system (rather than solid modeling system), the end user probably took no care to assure that surfaces met without gaps or overlaps (since surface modelers don’t themselves assure that the quilt work can be “stitched” into anything).

disconnected imported data

  • Each edge curve is compared to its neighboring surfaces to see if it lies on both of those surfaces within a numerical tolerance.
    • For planar surfaces there is no numerical consideration because two planes intersect exactly at a straight line.
    • For a plane and a cylinder we can get a circle or ellipse as the exact intersection. Planes and cones intersect as conic curves (circle, ellipse, parabola, hyperbola).
    • But for anything much more than these trivial cases, the problem gets very intriguing (at least for mathematicians) very fast.
    • The end effect is that all modelers compute the edge curves (or sometimes called intersection or trimming curves) to within some numerical “tolerance” of the anticipated precise value.

tolerance

  • One approach is to force the user to interactively re-intersect the disconnected surfaces (where edge curves do not lie on their neighboring surfaces within tolerance) and resolve gaps and overlaps interactively. This is tedious but is often the only way.

  • Software vendors have tried to automate the cleanup of such messy geometry:
    • One approach, usually unacceptable, is to merely loosen the tolerance in the receiving system and therefore allow a sloppy fit to nonetheless stitch together. This can have very adverse effects when downstream algorithms try to “slice” the quilt work… as is effectively what’s done when drawing section views are cut, mold bases are split, or tool paths are generated on the part.

    • Another approach is to provide partially automatic routines that, with user input and steering, search out “section loops” that span the gaps (numerical and geometric) and remove surface overlaps. This effectively “moves” the edges to the underlying surfaces.

    • Another approach is to try to stretch the surfaces (by some form of refitting; by some systems called “zip gaps”) to meet the defining edges. A danger here is that the resulting surfaces may be ill conditioned (and explosion of file sizes is a symptom of this), i.e. have undesired ripples or creases… again with very adverse effects when downstream algorithms try to “slice” this quilt work.

      A brief digression into some special case surface types:
Self-Intersecting Surface
Creased Surface
Rippled Surface

In the case of "from scratch" modeling of native geometry (as opposed to data import) in a surface or solid modeling system, the software will generally prevent or warn the end user if the user is modeling in such a way that either a self-intersecting surface or creased surface would be generated.  This is done because of the likelihood that some downstream operation will need to "slice" the geometry and the mathematics of slicing self-intersecting or creased surfaces is generally avoided because of numerical instabilities.  Strictly speaking the rippled surface (as long as it is not self-intersecting or creased) would cause no real mathematical problems although the ripples themselves may not reflect the user's desire for surface fairness.

But if the software itself happens to generate self-intersecting and/or creased surfaces as it seeks to auto-stitch imported geometry, we could indeed expect significant (and undesirable) instabilities (including crashes) in downstream slicing operations.  The introduction of surface ripples would not necessarily cause software instabilities in slicing, but would result in inappropriate and overly complex NC tool paths. 

  • Some specialty software companies (e.g. ITI, Theorem) have as their primary business developing software to attack this difficult problem of “healing” imported geometry. And their solutions are well short of fully automatic.

So the bottom line is that using imported data from another CAD/CAM system can be a difficult task.   User intervention is usually involved to arrive at a reliable model that cleanly (and repeatably) stitches together to bound a solid object that is numerically consistent with other part features and reference parts that we desire to be associative children of the imported data.  And the stitched part must have clean geometric surfaces that can be successfully "sliced and diced" to support all the necessary downstream operations, e.g. mold splitting, drawing section views, and NC tool path generation.

Previous Intro Next


Copyright © 1996-
2004
Primer Developed by Wayne McClelland, WAMware Ltd.