lyqiezi 发表于 2014-4-17 10:25:20

ssget 的list格式问题

(defun c:tt()
(princ "\n选择源文字")
(setq ss1 (ssget '((0 . "TEXT"))))
(princ "\n选择目标文字")
(setq ss2 (ssget '((0 . "TEXT"))))
(setq i 0)
(if (and ss1 ss2)
    (while (< i (sslength ss1))
      (progn
      (setq text1 (cdr (assoc 1 (entget (ssname ss1 i)))))
      (command "_.CHPROP" (ssname ss1 i) "" "c" (1+ i) "")
      (command "select" ss2 "")
      (if (setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))
          (command "_.CHPROP" ss "" "c" (1+ i) "")
         )
      )
    (setq i (1+ i))
    )
   )
(prin1)
)

lyqiezi 发表于 2014-4-17 10:27:41

怎么只有代码,没有问题……
这个是根据品茗的要求写的一段代码
(if (setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))
这一句,我不放(0 . "text") 的时候,无法继续,谁给解答一下??

ll_j 发表于 2014-4-17 10:46:25

是“(ssget "p" (list (cons 1 text1)))”么?不会少写了一层list吧?

自贡黄明儒 发表于 2014-4-17 15:20:53

lyqiezi 发表于 2014-4-17 10:27 static/image/common/back.gif
怎么只有代码,没有问题……
这个是根据品茗的要求写的一段代码
(if (setq ss (ssget "p" (list '(0 . "t ...਍

试了一下,应该可以,可能是你前面ss为nil

lyqiezi 发表于 2014-4-17 15:42:49

(setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))这样是可以执行的
(setq ss (ssget "p" (list '(cons 1 text1)))) 这样无法执行

ll_j 发表于 2014-4-17 15:50:03

lyqiezi 发表于 2014-4-17 15:42 static/image/common/back.gif
(setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))这样是可以执行的
(setq ss (ssget "p" (list ...

(cons 1 text1)前面多了一个单引号。

lyqiezi 发表于 2014-4-17 15:58:00

这个单引号在什么地方用啊?有些程序看到只用单引号,有些又有list 又有单引号

ll_j 发表于 2014-4-17 16:23:37

lyqiezi 发表于 2014-4-17 15:58 static/image/common/back.gif
这个单引号在什么地方用啊?有些程序看到只用单引号,有些又有list 又有单引号

单引号表示后面的表达式不处理,如'(1 . "text"),后面有需要“运算”的就不能加单引号,如(cons 1 txt)。

lyqiezi 发表于 2014-4-17 17:31:55

谢谢,我曾经以为有list,就不用单引号
页: [1]
查看完整版本: ssget 的list格式问题