System Environment Variables

Description of system variables:

CASROOT is used to define the root directory of Open CASCADE Technology;
PATH is required to define the path to Open CASCADE Technology libraries, binary and 3rdparty folder;
LD_LIBRARY_PATH is required to define the path to Open CASCADE Technology libraries, binary and 3rdparty folder (on UNIX platforms only);

MMGT_OPT if set to 1 (default), memory manager performs optimizations as described below; if 0, every memory block is allocated in C memory heap directly (via malloc() and free() functions). In the latter case, all other options except MMGT_CLEAR are ignored;

MMGT_CLEAR if set to 1 (default), every allocated memory block is cleared by zeros; if set to 0, memory block is returned as it is;

MMGT_CELLSIZE defines the maximal size of blocks allocated in large pools of memory. Default is 200;

MMGT_NBPAGES defines the size of memory chunks allocated for small blocks in pages (operating-system dependent). Default is 10000;

MMGT_THRESHOLD defines the maximal size of blocks that are recycled internally instead of being returned to the heap. Default is 40000;

MMGT_MMAP when set to 1 (default), large memory blocks are allocated using memory mapping functions of the operating system; if set to 0, they will be allocated in the C heap by malloc();

MMGT_REENTRANT when set to 1, all calls to optimized memory manager will be secured against possible simultaneous access from different execution threads. This variable should be set in any multithreaded application that uses optimized memory manager (MMGT_OPT=1) and has more than one thread potentially calling Open CASCADE Technology functions. Default is 0;

Special note: for applications that heavily use Open CASCADE Technology memory manager from more than one thread, on multiprocessor hardware, execution with option MMGT_OPT=0 can be more productive than with option MMGT_REENTRANT=1.

CSF_LANGUAGE is required to define the default language of messages;
CSF_EXCEPTION_PROMPT – if defined and set to 1 then a diagnostic message is displayed in case of an exception;
CSF_MDTVFontDirectory accesses the fonts that can be used in Open CASCADE Technology;
CSF_MDTVTexturesDirectory defines the directory for available textures when using texture mapping;
CSF_UnitsDefinition and CSF_UnitsLexicon are required by programs considering units;
CSF_SHMessage is required in order to define the path to the messages file for ShapeHealing;
CSF_XSMessage is required in order to define the path to the messages file for STEP and IGES translators;
CSF_StandardDefaults and CSF_PluginDefaults are required in order to maintain CASCADE Persistence mechanism to make possible any open/save operations with OCAF documents;

CSF_StandardLiteDefaults is required in order to maintain CASCADE Persistence mechanism to make possible any open/save operations with Lite OCAF documents;
CSF_XCAFDefaults any open/save operations for XDE documents;
CSF_GraphicShr is required to define the path to the TKOpenGl library;
CSF_IGESDefaults and CSF_STEPDefaults are required for IGES and STEP translators correspondingly in order to define the path to the resource files;

CSF_XmlOcafResource - is required in order to set the path to XSD resources, which defines XML grammar.

As part of XML persistence support, these definitions can be used by end users in XML validators or editors, together with persistent XmlOcaf documents;

TCLLIBPATH, TCL_LIBRARY, TK_LIBRARY and TIX_LIBRARY are required to allow work with DRAW and WOK;
Example:
Windows platform
The env.bat script is located in the OpenCACADE<version_number>/ros folder.
set CASROOT=V:\OpenCASCADE<version_number>\ros
set PATH=%CASROOT%\win32\dll;%CASROOT%\..\3rdparty\win32\tcltk\bin;%PATH%
set CSF_LANGUAGE=us
set MMGT_CLEAR=1
set CSF_EXCEPTION_PROMPT=1
set CSF_MDTVFontDirectory=%CASROOT%\src\FontMFT
set CSF_MDTVTexturesDirectory=%CASROOT%\src\Textures
set CSF_UnitsDefinition=%CASROOT%\src\UnitsAPI\Units.dat
set CSF_UnitsLexicon=%CASROOT%\src\UnitsAPI\Lexi_Expr.dat
set CSF_SHMessage=%CASROOT%\src\SHMessage
set CSF_XSMessage=%CASROOT%\src\XSMessage
set CSF_StandardDefaults=%CASROOT%\src\StdResource
set CSF_PluginDefaults=%CASROOT%\src\StdResource

