« C4D Python R13 テスト:PythonでXPressoタグを試してみた。#3:ポートの連結 | トップページ | C4D Python R13 テスト:PythonでXPressoタグを試してみた。#5:設定済みXPressoタグ付のヌルオブジェクトをシーンに追加する。 »

C4D Python R13 テスト:PythonでXPressoタグを試してみた。#4:ポートの変数型を調べる。

XPressoタグのノードの変数型を調べてみよう。

今回も、C.O.F.F.E.E.タグを使います。
入出力に適当にポートを追加しておきます。

Xpressotag_18

変数型も適当に設定。
ポート名を変数型に変更してみました。

今回は、ただ調べるだけね…

GvPortクラスにある変数型を取得するメソッド…

  • GetValueType()

これを使うのだ…

Python
"""
C4D PythonでXPressoタグを試してみる。
ノードのポートの変数方を取得
"""

import c4d
from c4d.modules import graphview


def main():
    #アクティブオブジェクトに取り付けられているXPressoタグの取得
    if not op:return
    xpt = op.GetTag(c4d.Texpresso)
    if not xpt:return
   
    #XPressoタグのノードマスターの取得
    mst = xpt.GetNodeMaster()
    if not mst:return
   
    #ノードの取得
    root_node = mst.GetRoot()
    if not root_node:return
    node = root_node.GetDown()
    if not node:return
   
    #nodeの入出力ポートの取得
    ports = node.GetInPorts() + node.GetOutPorts()
   
    #コンソールに入出力ポートを表示
    print '-' * 7, 'in/out ports', '-' * 7
    for port in ports:
        port_type = port.GetValueType()
        types = '---'
        if port_type == c4d.DTYPE_FILENAME:
            types = 'c4d.DTYPE_FILENAME'
        elif port_type == c4d.DTYPE_BASELISTLINK:
            types = 'c4d.DTYPE_BASELISTLINK'
        elif port_type == c4d.ID_GV_VALUE_TYPE_BOOL:
            types = 'c4d.ID_GV_VALUE_TYPE_BOOL'
        elif port_type == c4d.ID_GV_VALUE_TYPE_VECTOR:
            types = 'c4d.ID_GV_VALUE_TYPE_VECTOR'
        elif port_type == c4d.ID_GV_VALUE_TYPE_MATRIX:
            types = 'c4d.ID_GV_VALUE_TYPE_MATRIX'
        elif port_type == c4d.ID_GV_VALUE_TYPE_REAL:
            types = 'c4d.ID_GV_VALUE_TYPE_REAL'
        elif port_type == c4d.ID_GV_VALUE_TYPE_INTEGER:
            types = 'c4d.ID_GV_VALUE_TYPE_INTEGER'
        elif port_type == c4d.ID_GV_VALUE_TYPE_STRING:
            types = 'c4d.ID_GV_VALUE_TYPE_STRING'
        elif port_type == c4d.ID_GV_VALUE_TYPE_TIME:
            types = 'c4d.ID_GV_VALUE_TYPE_TIME'
            
        print port.GetName(node), '---', types
    print '=' * 25


if __name__=='__main__':
    main()
    c4d.EventAdd()
------- in/out ports -------
filename --- c4d.DTYPE_FILENAME
bool --- c4d.ID_GV_VALUE_TYPE_BOOL
vector --- c4d.ID_GV_VALUE_TYPE_VECTOR
matrix --- c4d.ID_GV_VALUE_TYPE_MATRIX
link --- c4d.DTYPE_BASELISTLINK
float --- c4d.ID_GV_VALUE_TYPE_REAL
int --- c4d.ID_GV_VALUE_TYPE_INTEGER
str --- c4d.ID_GV_VALUE_TYPE_STRING
time --- c4d.ID_GV_VALUE_TYPE_TIME
=========================

ごめん、コンソールの結果はチョッと見辛いけど…

こんな感じだ…
変数型は、他にもあると思うけど…

変数型 定数
ファイル名 c4d.DTYPE_FILENAME
ブール c4d.ID_GV_VALUE_TYPE_BOOL
ベクトル c4d.ID_GV_VALUE_TYPE_VECTOR
マトリクス c4d.ID_GV_VALUE_TYPE_MATRIX
リンク c4d.DTYPE_BASELISTLINK
実数 c4d.ID_GV_VALUE_TYPE_REAL
整数 c4d.ID_GV_VALUE_TYPE_INTEGER
文字 c4d.ID_GV_VALUE_TYPE_STRING
時間 c4d.ID_GV_VALUE_TYPE_TIME

つづく…

|

« C4D Python R13 テスト:PythonでXPressoタグを試してみた。#3:ポートの連結 | トップページ | C4D Python R13 テスト:PythonでXPressoタグを試してみた。#5:設定済みXPressoタグ付のヌルオブジェクトをシーンに追加する。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« C4D Python R13 テスト:PythonでXPressoタグを試してみた。#3:ポートの連結 | トップページ | C4D Python R13 テスト:PythonでXPressoタグを試してみた。#5:設定済みXPressoタグ付のヌルオブジェクトをシーンに追加する。 »