顯示具有 LISP小工具 標籤的文章。 顯示所有文章
顯示具有 LISP小工具 標籤的文章。 顯示所有文章

2017年6月12日 星期一

文字字串轉串列方法

(setq string "10 20 30")
(setq str2list (read (strcat "(" string ")")))

strlist 變成 (10 20 30) 串列

2015年6月22日 星期一

外部命令~lisp呼叫外部 exe 執行檔,等待程式的方式!

因為lisp在開發上的限制,有時會藉由其它開發工具結合使用!

此時可應用 zwcad.pgp  或 acad.pgp

在裡面有些範例
DEL,       DEL,            8,要刪除的檔: ,
DIR,       DIR,            8,指定檔: ,
EDIT,      START EDIT,     9,要編輯的檔: ,

2013年12月4日 星期三

文字計算式--從文字內容直接計算成果,並改變其內容

有時CAD圖面上有公式內容,想算出成果,再填上答案!
那就可以用這支程式了!
※限定單行文字使用

2013年7月30日 星期二

想知道您的CAD軟體,對LISP程式的執行效率嗎?

CAD產品很多種,也都能跑跑LISP,但誰對LISP的支援性好,速度快~
提供一個LISP程式,運算測試誰的速度快吧!

AUTOCAD 2014 約 5.28秒
ZWCAD+ 2012版 5.44秒

發現ZWCAD+ 2012 與AUTOCAD 2014 滿接近的,效能不錯

2013年6月27日 星期四

常用公式大全!

將常用的數學公式,轉成LISP用的小函數,節省開發的時間喔!

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;由弧的兩點及凸出值求得交點
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun ArcConner ( p1xy p2xy p1d / )
(setq ptc (CenPtByBulge p1xy p2xy p1d))
  (setq p1x (polar p1xy  (+ (angle ptc p1xy)(* 0.5 pi)) 1.0))
  (setq p2x (polar p2xy  (+ (angle ptc p2xy)(* 0.5 pi)) 1.0))
  (inters p1xy p1x p2xy p2x nil)
)

將相同圖塊的z值改為絕對值

;;; 功用:將相同圖塊的z值改為絕對值
;;; 指令:RIB
(defun c:rib(/ olde edata ename ss i sslen e ent ez z)
(setq olde (car(entsel "\n請選欲重新整理的圖塊:"))
 edata (entget olde)
 ename (cdr(assoc 2 edata))
 ss (ssget "x" (list (cons 0 "INSERT")(cons 2 ename)))
 i 0
)

2013年6月26日 星期三

LISP--缺字體時,自動以 TXT+CHINESET 替換找不到字形的字體

;替換無效字型程式:
(defun C:TFIX()
; ******************************************************************************
; 下一列為使用者要保留的有效的 TrueType 字型檔
(setq valid_ttfs (list "細明體" "新細明體" "標楷體" "@細明體" "@新細明體" "@標楷體" ))
(setq def_shx "txt.shx" )
(setq def_big "chineset.shx" )
; ******************************************************************************