set CSF_XCAFDefaults=%CASROOT%\src\StdResource
set CSF_GraphicShr=%CASROOT%\win32\dll\TKOpenGl.dll
set CSF_IGESDefaults=%CASROOT%\src\XSTEPResource
set CSF_STEPDefaults=%CASROOT%\src\XSTEPResource
set TCLLIBPATH=%CASROOT%\..\3rdparty\win32\tcltk\lib
set TCL_LIBRARY=%CASROOT%\..\3rdparty\win32\tcltk\lib\tcl8.4
set TK_LIBRARY=%CASROOT%\..\3rdparty\win32\tcltk\lib\tk8.4
set TIX_LIBRARY=%CASROOT%\..\3rdparty\win32\tcltk\lib\tix8.1
Example:
Unix platform
The env.csh and env.ksh scripts are located in the OpenCACADE<version_number>/ folder.
setenv CASROOT /dn03/OS/OCC/OpenCASCADE-<version_number>/ros
set OS_NAME=`uname`
if ( $?PATH ) then
setenv PATH $CASROOT/../3rdparty/$OS_NAME/tcltk/bin:$CASROOT/$OS_NAME/bin:$PATH
else
setenv PATH $CASROOT/../3rdparty/$OS_NAME/tcltk/bin:$CASROOT/$OS_NAME/bin
endif
if ( $?LD_LIBRARY_PATH ) then
setenv LD_LIBRARY_PATH $CASROOT/../3rdparty/$OS_NAME/tcltk/lib:$CASROOT/$OS_NAME/lib:$LD_LIBRARY_PATH
else
setenv LD_LIBRARY_PATH $CASROOT/../3rdparty/$OS_NAME/tcltk/lib:$CASROOT/$OS_NAME/lib
endif
setenv CSF_MDTVFontDirectory $CASROOT/src/FontMFT
setenv CSF_LANGUAGE us
setenv MMGT_CLEAR 1
setenv CSF_SHMessage $CASROOT/src/SHMessage
setenv CSF_XSMessage $CASROOT/src/XSMessage
setenv CSF_MDTVTexturesDirectory $CASROOT/src/Textures
setenv CSF_StandardDefaults $CASROOT/src/StdResource
setenv CSF_PluginDefaults $CASROOT/src/XCAFResources
setenv CSF_XCAFDefaults $CASROOT/src/XCAFResources
setenv CSF_GraphicShr $CASROOT/$OS_NAME/lib/libTKOpenGl.so
setenv CSF_UnitsLexicon $CASROOT/src/UnitsAPI/Lexi_Expr.dat
setenv CSF_UnitsDefinition $CASROOT/src/UnitsAPI/Units.dat
setenv CSF_EXCEPTION_PROMPT 1
setenv CSF_IGESDefaults $CASROOT/src/XSTEPResource
setenv CSF_STEPDefaults $CASROOT/src/XSTEPResource
setenv TCLHOME $CASROOT/../3rdparty/$OS_NAME/tcltk
setenv TCLLIBPATH $TCLHOME/lib
if ( $OS_NAME == "SunOS" ) then
setenv ITK_LIBRARY $TCLLIBPATH/itk3.2
setenv ITCL_LIBRARY $TCLLIBPATH/itcl3.2
setenv TIX_LIBRARY $TCLLIBPATH/tix8.1
setenv TK_LIBRARY $TCLLIBPATH/tk8.4
setenv TCL_LIBRARY $TCLLIBPATH/tcl8.4
else if ( $OS_NAME == "Linux" ) then
setenv ITK_LIBRARY $TCLLIBPATH/itk3.2
setenv ITCL_LIBRARY $TCLLIBPATH/itcl3.2
if ( $?TIX_LIBRARY ) then
unsetenv TIX_LIBRARY
endif
setenv TK_LIBRARY $TCLLIBPATH/tk8.4
setenv TCL_LIBRARY $TCLLIBPATH/tcl8.4
endif