Model.morphmapedgestoextendedoffset#

Model.morphmapedgestoextendedoffset(user_mark_id, collection, use_symmetry, use_constraints, project, vector, number_of_mid_handles, offset)#

Projects the handles on the marked morph volume edges to extended surfaces or elements on the specified mark along the specified vector, normal to the target surfaces or elements, or normal to any attached shell elements (unusual for morph volume edges).

Parameters:
  • user_mark_id (int) – The ID of the user mark containing the morph edges. Valid values are 0-3.

  • collection (Collection) – The collection containing the entities to map to. Valid entities are surfaces and elements.

  • use_symmetry (int) –

    0 - Do not use symmetry links

    1 - Use symmetry links

  • use_constraints (int) –

    0 - Do not use constraints

    1 - Use constraints

  • project (int) –

    0 or 10 - Project along vector defined by vector_id

    1 or 11 - Project normal to target surfaces or elements

    2 or 12 - Project normal to attached shell elements

    If offset is non-zero, the offset will be measured from the closest point on the equation for values of 0, 1 and 2. The offset will be measured along the projection vector or normal for values of 10, 11, and 12.

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

  • number_of_mid_handles (int) –

    -1 - Do not change the handles on the edges

    0 - 5 - Update the number of mid-handles on the edges to this number

  • offset (double) –

    The distance to offset nodes from the target.

    The offset will be measured from the closest point on the surfaces or elements for values of project of 0, 1, and 2.

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

Examples#

Map edges on user mark 0 to a mark of extended surfaces along a vector with offset of 1.2 and leaving the handles unchanged#
import hm
import hm.entities as ent

model = hm.Model()

model.morphmanageedgemark(edge_id=0, user_mark_id=0, mode=3)
model.morphmanageedgemark(edge_id=2, user_mark_id=0, mode=1)
model.morphmanageedgemark(edge_id=4, user_mark_id=0, mode=1)

model.morphmapedgestoextendedoffset(
    user_mark_id=0,
    collection=hm.Collection(model, ent.Surface),
    use_symmetry=1,
    use_constraints=1,
    project=0,
    vector=[1.0, 0.0, 0.0],
    number_of_mid_handles=-1,
    offset=1.2,
)

model.morphmanageedgemark(edge_id=0, user_mark_id=0, mode=3)
Map edges on user mark 1 to an extended mesh along the element normals with 3 mid-handles per edge#
import hm
import hm.entities as ent

model = hm.Model()

model.morphmanageedgemark(edge_id=0, user_mark_id=1, mode=3)
model.morphmanageedgemark(edge_id=2, user_mark_id=1, mode=1)
model.morphmanageedgemark(edge_id=4, user_mark_id=1, mode=1)

model.morphmapedgestoextendedoffset(
    user_mark_id=1,
    collection=hm.Collection(model, ent.Element),
    use_symmetry=1,
    use_constraints=1,
    project=1,
    vector=[1.0, 0.0, 0.0],
    number_of_mid_handles=3,
    offset=0.0,
)

model.morphmanageedgemark(edge_id=0, user_mark_id=1, mode=3)