Autocad文字到记事本-更正
我有一个例程,我想是在Autodesk讨论组中获得的,它将autocad文本导出到记事本。然而,我不知道为什么,无论选择的顺序如何,最终的结果总是相反的顺序。
可以帮助,使输出正确排序吗?
(defun c:T2NP (/ elist en fn fname i ss txt)
(setvar "cmdecho" 0)
(prompt "\n* Text file written to directory of current drawing *")
(if (setq ss (ssget (list (cons 0 "TEXT"))))
(progn (setq fname (getstring "\n* Enter text file name: "))
(if (= fname "")
(setq fname (substr (getvar "dwgname") 1 (- (strlen (getvar
"dwgname")) 4))))
(setq fn (open (strcat (getvar "dwgprefix") fname ".txt") "w"))
(setq i -1)
(repeat (sslength ss)
(setq i (1+ i))
(setq en (ssname ss i)
elist (entget en)
txt (cdr (assoc 1 elist)))
(write-line txt fn))
(close fn)))
(princ (strcat "\n* Text file " (getvar "dwgprefix") fname " has been
created *"))
(setvar "cmdecho" 1)
(setq fn (strcat (getvar "dwgprefix") fname ".txt"))
(startapp (strcat "Notepad " (chr 34) fn (chr 34)))
(princ))
(prompt "\nType T2NP to invoke command") 由于您使用的是ssget选择方法,因此没有“正确的顺序”。字符串的写入顺序将取决于选择方法和文本对象添加到图形数据库的顺序。字符串仅在程序迭代选择集时写入。
如果要对文本对象进行排序,则需要使用单个对象选择方法(如entsel)或实现排序函数(如vl sort),以使用特定的比较函数对对象进行排序。
页:
[1]