 |
PK_blend_shape_t |
|
struct PK_blend_shape_s
{
PK_blend_xs_plane_t xsection; --- cross section plane
--- (PK_blend_xs_rolling_ball_c)
double radius; --- constant radius
--- (0.0)
PK_CURVE_t parameter; --- 3D parameter curve
--- (PK_ENTITY_null)
PK_LAW_sf_t range1; --- 1D law function;
--- Variable ranges off left wall
PK_LAW_sf_t range2; --- 1D law function;
--- Variable ranges off right wall
PK_LAW_sf_t rho; --- 1D law function;
--- Variable rho for general conics
PK_BCURVE_t depth; --- 2D law curve; curvature cts blends
--- (PK_ENTITY_null)
double width; --- width of blend for Constant Width
--- blends (0.0)
double ratio; --- ratio of blend ranges for Constant
--- Width blends (1.0)
PK_blend_xs_shape_t xs_shape; --- cross section shape
--- (PK_blend_xs_shape_unset_c)
double softness; --- controls softness of curvature
--- continuous blends (1.0)
PK_blend_rho_t rho_type; --- whether to use absolute, relative or
--- centre rho
--- (PK_blend_rho_absolute_c)
double range1_const; --- Constant range off left wall (0.0)
double range2_const; --- Constant range off right wall (0.0)
double rho_const; --- Constant rho for general conics (0.0)
PK_LAW_sf_t var_width; --- 1D law function;
--- Variable width of blend chord
PK_LAW_sf_t var_ratio; --- 1D law function;
--- variable ratio of blend ranges for
--- variable width blend
double depth_const; --- Constant depth for curvature
--- continuous blends (0.0)
double skew_const; --- Constant skew for curvature
--- continuous blends (0.5)
PK_blend_range_t range1_type; --- interpretation of range1_const
--- (PK_blend_range_face_offset_c)
PK_blend_range_t range2_type; --- interpretation of range2_const
--- (PK_blend_range_face_offset_c)
};
typedef struct PK_blend_shape_s PK_blend_shape_t;
This structure defines the shape of a blend.
Used in:
PK_FACE_make_blend_o_t
Blend Shape Options:
'xsection' Cross section plane, may be one of:
PK_blend_xs_rolling_ball_c (default) or
PK_blend_xs_disc_c or
PK_blend_xs_isoparameter_c
See Defining the cross-section plane for more
information.
'radius' Radius of blend for defining a constant radius blend (0.0).
A value of 0.0 will be taken to mean that this field is unset.
See Specifying the size of the blend for more
information.
'parameter' 3D parameter curve. (NULL)
See Supplying a suitable parameter spine for
more information.
'range1' 1D law function: variable range off left wall.
If this is supplied a parameter curve must be provided in
'parameter'.
See Specifying the size of the blend for more
information.
'range2' 1D law function: variable range off right wall.
If this is supplied a parameter curve must be provided in
'parameter'.
See Specifying the size of the blend for more
information.
'rho' 1D law function: variable rho for general conics.
If this is supplied a parameter curve must be provided in
'parameter'.
See here for more information on user-defined
conic cross-sections.
'depth' 2D law curve for curvature continuous blends. (NULL)
This is used to determine the maximum depth, depth point,
at each parameter value along the blend.
The X coordinate is used as the curve skew, the distance
along the chord between the contact points which corresponds
to the depth point. It must be a value between 0 and 1.
The Y coordinate is used as the curve depth, the distance
of the depth point between the chord between the contact
points and the intersection of the tangents of the walls.
It must be a value between 0 and 1.
If this is supplied a parameter curve must be provided in
'parameter'.
See here for more information on user-defined
curvature continuous cross-sections.
'width' Width of blend for defining constant width blends. (0.0)
A value of 0.0 will be taken to mean that this field is unset.
See Specifying the size of the blend for more
information.
'ratio' Ratio of blend ranges for constant width blends. (1.0)
The ratio is defined as "range off left" / "range off right".
The default is 1.0 i.e. equal ranges. This field will be
ignored unless the 'width' field is set.
See Specifying the size of the blend for more
information.
'xs_shape' Cross section shape, may be one of:
PK_blend_xs_shape_unset_c (default)
PK_blend_xs_shape_conic_c
PK_blend_xs_shape_g2_c
PK_blend_xs_shape_chamfer_c
See Defining the cross-section shape for more
information.
'softness' Modifies the softness for curvature continuous blends. (1.0)
It takes values above 0.0 and although theoretically has no
upper limit, a value of 10.0 is likely to be the highest
value used for practical purposes. Values of 'softness'
less than 1.0 make the blend less soft, while those values
greater than 1.0 make the blend more soft.
See Controlling curvature continuous softness for an
explanation of the softness of a curvature continuous blend.
'rho_type' Controls how the 'rho' and 'rho_const' options in
PK_blend_shape_t are interpreted when creating conic shaped
blends. (PK_blend_rho_absolute_c)
If 'rho_type' is set to PK_blend_rho_absolute_c, the rho is
independent of the angle subtended by the blend.
If 'rho_type' is set to PK_blend_rho_relative_c, the rho is
relative to the angle subtended by the blend. For example,
a relative rho value of 0.5 will produce a circular or
least tension elliptical conic, while an absolute rho value
of 0.5 will produce a parabola.
If 'rho_type' is set to PK_blend_rho_centre_c, the rho is
the radius of curvature at the centre of the blend
cross-section.
See here for more information on user-defined
conic cross-sections.
'range1_const' Constant range off left wall. (0.0)
See Specifying the size of the blend for more
information.
'range2_const' Constant range off right wall. (0.0)
See Specifying the size of the blend for more
information.
'rho_const' Constant rho for general conics. (0.0)
See here for more information on user-defined
conic cross-sections.
'var_width' 1D law function: variable width of blend chord.
If this is supplied a parameter curve must be provided in
'parameter'.
'var_ratio' 1D law function: variable ratio of blend ranges for variable
width blends.
If this is supplied a parameter curve must be provided in
'parameter'.
'depth_const' Constant depth for curvature continuous blends. (0.0)
See here for more information on user-defined
curvature continuous cross-sections.
'skew_const' Constant skew for curvature continuous blends. (0.5)
See here for more information on user-defined
curvature continuous cross-sections.
'range1_type'
'range2_type'
These options control how values given in 'range1_const' and
'range2_const' are interpreted. For non-default values, these
options control the interpretation of chamfer blends.
If set to PK_blend_range_face_offset_c then the range
represents the blend's offset range from the underlying
surface on that side.
If set to PK_blend_range_apex_range_c then the range
represents the range between the contact point on that side
and the blend's apex and has to be positive.
If set to PK_blend_range_angle_c then the range represents
the angle made by the chord between the contact points and
the tangent plane of the contact point on the other side.
The angle must be between 0 and pi.
Valid combinations of 'range1_type' and 'range2_type' can
be found in the below table.
------------------------------------------------------------
'range1_type' | 'range2_type'
------------------------------------------------------------
PK_blend_range_face_offset_c | PK_blend_range_face_offset_c
PK_blend_range_apex_range_c | PK_blend_range_apex_range_c
PK_blend_range_apex_range_c | PK_blend_range_angle_c
PK_blend_range_angle_c | PK_blend_range_apex_range_c
------------------------------------------------------------
If these options are set to any value other than
PK_blend_range_face_offset_c then 'xs_shape' must be set to
PK_blend_xs_shape_chamfer_c, 'xsection' must be set to
PK_blend_xs_rolling_ball_c and 'run_out' must be set to
PK_blend_run_out_no_c and 'parameter' must be provided.
See #here#DOCXXXX# for more information.
If no radius, width or range options are defined then the blend will be
assumed to be determined by its constraints, for example tangent-holdline
blends.
If the 'width' field is set to a non-zero value or the 'var_width' field is
set, then 'xsection' can be set to PK_blend_xs_rolling_ball_c or
PK_blend_xs_disc_c.
'width' and 'var_width' may not be both set. If 'var_width' is set and
'var_ratio' is not set then 'ratio' will be used.
If 'softness' is set to a non-default value then 'xs_shape' must be
PK_blend_xs_shape_g2_c.
If 'radius' is set neither 'range1', 'range2', 'range1_const', 'range2_const',
'width' or 'ratio' may be set.
'range1_const' and 'range1' may not both be set. Similarly, neither may
'range2_const' and 'range2', and 'rho_const' and 'rho'.
When more than one of the 'range1', 'range2' and 'rho' functions are set,
they must have equal degree, periodicity, closure and knot set. The 'depth'
option or 'depth_const' and 'skew_const' options are incompatible with the
'rho' and 'rho_const' options.
If 'depth_const' is set to a non-zero value then 'xs_shape' must be
PK_blend_xs_shape_g2_c and 'skew_const' must have a value between 0 and 1.
The 'depth_const' and 'skew_const' options should not be used with the 'depth'
option.
The 'depth_const' and 'skew_const' options should not be used with the
'softness' option.
See here for more information on user-defined curvature continuous
cross-sections.