Messages
This section gives a brief description of the messages that
can be printed in the logfile of 'lv', or on the screen.
Note 1: Syntax errors in the STEP file may produce error
messages during the process of reading a STEP file.
These messages are specific to the underlying STEP
Toolkit used, and are not described here. They will
not be part of a logfile, but be printed to the
shell where 'lv' gets started from.
Note 2: The following description is not guaranteed to be
complete.
'lv'`s error messages come along in several severity levels:
"remark", "warning", "limitation", "error", and in some
cases "structure violation" and "severe" messages are part of the log
file. The logfile is divided into corresponding sections.
"fatal" messages are printed right away on
the screen, because it is impossible
that 'lv' will be able to recover from them. If
messages of lower severity are pending, 'lv' will try to
emit them now.
The "severity level" down to which messages are issued can
be controlled using the -v option (see also below). The
follwing is a description of the available messages and
their meaning, grouped by their severity code.
Note: If the logfile is empty, because no problems were
encountered, the message "no errors detected in product"
will be written into the logfile.
If 'lv' is used interactively, and the message "no errors
detected so far..." gets displayed, this means that no errors
have been found yet, but the preprogrammed checks are not yet
completed (see further description in the
section about the status display.
Note 2: In the case that 'lv' was unable to create a log
file with the name specified with the -l command,
the name "STEP file".lvlog, the name './lv.log', or the name '/tmp/lv.log', no
logfile can be displayed. When switching the text
section to "Logfile" mode, the message "sorry, I was
unable to create a logfile" is shown.
Make sure that write permissions are granted for one of
these locations when you re-run the program.
(only printed for -v5, default verbosity)
- converted circle to line
Requires: options -u,
-rmax
A circle was replaced by a line approximation.
- converted hyperbola to line
Requires: options -u,
-h2l
A hyperbola was replaced by a line approximation.
- converted parabola to line
Requires: options -u,
-h2l
A parabola was replaced by a line approximation.
- converted circle to b-spline
Requires: options -u,
-rmax
A circle was replaced by a b-spline approximation.
- converted hyperbola to b-spline
Requires: options -u,
-h2l
A hyperbola was replaced by a b-spline approximation.
- converted parabola to b-spline
Requires: options -u,
-h2l
A parabola was replaced by a b-spline approximation.
- created axis information for placement
Requires: options -u, -unsafe
An axis2_placement_3d with a NULL vector as its
axis was changed to have a meaningful axis
vector. This is a -unsafe option because it
was designed to deal with one specific translator's malfunctions.
- extrapolated face_geometry
Requires: options -ex,
-unsafe
Indicates that a face's basis surface was extrapolated due to the
requested operation.
- full range of surface used - rotation useless
Requires: option -rs1
No stabilization of expected results for relevant
modeller category was found (see description of
-rs
option).
- no geometry to display in product
The STEP file contains no geometry information. 'lv' will not
show the geometry display. Only the text section is present,
allowing to browse through the file.
- no vertex found - could not normalize
Requires: options -ncs,
-unsafe
As the normalization algorithm for of a product's geometry estimates
the current geometry location via the bounding box of all vertex_points,
the modification is not possible if no vertex_points are present. Hence
this operation is not applicable.
- parameterization was changed
Requires: option -rs
A surface was rotated by the
-rs option.
- removed faulty instance
Requires: option -u
An instance that has a structure violation was
removed in the "-mod.stp" file
- small edge to edge angle
Requires: option -va
or -u
A vertex was found where the angle between the tangent
vectors of the edges involved is below the value
given with the
-va
option (or below the default, 1 degree).
- shifted part by "n" mm
Requires: options -ncs,
-unsafe
Indicates the modification that was made to a product's geometry
as a consequence of the given option.
- shifted vertex towards edges
Requires: options -u,
-unsafe
After having diagnosed a vertex off edge error,
'lv' was successful in finding a new location for the vertex_point
that lies on all edge_curves that reference it, within the
distance_accuraccy used. The vertex geometry was changed accordingly.
Note: This unsafe option does
not take vertex_loops into account that might use the same vertex.
(only printed for -v4 or higher verbosity)
- b-spline {u- | v-}parameter out of range (too [small | big]),
order is 1e...
A b-spline was evaluated outside of its domain.
Hints to inaccurate pcurves or trimmed_curve parameters.
The order of the error (i.e., log to the base of 10)
is indicated. It is smaller than 1e-5 (otherwise this
is classified as an error).
- b_spline_surface.[u | v]_closed should be set to "val",
instead of "val2"
An instance of a b_spline_surface carries two flags that
indicate whether the shape that is defined by the instance
is closed in the u or v parametric direction (like a
cylindric shape, which is closed in one direction).
These flags are LOGICALS, i.e., they can take one of
the values TRUE (closed), FALSE (open), or UNKNOWN.
'lv' needs to know whether the surface is closed for
its trimming tasks. Hence the actual closure in u and
v gets computed. This message states that the actual
properties detected are other than the ones stated
in the instance's attributes (i.e., if UNKNOWN is given,
'lv' will state the true values). As these attributes
are declared in part 42 as being for information only,
actual geometry taking preference, this is a warning only.
- conical_surface's semi_angle exceeds 89.9 degrees
A conical_surface has a large semi_angle. The surface is close to
being planar and might therefore cause translation problems.
- context has no dimension
A representation_context instance for geometry instances
was found that is not a geometric_representation_context.
Usually these rep_contexts are complex instances where
the geo_rep_context instance carries the information of
the dimensionality of the geometry (e.g. 3 for 3D,
2 for parameter space curves).
This information is usually required in STEP, but
also usually it is redundant (the dimensionality
of a parametric_rep_context is always 2 etc.).
Therefore the omission of the geo_rep_context usually
will not hurt.
Repair:
If repair is enabled, 'lv' will augment the
representation_context instance to include the
geometric_representation_context and dimension.
- edge used by "n" oriented_edges
Requires: option -u
An edge_curve is referenced by more than two oriented_edges.
This is not directly forbidden in STEP, but a clear case
of non-manifoldness which is usually illegal.
- edge used only once, but provides multiple surface
descriptions
Requires: option -u
When an edge_curve is referenced by only one face, it is
expected that a surface_curve describing the edge's
geometry will reference at most one surface (either directly
or through a pcurve). If this condition is not met, this
warning gets issued.
- ISO object identifier not present in header:
file_schema.schema_identifiers
For APs other than AP203/201, it is required to have
a so-called ISO object identifier in the STEP file header
- item_defined_transformation makes suspicious use of
cartesian_transformation_operator
In the context of an assembly, an item_defined_transformation
is used which defines its transformation via at least one
cartesian_transformation_operator instead of axis2_placement_3ds. This is not
very common and might lead to problems.
- lowercase characters in header:
file_schema.schema_identifiers
There is a rule in part 21 that forbids this in the
STEP file header.
- no [b-reps | curve_bounded_surfs] [kept | removed] - did not filter
Requires: options -fb or
-fc, and
-unsafe
The desired filter option was not applicable, because either none
or all of the specified entity instances have been specified using
-fb or
-fc.
- non-manifold geometry
Requires: option -u
A condition was met that violates manifoldness properties,
e.g. an instance of edge_curve is used by more than 2
oriented_edges, or an edge_curve is not used twice within
a closed_shell.
While this is not illegal as such, most of the geometry
models expected in STEP files should be manifold, i.e.,
the kind of situation indicated would be problematic.
- possible gap between adjacent faces
Requires: option -u
For an edge that is shared among two faces, the
projections of the edge onto the two involved surfaces
have a distance that exceeds the distance_accuracy_value
of the representation_context. The edge and the involved
faces are printed, as well as the largest gap found.
This message indicates that the underlying shell is
not closed from the geometry point of view. However, the
method used to find the gap is not bullet-proof (i.e.,
gaps might be reported that aren't really present), hence
this is a warning only.
- product has no category
Requires: option -u
The indicated instance of product is not referenced
by a product_related_product_category.
- rational b-spline [curve | surface] with equal weights
A b-spline instance is instantiated as rational, but all
weights are equal. Therefore the curve is truly not
rational, so this is at least unnecessary.
- styled_items included in other than mechanical_design_geometric_presentation_representation
A styled_item is not part of a mechanical_design_geometric_presentation_representation,
but of something else. This is not expected by 'lv' (and AIC517).
- unused edge_curve
Requires: option -u
An instance of edge_curve was found that is not referenced
by an oriented_edge.
- unusual name for 'distance_accuracy_value' used
Indicates that one of the synonyms for this value
is used in an uncertainty_measure_with_unit to denote the
distance accuracy, which was recognized by 'lv' but
not necessarily by other STEP translators.
(only printed for -v3 or higher verbosity)
- 203-like pcurve in edge not handled
Requires: option -m2g,
-cp or
-rs
When converting manifold surface models to geo_bounded
ones, 'lv' relies on the presence of an explicit 3D curve
describing a boundary. When rotating surfaces (-rs) or
creating pcurves (-cp), 'lv' relies on the absence of
face borders described solely by pcurves.
AP 203 currently allows an exception from this law
(having a parameter space curve describing the bound),
which is unsupported.
Note: expected to change in the next edition of AP 203.
- attempt to style unsupported item
Styling is applied to a type of representation_item which
'lv' cannot handle yet.
- can't show whole beauty of product
The STEP file defines more colors for the presentation
of geometry than the display you are working on can
handle. Therefore some colors have to be replaced by
'black'.
Note: Some displays have only a limited number of
colors they can show simultaneously. This number can
be temporarily smaller if other X11 applications
that are running have reserved some colors for their
own purposes.
- can't style surface sides individually
It is possible in STEP to define different looks for
either sides of a surface. Since 'lv' uses a wireframe
representation for surfaces, the given surface
instance looks different than defined in the STEP file.
- can't yet construct natural bound
Requires: option -g2m
'lv' is unable to convert unlimited surfaces, or curve_bounded_surfaces with the "implicit_outer" flag set to
TRUE, to faces. This is a little bit difficult, because
it requires the derivation of bounding curves for
surfaces.
- can't yet display other than curves, points, surfaces
A shape_rep contains an item of an unexpected type.
- can't yet display unlimited curves
A shape_rep's geometric_set contains a curve that is
unlimited, and 'lv' has no idea how to represent it
graphically.
- didn't know what to make out of it: #"inst"
An instance of a point, curve, or surface type was
encountered which 'lv' currently does not support.
- rectangular_composite_surface not implemented
Requires: option -g2m
A surface type not supported for this conversion.
- rectangular_trimmed_surface not implemented
Requires: option -g2m
A surface type not supported for this conversion.
- unimplemented "entity_name"
A type of instance that is not yet supported.
- unknown style in presentation_style_assignment
Styling of unimplemented type is contained in the product.
- unknown surface boundary style
A boundary style other than a curve_style
or fill_area_style is used to render a surface, which
is not handled by 'lv' (and AIC 517).
- unknown surface isoline style
An isoline style other than a curve_style
or fill_area_style is used to render a surface, which
is not handled by 'lv' (and AIC 517).
- unsupported surface styling
The given styling instance defines some high
sophisticated surface rendering method which 'lv'
cannot handle.
(only printed for -v2 or higher verbosity)
- [3D | 2D] NULL vector: "description"
A vector with zero magnitude, or very close to
zero magnitude, was found.
The vector can be an explicit instantiation, or the
result of some computations. Example: if two vectors of
an axis2_placement_3d are parallel, this message can
be issued.
The description will contain further information and
possibly tell what 'lv' does to recover from the situation
(e.g. "using $" means: "I will treat this placement as if
the vector had been omitted").
- 3D infinite vector
A vector with an extraordinarly great length was
encountered. The vector will be used anyway, yet the
condition gets reported because the data looks
questionable.
- attempt to style non-representation_item
Being styled is, according to part 46, a privilege which
is reserved for representation_items and their
descendants.
- b-spline {u- | v-}parameter out of range (too [small | big]),
order is 1e...
A b-spline was evaluated outside of its domain.
Hint for inaccurate pcurves or trimmed_curve parameters.
The order of the error (i.e., log to the base of 10)
is indicated. It is greater than 1e-5 (otherwise this
is classified as a warning only).
- b-spline treated as if cyclic
An edge uses a portion of a closed b-spline that includes
the point where the b-spline's start and end point touch.
Seen from modellers that use periodic b-splines
internally. Is not valid in STEP.
- bad b-spline knot vector
A b-spline's knot vector is not ascending. Additional
information is given. Other, e.g. -u-related messages
can be wrong because the b-spline's derivative might
not be calculated properly.
- conical_surface has [negative | zero] semi_angle
Refer to IP1 of the conical_surface definition.
- conical_surface's semi_angle exceeds 90 degrees
Refer to IP1 of the conical_surface definition.
- context has multiple length units
A global_unit_assigned_context contains several
length_units. In this situation, 'lv' uses none of them
but assumes mm.
- context has multiple plane_angle units
A global_unit_assigned_context contains several
plane_angle_units. In this situation, 'lv' uses none of
them but assumes radian.
- context has multiple distance accuracys - used first
A global_uncertainty_assigned_context contains several
uncertainty_measure_with_unit instances that denote the
distance_accuracy_value.
Note: The fact that an uncertainty_measure_with_unit
denotes distance_accuracy is encoded in its name
attribute. 'lv' not only recognizes the (correct) name
'distance_accuracy_value', but also some synonyms that
are or were used by some translators, e.g.
'model_accuracy', 'closure', 'glob_model_accuracy'.
- context has multiple minimal_edge_length values - used first
A global_uncertainty_assigned_context contains several
uncertainty_measure_with_unit instances that denote the
minimal_edge_length value.
- context's length unit evaluates to 0.0 - using 1mm
A global_uncertainty_assigned_context defines the length unit
used to be zero. This is a severe error in the sending system.
'lv' will use the length unit '1 millimetre' instead, but this
is of course an arbitrary choice.
- corrupt face bound
Requires: option -u1 or higher
A face boundary does not satisfy the requirement that
the edges have to share the same vertices.
Repair:
If repair is enabled, and the vertex_points
are geometrically equivalent, 'lv' replaces one of
the vertex_point instances by the other.
- created degenerate [polyline | quasi_uniform_curve]
During some operation, 'lv' has created an instance of
polyline or quasi_uniform_curve that consists of a single point (this is
an internal error).
- curve style collision
An entity has more than one styling applied via styled_item. This is
ambiguous (and illegal).
- degenerate edge #"inst": edge length "val" <= #"inst2"'s
[dist_acc | minimal edge length] of "val2"
Requires: option -u1 or higher
The edge_curve #"inst" has an (approximated) length of
"val" mm, which is less than the distance_accuracy_value
"val2" that is defined in the representation_context
#"inst2" that applies for "inst".
Hence this edge_curve is considered degenerate.
If the STEP file contains the more precise information
of the minimal edge length contained, this value will
be used for the test, instead of the distance_accuracy
value.
Repair:
If repair is enabled, 'lv' eliminates the
edge_curve and referencing oriented_edges. The
vertex_point with lesser references by other instances
gets replaced by the other one.
- degenerate edge_curve
The projections of the start and end vertex of an
edge_curve onto the underlying curve coincide, resulting
in an edge_curve of zero extent.
This kind of problem can also be caused by too big
or too small distance_accuracy values. See discussion
at edge_curve's same_sense flag is wrong.
- degenerate edge_loop (i.e. "zero" extent) #"inst"
Requires: option -u2
A partition of the edge_loop #"inst" into two parts
exists so that for each point that lies on an edge_curve
of the one part a projection onto an edge_curve of the
other part exists within the distance_accuracy of
the representation_context. Hence the whole loop is,
within the given accuracy, representable by either
part (i.e., it is "flat").
Repair:
If repair is enabled, 'lv' throws away the
edge_loop and one of the parts and fixes the topology
accordingly.
- degenerate line (NULL direction)
A line in STEP is defined by a point and a direction.
The line instance reported has a direction vector that
is zero or close to zero in length, hence the direction
of the line is not defined and it degenerates to a point.
Repair:
If repair is enabled together with the -unsafe
option, 'lv' attempts to derive a meaningful direction
from vertices that are referenced by edges using the
line.
- degenerate toroidal_surface
Requires: option -u
A toroidal surface has a major radius that is smaller than
the minor radius, therefore the surface is degenerate,
but it is not of type "degenerate_toroidal_surface".
Additional information is given.
Repair:
If repair is enabled, and the underlying schema contains
the said subtype for degenerate toroidal cases, 'lv' tries
to determine the additional attributes for that subtype
and changes the surface type accordingly.
- degenerate trimmed_curve
See discussion at degenerate edge_curve (same
kind of situation for a trimmed_curve where
the trim_1/trim_2 parameters are using points for
trimming).
- edge off surface #"inst", "n"/"m" off, worst "val"
Requires: option -u1 or higher
For "n" of "m" samples on the edge_curve #"inst", there
was no projection possible onto the face_geometry surface
of a face that uses this edge, within the
representation_context's accuracy value. The value "val"
gives the worst distance of the "n" samples in mm.
- edge_curve's same_sense flag is wrong
When projecting the start and end vertices of an edge
onto the curve describing the edge, 'lv' found that the
curve runs from the end to the start (when taking the
same_sense flag of the edge_curve into account).
Several reasons can be the cause for this message:
- the same_sense flag is actually wrong,
- the accuracy value is so large that there exist
solutions for the projection operation that are
not in the sender's intent, and 'lv' accidently
found one of these, or
- a vertex has a distance from the edge that is
bigger than the accuracy, which makes 'lv' choose
the closest curve point as the solution, which
lead to the bad trim interval of the curve.
Therefore several different situations can be the
source of the problem.
Repair:
If repair is enabled, 'lv' flips the
same_sense flag. Due to the reasons described above,
this may be a wrong move which does not help repair
the problem.
- expected "unit" in si_unit.name
Something is wrong with the units in the STEP file.
Example: if an instance of uncertainty_measure_with_unit
is labelled 'distance_accuracy_value' but references
an si_unit like 'radian'.
- expected fill_area_style_color as fill_style
A fill_style is not defined using the entity that 'lv' expects.
- face/edge/surface_curve inconsistency
Requires: option -u
An edge_curve is used to denote the trimming of one or
more face_surfaces. The edge_curve can itself have
references to the surfaces it lies on (by means of a
surface_curve instance). The message indicates that these
surfaces are not the same as those the faces are defined
on which are using the edge for trimming purposes.
- illegal RGB color weight
An instance of colour_rgb specifies a value below 0.0
or above 1.0 for at least one of its red, green, or blue
attributes.
- junk accuracy in representation_context (>1mm)
The accuracy of the geometric and topologic instances
in the STEP file is stated in an uncertainty_measure_with_unit
instance as being beyond 1mm, therefore
'lv' considers this value to be useless for real-world
applications.
- mapping target not part of target shape_representation
A mapped item maps a shape_rep (via its
representation_map) onto another shape_representation by
means of an axis2_placement_3d (referenced through the
mapped_item's mapping_target attribute), but the
axis_placement itself is not part of the target
shape_representation.
Repair:
If repair is enabled, the axis2_placement_3d gets
added to the items list of the target shape_rep.
- no accuracy given for context
Requires: option -u1 or higher
A representation context does not include an uncertainty_measure_with_unit
instance that denotes the
distance accuracy that applies (This is usually a
violation of the underlying application_protocol).
The usability checks therefore have no value to
check the data against. Rerun the checks with the
-sa option to specify the desired value.
- no length unit given for context - used mm
A representation_context for geometry instances does
not specify the length unit that applies.
- no proper product structure found for shape_rep
Requires: option -ca
'lv' cannot create an assembly for a multi-solid part because the
part contained in the STEP file has no valid product structure
information.
- no valid assembly present for -sp option
Requires: options -sp,
-unsafe
The requested split operation (split assembly into multiple single-part
files, see description of -sp
option), cannot be performed because the STEP file contains no
proper assembly data.
- pcurve [1 | 2] has other orientation than surface_curve's
"x" rep
A surface_curve can specify up to 3 different representations for a single
curve: A 3D curve and, optionally,
one or two pcurves (curves in the parametric space of
a surface). One of these is flagged as being the
"master representation", i.e., the best representation
of the curve's shape.
According to the definition of the surface_curve entity
(IP2), all these representations have to have the same
orientation. This message indicates that one pcurve
has another orientation compared to the indicated other
representation.
Note: If the master representation is not the 3D curve,
use the option -np to make the
3D curve the master representation if a check of the orientation of 3D vs.
pcurve representation is desired.
- point off basis_curve
A trimmed_curve's start or end trim point cannot be
projected onto the trimmed_curve's basis_curve within the
given distance_accuracy values (i.e., has a greater
distance from curve).
- product id(s) not unique
Requires: option -u1 or higher
There are several instances of the product entity
which have the same "id" attribute value. This
may cause problems in the exchange of e.g.
assembly data.
Note: In case the products are referenced by instances of
product_related_product_category, a violation will only
be reported if they have at least one category in common.
This category will be contained in the message.
Repair:
If repair is enabled, all products will be
assigned new and unique id values.
- pseudo unbound rectangular_trimmed_surface ([u | v])
A rectangular_trimmed_surface has, as the name implies,
the purpose to trim another surface, which is an
especially interesting feature if the underlying surface
is unlimited (like, e.g., a cylinder). This error message
indicates that an unlimited basis_surface was trimmed
with a parameter interval bigger than -1e10..1e10,
therefore
- the underlying surface is still sort of unlimited
- calculations using the rectangular_trimmed_surface's
parameters can operate in an instable, overflow-prone
range of values.
Repair:
If repair is enabled, 'lv' will replace the
trim parameters by -1e10..1e10 for the indicated parameter
direction.
- radius is not positive
An attribute of a geometry instance that has to be positive
by definition - typically some radius, e.g. a cylinder's radius -
was found to be zero or negative, which violates the
WR1 of the positive_length_measure type. The exact name of the
attribute is given.
Repair:
If repair is enabled, and the attribute value is not zero,
'lv' will replace the attribute by its absolute value. Note that
this could cause problems if the sender tried to encode an
unnatural orientation of the element by using the negative
value.
- rectangular_trimmed_surface's [u | v]-domain not within
basis_surface's
IP1 of rectangular_trimmed_surface is violated: a
rectangular_trimmed_surface instance defines a trim
on its underlying surface that is not within the
underlying surface's parameter space.
Repair:
If repair is enabled, 'lv' will replace the
trim parameters by the bounds of the basis_surface's
parameter space for the indicated parameter direction.
- representation_relationship reverses relation defined by
next_assembly_usage_occurrence
A representation_relationship "instantiates" an assembly
relation just the other way round than the corresponding
next_assembly_usage_occurrence specifies (i.e., the roles
of "component" and "assembly" are swapped). For the
visualization, the relation defined by the next_assembly_usage_occurrence
takes precedence.
Repair:
If repair is enabled, 'lv' will swap the
relevant attributes.
- representation_relationship used without corresponding
context_dependent_shape_representation
A relative position of two shape_representations is
defined using an representation_relationship_with_transformation,
which has to be linked to a next_assembly_usage_occurrence via a
context_dependent_shape_representation, but that link is not
present. Therefore the assembly definition is not complete.
- representation_relationship used without corresponding
next_assembly_usage_occurrence
or,
- representation_relationship.rep_[1 | 2] not used by
next_assembly_usage_occurrence
A relative position of two shape_representations is
defined using an representation_relationship_with_transformation,
but the corresponding product_definitions are not related by a
next_assembly_usage_occurrence. Therefore the assembly definition is
incomplete.
- representation_relationship's item_defined_transformation
has transform_item_1 and transform_item_2 flipped
The order which an representation_relationship_with_transformation
establishes on two shape_representations is
not reflected by the item_defined_transformation instance
which defines the transformation involved. The former
order takes precedence for the visualization (or, if
present, the order defined by the corresponding next_assembly_usage_occurrence).
Repair:
If repair is enabled, 'lv' will swap the
relevant attributes.
- representation_relationship's shape_reps do not include
its item_defined_transformation's placements
The two placements used to define a transformation for
the assembly of two shape_representations are not
anchored within the shape_representations.
- required plane_angle unit not given for context - assume radian
A representation_context for geometry instances does
not specify the angular unit used, but there are
instances contained for whose correct interpretation
the angular unit needs to be known (e.g., a
conical_surface with its semi_angle attribute).
- spherical_surface's radius is negative
The radius of a spherical_surface is negative, which
violates the positive_length_measure WR1.
Repair:
If repair is enabled, 'lv' will replace the
radius by its absolute value.
Note: A potential problem with this change is that
the intended semantics of this illegal encoding might
have been 'sphere with radius | sphere.radius | and
the normal pointing to the interior of the sphere'.
In this case the fix would destroy faces on the
sphere.
- spherical_surface's radius is zero
The radius of a spherical_surface is zero, hence the
element is degenerate.
- surface has dog's ears (category [I|II])
Requires: -u
A surface's normal vector changes its direction by more than 120 degrees
over the indicated parameter interval. This is a hint for a "dog's ear",
or a so-called "flipping normal". This may cause severe problems in the
post-processing of the surface by some STEP translators. It also indicates
a quality problem in the surface data.
The errors are classified as follows:
- category I: surface normal changes by more than 120 degrees over
10 percent of the parameter range
- category II: surface normal changes by more than 120 degrees over
25 percent of the parameter range
A surface with a category I problem is not being checked for category II
problems.
Note: Typically, the problem is not directly visible, as the surface is
part of some face_surface. In order to verify the problem, first extract
the face_surface using the -ff -unsafe
option, then visualize the
resulting extract using option -bs,
plus possibly -i for increased isoline
density.
- surface_curve claims [1st | 2nd] pcurve to be master rep,
but has no pcurve there
A surface_curve can reference one or two instances by
its associated_geometry attribute. These referenced
instances can be pcurves or surfaces.
The surface_curve also has an attribute, master_representation, that
indicates whether the surface_curve's
3D curve or one of its pcurves contains the best
description of the surface_curve's shape.
This error message indicates that one of the pcurves
is named to be the 'best description', although there
is no such pcurve in the assiciated_geometry attribute.
'lv' switches to the other pcurve, if present, or to
the 3D curve.
- surface_curve's representations not equivalent
A surface_curve references a 3-dimensional curve and,
optionally, one or two pcurves (curves in the parametric
space of a surface the surface_curve lies on).
These up to three representations have to describe the
same shape, with the same orientation.
If a surface_curve is referenced by a single edge_curve,
then 'lv' will check if the projections of the edge's
vertex points onto the three representations always
result in coordinates that are the same within the
given distance accuracy. If this condition is not met,
the error gets issued.
- suspicious face parameterization
Requires: -u
-unsafe
A hint that something with a face's surface normal
orientation may be wrong. The criterion used is however
not (yet) sufficient, therefore the face should be
investigated. If -ns is given in
addition, the face's same_sense flag will be reversed, which
could be a fix for the problem.
- trimmed_curve's sense_agreement flag is wrong
See discussion at edge_curve's same_sense flag is wrong
(same kind of situation for a trimmed_curve where
the trim_1/trim_2 parameters are using points for
trimming).
- trimmed_curve's trim parameter not in basis_curve's range
A trimmed_curve trims its basis curve with some parameter
value which is not within the parameter range of the
basis curve. This violates the IP5 of the trimmed_curve
entity.
- unknown color specification - using black
A color is defined by some means not supported by AIC517,
or 'lv'.
- unknown "predefined" color name
An instance of draughting_pre_defined_color has a name
that is other than the ones pre-defined in AIC517.
- untrimmed curve cannot be used for trimming purposes
An unlimited curve is used directly as part of a face or
curve_bounded_surface bound, which cannot be handled by
'lv'`s face trimming algorithm (Note: This is a "safety
message" which relates to a situation not valid within
STEP).
- vertex off edge #"inst", dist "val"
An edge_curve's start or end vertex point cannot be
projected onto the edge_curve's edge_geometry within the
given distance_accuracy values (i.e., has a greater
distance from the curve).
Repair:
If repair is enabled together with the -unsafe
option, 'lv' tries to find another location for the
vertex that lies on all the edges that make use of it,
within the given distance_accuracy. Should this succeed,
an information gets printed.
- vertex off surface #"inst", dist "val"
Requires: option -u1 or higher
The given vertex_point #"inst" does not lie on the
face_geometry surface of a face that uses the vertex_point
in the definition of its bounds, for the distance_accuracy
given.
- vertex used in multiple shells
Requires: option -u1 or higher
The given vertex_point is used by multiple
edge_curve and/or vertex_loop instances that do not belong
to the same shell. This is a very suspicious case of
non-manifoldness.
- vertex_loop off surface, or not on a pole
A vertex_loop has a vertex_point that is not on the
given surface (within the distance_accuracy given), or
for which the projection on the surface does not lie
on a pole of the surface.
- zero vector magnitude
A vector instance has a magnitude value of zero or close
to zero.
(only printed for -v1 or higher
verbosity)
- attribute not present
Requires: option -u
A non-optional attribute or mandatory array component is
not present.
Note: In some cases, the attribute is actually present,
but was already found to be illegal by the STEP file parser
and is therefore not visible for 'lv'. Therefore, it is
recommended to verify whether there were parse errors
printed to the command window where 'lv' was started from.
Repair:
If repair is enabled, the erroneous instance gets removed.
- expected aggregate for attribute
Requires: option -u
The specified attribute of an entity is of type aggregate (i.e.,
SET, LIST, BAG, or ARRAY), but the specified instance has only a
singular value here.
Repair:
If repair is enabled, the erroneous instance gets removed.
- geometric_rep_item has no context
Requires: option -u
A geometric_representation_item is not linked to a representation_context.
This is a violation of the WR1 of this entity.
Repair:
If repair is enabled, the little orphan gets removed.
- illegal aggregate for attribute
Requires: option -u
The specified attribute of an entity is not of type aggregate (i.e.,
neither SET, LIST, BAG, nor ARRAY), but the specified instance has
an aggregate here.
Repair:
If repair is enabled, the erroneous instance gets removed.
- incompatible type for attribute
Requires: option -u
The given instance's attribute does not match the type specified in
the underlying EXPRESS schema.
Repair:
If repair is enabled, the erroneous instance gets removed.
- instance takes part in its own definition
The given instance has a cyclic definition: one of its attributes
points to itself. This is very likely to be wrong and to cause problems.
- illegal surface_curve.associated_geometry
Requires: option -u
A surface_curve should have one or two components in its
associated_geometry attribute, but has less or more.
- item introduces a cycle in the assembly tree
The specified representation_relationship or mapped_item introduces
a cycle in the assembly tree, i.e., the parent and child representations
are either the same, or there is another instance that uses them with
the opposite roles. Additional information is provided.
This is a severe structural problem (refer to
product_definition_usage.wr1 or mapped_item.wr1)
- item is its own parent in the assembly tree
The specified shape_representation was detected to be part of
a cycle in the assembly tree.
This is a severe structural problem (refer to
product_definition_usage.wr1 or mapped_item.wr1)
- missing or wrong "what"
In general, 'lv' requires that the STEP file processed is
a valid STEP file in the sense that all required (non-optional) attributes are present, that all references from
one instance to another are of the right type etc.
Should this not be the case, then 'lv' has some (very
limited) error recovery mechanisms. Depending of the
actual situation, 'lv' may or may not be able to specify
the location where the error arose. Also, a faulty
instance is not excluded from further processing, so the
same message might be repeated.
If the violation occurs on some "high-level" instance,
'lv' might be forced to abort the whole product. Note that
in such cases, the violation messages might be found in
the '.lvlog' file rather than on the screen. Note also
that additional messages of type 'error' or 'warning'
can be issued, which then cannot be relied on.
Should structure violations be issued, it is strongly recommended to use a STEP file syntax and structure checker
to determine the exact nature of the problem ('lv' is not
well-suited to do so.)
- pcurve.reference_to_curve.items[1] is not a curve
A pcurve (= curve in the parametric space of a surface, UV curve)
is not defined by a curve, but by some other type of
instance.
- void not defined by an oriented_closed_shell
Requires: option -u
The voids in a brep_with_voids are defined by something
other than an oriented_closed_shell, which is a structure
violation.
Repair:
If repair is enabled, 'lv' will insert an
oriented_closed_shell (with orientation set to TRUE)
between the brep_with_voids and its voids.
Note: This feature was implemented to fix a problem in
the files of a specific STEP translator. Therefore the
repair mechanism is not suitable for all violations in
the context of a brep's voids that can be imagined.
(unmaskable)
Note: There are a number of 'severe' errors that are
directly related to programming errors in 'lv' itself,
subject to fixing as soon as they are known. If such an
undocumented severe error is emitted, please make the
STEP file available to 'lv'`s developers.
(unmaskable)
- cannot allocate space for "what" of size "n" bytes
'lv' ran out of memory. The STEP file is obviously
too big for processing in the current environment.
To process the file, it is necessary to switch to
a bigger computer or add RAM/paging space to the
computer system used.
- error in the error handler
Usually caused by input STEP files with many severe syntax errors.
'lv' is unable to recover and decides to abort.
Help Index
© lv: visit us on http://www.wundertools.de/
This page last updated: 1998/20/12