Curve, as the compulsory keyword, is
followed by its identification number. If the curve order is not
provided and the curve is not fixed to any entity the default
value is used as the order and no consequent polygon records are
expected. When the curve is fixed to an entity, the curve order
may but needs not be specified. In the former case, curve order
must be greater or equal to the order of the appropriate parent entity or
set to zero (the order of the parent entity is used in that case). Identification
numbers of the starting and ending vertices are specified after
keyword vertex and determine the curve orientation.
When the curve is fixed to a surface its end vertices must lie on the same
parametric curve of the surface (the user supplied epsilon is used as
a tolerance) and must be fixed to surface itself or to a curve
top parent of which is fixed to the surface. A physical curve fixed to
a physical solid surface is not allowed to be intersected by another
physical curve fixed to the same surface. The orientation of the fixed
curve is independent of the orientation of the parent
model entity. The meaning of keywords property
and virtual is the same as explained in Section Input Record of a Vertex.
The size specification preceded by keyword size is also similar
to the one in Section Input Record of a Vertex but two differences
should be mentioned. Firstly, no default value is used when the size
specification is missing and secondly the size specification (if
provided) is treated as an upper bound of the required size extracted from the mesh
size specification of curve control points. For all model entities the
(nonzero) size is recursively propagated to boundary entities of the next lower
dimension untill a smaller (nonzero) size is encountered. Keyword density
determines the upper bound of the mesh size as the ratio between the length of the curve
and the density which is specified as a concrete number or as default
value (controlled by the command line option) using a special keyword
def, optionally followed by a multiplication factor preceded
by an asterisk. The value of the density has no upper bound limit and
must not be negative. If the mesh size is specified in multiple ways, the
smaller nonzero value is considered. Keyword factor
specifies the curve mesh size multiplication factor which is applied
to both curve mesh size specification and mesh size extracted from
curve control points as well. Keyword hidden marks curve as a hidden one
which allows the repositioning of mesh elements and nodes of this curve
during the smoothing process without respecting geometrical
restriction of their fixation to this curve. Keyword rate is used
to define the accuracy of the geometrical representation of the curve by
its discretization in terms of a ratio between the appropriate mesh size
and radius of curvature at any location on the curve. The rate is
specified as a concrete number or as default value (controlled by the
command line option) using a special keyword def, optionally
followed by a multiplication factor preceded by an asterisk. The value of the
rate has no upper bound limit and must not be negative. The
polysize keyword is used for fixed curves only if the inheritance of
mesh size specification from the parent model entity is not desirable.
In that case, the size specification must be provided for each internal
control point in subsequent order. The repetition number preceded by
an asterisk may be used if the specification
is the same for several subsequent control points. The meaning of
keywords def and uni is the same as described in
Section Input Record of a Vertex. Keyword count
can be used to enforce a regular
division of the curve to a specified number of segments. Setting this
number to zero disables regular division. The number of segments may
be also controlled by size specification (acting as an upper bound
limit on segment size). In this case, count or size specification that
yields a larger number of segments is used. Note that on curves of
order larger than 2 the regularity of the division can be disrupted due
to the eventual curvature-enforced refinement possibly also leading to
larger number of segments. The count specification is reflected only by
physical curves not bounding any physical solid surface, patch, or shell.
The output of segments on the curve may be enforced or
suppressed by setting yes or no after output
keyword. By default, curves bounding
a physical solid surface, patch, or shell are not designated for output.
A curve may be degenerated into a single point
(collapsed curve) if it is bounded by a single vertex and all its control points
are merged at this vertex. Collapsed curve is not allowed to be fixed
to a curve or surface.
Similarly as in Section Input Record of a Vertex, if generation of
elements on a model entity between the curve just being defined and
other close curves (already defined) bounding that
entity is to be prevented, the other curves should be specified after keywords
coincide curve. Neither from the coinciding curves
is allowed to be fixed to physical curve or curve with
physical ancestor. Keyword bassoc
followed by specification yes or no controls separate output of
triangles (ids) classified on surfaces, patches, and shells bounded by the
curve. Note that a specific command line option controls whether all or none of
the physical curves will be by default designated for
output of associated triangles.
A set of internal control points must be provided
for each non-fixed curve of degree . It means that
input record of such a curve must be followed by
records for
each internal control point of the curve. The number of the control
point in the range from
to
specified after keyword
Polygon is used as the control point sequence number with respect to
the curve orientation and can be
referenced only in the context of the current curve. The control point
may be specified by three coordinates preceded by keyword xyz
or may be associated with any already specified polygon control point
using keyword poly followed by the sequence number of that
control point. Keywords size and weight have a similar meaning to the one
explained in Section Input Record of a Vertex but even negative values of size
and weight specification can be used. Note however that the denominator in Eqs
(1), (2),
(5), and (6) must not be
negative or zero.
In the current implementation, keyword hidden is ignored, unless only two planar model entities (physical, solid, non-hidden surface, patches, and shells) with the same property and with collinear normals of the same orientation are sharing the given curve with no physical parent or child. Note that using hidden curves has an impact on the performance because the surfaces, patches, and shells sharing those curves are subjected to an additional smoothing.
Daniel Rypl
2008-06-04