日々適当

hibitekitou

カーブの情報を取得

xsi |2010-08-24
メモです。
選択したカーブの情報を取得します。
app = Application
log = app.Logmessage

oRoot = app.ActiveSceneRoot

selObj = app.Selection(0)
selObjName = selObj.FullName

oCurveList = selObj.ActivePrimitive.Geometry
oCurves = oCurveList.Curves

#カーブの長さ
log("Curve Length:" + str(oCurves(0).Length))
#カーブのノット
oKnots = oCurves(0).Knots
log("Number of Curve Knots:" + str(oKnots.Count))
for i in range(0,oKnots.Count):
	log("Knots " + str(i + 1) + ": " + str(oKnots(i)))	
#カーブのインデックス
log("Curve Index: " + str(oCurves(0).Index))
#GetNormalizedUFromU 
#U値に相当する正規化値を戻します。
for i in range(0,oKnots.Count): 
	UNormalized = oCurves(0).GetNormalizedUFromU( oKnots(i) )
	log("The normalized equivalent of "+ str(oKnots(i)) + " is U :" + str(UNormalized))

#以下、選択したカーブ上のノットにサークルを配置していく

def clonedCircleToKnots(oCircle,UNormalized):
	#oCircle: クローンを作るサークル
	#UNormalized: カーブ上のU値(0~1)
	app.SelectObj(oCircle.FullName, "", "")
	app.Clone("", "", 1, 1, 0, 0, 1, 0, 1, "", "", "", "", "", "", "", "", "", "")
	selObj = app.Selection(0)
	app.ApplyCns("Curve", selObj.FullName, selObjName, "")
	app.SetValue(selObj.FullName + ".kine.crvcns.tangent", True, "")
	app.SetValue(selObj.FullName + ".kine.crvcns.dirx", 0, "")
	app.SetValue(selObj.FullName + ".kine.crvcns.diry", 0, "")
	app.SetValue(selObj.FullName + ".kine.crvcns.dirz", -1, "")
	app.SetValue(selObj.FullName + ".kine.crvcns.upvct_active", True, "")
	app.SetValue(selObj.FullName + ".kine.crvcns.posu", UNormalized, "")

splitValue = 1 #ノット間の分割数(正の整数)

oCircle = oRoot.AddGeometry("Circle","NurbsCurve")
app.SetValue(oCircle.FullName + ".circle.radius", 0.1, "")
oKnotsSet = set(oKnots) #重複したノットの削除
oKnots = list(oKnotsSet)
for i in range(0,len(oKnots)):
	UNormalized = oCurves(0).GetNormalizedUFromU( oKnots[i] )
	if splitValue < 2 : #ここの不等号は全角で打ち込んであるので注意
		clonedCircleToKnots(oCircle,UNormalized)
	else:
		if i != len(oKnots) - 1:
			UNormalizedN = oCurves(0).GetNormalizedUFromU( oKnots[i + 1] )
			UNormalizedStep = (UNormalizedN - UNormalized) / splitValue
			for j in range(0,splitValue):
				clonedCircleToKnots(oCircle,UNormalized + UNormalizedStep * j)
		else:
			clonedCircleToKnots(oCircle,UNormalized)
コメント ( 0 )|Trackback ( )

ケースプログラムのケースが届いた

iPhone |2010-08-24
iPhone 4 - ケースプログラム [アップル] で注文していたケースが届きましたよ。

届いたケースはMotif for iPhone 4 [Griffin Technology]。

少し柔らかな感触のケースです。
iPhone 4のケースは、最初間に合わせとしてバッファローのTPUケースってのを使っていました。
こちら、ふにゃふにゃです。

続いて、これは現在も使っていますけど、eggshell for iPhone 4 [Focal Point Computer] を使っています。
プラスチックって感じの感触ですね。ふにゃふにゃじゃないけど、固いってまでの感触じゃない。

そして今回のは、それらの中間みたいな印象でした。
ちょっと柔らかいのだけど、形状が大きく崩れることはない、みたいな。それゆえに若干厚みがありまして、現在の僕の収納方法では使えません。ベルトにクリップされたケースに入れて運搬するって方法ね。今の季節、ズボンのポケットに入れると汗でひどいことになってしまうので。そのケースがiPhone 4本来のサイズよりわずかに、本当にわずかに大きいぐらいなので、このGriffinのケースだと入らないのでした。

ってことで、汗をかかなくなる季節になったら、iPhone 4にこれをつけてポケットに入れて持ち運んでみたいと思います。
コメント ( 0 )|Trackback ( )
  ・