Вы находитесь на странице: 1из 39

Technical overview

The modular structure of Open CASCADE Technology is illustrated in the diagram below.

To obtain complete information on any Open CASCADE Technology module, just select a section (to the left of the scheme) corresponding to the box in the diagram. To learn more about components extending Open CASCADE Technology with some advanced features please check out our value-added software section.

Foundation classes
Foundation Classes provide a variety of general-purpose services such as: Primitive types, strings and various types of quantities Automated management of heap memory Exception handling Classes for manipulating data collections Math tools such as vectors, matrices and primitive geometric types Basic services for saving data in ASCII files

These services are organized in the following libraries: - Kernel classes - Math utilities

- Basic data storage

Kernel classes
Root Classes Root Classes, primarily implemented in the Standard package, are the classes on which all other Open CASCADE Technology classes are built. They provide: - Primitive types such as Boolean, Character, Integer or Real - A memory manager based on reference counting for optimizing the allocation and deallocation of large numbers of small C++ objects - A base class, Standard_Transient, automating memory management through smart pointers - the OCCT Handle; most of OCCT classes inherit from this base class. Quantities Quantity classes provide the following services: - Definition of primitive types representing most of mathematical and physical quantities - Unit conversion tools - Resources to manage time information such as dates and time periods - Resources to manage color definition Exceptions Exception classes list all the exceptions, which can be raised by any OCCT function. Syntaxes compatible with the ANSI C++ standard allow you to handle abnormal conditions. Each exception inherits from Standard_Failure either directly or by inheriting from another exception. Strings String classes provide the following services to manipulate character strings: - Editing operations on string objects, using a built-in string manager - Handling of dynamically-sized sequences of characters OCCT supports both ASCII character types (8-bit) and Unicode character types UTF-8 (8bit) and utf-16 - UCS-2 (16-bit). Memory management makes string objects easier to use than ordinary character arrays. Strings may also be manipulated by handles and therefore, can be shared. These classes are implemented in TCollection and NCollection packages. Collections Apart from strings, the TCollection package contains classes of dynamically sized aggregates of data. They include a wide range of collections such as: - Arrays (unidimensional and bidimensional) generally used for quick access to an item. Note that an array is a fixed-sized aggregate - Sequences and lists which are ordered collections of non-unique objects

- Maps, which provide rapid access time for member items - Queues and stacks, which are minor structures similar to sequences but with different algorithms to explore them The TCollection package also offers specific iterators for sequences, maps, and stacks. It also includes Collection classes. Collection classes are generic (C++ template-like), that is, they can contain a variety of objects which do not necessarily inherit from a unique root class. When you need to use a collection of a given object type, you must instantiate the collection for this specific type. Once the code for this declaration is compiled, all functions available on the generic collection are available on your instantiated class. If you are not using CDL in your project (CDL compilation under WOK is necessary to instantiate any generic Collection from package TCollection), then you should use the Collections defined in NCollection package. It contains definitions of the same generic collection classes described above, but in a form of C++ templates. Therefore, to instantiate any collection type no additional support is required beyond the ANSI C++ compiler. Most collections follow value semantics, meaning that an instantiation of a collection is the actual collection, not a handle to it. Collections of Standard Objects TCollection The collections of standard object classes provide frequently used instantiation of generic classes from the TCollection package with objects from the Standard package, strings from the TCollection package and geometric primitives. There exists a limitation: OCCT generic classes require compilation of definitions in the CDL language and therefore can only be instantiated in WOK. NCollection The NCollection unit meets the requirements of OCCT community and all end users who do not use WOK development environment in their projects. The NCollection provides a full replacement of all TCollection generic classes so that any OCCT collection could be instantiated via C++ template definitions. It is used in WOK environment (as nocdlpack development unit) or in any other configuration, since it only uses the standard capabilities of C++ language. Earlier releases of OCCT offered NCollection classes in the form of macro definitions. Now it is strongly recommended to use C++ template classes instead, as they are more flexible and reliable. The old definitions based on C macros (in the header files NCollection_Define*.hxx) are kept for backward compatibility and no longer supported.

Math utilities

