[求助]请帮我看以下这段代码
Sub wm()Dim ent As AcadEntity
Dim tet As String
For Each ent In ThisDrawing.ModelSpace
If ent.linetype = "acad_iso05w100" Then
' On Error Resume Next
Dim layc As AcadLayer
Set layc = ThisDrawing.layers.add("虚线")
layc.Color = acWhite
layc.Lineweight = acLnWt050
ent.layer = "虚线"
ent.Color = acByLayer
ent.Lineweight = acLnWtByLayer
ent.linetype = "acad_iso05w100"
End If
Next
ThisDrawing.PurgeAll
End Sub
请问为什么不能用ent.linetype = "acad_iso05w100" 做判断条件? 应该是ent.linetype ="ACAD_ISO05W100"
然后你再用这个线型画一条线就可以运行到里面了。 我是想实现一个没有分层但里面有ACAD_ISO05W100线型,把它取出来单独建一个虚线层。并把所有ACAD_ISO05W100线型的实体转到该层上。 上面的ent.layer="虚线"已经将符合条件的对象转到了“虚线”层了啊。
另外ent.linetype = "acad_iso05w100"这句好象没有必要。 但是我运行后没有任何效果的,运行得到的结果是:ent.linetype ="bylaye" 这是因为你的图形空间没有符合条件(线型)的对象
你用该线型画一条线你就清楚了 对于一些对象没有特别指定线型时,对象的线型为随层(BYLAYER),这样你通过使用
If ent.linetype ="ACAD_ISO05W100" Then
是过滤不出该对象的。 如果是以线宽、颜色等来做判断条件的话,就可以把符合条件的转移到相应图层里,你可以把这段程序放到你的机子上运行一下。如果改成线宽或者颜色做判断条件的话是可以的。用我的这个文件试一下。 用你的程序一样也可以。
我是用ent.linetype ="ACAD_ISO05W100"运行结果如下。没有问题啊。
明总的意思是不是如果每一个实体都给指定了不随层的线型就可以了呢,那这个程序的作用也就没有了,因为在一个图上总会有随层的线型的。
页:
[1]
2