tryhi 发表于 2012-11-13 17:37:41

10明经币求助,这段代码哪里错了

本帖最后由 tryhi 于 2012-11-13 17:49 编辑

这段是读取CAD图形中所有文字的LISP函数
原文在http://bbs.mjtd.com/forum.php?mod=viewthread&tid=90717
超版写的,里面有点错误我找出来,但还是出错



(setq ss (ssget '((0 . "*text"))))
(if ss
(progn
(setq fn "c:\\text.txt")
(setq f (open fn "w"))
(repeat
(setq n (sslength ss))
(setq en (ssname ss (setq n (1- n))))
(setq txt (cdr (assoc 1 (setq enl (entget en)))))
(setq xy (cdr (assoc 10 enl)))
(write-line (strcat (vl-princ-tostring xy) "" txt) f)
)
(close f)
(startapp "notepad.exe" fn)
)
)



目前测试(vl-princ-tostring xy)这句出错

-----------------------------------
续,e派帮忙找到了问题,应该是vl-princ-to-string

bmy07 发表于 2012-11-13 17:37:42

第一次看到这个函数就觉得奇怪,少了个-

tryhi 发表于 2012-11-13 17:49:17

问题解决,多谢e派(setq ss (ssget '((0 . "*text"))))
(if ss
(progn
(setq fn "c:\\text.txt")
(setq f (open fn "w"))
(repeat
(setq n (sslength ss))
(setq en (ssname ss (setq n (1- n))))
(setq txt (cdr (assoc 1 (setq enl (entget en)))))
(setq xy (cdr (assoc 10 enl)))
(write-line (strcat (vl-princ-to-string xy) "" txt) f)
)
(close f)
(startapp "notepad.exe" fn)
)
)

叮咚 发表于 2012-11-13 20:09:18

(defun c:aa()
(setq ss (ssget '((0 . "*text"))))
(if ss
(progn
(setq fn "c:\\text.txt")
(setq f (open fn "w"))
(setq n (sslength ss) i 0)
(repeat n
(setq en (ssname ss i))
(setq txt (cdr (assoc 1 (setq enl (entget en)))))
(setq xy (cdr (assoc 10 enl)))
(write-line (strcat (vl-princ-to-string xy) "??" txt) f)
(setq i (1+ i))
)
(close f)
(startapp "notepad.exe" fn)
)
)
(princ)
)

zkyzzy 发表于 2012-11-13 23:07:22

(vl-load-com)
(setq ss (ssget '((0 . "*text"))))
(if ss
(progn
(setq fn "c:\\text.txt")
(setq f (open fn "w"))
(repeat
(setq n (sslength ss))
(setq en (ssname ss (setq n (1- n))))
(setq txt (cdr (assoc 1 (setq enl (entget en)))))
(setq xy (cdr (assoc 10 enl)))
(write-line (strcat (vl-princ-to-string xy) "" txt) f)
)
(close f)
(startapp "notepad.exe" fn)
)
)
页: [1]
查看完整版本: 10明经币求助,这段代码哪里错了