maya2022でpython3になったためコードを修正しました。
2頂点間の距離を取得する方法について検索しても見つけることがなかなか出来ないでいましたが、ルートを使えば測れる事に気づきました。もしかしたら既存の機能である可能性もあります。
広告
コード
maya2022でpython3になったためコードを修正しました。
printをステータスバーに表示するための関数(pm.displayInfo)を追加しています。
参考サイト:Maya print in status bar
# -*- coding: utf-8 -*-
import pymel.core as pm
import math
vtxList=pm.polyListComponentConversion(tv=1)
pm.select(vtxList, r=1)
vtxLists=pm.ls(fl=1, sl=1)
# 2頂点選択以外は処理しない
if len(vtxLists) != 2:
pm.warning(u'2頂点選択してください')
else:
first = pm.pointPosition(vtxLists[0])
x1 = first[0]
y1 = first[1]
z1 = first[2]
second = pm.pointPosition(vtxLists[1])
x2 = second[0]
y2 = second[1]
z2 = second[2]
r = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2 + (z2 - z1) ** 2)
pm.displayInfo(r)
math.sqrtでルートの計算が出来るようです。
実行方法
メッシュの頂点を2つ選択して実行してください。
2つ以外だと処理しないようにしています。
広告