Vectors and Matrices The vector and matrix classes provide commonly used mathematical objects and algorithms which include: - Basic calculations involving vectors and matrices - Computation of eigenvalues and eigenvectors of a square matrix - Solvers for a set of linear algebraic equations - Algorithms to find the roots of a set of nonlinear equations - Algorithms to find the minimum function of one or more independent variables These classes also provide a data structure in order to represent any expression, relation, or function used in mathematics, including the assignment of variables. Primitive Geometric Types Open CASCADE Technology primitive geometric types are defined in the basic geometry package gp. gp provides descriptions of primitive geometric shapes such as: - Points - Vectors - Lines - Circles and conics - Planes and elementary surfaces These types are only handled by value, never by reference. gp also provides means for positioning geometry in space or on a plane using an axis or coordinate system, and defines the following geometric transformations: - Translations - Rotations - Symmetries - Scaling transformations - Composed transformations Common Math Algorithms The common math algorithms provided in Open CASCADE Technology include: - Algorithms to solve a set of linear algebraic equations - Algorithms to find the minimum of a function of one or more independent variables - Algorithms to find roots of one or of a set of non-linear equations - An algorithm to find the eigenvalues and eigenvectors of a square matrix

Basic data storage


Storing data requires a way of defining the organization of data. This is done by means of classes described as persistent classes. Open CASCADE Technology basic data storage allows you to read and write instances of persistent classes in a file. Once you have defined the persistent classes you need, all you have to do is to convert.

Modeling data

Modeling Data supplies data structures to represent 2D and 3D geometric and topological models. These structures are organized in the following libraries: 2D Geometry This library provides 2D geometric data structures. The geometric package Geom2d provides STEP-compliant 2D geometric data structures handled by reference. These objects are parameterized, and as a result, are oriented. They include Bezier, BSpline, and offset curves, and provide functions for conversion of Geom2d objects to gp (basic geometry) objects, which are non-oriented and non-parameterized. Geom2dLProp local geometric properties package allows computing such properties of a parametric point on a 2D curve as: - Derivative vectors; - Tangent vectors (normal and curvature). 3D Geometry This library provides 3D geometric data structures and topological orientation. The geometric package Geom provides STEP-compliant 3D geometric data structures handled by reference. These objects are parameterized and are, as a result, oriented. They include Bezier, BSpline, offset curves, and surfaces, and provide functions for conversion of Geom3D objects to gp (basic geometry) objects, which are non-oriented and non-parameterized. The geometric properties package GeomLProp allows you to compute such properties at the given parametric point on a 3D curve or surface as: - Derivative vectors - Tangent vectors (normal and curvature) Geometry Utilities This library provides standard high-level functions in 2D and 3D geometry such as: - Direct construction of algorithms; - Interpolation of a set of points to form a curve; - Approximation of curves and surfaces from points; - Conversion of more elementary geometry to BSpline curves and surfaces; - Calculation of points on a 2D or 3D curve; - Calculation of extrema between two geometries.

Topology The topological library allows you to build pure topological data structures. Topology defines relationships between simple geometric entities. In this way, you can model complex shapes as assemblies of simpler entities. Thanks to the built-in nonmanifold (or mixed-dimensional) feature, you can build models mixing: - 0D entities such as points - 1D entities such as curves - 2D entities such as surfaces - 3D enitities such as volumes. You can, for example, represent a single object made of several distinct bodies containing embedded curves and surfaces connected or not to the outer boundary. Abstract topological data structure describes a basic entity, the shape, which can be divided into the following component topologies: - Vertex, a zero-dimensional shape corresponding to a point in geometry - Edge, a shape corresponding to a curve, and bounded by a vertex at each extremity - Wire, a sequence of edges connected by their vertices - Face, a part of a surface bounded by a number of closed wires - Shell, a collection of faces connected by some of the edges of their wire boundaries - Solid, a part of 3D space bounded by a number of closed shells - Compound solid, a collection of solids The wire and the solid can be either open (infinite) or closed. A face with 3D underlying geometry may also refer to a collection of connected triangles that approximate the underlying surface. The surfaces can be undefined leaving the faces represented by triangles only. If so, the model is purely polyhedral. As well as the above data structures and that for a generalized shape, this library also provides resources to define the location of shapes.

Modeling algorithms
The Modeling Algorithms module groups together a range of topological algorithms used in modeling. Along with these tools, you will find the geometric algorithms which they call. For details please visit "More about..." pages.

Geometric Tools
Open CASCADE is rich in tools for creating and modifying 2D and 3D geometry and subsequently building parts on it. Various curves from simple lines and polylines up to complicated 3D Bezier and BSpline curves are available. This library provides algorithms to: - Calculate the intersection of two curves, surfaces, or a curve and a surface - Project points onto 2D and 3D curves, points onto surfaces, and 3D curves onto surfaces - Construct lines and circles from constraints - Construct curves and surfaces from constraints - Construct curves and surfaces by interpolation (surfaces from scattered points) This library also provides interpolation algorithms.

