MbChannelSurface Fillet Surface
Class MbChannelSurface is declared in the surf_channel_surface.h file.
The variable-radius fillet surface MbChannelSurface is an inheritor of the fillet surface MbFilletSurface. The variable-radius fillet surface is defined by a curve on the first blended surface MbFilletSurface 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, a radius variation function MbFunction function, 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 functions weights0 and function, 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, and the flag that indicates the presence of a surface pole at the final value of the first parameter poleMax. 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 functions weights0, function 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 functions weights0 and function, 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 functions weights0 and function. The surface can be periodic in the first parameter if the curves curve1, curve2, curve0 and the functions weights0 and function 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
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). As the first surface parameter varies, the fillet radii change according to the laws R1(u) = distance1 · function(u) and R2(u) = distance2 · function(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 variable-radius fillet surface is shown in Fig. 1.
Fig. 1
The variable-radius fillet surface blends smoothly with the surfaces on which the curves curve1(u) and curve2(u) lie, with the parameter equable = true and form = st_Fillet.
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.