3527188 发表于 2008-11-19 00:13:00

[讨论]这个程序怎么改

这个程序要多加个线宽该怎么改呀?
这里面的(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)
)
;;;_______________________________________________________

xgr 发表于 2008-11-19 08:38:00

(cons 2 layer_name) 的2就是表示要创建的图层名。

3527188 发表于 2008-11-19 11:20:00

<p>好像不对吧~~</p><p>我创建出来都没2图层</p><p>还要和一个DAT文件配合使用的</p>

xgr 发表于 2008-11-19 12:46:00

<p>去看看dxf的说明吧。</p>

hb_xiaofen 发表于 2008-11-19 13:07:00

<p>采用entmake好像不能增加线宽,最好用vlisp函数增加图层,并修改图层的属性</p><p>(setq AcadObj (vlax-get-acad-object)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcDoc&nbsp;&nbsp; (vla-get-activeDocument AcadObj)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Layers&nbsp; (vla-get-layers AcDoc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Layer&nbsp;&nbsp; (vla-add layers layer_Name)<br/>)</p><p>(vla-put-LineType layer layer_Linetype)<br/>(vla-put-color&nbsp;&nbsp;&nbsp; layer layer_color)<br/>(vla-put-lineweight layer Layer_Lineweight) ;;layer_lineweight为新参数线宽,但注意文件中应存放此参数,<br/>)</p><p><br/></p><p></p>
页: [1]
查看完整版本: [讨论]这个程序怎么改