Geometry Utilities
This library provides standard high-level functions in 2D and 3D geometry such as: - Direct construction algorithms - Interpolation of a set of points to form a curve - Approximation of curves and surfaces from points

- Conversion of more elementary geometry to BSpline curves and surfaces - Calculation of points on a 2D or 3D curve - Calculation of extrema between two shapes

Topological Tools
This library provides algorithms to: Tesselate shapes Validate shapes Determine the local properties of shapes Determine the global properties of shapes

It also furnishes a complete brep data structure for the topological data structures defined in the Topological Library of the Modeling Data module.

Construction of Primitives
This library provides algorithms to build topological primitives such as: Prisms Cylinders Cones Tori

Varying the parameters of solids allows you to create numerous sizes of solids, as well as partial solids, such as a partial sphere by longitude. In real models, primitives can be used easily for creation of specific sub-parts.

Boolean Operations
This library provides high-level algorithms to perform Boolean operations to create new shapes from old by using: Common Cut Fuse Section

In the way of additional topological tools, there are topological operations followed by blending (putting fillets onto edges created after the topological operation). Topological operations are the most convenient way to create real industrial parts. As most industrial parts consist of several simple elements such as gear wheels, arms, holes, ribs, tubes and pipes. It is usually easy to create those elements separately and then to combine them by boolean operations in the whole final part.

Fillets and Chamfers


This library provides algorithms to construct fillets and chamfers on shape edges. In Open CASCADE, solutions for common fillet finishing problems are offered. The following cases are addressed: - Corners and apexes with different radii - Corners and apexes with different concavity If there is a concavity, both surfaces that need to be extended and those which do not are treated.

Offsets and Drafts

These classes provide the following services: - Creation of offset shapes and variants such as: Hollowing Shelling Lofting

- Creation of tapered shapes through the use of draft angles - Sewing - Creation of sweeps

Features
This library provides algorithms to build both form and mechanical feature topologies on shapes. The form features include: - Cylinders

Draft prisms Prisms Revolved features Pipes

The mechanical features include: - Ribs - Grooves It often raises a need to perform low-level splitting/glueing operations on shapes. Open CASCADE provides the following algorithms for that: - Split shape. This algorithm allows to define particular faces in a shape and new edges which should split that faces. Upon completion the algorithm gives the part of the shape which is situated on the left side of the line composed from new edges. In combination with the Section algorithm it is a powerful tool for partitioning shapes. - Glue shapes. This algorithm allows to define pairs of faces and pairs of edges of two neighboring shapes to glue. Upon completion the algorithm gives the glued shape with cut out parts of faces inside the shape.

Hidden Line Removal


This library provides algorithms to calculate the lines of a shape hidden in a given projection.

These lines can be shown or hidden. Services in this library allow you to work with the shape itself or a polyhedral simplification of it. With a polyhedral simplification, you reduce calculation time but obtain polygonal segments instead of an exact result.

Sewing
Sewing is a module which allows creation of connected topology (shells and wires) from a set of separate topological elements (faces and edges). For example after reading from IGES file, a compound of separate faces is obtained. For creation of shell from separate faces it is possible to use Sewing. Sewing faces creates one shell or several shells from a set of faces.

Mesh

In addition to support of exact geometrical representation of 3D objects Open CASCADE Technology provides functionality to work with tessellated representations of the objects, in the form of mesh. Open CASCADE Technology mesh functionality provides: - data structures to store surface mesh data associated to shapes, and some

basic algorithms to handle these data - data structures and algorithms to build surface triangular mesh from BRep objects (shapes). - tools to extend 3D visualization capabilities of Open CASCADE Technology with displaying meshes along with associated pre- and post-processor data. Additionally, Open CASCADE Technology includes two mesh converters: - VRML converter translates Open CASCADE shapes to VRML 1.0 files (Virtual Reality Modeling Language). Open CASCADE shapes may be translated in two representations: shaded or wireframe. A shaded representation present shapes as sets of triangles computed by a mesh algorithm while a wireframe representation present shapes as sets of curves. - STL converter translates Open CASCADE shapes to STL files. STL (STtereoLithography) format is widely used for rapid prototyping. Open CASCADE SAS also offers Advanced Mesh Products: - Open CASCADE Mesh Framework (OMF) - Express Mesh Besides, we can efficiently help you in the fields of surface and volume meshing algorithms, mesh optimization algorithms etc. If you require a qualified advice about meshing algorithms, do not hesitate to benefit from the expertise of our team in that domain. The projects dealing with numerical simulation can benefit from using SALOME - an Open Source Framework for CAE with CAD data interfaces, generic Pre- and Post- F.E. processors and API for integrating F.E. solvers. Learn more about SALOME platform on http://www.salome-platform.org

