Difference between revisions of "STEP exporter"

From BRL-CAD
(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 we ...)
 
(Update exporter 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 we don't have an exporter.
+
STEP is the current standard for exchange of CAD data between different software packages.  BRL-CAD makes use of the STEPcode libraries to support import and export of STEP files, but STEP is a very large standard and there is a lot of additional work to be done.
  
For this project, there's a lot of directions that can be taken but the main goal is to export geometry as faithfully as possible.  That means the implementation will have to be aware of the geometry representation type being exported, whether it's implicit CSG geometry, NURBS geometry, polygonal mesh (NMG or BoT) geometry, or something else and export accordingly to the appropriate STEP container type.
+
For this project, there's a lot of directions that can be taken:
  
There are two relevant standards, AP203 and AP214.  We have copies of the standards that will be shared to make sure you're exporting appropriately.  It may also save you a lot of time and effort if the STEP Class Library (SCL) can be used for writing out geometry.
+
* We usually export Brep geometry since that is what AP203 supports, but newer STEP standards (AP214, AP242) also support a number of geometric primitives.  We also don't currently support exporting mesh geometry (triangle or polygon based) and that's something we need to support, even if STEP isn't really a traditional container for triangle meshes.
  
Specific items to remember:
+
* We don't do much about trying to preserve our attribute metadata currently - explore what options are available for doing so.
  
* The libraries should compile with strict compiler flags, as used in recent BRL-CAD compilations.
+
* Undoubtedly many more possibilities.
* The generated source code files should be usable "out of the box" for g-step
+
 
* 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.
+
 
 +
There are three relevant standards: AP203, AP214, and the in-development AP242.  A number of useful resources are listed below.
  
 
=References=
 
=References=
  
 
* src/conv/step
 
* src/conv/step
** this is where the current step-g importer resides
+
** this is where the current step-g importers and exporters resides
 
* src/other/step
 
* src/other/step
** this is the SCL
+
** 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++

Revision as of 08:45, 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 import and export of STEP files, but STEP is a very large standard and there is a lot of additional work to be done.

For this project, there's a lot of directions that can be taken:

  • We usually export Brep geometry since that is what AP203 supports, but newer STEP standards (AP214, AP242) also support a number of geometric primitives. We also don't currently support exporting mesh geometry (triangle or polygon based) and that's something we need to support, even if STEP isn't really a traditional container for triangle meshes.
  • We don't do much about trying to preserve our attribute metadata currently - explore what options are available for doing so.
  • Undoubtedly many more possibilities.


There are three relevant standards: AP203, AP214, and the in-development AP242. A number of useful resources are listed below.

References

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

Requirements

  • Familiarity with C++