Difference between revisions of "STEP importer improvements"

(New page: STEP is the current standard for exchange of CAD data between different software packages. BRL-CAD makes use of the NIST STEP Class Libraries code to support its step-g converter, but th...)
 
(Update STEP importer task)
 
Line 1: Line 1:
  
STEP is the current standard for exchange of CAD data between different software packages.  BRL-CAD makes use of the NIST STEP Class Libraries code to support its step-g converter, but the converter is still in its infancy.
+
STEP is the current standard for exchange of CAD data between different software packages.  BRL-CAD makes use of the STEPcode libraries to support its step-g converter, but the converter is still in its infancy.
  
The importer should at least be updated to preserve the geometry hierarchy during import.  Right now, the converter only imports a subset of NURBS geometry.  Support needs to be added for importing non-solid NURBS geometry, polygonal geometry, unorganized triangle mesh geometry, and implicit CSG geometry.
+
The current importer focuses on AP203 import, and needs to support a large number of data types:
  
Specific items to remember:
+
** Surfaces that are stored individually without Brep superstructure (see, for example, the wing shapes generated by OpenVSP: http://www.openvsp.org/wiki/doku.php?id=step)  Even though these are not proper "solids" in the BRL-CAD sense of the term, we can and should import them - if nothing else, we can create one Brep object per surface and then develop post-processing tools to "stitch" the surfaces into a solid.
 +
** Isolated curves can be brought in as part of sketch primitives.
 +
** Polygonal data
 +
** Unorganized triangle mesh data
 +
** Metadata (in many cases can be mapped to attributes, worst case perhaps store as binary objects...)
 +
** etc.
 +
 
 +
Right now our importer is AP203 only - we are also interested in AP203e2, AP214, and AP242.
  
* The libraries should compile with strict compiler flags, as used in recent BRL-CAD compilations.
 
* BRL-CAD makes use of the doxygen system for source code documentation, so organizing source code documentation in the step libraries to work well with doxygen should be part of the review and updating process.
 
  
 
=References=
 
=References=
  
 
* src/conv/step
 
* src/conv/step
 +
** this is where the current step-g importers and exporters resides
 +
* src/other/step
 +
** this is STEPcode
 +
 +
* Recommended Practices for AP203
 +
**http://www.steptools.com/support/stdev_docs/express/ap203/recprac203v8.pdf
 +
* Usage Guide for the STEP PDM Schema V1.2
 +
**http://www.steptools.com/support/stdev_docs/express/pdm/pdmug_release4_3.pdf
  
 
=Requirements=
 
=Requirements=
  
 
*Familiarity with C++
 
*Familiarity with C++

Latest revision as of 07:52, 1 March 2014

STEP is the current standard for exchange of CAD data between different software packages. BRL-CAD makes use of the STEPcode libraries to support its step-g converter, but the converter is still in its infancy.

The current importer focuses on AP203 import, and needs to support a large number of data types:

    • Surfaces that are stored individually without Brep superstructure (see, for example, the wing shapes generated by OpenVSP: http://www.openvsp.org/wiki/doku.php?id=step) Even though these are not proper "solids" in the BRL-CAD sense of the term, we can and should import them - if nothing else, we can create one Brep object per surface and then develop post-processing tools to "stitch" the surfaces into a solid.
    • Isolated curves can be brought in as part of sketch primitives.
    • Polygonal data
    • Unorganized triangle mesh data
    • Metadata (in many cases can be mapped to attributes, worst case perhaps store as binary objects...)
    • etc.

Right now our importer is AP203 only - we are also interested in AP203e2, AP214, and AP242.


References[edit]

  • src/conv/step
    • this is where the current step-g importers and exporters resides
  • src/other/step
    • this is STEPcode

Requirements[edit]

  • Familiarity with C++