isualization
Visualization in Open CASCADE Technology is based on the separation of the modeling data which you want to display and select, and the display and selection of this data. Open CASCADE Technology provides ready-to-use algorithms which create graphic presentations from geometric models (shapes) and discrete objects (meshes). Applications can implement their own algorithms that build application-specific presentations using dedicated application programming interfaces. A presentation is a container for low-level graphic primitives and visual attributes. Presentations can be displayed on the screen using a 3D viewer delivered with Open CASCADE Technology. Display is managed through the presentation services, and selection through the selection services. With these services, data structures and algorithms are provided to display application objects, and to support the graphical selection of these objects. Presentation services are built on top of the OpenGL standard. Open CASCADE Technology implements an efficient, hardware-accelerated method of rendering large geometrical datasets. Selection services are independent from the presentations and use a fast, projection-based algorithm to select objects interactively. To manage presentation and selection in a 3D viewer, AIS (Application Interactive Services) layer is provided. This layer connects visualization and selection of the application objects and acts as the main entry point to

visualization and selection facilities of Open CASCADE Technology.

2D Visualization
This library provides services for: - Presentation of 2D data structures - Selection of 2D data structures 2D presentation is handled by presentation algorithms which compute and display a graphic data structure from a shape. You can also write your own presentation algorithms. In Open CASCADE Technology, display services are separated from the data they represent. This separation allows you to modify a geometric or topological model without modifying the services by which it is displayed. The principle of selection consists of defining 2D bounding boxes capable of returning the owner of any object presentation found within them. When an owner is found, the presentation of the shape is highlighted according to the display attributes for shapes of that type. 2D selection is supported by a picking algorithm for application objects which allows selection of an object when the mouse cursor is positioned over that object.

3D Visualization
This library provides services for: - Selection of 3D data structures - Presentation of 3D data structures 3D presentation and selection are accessed through AIS (Application Interactive Services). This packageis a high-level interface that offers access to the lower-level presentation and selection services. AIS extends this underlying functionality with standard 3D selection attributes, presentation management, and standard 3D presentation attributes, and manages it in the definition of GUI viewers. To implement these services, the AIS package includes the following :

Interactive context Interactive objects A graphic attributes manager Selection filters

The Interactive Context The interactive context pilots 3D visualizations and selections. The interactive context allows you to manage, in a transparent way, the graphic and "selectable" behavior of interactive objects which is not already defined in the predefined types of these objects. AIS has two operating context types. The default neutral point type allows you to easily visualize and select entire interactive objects which have been loaded into the context. Opening the local context type allows you to prepare and use a temporary selection environment to select part of an interactive object. Interactive Objects Entities which are visualized and selected in the AIS viewer are objects. They connect the underlying reference geometry of a model to its graphic representation in AIS. You can use the Open CASCADE predefined classes of standard interactive objects for which all necessary functions have already been programmed, or if you are an advanced user, you can implement your own classes of interactive objects. The Graphic Attributes Manager The graphic attributes manager, or AIS Drawer, stores the graphic attributes for specific interactive objects and for interactive objects controlled by interactive context. The interactive context drawer is valid by default for the objects it controls. When an interactive object is visualized, the required graphic attributes are first taken from its own drawer if one exists, or from the context drawer if there is no specific drawer for that type of object. Selection Filters An important need in selection is the filtering of entities which you to select. Selection filters allow you to refine the dynamic detection context which you want to put into effect. Some of these filters can be used at the Neutral Point, others only in an open local context. You can also program your own filters and load them into the context.

3D Visualization

This library provides services for: - Selection of 3D data structures - Presentation of 3D data structures 3D presentation and selection are accessed through AIS (Application Interactive Services). This packageis a high-level interface that offers access to the lower-level presentation and selection services. AIS extends this underlying functionality with standard 3D selection attributes, presentation management, and standard 3D presentation attributes, and manages it in the definition of GUI viewers. To implement these services, the AIS package includes the following : Interactive context Interactive objects A graphic attributes manager Selection filters

