Model.morphmaptolinenodesoffset#

Model.morphmaptolinenodesoffset(list_nodes, collection_handles, line_list, node_list, use_symmetry, use_constraints, project, vector, offset)#

Maps nodes to, or offset from, a specified line using the temporary shape created by Model.morphmaptshp() and Model.morphmaptshpedge() as a guide. Selected handles can optionally follow behind the morphing operation.

Nodes can be projected on to the line along a vector, normal to the line, or spaced evenly along the line (if the nodes belong to edge domains).

Parameters:
  • list_nodes (EntityList) – The list containing the input node entities.

  • collection_handles (Collection) – The collection containing the handle entities.

  • line_list (EntityList) – The list containing the input line entities.

  • node_list (EntityList) – The list containing the node entities to define the input lines.

  • use_symmetry (int) – 0 - Do not use symmetry (only option)

  • use_constraints (int) –

    0 - Do not use constraints

    1 - Use constraints

  • project (int) –

    0 or 10 - Project along vector defined by vector_id

    1 to 11 - Project normal to line

    2 - Fit to line

    If offset is non-zero, the offset will be measured from the closest point on the line for values of 0 and 1. The offset will be measured along the projection vector or normal for values of 10 and 11. Offsets will not be applied for a value of 2.

  • vector (hwTriple) – The hwTriple object defining the vector components for the projection direction. User can also supply a Python list of three doubles.

  • offset (double) –

    The distance to offset nodes from the target. Not used if project=2.

    The offset will be measured from the closest point on the line for values of project of 0 and 1.

    The offset will be measured along the projection vector normal for values of project of 10 and 11.

Example#

Project nodes list_nodes normal to lines and points node_list with an offset of 1.2#
import hm
import hm.entities as ent

model = hm.Model()

model.morphmaptolinenodesoffset(
    list_nodes=[ent.Node(model, 1), ent.Node(model, 2)],
    collection_handles=hm.CollectionByInteractiveSelection(model, ent.Handle),
    line_list=[ent.Line(model, 1), ent.Line(model, 2)],
    node_list=[ent.Node(model, 3), ent.Node(model, 4)],
    use_symmetry=0,
    use_constraints=1,
    project=1,
    vector=[1.0, 0.0, 0.0],
    offset=1.2,
)