モデル空間の一部を選択、原点を指定して別ファイルに書き出す方法

BricsCAD

BricsCADやAutoCADでモデル空間の図面の一部分を選択し、原点を指定して別ファイルに書き出す方法を紹介します。

また、一連の動作をまとめたLispコードも書いたので紹介します。
エラー処理など無いごく簡易なものですが通常手順だと手数が多いので、とても作業が楽になりました。

動作確認は互換CADのBricsCADで行いました。(多分動くと思いますが、最新のAutoCADでは未確認です)

スポンサーリンク

概要

課題

「モデル空間の図面の一部分を選択して別ファイルに書き出す機能」は、標準のコマンド wblock で実現可能です。しかし、この機能では原点を指定できません。

例えば元図の任意の点を新図(書き出したDWGファイル)の原点(0,0)に合わせたくても、 wblockだけでは、できないんです。

▼例図。左半分が元図。右が新図です。

wblockだけで書き出した例。原点が指示できない。
wblockだけで書き出した例。原点が指示できない。

解決方法

解決方法は、UCS機能で元図の任意の点に原点を移動し、それからwblockを実行すると解決します。

▼例図。左半分が元図。右が新図です。 原点が図面Aの図枠の左下になりました。

wblockとUCSで書き出した例。原点が指定できた。
wblockとUCSで書き出した例。原点が指定できた。

動作デモ

手作業

  1. UCSコマンドを実行。元図の任意の点を指示。
  2. wblock実行。開いたウィンドウで、ファイル保存先を指示。
  3. 書き出したい図形を選択する。
  4. UCSコマンドで、原点をワールド座標に戻す。
  5. 完了。元図の任意の点が新図の(0,0)へ移動している。
【説明用】手作業
↑ 動画です

簡易LISP

上記の方法だと手数が多くて時間がかさむので、一連の流れをLISPファイルで書いてみました。
コードは、後述しています。

シンプルなものですが、作業時間を短縮できます。

  1. 新図のファイル名を入力。(例:1.dwgなら、1と入力)
  2. 図形の原点をクリックして指示。
  3. 対象の図形を囲む。
  4. 完了。元図の任意の点が新図の(0,0)へ移動している。
【説明用】LISP
↑動画です

動作環境

動作確認環境は以下の通りです。

  • BricsCAD classic V17
  • Windows 10 64bit
  • BricsCADはAutoCADの互換CADなので、 AutoCADでも多分同じ手順でいけると思います。
  • LISPファイルは、LISPが使えないグレードのCAD(AutoCAD LT等)では動作しません。

LISPコード

今回の方法は、若干手数が多くなるので、枚数が多いと面倒だし時間がかさみます。

そこで、簡易なLISPコードを書いてみたので紹介します。動作の様子は前述
クリック一発で自動展開みたいな凄い機能はありませんが、手作業でコマンドを順次打ち込むよりは楽になりました。

▼コードは以下の通りです。Eドライブ直下にファイルを保存する想定です。
私の環境では、フォルダ名に日本語を使うとエラーで動きませんでした。三行目以降のコメントも日本語で入れるとエラーが出てしまいます。
仮にドライブ直下など、英数字の仮置きフォルダを作る必要があるかもしれません。

▼ファイルの選択ウィンドウを立ち上げたい場合は、上記4行目の記述を、以下に変えると実現できます。

(setq loc (getfiled "Select a File loc" "E:\\" "" ""))

使い方

使用される際は、テスト環境でテストし、元図はバックアップしてください。
データの消失など、十分にご注意ください。

LISPファイルを作る

上記のコードをメモ帳等テキストエディタへコピペして保存します。拡張子はlspです。
例えばtest.lspなど。

LISPファイルをロードする

先ほど作ったlspファイルをロードします。

  • BricsCADは、 appload というコマンドでロード画面が立ち上がります。
    別記事に詳細を記載しています。
  • AutoCADも、apploadというコマンドで指定できます。
    参考記事

実行

  1. コマンドプロンプト上で、oexというコマンドを打ち込みます。
  2. Enter a file nameと聞いてくるので、ファイル名を打ち込みます。
    ※拡張子は無し。1.dwgなら1と入力します。
  3. Click a point to set the originと聞いてくるので、新しい原点にしたい点をクリックします。
  4. あとは、対象となる図形を選択したら、完了です。

ドキュメント

▼LISPの文法やルールは、下記ドキュメントを参照しました。
改造される際は、下記をご覧ください。

タイトルとURLをコピーしました