AutoCAD .NET API -C#でAutoCADとエクセルのプログラムを作る時の備忘録-

C#でAutoCADのプログラムを作った時に、毎回同じ事を調べるので備忘録として纏めておきます。エクセル操作の備忘録もついでに

選択セットを作る-その1

スポンサードリンク

当ブログではアフィリエイト広告を利用しています

AutoCadで良く使うクイック選択。
qselectコマンドですね。
それを.NETで作ってみようと思います。

クイック選択では、「線分」だけとか「円」だけとか選ぶ事が出来ると思いますが、今回は線分だけを選択してみようと思います。

f:id:kajimo_hkd:20160429112959j:plain:w300
クイック選択だとこんな感じですね。

スポンサードリンク



選択しただけではわかりにくいので、今回は選択した線分を全て赤(RED)にしたいと思います。
f:id:kajimo_hkd:20160429120903j:plain:w400

まずは全体のソースを

このコマンドを実行する線分だけが赤になります。
f:id:kajimo_hkd:20160429120947j:plain:w400

選択の条件の作り方によっていろいろな選択が出来ます。

     //フィルタの条件を作成
    TypedValue[] lineFilterValue = new TypedValue[1] { new TypedValue((int)DxfCode.Start, "LINE") };

SQL文のように、"AND"、"OR"、 "NOT"を指定したり、円の直径やブロックの名称を条件にする事も出来るようですが、それはまた次回に。

また、選択エリアも今回のSelectAll()の他に、

SelectWindow()
窓選択で完全に窓内に入っているオブジェクト(マウスによる左からの窓選択)


SelectCrossingWindow()
窓選択で窓に掛かるオブジェクト(マウスによる右からの窓選択)


SelectWindowPolygon()
ポリゴン選択でポリゴン内に完全に入っているオブジェクト(マウス選択の"WP"コマンド)


SelectCrossingPolygon()
ポリゴン選択でポリゴンに掛かるオブジェクト(マウス選択の"CP"コマンド)


等があります。

SelectAll()以外の選択は、選択するオブジェクトがウインドウに表示されていないと、resSelection.Statusでエラーが返って来ます。
マウスで選択しながら移動するとウインドウ外のオブジェクトが非選択になるのと同じですね。
なので、あるオブジェクトのある範囲にあるオブジェクトを選択する場合にはその部分を表示させる必要があります。

と言うわけで、今日はこの辺で。

書きたいな~と思う事はあるのですが、ソースとかを上手くブログに紹介するのがイマイチよくわからないのと、上手に説明出来ない気がして(^^;)
要するに構成が下手なんですね(笑)
こんなブログですが、たま~~にアクセスして頂いている方もいらっしゃるようで、嬉しいです。
プログラムのプロでは無いので、怪しい所もありますが、今後ともよろしくお願いします(^^)