エッジからカーブを作るスクリプト
#! perl
#
# Edge2Curve
#
# エッジからカーブを作ります
#
my $mainLayer = lxq("query layerservice layers ? main");
my $numSelEdge = lxq("query layerservice edge.N ? selected");
my @selEdge = lxq("query layerservice edges ? selected");my $errorMsg;
if( 1 == &errorCheck ){
lxout("--- Edge2Curve.pl --- START");
lx("select.drop polygon");
foreach my $e (@selEdge){
lx("select.drop vertex");
my @verts = lxq("query layerservice edge.vertList ? $e");
foreach my $v (@verts){
lx("select.element $mainLayer vertex add $v");
}
lx("poly.make curve");
}
lx("select.type polygon");
lx("poly.merge");
lxout("--- Edge2Curve.pl --- END");
}else{
lx("dialog.setup error");
lx("dialog.msg $errorMsg");
lx("dialog.open");
}
#errorCheck
sub errorCheck
{
# エッジモードでない
if( !lxq("select.typeFrom typelist:edge;vertex;polygon;item ?") ){
$errorMsg = "Must be in Edge selection mode.";
return 0;
}
# エッジが選択されていない
if( 1 > $numSelEdge ){
$errorMsg = "Select Edges.";
return 0;
}
return 1;
}
素敵なスクリプトですね。
もしこれを手作業でやろうとすると、モード変換後のvertexの順番がおかしくなってしまうところですが、とてもきれいにカーブができあがりますね。
> 素敵なスクリプトですね。
ありがとうございます。modomode(http://popover.blogzine.jp/weblog/)の中の人からコメント頂けるなんて。日本語の情報が多いので毎日拝見してます。
> もしこれを手作業でやろうとすると、モード変換後のvertexの順番がおかしくなってしまうところですが、とてもきれいにカーブができあがりますね。
実は最後にカーブをまとめてマージしてるだけなんで、エッジが十字に交差してるところは苦手だったりします。