<< Metasequoia Python 立方体を複数つくる その3 戻る 5角形をつくる メタセコイア Python >>

Metasequoia Python 立方体を複数つくる その4

とりあえず、複数配置を無理やり記述した。
エラーは表示されるが、スクリプトは実行される。

エラー処理の方法、
三次元日誌
http://d.hatena.ne.jp/ousttrue/20091201
を参考にしました。ありがとうございます。

以下、サンプル参考ファイルです。

def p(*args):
"""
プリント関数
複数の引数を渡せる。
"""
if len(args)==0:
# 改行させる
MQSystem.println("")
return

for arg in args:
MQSystem.println(str(arg))


# 基本図形、新規オブジェクトで立方体複数つくる その2
#error2.py
doc = MQSystem.getDocument()


out = MQSystem.println

#
def unitcube(L=50,x=0,y=0,z=0):
obj = MQSystem.newObject() #新規オブジェクト
num=doc.numObject
a=num
obj.name="cube_%d" % a #オブジェクト名をつける

a0=obj.addVertex(x-L/2.0,y-L/2.0,z+L/2.0) #0
a1=obj.addVertex(x+L/2.0,y-L/2.0,z+L/2.0) #1
a2=obj.addVertex(x+L/2.0,y+L/2.0,z+L/2.0) #2
a3=obj.addVertex(x-L/2.0,y+L/2.0,z+L/2.0) #3
a4=obj.addVertex(x-L/2.0,y-L/2.0,z-L/2.0) #4
a5=obj.addVertex(x-L/2.0,y+L/2.0,z-L/2.0) #5
a6=obj.addVertex(x+L/2.0,y+L/2.0,z-L/2.0) #6
a7=obj.addVertex(x+L/2.0,y-L/2.0,z-L/2.0) #7


obj.addFace([0,3,2,1])
obj.addFace([1,2,6,7])
obj.addFace([4,7,6,5])
obj.addFace([0,4,5,3])
obj.addFace([3,5,6,2])
obj.addFace([0,1,7,4])
doc.addObject( obj )


import traceback
import sys
#dist=0
try:
for dist in range(0,340,110):
#out(str(i))
out(str(dist))
unitcube(100,50+dist,50,0) #無理やり並べる
unitcube(100,50+dist,50,110)
unitcube(100,50+dist,50,220)
unitcube(100,50+dist,50,330)
#dist=dist+60

except:
info=sys.exc_info()
p(info[0])
p(info[1])
p(*traceback.extract_tb(info[2]))


num = doc.numObject #オブジェクトの数
out("オブジェクトの数 %d" % num) #オブジェクトの数を表示


課題はありますが、継続して勉強です。
07.jpg
  • -
  • -

<< Metasequoia Python 立方体を複数つくる その3 戻る 5角形をつくる メタセコイア Python >>