]>
Commit | Line | Data |
---|---|---|
765b3e07 | 1 | Overview {#mainpage} |
2 | ======== | |
3 | ||
e5bd0d98 | 4 | @tableofcontents |
765b3e07 | 5 | |
e5bd0d98 | 6 | @section OCCT_OVW_SECTION_1 Welcome |
765b3e07 | 7 | |
e5bd0d98 | 8 | Welcome to Open CASCADE Technology (OCCT), a collection |
9 | of C++ libraries providing services for 3D surface and solid modeling, CAD data | |
10 | exchange, and visualization. OCCT can be best applied in development of | |
11 | software dealing with 3D modeling (CAD), manufacturing / measuring (CAM) or | |
12 | numerical simulation (CAE). | |
765b3e07 | 13 | |
e5bd0d98 | 14 | @htmlonly<center>@endhtmlonly |
15 | http://www.opencascade.org | |
765b3e07 | 16 | @image html /resources/occt_logo.png |
17 | @image latex /resources/occt_logo.png | |
765b3e07 | 18 | @htmlonly</center>@endhtmlonly |
19 | ||
20 | @section OCCT_OVW_SECTION_2 Copyrights | |
21 | ||
22 | Copyright(c) 2001-2013 by OPEN CASCADE S.A.S. All rights reserved. | |
23 | ||
e5bd0d98 | 24 | @htmlonly<center>@endhtmlonly |
25 | http://www.opencascade.com | |
26 | @image html /resources/occ_logo.png | |
27 | @image latex /resources/occ_logo.png | |
28 | @htmlonly</center>@endhtmlonly | |
29 | ||
765b3e07 | 30 | Trademark information |
31 | ---------------------- | |
32 | ||
33 | You are hereby informed that all software is a property of its respective authors and is protected by | |
34 | international and domestic laws on intellectual property and trademarks. | |
35 | Should you need further information, please directly contact the authors. | |
36 | ||
79d580f2 | 37 | **CAS.CADE** and **Open CASCADE** are registered trademarks of |
38 | OPEN CASCADE S.A.S. | |
39 | ||
40 | **Linux** is a registered trademark of Linus Torvalds. | |
41 | ||
42 | **Windows** is a registered trademark of Microsoft Corporation in the United States and other countries. | |
43 | ||
44 | **Mac** and the Mac logo, **OpenCL** and the OpenCL logo, are trademarks of | |
45 | Apple Inc., registered in the U.S. and other countries. | |
765b3e07 | 46 | |
e5bd0d98 | 47 | Acknowledgements |
765b3e07 | 48 | ------------------ |
49 | ||
50 | The following parties are acknowledged for producing tools which are used within | |
51 | Open CASCADE Technology libraries or for release preparation. | |
52 | ||
53 | You are hereby informed that all rights to the software listed below belong to its respective | |
54 | authors and such software may not be freely available and/or be free of charge for any kind | |
55 | of use or purpose. We strongly recommend that you carefully read the license of these products | |
56 | and, in case you need any further information, directly contact their authors. | |
57 | ||
58 | **Qt** is a cross-platform application framework that is widely used for developing application software | |
59 | with graphical user interface (GUI). Qt is free and open source software distributed under | |
60 | the terms of the GNU Lesser General Public License. In OCCT Qt is used for programming samples. | |
e5bd0d98 | 61 | If you need further information on Qt, please, refer to Qt Homepage (http://qt.digia.com). |
765b3e07 | 62 | |
63 | **Tcl** is a high-level programming language. Tk is a graphical user interface (GUI) toolkit, | |
64 | with buttons, menus, listboxes, scrollbars, and so on. Taken together Tcl and Tk provide a solution | |
65 | to develop cross-platform graphical user interfaces with a native look and feel. Tcl/Tk is under copyright by | |
66 | Scriptics Corp., Sun Microsystems, and other companies. However, Tcl/Tk is an open source, and | |
67 | the copyright allows you to use, modify, and redistribute Tcl/Tk for any purpose, without an | |
68 | explicit license agreement and without paying any license fees or royalties. | |
69 | To use Tcl/Tk, please refer to the Licensing Terms (http://www.tcl.tk/software/tcltk/license.html). | |
70 | ||
71 | **Robert Boehne** has developed **GNU Autoconf**, **Automake** and **Libtool** scripts and makefiles | |
72 | for the Open CASCADE project http://sourceforge.net/projects/autoopencas/, | |
73 | which became an initial groundwork for the build scripts based on respective GNU tools | |
74 | (autoconf, automake and libtool) in Open CASCADE Technology version 4.0. | |
75 | These scripts are now maintained by the OPEN CASCADE company. | |
76 | ||
e5bd0d98 | 77 | **GL2PS** is developed by Christophe Geuzaine and others. It is optionally used by OCCT to |
78 | export content of OpenGL scene to vector graphics formats (PS, PDF, EMF, SVG). | |
765b3e07 | 79 | The library is licensed under GL2PS LICENSE http://www.geuz.org/gl2ps/COPYING.GL2PS Version 2, November 2003. |
80 | ||
81 | **FreeType 2** is developed by Antoine Leca, David Turner, Werner Lemberg and others. | |
82 | It is a software font engine that is designed to be small, efficient, highly customizable and | |
83 | portable while capable of producing high-quality output (glyph images). This product | |
84 | can be used in graphic libraries, display servers, font conversion tools, | |
85 | text image generation tools, and many other products. | |
86 | ||
87 | FreeType 2 is released under two open-source licenses: BSD-like FreeType License and the GPL. | |
88 | ||
89 | **Intel(R) Threading Building Blocks (TBB)** offers a rich and complete approach to expressing parallelism in a C++ program. | |
90 | It is a library that helps you to take advantage of multi-core processor performance without having to be a threading expert. | |
91 | Threading Building Blocks is not just a threads-replacement library. It represents a higher-level, task-based parallelism that | |
92 | abstracts platform details and threading mechanisms for scalability and performance. | |
93 | TBB is available under GPLv2 license with the runtime exception. | |
94 | ||
e5bd0d98 | 95 | Open CASCADE Technology WOK module on Windows also makes use of LGPL-licensed C routines **regexp** |
96 | and **getopt**, taken from GNU C library. | |
765b3e07 | 97 | |
79d580f2 | 98 | **OpenGL** is an industry standard API for 3D graphics used by OCCT for |
99 | implementation of 3D viewer. OpenGL specification is developed by the | |
100 | Khronos group, http://www.khronos.org/opengl/. OCCT code includes header | |
101 | file *glext.h* obtained from Khronos web site. | |
102 | ||
103 | **OpenCL** (Open Computing Language) is open, royalty-free standard for | |
104 | cross-platform, parallel programming of modern processors, optionally used by | |
105 | OCCT for ray tracing. OpenCL specification is developed by the | |
106 | Khronos group, http://www.khronos.org/opencl/. The implementations of OpenCL | |
107 | are available from Apple, AMD, NVIDIA, Intel, and other vendors. | |
108 | **OpenCL Installable Client Driver (ICD) Loader** is a library provided by | |
109 | Khronos group which allows dispatching OpenCL calls to underlying | |
110 | implementation. | |
111 | ||
e5bd0d98 | 112 | **Doxygen** developed by Dimitri van Heesch is open source documentation system for |
765b3e07 | 113 | C++, C, Java, Objective-C, Python, IDL, PHP and C#. This product is used in Open CASCADE Technology |
114 | for automatic creation of Technical Documentation from C++ header files. | |
115 | If you need further information on Doxygen, please refer to http://www.stack.nl/~dimitri/doxygen/index.html. | |
116 | ||
117 | **Graphviz** is open source graph visualization software developed by John Ellson, Emden Gansner, Yifan Hu and Arif Bilgin. | |
118 | Graph visualization is representiation of structured information as diagrams of abstract graphs and networks. | |
119 | This product is used together with Doxygen in Open CASCADE Technology for automatic creation of Technical Documentation | |
120 | (generation of dependency graphs). Current versions of Graphviz are licensed on an open source | |
e5bd0d98 | 121 | basis under The Eclipse Public License (EPL) (http://www.graphviz.org/License.php). |
765b3e07 | 122 | |
123 | **Inno Setup** is a free script-driven installation system created in CodeGear Delphi by Jordan Russell. | |
124 | In OCCT Inno Setup is used to create Installation Wizard on Windows. | |
125 | It is licensed under Inno Setup License (http://www.jrsoftware.org/files/is/license.txt). | |
126 | ||
e5bd0d98 | 127 | **FreeImage** is an Open Source library supporting popular graphics image formats, such as PNG, BMP, JPEG, TIFF, |
765b3e07 | 128 | and others used by multimedia applications. This library is developed by Hervé Drolon and Floris van den Berg. |
129 | FreeImage is easy to use, fast, multithreading safe, compatible with all 32-bit or 64-bit versions of Windows, | |
e5bd0d98 | 130 | and cross-platform (works both with Linux and Mac OS X). FreeImage is optionally used by OCCT to work |
131 | with images, on conditions of the FreeImage Public License (FIPL) (http://freeimage.sourceforge.net/freeimage-license.txt). | |
765b3e07 | 132 | |
e5bd0d98 | 133 | **MikTEX** is up-to-date implementation of TeX/LaTeX and related programs for Windows. It is used |
134 | for generation of User and Developer Guides in PDF format. See http://miktex.org for information | |
135 | on this tool. | |
765b3e07 | 136 | |
e5bd0d98 | 137 | Adobe Systems, Inc. provides **Adobe Reader**, which can be used to view files in Portable Document Format (PDF). |
765b3e07 | 138 | |
e5bd0d98 | 139 | @section OCCT_OVW_SECTION_3 Documentation |
765b3e07 | 140 | |
e5bd0d98 | 141 | OCCT documentation is provided in several forms: |
765b3e07 | 142 | |
e5bd0d98 | 143 | - This overview provides general description of OCCT structure, functionality, modules, and features. |
144 | It is available in HTML format (generated by Doxygen) and includes User and Developer Guides. | |
145 | The sources of this documentation are contained in **dox** subdirectory of OCCT sources | |
146 | (plain text format is used, with mixed MarkDown / Doxygen syntax mark-up). | |
765b3e07 | 147 | |
e5bd0d98 | 148 | - User and Developer Guides describing in details OCCT modules and development tools are also available in |
149 | Adobe Portable Document Format (PDF). To read this format, you need Adobe Acrobat Reader, | |
150 | which is a freeware and can be downloaded from the Adobe site. | |
765b3e07 | 151 | |
e5bd0d98 | 152 | - Full reference documentation covering all OCCT classes generated automatically by Doxygen |
153 | software is provided in HTML format, in a separate package. | |
154 | Reference documentation is presented in **Modules --> Toolkits --> Packages --> Classes** | |
155 | logic structure with cross-references to all OCCT classes and complete in-browser search by all classes. | |
765b3e07 | 156 | |
e5bd0d98 | 157 | See @ref dev_guides__documentation "OCCT Documentation Guide" for details on OCCT documentation system. |
765b3e07 | 158 | |
e5bd0d98 | 159 | **Generation of HTML documentation** |
765b3e07 | 160 | |
e5bd0d98 | 161 | To generate HTML documentation from sources contained in *dox* subdirectory, |
162 | you need to have Tcl and Doxygen 1.8.4 (or above) installed on your system. | |
163 | ||
164 | In Tcl prompt, cd to OCCT root folder and run | |
165 | ||
166 | tclsh> source dox/start.tcl | |
167 | ||
168 | On Windows you can also run batch script **gendoc.bat**. | |
169 | ||
170 | ||
171 | **Generation of reference documentation** | |
172 | ||
173 | Reference documentation can be generated with help of WOK tool that | |
174 | is available for download from www.opencascade.org and dev.opencascade.org sites. | |
765b3e07 | 175 | |
176 | Prerequisites: | |
177 | ||
e5bd0d98 | 178 | * Doxygen version 1.8.4 or higher |
765b3e07 | 179 | * Graphviz version 2.28.0 or higher |
180 | ||
181 | Run WOK (cd \<WOK_INSTALL_DIR\>/site folder): | |
182 | ||
183 | * Using WOK TCL shell: | |
184 | > wok_tclsh.sh | |
185 | ||
186 | * Using Emacs editor: | |
187 | > wok_emacs.sh | |
188 | ||
189 | In the WOK prompt, step into your workbench: | |
190 | ||
e5bd0d98 | 191 | > wokcd <your workbench> |
765b3e07 | 192 | |
193 | In your workbench, use **wgendoc** command with –h argument to get information about arguments of **wgendoc** command: | |
194 | ||
e5bd0d98 | 195 | > wgendoc -h |
765b3e07 | 196 | |
e5bd0d98 | 197 | then run **wgendoc** command with required arguments, for instance: |
765b3e07 | 198 | |
e5bd0d98 | 199 | > wgendoc -output=d:/occt/doc {-m=Draw Visualization} |
765b3e07 | 200 | |
201 | @section OCCT_OVW_SECTION_5 Requirements | |
202 | ||
62afa5c9 | 203 | Open CASCADE Technology is designed to be highly portable and is known to |
204 | work on wide range of platforms (UNIX, Linux, Windows, Mac OS X). | |
205 | Current version is officially certified on Windows (IA-32 and x86-64), | |
206 | Linux (x86-64) and MAC OS X (x86-64) platforms. | |
207 | ||
208 | The tables below describe the recommended hardware and software configurations | |
209 | for which OCCT is certified to work. | |
210 | ||
211 | @subsection OCCT_OVW_SECTION_5_1 Linux | |
212 | ||
213 | | Operating System | Mandriva 2010, CentOS 5.5, CentOS 6.3, Fedora 17, Fedora 18, Ubuntu-1304, Debian 6.0\* | | |
214 | | ----- | ----- | | |
215 | | Minimum memory | 512 MB, 1 GB recommended | | |
216 | | Free disk space (complete installation) | 600 MB approx. | | |
217 | | Video card | See \ref overview_req_graphics | | |
218 | | Graphic library | OpenGL 1.1+ (OpenGL 2.1+ is recommended)| | |
219 | | C++ | GNU gcc 4.0. - 4.7.3. | | |
220 | | TCL (for testing tools) | Tcltk 8.5 or 8.6 http://www.tcl.tk/software/tcltk/8.6.html | | |
221 | | Qt (for demonstration tools) | Qt 4.6.2 http://qt.nokia.com/downloads | | |
222 | | Freetype (for text rendering) | freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ | | |
223 | | FreeImage (optional, for support of common 2D graphic formats) | FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files | | |
224 | | gl2ps (optional, for export contents of OCCT viewer to vector graphic files) | gl2ps-1.3.8 http://geuz.org/gl2ps/ | | |
225 | | Intel TBB (optional, for multithreaded algorithms) | TBB 3.x or 4.x http://www.threadingbuildingblocks.org/ | | |
79d580f2 | 226 | | OpenCL (optional, for ray tracing visualization) | OpenCL SDK (usually one provided by vendor of your graphic card) or OpenCL ICD Loader by Khronos group, http://www.khronos.org/registry/cl | |
62afa5c9 | 227 | |
228 | * Debian 60 64 bit is a platform used for regular testing of contributions | |
229 | ||
230 | @subsection OCCT_OVW_SECTION_5_2 Windows | |
231 | ||
232 | | Operating System | Windows 8 / 7 SP1 / Vista SP2 / XP SP3 | | |
233 | | ----- | ----- | | |
234 | | Minimum memory | 512 MB, 1 GB recommended | | |
235 | | Free disk space (complete installation) | 600 MB approx. | | |
236 | | Video card | See \ref overview_req_graphics | | |
237 | | Graphic library | OpenGL 1.1+ (OpenGL 2.1+ is recommended)| | |
238 | | C++ | Microsoft Visual Studio: 2005 SP1, 2008 SP1\*, 2010 SP1, 2012 Update 3, 2013 <br>Intel C++ Composer XE 2013 SP1 | | |
239 | | TCL (for testing tools) | ActiveTcl 8.5 or 8.6 http://www.activestate.com/activetcl/downloads | | |
240 | | Qt (for demonstration tools) | Qt 4.6.2 http://qt.nokia.com/downloads | | |
241 | | Freetype (OCCT Text rendering) | freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ | | |
242 | | FreeImage (Support of common graphic formats) | FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files | | |
243 | | gl2ps (Export contents of OCCT viewer to vector graphic file) | gl2ps-1.3.8 http://geuz.org/gl2ps/ | | |
79d580f2 | 244 | | Intel TBB (optional, for multithreaded algorithms) | TBB 3.x or 4.x http://www.threadingbuildingblocks.org/ | |
245 | | OpenCL (optional, for ray tracing visualization) | OpenCL SDK (usually one provided by vendor of your graphic card) or OpenCL ICD Loader by Khronos group, http://www.khronos.org/registry/cl | | |
62afa5c9 | 246 | |
247 | * VC++ 9 32-bit is used for certification of contributions and for building | |
248 | binary package of official release of OCCT on Windows. | |
765b3e07 | 249 | |
250 | @subsection OCCT_OVW_SECTION_5_3 MAC OS X | |
251 | ||
62afa5c9 | 252 | | Operating System | Mac OS X 10.9 Mavericks / 10.8 Mountain Lion / 10.7 Lion / 10.6.8 Snow Leopard | |
253 | | ----- | ----- | | |
254 | | Minimum memory | 512 MB, 1 GB recommended | | |
255 | | Free disk space (complete installation) | 600 MB approx. | | |
256 | | Video card | See \ref overview_req_graphics | | |
257 | | Graphic library | OpenGL 1.1+ (OpenGL 2.1+ is recommended)| | |
258 | | C++ | XCode 3.2 or newer (4.x is recommended) | | |
259 | | Qt (for demonstration tools) | Qt 4.6.2 http://qt.nokia.com/downloads | | |
260 | | Freetype (OCCT Text rendering) | freetype-2.4.11 http://sourceforge.net/projects/freetype/files/ | | |
261 | | FreeImage (Support of common graphic formats) | FreeImage 3.15.4 http://sourceforge.net/projects/freeimage/files | | |
262 | | gl2ps (Export contents of OCCT viewer to vector graphic file) | gl2ps-1.3.8 http://geuz.org/gl2ps/ | | |
79d580f2 | 263 | | Intel TBB (optional, for multithreaded algorithms) | TBB 3.x or 4.x http://www.threadingbuildingblocks.org/ | |
264 | | OpenCL (optional, for ray tracing visualization) | Native OpenCL 1.2.8 | | |
62afa5c9 | 265 | |
266 | @subsection overview_req_graphics Graphic cards | |
267 | ||
268 | For 3d viewer, graphic card or software implementation supporting OpenGL 1.1 | |
269 | or above is required. OpenGL 2.1+ is highly recommended. | |
270 | For ray tracing, hardware implementation of OpenCL 1.1+ is required. | |
271 | ||
272 | The following table lists graphic cards tested to work with OCCT. | |
273 | ||
79d580f2 | 274 | | Graphic card | Driver/GL/GLSL/CL version | OS | OpenGL (fixed pipeline) | OpenGL (shaders) | OpenCL (ray tracing) | |
62afa5c9 | 275 | | ---- | ---- | ---- | :----: | :----: | :----: | |
79d580f2 | 276 | | NVIDIA GeForce GT 610, 630M, 640 | Driver 311.44, GL 4.3.0, GLSL 4.30 | Windows 7 64 bit | OK | OK | OK | |
62afa5c9 | 277 | | Intel(R) HD Graphics 3000 | GL 3.1.0, GLSL 1.40 | Windows 7 64 bit | OK | OK | none | |
278 | | RadeOn 9600 | GL 2.1.8454, GLSL 1.20 | | OK | bad | none | | |
79d580f2 | 279 | | AMD/ATI RadeOn HD 7870 | Driver 6.14.10.12002, GL 4.2.12002, GLSL 4.20 | Windows 7 64-bit | OK | OK | OK | |
62afa5c9 | 280 | | Mesa 7.8.2 Windows GDI Driver\* | GL 2.1, GLSL version 1.20 | Mac OS X 10.6 / OS X 10.9 | OK | artifacts | none | |
79d580f2 | 281 | | NVIDIA GeForce 320 | | Mac OS X 10.6 / OS X 10.9 | OK | OK | OK on OSX 10.6, bad on OSX 10.9 | |
282 | | NVIDIA GeForce 6600 GT | GL 2.1.2, GLSL 1.20 | Windows XP 32-bit | OK | OK | none | | |
62afa5c9 | 283 | | Apple software OpenGL | | Mac OS X 10.6 / OS X 10.9 | OK | OK | OK | |
284 | ||
285 | * Mesa implementation of OpenGL is used for certification testing of OCCT | |
765b3e07 | 286 | |
287 | @section OCCT_OVW_SECTION_4 Installation | |
288 | ||
e5bd0d98 | 289 | In most cases you need to rebuild OCCT on your platform (OS, compiler) before |
290 | using it in your project, to ensure binary compatibility. | |
291 | See @ref dev_guides__building for instructions on | |
292 | building OCCT from sources on supported platforms. | |
765b3e07 | 293 | |
e5bd0d98 | 294 | @subsection OCCT_OVW_SECTION_4_1 Using Windows installer |
765b3e07 | 295 | |
e5bd0d98 | 296 | On Windows Open CASCADE Technology can be installed with binaries precompiled by |
297 | Visual C++ 2008 with installation procedure. | |
765b3e07 | 298 | |
299 | **Recommendation:** | |
300 | ||
301 | If you have a previous version of OCCT installed on your station, | |
302 | and you do not plan to use it along with the new version, you might want to uninstall | |
303 | the previous version (using Control Panel, Add/Remove Programs) before | |
304 | the installation of this new version, to avoid possible problems | |
305 | (conflict of system variables, paths, etc). | |
306 | ||
307 | **Attention:** For full installation OCCT requires approximately 650 Mb of disk space, | |
308 | but during the installation process you will need 1,2 Gb of free disk space. | |
309 | ||
310 | OCCT installation with reference documentation requires 1,4 Gb on disk. | |
311 | ||
312 | * Download the OCCT installer from OPEN CASCADE web site using the link. you have been provided | |
313 | * Launch the installer and follow the instructions. | |
314 | ||
765b3e07 | 315 | The includes and binaries of third-party libraries necessary for building and launching |
316 | OCCT are included into binary distribution (built with Visual C++ 2008). | |
e5bd0d98 | 317 | When the installation is complete, you will find the directories for 3rd party products |
318 | (some might be absent in case of custom installation) and the main **OCCT** directory: | |
765b3e07 | 319 | |
e5bd0d98 | 320 | @image html /overview/images/overview_3rdparty.png |
321 | @image latex /overview/images/overview_3rdparty.png | |
765b3e07 | 322 | |
e5bd0d98 | 323 | The contents of the OCCT-6.7.0 directory (called further "OCCT root", or $CASROOT) are as follows: |
765b3e07 | 324 | |
325 | @image html /overview/images/overview_installation.png "The directory tree" | |
326 | @image latex /overview/images/overview_installation.png "The directory tree" | |
327 | ||
765b3e07 | 328 | * **adm** This folder contains administration files, which allow rebuilding OCCT; |
329 | * **adm/cmake** This folder contains files of CMake building procedure; | |
330 | * **adm/msvc** This folder contains Visual Studio projects for Visual C++ 2005, 2008 and 2010, which allow rebuilding OCCT under Windows platform in 32 and 64-bit mode; | |
e5bd0d98 | 331 | * **data** This folder contains CAD files in different formats, which can be used to test the OCCT functionality; |
332 | * **doc** This folder contains OCCT documentation in HTML and PDF format; | |
333 | * **dox** This folder contains sources of OCCT documentation in plain text (MarkDown) format; | |
765b3e07 | 334 | * **drv** This folder contains source files generated by WOK (private header files and instantiations of generic classes); |
335 | * **inc** This folder contains all OCCT header files; | |
336 | * **samples** This folder contains sample applications. | |
337 | * **src** This folder contains OCCT source files. They are organized in folders, one per development unit; | |
338 | * **tests** This folder contains scripts for OCCT testing. | |
339 | * **win32/vc9** This folder contains executable and library files built in optimize mode for Windows platform by Visual C++ 2008; | |
340 | ||
e5bd0d98 | 341 | @section OCCT_OVW_SECTION_4_2 Environment Variables |
765b3e07 | 342 | |
343 | To run any Open CASCADE Technology application you need to set the environment variables. | |
344 | ||
345 | ### On Windows | |
346 | ||
765b3e07 | 347 | You can define the environment variables with env.bat script located in the |
e5bd0d98 | 348 | $CASROOT folder. This script accepts two arguments to be used: |
349 | the version of Visual Studio (vc8 - vc12) and the architecture (win32 or win64). | |
765b3e07 | 350 | |
351 | The additional environment settings necessary for compiling OCCT libraries and samples | |
352 | by Microsoft Visual Studio can be set using script custom.bat located in the same folder. | |
353 | You might need to edit this script to correct the paths to third-party libraries | |
354 | if they are installed on your system in a non-default location. | |
355 | ||
356 | Script msvc.bat can be used with the same arguments for immediate launch of Visual Studio for (re)compiling OCCT. | |
357 | ||
358 | ### On Unix | |
359 | ||
360 | ||
361 | If OCCT was built by Code::Blocks, you can define the environment variables with env_cbp.sh or custom_cbp.sh script. | |
362 | ||
363 | If OCCT was built by Automake, you can define the environment variables with env_amk.sh or custom_amk.sh script. | |
364 | ||
e5bd0d98 | 365 | The scripts are located in the OCCT root folder. |
765b3e07 | 366 | |
367 | ||
368 | ### Description of system variables: | |
369 | ||
370 | ||
371 | * **CASROOT** is used to define the root directory of Open CASCADE Technology; | |
372 | * **PATH** is required to define the path to OCCT binaries and 3rdparty folder; | |
373 | * **LD_LIBRARY_PATH** is required to define the path to OCCT libraries (on UNIX platforms only); | |
e5bd0d98 | 374 | * **MMGT_OPT** (optional) if set to 1, the memory manager performs optimizations as described below; if set to 2, |
375 | Intel (R) TBB optimized memory manager is used; if 0 (default), every memory block is allocated | |
376 | in C memory heap directly (via malloc() and free() functions). | |
377 | In the latter case, all other options except MMGT_CLEAR and MMGT_REENTRANT are ignored; | |
378 | * **MMGT_CLEAR** (optional) if set to 1 (default), every allocated memory block is cleared by zeros; | |
379 | if set to 0, memory block is returned as it is; | |
380 | * **MMGT_CELLSIZE** (optional) defines the maximal size of blocks allocated in large pools of memory. Default is 200; | |
381 | * **MMGT_NBPAGES** (optional) defines the size of memory chunks allocated for small blocks in pages | |
382 | (operating-system dependent). Default is 10000; | |
383 | * **MMGT_THRESHOLD** (optional) defines the maximal size of blocks that are recycled internally | |
384 | instead of being returned to the heap. Default is 40000; | |
385 | * **MMGT_MMAP** (optional) when set to 1 (default), large memory blocks are allocated using | |
386 | memory mapping functions of the operating system; if set to 0, | |
387 | they will be allocated in the C heap by malloc(); | |
765b3e07 | 388 | * **CSF_LANGUAGE** is required to define the default language of messages; |
e5bd0d98 | 389 | * **CSF_DEBUG** (optional, Windows only): if defined then a diagnostic message is displayed in case of an exception; |
62afa5c9 | 390 | * **CSF_DEBUG_BOP** (optional): if defined then it should specify directory where diagnostic data on problems occured in Boolean operations will be saved; |
765b3e07 | 391 | * **CSF_MDTVTexturesDirectory** defines the directory for available textures when using texture mapping; |
e5bd0d98 | 392 | * **CSF_UnitsDefinition** and **CSF_UnitsLexicon** should define paths to resource files Lexi_Expr.dat and Units.dat, respectively, required for support of measurement units; |
765b3e07 | 393 | * **CSF_SHMessage** is required in order to define the path to the messages file for *ShapeHealing*; |
394 | * **CSF_XSMessage** is required in order to define the path to the messages file for **STEP** and **IGES** translators; | |
e5bd0d98 | 395 | * **CSF_StandardDefaults** and **CSF_PluginDefaults** are required in order to maintain CASCADE Persistence mechanism to make possible any open/save operations with OCAF documents; |
765b3e07 | 396 | * **CSF_StandardLiteDefaults** is required in order to maintain *OCCT Persistence mechanism* to make possible any open/save operations with Lite OCAF documents; |
397 | * **CSF_XCAFDefaults** any open/save operations for **XDE** documents; | |
765b3e07 | 398 | * **CSF_IGESDefaults** and **CSF_STEPDefaults** are required for **IGES** and **STEP** translators correspondingly in order to define the path to the resource files; |
399 | * **CSF_XmlOcafResource** is required in order to set the path to **XSD** resources, which defines XML grammar. | |
e5bd0d98 | 400 | * **CSF_MIGRATION_TYPES** is required in order to read documents that contain old data types, such as *TDataStd_Shape*; |
401 | * **TCLLIBPATH**, **TCL_LIBRARY**, **TK_LIBRARY** and **TIX_LIBRARY** are required to allow work with **DRAW** and **WOK**. | |
765b3e07 | 402 | |
403 | @section OCCT_OVW_SECTION_7 Getting Started | |
404 | ||
765b3e07 | 405 | @subsection OCCT_OVW_SECTION_7_1 Draw Test Harness |
406 | ||
407 | Draw is a command interpreter based on TCL and a graphical system used for testing and demonstrating OCCT modeling libraries. | |
408 | ||
409 | Draw can be used interactively to create, display and modify objects such as curves, surfaces and topological shapes. | |
410 | ||
411 | @image html /overview/images/overview_draw.png | |
412 | @image latex /overview/images/overview_draw.png | |
413 | ||
414 | Scripts can be written to customize Draw and perform tests. | |
415 | New types of objects and new commands can be added using C++ programming language. | |
416 | ||
417 | Draw contains: | |
418 | ||
419 | * A command interpreter based on TCL command language. | |
420 | * A 2D an 3D graphic viewer with support of operations such as zoom, pan, rotation and full-screen views. | |
421 | * An optional set of geometric commands to create and modify curves and surfaces and to use OCCT geometry algorithms. | |
422 | * A set of topological commands to create and modify BRep shapes and to use OCCT topology algorithms. | |
423 | * A set of graphic commands for view and display operations including Mesh Visualization Service. | |
424 | * A set of Application framework commands for handling of files and attributes. | |
425 | * A set of Data Exchange commands for translation of files from various formats (IGES,STEP) into OCCT shapes. | |
426 | * A set of Shape Healing commands: check of overlapping edges, approximation of a shape to BSpline, etc. | |
427 | ||
428 | You can add new custom test harness commands to Draw in order to test | |
429 | or demonstrate a new functionality, which you are developing. | |
430 | ||
431 | Currently DRAW Test Harness is a single executable called DRAWEXE. | |
432 | ||
433 | Commands grouped in toolkits can be loaded at run-time thereby implementing dynamically loaded plug-ins. | |
434 | Thus you can work only with the commands that suit your needs adding | |
435 | the commands dynamically without leaving the Test Harness session. | |
436 | ||
437 | Declaration of available plug-ins is done through special resource file(s). | |
438 | The pload command loads the plug-in in accordance with | |
439 | the specified resource file and activates the commands implemented in the plug-in. | |
440 | ||
441 | The whole process of using the plug-in mechanism as well as the instructions for extending Test Harness is described in the | |
e5bd0d98 | 442 | @ref user_guides__test_harness. |
765b3e07 | 443 | |
e5bd0d98 | 444 | Draw Test Harness provides an environment for OCCT automated testing system. |
445 | Please, consult its @ref dev_guides__tests "Automated Testing System" for details. | |
765b3e07 | 446 | |
447 | Remarks: | |
448 | ||
449 | * The DRAWEXE executable is delivered with the installation procedure on Windows platform only. | |
e5bd0d98 | 450 | * To start it, launch DRAWEXE executable from Open CASCADE Technology/Draw Test Harness item of the Start\\Programs menu. |
765b3e07 | 451 | |
452 | @subsection OCCT_OVW_SECTION_7_2 Experimenting with Draw Test Harness | |
453 | ||
454 | Running Draw | |
455 | ------------ | |
456 | ||
457 | **On Linux:** | |
458 | ||
459 | 1. If OCCT was built by Code::Blocks * use $CASROOT/draw_cbp.sh file to launch DRAWEXE executable; | |
460 | 2. If OCCT was built by Automake * use $CASROOT/draw_amk.sh file to launch DRAWEXE executable; | |
461 | ||
462 | Draw[1]> prompt appears in the command window | |
463 | ||
464 | Type pload ALL | |
465 | ||
466 | **On Windows:** | |
467 | ||
468 | Launch Draw executable from Open CASCADE Technology\\Test Harness\\Draw Test Harness | |
469 | item of the Start\\Programs menu or Use $CASROOT\\draw.bat file to launch DRAWEXE executable. | |
470 | ||
471 | Draw[1]> prompt appears in the command window | |
472 | ||
473 | Type pload ALL | |
474 | ||
475 | **Creating your first geometric objects** | |
476 | ||
477 | 1. In the command window, type axo to create an axonometric view | |
478 | 2. Type box b -10 -10 -10 20 20 20 to create a cube b of size 20, | |
479 | parallel to the X Y Z axis and centered on the origin. | |
480 | The cube will be displayed in the axonometric view in wireframe mode | |
481 | 3. Type fit to fill the viewer with the cube | |
482 | 4. Type pcylinder c 2 30 to create a cylinder c of radius 2 and height 30. | |
483 | The cylinder will be displayed in addition to the cube | |
484 | ||
485 | **Manipulating the view** | |
486 | ||
487 | 1. Type clear to erase the view | |
488 | 2. Type donly c to display the cylinder only | |
489 | 3. Type donly b to display the cube only | |
490 | 4. Type hlr hlr b to display the cube in the hidden line removal mode | |
491 | ||
492 | **Running demonstration files** | |
493 | ||
e5bd0d98 | 494 | 1. Type cd ../.. to return to the root directory |
495 | 2. Type cd src/DrawResources to reach the DrawResources directory | |
765b3e07 | 496 | 3. Type source "Available Demo File" to run the demonstration provided with Open CASCADE |
497 | 4. The following demonstration files are available: | |
498 | * DataExchangeDemo.tcl | |
499 | * ModelingDemo.tcl | |
500 | * OCAFDemo.tcl | |
501 | * VisualizationDemo.tcl | |
502 | ||
503 | **Getting Help** | |
504 | ||
505 | 1. Type help to see all available commands | |
506 | 2. Type help command-name to find out the arguments for a given command | |
507 | ||
508 | @subsection OCCT_OVW_SECTION_7_3 Programming Samples | |
509 | ||
510 | @subsubsection OCCT_OVW_SECTION_7_3_1 MFC | |
511 | ||
512 | Visual C++ programming samples containing 10 Visual C++ projects | |
513 | illustrating how to use a particular module or functionality. | |
514 | ||
515 | The list of MFC samples: | |
516 | ||
517 | * Geometry | |
518 | * Modeling | |
519 | * Viewer2d | |
520 | * Viewer3d | |
521 | * ImportExport | |
522 | * Ocaf | |
523 | * Triangulation | |
524 | * HLR | |
525 | * Animation | |
526 | * Convert | |
527 | ||
528 | @image html /overview/images/overview_mvc.png | |
529 | @image latex /overview/images/overview_mvc.png | |
530 | ||
531 | **Remarks:** | |
532 | ||
533 | * MFC samples are available only on Windows platform; | |
534 | * To start a sample use Open CASCADE Technology\\Samples\\Mfc\\ item of the Start\\Programs menu; | |
535 | * Read carefully readme.txt to learn about launching and compilation options. | |
536 | ||
537 | @subsubsection OCCT_OVW_SECTION_7_3_2 Qt | |
538 | ||
539 | OCCT contains three samples based on Qt application framework | |
540 | ||
541 | Import Export | |
542 | ------------- | |
543 | ||
e5bd0d98 | 544 | Import Export programming sample contains 3D Viewer and Import / Export functionality. |
765b3e07 | 545 | |
546 | @image html /overview/images/overview_qt.png | |
547 | @image latex /overview/images/overview_qt.png | |
548 | ||
549 | Tutorial | |
550 | --------- | |
551 | ||
552 | The Qt programming tutorial teaches how to use Open CASCADE Technology services to model a 3D object. | |
553 | The purpose of the tutorial is not to explain all OCCT classes but | |
554 | to help start thinking in terms of the Open CASCADE Technology. | |
555 | ||
556 | This tutorial assumes that the user has experience in using and setting up C++. | |
557 | From the viewpoint of programming, Open CASCADE Technology is designed | |
558 | to enhance user's C++ tools with high performance modeling classes, methods and functions. | |
559 | The combination of these resources allows creating substantial applications. | |
560 | ||
e5bd0d98 | 561 | **See also:** @ref tutorial "OCCT Tutorial" |
765b3e07 | 562 | |
563 | Voxel | |
564 | ------ | |
565 | ||
566 | This is a demonstration application showing OCCT voxel models. | |
567 | It also includes a set of non-regression tests and other commands | |
568 | for testing this functionality (accessible only through TEST pre-processor definition). | |
569 | ||
e5bd0d98 | 570 | **See also:** Voxels User's guide (under construction) |
765b3e07 | 571 | |
572 | **Remarks:** | |
573 | ||
574 | * Qt samples are available on all supported platforms; | |
575 | * To start a sample on Windows use Open CASCADE Technology\\Samples\\Qt\\ item of the Start\\Programs menu. | |
576 | ||
577 | @subsubsection OCCT_OVW_SECTION_7_3_3 C# | |
578 | ||
e5bd0d98 | 579 | C# sample demonstrates integration of OCCT 3D Viewer and Import / Export functionality |
580 | into .NET applications (using Windows Forms and WPF front ends). | |
765b3e07 | 581 | |
582 | @image html /overview/images/overview_c__ie.png | |
583 | @image latex /overview/images/overview_c__ie.png | |
584 | ||
585 | Import: | |
586 | ||
587 | * BRep | |
588 | * Iges | |
589 | * Step | |
590 | ||
591 | Export: | |
592 | ||
593 | * Brep | |
594 | * Iges | |
595 | * Step | |
596 | * Stl | |
597 | * Vrml |