AutoCAD LISP 分享K函數庫

 理念

    在學習或是開發AutoCAD LISP的時候,經常因為需要的功能沒有在內部函數中,而需要自行寫出相對的功能,在重複使用相同功能下,則自行定義成函數會方便重複使用,但同時在初期學習或是開發階段,這個過程會花上許多時間,所以我嘗試分享自己寫的函數。

    寫成函數的好處:

1. 方便重複利用,可以減少寫得程式碼

2. 解讀程式碼方便,因為對應函數是對應功能,進而快速理解程式碼是做什麼


下載:

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 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




留言

這個網誌中的熱門文章

AutoCAD 填充線(剖面線)樣式簡易製作產生器

AutoCAD 如何自訂線型教學

AutoCAD 動態圖塊-如何在所有可見性顯示或隱藏