ISTLDataContext Interface
- SetBinary
 
- SetSeparateObjects
 
- SetCreaseAngle
 
- SetBuildTree
 
- SetAnalysisType
 
 
ISTLDataContext is the base interface for setting different options for
import/export of STL files.  Reference to this interface is used in various
Save/Load methods. The set of options accessed by this interface is kept by the
model object normally for the lifetime of the application. 
    ISTLDataContext can be queried from IModel or
        IModelEx interfaces 
    ISTLDataContext is available only in componets of DG Kernel Enterprise product 
See also Interface List 
  
HRESULT SetBinary( VARIANT_BOOL binary )   
Parameters 
 binary   - [in] - If true the solid
will be saved in binary STL format.  
Returns   
  - S_OK in case of 
  success.
  
- 
  
 - Remarks: 
 
 
The property has effect only during saving STL files. If  binary   is
true the file will be saved in binary STL format. The default for
this property is true. 
 
HRESULT SetSeparateObjects( VARIANT_BOOL separate )       
 
Parameters 
 separate       - [in] Separate
solids during load/save STL file operation.    
Return Values  
- 
  
 - S_OK in case of 
  success. 
  
 -     
  
 - Remarks: 
 
 
By default during the load of an STL file the component analyses the loaded
mesh and separates linked meshes as different objects. Set this property to
false to improve performance.   
This property should also be set to true when saving or loading is performed
to/from an STL Data Directory. In this case each STL file will be stored or
loaded into/from different object in the model.  
This property is ignored when surface analysis is disabled with a call to 
SetAnalysisType((int)ESTLAnalysis.eStlAnalysSkip) or if analysis type was set 
    to auto with 
SetAnalysisType((int)ESTLAnalysis.eStlAnalysAuto) and the model was very 
    large.  
 
HRESULT SetCreaseAngle( double degrees )       
 
Parameters 
 degrees       - [in] Crease angle
in degrees. See remarks  
Return Values  
- 
  
 - S_OK in case of 
  success. 
  
 -     
  
 - Remarks: 
 
 
This property has any effect only during load of an STL file. Crease angle is
used to determine how to handle normals during the load.  When two adjoined
faces have angle more than the crease angle two separate normals will be created
one for each face. In the latter case edge between the face will look sharp. Set
this property to a higher value to make the surface appear smooth.  The
default value is 0.0.  
 
HRESULT      SetBuildTree( VARIANT_BOOL build )      
Parameters 
 build      - [in] Indicates whether
to build the STL directory tree or save all objects as a flat set of STL files
Default: true  
Return Values  
- 
  
 - S_OK in case of 
  success. 
  
 -  
 
  -     
  
 - Remarks: 
 
 
If the method is called with build set to false,
during the next relevant saving operation the STL directory will not be created.
Instead all object will be saved in a single folder.  It also would mean
that any next relevant loading operation will load only files from the requested
folder, not from its subdirectories, and all the objects will be made top-level
objects of the model and will not have any children. 
 
HRESULT SetAnalysisType( int type )      
Parameters 
type - [in] Member of
ESTLAnalysis enumeration. Determines 
whether the surface analysis will be performed during the import 
- 
  
 - Remarks: 
 
 
The method is relevant to STL load only and does not affect saving to STL. The method determines whether the surface analysis will be performed during 
the import. It is provided to allow faster load of very large files. The analysis 
    separates objects which are geometrically isolated in the surface if the 
    separation was enabled with SetSeparateObjects 
    and recalculates normals to the surface to make the surface 
smooth instead of the faceted appearance common for STL models. When 
type is eStlAnalysAuto 
(value 0, default) the analysis is performed depending on size of the STL file 
to reduce load time when the file is large or to improve quality of the surface. 
The other two options force to perform improvement of the surface:
eStlAnalysPerform (value 1) or skipping 
the analysis: eStlAnalysSkip (value 2). 
When analysis is not performed separation of objects is not performed either 
irrespectively of values set with SetSeparateObjects 
                 |