AUTOLISP程序設計技巧

   時間:2014-03-06 13:53:04
AUTOLISP程序設計技巧簡介
俗話說"熟能生巧",在長期從事AUTOLISP程序……
AUTOLISP程序設計技巧正文

   俗話說"熟能生巧",在長期從事AUTOLISP程序設計的實踐中,我總結出(當然也參考了其他朋友的經驗)了部分編程技巧,僅供大家參考!
1)載入程序之前應先判斷文件是否已經被載入
在調用用戶自己定義的函數之前,應先將包含該函數的文件調入內存(LOAD "文件").但如果每次調用前都載入該程序,則會浪費很多時間.因此判別文件是否已經調入內存,則是非常重要的,這種用法在菜單文件十分普遍
..
[RECTAN]( if (not rectan) (load "les2"));(rectan);
..
在文件內同樣可以實現同樣的檢測
2)抑制函數運行后返回nil
在一個Autolisp函數運行結束后,它常會在命令行上返回一個nil,令人遺憾。其實只要我們問在該函數的最後一行加上(PRINC)語句后,即可抑制nil的產生。
當然如果對需要一個結果的函數,則不可採用此法。
3)幾個自動執行函數
a)載入自動執行函數
定義
(defun s::startup()
...
)
一旦該函數在acad.lsp函數中定義,在autocad啟動時,就會自動載入該函數.
b)存檔自動執行函數
定義
(defun S::save()
....
)
該函數與(s::startup)相似,在存儲文件時將會被自動執行.例如:在保存文件時,對被保存文件生成備份文件等,就可能需要此功能文件
c)退出時自動執行文件
定義
(defun s::exit()
...
)
4)怎樣判斷兩個實數相等
對於計算出來的實數,即使真的相等,但對計算機來說,其往往不是絕對相等(如2.00 與2.000就不等).因此判斷其相等就需要採用差值方法
(equal expr1 expr2 [FUZZ])
其中任選項FUZZ指定表達式EXPR1 EXPR2 的最大允許差值.即如果實際差值小於FUZZ,則判斷結果為真,反之為假.
(if (equal a b 0.001)
(prompt "These numbers are equal")
(prompt "These numbers are not equal")
)
5)取系統的環境變數
對編製自己的系統來說,最好將自己的所有編製程序集中在自己獨立的目錄下,如\acad\lisp等.然後在將該目錄添加到ACAD環境中.
在自己編製的程序中,為了確保所要調用函數或文件在AUTOCAD的搜索路徑下,就需要判斷自己編製的程序目錄是否在ACAD環境內.此時就要用(getnev)函數
如(setq nev (getenv "acad"))
其將返回ACAD系統環境,如"C:\\ACAD\\SUPPORT;C:\\ACAD\\FONTS;C:\\ACAD\\LISP"

 

 

 

[AUTOLISP程序設計技巧],你可能也喜歡

  • 室內設計製圖基礎
  • 花鍵設計
  • 機械機構設計
  • 齒輪機構設計
  • autocad機械設計製圖
  • autocad繪圖技巧
  • autocad標註技巧
  • autocad燈光技巧
  • autocad解題技巧
  • autocad拆圖技巧
  • autolisp教學
  • autolisp範例
  • autolisp指令
  • autolisp程式
  • autolisp dcl基礎篇
  • 工序流程圖
  • 程式啟動順序
  • 課程設計步驟的順序
  • 模擬市民3主程式序號
  • 汽車生產流程順序
Bookmark the permalink ,來源:
One thought on “AUTOLISP程序設計技巧