The Interactive Context The interactive context pilots 3D visualizations and selections. The interactive context allows you to manage, in a transparent way, the graphic and "selectable" behavior of interactive objects which is not already defined in the predefined types of these objects. AIS has two operating context types. The default neutral point type allows you to easily visualize and select entire interactive objects which have been loaded into the context. Opening the local context type allows you to prepare and use a temporary selection environment to select part of an interactive object. Interactive Objects Entities which are visualized and selected in the AIS viewer are objects. They connect the underlying reference geometry of a model to its graphic representation in AIS. You can use the Open CASCADE predefined classes of standard interactive objects for which all necessary functions have already been programmed, or if you are an advanced user, you can implement your own classes of interactive objects. The Graphic Attributes Manager The graphic attributes manager, or AIS Drawer, stores the graphic attributes for specific interactive objects and for interactive objects controlled by interactive context. The interactive context drawer is valid by default for the objects it controls. When an interactive object is visualized, the required graphic attributes are first taken from its own drawer if one

exists, or from the context drawer if there is no specific drawer for that type of object. Selection Filters An important need in selection is the filtering of entities which you to select. Selection filters allow you to refine the dynamic detection context which you want to put into effect. Some of these filters can be used at the Neutral Point, others only in an open local context. You can also program your own filters and load them into the context.

Services common to 2D and 3D


This library provides graphic data structures common to both 2D and 3D, and processed by the 2D and 3D viewers respectively. 3D Graphic 3D Graphic supports the manipulation in three dimensions, of graphic primitives such as polylines, planar polygons with or without holes, text, and markers by controlling attributes such as color, transparency, reflection, line type, line width, and text font. These primitives can be displayed, zoomed, panned and rotated in a 3D viewer. 3D Graphic runs on OpenGL graphic library for all platforms. 2D Graphic 2D Graphic supports manipulation in two dimensions, of graphic primitives such as straight lines, segments, polylines, curves, text, and markers by controlling attributes such as color, line type, line width, and text font. These primitives can be displayed, zoomed, panned, and rotated in a 2D viewer. Plotter ouput is provided in PostScript, HPGL2, and CGM. Also supported is importation of bitmap images from xwd, gif, and bmp format. Note that in 2D, Open CASCADE Technology provides full internationalization. Text in Chinese and Japanese characters can be input and printed in plotter output.

Data Exchange (standardized)


Data Exchange is a key factor in using Open CASCADE Technology (and applications based on it) concurrently with other software such as CAD systems.

It ensures the openness of the Open CASCADE Technology in a multisoftware environment, by allowing it to process external data and providing a good level of integration. This means obtaining results of good quality, and covering the needs of exchanges from Open CASCADE Technology based applications. This is done whatever the quality or requirements of external data, in particular for allowed data types and arrangements between them, accepted gaps between geometries. This matter is addressed by Data Exchange Module, itself organized in a modular way, as explained below. This also involves Open Cascade in normalization concerns and their implementation. What Open CASCADE Technology provides for Data Exchange Data Exchanges in Open CASCADE Technology have these purposes: to allow software based on Open CASCADE Technology to exchange data with various CAD software, thereby ensuring a good level of integration, and provide tools to exchange data, connectors ... between CAD software, based on Open CASCADE Technology, such as the Data Exchange Modules to perform data exchange.

Exchanges act through standards which can be used between various software packages for CAD, PDM ... : IGES, STEP. Or by direct connectors which work on proprietary formats or call run-time libraries to access external data: they can then go beyond the limits of standards and beyond the issues which can come from their interpretation. Standardized Data Exchange Standard Exchanges by IGES and STEP Read and Write 3D data as IGES format (5.3) and STEP format (AP203, AP214 and AP209) , for: 3D geometry and topology with XDE module: o Colors and Names o Assembly structures o Layers o Validation Properties

Using Shape Healing provides high quality results STEP in Open CASCADE Technology

STEP in Open CASCADE


STEP is more and more widely used to exchange data between various kinds of softwares, involved in CAD, PDM, Analysis, etc... STEP is far more than an "exchange standard" : it provides a technology and a set of methodologies to describe data to exchange in a modular and evolutive way. Regarding Open Cascade, this mostly applies to CAD data but it is not a limitation, other kinds of data for specific applications can be addressed too.

So, Open Cascade allows its users to address the STEP topic in these domains: Exchange of data for technical applications, following the stateof-the-art definitions and rules

