メタセコでのPythonスクリプト、引き続き勉強中。
立方体生成について、別の方法を記述してみた。
頂点をリストpで作っておき、addVertexでオブジェクトに追加、面の方向を決めて、ドキュメントに追加し、シーンに表示する。
newPointで点を追加してあげないと、うまくいかないようです。
以下のスクリプトは、OpenGLの記述を参考にしました。エラー処理もできるように、関数drawCube()をはさんでおきました。いろいろと実験してみてください。頂点の順番はOpenGLとは逆になります。
残念ながら。この記述だと面がばらばらになります。
def p(*args):
  """
  プリント関数
  複数の引数を渡せる。
  """
  if len(args)==0:
    # 改行させる
    MQSystem.println("")
    return
  for arg in args:
    MQSystem.println(str(arg))
#meta_drawcube3.py
doc = MQSystem.getDocument()
out = MQSystem.println
def drawCube():
	obj = MQSystem.newObject()
	s=MQSystem.newPoint
	p =[s(50,50,50), s(-50,50,50), s(-50,-50,50),s(50,-50,50),
	s(50,50,-50), s(-50,50,-50),s(-50,-50,-50), s(50,-50,-50)]
	
	out(str(p[0]))
	
	obj.addFace([obj.addVertex(p[3]), obj.addVertex(p[2]),
			obj.addVertex(p[1]), obj.addVertex(p[0])])
	obj.addFace([obj.addVertex(p[4]), obj.addVertex(p[7]),
			obj.addVertex(p[3]), obj.addVertex(p[0])])
	obj.addFace([obj.addVertex(p[1]), obj.addVertex(p[5]),
			obj.addVertex(p[4]), obj.addVertex(p[0])])
	obj.addFace([obj.addVertex(p[2]), obj.addVertex(p[6]),
			obj.addVertex(p[5]), obj.addVertex(p[1])])
	obj.addFace([obj.addVertex(p[3]), obj.addVertex(p[7]),
			obj.addVertex(p[6]), obj.addVertex(p[2])])
	obj.addFace([obj.addVertex(p[5]), obj.addVertex(p[6]),
			obj.addVertex(p[7]), obj.addVertex(p[4])])
	
	doc.addObject( obj )
import traceback
import sys
#dist=0
try:
	drawCube()
	
except:
	info=sys.exc_info()
	p(info[0])
	p(info[1])
	p(*traceback.extract_tb(info[2]))