youtube 使用プログラム
import bpy
import bmesh
from mathutils import Vector
# アクティブなオブジェクトがエディットモードであることを確認
if bpy.context.object.mode == 'EDIT':
# BMeshの取得
obj = bpy.context.edit_object
me = obj.data
bm = bmesh.from_edit_mesh(me)
edge_length_total = 0.0
selected_edges_count = 0
mat_world = obj.matrix_world # オブジェクトの変換行列を取得
# 選択されている辺のグローバル座標での長さを計算
print("Selected edges details (Global coordinates):")
for edge in bm.edges:
if edge.select:
# 頂点のローカル座標をグローバル座標に変換
v1_global = mat_world @ edge.verts[0].co
v2_global = mat_world @ edge.verts[1].co
edge_length = (v1_global - v2_global).length
edge_length_total += edge_length
selected_edges_count += 1
print(f"Edge between ({v1_global.x:.4f}, {v1_global.y:.4f}, {v1_global.z:.4f}) and ({v2_global.x:.4f}, {v2_global.y:.4f}, {v2_global.z:.4f}) - Length: {edge_length:.4f} m")
# 合計の長さと選択された辺の数をメートル単位で表示
print("\nTotal selected edge length in global coordinates: {:.4f} m".format(edge_length_total))
print("Number of selected edges: {}".format(selected_edges_count))
else:
print("Please switch to Edit Mode.")