[求助]:[0210]修正图层输出与输入程序问题
请教各位高手们
以下这程序是用来输出及输入图档内图层的设定
但目前这程序有各问题
就是已存在的图层会出现些讯息
如果要改正这问题该怎样处理呢?
另外请教关于串列读取问题,假设为
A B C D ...
1. 2 8 1 6 ...
2. 5 7 3 4 ...
3. 7 5 4 3 ...
如果说要读取的位置是 B-3 ,或 D-2 ;
请问该怎样选取到要读取的位置?
另外关于程式中用到数值记忆时,
有位高手说可以用这种读写档案的方式存取数值,
该怎样由这种方式存取呢?
最后,请问外部档案内可以设定注解吗?
以上问题烦请各位帮忙解答一下
谢谢~- (defun c:kP1()
- (setvar "cmdecho" 0)
- (setq ffn "c:\\layall.txt")
- (initget "r w")
- (setq ans (getkword "\n(W)图层写出 (R)读取外档<W>:"))
- (if (null ans)(setq ans "w"))
- (if (= ans "w")
- (w_lay)
- (r_lay)
- )
- (prin1)
- )
- (defun w_lay()
- (setq ff (open ffn "w"))
- (close ff)
- (setq ff (open ffn "a"))
- (princ "图层名称 颜色 线型" ff)
- (princ "\n" ff)
- (close ff)
- (setq lay_a (tblnext "layer" t))
- (while lay_a
- (setq ff (open ffn "a"))
- (setq layname (cdr (assoc 2 lay_a)))
- (setq laycolor (cdr (assoc 62 lay_a)))
- (setq laylitype (cdr (assoc 6 lay_a)))
- (princ layname ff)
- (princ "," ff)
- (princ laycolor ff)
- (princ "," ff)
- (princ laylitype ff)
- (princ "\n" ff)
- (close ff)
- (setq lay_a (tblnext "layer"))
- )
- )
- (defun r_lay()
- (setq ffk (open ffn "r"))
- (setq kaka (read-line ffk))
- (setq kaka (read-line ffk))
- (while kaka
- (setq pk 1 k "" kk "" kkk '())
- (repeat (strlen kaka)
- (setq k (substr kaka pk 1))
- (if (/= k ",")
- (setq kk (strcat kk k))
- (setq kkk (cons kk kkk) kk "")
- ) ; 结束if
- (setq pk (+ 1 pk))
- ) ;结束repeat
- (setq kkk (cons kk kkk))
- (setq keyt (reverse kkk))
- (setq tx0 (nth 0 keyt))
- (setq tx1 (nth 1 keyt))
- (setq tx2 (nth 2 keyt))
- (setq tstyle (tblsearch "ltype" tx2))
- (if (= tstyle nil)
- (command "linetype" "L" tx2 "acadiso" "" "")
- (command "layer" "n" tx0 "c" tx1 tx0 "l" tx2 tx0 ""))
- ) ;;_(if
- (setq kaka (read-line ffk))
- )
- (close ffk)
- (prin1)
- )
|