Extension of case coverage, according to specific needs or to the evolution of general business uses Expertise on data architecture of an application, to get experience from STEP definitions and make easier the mapping to them, for a better interoperability with outer world

More about... Our expertise Added to the capability of Open Cascade technology to work with STEP, as it is or by extensions, we have also expertise in real implementation of STEP exchangers, from ISO definitions or dedicated to a specific domain. Open Cascade can support user projects involving STEP for: Specify, Develop, mapping between user application data and the STEP protocols already supported, with their evolutions Implement a STEP protocol or subset which applies for a particular domain (already defined), and follow up its evolution, ISO or particular Specify and implement a STEP protocol or subset in a particular domain, to support evolution of the needs for exchanging data, according to the state of the art Specify and develop for an application, mapping with such a STEP protocol Support the use of STEP in an application, existing or to come : this leads to check convergence and compliance concerns with existing or coming STEP definitions.

Shape Healing The shape Healing module is used in a conversion process (with external data). It can also be applied independently for: - data analysis - adaptation

- quality upgrading This module also allows "customization" of shapes, regarding mathematical definitions of geometry and topology, scaling, sewing. The covered data types are the geometrical and topological models (also known as BREP), which concern the Open CASCADE kernel. Read detailed information

Shape Healing
The Shape Healing module is a standard kit available for users of the certified version of Open CASCADE on all platforms supported by Open CASCADE (Linux, Sun Solaris, Windows). It provides a comprehensive functionality to heal various defects and inconsistencies in shapes and optimize shapes for use in Open CASCADE. One of the main uses of Shape Healing is Advanced Data Exchange module. It provides advanced functionality for translation Open CASCADE shapes to and from IGES and STEP formats. It is based on Open CASCADE IGES and STEP translators, but provides much better reliability, performance and quality. The paragraphs below explain the differences between Advanced Data Exchange and Open CASCADE translators, and give detailed information on functionality provided by Shape Healing toolkit. Open CASCADE IGES and STEP translators IGES and STEP translators in Open CASCADE can read and write IGES files conforming to IGES standard in version 5.3 and to STEP AP203 and AP214 (both CD and DIS versions) standards. The translators themselves as they are published in Open CASCADE provide all the necessary classes and tools to map IGES and STEP entities into Open CASCADE shapes: - classes representing IGES and STEP entities and whole models with relationships between entities - conversion from IGES and STEP entities to Open CASCADE shapes and vice-versa - convenient API to perform the translation These tools provide good results on perfect IGES and STEP files that fully conform to IGES (or STEP) rules and satisfy Open CASCADE

requirements for validity of shapes. However, many of IGES and STEP files encountered in real practice have some inconsistencies that lead to invalidity of shape resulting from translation. The Advanced Data Exchange module is intended to deal with such cases. Advanced Data Exchange The Advanced Data Exchange module features Shape Healing toolkit to heal various problems which may be encountered in shapes, so as to make shape valid in Open CASCADE. The Shape Healing is smoothly connected to IGES and STEP translators: the same API as for Open CASCADE IGES and STEP translators is used, just names of API packages change. Here are a few examples of typical problems that can be encountered in real IGES and STEP files, with illustrations of how Shape Healing deals with them: Face with missing seam edge The problem: Face on a periodical surface is limited by wires which make a full trip around the surface. These wires are closed in 3d but not closed in parametric space of the surface. This is not valid in Open CASCADE. The solution: Advanced Shape Healing fixes this face by inserting seam edge which combines two open wires and thus closes the parametric space. Note that internal wires are processed correctly. Wrong orientation of wires The problem: Wires on face have incorrect orientation, so that interior and outer parts of the face are mixed. The solution: Advanced Shape Healing recovers correct orientation of wires. Self-intersecting wire The problem: Face is invalid because its boundary wire has selfintersection (on two adjacent edges) The solution: Advanced Shape Healing cuts intersecting edges at intersection points thus making boundary valid. Lacking edge The problem: There is a gap between two edges in the wire, so that wire is not closed The solution: Advanced Shape Healing closes a gap by inserting

lacking edge.

Other Shape Healing Functionality


The Shape Healing toolkit can be used also independently on IGES and

