1 -- Created on: 1995-06-13
2 -- Created by: Jacques GOUSSARD
3 -- Copyright (c) 1995-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
25 ---Purpose: BRepFeat is necessary for the
26 -- creation and manipulation of both form and mechanical features in a
27 -- Boundary Representation framework. Form features can be depressions or
28 -- protrusions and include the following types:
34 -- Depending on whether you wish to make a depression or a protrusion,
35 -- you can choose your operation type between the following:
36 -- - removing matter (a Boolean cut: Fuse setting 0)
37 -- - adding matter (Boolean fusion: Fuse setting 1)
38 -- The semantics of form feature creation is based on the
39 -- construction of shapes:
40 -- - for a certain length in a certain direction
41 -- - up to a limiting face
42 -- - from a limiting face at a height
43 -- - above and/or below a plane
44 -- The shape defining the construction of a feature can be either a
45 -- supporting edge or a concerned area of a face.
46 -- In case of supporting edge, this contour can be attached to a face
47 -- of the basis shape by binding. When the contour is bound to this face,
48 -- the information that the contour will slide on the face becomes
49 -- available to the relevant class methods. In case of the concerned
50 -- area of a face, you could, for example, cut it out and move it at
51 -- a different height, which will define the limiting face of a
52 -- protrusion or depression. Topological definition with local
53 -- operations of this sort makes calculations simpler and faster
54 -- than a global operation. The latter would entail a second phase of
55 -- removing unwanted matter to get the same result.
56 -- Mechanical features include ribs - protrusions - and grooves (or
57 -- slots) - depressions along planar (linear) surfaces or revolution surfaces.
58 -- The semantics of mechanical features is based on giving
59 -- thickness to a contour. This thickness can either be unilateral
60 -- - on one side of the contour - or bilateral - on both sides. As in
61 -- the semantics of form features, the thickness is defined by
62 -- construction of shapes in specific contexts.
63 -- However, in case of mechanical features, development contexts
64 -- differ. Here they include extrusion:
65 -- - to a limiting face of the basis shape
66 -- - to or from a limiting plane
82 --modified by NIZNHY-PKV Thu Mar 21 18:31:59 2002 f
84 --modified by NIZNHY-PKV Thu Mar 21 18:32:02 2002 t
89 enumeration StatusError is
90 ---Purpose: Discribes the error.
123 deferred class Builder; -- inherits MakeShape from BRepBuilderAPI
125 class LocalOperation; -- inherits Builder from BRepFeat;
127 class MakeCylindricalHole; -- inherits Builder from BRepFeat;
130 class SplitShape; -- inherits MakeShape from BRepBuilderAPI;
132 deferred class Form; -- inherits MakeShape from BRepBuilderAPI;
134 deferred class RibSlot; -- inherits MakeShape from BRepBuilderAPI;
136 class MakePrism; -- inherits Form from BRepFeat
138 class MakeRevol; -- inherits Form from BRepFeat
140 class MakePipe; -- inherits Form from BRepFeat
142 class Gluer; -- inherits MakeShape from BRepBuilderAPI
146 class MakeLinearForm;
148 class MakeRevolutionForm;
150 enumeration Status is -- to be completed
158 enumeration PerfSelection is
165 ---Purpose: To declare the type of selection semantics for local operation Perform methods
167 -- - SelectionFU - selection of a face up to which a
168 -- local operation will be performed
169 -- - SelectionU - selection of a point up to which a
170 -- local operation will be performed
171 -- - SelectionSh - selection of a shape on which a
172 -- local operation will be performed
173 -- - SelectionShU - selection of a shape up to which a
174 -- local operation will be performed.
178 SampleEdges(S : Shape from TopoDS;
179 Pt: in out SequenceOfPnt from TColgp);
183 Barycenter(S : Shape from TopoDS;
184 Pt: in out Pnt from gp);
186 ParametricBarycenter(S : Shape from TopoDS;
189 returns Real from Standard;
191 ParametricMinMax(S : Shape from TopoDS;
193 prmin : out Real from Standard;
194 prmax : out Real from Standard;
195 prbmin: out Real from Standard;
196 prbmax: out Real from Standard;
197 flag : out Boolean from Standard;
198 Ori : Boolean from Standard = Standard_False);
199 ---Purpose: Ori = True taking account the orientation
201 IsInside(F1 : Face from TopoDS;
202 F2 : Face from TopoDS)
204 returns Boolean from Standard;
206 IsInOut (FC : FClass2d from BRepTopAdaptor;
207 AC : Curve from Geom2dAdaptor)
210 returns Boolean from Standard;
212 -- TangSli(E : Edge from TopoDS;
213 -- F : Shape from TopoDS)
215 -- returns Boolean from Standard;
218 FaceUntil (S : Shape from TopoDS;
219 F : in out Face from TopoDS);
222 Tool (SRef : Shape from TopoDS;
223 Fac : Face from TopoDS;
224 Orf : Orientation from TopAbs)
226 returns Solid from TopoDS;
228 Print(SE : StatusError from BRepFeat; S : in out OStream) returns OStream;
229 ---Purpose: Prints the Error description of the State <St> as a String on
230 -- the Stream <S> and returns <S>.