pyqzww 发表于 2003-5-13 13:16:00

efan版主!

在AUTOCAD中的一个三维图形,怎样定义一个范围,使鼠标点到这个范围内都只显示这个图形 的某一个属性!请版主帮忙!!!

efan2000 发表于 2003-5-13 13:23:00

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

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

pyqzww 发表于 2003-5-13 13:50:00

efan版主!帮忙!!!

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

efan2000 发表于 2003-5-13 13:57:00

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

每一段的阶梯轴要做成一个实体,因为高亮(Highlight)是对实体整体而言的。
我没做过这方面的,不然你将图纸上传一个吧,看看有没有什么好的处理方法。

pyqzww 发表于 2003-5-13 14:45:00

版主

我是初学者,您能否告诉我你的联系方式,我好具体向你请教!

pyqzww 发表于 2003-5-14 11:13:00

efan 版主,图片到了

pyqzww 发表于 2003-5-14 11:13:00

efan 版主,图片到了

请您尽快帮我好吗?

pyqzww 发表于 2003-5-14 11:23:00

图片!

efan2000 发表于 2003-5-14 20:05:00

示例程序如下

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时并不在第一段阶梯轴上,可能跟坐标系有关系。

pyqzww 发表于 2003-5-14 20:29:00

还想请教!

版主,别笑话我!您上面用Sub Test( ),为什么要这样写呢?如果我要编一个程序,我应该怎样写过程框架名呢?请再指教!!不胜感激!!!!!!!!
页: [1] 2
查看完整版本: efan版主!