Expand_Poly 008


指定した幅でポリゴンの拡大縮小をして新たなポリゴンを作成します



Type  
Edge

辺と辺の距離で伸縮

Point

頂点と頂点の距離で伸縮

Mixture

伸縮方法を混在して指定する

Offset

伸縮距離



■ 対象となるポリゴンについて

1枚の独立したポリゴンで、平面性が保たれている物を対象にしてください。


■ Type> Edge と Type> Point について

この2つのタイプでは、ポリゴン内の1つのポイントを選択します。

** Edge Type

Edge Type では、辺と辺の距離を指定したオフセット値で伸縮をし、新たなポリゴンを作成します。
主に角形のポリゴンで使用する場合が多いタイプだと思います。
鋭角のポイント間では、異常に距離が離れることになります。

-


** Point Type

Point Type では、頂点と頂点の距離を指定したオフセット値で伸縮をし、新たなポリゴンを作成します。
主に円のポリゴンで使用する場合が多いタイプだと思います。

-


両タイプの違いです。



■ Type> Mixture について

このタイプでは、ポリゴン内のグループとするポイント群を選択分けして、Edge / point タイプを適用します。

Edge type と Mixture type を同じポリゴンに適用した違いを説明します。

例えば、図中の左上の角丸の場所で、Edge type では円弧は同心円になりません。
しかし、Mixture type では、同心円になります。(このために作成したLScriptです)
**同心円になるのは、正円の円弧の場合です。楕円の円弧ではEdge と同様になります。

-


■ Mixture Type のグループ分けについて

ポリゴン内のポイントを選択していく場合で、グループ分けをします。
選択したポイントから、次に選択するポイントの手前までが、1グループになります。

選択するポイントの順番は任意で、前後しても構いません。

A type
グループが1ポイントの場合です。
このタイプでは、Edge type が適用され、そのポイントを挟む両辺が指定オフセット値になります。
主に角に適用します。

B type
グループが2ポイントの場合です。
最初のポイントに入っていく辺と、2番目のポイントから出ていく辺の距離が指定オフセット値になります。

C type
グループが3ポイント以上の場合です。
これは、円弧があることを想定しています。
各ポイントは、中心点と想定される座標から、指定オフセット値の距離をとります。
ただし、グループ内の最初と最後のポイントの辺は、接線で繋がっている場合に成功します。
円弧の入口・出口が接線で繋がっていない場合は、 A type の角として伸縮します。

図で B type Group の場所では、2ポイントに挟まれた辺の距離が短くなっています。
修正をする場合には、Undo をし、選択されていないポイントを、追加選択します。
これで、この場所は A type となり、角方向へ拡張されて辺の幅を保つ事ができます。



このLScript を作成し実験をしていた時、元のポリゴンを作る際に、R_PolyFan で円弧を作っていました。
あちらやこちらにと、ポイントが増えていく間にフェイス面の逆転が起こりました。
フリップしてこのExpand_Polyをプラス方向のオフセット値でも内側に縮小されたポリゴンができあがる現象がありました。
このLScriptが未完成なのかも知れませんが、元ポリゴンのポイント並びのスタート位置を変更すると正常に処理されました。
この様な現象が起こったならば、PolyPoint_ReSet.lsc でポイント並びのスタート位置を変更してみてください。
上図の場合でしたら、左下や右下の角のポイントをスタートにするとかです。


ダウンロード Expand_Poly-008.zip


ver. 008 ロック解除
ver. 007 凹型の円弧の中心を求める計算のバグを修正
ver. 006 円弧の中心を求める計算のバグを修正
ver. 005 円弧の接続の仕方で伸縮方法を変更
ver. 003 公開


※このスクリプトで生じた不具合などは責任を負えませんので、データ保存後に使用することをお勧めいたします。
※ご意見・バグ情報などございましたら web-info(a)pictrix.jpまでお願いいたします。