STEP translators. It provides convenient API to many functions, which can be divided in three groups: - A function to analyze shape characteristics and, in particular, identify shapes that do not comply with Open CASCADE validity rules - A function to repair problem shapes - A function to upgrade shape characteristics. Analysis The analysis package detects shapes that do not conform to Open CASCADE geometry and topology validity rules by analyzing geometrical objects and topology. This package: - checks edge and wire consistency, - checks edge order in a wire, - checks the orientation of face boundaries, - analyzes shape tolerances, - returns the closed and open wires in a boundary Repair The repair package includes but is not limited to functions that: - Ensure consistency between the 3D curve and its corresponding parametric curve. - Repair defective wires - Ensure the shapes conform to a user given tolerance value - Fills gaps between patches and edges Upgrading The upgrading package enables the following functions: - Reduction of curve and surface degree - Splitting of shapes to obtain C1 continuity - Conversion of any types of curves or surfaces to Bezier or Bspline curves or surfaces and back - Splitting of closed surfaces and revolution surfaces.

Extended Data Exchange: XDE XDE allows you to adapt the scope of exchange, as an addition to geometric ("BREP") data, thereby improving interoperability with external software. Data types such as colors, assembly descriptions and validation properties (i.e. center of gravity etc..), which are handled in OCAF, are supported. Added to benefits of Shape Healing and XDE, the Data Exchange module also gives a way to query and examine a file, the results of a conversion and its validity. It is designed to support extensions (like new standards) in a common modular architecture.

Read detailed information

Extended Data Exchange


The XDE (Extended Data Exchange) module is an optional kit available for users of certified version of Open CASCADE on all platforms supported by it (Linux, Sun Solaris, Windows). The basis of XDE, called XCAF, is a framework based on OCAF (Open CASCADE Application Framework) intended to work with assemblies and with various kinds of data (attributes) attached to shapes. The following types of data are supported currently: - assemblies - validation properties - names - colors - layers The support of these data is described below. It is also possible to add a new types of data taking the existing tools as prototypes. Finally, the XDE provides reader and writer tools for reading and writing the data supported by XCAF to and from IGES and STEP files. Some examples of IGES and STEP files with colors and other attributes read to XDE are given in the following paragraphs Assembly Structure XDE supports assemblies by separation the shape definition and its location. The shape itself is stored in OCAF as a simple shape object without location, and then asseblies are defined by specifying what shapes they have as components, and with what locations. This gives a flexibility to define and easily work with complex multi-level assemblies. Validation Properties Validation properties are quite a new feature of STEP standard, currently being actively tested by CAX-IF organisation and implemented in commercial STEP translators. Validation properties are geometric characteristics of shapes (volume, centroid, surface area) which can be put to the STEP file by the sending system. These data should be used by the receiving system in order to validate quality of translation (by comparing these values computed by original system with the same values computed by

receiving system on resulting model). Advanced Data Exchange supports both reading and writing validation properties, and provides some tool to check them. Names XDE supports reading and writing names of shapes to and from both IGES and STEP formats. This functionality can be switched off in case of need (if these data are not needed, thus avoiding unnecessary information in the document). Colors and Layers XDE can read and write colors and layers assigned to shapes or their subparts (down to level of faces and edges) to and from both IGES and STEP formats.

Application framework (OCAF)


The Application Framework uses an associativity engine to simplify the development of your CAD application. Based on an application/document architecture, it does this thanks

to the following features: - Application data is handled by the mechanism of attributes - Attributes may be organized according to your development needs - Multiple documents can be managed by the application - Ready-to-use modeling data attributes common to CAD/CAM applications - Data storage services - A ready-to-use Undo-redo function Because OCAF handles your application structure, this leaves only the creation of application-specific data and GUIs as your major development tasks. Organization of application data is where OCAF differs from other CAD frameworks. In OCAF, the data structure is not shape-driven, but reference-key driven. In this approach, attributes such as shape data, color, material, are attached to a deeper invariant structure of a model than the shapes themselves. OCAF then organizes and embeds these attributes in a document. OCAF documents are in turn managed by an OCAF application.

Data Attributes

The following ready-to-use attributes are provided: - Shape attributes, which contain shapes and their evolution - Standard attributes, a collection of common CAD/CAM attributes including: Real

Integer Name Constraint

- Visualization attributes which implement the AIS viewer capabilities with the application data (For more information on AIS, see the section AIS in the Chapter [link::/products/occ/overview/compocc5/::Visualization]) - Function attributes which regenerate any data affected by modifications in the document If you still have questions about it, read the [link::/att/20020610165633_wp_ocaf.pdf::OCAF white paper] (pdf format).

