明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2092|回复: 3

请教块属性提取中的循环问题

[复制链接]
发表于 2012-5-28 17:18:27 | 显示全部楼层 |阅读模式
本帖最后由 cindy_fisher 于 2012-5-28 17:20 编辑

图中有一些属性块,这些属性块有个共同的属性标记是line_no,我想做的就是把每个属性块中的line_no标签的属性提取出来,这些属性的块首先是块名字不一样,其次是有的块entnext一次就可以得到,有的需要entnext好几次才能得到想要的属性,尝试编写了如下程序,发现死循环了,中间改了几次都在循环的地方出错,实在没招了,发上来求达人支招,谢谢。
  1. (defun C:fun ()

  2.   (command "osmode" "0")
  3.   (command "zoom" "all")
  4.   (setq  ffn (getfiled "Export the specify texts"
  5.           "D:/perfiles/LISP/homecom/"
  6.           "txt"
  7.           1
  8.       )
  9.   )
  10.   (setq ff (open ffn "a"))

  11.   (setq ss_b (ssget "x" '((0 . "insert") (66 . 1))))
  12.   (setq a 0)
  13.   (repeat (sslength ss_b)
  14.     (setq en_b (entnext (ssname ss_b a)))
  15.     (setq ctrl t)
  16.     (if  (= (cdr (assoc 0 (entget en_b))) "attrib")
  17.       (progn
  18.   (while ctrl
  19.     (setq tag (cdr (assoc 2 (entget en_b))))
  20.     (if (= (substr tag 1 4) "LINE")
  21.       (progn
  22.         (setq btxt (cdr (assoc 1 (entget en_b))))
  23.         (setq ctrl nil)
  24.         (setq p1 '(31.5 1.0 0))
  25.         (setq p2 '(33.1250 0.5625 0))
  26.         (setq ss_dn (ssget "w" p1 p2 '((0 . "text,mtext"))))
  27.         (setq dn (cdr (assoc 1 (entget (ssname ss_dn 0)))))
  28. ;;;结束取得文件名
  29.         (write-line (strcat dn "[[" btxt) ff)
  30.       )
  31.       (setq en_b (entnext en_b))
  32.     )
  33.   )
  34.   (setq ctrl t)
  35.       )
  36.     )
  37.     (setq a (+ 1 a))
  38.   )
  39.   (close ff)
  40.   (princ)
  41. )

复制代码

发表于 2012-5-28 23:08:04 | 显示全部楼层
循环结束条件是:
(= (cdr (assoc 0 (entget en_b)))  "SEQEND")
发表于 2012-6-1 18:54:57 来自手机 | 显示全部楼层
学习学习……
发表于 2012-6-3 19:16:03 | 显示全部楼层
不错不错,拜读了,顶!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-23 04:39 , Processed in 0.197194 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表