2013年12月4日 星期三

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

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


(defun c:ct()
(while (setq entdata (entget (car (entsel "\n請選取欲計算的文字圖元:"))))
(setq etype (cdr(assoc 0 entdata)))
(if (= etype "TEXT")(progn
(setq textstr (cdr (assoc 1 entdata)))
(setq newstr (strcat textstr "=" (rtos (cal textstr) 2 2)))  ;;第二個2 是小數位
(entmod (subst (cons 1 newstr) (assoc 1 entdata) entdata))
))
)
)

2 則留言:

Unknown 提到...

感謝你的分享
原本安裝已可使用,
但在第2次重新啟動CAD且LISP安裝正常下,
程序到請選取欲計算的文字圖元後

會一直出現錯誤字串如下

; 錯誤: no function definition: CAL

請問是什麼問題呢?

NICK 提到...

autocad 沒有預設cal函數是啟動的
要先手動執行一次 cal 指令,才會有 cal 函數
如下:
指令: (cal "1+1")
; 錯誤: no function definition: CAL <> 表示式:
>> 表示式: *取消*

指令: (cal "1+1") <<就有cal 函數
2