SUBSYSTEM OVERVIEW

PGDX Interface (PINT) Subsystem

The PGDX subsystem is a low level subsystem in the PINT interface. The PGDX subsystem is responsible for converting MDA Parasolid entities (PINT) to/from MDA GDX entities.

GENERAL CONCEPTS

This subsystem converts GDX entities to PINT or PINT entities to GDX. The conversion will convert the specified entity type and all of its children to the corresponding representation in the other model.

Presently, the PGDX subsystems has conversions for the GDX Solid, Shell, and Face to PINT and for the PINT Solid Body, and Sheet Body to GDX. The functions are documented below.

TOLERANCES/PRECISIONS

The PINT precision and session precision fields in the body are directly converted to and from GDX model space tolerance and angle tolerance. The PINT edge precision and PINT vertex precision are not processed during PINT to GDX processing. However, PINT edge and vertex precisions can be set with options to pgdx_GDXSolidToPINT.

FUNCTIONS

The PGDX subsystem consists of the following functions:

pgdx_Initialize

Initialize the PGDX subsystem

pgdx_GDXFaceToPINTSheetBody

Convert an independent GDX Face to PINT Sheet Body

pgdx_GDXShellToPINTSheetBody

Convert an independent GDX Shell to PINT Sheet Body

pgdx_GDXSolidToPINTSolidBody

Convert an independent GDX Solid to PINT Solid Body

pgdx_PINTSheetBodyToGDXFace

Convert a PINT Sheet Body to GDX Face

pgdx_PINTSheetBodyToGDXShell

Convert a PINT Sheet Body to GDX Shell

pgdx_PINTSolidBodyToGDXSolid

Convert a PINT Sheet Body to GDX Solid

pgdx_Terminate

Terminate the PGDX subsystem

PINT -> GDX conversions

PINT_ASSEMBLY
   Not processed.  PPIR subsystem does not create assemblies in PINT model.
   
PINT_BODY
   To GDX_SOLID.  May create more than one solid.  Only Parasolid Solid
   Bodies are converted, Minimum, wire, and sheet bodies are not converted
   to GDX.  The PINT_BODY has a precision fields.  These represents the
   session precisions in the Parasolid model.  The precisions are used
   to set the GDX model space tolerance and angle tolerance.
PINT_REGION
   To GDX_SOLD.  The GDX solid only represents solid material, not void
   space.  Thus, only the solid PINT regions are converted to GDX, the
   void regions are ignored.
   
PINT_SHELL
   To GDX_SHELL.  Only PINT wire frame free shells are converted to GDX.
   Acorn, wire frame, and mixed shell types are not converted to GDX.
   
PINT_FACE
   To GDX_FACE.  Conversion can handle PINT faces without loops.  In such
   cases, the resulting GDX face will have a single loop representing the
   boundary of the surface.
PINT_LOOP
   To GDX_LOOP.  GDX does not have an isolated loop (vertex loop), thus
   the isolated loops are not converted directly.  The isolated loops are
   handled so that the parent face will still represent the geometric
   face.
   
PINT_FIN
   To GDX_EDGE and GDX_EDGE_CURVE.  The PINT_FIN corresponds to an edge
   usage entity.  GDX and Parasolid differ here.  In Parasolid, the
   usage (fin) references the edge, however, in GDX the usage (edge curve)
   is referenced from the edge.  Thus, the PINT_FIN is not a direct
   conversion.  The PINT_FIN will never have a curve.  The PPIR subsystem
   converts the fin curve (usually spcurves) to model curves and stores
   them in the PINT_EDGE.
PINT_EDGE
   To GDX_EDGE.  Only normal and general edge types are converted.  The
   wire frame and laminar edges are not processed at this time.  Nor, is the
   PINT edge precision handled at this time.  The vertices in the edge
   are used to explicitly trim the GDX curves.  GDX requires trimmed
   curve geometry.
PINT_VERTEX
   To GDX_VERTEX.  Only isolated and normal vertices are processed at this
   time.  The spur and wire vertices are not processed.
PINT_SPUN_SURFACE
   To GDX_REV_SURF.  At this time the PPIR subsystem is converting spun
   surfaces to bsurfaces.  This is being done, because the Parasolid spun
   surface can reference infinite geometry, which can not be handled by
   GDX.
PINT_BSURFACE
   To GDX_NURB_SURFACE.
PINT_BLEND_SURFACE
   Not processed by PGDX.  PPIR subsystem converts blend surface to
   bsurfaces.
PINT_OFFSET_SURFACE
   To GDX_OFFSET_SURF.
PINT_SWEPT_SURFACE
   To GDX_EXT_SURF.
PINT_CONE
   To GDX_CONE
PINT_CYLINDER
   To GDX_CYLINDER
PINT_PLANE
   To GDX_PLANE
PINT_SPHERE
   To GDX_SPHERE
PINT_TORUS
   To GDX_TORUS
