请教高手?能否用lisp程序自动连线?
已知n个点(假定N=5),点位有点号、坐标及标高,其展点的格式为: “1,,100.12,200.12,10.30”;“2,,300.12,400.12,20.30”等等,后面还有n个点,姑且不论它多少吧。上述格式解释:1——点位点号;两‘,,’--两逗之间还有一项内容,由于缺省故用两逗号分隔;100.12,200.12是点位坐标;10.30是点位标高。现在本人的想法是:能否在标高后面加多一项标识,即格式如下: “1,,100.12,200.12,10.30,X1”;“2,,300.12,400.12,20.30,X1”,其中X1的作用就是能让lisp程序知道这两个点要连成一条直线,当然连第二条直线就得用 X2等等依些类,第N条直线就用XN。试试:
(defun c:test ()<BR> (SETQ F_ID (OPEN "C:data.dat" "r"))<BR> (setq xx nil)<BR> (while (SETQ text0 (READ-LINE F_ID))<BR> (setq len (strlen text0))<BR> (setq XX0 (substr text0 (- len 1) 2))<BR> (setq n (vl-string-position (ascii ",") text0))<BR> (setq n1 (vl-string-position (ascii ",") text0 (+ n 2)))<BR> (setq n2 (vl-string-position (ascii ",") text0 (1+ n1)))<BR> (setq n3 (vl-string-position (ascii ",") text0 (1+ n2)))<BR> (setq xh (substr text0 1 n)<BR> x (atof (substr text0 (+ n 3) (- n1 (+ n 2))))<BR> y (atof (substr text0 (+ n1 2) (- n2 (1+ n1))))<BR> p0 (list x y)<BR> p1 (list (- (car p0) 0.38) (- (cadr p0) 0.13))<BR> p2 (list (+ (car p0) 0.26) (- (cadr p0) 0.24))<BR> bg (substr text0 (+ n2 2) (- n3 (1+ n2)))<BR> )<BR> (setq text1 (list '(0 . "TEXT")<BR> '(100 . "AcDbEntity")<BR> '(67 . 0)<BR> '(8 . "0")<BR> (cons 10 p1)<BR> '(40 . 0.2)<BR> (cons 1 xh)<BR> )<BR> )<BR> (setq text2 (list '(0 . "TEXT")<BR> '(100 . "AcDbEntity")<BR> '(67 . 0)<BR> '(8 . "0")<BR> (cons 10 p2)<BR> '(40 . 0.4)<BR> (cons 1 bg)<BR> )<BR> )<BR> (entmake text1)<BR> (entmake text2)<BR> (if (/= xx0 xx)<BR> (progn<BR> (command "")<BR> (command "line" p0)<BR> )<BR> (command p0)<BR> )<BR> (setq xx xx0)
)<BR> (command "")<BR> (CLOSE F_ID)<BR>)<BR>
data.dat数据文件,放在C:\根目录下
1,,100.12,200.12,10.30,X1<BR>2,,300.12,400.12,20.30,X1<BR>3,,200.12,350.12,40.30,X1<BR>4,,400.12,150.12,20.30,X2<BR>5,,500.12,650.12,50.30,X2<BR>6,,200.12,850.12,70.30,X2<BR> 太厉害啦,谢谢,我试试看。 谢谢,问题解决啦。 如果做得完美一点,需要在程序加再加几句,如
(setq os (getvar "OSMODE"))<BR>(setvar "CMDECHO" 0)<BR>(setvar "OSMODE" 0)<BR>.<BR>.<BR>.<BR>(setvar "OSMODE" os)<BR>(setvar "CMDECHO" 1) 谢谢,祝您一生平安。您热诚的帮助我很感动。你为我的工作减轻了很多负担,我在外面还发了另外一个求助,跟这个差不多,不过多了几个要求。你有空的时候再帮我看看OK?在此先谢过啦。 test ; 错误: 参数类型错误: FILE nil
使用程序出现上面的错误,为什么,新手求助 怎么没有人帮忙了? 出错,是不是我的cad的问题
页:
[1]