CSVの書き出し

Nullノードを使ってボタンを押下した時に実行する仕組みをつくる場合
Pythonコードを実行するノードの作成

Pointアトリビュートの値を出力する例

UIにFileパラメータを追加している。

node = hou.pwd()
geo = node.geometry()
 
# UnrealEngineで読み込む形式でCSVを出力する
filePath = hou.node(".").parm("file").eval()
 
# aなら追加書き込みモード
file = open(str(filePath), "w")
 
row = "," + "Name" + ",Cluster" + ",Position" + ",Up" + ",Forward" + ',Scale' + "\n"
file.write(row)

num = len(geo.points())

i = 0
for point in geo.points():
    name = point.attribValue("name")
    cluster = point.attribValue("cluster")
    pos = point.position()
    up = point.attribValue("up")
    forward = point.attribValue("N")
    scale = point.attribValue("scale")
    
    row = str(name)
    row += ',' + str(cluster)
    row += ',' + str(pos[0]) + "," + str(pos[2]) + "," + str(pos[1])
    row += ',' + str(up[0]) + "," + str(up[2]) + "," + str(up[1])
    row += ',' + str(forward[0]) + "," + str(forward[2]) + "," + str(forward[1])
    row += ',' + str(scale)
    file.write(row)
    
    # 最後以外の行なら改行
    if(i < num-1):
        file.write("\n")
        i+=1
 
file.close
,Name,Cluster,Position,Up,Forward,Scale
Tree_Alder,0,25915.994140625,41886.4140625,696.58203125,0.0,0.0,1.0,-0.4969217777252197,0.8677953481674194,0.0,1.0
Tree_Alder,0,28138.48828125,42172.08984375,491.40625,0.0,0.0,1.0,-0.018378090113401413,-0.9998311400413513,0.0,1.0
Tree_Alder,0,38032.51953125,31799.74609375,498.73046875,0.0,0.0,1.0,0.9216222167015076,-0.38808825612068176,0.0,1.0
Tree_Alder,0,42065.33984375,39123.13671875,96.435546875,0.0,0.0,1.0,-0.9969759583473206,0.07771039009094238,0.0,1.0
Tree_Alder,0,27906.1953125,33000.73046875,1803.61328125,0.0,0.0,1.0,-0.014125743880867958,-0.9999002814292908,0.0,1.0
Tree_Alder,0,38372.5234375,34779.21484375,329.39453125,0.0,0.0,1.0,-0.9286008477210999,-0.37108007073402405,0.0,1.0
タイトルとURLをコピーしました