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 |