發表文章

目前顯示的是有「函數」標籤的文章

AutoCAD LISP 分享K函數庫

圖片
 理念     在學習或是開發AutoCAD LISP的時候,經常因為需要的功能沒有在內部函數中,而需要自行寫出相對的功能,在重複使用相同功能下,則自行定義成函數會方便重複使用,但同時在初期學習或是開發階段,這個過程會花上許多時間,所以我嘗試分享自己寫的函數。     寫成函數的好處: 1. 方便重複利用,可以減少寫得程式碼 2. 解讀程式碼方便,因為對應函數是對應功能,進而快速理解程式碼是做什麼 下載:(內含有說明) K函數庫V1.3.2 K函數庫V1.3.1 (修正部分函數沒有載入) K函數庫V1.3 K函數庫V1.2 AutoCAD 如何載入LISP檔案 範例: ;;;輸出點座標到TXT檔案 ;;;作者:夜源 ;;;時間:2024/10/20 ;;;需載入K函數庫 (defun C:output-point-coordinates ( / ss file)     (princ "\n 選取點物件:")     (cond ((not (setq ss (ssget '((0 . "POINT"))))) (princ "\n 沒有選取點物件") );_ ((not(setq file (getfiled "輸出資料到" "" "txt" 1))) (princ "\n 沒有選擇儲存檔案。") );_ (T (k:file_write      file      (mapcar '(lambda (x)       (K:list-str-combine   (mapcar 'rtos (cdr (assoc 10 (entget x))))   ",")       ) (K:ss->list ss))) );_T );_cond   (princ)   );_end ;;;載入TXT檔案的點座標到圖面繪製點 ;;;作者:夜源 ;;;時間:2024/10/20 ;;;需載入K函數庫 (defun...

AutoCAD LISP 命名空間通信函數參考(AutoLISP)

函數 描述 (vl-bb-ref  'variable ) 從 blackboard 命名空間返回變量的值 (vl-bb-set  'variable value ) 設置黑板命名空間中變量的值 (vl-load-all  "filename" ) 將文件加載到所有打開的 AutoCAD 文檔中,並加載到當前 AutoCAD 會話期間隨後打開的任何文檔中 (vl-propagate  'variable ) 將變量的值複製到所有打開的 AutoCAD 文檔中,並複製到當前 AutoCAD 會話期間隨後打開的任何文檔中 相關連結 應用程序處理函數參考(AutoLISP) 算術函數參考(AutoLISP) 等式和條件函數參考(AutoLISP) 錯誤處理函數參考(AutoLISP) 功能處理函數參考(AutoLISP) 列表操作函數參考(AutoLISP) 字串函數查找表(AutoLISP) 符號處理函數參考(AutoLISP) AutoCAD LISP 函數參考  

AutoCAD LISP VLX命名空間函數參考(AutoLISP)

 下面列出的VLX命名空間函數適用於單獨命名空間的VLX應用程序。這些函數允許從文檔命名空間訪問單獨的命名空間VLX函數,啟用相關文檔命名空間中的變量的檢索和更新,並為單獨的命名空間VLX函數提供錯誤處理例程。 函數 描述 (vl-arx-import  [ function | application] ) 將 ADS-DEFUN 函數導入單獨的命名空間 VLX (vl-doc-export  'function ) 使加載在 VLX 名稱空間中的函數可用於當前文檔 (vl-doc-import  ['function | application] ) 導入先前從另一個單獨命名空間 VLX 導出的函數 (vl-doc-ref  symbol ) 從關聯文檔的命名空間中檢索變量的值 (vl-doc-set  symbol value ) 設置關聯文檔命名空間中變量的值 (vl-exit-with-error  "msg" ) 將控制從 VLX 錯誤處理程序傳遞給  * 錯誤 *  相關文檔命名空間的功能 (vl-exit-with-value  value ) 返回調用 VLX 的文檔命名空間的值 (vl-list-exported-functions  [ “ appname ” ] ) 列出指定應用程序導出的所有函數,如果未指定應用程序,則列出所有導出函數 (vl-list-loaded-vlx) 返回與當前文檔關聯的所有單獨命名空間 VLX 文件的列表 (vl-unload-vlx  "appname" ) 卸載在其自己的命名空間中加載的 VLX (單獨的命名空間 VLX ) ...

AutoCAD LISP 反應器功能參考(AutoLISP / ActiveX)

 注意: AutoLISP中的ActiveX支持僅限於Windows。 反應器功能定義,查詢和刪除反應堆和反應堆屬性。在使用這些功能之前,必須通過發出以下函數來加載AutoLISP reactor支持: (vl-load-com) 該 (vl-load-com) 函數初始化reactor支持和許多其他AutoLISP擴展。 函數 描述 (vl-load-com) 加載 AutoLISP 反應器支持功能和其他 AutoLISP 擴展 (vlr-acdb-reactor  data callbacks ) 構造數據庫(全局) reactor 對象 (vlr-add  obj ) 啟用已禁用的 reactor 對象 (vlr-added-p  obj ) 測試以確定是否啟用了 reactor 對象 (vlr-beep-reaction  [args] ) 發出嗶嗶聲 (vlr-command-reactor  data callbacks ) 構造一個通知命令事件的編輯器反應器 (vlr-current-reaction-name) 如果從 reactor 的回調中調用,則返回當前事件的名稱(符號) (vlr-data  obj ) 返回與 reactor 相關的特定於應用程序的數據 (vlr-data-set  obj data ) 覆蓋與反應器關聯的特定於應用程序的數據 (vlr-deepclone-reactor  obj data ) 構造一個編輯器反應器對象,該對象提供深度克隆事件的通知 (vlr-docmanager-reactor  obj data ) ...

AutoCAD LISP 繪圖對象函數參考(AutoLISP / ActiveX)

 注意: AutoLISP中的ActiveX支持僅限於Windows。 下表提供了用於處理圖形對象的AutoLISP函數的摘要說明。 函數 描述 (vlax-create-object  "prog-id" ) 創建 ActiveX 對象的新實例 (vlax-dump-object  obj ) 列出對象的方法和屬性 (vlax-erased-p  obj) 確定對像是否已被刪除 (vlax-get-acad-object) 檢索當前 AutoCAD 會話的頂級 AutoCAD 應用程序對象 (vlax-get-object  "prog-id" ) 返回 ActiveX 對象的運行實例 (vlax-get-or-create-object  "prog-id" ) 返回 ActiveX 對象的運行實例(如果存在),否則啟動該對象的新實例 (vlax-import-type-library :tlb-filename  filename  [ :methods-prefix  mprefix :properties-prefix  pprefix  :constants-prefix  cprefix ]) 從類型庫導入信息 (vlax-method-applicable-p  obj method ) 確定對像是否支持特定方法 (vlax-object-released-p  obj ) 確定是否已釋放對象 (vlax-read-enabled-p  obj ) 確定是否可以讀取對象 (vlax-release-obje...

AutoCAD LISP 字典函數參考(AutoLISP / ActiveX)

 注意: AutoLISP中的ActiveX支持僅限於Windows。 下表提供了AutoLISP字典函數的摘要說明。 函數 描述 (vlax-ldata-delete  dict key ) 從繪圖字典中刪除 AutoLISP 數據 (vlax-ldata-get  dict key  [  default-data ]) 從繪圖字典中檢索 AutoLISP 數據 (vlax-ldata-list  dict ) 列出繪圖字典中的 AutoLISP 數據 (vlax-ldata-put  dict key data ) 將 AutoLISP 數據存儲在繪圖字典中 (vlax-ldata-test  data ) 確定是否可以通過會話邊界保存數據 相關連結 應用程序處理函數參考(AutoLISP) 算術函數參考(AutoLISP) 等式和條件函數參考(AutoLISP) 錯誤處理函數參考(AutoLISP) 功能處理函數參考(AutoLISP) 列表操作函數參考(AutoLISP) 字串函數查找表(AutoLISP) 符號處理函數參考(AutoLISP) AutoCAD LISP 函數參考