兰州人 发表于 2008-7-16 13:53:00

简单实用更改图层的Lineweight

<p>在打印CAD图时,通常是在图层管理器中更改,比较麻烦。下面一个小程序能批量更改Linewight</p><p>.Lineweight = acLnWt015(线宽)简单实有方便。</p><p>Sub ChangeLayerLineweight()<br/>&nbsp; Dim ss As AcadLayer<br/>&nbsp; For Each ss In ThisDrawing.Layers<br/>&nbsp;&nbsp;&nbsp; Debug.Print ss.Name<br/>&nbsp;&nbsp;&nbsp; Select Case ss.Name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case "中心线", "尺寸线", "细实线", "剖面线", "零件表格文本", "文本", "虚线", "点划线"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss.Lineweight = acLnWt015<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case "零件表格横线"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss.Lineweight = acLnWt030<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case "零件表格竖线"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss.Lineweight = acLnWt040<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case "图框粗实线", "内图框线"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss.Lineweight = acLnWt050<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case "图框粗实线", "内图框线"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss.Lineweight = acLnWt050<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Case Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss.Lineweight = acLnWt035<br/>&nbsp;&nbsp;&nbsp; End Select<br/>&nbsp; Next ss<br/>End Sub<br/></p>

edoumxx 发表于 2008-7-19 19:22:00

学习了<br/><br/>楼主能够再将内码细化到对指定图层内的"多段线"、"文字"或"直线"进行线宽设置?<br/><br/>增加还有线型比例的调整的内码?<br/><br/>我对二开发确实是一窍不通,希望高手能帮忙解决,谢了<br/>

enderxu 发表于 2008-7-25 16:20:00

我让程序读取当前的lineweight,显示的值是-1,请问楼主知道这个-1是什么意思吗?

sailorcwx 发表于 2008-7-25 16:31:00

<p>-1是随层<br/>-2是随块<br/>-3是默认</p>

memerft 发表于 2008-7-30 11:54:00

那怎么根据线型来改变LINEWEIGHT呢!

<p>我试了,但好象不行</p><p>Dim en As AcadLineType<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each en In ThisDrawing.Linetypes<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If StrComp(en.name, "10011", 1) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;en = acLnWt015</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If StrComp(en.name, "709", 1) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;en = acLnWt040</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next en<br/>请问是怎么会事情啊!</p>

mccad 发表于 2008-7-30 12:08:00

en.Lineweight

memerft 发表于 2008-7-30 14:18:00

<p>Dim en As AcadLineType<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each en In ThisDrawing.Linetypes<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If StrComp(en.name, "10011", 1) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;en.lineweight = acLnWt015</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end if</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If StrComp(en.name, "709", 1) = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;en.lineweight&nbsp; = acLnWt040</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end if<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next en<br/>还是不行啊!</p>

mccad 发表于 2008-7-30 18:19:00

<p>人家是设置图层的线宽,而你却要设置线型的线宽。好象线型并没有线宽项。</p>

memerft 发表于 2008-7-31 18:00:00

<p>那我想要根据线形来选择后来改变线宽,好象还是不得行啊!我先建了一个选择集后来改,好象还是不行啊!问郑老师,兰州老师,怎么搞呢?</p>

狂刀无痕 发表于 2008-8-12 00:17:00

要么改成多义线,要么放到一个层再设层打印线宽
页: [1]
查看完整版本: 简单实用更改图层的Lineweight