- 积分
- 3102
- 明经币
- 个
- 注册时间
- 2017-4-9
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
想做个批量封闭区域文字输出到TXT的程序,每个封闭区域内有编号,面积(亩),户主姓名等.要求每个封闭区域内的文字输出到txt为一行
单个封闭区域程序没大问题
(defun c:tt (/ en ent ptl ss)
(vl-load-com)
(setq file1 (getfiled "文件保存在" "d:/" "TXT" 1))
(setq file2 (open file1 "W"))
(if (setq ent (entsel))
(progn
(setq en (car ent))
(setq ptl (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en))))
(setq ss (ssget "wp" ptl '((0 . "*text"))))
(setq n (sslength ss))
(setq i 0)
(setq ss2 " ")
(while (< i n)
(setq ss1 (cdr(assoc 1 (entget(ssname ss i)))))
(setq ss2 (strcat ss1 "," ss2))
(setq i (1+ i))
)
(write-line ss2 file2)
)
)
(close file2)
(princ)
)
可是改成批量就出错了
(defun c:tt (/ en ent ptl ss)
(vl-load-com)
(setq file1 (getfiled "文件保存在" "d:/" "TXT" 1))
(setq file2 (open file1 "a"))
(if (setq ent (ssget '((0 . "*POLYLINE"))))
(progn
(setq n1 (sslength ent))
(setq i1 0)
(while (< i1 n1)
(setq en (ssname ent i1))
(setq ptl (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en))))
(setq ss (ssget "wp" ptl '((0 . "*text"))))
(setq n (sslength ss))
(setq i 0)
(setq ss2 " ")
(while (< i n)
(setq ss1 (cdr(assoc 1 (entget(ssname ss i)))))
(setq ss2 (strcat ss1 "," ss2))
(setq i (1+ i))
)
(write-line ss2 file2)
(setq i1 (1+ i1))
)
)
)
(close file2)
(princ)
)
哪位大神帮看看帮修改下,谢谢 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|