*midsurface_imprint

Imprints selected lines or edges of selected surfaces onto midsurfaces.

Syntax

*midsurface_imprint entity_type imprint_mark_id target_mark_id line_extend_option surface_imprint_option min_gap_size reserved1 reserved2 reserved3 reserved4

Type

HyperMesh Tcl Modify Command

Description

The command modifies surfaces by adding extra trim lines obtained from the lines or surfaces specified by the user. The new trim lines are obtained by trimming the corresponding surfaces in the direction normal to that surface using the selected lines or edges of the selected surfaces. The command tries to detect the corresponding mid-surface automatically, or uses the surfaces explicitly specified by the user.

Inputs

entity_type
The type of entity selected for imprinting. Valid values are surfaces and lines.
imprint_mark_id
The ID of the mark containing the input lines or surfaces. Valid values are 1 and 2.
target_mark_id
The ID of the mark containing the surfaces to imprint onto. Valid values are 1 and 2. If there are no surfaces on the mark, the algorithm attempts to automatically find all relevant middle surfaces to imprint onto.
line_extend_option
Specifies whether and how the new trim edges added upon imprinting are extended towards the pre-existing middle surface edges.
0 - Imprint lines as-is without any extension, without preserving fixed or end points.
1 - Imprint lines and extend their projections on the middle surface via a shortcut to the nearest surface edge, without preserving fixed or end points.
2 - Imprint lines and extend their projections on the middle surface in the direction of tangents at the line endpoints towards the edge of the corresponding middle surface, without preserving fixed or end points.
3 - Imprint lines as-is without any extension, preserving fixed and end points.
4 - Imprint lines and extend their projections on the middle surface via a shortcut to the nearest surface edge, preserving fixed and end points.
5 - Imprint lines and extend their projections on the middle surface in the direction of tangents at the line endpoints towards the edge of the corresponding middle surface, preserving fixed and end points.
surface_imprint_option
Specifies which edges of selected surfaces will be imprinted.
Bit values are used and the value is calculated as (Bit0 + 2*Bit1 + 4*Bit2).
Bit0:
0 - Imprint all edges of the selected surfaces
1 - Use "smart imprint" to imprint only the necessary edges of the selected surfaces. The algorithm will decide if the edge needs to be imprinted or not; heuristically, the algorithm will skip edges that imprinted edge would come too close to a pre-exisiting surface edge on the target surface.
Bit1:
0 - Imprint edges not on the external boundary of the selected surfaces, as well as edges that are common to several selected surfaces
1 - Skip edges not on the external boundary of the selected surfaces, as well as edges that are common to several selected surfaces
Bit2:
0 - Imprint edges close to junctions
1 - Skip edges close to junctions; i.e. edges whose projections are closer than a given distance to other mid-surface edges. This distance can be defined by min_gap_size or detected automatically.
min_gap_size
When surface_imprint_option Bit2 is used, the imprinted lines should be no closer than this distance to any pre-existing edges of the mid-surface. The default value is 0, which indicates the parameter is calculated internally automatically.
reserved1
Reserved for future use. Must be set to 0.
reserved2
Reserved for future use. Must be set to 0.
reserved3
Reserved for future use. Must be set to 0.
reserved4
Reserved for future use. Must be set to 0.

Example

To imprint lines 36800-36802 onto the appropriate mid-surfaces, extending the projected lines in the direction of tangents, without preserving fixed points or endpoints:

*createmark lines 1 36800 36801 36802
*createmark surfaces 2
*midsurface_imprint LINES 1 2 2 0 0.0 0 0 0 0

Errors

Incorrect usage results in a Tcl error. To detect errors, you can use the catch command:
if { [ catch {command_name...} ] } {
   # Handle error
}

Version History

14.0