MbFilletSurface Fillet Surface

Class MbFilletSurface is declared in the surf_fillet_surface.h file.

The fillet surface MbFilletSurface belongs to the group of blending surfaces MbSmoothSurface. The fillet surface is defined by a curve on the first blended surface MbSurfaceCurve curve1, a curve on the second blended surface MbSurfaceCurve curve2, a curve MbCurve3D curve0, a function MbFunction weights0 of the weights of the curve curve0, the fillet construction method form, the fillet radii distance1 and distance2, the shape factor conic, the boundary values umin and umax of the parameter of the curves curve1, curve2, curve0 and the function weights0, the boundary values of the second surface parameter vmin and vmax, the flag of the first surface parameter periodicity uclosed, the flag that indicates the presence of a surface pole at the initial value of the first parameter poleMin, the flag that indicates the presence of a surface pole at the final value of the first parameter poleMax, the flag of uniform parameterization of the surface in the second parameter even, the flag of smooth blending of the surface with the blended surfaces equable, and the flag byCurve1 that indicates the presence of an edge along the curve curve2 or curve1 (equable = false). The surface also has some additional data that is optional and is used to speed up the surface methods.

The curves curve1, curve2, curve0 and the function weights0 are coordinated with each other and have the same parameter domain. The first surface parameter u coincides with the parameter of the curves curve1, curve2, curve0 and the function weights0, which is common for them. The first surface parameter takes values on the segment umin ≤ u ≤ umax, which corresponds to the domain of the curves curve1, curve2, curve0 and the function weights0. The surface can be periodic in the first parameter if the curves curve1, curve2, curve0 and the function weights0 are periodic.

The second surface parameter v takes values on the segment vmin ≤ v ≤ vmax. The value v = vmin corresponds to a point on the curve curve1, and the value v = vmax corresponds to a point on the curve curve2. The surface cannot be periodic in the second parameter.

In the PointOn( double u, double v, MbCartPoint3D & s ) method, the radius vector of the surface s is described by the vector function

\[s(u, v) = \frac{(1 - v)^{2}\,\mathbf{curve1}(u) + 2 t (1 - v)\,\mathit{\text{weight}}0(u)\,\mathbf{curve0}(u) + v^{2}\,\mathbf{curve2}(u)}{(1 - v)^{2} + 2 v (1 - v)\,\mathit{\text{weight}}0(u) + v^{2}}.\]

Each curve s(const, v) with a fixed first surface parameter u = const is a third-order NURBS curve constructed by the points curve1(u), curve0(u), curve2(u), where the end points have unit weights and the middle point curve0(u) has the weight weights0(u). If conic = _ARC_, the function weights0(u) is computed from the condition that all curves s(const, v) are circular arcs. If conic ≠ _ARC_, the function weights0 is a constant and is equal to the shape factor conic. The fillet surface is shown in Fig. 1.

../../../../_images/O.5.25.1.png

Fig. 1

In the general case, the surface blends smoothly with the surfaces on which the curves curve1(u) and curve2(u) lie. In this case, the parameter equable = true. If equable = false, then along one of the curves curve1 or curve2 the blending is smooth, and the other curve is an edge. If byCurve1 = true, the blending is smooth along the curve curve1; otherwise, the blending is smooth along the curve curve2. A fillet surface with the preserved edge is shown in Fig. 2.

../../../../_images/O.5.25.2.png

Fig. 2

If the fillet radii distance1 and distance2 are not equal, then the fillet surface in the section s(const, v) with u = const describes an ellipse. An elliptic fillet surface is shown in Fig. 3.

../../../../_images/O.5.25.3.png

Fig. 3

In the general case, the fillet construction method is form = st_Fillet. If the fillet construction method is form = st_Span, then distance1 = distance2 and they are equal to the distance between the curves curve1 and curve2, and the fillet surface radius is variable. A fillet surface with the preserved distance between the guide curves is shown in Fig. 4.

../../../../_images/O.5.25.4.png

Fig. 4

The curves on the surface s(const, v) with u = const are conic sections whose shape depends on the parameter conic. If conic = _ARC_ = 0, then the curves on the surface s(const, v) are circular arcs. If conic = 0.5, then the curves on the surface s(const, v) are parabolic arcs. If 0.05 < conic < 0.5, then the curves on the surface s(const, v) are elliptic arcs. If 0.5 < conic < 0.95, then the curves on the surface s(const, v) are hyperbolic arcs. The surface can have a pole at u = umin and u = umax if the corresponding ends of the curves curve0, curve1 and curve2 coincide.