Shade online フォーラム
ログイン
ユーザ名:

パスワード:

IDとパスワードを記憶

パスワード紛失
スレッド表示 | 古いものから 投稿するには登録が必要です 前のスレッド | 次のスレッド | 下へ
投稿者 スレッド
投稿数: 4
投稿日時: 2010-05-24 09:12
Re: 絶対座標値入力の移動方法
ご丁寧な返答ありがとうございます。
早速試してみたいと思います!!
投稿数: 106
投稿日時: 2010-05-24 00:51
Re: 絶対座標値入力の移動方法
コントロールポイントの整列方法で解説したやり方で、目的のことが出来るかと思います。

>インターフェースの下の方にあるマウスカーソルの座標を見ながら
>位置合わせをすると、拡大した時に微妙にズレてしまうので..

Shadeは、誤差が多いのか丁寧に操作しても、拡大すると結構ズレていることがあります。
きっちり揃えたい場合はスクリプトで座標値を丸めてあげるしか無いように思います。

下記にポイントを丸めるスクリプト掲示しておきますが、私用に作っているので少々注意があります。

機能:選択形状または、選択パート内に含まれる全ての形状に対して座標を整数値に丸めます。
注1:自由曲面・市販されている形状や自由曲面からポリゴンメッシュに変換した形状など、最適化が行われている形状にも整数値で丸めてしまうので、形状が崩れます。
注2:スクリプトで直接座標値を変更しますで、やり直しが効きません。

お使いになる場合は必ずバックアップをして下さい。
また、自己責任でお願いします。
改良などご自由にしてください。


#探索
#
#引数:shape	shapeObject
#引数:key		形状の序数。省略時には0(ルートパート)
def all_each(shape,key=0):
	main(shape)
	print shape.ordinal

	if shape.has_son:
		shape = all_each(shape.son.bro,key)
		shape = shape.dad
	
	while shape.has_bro:
		if shape.ordinal == key:
			break
		shape = all_each(shape.bro,key)


	return shape


def marume(point, n = 3):
	seido = 0 #ここの数値が有効数字の桁数 0:整数値、1:小数点第1位・・・
	if n == 3:
		x,y,z =point
		return (round(x,seido),round(y,seido),round(z,seido))
	elif n == 4:
		x,y,z,r =point
		return (round(x,seido),round(y,seido),round(z,seido),r)

def main(shape):
	name = shape.name
	if name[0] == '\'':
		return

	if shape.type == 7:
		for i in range(shape.total_number_of_control_points):
			new_point=marume(shape.vertex(i).position)
			shape.vertex(i).position = new_point
			del new_point

	elif shape.type == 4:
		for i in range(shape.number_of_control_points):
			new_point=marume(shape.control_point(i).position)
			shape.control_point(i).position = new_point
			del new_point

	elif shape.type == 2:
		m1,m2,m3,m4 = xshade.scene().active_shape().transformation_matrix 
		xshade.scene().active_shape().transformation_matrix = (m1,m2,m3,marume(m4,4))
		del m1,m2,m3,m4


shape = xshade.scene().active_shape()

xshade.scene().inhibit_update() 

try:
	all_each(shape,shape.ordinal)
finally:
	xshade.scene().allow_update() 



windows xp
shade 10.5 Pro
投稿数: 4
投稿日時: 2010-05-23 05:32
絶対座標値入力の移動方法
はじめまして。
最近、shadeを始めたビギナーです。

ご質問ですが、形状やコントロールポイントを絶対座標の値を
入力して、入力した位置に移動させることは可能でしょうか?

(トランスフォーメーションの直線移動のように、現在の位置から
入力した分移動する相対座標的な移動ではなくです。)

インターフェースの下の方にあるマウスカーソルの座標を見ながら
位置合わせをすると、拡大した時に微妙にズレてしまうので..

宜しくお願いいたしますm(_ _)m
スレッド表示 | 古いものから 投稿するには登録が必要です 前のスレッド | 次のスレッド | トップ

最近の投稿

フォーラム スレッド 返信 閲覧 最終投稿
Free Talk DNAの2重らせんの水素結合部位の作成 0 11705 2016-08-01 21:37 Benthos
Free Talk パート内の名前を一括返還 2 14206 2016-03-07 12:21 画像投稿機
Dev Forum イームズシェルチェアーの作成 2 14131 2015-11-25 14:44 CR7
Free Talk MOVファイルについて 17 35153 2014-12-29 17:14 momokuma
Dev Forum 2種類の液体アニメーションを作る方法 0 14216 2014-11-13 10:42 mejapan
Free Talk 面取りについて 0 13323 2014-11-08 15:18 MoonChild
Free Talk 丸太を結ぶ縄の作成について 1 19498 2014-09-18 22:33 kenslab
Free Talk パーティクルフィジックスのメタパーティクルについて 0 13789 2014-09-03 20:40 penta
Free Talk データの保存に関して 2 13596 2014-08-18 01:24 sierra
Free Talk Shade 3D ver14での、ポリゴンメッシュへの変換以上終了 1 14062 2014-04-23 12:04 MASA_