明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2570|回复: 12

[求助]请帮我看以下这段代码

  [复制链接]
发表于 2003-11-21 12:52:00 | 显示全部楼层 |阅读模式
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" 做判断条件?
发表于 2003-11-21 13:02:00 | 显示全部楼层
应该是ent.linetype ="ACAD_ISO05W100"
  然后你再用这个线型画一条线就可以运行到里面了。
 楼主| 发表于 2003-11-21 13:14:00 | 显示全部楼层
我是想实现一个没有分层但里面有ACAD_ISO05W100线型,把它取出来单独建一个虚线层。并把所有ACAD_ISO05W100线型的实体转到该层上。
发表于 2003-11-21 13:25:00 | 显示全部楼层
上面的ent.layer="虚线"已经将符合条件的对象转到了“虚线”层了啊。
  另外ent.linetype = "acad_iso05w100"这句好象没有必要。
 楼主| 发表于 2003-11-21 13:28:00 | 显示全部楼层
但是我运行后没有任何效果的,运行得到的结果是:ent.linetype ="bylaye"
发表于 2003-11-21 13:31:00 | 显示全部楼层
这是因为你的图形空间没有符合条件(线型)的对象
  你用该线型画一条线你就清楚了
发表于 2003-11-21 13:33:00 | 显示全部楼层
对于一些对象没有特别指定线型时,对象的线型为随层(BYLAYER),这样你通过使用
If ent.linetype ="ACAD_ISO05W100" Then
是过滤不出该对象的。
 楼主| 发表于 2003-11-21 13:36:00 | 显示全部楼层
如果是以线宽、颜色等来做判断条件的话,就可以把符合条件的转移到相应图层里,你可以把这段程序放到你的机子上运行一下。如果改成线宽或者颜色做判断条件的话是可以的。用我的这个文件试一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2003-11-21 13:45:00 | 显示全部楼层
用你的程序一样也可以。
我是用ent.linetype ="ACAD_ISO05W100"运行结果如下。没有问题啊。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2003-11-21 13:46:00 | 显示全部楼层
明总的意思是不是如果每一个实体都给指定了不随层的线型就可以了呢,那这个程序的作用也就没有了,因为在一个图上总会有随层的线型的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 13:36 , Processed in 0.186618 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表