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