PINT_BCURVE
   To GDX_NURB_CURVE
PINT_LINE
   To GDX_POLYLINE
PINT_CIRCLE
   To GDX_ARC
PINT_ELLIPSE
   To GDX_CONIC
   
PINT_TRCURVE
   Not processed by PGDX.  PPIR subsystem converts trim curve to bcurve.
   
PINT_INTERSECTION_CURVE
   Not processed by PGDX.  PPIR subsystem converts trim curve to bcurve.
PINT_SPCURVE
   Not processed by PGDX.  PPIR subsystem converts trim curve to bcurve.

GDX -> PINT conversions

Special Notes
   Parasolid assumes a default unit of meters.  The function
   gdx_ModelConvertUnits is to be used to convert the geometry to meters.
   The unit conversion is performed on the whole GDX model at once.  It
   could not be an entity mapping.  Thus, any program to create Parasolid
   data must call this function.  For more information on GDX units, see
   gdx_ModelConvertUnits, gcr_ModelVar, gdx_model_var.
   Parasolids does not have a face sense or a loop sense.  Thus, all the
   faces senses and loop senses must be true in the GDX data prior to
   converting it into Parasolids (PINT).  Parasolids also requires
   G1 continuous surfaces and curves. These constraints
   on Parasolid data can be taken care of by using the mapping
   "gdx_solid -> process gdx_solid" with the GMP_PREP_PS option, or the
   gdx_SolidProcessAll() with the GDX_PREP_PS option.
   
   View the sample programs, ptog.c and gtop.c, to see how GDX and
   Parasolids interact with mappings.
GDX_SOLID
   To PINT_BODY and REGION.  A PINT solid region and PINT body will be
   created for each body.  Void regions will not be created.  The PPIW
   does not process void regions.  Only manifold GDX bodies should be
   converted to PINT.  The precision and angle precision in the PINT body
   are set by the GDX model space tolerance and angle tolerance
   respectfully.
GDX_SHELL
   To PINT_SHELL.
   
   An independent GDX_SHELL entity can be converted to a PINT Sheet Body
GDX_FACE
   To PINT_FACE.  Parasolid does not have a loop sense.  Thus, the loop
   senses in each GDX edge must be true.  A call to the function
   gdx_SolidMakeLoopSenseTrue will ensure that the loop senses in all
   faces are true.
   
   An independent GDX_FACE entity can be converted to a PINT Sheet Body
GDX_LOOP 
   To PINT_LOOP and PINT_FIN.  The fin is created from the loop, because
   it is the usage of the edge.
   
GDX_EDGE
   To PINT_EDGE.  The curve in the PINT edge is the model curve from the
   GDX edge curve.  Options to pgdx_GDXSolidToPINT enable the PINT edge
   precision to be set.
   
GDX_EDGE_CURVE
   To PINT curve in edge.  The model curve in the GDX edge curve is used
   to generate the PINT curve in the PINT edge.  The parm curves in the
   GDX edge curve are ignored.
GDX_VERTEX
   To PINT_VERTEX.  Options to pgdx_GDXSolidToPINT enable the PINT vertex
   precision to be set.
GDX_REV_SURF
   To PINT_BSURFACE.  This conversion is being performed because the
   GDX_REV_SURF and PINT_SPUN_SURFACE handle the referenced geometry.
   The two entities bound the curve differently.
GDX_BSURFACE
   To GDX_NURB_SURFACE.
GDX_OFFSET_SURFACE
   To PINT_OFFSET_SURF.
GDX_EXT_SURFACE
   To PINT_SWEPT_SURF.
GDX_CONE
   To PINT_CONE
GDX_CYLINDER
   To PINT_CYLINDER
GDX_PLANE
   To PINT_PLANE
GDX_SPHERE
   To PINT_SPHERE
GDX_TORUS
   To PINT_TORUS
GDX_RULED_SURF
   To PINT_BSURFACE.  Parasolid does not have a ruled surface representation.
GDX_RECT_TRIM_SURF.  
    To PINT_BSURFACE. Parasolid does not have a rectangular surface
   representation.
GDX_SPLINE_SURF.  Parasolid does not have a parametric spline surface
   representation.
GDX_NURB_CURVE
   To PINT_BCURVE.
GDX_POLYLINE
   To PINT_LINE.  Only 2 point polylines are processed.  Resulting PINT
   line is not bounded.  Referencing geometry and topology will bound
   the line.
GDX_ARC
   To PINT_CIRCLE.  Create a full circle.  Referencing geometry and
   topology will bound the circle if need.
GDX_CONIC
   To PINT_BCURVE.  Parasolid can not represent all of the GDX conic types,
   so they are converted to bcurves.
   
GDX_TRIM_CURVE
   To PINT_BCURVE.  Trim curves are not compatible between Parasolid and
   gdx because of parameterization differences.
   
GDX_SPLINE_CURVE
   TO PINT_BCURVE.  Parasolid does not ha a parametric spline
   representation.