Maya

【Maya:Python】2頂点間の距離を取得

shamimatsu

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つ以外だと処理しないようにしています。

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました