MODO 機能紹介・チップスサイト このサイトでは、MODOの基本機能やチップスをご紹介していきます。

Convert Polygon to PolyLine

ダウンロード

概要

このスクリプトは通常の面ポリゴンをポリラインへと変換します。カーブをレンダリング機能と併用することで、ワイヤーフレームレンダリングが可能になります。

バージョン

1.3

注意

変換したいメッシュレイヤーを選択(複数選択可)した上で、このスクリプトを実行してください。またポリラインの形態はMODO 801以降でのみサポートされています。

解説

このスクリプトでは面ポリゴンをポリラインへと変換することにより、ワイヤーフレームレンダリングが可能になります:

convert_polyline行っている処理はいたって簡単で、以下の手順に従って実行しています:

  1. メッシュのエッジをすべてコピー
  2. 新しくメッシュレイヤーを作成
  3. 新しいメッシュレイヤーの名前を”PolyLine_XXXXX”
    (XXXXはコピー元のメッシュレイヤー名称)へとリネーム
  4. コピーしておいたエッジを貼り付け
  5. ポリゴンの種類をFaceからPolylineへと変換

マクロ機能を利用して実行できるような処理ですが、今回はPython用のサンプルスクリプトのご紹介ということで、「複数選択したレイヤーに対しそれぞれ処理を行う」という点を解説します。

現在選択しているレイヤー情報を取得するのは14行目:

14:fglist = lx.evalN( 'query layerservice layers ? fg' )

メッシュレイヤーが複数選択されている場合に備え、18行目の for 文以降で一つ一つのメッシュに対して処理を行っていきます。複数選択の場合に、返ってくる要素が配列であるようにするためには lx.evalN を使用します。逆に複数選択されていたとしても、一つのレイヤー分しか返ってきてほしくない時には lx.evalN を使用するようにしてください。

18:    for fg in fglist:

各メッシュレイヤーの情報は fg に紐づいていますので、レイヤーの名称やインデックスなどを取得する場合には、この fg を元にクエリーすることになります。

あとはこの for 文の中で上記手順1~5を繰り返すだけ。上記手順に対応するコマンドは、コマンド履歴を見て拾っていけばOKです。

2014年8月8日