modo Script Python 半分選択
# python import lx xflag = 0 fg = lx.eval("query layerservice layers ? fg") if (lx.eval("select.typeFrom {edge;polygon;item;vertex} ?") and lx.eval("select.count edge ?") or lx.eval("select.typeFrom {polygon;edge;item;vertex} ?") and lx.eval("select.count polygon ?") or lx.eval("select.typeFrom {vertex;edge;polygon;item} ?") and lx.eval("select.count vertex ?")): lx.eval("select.convert vertex") vt = lx.evalN("query layerservice verts ? selected")[0] p = lx.eval("query layerservice vert.pos ? {0}".format(vt))[0] if p <= 0.00000001: xflag = 1 lx.eval("select.connect") else: lx.eval("select.typeFrom vertex true") lx.eval("select.invert") vtx = lx.eval("query layerservice verts ? selected") if vtx: lx.eval("select.drop vertex") for v in vtx: pos = lx.eval("query layerservice vert.pos ? {0}".format(v)) if not xflag: if pos[0] >= -0.00000001: lx.eval("select.element {0} vertex add index:{1}".format(fg,v)) else: if pos[0] <= 0.00000001: lx.eval("select.element {0} vertex add index:{1}".format(fg,v)) lx.eval("select.convert polygon")
更新が滞ってしまいました。
スクリプトにはまっておりました、modoでもっと効率のいい書き方はないのだろうか。
そんなことを実験しているうちに、あれよあれよと、時間が過ぎました。
今のところの結論は、難しい。といった感じでしょうか。
今回のスクリプトは、パールですでに存在する、deleteHalfの改造版です。
そのスクリプトでは、+xのポリゴンを削除してくれます。
ついでなら、反対側をミラーコピーして、更にUVもミラーする。というようなスクリプトを書いておりましたが、
中心線がずれているモデルや、軸をまたがって交差しているモデルだと問題がある。
ということで、選択までに留めておきました。
で、元のパールのものとの一番の違いは、頂点やエッジやポリゴンですでに選択されている範囲があれば、
その範囲が存在する方を選択します。
要するにマイナスの方を選択したければ、マイナスにあるポリゴンを選択する。といった感じです。
こんな感じに、選択すると、
こんな感じに選択されます。
うーん、ちょっとだけ便利?
そういえば、「modo実践チュートリアルビデオ デザイナーズハウス編」、購入しました。
まだきちんと見たわけではないので、レビューは書けません。
ただ、すごいボリュームです。残念なことにマテリアルやレンダリングについてはほぼ触れられていはいないようです。
第二弾が出るのでしょうか?
しかし、これだけのボリューム、準備に相当時間がかかったことだろうと思います。本当にご苦労様でした。
なるほど、パイメニューって使い方次第では意外と使えるものなのですね。
ショートカットが埋まってしまって困っておりましたが、参考にして使ってみようかと思います。
あっ、そういえば、CADを起こしている途中だった、、すっかり忘れておりました。
※追記2012/10/3
バグフィックスです。すみません。
11行目「lx.eval」を「lx.evalN」に変更しただけです。
コメントする
トラックバックする
トラックバック用URL: