各位大侠请帮看看,以下两个程序,先用程序一得出2.XLS文件,据此格式运行程序二是可行的,但如果自已用EXCEL自已建立一个2.XLS文件则程序二不能运行,请问是什么问题???如何解决??? 程序一: (defun c:lytzbsc() ;;; 在图中向文件E:\\123\\2.xls输出选中字体角点坐标程序 (VL-LOAD-COM) (setq AcadObject(vlax-get-acad-object) AcadDocument(vla-get-ActiveDocument AcadObject) mSpace(vla-get-ModelSpace AcadDocument) ) (setq fp1(open "E:\\123\\2.xls" "w")) (setq p1(getpoint "\n请输入第一点:")) (setq p2(getpoint "\n请输入第二点:")) (setq ss(ssget "W" P1 p2)) (SETQ t1 "text=") (setq a1 0) (setq tt1(cdr(assoc 1 (entget(ssname ss a1))))) (setq d1(cdr(assoc 10 (entget(ssname ss a1))))) (princ "\t" fp1) (princ tt1 fp1) (princ "\t" fp1) (princ "x=" fp1) (princ "\t" fp1) (princ (cadr d1) fp1) (princ "\t" fp1) (princ "y=" fp1) (princ "\t" fp1) (princ (car d1) fp1) (while (ssname ss (+ a1 1)) (setq a1 (+ a1 1)) (setq tt1 (cdr (assoc 1 (entget(ssname ss a1))))) (setq d1 (cdr (assoc 10 (entget(ssname ss a1))))) (print t1 fp1) (princ "\t" fp1) (princ tt1 fp1) (princ "\t" fp1) (princ "x=" fp1) (princ "\t" fp1) (princ (cadr d1) fp1) (princ "\t" fp1) (princ "y=" fp1) (princ "\t" fp1) (princ (car d1) fp1) ) (close fp1) ) 程序二: (defun c:lytm() (VL-LOAD-COM) (setq AcadObject(vlax-get-acad-object) AcadDocument(vla-get-ActiveDocument AcadObject) mSpace(vla-get-ModelSpace AcadDocument) ) (setq fp1(open "E:\\123\\2.xls" "r")) (setq p1 (getpoint "\n请输入点:")) (command "dtext" "j" "bl" p1 20 0) (setq a1 (read-line fp1))(print a1) (while a1 (setq n 1) (setq m 0) (setq bb (strlen a1)) (repeat bb (if (= (substr a1 n 1) "\t") (progn (if (= m 4) (progn (setq b5 n) (setq m (+ m 1)) )) (if (= m 3) (progn (setq b4 n) (setq m (+ m 1)) )) (if (= m 2) (progn (setq b3 n) (setq m (+ m 1)) )) (if (= m 1) (progn (setq b2 n) (setq m (+ m 1)) )) (if (= m 0) (progn (setq b1 n) (setq m (+ m 1)) )) )) (setq n (+ n 1)) ) ) (setq p2 (list (float (atof(substr a1 (+ b5 1) (- bb b5)))) (float (atof(substr a1 (+ b3 1) (- b4 b3)))) 0.0)) (setq ttt2 (substr a1 (+ b1 1) (- b2 b1 ))) (command "copy" "l" "" p1 p2) (setq tt2 (entget(entlast))) (setq tt2 (subst (cons 1 ttt2) (assoc 1 tt2) tt2)) (entmod tt2) (setq p1 p2) (setq a1 (read-line fp1)) ) (close fp1) ) |