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
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
|
-- File: BRepLib.cdl
-- Created: Wed Dec 15 15:34:04 1993
-- Author: Remi LEQUETTE
-- <rle@zerox>
---Copyright: Matra Datavision 1993
package BRepLib
---Purpose: The BRepLib package provides general utilities for
-- BRep.
--
-- * FindSurface : Class to compute a surface through
-- a set of edges.
--
-- * Compute missing 3d curve on an edge.
uses
Standard,
StdFail,
gp,
Geom,
GeomAbs,
Geom2d,
TopoDS,
TopLoc,
TopTools,
TopAbs
is
enumeration EdgeError is
---Purpose: Errors that can occur at edge construction.
EdgeDone, -- no error
PointProjectionFailed,
ParameterOutOfRange,
DifferentPointsOnClosedCurve,
PointWithInfiniteParameter,
DifferentsPointAndParameter,
LineThroughIdenticPoints
end EdgeError;
enumeration WireError is
---Purpose: Errors that can occur at wire construction.
WireDone, -- no error
EmptyWire,
DisconnectedWire,
NonManifoldWire
end WireError;
enumeration FaceError is
---Purpose: Errors that can occur at face construction.
FaceDone, -- no error
NoFace, -- not initialised
NotPlanar,
CurveProjectionFailed,
ParametersOutOfRange
end FaceError;
enumeration ShellError is
---Purpose: Errors that can occur at shell construction.
ShellDone, -- no error
EmptyShell,
DisconnectedShell,
ShellParametersOutOfRange
end ShellError;
enumeration ShapeModification is
---Purpose: Modification type after a topologic operation.
Preserved, -- no modification
Deleted,
Trimmed,
Merged,
BoundaryModified
end ShapeModification;
deferred class Command;
---Purpose: Root class for all BRepBuilderAPI commands.
deferred class MakeShape;
---Purpose: Root class for all shape constructions.
--
-- Construction of topology from geometry
--
class MakeVertex;
class MakeEdge;
class MakeEdge2d;
class MakePolygon;
class MakeFace;
--
-- Construction of composite topologies
--
class MakeWire;
class MakeShell;
class MakeSolid;
--- END of API commands.
class FindSurface;
---Purpose: Find a surface in a set of edges.
class FuseEdges;
---Purpose:
--
-- Default precison methods.
-- The default precision is initialized with Precision::Confusion()
--
Precision(P : Real);
---Purpose: Sets the default precision. The current Precision
-- is returned.
---Level: Public
Precision returns Real;
---Purpose: Returns the default precision.
---Level: Public
--
-- Default plane for 2d edges.
--
Plane(P : Plane from Geom);
---Purpose: Sets the current plane to P.
---Level: Public
Plane returns Plane from Geom;
---Purpose: Returns the current plane.
--
---C++: return const &
---Level: Public
CheckSameRange(E : Edge from TopoDS ;
Confusion : Real from Standard = 1.0e-12)
returns Boolean;
---Purpose: checks if the Edge is same range IGNORING
-- the same range flag of the edge
-- Confusion argument is to compare real numbers
-- idenpendently of any model space tolerance
--
SameRange(E : Edge from TopoDS ;
Tolerance : Real from Standard = 1.0e-5) ;
---Purpose: will make all the curve representation have
-- the same range domain for the parameters.
-- This will IGNORE the same range flag value
-- to proceed.
-- If there is a 3D curve there it will the
-- range of that curve. If not the first curve representation
-- encountered in the list will give its range to
-- the all the other curves.
BuildCurve3d(E : Edge from TopoDS ;
Tolerance : Real from Standard = 1.0e-5 ;
Continuity : Shape from GeomAbs = GeomAbs_C1;
MaxDegree : Integer = 14;
MaxSegment : Integer = 0 --30
) returns Boolean;
---Purpose: Computes the 3d curve for the edge <E> if it does
-- not exist. Returns True if the curve was computed
-- or existed. Returns False if there is no planar
-- pcurve.
-- <MaxSegment> >= 30 in approximation
BuildCurves3d(S : Shape from TopoDS ;
Tolerance : Real from Standard;
Continuity : Shape from GeomAbs = GeomAbs_C1;
MaxDegree : Integer = 14;
MaxSegment : Integer = 0 --30
) returns Boolean;
---Purpose: Computes the 3d curves for all the edges of <S>
-- return False if one of the computation failed.
-- <MaxSegment> >= 30 in approximation
BuildCurves3d(S : Shape from TopoDS)
returns Boolean;
---Purpose: Computes the 3d curves for all the edges of <S>
-- return False if one of the computation failed.
--
--
UpdateEdgeTol( E : Edge from TopoDS ;
MinToleranceRequest : Real from Standard ;
MaxToleranceToCheck : Real from Standard)
---Purpose: Checks if the edge has a Tolerance smaller than -- --
-- -- -- MaxToleranceToCheck if so it will compute the
-- radius of -- the cylindrical pipe surface that
-- MinToleranceRequest is the minimum tolerance before it
-- is usefull to start testing. Usually it should be arround
-- 10e-5
-- contains all -- the curve represenation of the edge
-- returns True if the Edge tolerance had to be updated
returns Boolean ;
UpdateEdgeTolerance(S : Shape from TopoDS;
MinToleranceRequest : Real from Standard ;
MaxToleranceToCheck : Real from Standard)
---Purpose: -- Checks all the edges of the shape whose -- -- --
-- Tolerance is smaller than MaxToleranceToCheck --
-- Returns True if at least one edge was updated --
-- MinToleranceRequest is the minimum tolerance before
-- -- it -- is usefull to start testing. Usually it
-- should be arround -- 10e-5--
--
-- Warning :The method is very slow as it checks all.
-- Use only in interfaces or processing assimilate batch
--
returns Boolean ;
SameParameter(E: Edge from TopoDS;
Tolerance : Real from Standard = 1.0e-5);
---Purpose: Computes new 2d curve(s) for the edge <E> to have
-- the same parameter as the 3d curve.
-- The algorithm is not done if the flag SameParameter
-- was True on the Edge.
SameParameter(S: Shape from TopoDS ;
Tolerance : Real from Standard = 1.0e-5;
forced : Boolean from Standard = Standard_False);
---Purpose: Computes new 2d curve(s) for all the edges of <S>
-- to have the same parameter as the 3d curve.
-- The algorithm is not done if the flag SameParameter
-- was True on an Edge.
UpdateTolerances(S: Shape from TopoDS;
verifyFaceTolerance : Boolean from Standard = Standard_False);
---Purpose: Replaces tolerance of FACE EDGE VERTEX by the
-- tolerance Max of their connected handling shapes.
-- It is not necessary to use this call after
-- SameParameter. (called in)
OrientClosedSolid(solid : in out Solid from TopoDS)
---Purpose: Orients the solid forward and the shell with the
-- orientation to have matter in the solid. Returns
-- False if the solid is unOrientable (open or incoherent)
returns Boolean;
EncodeRegularity(S : Shape from TopoDS;
TolAng : Real from Standard = 1.0e-10);
---Purpose: Encodes the Regularity of edges on a Shape.
-- Warning: <TolAng> is an angular tolerance, expressed in Rad.
-- Warning: If the edges's regularity are coded before, nothing
-- is done.
EncodeRegularity(S : in out Edge from TopoDS;
F1, F2 : Face from TopoDS;
TolAng : Real from Standard = 1.0e-10);
---Purpose: Encodes the Regularity beetween <F1> and <F2> by <E>
-- Warning: <TolAng> is an angular tolerance, expressed in Rad.
-- Warning: If the edge's regularity is coded before, nothing
-- is done.
SortFaces (S : Shape from TopoDS;
LF : in out ListOfShape from TopTools);
---Purpose: Sorts in LF the Faces of S on the complexity of
-- their surfaces
-- (Plane,Cylinder,Cone,Sphere,Torus,other)
ReverseSortFaces (S : Shape from TopoDS;
LF : in out ListOfShape from TopTools);
---Purpose: Sorts in LF the Faces of S on the reverse
-- complexity of their surfaces
-- (other,Torus,Sphere,Cone,Cylinder,Plane)
end BRepLib;
|