本帖最后由 作者 于 2005-12-8 17:16:31 编辑
我有个LISP程序,请各位帮我看看
(defun c:writepolygon() (setvar "cmdecho" 0) (setq s (ssget '((0 . "text")))) (if (/= nil s) (progn (setq fname (getfiled "输出文件" "" "" 1)) (if (/= nil fname) (progn (setq fp (open fname "w") sl (sslength s) i 0) (command "-boundary" "_a" "_o" "_p" "" "") (repeat sl (setq ename (ssname s i)) (setq zb (car (fvertex ename))) (setq text (cdr (assoc 1 (entget ename)))) (command "zoom" "_c" zb 3000) (command "-boundary" zb "") (setq lename (entlast)) (setq zbb (fvertex lename)) (write-line text fp) (setq ii 0) (repeat (length zbb) (setq nzb (nth ii zbb)) (setq line (strcat (itoa ii) "," (rtos (nth 0 nzb) 2 3) "," (rtos (nth 1 nzb) 2 3))) (write-line line fp) (setq ii (+ ii 1)) ) (entdel lename) (setq i (+ i 1)) ) ) ) (close fp) (princ "\n******ok*******") ) ) (princ) )
实现的功能是在CAD图中框选文字,然后得到文字所在封闭多段线的坐标,但是每次输出的顺序不是按文字大小排序的,现在希望能够按大小顺序输出到文本文件里头,哪位大侠能帮帮忙啊! |