自動化・パフォーマンス最適化・協業 - AutoLISPからAutodesk Docsまで
概要
同じ作業を繰り返すならAutoLISP・マクロ・スクリプトで自動化できます。
ここにPURGE/AUDIT/OVERKILLのような整理コマンドで図面を軽く保ち、Autodesk Docs・Trace・Shareのような協業機能でチームと同期すれば、個人生産性は2〜3倍、チームワークフローは数倍改善されます。
> 基本ショートカット・編集コマンドは01-shortcuts.md、ブロック/Xref運用は03-blocks-xref.md参照。
1. AutoLISP — AutoCAD内蔵スクリプト
AutoLISPはAutoCADに1986年から搭載されたLISP派生言語です。拡張子.lsp(ソース)・.fas/.vlx(コンパイル)。
1.1 ロード方法
| 方法 | 説明 |
|---|---|
APPLOAD | ダイアログからファイル選択 |
(load "C:/my.lsp") | コマンドラインで直接ロード |
| Startup Suite | APPLOAD → Contents → 自動ロードリストに登録 |
acaddoc.lsp | 全図面が開かれる度に実行 |
acad.lsp | AutoCAD起動時に1回実行 |
ヒント: 個人・チームユーティリティはacaddoc.lspに集めず、Startup Suiteに個別登録する方がバージョン管理・デバッグに有利です。
1.2 基本構造 — Hello World
(defun c:HELLO ()
(princ "\nHello, AutoCAD!")
(princ)
)
defun: 関数定義。c:接頭辞: コマンドラインでHELLOとして呼び出せるようにする。princ: 出力関数。最後の(princ)は戻り値(nil)がコマンドラインに表示されないようにするための慣例的呼出し。
1.3 よく使う基本関数
| 関数 | 用途 |
|---|---|
getpoint | ユーザから点座標を入力 |
getdist | 距離入力(2点または数値) |
getreal / getint | 実数・整数入力 |
getstring | 文字列入力 |
getangle / getorient | 角度入力 |
entsel | 単一オブジェクト選択 |
ssget | 選択セット生成(フィルタ対応) |
command | AutoCAD内蔵コマンド呼出し |
entget / entmod | オブジェクトのDXFデータ読み書き |
assoc / cons / subst | 連想リスト操作 |
mapcar / foreach | リスト走査 |
1.4 実用ルーチン例 — 「選択オブジェクトの画層をロック」
(defun c:LL ( / ss i ent lay)
(princ "\nSelect objects to lock their layers: ")
(setq ss (ssget))
(if ss
(repeat (setq i (sslength ss))
(setq ent (ssname ss (setq i (1- i))))
(setq lay (cdr (assoc 8 (entget ent))))
(command "_.LAYER" "_LO" lay "")
)
)
(princ)
)
ロード後、コマンドラインにLLと打てば選択したオブジェクトの属する画層が全てロックされます。DXFコード8がエンティティの画層名を担っているのが核心です。
1.5 Visual LISP・COM・.NET
VLIDE: Visual LISP統合開発環境。デバッガ・コンソールを含む。(vl-load-com)以降(vla-*)関数群を通じてActiveXオブジェクトモデルを操作可能。より強力な自動化。- .NET(C#/VB):
NETLOADでDLLをロードして社内ツールを配布。プロ開発者領域。 - ObjectARX: C++ベース。サードパーティプラグインの標準開発環境。
ヒント: 一般ユーザが.NETまで学ぶ必要はありません。同僚が作った.lspを10個ほどacaddoc.lspにロードして使うだけで体感生産性は2倍になります。
2. コマンドマクロ(Command Macro)
CUIの「Macro」フィールドにコマンドシーケンスを文字列で書き、ツールバー・リボンボタン・キーボードショートカットにバインドします。
2.1 文法
| 記号 | 意味 |
|---|---|
^C^C | Esc 2回(進行中コマンドの中断) |
_ | アンダースコア。英語コマンド強制(多言語環境互換) |
. | ユーザ再定義を無視してデフォルトコマンド |
;または改行 | Enter |
\ | ユーザ入力待機 |
* | コマンド自体を繰返し |
2.2 例
現在画層をDIMSに切替後、直線寸法開始:
^C^C_-LAYER;S;DIMS;;_DIMLINEAR
会社標準ブロックTB-A3をPaper spaceの原点に挿入:
^C^C_-INSERT;TB-A3;0,0;1;1;0
ヒント: マクロの頭に*を付けるとコマンドが自動繰返しされます。連続挿入・連続注釈付けに有用。
3. SCRスクリプト & バッチ実行
3.1 SCRファイル
.scrはコマンドライン入力を1行ずつ記録した単純テキストファイルです。
ZOOM EXTENTS
PURGE ALL * N
AUDIT Y
QSAVE
SCRIPTコマンドでロード後実行するか、AutoCAD起動時/bオプションで指定します。
3.2 大量DWGの一括処理
- ScriptPro 2.0 (Autodesk無料): SCRとDWGリストを連結してバッチ実行。
- accoreconsole.exe (AutoCAD 2013+): GUIなしにバックグラウンドでDWGを開いてSCRを実行。数千個のDWGをサーバで夜間処理する時の定石。
ヒント: 定期メンテナンスSCR(AUDIT → -PURGE A * N → SAVE)を全DWGに週次実行すれば、ファイル肥大化・破損の兆候を予防できます。
注意: SCR内部でダイアログ(FILEDIA=1状態)が出ると自動化が止まります。スクリプト開始時にFILEDIA 0・CMDDIA 0で非ダイアログモードに切替、終了時には必ず復元します。
4. パフォーマンス最適化 — 図面を軽く保つ
4.1 PURGE
PURGE(PU)は使われていない定義(画層・ブロック・線種・文字スタイル・寸法スタイル・材質など)を除去します。
| オプション | 説明 |
|---|---|
| デフォルトダイアログ | チェック項目選択 |
-PURGE | コマンドライン自動化 |
-PURGE R | Registered Applications(Regapps)の整理 |
| Purge nested items | ブロック内のブロックまで |
| Purge zero-length geometry | ゼロ長の線・空文字 |
ヒント: 一度PURGEで消えない定義が残れば、別の定義内で依然参照されている状態です。-PURGE A * Nを2〜3回反復すれば大抵片付きます。
4.2 AUDIT / RECOVER / RECOVERALL
AUDIT: 現在図面の整合性検査。「Fix errors? Y」で自動修正。RECOVER: 破損したDWGを復旧モードで開く。通常OPENで開けないファイルに使用。RECOVERALL: 現在のDWGと全Xrefを統合復旧。
ヒント: DWGが開けない時の順序は(1) DWG TrueViewのようなビューア → (2) RECOVER → (3) .bakファイル復元 → (4) 自動保存.sv$(SAVEFILEPATH) → (5) 商用復旧サービス。
4.3 OVERKILL
OVERKILLは同じ位置に重なった重複オブジェクトや同一直線上の分断された線を1つにまとめます。
- 画層・色・線種フィルタ。
- Numeric fuzz(公差): わずかにずれたオブジェクトも1つとして扱う。
- Optimize polylines: 連続する直線セグメントを単純化。
- Combine co-linear objects: 同一線上オブジェクトのマージ。
ヒント: PDF→DWG変換・スキャントレース結果物は重なった線が数千個に達します。OVERKILLが整理の第1優先です。
4.4 システム変数の推奨値
| 変数 | デフォルト | 推奨 | 説明 |
|---|---|---|---|
SAVETIME | 10 | 5 | 自動保存周期(分) |
ISAVEBAK | 1 | 1 | .bakバックアップ生成 |
INDEXCTL | 0 | 3 | Xref部分ロード最適化 |
WHIPTHREAD | 1 | 3 | マルチスレッドディスプレイ |
VTENABLE | 15 | 0 | ズーム・パンアニメーション解除(速度↑) |
BACKGROUNDPLOT | 2 | 0〜2 | 大量Publishは0が安全 |
4.5 大型図面トラブル対応
| 症状 | 原因候補 | 対処 |
|---|---|---|
| 開くのが遅い | 多数のXref・巨大画像 | INDEXCTL↑、画像解像度↓ |
| 保存が遅い | Drawing History有効 | History off、-PURGE |
| 選択遅延 | 重複オブジェクト | OVERKILL |
| ハッチ遅い | 密なパターン | Scale↑、Solidへ代替、Draw Orderを後ろへ |
| REGENが長い | 過多オブジェクト | 不要画層をFreeze、VP Freeze |
| プロット中の停止 | BACKGROUNDPLOT | 値0、PDF品質調整 |
5. 協業 — Autodesk Docs・AutoCAD Web・Share・Trace
5.1 Autodesk Docs / Construction Cloud
- プロジェクト共用ファイルリポジトリ。DWG・PDFレビュー・Markup・発行管理が統合。
- AutoCADからOpen from Autodesk Docs / Save to Autodesk Docsで直接開いて保存。
- バージョン・権限・活動ログが自動記録。
ヒント: Windows共有・SharePointのような従来型リポジトリと比べて図面ロックとバージョン履歴が内蔵されているのが強みです。5人以上のチームなら移行を勧められます。
5.2 AutoCAD Web / Mobile
- ブラウザ・タブレットでDWGを開く・簡易修正・計測・注釈。
- 現場での素早い確認・マークアップに適切。フル編集はデスクトップで。
5.3 SHARE — リンク共有
SHAREは現在の図面をAutodesk Viewerで開けるリンクに変えます。受信者は別途インストールなしにURLだけで確認可能。デフォルトの有効期間は7日。
5.4 Drawing History / COMPARE / XCOMPARE
- Autodesk Docsなどのバージョン管理リポジトリにあるDWGはDrawing Historyからスライダで過去バージョンと比較できる。
COMPARE/XCOMPARE: 2つのDWGの差異を色でオーバーレイ。
5.5 Trace (2022+)
TRACEは元図面を修正せずに、半透明レイヤーに注釈・修正案を重ねる機能です。
ウェブ・モバイルで作ったTraceをデスクトップで呼び出して承認・反映できます。
Markup Assist: PDF・画像マークアップをAIで認識し、Traceレイヤーの編集可能オブジェクトへの変換を提案。
5.6 Markup Import (2023+, 2026改善)
MARKUPIMPORTは外部のPDF・PNG・JPGマークアップをTraceレイヤーとして挿入します。
2026からはAutodesk Docsと双方向同期され、Docsで修正したマークアップがAutoCAD側にも自動反映されます。
5.7 eTransmit — 外部配布の標準
ETRANSMITは現在のDWG + 全Xref + 画像 + SHX/TTFフォント + プロットスタイルを1つのZIPまたはフォルダにまとめます。
単純ファイルコピーは参照・フォントが抜けやすいので、外注・監理・入札提出には必ずeTransmitを使います。
5.8 Trusted DWG
Autodesk正規品・認証されたアプリケーションで生成・保存されたDWGを意味します。他CADで保存されたDWGを開くと「Not a Trusted DWG」警告が出ることがあります。
機能上大きな違いはありませんが、締結・互換事故予防のため重要な図面はAutoCADで一度開いて保存しておくことを推奨します。
6. 協業インフラ — 標準配布
- DWS + CHECKSTANDARDS: 会社・国家標準検査。
- Sheet Set: プロジェクトシートの一貫管理(詳細は
03-blocks-xref.md)。 - Block LibraryネットワークTool Palette: 全社員同一ブロック。
- CUIx Partial配布: 同一リボン・ショートカット・マクロ。
- Profile(.arg): OPTIONS設定をexport/importで同期。
ヒント: 新入社員セットアップを自動化するには、ログインスクリプトに(1) Profile import (2) Template経路マッピング (3) Startup Suiteへの社内LSP登録を含めます。
7. 実務チェックリスト
- よく使うLSPはStartup Suiteに登録されている
-
acaddoc.lspが肥大化しないよう管理されている - 社内標準マクロはPartial CUIxで配布される
- 夜間一括処理はaccoreconsole.exeベース
- 週次定期メンテナンスSCR(AUDIT→PURGE→SAVE)が実行される
-
SAVETIME=5,ISAVEBAK=1で自動保存・バックアップが有効 - 大型Xrefに
INDEXCTL=3が適用されている - OVERKILLがスキャン・PDF→DWG結果物に適用された
- 外部提出は
ETRANSMITでパッケージングされる - Autodesk Docsまたは同等のVCSがチームリポジトリ
- Markup Import・Traceワークフローがチームに共有された
- Profile
.argが新入社員セットアップに使われる