[讨论]这个程序怎么改
这个程序要多加个线宽该怎么改呀?这里面的(cons 2 layer_name)
数字表示什么意思呢?;;;;创建图层
(defun c:ccc (/ fi tuceng_list
n tuceng layer_name
layer_linetype layer_color
)
;;;取得图层列表
(defun GET_FILE_tuceng (fi / fil pe fel)
(setq tuceng_list nil)
(if (findfile fi)
(progn
(setq fil (findfile fi))
(setq pe (open fil "r"))
(while (setq fel (read-line pe))
(setq tuceng_list (cons fel tuceng_list))
)
(close pe)
(setq tuceng_list (cdr (reverse tuceng_list)))
;根据文本的内容而定
)
)
)
(GET_FILE_tuceng "tuceng.dat")
;;;_______________________________________________________
(setq n 0)
(while (> (length tuceng_list) n)
(setq tuceng (read (strcat "(" (nth n tuceng_list) ")")))
(setq layer_name (nth 0 tuceng)) ;图层名
(setq layer_linetype (nth 1 tuceng)) ;图层线型
(setq layer_color (nth 2 tuceng)) ;图层颜色
(entmake
(list
'(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
'(70 . 0)
(cons 6 layer_linetype);线型
(cons 62 layer_color);颜色
(cons 2 layer_name);图层名
)
)
(setq n (1+ n))
)
(princ "\n图层以创建 ")
(princ)
)
;;;_______________________________________________________
(cons 2 layer_name) 的2就是表示要创建的图层名。 <p>好像不对吧~~</p><p>我创建出来都没2图层</p><p>还要和一个DAT文件配合使用的</p> <p>去看看dxf的说明吧。</p> <p>采用entmake好像不能增加线宽,最好用vlisp函数增加图层,并修改图层的属性</p><p>(setq AcadObj (vlax-get-acad-object)<br/> AcDoc (vla-get-activeDocument AcadObj)<br/> Layers (vla-get-layers AcDoc)<br/> Layer (vla-add layers layer_Name)<br/>)</p><p>(vla-put-LineType layer layer_Linetype)<br/>(vla-put-color layer layer_color)<br/>(vla-put-lineweight layer Layer_Lineweight) ;;layer_lineweight为新参数线宽,但注意文件中应存放此参数,<br/>)</p><p><br/></p><p></p>
页:
[1]