 - 求cond用法,如以下程序,用监视窗口可以得到 (cdr (assoc 1 (entget (ssname ssfunc 1))))的值,输入txt11 就变成nil,是不是cond不支持很多句子。以下程序想实现选中的文本组合起来列在一行,因为选中的文本有三个情况,一个文本,两个和三个。谢谢。
- (defun C:kl ()
- (setq p1 (getpoint))
- (setq p2 (getpoint))
- (setq ssfunc (ssget "w"
- p1
- p2
- '((0 . "text,mtext")
- (-4 . "<not")
- (1 . "*[0-9]*")
- (-4 . "not>")
- )
- )
- )
- (setq a (sslength ssfunc))
- (setq b(type a))
- ;;below-test
- (cond
-
- (= (sslength ssfunc) 2)
- ((setq txt11 (cdr (assoc 1 (entget (ssname ssfunc 1)))))
- (setq txt12 (cdr (assoc 1 (entget (ssname ssfunc 2)))))
- (setq txt1 (strcat txt11 "]" txt12))
- )
- (= (sslength ssfunc) 3)
- ((setq txt11 (cdr (assoc 1 (entget (ssname ssfunc 1)))))
- (setq txt12 (cdr (assoc 1 (entget (ssname ssfunc 2)))))
- (setq txt13 (cdr (assoc 1 (entget (ssname ssfunc 3)))))
- (setq txt1 (strcat txt11 "]" txt12 "]" txt13))
- )
- (t
- (setq txt1 (cdr (assoc 1 (entget (ssname ssfunc 1))))))
- )
- (print txt1)
- )
|