Open CASCADE Technology version 5.2

Open CASCADE SA is pleased to announce that a new release of Open CASCADE Technology (version 5.2) is available for public download.

This new minor release of Open CASCADE Technology 5.2 introduces quite a number of new features and improved traditional functionality along with certain changes over the previous public release 5.1 and maintenance releases 5.1.x exclusively available to the customers. This new release brings more opportunities to Open CASCADE users.

Here is just a few new features and improvements included in this release:

- Open CASCADE now supports MS Windows® XP, Red Hat Linux 8.0 and Mandrake Linux 8.0 !
- Draw Test Harness has been made a single executable – DRAWEXE with plug-in architecture and dynamically loaded commands;
- Two new OCAF persistence schemas – XML and Binary – have been added;
- New component for visualizing meshes- MeshVS;
- STL streams support has been added;
- Support of Microsoft .NET has been added and demonstrated with the help of the new C# programming sample;
- Documentation on Pipes, Offsets has been extended. Java Extractor documentation has been added;
- Two more Open CASCADE Technology algorithms (Local Operation and 3D Offsets) have been ported to New Boolean Operations thereby gaining better quality and reliability;
- Text output capabilities of Open CASCADE 3D viewer (Windows platform only) have been extended with the possibility to use texture-mapped fonts as an alternative to traditional bitmap fonts;
- An important improvement in visualization: now a large number of objects (up to thousands) can be highlighted in the 3d Viewer;
- XDE (eXtended Data Exchange) reader has ben extended to read information about materials and geometric dimensions and tolerances from STEP files;
- Various performance improvements especially in STEP and IGES Data Exchange and OCAF.

See also: Open CASCADE version 5.2 Overview (PDF).

Detailed information is available in Release Notes (PDF).

Version 5.2 is available from the Open CASCADE web site at:
www.opencascade.org/getocc/download .

This version is certified on Sun Solaris, Windows and Linux platforms.

Linas's picture

The following problems/issues exist for the C# example.

1/ The correct project to start is the one in the "IE" directory. Ignore the RUN_MSVC.bat file, it doesn't work.

2/ The "Additional Include Directories" and "Additional Library Directories" fields in the "OCC" and "shell" projects need to be changed to point to the correct locations on your system,As they are, they point to the wrong directories for me and probably for you.

3/ In the "shell" project add "..\OCC\Debug" to the "Additional Libraries Directory" field. Don't forget to changes this for the Release version of the app.

4/ The #include statements in the "shell" project include file "shell.h" need to be changed to have "..\OCC\ before the file names.

5 When compiling "OCC" and "shell" projects, you get a LOT of warnings from the compiler. You can ignore these or just set the warning level lower if you don't like warnings about "downcasts" :-)

Once these mods have been done, you should be able to compile and run the DEBUG version of the app, if I haven't forgotten something. It does work !!.

Cheers

Linas

lsj's picture

Install on Gentoo unstabil (default-x86-2004.0, gcc-3.3.4).

Problem with install.csh: failes because of Linux/setupLinux.bin is thread based jre-1.3.x not using NPTL?
Workaround is to run java instead: java -jar ./Linux/setup.jar

Building OCC5.2 using OCC.COMP and GCC STL:-) and tcl 8.3, tk8.3, itcl3.2, tix8.1

Patch ros/inc/PlugIn_Macro.hxx:line 10:
from
#if defined (__hpux) || defined (HPUX)
to
#if defined (__hpux) || defined (HPUX) || defined (__GNUC__)
Becuase the preprocessor macro PLUGIN(name) failed: <> should be <> as used for HPUX

OCC code needs patch for tcl 8.4 see below.
Configured ros/adm/Linux/init and used the gcc stl by setting 'setenv STLPortInclude ""' and 'setenv STLPortLib ""'
Then insert as first line in ros/adm/Linux/OCC.COMP: source init
run OCC.COMP and waited for 3 hours on my athlonXP 2500.
and then run DRAWEXE to test it.

Now trying on Gentoo amd64, GCC 3.4.1 and tcl 8.4
TODO:
Path for tcl 8.4 --- error: invalid conversion from `Standard_Integer (*)(void*, Tcl_Interp*, Standard_Integer, char**)' to `int (*)(void*, Tcl_Interp*, int, const char**)'.

GCC3.4 say that the C++ code are invalid in 34 cases caused by the use of privat copy constructer: class XX {... privat XX(const&);}
see the GCC C++ manual
http://gcc.gnu.org/bugs.html#cxx_rvalbind
http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
Workaround is to make them public.
And some openGL compiler error -- look like some things are missing.

Lars

khwf's picture

Hallo people,

I tried to install OpenCascade on a Sun Solaris 2.8 OS, using gcc-3.2.2.
But the OpenCascade libraries seem to be invalid to (link error for the qt samples: undefined references). A rebuild test for some libraries showed a very different content. The original SunOS libraries seem to be corrupted by some control character (here a short file extract)

