これはブログです

3DCGとかプログラミングとか

Shade 3D Python スクリプトを書いてみた

思い立ってスクリプトを書いてみました。何気に初めて書きます。

単純に選択したシェイプの稜線の長さの合計を求めるスクリプトです。

import math

def sumRom():
    count = 0
    r = 0

    # 稜線数
    edges_num = xshade.scene().active_shape().number_of_edges

    while count < edges_num:
        if xshade.scene().active_shape().edge(count).active == True:

            # 頂点のインデックス値
            edge_v0 = xshade.scene().active_shape().edge(count).v0
            edge_v1 = xshade.scene().active_shape().edge(count).v1

            # 頂点の座標
            vertex_v0 =  xshade.scene().active_shape().vertex(edge_v0).position
            vertex_v1 = xshade.scene().active_shape().vertex(edge_v1).position

            #  長さ
            r = math.sqrt((vertex_v0[0] - vertex_v1[0]) ** 2 + (vertex_v0[1] - vertex_v1[1]) ** 2 + (vertex_v0[2] - vertex_v1[2]) ** 2) + r

        else:
            r = 0 + r

        count = count + 1

    return r

def main():
    print "R = " + str(sumRom())

main()

意図としては、例えば円周を求めたりするためですが、開いていようが稜線が飛び出していようが edge のインデックスを順番に回るので不要な(?)稜線まで含んでしまう可能性があります。if 文で稜線の active を判定していますが、書き方として冗長な気がします。

githubに公開しました。→ウィジェット化しました!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください