import bpy
import copy
import math
import bmesh
import sys
from mathutils import Vector
def main():
select_end_edge( "Cube" )
def select_end_edge( obj_name ) -> bool:
for ob in bpy.context.scene.objects:
ob.select_set(False)
ob = bpy.data.objects.get( obj_name )
if not ob:
return False
ob.select_set(True)
bpy.context.view_layer.objects.active = ob
bpy.ops.object.mode_set(mode='EDIT', toggle=False)
meshdata = bmesh.from_edit_mesh(ob.data)
meshdata.select_mode = {'EDGE'}
bpy.ops.mesh.select_all(action='DESELECT')
meshdata.select_flush_mode()
meshdata.verts.ensure_lookup_table()
for edge in meshdata.edges:
if edge.is_boundary == True:
edge.select_set(True)
meshdata.select_flush_mode()
selectob.data.update()
return True
if __name__ == '__main__':
main()