strange items(楽天)


shade10.5〜15用スクリプト(WINDOWS&MAC用)一覧はこちらです。


bannerst.jpg
リンク用のバナーです。
リンクはご自由にどうぞ。

2009年11月02日

shade用スクリプトその11(マルチターゲットウェルド)

これは「マルチリンク」の応用で作ったやつです。
マルチリンクの方は作るのに時間がかかりましたが、こっちはマルチリンクのプログラムをちょこちょこと修正して30分ほどで完成。

「マルチリンク」の方はエッジを張るのにたいして、「マルチターゲットウェルド」の方は「片方の頂点がもう片方の頂点の座標へ移動してマージ処理が行われる」という風になっています。

搭載しているモードは
・「マルチウェルド(選択順に対ウェルド)」
・「マルチウェルド(開始点に総ウェルド)」
・「マルチウェルド(座標値で対ウェルド)」
・「マルチウェルド(ダブルループウェルド)」
の4モードです。

新)マルチターゲットウェルド20130123.txt

旧)マルチターゲットウェルド120330.txt

旧)マルチターゲットウェルド20110412.txt

旧)マルチターゲットウェルド20100303.txt

マルチターゲットウェルド.txt(旧)

マルチターゲットウェルド.txt(旧)


<重要>上位パートに変換がかかっている状態で、かつ一時ローカル座標モードかろくろモードONの状態でスクリプトを実行すると、「スクリプトの処理結果をキャンセルした際」に形状が破壊されてしまう不具合を修正しました。(2010.03.03)
修正前の旧版をお使いの方は不具合を修正した新版をダウンロードしなおしてください。
(メッシュツールプラスウィジェットでスクリプトを利用していた方はメッシュツールプラスの最新版をダウンロードしなおしてください。)
shade13.22にあわせて修正(2013.01.23)
shade13.01に対応(2012.03.30)
shade12.02に対応(2011.04.12)
「ダブルループウェルド」モードで必要な関数が搭載されてない事によるエラーが出るのを修正しました。(2009.12.22)

「ダブルループウェルド」モードで時々エラーが出るのを修正しました。(2009.12.20)
「ダブルループウェルド」モードを追加しました。(2009.11.23)


「マルチリンク」を使った事があるなら、だいたいどのような機能かわかるのではないでしょうか。
以下は画像つきで説明。


<マルチターゲットウェルド(選択順に対ウェルド)>

マルチウェルド001.png
SHIFTキーを押しながら矩形選択などで一つずつ頂点を選び、図のような順で頂点が選択されたとします。
で、この状況で「マルチターゲットウェルド」の「選択順に対ウェルド」を実行すると…
マルチウェルド002.png
と、1の頂点座標へ2の頂点が移動されマージされ、3の頂点座標へ4の頂点が移動されマージされ、5の頂点座標へ6の頂点が………という風に各頂点が対でウェルドされます。


<マルチターゲットウェルド(開始点に総ウェルド)>
選択されている頂点のうち、一番最初の頂点(1)以外が全て頂点1の座標へ移動してマージされると。
マルチウェルド001.png

マルチウェルド003.png
になると。


<マルチターゲットウェルド(座標値で対ウェルド)>
指標とする座標値(X座標値か、Y座標値か、Z座標値か)を指定するダイアログがまず出ますので、このいずれかを選ぶと、その指標に従って「座標値の近いもの同士」を対でウェルドしていくというやつです。
「マルチリンク」の方の「座標値で対接合」はエッジを張るだけでしたが、こっちの方は「どっちの頂点がもう片方の頂点へ移動するか」を決める必要がありますため、頂点群を選択する順番には注意する必要があります。

マルチウェルド004.png
のように、まず上の5点を矩形選択ツールで一気に選んでから、SHIFTキーを押しながら矩形選択ツールで下の5点を一気に追加した場合に、「マルチターゲットウェルド」の「座標値で対ウェルド(X座標)」を行うと…
(*今回は上面図で作業しています。横方向がX軸、縦方向がZ軸となっています。)
マルチウェルド005.png
のように、X座標値が近いもの同士でペアが作られ、各ペアでは『頂点の選択番号が後の方』の頂点が、『頂点の選択番号が前の方』の頂点の座標へ移動された後、頂点のマージが行われるわけです。

逆に
マルチウェルド006.png
のように先に下の5点を選択してから上の5点を追加して、「座標値で対ウェルド(X座標)」を行うと、
マルチウェルド007.png
となります。

<マルチウェルド(ダブルループウェルド)>
頂点選択数が4個か6個の時のみ機能するモードです。

ダブルループ001.png
図のように内側の稜線と外側の稜線の頂点数がまったく同じ状態で、頂点を図の通りの順に4つ選択し、「ダブルループウェルド」を実行すると…
ダブルループ013.png
一瞬で各頂点がウェルドされます。
頂点1へ頂点3がウェルドされ、頂点2へ頂点4がウェルドされ、2の隣の頂点へ4の隣の頂点がウェルドされ……といった感じで止まるまでウェルドされていきます。

注意点として、頂点1と2は直接エッジが張られている必要があり、同様に頂点3と4も直接エッジが張られている必要があります。
また辺12も辺34も、それぞれ隣接面が1以下でないといけません。(つまりポリゴンメッシュの端にある辺か、ポリライン上の辺でないといけない。)

ダブルループ005.png
のように頂点を6個図のとおりの順に選択した状態で「ダブルループウェルド」を実行すると、
ダブルループ014.png
頂点3と6のところで処理を止める事ができるようになっています。
頂点を6個選択して途中で止める場合は、2から3までの頂点数と5から6までの頂点の数が同数であるように3と6を選択するよう気をつけてください。
(同数でない場合はスクリプトが作動しません)

posted by stxsi at 19:26| shadeスクリプト | このブログの読者になる | 更新情報をチェックする