2014年3月7日 星期五

一行程式碼 (二)

Visual LISP 依附在 AutoCAD 裏另一個例子,看看下面這行程式碼

(SETVAR "CLAYER" "標註")

首先,它有一組括號,符合 LISP 的特徵

第二,第一個文字 SETVAR,基本上可以猜出它是設定變數的函數 (SET VARIABLE),你可以在 AutoCAD 文字指令中輸入SETVAR,馬上可以了解這是設定 AutoCAD 系統變數的命令,有興趣的話,如果再輸入 "?" "*" 便可以瀏覽到完整的系統變數 (很多,很多,很多 ...)

再來 "CLAYER",如果你眼睛夠犀利,就可以在一行行系統變數中看到這個字,很明顯的它的設定值是目前所使用的圖層名稱。

到此,真相大白,基本上這行程式碼就是設定 "標註" 成為預設所使用的圖層。

那又如何?

在使用 CAD 繪圖時,常常有某些圖元 (線,圓,文字 ...) 一定歸屬於某一特圖層,例如線性標註會設定在 "標註" 這個圖層上 (當然,叫做 "DIMENSION", "DIM" 也很常見),於是每次繪圖前,往往第一個動作不是去找標註的命令按鈕,而是先去變更圖層。

如果 (SETVAR "CLAYER" "標註") dimlinear 能夠同時執行,那麼自然可以提高效率 (或是說 $)。

怎麼作,方法如下
1. 滑鼠移到按鈕上方,按下右鍵。
2. 從浮動選單中往下找,直到最下面「自訂(C)...   
3. 在「自訂指令介面」對話盒中,找到此按鈕之命令 (左上方區域),選到"線性標註"這個之指令 (2006)
      (或是用選單中 工具(T) / 自定(C) / 介面(I))
4. 此時,可以看到 AutoCAD 所設定原始巨集,應該是^C^C_dimlinear   (^C^C 是強迫中斷執行中指令,避免在別的指令中執行 _dimlinear)
5. 編輯它成為 ^C^C(SETVAR "CLAYER" "標註");_dimlinear
   (注意,要有分號,不要有多餘的空格)
6. 確定後即可使用

當然,圖檔中必須要有 "標註" 這個名稱之圖層,否則會有錯誤訊息。

沒有留言:

張貼留言