明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2548|回复: 12

efan版主!

  [复制链接]
发表于 2003-5-13 13:16 | 显示全部楼层 |阅读模式
AutoCAD中的一个三维图形,怎样定义一个范围,使鼠标点到这个范围内都只显示这个图形 的某一个属性!请版主帮忙!!!
发表于 2003-5-13 13:23 | 显示全部楼层

点击时获取鼠标的位置,然后根据其它信息来判断。

用Utility对象的GetPoint获取点的坐标,然后判断这点与三维图形的关系即处于哪一个范围之内,对应的显示自己的信息。
当然,自己要知道三维图形的形状是什么样的,而且这个范围是如何划分,信息要如何显示。
 楼主| 发表于 2003-5-13 13:50 | 显示全部楼层

efan版主!帮忙!!!

如果三维图形是一个阶梯轴,若鼠标点在阶梯轴X坐标为356--678的范围内,就高亮显示第一轴段,若点到的X坐标在678——890之间,就高亮显示第二轴段!efan前辈麻烦您给个示例吧!不胜感激!!!!!!11
发表于 2003-5-13 13:57 | 显示全部楼层

显示各段高亮状态时各段应该分别是一个实体。

每一段的阶梯轴要做成一个实体,因为高亮(Highlight)是对实体整体而言的。
我没做过这方面的,不然你将图纸上传一个吧,看看有没有什么好的处理方法。
 楼主| 发表于 2003-5-13 14:45 | 显示全部楼层

版主

我是初学者,您能否告诉我你的联系方式,我好具体向你请教!
 楼主| 发表于 2003-5-14 11:13 | 显示全部楼层

efan 版主,图片到了

 楼主| 发表于 2003-5-14 11:13 | 显示全部楼层

efan 版主,图片到了

请您尽快帮我好吗?
 楼主| 发表于 2003-5-14 11:23 | 显示全部楼层

图片!

本帖子中包含更多资源

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

x
发表于 2003-5-14 20:05 | 显示全部楼层

示例程序如下

Sub Test()
    Dim Pt As Variant
    Pt = ThisDrawing.Utility.GetPoint(, "指定点: ")
    Dim EntObj As AcadEntity
    Dim SolidObj1 As Acad3DSolid
    Dim SolidObj2 As Acad3DSolid
    For Each EntObj In ThisDrawing.ModelSpace
        If TypeOf EntObj Is Acad3DSolid Then
            If SolidObj1 Is Nothing Then
                Set SolidObj1 = EntObj
            Else
                Set SolidObj2 = EntObj
            End If
        End If
    Next
    Debug.Print Pt(0)
    If Pt(0) > 356 And Pt(0) < 678 Then
        SolidObj1.Highlight True
    ElseIf Pt(0) > 678 And Pt(0) < 890 Then
        SolidObj2.Highlight True
    End If
End Sub
注意:上面的第一段阶梯轴是先创建的三维实体,具体的可以根据实际情况自己变更。在这个视图中,选择点的X坐标在356--678时并不在第一段阶梯轴上,可能跟坐标系有关系。
 楼主| 发表于 2003-5-14 20:29 | 显示全部楼层

还想请教!

版主,别笑话我!您上面用Sub Test( ),为什么要这样写呢?如果我要编一个程序,我应该怎样写过程框架名呢?请再指教!!不胜感激!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 18:04 , Processed in 0.270178 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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