level 2
数据文件读写实验1.读取CAD文件中的line图形,将line坐标点写到文本文件中格式为:线序号 x1 y1 x2 y22.读取CAD文件中的circle图形,将circle圆心和半径写到文本文件中圆的序号 圆心x 圆心y 半径3.读取CAD文件中的text文字,将text的位置和文字写到文本文件中text序号 text的X text的Y 文字;;;;;;;; 参考程序 非常有用;捕捉PLINE线生成顶点表D 并且把线所在层设置为当前层(defun db(/ sut lb b pt cm bh pt1 i f1 f2) (if (= kg 0)(setq ename (car (entsel "\n选择实体 : ")))) (if ename (progn (setq d nil lb (entget ename) bh (cdr (assoc 70 lb))) (setq b (cdr (assoc 0 lb)) cm (cdr (assoc 8 lb))); (command ^c^c) (command "layer" "s" cm "") (if (= b "POLYLINE") (progn (setq sut (entnext ename)) (while (/= (cdr (assoc 0 (entget sut))) "SEQEND")(setq pt (cdr (assoc 10 (entget sut))))(setq d (cons pt d))(setq sut (entnext sut)) ) (if (= bh 1) (setq d (cons (last d) d))) )) (if (= b "LINE") (setq d (cons (cdr (assoc 10 lb)) d) d (cons (cdr (assoc 11 lb)) d))) (if (= b "CIRCLE")(progn (setq pt (cdr (assoc 10 lb))r (cdr (assoc 40 lb))) (setq i 0) (while (<= i 360) (setq pt1 (polar pt (/ i 57.0) r)) (setq d (cons pt1 d)) (setq i (+ i 5)) ) )) (if (= b "LWPOLYLINE")(progn (setq nn (length lb) kk 1) (while (< kk nn) (if (= 10 (car (nth kk lb)))(progn (setq x (nth 1 (nth kk lb)) y (nth 2 (nth kk lb)) ) (setq d (cons (list x y) d)) )) (setq kk (1+ kk)) ) (if (= bh 1) (setq d (cons (last d) d))) )) (if (= b "ARC")(progn (setq pt (cdr (assoc 10 lb))r (cdr (assoc 40 lb))f1 (cdr (assoc 50 lb))f2 (cdr (assoc 51 lb))) (setq i f1) (if (< f2 f1) (setq f2 (+ f2 (* 2 pi)))) (while (<= i f2) (setq pt1 (polar pt i r)) (setq d (cons pt1 d)) (setq i (+ i 0.1)) ) (setq d (cons (polar pt f2 r) d)) )) )) (if d (setq d (reverse d))))
2016年05月11日 06点05分
1