本帖最后由 作者 于 2010-10-2 11:29:58 编辑
am程序能够算加和乘,没有你说的问题啊?KOC程序块去空格功能优化了下,单选两个带空格的文本加乘, 可供参考
(defun tt1 () (setq list1 '()) (prompt "\n pick one text") (setq ss (ssget)) (setq ssn (ssname ss 0)) (setq ent (entget ssn)) (setq ent1-ass (assoc 1 ent)) (setq content (cdr ent1-ass )) (setq long (strlen content)) (setq i 1) (repeat long (setq key1 (ascii (substr content i 1 ))) (if (/= key1 32) (progn (setq content1 (substr content i 1)) (setq list1 (cons content1 list1)) ) ) (setq i (+ i 1)) );while (setq list1 (reverse list1)) (princ list1) (setq i 0) (setq str1 "") (repeat (length list1) (setq str1 (strcat str1 (nth i list1) )) (setq i (1+ i)) ) (setq list1 (reverse list1)) (princ list1) (setq str1 (atof str1)) ) (defun tt2() (setq list1 '()) (prompt "\n pick one text") (setq ss (ssget)) (setq ssn (ssname ss 0)) (setq ent (entget ssn)) (setq ent1-ass (assoc 1 ent)) (setq content (cdr ent1-ass )) (setq long (strlen content)) (setq i 1) (repeat long (setq key1 (ascii (substr content i 1 ))) (if (/= key1 32) (progn (setq content1 (substr content i 1)) (setq list1 (cons content1 list1)) ) ) (setq i (+ i 1)) );while (setq list1 (reverse list1)) (princ list1) (setq i 0) (setq str2 "") (repeat (length list1) (setq str2 (strcat str2 (nth i list1) )) (setq i (1+ i)) ) (setq str2 (atof str2)) )
;两个文本相+ (defun c:cmm () (tt1) (tt2) (setq str3 (+ str1 str2)) (setq str3 (rtos str3 2 3)) (command "text" pause "2.5" "0" str3 "") )
;两个文本相x
(defun c:ccm () (tt1) (tt2) (setq str3 (* str1 str2)) (setq str3 (rtos str3 2 3)) (command "text" pause "2.5" "0" str3 "") ) |