明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2212|回复: 6

如何用VBA达到以下效果

[复制链接]
发表于 2003-2-24 07:53:00 | 显示全部楼层 |阅读模式
如何用VBA达到以下效果
    例:图形中用红线 白线 黄线 运行程序后,如何能够使红线处于选中状态,然后就可以用sendcommand对红线进行处理
    试了很多次,都不成功,请大家指点
发表于 2003-2-24 22:11:00 | 显示全部楼层

使用选择集

构建一选择集,采用过滤机制,将红线添加到选择集中。如:
fType(0)=62:fData(0)=acRed '仅选择红色
fType(1)=0:fData(1)="*Line" '所有直线,包括直线、多段线等
操作完成后,还可以对选中的每个实体用Highlight设置加亮状态,使它们看起来就象使用CAD内部选择命令一样。最后执行自己的命令对选择集进行操作。
 楼主| 发表于 2003-2-26 13:21:00 | 显示全部楼层

谢谢,我的表述不清楚

本帖最后由 作者 于 2003-2-26 13:21:08 编辑

谢谢,我的表述不清楚,现补充:
              当程序得到红线后,对这些红线进行加粗为0.5,就需要利用sendcommand来发送pe命令,问题在于如何让pe命令知道要加粗的为这些红线,从而自动加粗,而不用手动一根一根的加粗为0.5
   
请朋友们抽空解答
发表于 2003-2-26 18:54:00 | 显示全部楼层

遍历选择集中的对象,然后进行操作

 楼主| 发表于 2003-2-27 13:27:00 | 显示全部楼层

谢谢,可能还是没弄懂我的意思

"遍历选择集中的对象,然后进行操作"也就是说是先选择,后操作

但我用sendcommand来发送pe命令后,又提示让我选择物体,也就是说遍历到的红线(我想加粗的线)根本不被pe命令接受

而我的本意是在程序中事先设置好ThisDrawing.SendCommand "_pe" & vbCr & "y" & vbCr & "w" & vbCr & "1" & vbCr & vbCr 当遍历到该物体时,就对该红线自动执行加宽为1个单位

如果这次明白了我的意思,就请朋友们帮忙解决一下
发表于 2003-2-28 20:08:00 | 显示全部楼层

这次你也应该明白了吧,程序如内

Sub PE()
    Dim ss As AcadSelectionSet
    Set ss = GetSelSet
    Dim Ent As AcadEntity
   
    For Each Ent In ss
        If Ent.ObjectName = "AcDbLine" Then
            ThisDrawing.SendCommand "_pe" & vbCr _
            & axEnt2lspEnt(Ent) & vbCr & "y" & vbCr & "w" _
            & vbCr & "1" & vbCr & vbCr
        End If
    Next
End Sub

Function GetSelSet() As AcadSelectionSet
    Dim ss As AcadSelectionSet
    Set ss = ThisDrawing.PickfirstSelectionSet
    If ss.Count = 0 Then
        Dim ssName As String
        ssName = "strSSet"
        On Error Resume Next
        Set ss = ThisDrawing.SelectionSets(ssName)
        If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)
        ss.Clear
        ss.SelectOnScreen
    End If
    Set GetSelSet = ss
End Function

Public Function axEnt2lspEnt(entObj As AcadEntity) As String
    Dim entHandle As String
    entHandle = entObj.Handle
    axEnt2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")"
End Function
 楼主| 发表于 2003-3-2 17:41:00 | 显示全部楼层

非常感谢

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 18:51 , Processed in 0.242110 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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