AutoCAD 原生無直接畫箭頭指令,透過載入 LISP 程式即可實現 AR 指令:輸入箭頭長度 → 點選箭頭尖端 → 選取參考線上任意點 → 自動繪製指向該線的箭頭多段線。
ar.lsp(記事本存檔,編碼 ANSI/UTF-8)。ar.lsp 至 CAD 安裝目錄 \Support 資料夾。acad2000doc.lsp(或對應版本自動載入檔),末尾新增一行:(load "ar.lsp")(注意英文引號)。AR 即可使用。(defun ureal (bit kwd msg def / inp)
(if def
(setq msg (strcat "\n" msg "<" (rtos def) ">: "))
(progn
(setq bit (* 2 (fix (/ bit 2))))
(if (= " " (substr msg (strlen msg) 1))
(setq msg (strcat "\n" (substr msg 1 (1- (strlen msg))) ": "))
(setq msg (strcat "\n" msg ": "))
)
)
)
(initget bit kwd)
(setq inp (getreal msg))
(if inp inp def)
)
(defun upoint (bit kwd msg def bpt / inp)
(if def
(setq pts (strcat
(rtos (car def)) "," (rtos (cadr def))
(if (and (caddr def) (= 0 (getvar "FLATLAND")))
(strcat "," (rtos (caddr def))) "")
)
msg (strcat "\n" msg "<" pts ">: ")
bit (* 2 (fix (/ bit 2))))
(if (= " " (substr msg (strlen msg) 1))
(setq msg (strcat "\n" (substr msg 1 (1- (strlen msg))) ": "))
(setq msg (strcat "\n" msg ": "))
)
(initget bit kwd)
(setq inp (if bpt (getpoint msg bpt) (getpoint msg)))
(if inp inp def)
)
(setq cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(defun C:AR ( / #dwgsc w v pt1 pt2 pt3)
(if (= arscl nil) (setq arscl 0.1875))
(setq #dwgsc (getvar "DIMSCALE")
w (getvar "PLINEWID")
v (getvar "OSMODE")
L (getvar "CLAYER"))
(setq arscl (ureal 7 "" "請輸入箭頭長度" arscl))
(setvar "OSMODE" 1)
(setq pt1 (upoint 1 "" "指定箭頭頂點" nil nil))
(setvar "OSMODE" 512)
(setq PT (entsel "\n選擇直線上要畫箭頭一端的任意一點"))
(setq PT2 (cadr PT))
(setq ED (entget (car PT)))
(setq PT3 (polar pt1 (angle pt1 PT2) (* #dwgsc arscl)))
(command "PLINE" pt1 "w" "0" (* #dwgsc (/ arscl 3)) PT3 "")
(setvar "OSMODE" v)
(setvar "CLAYER" L)
(setvar "plinewid" w)
(princ)
)
(setvar "cmdecho" cm)
(princ)
在文字編輯器(MTEXT/DTEXT)中輸入以下代碼即可顯示對應符號:
| 代碼 | 字符 | 代碼 | 字符 |
|---|---|---|---|
| %%130 | α | %%141 | Ⅰ |
| %%131 | β | %%142 | Ⅱ |
| %%132 | δ | %%143 | Ⅲ |
| %%133 | φ | %%144 | Ⅳ |
| %%134 | γ | %%145 | Ⅴ |
| %%135 | η | %%146 | Ⅵ |
| %%136 | π | %%147 | Ⅶ |
| %%168 | 上標開始 | %%170 | 下標開始 |
| %%169 | 上標結束 | %%171 | 下標結束 |
更多符號(度數 %%d、直徑 %%c、正負號 %%p 等)請查閱線上說明。