AutoCAD LISP 分享K函數庫
理念
在學習或是開發AutoCAD LISP的時候,經常因為需要的功能沒有在內部函數中,而需要自行寫出相對的功能,在重複使用相同功能下,則自行定義成函數會方便重複使用,但同時在初期學習或是開發階段,這個過程會花上許多時間,所以我嘗試分享自己寫的函數。
寫成函數的好處:
1. 方便重複利用,可以減少寫得程式碼
2. 解讀程式碼方便,因為對應函數是對應功能,進而快速理解程式碼是做什麼
下載:
範例:
;;;輸出點座標到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 C:load-point-coordinates ( / file lst)
(cond
((not(setq file (getfiled "選取載入點座標TXT檔" "" "txt" 0)))
(princ "\n 沒有選取載入TXT檔。")
);_
(T
(setq lst (k:file_read file))
(foreach x lst
(command "point" x)
);_foreach
);_T
);_cond
(princ)
);_end
留言
張貼留言