<目的>
複数のオブジェクトに同値のオフセット(offset)をかけます。
製造業関連の方だと全体に補正かけたりすることがあると思いますが、そういう際に便利。
offsetコマンドにも一括(M)というのがありますが、まどろっこしいので。
下記イメージの赤い部分が一括して描画できます。
<VBAと.NET>
VBA版(ファイル拡張子dvb)と.NET版(同dll)を作成しています。
VBA版はAutocadのバージョンに依存していて、筆者の作成環境の2010でしか動きません。
.NET版は、Autodesk様のHPで確認するかぎり、Autocad2010と2011は同じに使えるはず。
しかも、Autocad2009では動きました。(2007で動作しないのも確認済み)
そんなわけで、.NET版をお奨めします。
<使い方>
0.ボタンに登録等のカスタマイズはこちら(工事中)
1.オフセット後に配置したい画層を現在の画層にします
offsetコマンドの画層(L)の設定に依存しません
2.マクロを実行します(VBA版)
コマンドラインから"vbaload"と入力。ダイアログでファイルを指定
マクロを有効にするか確認ダイアログが出ることがありますが、有効にして下さい。
次にコマンドラインから"vbarun"と入力。マクロを指定して実行!
とても長いですが、末尾はこうなります。~~\AutoOffset_acad2010.dvb!ThisDrawing.AutoOffsetbyMURAKAMI
2.マクロを実行します(.NET版)
コマンドラインから"netload"と入力。ダイアログでファイルを指定
次にコマンドラインから"auto_offset_dotnet"と入力。実行!(ネイティブコマンドのようにTabキー補完もされます)
3.オブジェクトを選択します
選択できるのはポリライン(LWPolyline,Polyline)、円(Circle)、楕円(Ellipse)のみです。
4.オフセットの数値を入力します
プラス>大きくなる マイナス>小さくなる ゼロ>駄目!
※マイナスの時オブジェクトが作れない場合
>VBA版 エラーを吐いて途中でストップ(UNDOをお奨めします)
>.NET版 そのオブジェクトは作成されません。エラーメッセージ等出力されません。
5.現在画層にオフセット後のオブジェクトが作成されて完了!
<ダウンロード>
ベクター様にお願いしています。