3D System Variables in the OdaMfcApp Sample Application

Roman Martens

October 15, 2020

OdaMfcApp has several system variables that are useful when working in 3D. To experiment with them, you can easily make adjustments to the system variable settings using command line.

These system variables are commonly used when working in 3D:

  • DISPSILH
  • ISOLINES
  • FACETRES
  • INTERSECTIONDISPLAY and INTERSECTIONCOLOR
  • HALOGAP
  • SOLIDHIST and SHOWHIST
  • LOFTPARAM and LOFTNORMALS
  • LOFTANG1 and LOFTANG2
  • LOFTMAG1 and LOFTMAG2
  • AcisSaveAsMode, AcisProxyMode, and AllowSavingEmptyAcisObjects

To change the value of a system variable at the command line:

  1. Type the name of a system variable, then press Enter.
  2. Type a new value for the system variable, then press Enter.
  3. Click Regen All to see the changes if the system variable affects visualization.

 

OdaMfcApp example

 

The following section describes supported system variables.

DISPSILH system variable

This variable controls the display of silhouette curve edges and meshes in 2D Wireframe and 3D Wireframe visual styles.

Default: 0

Range: 0 to 1

The pictures below show a 3D object in Shaded and Wireframe visual styles when DISPSILH is off and on.

 

3D object in Shaded mode

 

DISPSILH example

 

DISPSILH second example

ISOLINES system variable

This variable specifies the number of isolines displayed per surface on 3D solids in 2D Wireframe and 3D Wireframe visual styles.

Default: 4

Range: 0 ... 2047

The pictures below show a 3D object in the Wireframe visual style when ISOLINES=4 and ISOLINES=8.

 

ISOLINES=4

 

ISOLINES=8

 

FACETRES system variable

This variable specifies the quality (smoothness) of hidden, shaded, and rendered objects.

Default: 0.5

Range: 0.01 ... 10.0

The pictures below show a 3D object in the Hidden visual style when FACETRES=0.5 and FACETRES=0.9.

 

FACETRES=0.5

 

FACETRES=0.9

 

AcisSaveAsMode system variable

This variable controls the exploding of ACIS entities (3D solids, bodies, and regions) while saving to R12 and earlier drawing files.

Default: 0

Range:

0 = 3D solids, bodies, regions, and DbSurfaces are saved as polyface mesh entities.

1 = 3D solids, bodies, regions, and DbSurfaces are saved with edges only (no isolines or silhouettes).

AcisProxyMode system variable

This variable controls what is saved to a proxy's graphics metafile for ACIS entities (3D solids, bodies, regions).

Default: 1

Range:

0 = Save meshes.

1 = Save edges only.

AllowSavingEmptyAcisObjects system variable

This variable determines how to save ACIS objects when ACIS data cannot be converted to other versions. This may happen when a modeler module is not loaded, so the result is that the conversion engine is unavailable. If AllowSavingEmptyAcisObjects is on, the system does not throw exceptions and saves empty objects. Otherwise it throws an exception to prevent data loss.

Default: False

Range: True or False