Skip to content

Instantly share code, notes, and snippets.

@DrewTNBD
Created September 30, 2021 20:08
Show Gist options
  • Select an option

  • Save DrewTNBD/1ad1f26c25afbe3e843e958fa7851680 to your computer and use it in GitHub Desktop.

Select an option

Save DrewTNBD/1ad1f26c25afbe3e843e958fa7851680 to your computer and use it in GitHub Desktop.
How to create facemaps from a set of known vert groups
def create_facemaps(self, object):
me = object.data
bm = bmesh.new()
bm.from_mesh(me)
bm.select_mode = {'VERT', 'EDGE', 'FACE'}
bm.verts.ensure_lookup_table()
bm.faces.ensure_lookup_table()
fm = bm.faces.layers.face_map.verify()
group_names = ['InnerShell', 'OuterShell', 'UpperBearingEdge', 'LowerBearingEdge']
for grp_name in group_names:
new_fm = object.face_maps.new(name=grp_name)
vert_idxs = self.shell_verts[grp_name]
for idx in vert_idxs:
vert = bm.verts[idx]
vert.select = True
bm.select_flush_mode()
faces = [face for face in bm.faces if face.select]
for face in faces:
face[fm] = new_fm.index
for vert in bm.verts:
vert.select = False
me.update(calc_edges=True, calc_edges_loose=True)
bm.to_mesh(me)
bm.free()
return
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment