1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
|
-- File: BRepOffsetAPI_DraftAngle.cdl
-- Created: Wed Feb 22 11:32:25 1995
-- Author: Jacques GOUSSARD
-- <jag@topsn2>
---Copyright: Matra Datavision 1995
class DraftAngle from BRepOffsetAPI inherits ModifyShape from BRepBuilderAPI
---Purpose: Taper-adding transformations on a shape.
-- The resulting shape is constructed by defining one face
-- to be tapered after another one, as well as the
-- geometric properties of their tapered transformation.
-- Each tapered transformation is propagated along the
-- series of faces which are tangential to one another and
-- which contains the face to be tapered.
-- This algorithm is useful in the construction of molds or
-- dies. It facilitates the removal of the article being produced.
-- A DraftAngle object provides a framework for:
-- - initializing the construction algorithm with a given shape,
-- - acquiring the data characterizing the faces to be tapered,
-- - implementing the construction algorithm, and
-- - consulting the results.
-- Warning
-- - This algorithm treats planar, cylindrical and conical faces.
-- - Do not use shapes, which with a draft angle added to
-- a face would modify the topology. This would, for
-- example, involve creation of new vertices, edges or
-- faces, or suppression of existing vertices, edges or faces.
-- - Any face, which is continuous in tangency with the
-- face to be tapered, will also be tapered. These
-- connected faces must also respect the above criteria.
uses
Shape from TopoDS,
Face from TopoDS,
ShapeModification from BRepBuilderAPI,
ListOfShape from TopTools,
Dir from gp,
Pln from gp,
ErrorStatus from Draft
raises
NotDone from StdFail,
NullObject from Standard,
NoSuchObject from Standard,
ConstructionError from Standard
is
Create
returns DraftAngle from BRepOffsetAPI;
---Purpose: Constructs an empty algorithm to perform
-- taper-adding transformations on faces of a shape.
-- Use the Init function to define the shape to be tapered.
Create(S: Shape from TopoDS)
returns DraftAngle from BRepOffsetAPI;
---Purpose: Initializes an algorithm to perform taper-adding
-- transformations on faces of the shape S.
-- S will be referred to as the initial shape of the algorithm.
Clear(me: in out)
---Purpose: Cancels the results of all taper-adding transformations
-- performed by this algorithm on the initial shape. These
-- results will have been defined by successive calls to the function Add.
is static;
Init(me: in out; S: Shape from TopoDS)
---Purpose: Initializes, or reinitializes this taper-adding algorithm with the shape S.
-- S will be referred to as the initial shape of this algorithm.
is static;
Add(me: in out; F : Face from TopoDS;
Direction : Dir from gp;
Angle : Real from Standard;
NeutralPlane: Pln from gp;
Flag : Boolean from Standard = Standard_True)
---Purpose: Adds the face F, the direction
-- Direction, the angle Angle, the plane NeutralPlane, and the flag
-- Flag to the framework created at construction time, and with this
-- data, defines the taper-adding transformation.
-- F is a face, which belongs to the initial shape of this algorithm or
-- to the shape loaded by the function Init.
-- Only planar, cylindrical or conical faces can be tapered:
-- - If the face F is planar, it is tapered by inclining it
-- through the angle Angle about the line of intersection between the
-- plane NeutralPlane and F.
-- Direction indicates the side of NeutralPlane from which matter is
-- removed if Angle is positive or added if Angle is negative.
-- - If F is cylindrical or conical, it is transformed in the
-- same way on a single face, resulting in a conical face if F
-- is cylindrical, and a conical or cylindrical face if it is already conical.
-- The taper-adding transformation is propagated from the face F along
-- the series of planar, cylindrical or conical faces containing F,
-- which are tangential to one another.
-- Use the function AddDone to check if this taper-adding transformation is successful.
-- Warning
-- Nothing is done if:
-- - the face F does not belong to the initial shape of this algorithm, or
-- - the face F is not planar, cylindrical or conical.
-- Exceptions
-- - Standard_NullObject if the initial shape is not
-- defined, i.e. if this algorithm has not been initialized
-- with the non-empty constructor or the Init function.
-- - Standard_ConstructionError if the previous call to
-- Add has failed. The function AddDone ought to have
-- been used to check for this, and the function Remove
-- to cancel the results of the unsuccessful taper-adding
-- transformation and to retrieve the previous shape.
raises NullObject from Standard,
ConstructionError from Standard
is static;
AddDone(me)
---Purpose: Returns true if the previous taper-adding
-- transformation performed by this algorithm in the last
-- call to Add, was successful.
-- If AddDone returns false:
-- - the function ProblematicShape returns the face
-- on which the error occurred,
-- - the function Remove has to be used to cancel the
-- results of the unsuccessful taper-adding
-- transformation and to retrieve the previous shape.
-- Exceptions
-- Standard_NullObject if the initial shape has not
-- been defined, i.e. if this algorithm has not been
-- initialized with the non-empty constructor or the .Init function.
returns Boolean from Standard
raises NullObject from Standard
is static;
Remove(me: in out; F: Face from TopoDS)
---Purpose: Cancels the taper-adding transformation previously
-- performed by this algorithm on the face F and the
-- series of tangential faces which contain F, and retrieves
-- the shape before the last taper-adding transformation.
-- Warning
-- You will have to use this function if the previous call to
-- Add fails. Use the function AddDone to check it.
-- Exceptions
-- - Standard_NullObject if the initial shape has not
-- been defined, i.e. if this algorithm has not been
-- initialized with the non-empty constructor or the Init function.
-- - Standard_NoSuchObject if F has not been added
-- or has already been removed.
raises NullObject from Standard,
NoSuchObject from Standard
is static;
ProblematicShape(me)
returns Shape from TopoDS
---Purpose: Returns the shape on which an error occurred after an
-- unsuccessful call to Add or when IsDone returns false.
-- Exceptions
-- Standard_NullObject if the initial shape has not been
-- defined, i.e. if this algorithm has not been initialized with
-- the non-empty constructor or the Init function.
---C++: return const&
raises NullObject from Standard
is static;
Status(me)
---Purpose: Returns an error status when an error has occured
-- (Face, Edge or Vertex recomputaion problem).
-- Otherwise returns Draft_NoError. The method may be
-- called if AddDone returns Standard_False, or when
-- IsDone returns Standard_False.
returns ErrorStatus from Draft
raises NullObject from Standard
-- The exception is raised if no shape has been
-- given(constructor or Init method).
is static;
ConnectedFaces(me; F: Face from TopoDS)
returns ListOfShape from TopTools
---Purpose: Returns all the faces which have been added
-- together with the face <F>.
--
---C++: return const&
raises NullObject from Standard,
-- The exception is raised if no shape has been
-- given(constructor or Init method).
NoSuchObject from Standard,
-- The exception is raised if F has not been added.
NotDone from StdFail
-- The exception is raised if AddDone returns False.
is static;
ModifiedFaces(me)
returns ListOfShape from TopTools
---Purpose: Returns all the faces on which a modification has
-- been given.
--
---C++: return const&
raises NullObject from Standard,
-- The exception is raised if no shape has been
-- given(constructor or Init method).
NotDone from StdFail
-- The exception is raised if AddDone returns False.
is static;
Build(me : in out)
---Purpose: Builds the resulting shape (redefined from MakeShape).
---Level: Public
is redefined;
CorrectWires(me : in out);
Generated (me: in out; S : Shape from TopoDS)
---Purpose: Returns the list of shapes generated from the
-- shape <S>.
---C++: return const &
---Level: Public
returns ListOfShape from TopTools
is redefined virtual;
Modified (me: in out; S : Shape from TopoDS)
---Purpose: Returns the list of shapes modified from the shape
-- <S>.
---C++: return const &
---Level: Public
returns ListOfShape from TopTools
is redefined virtual;
fields
myModifiedShapes : ListOfShape from TopTools;
end DraftAngle;
|