JwユーザーがAutoCADを左手だけで爆速操作する設定を公開しました
はじめに
鉄骨屋をやっている元設備屋です。
メインのCADはAutoCADですが、もともとJw_cadユーザーだったので「マウスとアイコンで操作するAutoCAD」にずっと違和感がありました。
そのずっと以前はCADAMを使っていました。jwはかなりCADAM寄りと思います。設備ではTfasを使っていました。
Jw_cadは左手キーボードだけでほぼ全操作が完結します。あの速度感をAutoCADで再現したくて、ショートカット設定を育ててきました。今回GitHubに公開したので、設計思想とあわせて紹介します。
設計思想
打鍵数 = 使用頻度の逆数
最もシンプルなルールです。
よく使うコマンドほど少ない打鍵数に配置します。
| キー | コマンド | 考え方 |
|---|---|---|
| E | CIRCLE | 円は最多用 |
| EE | ARC | 円弧は次点 |
| EEE | ELLIPSE | 楕円はたまに |
| G | LINE | 直線は最多用 |
| GG | PLINE | ポリラインは次点 |
| D | ERASE | 消去は最多用 |
| T | TRIM | トリムは最多用 |
| TT | EXTEND | 延長は次点 |
同じキーを繰り返し打つと上位コマンドに移行する、Jw的な多段操作です。
左手で完結する配置
OやLなど右手側のキーは避けています。
たとえばオフセットをFに置いているのは、O(OFFSET)が右手になるからです。JWの複線。移動もMではなくVにしています(MはJwでも遠い)。
Spaceキー = コマンド繰り返し
AutoCADではEnterとSpaceが同じ動作をします。親指で押せるSpaceを意識的に使うと、Jwの「右クリックで直前操作繰り返し」に近い感覚になります。
キー配置の紹介
作図系
G = LINE 直線
GG = PLINE ポリライン
GGG = GROUP グループ
GC = CENTERLINE 中心線
GX = XLINE 無限線
E = CIRCLE 円
EE = ARC 円弧
EEE = ELLIPSE 楕円
H = HATCH ハッチング
HH = HATCHEDIT ハッチング編集
編集系
D = ERASE 消去
T = TRIM トリム
TT = EXTEND 延長
F = OFFSET オフセット
FC = FC(LISP) オフセット→現在画層
C = COPY コピー
V = MOVE 移動
X = MIRROR 鏡像
R = FILLET フィレット
CC = CHAMFER 面取り
Q = U 元に戻す
画層系(Rキー統一)
画層操作を全部Rキーに集約しています。
RA = LAYER 画層管理
RC = LAYCUR 現在の画層に変更
RG = LAYON 画層ON
RH = LAYOFF 画層OFF
RS = LAYISO 画層アイソレート
RSS = LAYUNISO アイソレート解除
RV = AI_MOLC オブジェクトの画層を現在に
RW = LAYMCH 画層一致
RWW = LAYWALK 画層ウォーク
寸法系(Sキー統一)
寸法コマンドを全部Sキー(Sunpou)に集約しています。
S = DIM 寸法(自動判定)
SS = DIMLINEAR 水平/垂直寸法
SA = DIMALIGNED 平行寸法
SC = DIMCONTINUE 連続寸法
SR = DIMRADIUS 半径寸法
SD = DIMDIAMETER 直径寸法
SG = DIMANGULAR 角度寸法
数字キー = トグル系
1 = 直交モード ON/OFF
2 = モデル/ペーパー切替
3 = グリッド ON/OFF
4 = スナップ ON/OFF
5 = 極トラッキング ON/OFF
LISPで痒いところに手を届かせる
W = 属性一括取得
Jwの「属性取得」相当の最重要LISPです。オブジェクトをクリックすると画層・色・線種・文字スタイル・寸法スタイル・ハッチスケールを一括で現在の設定に取り込みます。
(defun c:W (/ e ed ds)
(setq e (car (entsel "\n属性取得: ")))
(if e
(progn
(setq ed (entget e))
(if (assoc 8 ed) (setvar "CLAYER" (cdr (assoc 8 ed))))
(if (assoc 62 ed) (command "_.-COLOR" (itoa (cdr (assoc 62 ed)))) (command "_.-COLOR" "_BYLAYER"))
(if (assoc 6 ed) (setvar "CELTYPE" (cdr (assoc 6 ed))))
...
)
)
)
FC = オフセット→現在画層
「オフセットしたものを今の画層に」という需要が高いのに標準コマンドがない。OFFSETLAYERMODEを一時的に切り替えて元に戻すLISPです。
(defun c:FC (/ prev)
(setq prev (getvar "OFFSETLAYERMODE"))
(setvar "OFFSETLAYERMODE" 1)
(command "OFFSET")
(setvar "OFFSETLAYERMODE" prev)
(princ)
)
F=オフセット、FC=現在画層オフセットと2つが明確に分かれて、左手で完結します。
AC / AD / AS = 文字装飾系
AC = 丸囲み文字
AD = 下線付き文字
AS = 角囲み文字
DS100 / DS50 / DS30 = 縮尺一発変更
(defun c:DS100 ()
(setvar "DIMSCALE" 100)
(setvar "TEXTSIZE" 250)
(command "._DIMSTYLE" "_R" "MY-DIM")
(princ "\n【縮尺 1:100】") (princ))
縮尺変更のたびにDIMSCALEとTEXTSIZEを手動で変えていた手間がなくなります。
導入方法
GitHubからダウンロードしてください。
https://github.com/Hideaaaa/autocad-jw-shortcuts
acad.pgpを所定のフォルダにコピーしてREINITで再読み込み、acadoc.lspをサポートパスに追加するだけです。詳細はREADMEに記載しています。
おわりに
この設定はChappyとGeminiと Claude に手伝ってもらいながら育ててきました。
Jwから移行してAutoCADが「遅い」と感じている方の参考になれば嬉しいです。Mac対応LISPの情報やキー配置の改善提案など、IssueやPull Requestを歓迎しています。
EOF
echo "Done"