0024157: Parallelization of assembly part of BO
[occt.git] / src / BRepFeat / BRepFeat_MakeCylindricalHole.cdl
CommitLineData
b311480e 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
5--
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.
10--
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.
13--
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.
20
7fd59977 21
22
23class MakeCylindricalHole from BRepFeat inherits Builder from BRepFeat
24
4e57c75e 25 ---Purpose: Provides a tool to make cylindrical holes on a shape.
7fd59977 26
27uses Shape from TopoDS,
28 Face from TopoDS,
29 Ax1 from gp,
30 Status from BRepFeat
31
32
33raises NotDone from StdFail,
34 ConstructionError from Standard
35
36is
37
38 Create
4e57c75e 39 ---Purpose: Empty constructor.
40 returns MakeCylindricalHole from BRepFeat;
41 ---C++: inline
7fd59977 42
43
44 Init(me: in out; Axis: Ax1 from gp)
4e57c75e 45 ---Purpose: Sets the axis of the hole(s).
46 ---C++: inline
47 is static;
7fd59977 48
49
50 Init(me: in out; S: Shape from TopoDS; Axis: Ax1 from gp)
4e57c75e 51 ---Purpose: Sets the shape and axis on which hole(s) will be
52 -- performed.
7fd59977 53 ---C++: inline
4e57c75e 54 is static;
7fd59977 55
56
57 Perform(me: in out; Radius: Real from Standard)
4e57c75e 58 ---Purpose: Performs every holes of radius <Radius>. This
59 -- command has the same effect as a cut operation
60 -- with an infinite cylinder defined by the given
61 -- axis and <Radius>.
7fd59977 62
4e57c75e 63 raises ConstructionError from Standard
64 -- The exception is raised when no shape or no axis is defined.
65 is static;
7fd59977 66
67
68 Perform(me: in out; Radius: Real from Standard;
69 PFrom,PTo: Real from Standard;
70 WithControl: Boolean from Standard = Standard_True)
4e57c75e 71 ---Purpose: Performs evry hole of radius <Radius> located
72 -- between PFrom and PTo on the given axis. If
73 -- <WithControl> is set to Standard_False no control
74 -- are done on the resulting shape after the
75 -- operation is performed.
7fd59977 76
4e57c75e 77 raises ConstructionError from Standard
78 -- The exception is raised when no shape or no axis is defined.
79 is static;
7fd59977 80
81
82 PerformThruNext(me: in out;
83 Radius: Real from Standard;
84 WithControl: Boolean from Standard = Standard_True)
4e57c75e 85 ---Purpose: Performs the first hole of radius <Radius>, in the
86 -- direction of the defined axis. First hole signify
87 -- first encountered after the origin of the axis. If
88 -- <WithControl> is set to Standard_False no control
89 -- are done on the resulting shape after the
90 -- operation is performed.
7fd59977 91
4e57c75e 92 raises ConstructionError from Standard
93 -- The exception is raised when no shape or no axis is defined.
94 is static;
7fd59977 95
96
97 PerformUntilEnd(me: in out;
98 Radius: Real from Standard;
99 WithControl: Boolean from Standard = Standard_True)
4e57c75e 100 ---Purpose: Performs evry holes of radius <Radius> located
101 -- after the origin of the given axis. If
102 -- <WithControl> is set to Standard_False no control
103 -- are done on the resulting shape after the
104 -- operation is performed.
7fd59977 105
4e57c75e 106 raises ConstructionError from Standard
107 -- The exception is raised when no shape or no axis is defined.
108 is static;
7fd59977 109
110
111 PerformBlind(me: in out;
112 Radius: Real from Standard;
113 Length: Real from Standard;
4e57c75e 114 WithControl: Boolean from Standard = Standard_True)
115 ---Purpose: Performs a blind hole of radius <Radius> and
116 -- length <Length>. The length is measured from the
117 -- origin of the given axis. If <WithControl> is set
118 -- to Standard_False no control are done after the
119 -- operation is performed.
7fd59977 120
4e57c75e 121 raises ConstructionError from Standard
122 -- The exception is raised when no shape or no axis is defined.
123 is static;
7fd59977 124
125
126 Status(me)
4e57c75e 127 ---Purpose: Returns the status after a hole is performed.
128 ---C++: inline
129 returns Status from BRepFeat
130 is static;
7fd59977 131
132
133--- Redefinition of BRepBuilderAPI_MakeShape methods
134--
135--
136
4e57c75e 137 Build(me:out);
138 ---Purpose: Builds the resulting shape (redefined from
139 -- MakeShape). Invalidates the given parts of tools
140 -- if any, and performs the result of the local
141 -- operation.
7fd59977 142
143
144--- Private implementation method
145
146
147 Validate(me: in out)
148
4e57c75e 149 returns Status from BRepFeat
150 is static private;
7fd59977 151
152
153fields
154
155 myAxis : Ax1 from gp;
156 myAxDef : Boolean from Standard;
157 myStatus : Status from BRepFeat;
158 myIsBlind : Boolean from Standard;
159 myValidate: Boolean from Standard;
160 myTopFace : Face from TopoDS;
161 myBotFace : Face from TopoDS;
162
163
164end MakeCylindricalHole;