Data Storage
Normally, all data structures provided by Open CASCADE are runtime structures, or in other words, transient data. As transient data, they exist only while the application is running and are not stored permanently. However, the Data Storage module provides resources which give the application the capability to store data on disk as persistent data. The data storage services also provide a libraries of persistent classes and translation functions to translate data back and forth between transience and persistence. If you are on Unix platforms and use WOK and CDL, you can create your own persistent classes. In this case, data storage is achieved by implementing the Storage and Retrieval drivers.

Persistence
Libraries of Persistent Classes The libraries of persistent classes are extensible libraries of

elementary classes you use to define the database schema of your application. They include: - Unicode (8-bit or 16-bit character type) strings - Collections of any kind of persistent data such as arrays, stacks, queues, and graphs All persistent classes are derived from the Persistent base class which defines a unique way of creating and handling persistent objects. You create new persistent classes by inheriting from this base class. Translation Functions The translation functions allow you to convert persistent objects to transient ones and vice-versa. These translation functions are used to build the Storage and Retrieval drivers of the application. For each class of 2D and 3D geometric types, and for the general shape class in the topological data structure library, there are corresponding persistent class libraries which allow you to easily translate your data.

GUI framework
The Open CASCADE Graphical User Interface Framework (GUIF) is a toolkit intended for developing the graphical user interface of applications based on the Open CASCADE Application Framework (OCAF). GUIF complements OCAF to make Open CASCADE Technology a genuine, portable application framework. GUIF is centered on the association of many application-documents hosted by a common desktop. It features: - Multiple Document Interface (MDI), that is, management of many documents in a single desktop (main window) - Multiple Viewers per Document allowing a document to be displayed, for example, in 3D and data views (tree-view) - 3D Viewer including ready-to-use user interaction such as zoom, pan, 3D rotations and graphic selection of geometrical models simple and multiple selection as well as selection by rectangular lasso - Notion of an active document - once the user clicks on a view, the

associated document (and application) is activated - User Actions implemented as operation objects - Binding with the Open CASCADE document, 3D viewer and graphical selection mechanism Open CASCADE GUIF is available as SALOME User Interface Toolkit (SUIT) which is a part of SALOME Open Source distribution ( http://www.salome-platform.org ). This implementation of the framework is based on the Qt library which makes the application portable on Windows, Linux and all major Unix platforms. To our clients we offer customization of the Open CASCADE GUIF based on: - Microsoft Foundation Classes (MFC). The Windows Application Desktop (WAD) makes the application native Windows. - C#. The C# Application Desktop makes the application portable an all platforms that run C#. - Swing Java 2 library. The Java Application Desktop (JAD) makes the application portable on the platforms running the Java 2 Virtual Machine.

Development tools
Open CASCADE provides complete set of development tools applicable for small in-house developments and for huge industrial projects. Draw The Open CASCADE Test Harness, also called Draw, is an easy-to-use testing tool for the geometric modeling libraries. It can be used to test

and demonstrate modeling components before building an entire application. It includes: - A command interpreter based on the TCL language - A 2D and a 3D viewer based on X on Unix and Win32 API on Windows - A set of pre-defined commands The Test Harness is a single program written in C++, which can be called from interpreted commands. Pre-defined commands provide general-purpose services such as: - Getting help - Evaluating a script from a file - Capturing commands in a file - Managing views - Displaying objects The viewers support operations such as zoom, pan, rotation and fullscreen views. The Test Harness also provides geometric commands to create and manipulate curves and surfaces, and topological commands to create and manipulate shapes. Geometric and topological commands implement geometry and topology resources, and provide examples of their use. You can add new test harness commands to Draw in order to test or demonstrate a new functionality which you are developing. The source code of this harness is provided. WOK Workshop Organization Kit (WOK) provides: - A set of structuring elements to dispatch the source files of large software projects, as a set of development units on which developers act using standard tools. - Organization of different working areas for development teams using workbenches so that concurrent development is easier. - Organization workbenches in workshops to manage processes related to software maintenance. Placement of workshops in factories to manage very large scale development. WOK leaves you free to access your favorites tools for performing the usual tasks of the development process: - Editors - Compilers and/or send various processors (lex ,yacc)

- Linkers to create shareable libraries - Debuggers, investigation tools etc. WOK comes as an extension of the Tcl scripting langage. It allows you to: - Create entities and control their physical location - Manage the development unit's build process - Wrap access to various tools involved in the build process (Compilers, linkers, ...) - Easily automate daily tasks

Вам также может понравиться