bhf0114 发表于 2014-1-23 17:09:21

帮忙看看 为什么 (princ riist)一直输出是nil

(defun c:gbf (/ po lst_r nn i rt named bn1 rlist)
(setq po (getvar "ucsorg"))
(setq lst_r (ssget "X" (list (cons 0 "insert"))))
(setq nn (sslength lst_r))
(setq i 0)
(while (< i nn)
   (setq rt (entget (ssname lst_r i)))
   (setq named (cdr (assoc 2 rt)))
   (setq bn1 (substr named 1 4))
   (if (/= bn1 "PNO-" )
         (setq rlist (append rlist (list(car rt))))
   );end if
   (princ "\n riist:")(princ riist)
   (setq i (1+ i))
);end while i
); end

我是想把 块名为 ”PNO-“ 开头的块提取到一个表里面出来。

edata 发表于 2014-1-23 17:56:20

(setq rlist (append rlist (list(car rt))))
中的rlist与(princ riist)变量拼写错误。。

bhf0114 发表于 2014-1-24 09:09:40

edata 发表于 2014-1-23 17:56 static/image/common/back.gif
(setq rlist (append rlist (list(car rt))))
中的rlist与(princ riist)变量拼写错误。。

谢谢你,程序本身变量rlist没有错,那只是我发贴时打错了   

(defun c:gbf (/ po lst_r nn i rt named bn1 rlist)
(setq po (getvar "ucsorg"))
(setq lst_r (ssget "X" (list (cons 0 "insert"))))
(setq nn (sslength lst_r))
(setq i 0)
(while (< i nn)
   (setq rt (entget (ssname lst_r i)))
   (setq named (cdr (assoc 2 rt)))
   (setq bn1 (substr named 1 4))
   (if (/= bn1 "PNO-" )
         (setq rlist (append rlist (list(car rt))))
   );end if
   (princ "\n rlist:")(princ rlist)
   (setq i (1+ i))
);end while i
); end

bhf0114 发表于 2014-1-24 09:19:08

问题已经解决 晕死原来是 不知道什么时候把IF 里面多加了一个 /
页: [1]
查看完整版本: 帮忙看看 为什么 (princ riist)一直输出是nil