Installed libraries "$CASROOT/SunOS/lib/libTKernel.so"
***********************************************************************************************************
o\^A^R ^CÙH HX^Q^Q^CÙs^LèlØ^R ^CÙÔ^PDl^At^R ^CÚ^W^Qg<^A^R ^CÚg^Rý^T,^R ^CÚ\210^XDž^R ^CÚ¬^XI^P^R ^CÚÑ^X*àD^R
^CÛ
^ZçØ \^R ^CÛ0^HÉ0D^R ^CÛ\202^K"h^C(^R ^CÛµ^Kª\210¬^R ^CÛÛ^QDh^L^R ^CÜ^N^R\224<^P^R ^CÜc^RÀ ^L^R ^CÜ\21
4^Rö4^L^R ^Cܯ^Vf\224à^R ^CÜÓ^PJT^B\224^R ^CÜø^S\211Ä^AL^R ^CÝ)^Nîà^A\230^R ^CÝM^U\227øp^R ^CÝv^S^ZH0^R
^CÝŽ^X-4^P^R ^CÝð^YZXÄ^R ^CÞ^X^R($^AÜ^R ^CÞi^Sf^\^B0^R ^CÞº^S\204\230^P^R ^CÞß^Z\0^L^R ^Cß
^K2àD^R ^CßN^PÙ\^L^R ^Cß\203^XäX^H^R ^Cß©^YIøh^R ^CßÀ^H\227D^L^R ^Cà^P^K\213`ì^R ^Cà?^L1ø^A\^R ^Càa^M£^L^H^R ^Cà\205^Q©\220
ž^R ^Cà±(\217ŒP^Q^Q^Càà^Q¡d€^R ^Cá^H^R¥^\^B^H^R ^Cá2^Z.`l^R ^CáP^H^Qh\234^R ^Cáu
***********************************************************************************************************

compiled libraries "$CASROOT/adm/make/TKernel/.libs/libTKernel.so"
***********************************************************************************************************
RÜÝ`Œ Ý_ZN14Storage_SchemaD1Ev_ZN20TCollection_BasicMap7DestroyEv_ZN26OSD_Exception_FLT_OVERFLOWD0Ev_Z
N21Standard_ErrorHandler15LastCaughtErrorEv_Z30TCollection_HAsciiString_Type_v_Z29TCollection_AVLBaseNode_Type_v_ZN31TColStd_SetListOf
SetOfTransient7PrependERS__ZN11FSD_CmpFile19EndWriteRootSectionEv_ZN30TColStd_HSequenceOfAsciiString8SetValueEiRK23TCollection_AsciiSt
ring_ZNK28OSD_Exception_STACK_OVERFLOW6IsKindERK20Handle_Standard_Type_ZTI32Dynamic_CompositVariableInstance_ZN17GraphTools_TSNode5Res
etEv_ZN23TColStd_ListOfTransient6AppendERK25Handle_Standard_Transient_Z9CharToIntPc_ZN18Units_UnitSentence7AnalyseEv_ZN22Storage_HSeqO
fCallBack7ReverseEv_ZN37Handle_OSD_Exception_ACCESS_VIOLATIOND2Ev_ZN40Handle_TColStd_QueueNodeOfQueueOfIntegerD2Ev_ZN13Standard_TypeC2
EPciiPv_ZN46Handle_TColStd_SequenceNodeOfSequenceOfInteger8DownCastERK25Handle_Standard_Transient_ZN13OSD_SemaphoreC2Ev_ZN37Dico_Stack
ItemOfDictionaryOfTransientD2Ev_ZNK15Quantity_Period7IsEqualERKS_access_ZN14Units_ExplorerC2ERK24Handle_Units_UnitsSystemPc_ZN20NColle
ction_BaseList8PPrependEP20NCollection_ListNode_ZN24Dico_DictionaryOfInteger6SetSubERK31Handle_Dico_DictionaryOfInteger_ZN27TColStd_Se
quenceOfTransient8SetValueEiRK25Handle_Standard_Transient_ZN15OSD_Chronometer4StopEv_ZN16Units_DimensionsC2Eiiiiiiiii_ZNSt6locaLeD1Ev_
ZNK22TColStd_SequenceOfReal5FirstEv_ZN14Dynamic_MethodD1Ev_ZN31Handle_Dynamic_MethodDefinitionD1Ev_ZN18Dynamic_FuzzyClassD0Ev_Z42TColS
td_ListNodeOfSetListOfSetOfReal_Type_v_ZNK22TColStd_SListOfInteger5ValueEv_Z23Dynamic_Parameter_Type_v_Z9NextPrimel_ZN17Units_QtsSeque
nce6RemoveEi_ZN26TColStd_HArray1OfCharacterC1EiiRKc_ZNK30TColStd_AVLSearchTreeOfInteger6ExtentEv_ZN24TColStd_HArray2OfBooleanD0E
***********************************************************************************************************

As I would like to use the original libraries, does anyone know has an idea ?

Thank you in advance

khwf

Rob Bachrach's picture

You can't. The installed libraries are compiled with the Sun C++
compiler. As this is C++, the name mangling schemes are different.
All C++ libraries need to be compiled with the same compiler as your
application.

khwf's picture

Does anyone has experiences on compiling Opencascade on Sun OS using gcc (gcc 3.2.2) ?
The compilation was straight forward unless some minor changes, but
I wondered that the libraries are blown up to a very large size (2.7 GByte) ? Is there any way to avoid this ?

Ernest's picture

I don't really know compiling under Sun or Unix, but we had the same problem under windows. We've tried to compile the whole thing as a static library. THe result was at least 2Gb with lots of warnings. The mistake we've made was that, all the project staticaly linked the other projects into itself and finally for example TKBool contained the TKernel at least 3,4 times b/c of the dependencies. I think something similar might happened when you compiled. To have (parts of) OCC as a huge static library we had to make some small modifications on the code: the definition of Standard_Export had to be changed a little bit.

I hope it makes sense to you and will help.

Rob Bachrach's picture

I have compiled it on SunOS with gcc 2.95.3 and they were huge. You might want to see if debug was turned on during the compile. This was my problem. The easiest thing to do is to run "strip" on the resulting library files to remove the debug information.