在选择集中拾取一个对象..
嗨,我知道这一定很简单,但我可以编码一个选择集只选择一个对象吗?
我正在使用SelectOnScreen方法,但我可以选择很多对象,我只想强制它为ONE。
我有这个代码:
Private Sub blockpick1BTN_Click()
FixingsChartFRM.Hide
On Error Resume Next
ThisDrawing.SelectionSets.Delete ("FiX_SS")
Set SS = ThisDrawing.SelectionSets.Add("FiX_SS")
Dim Ftype(0) As Integer
Dim FData(0) As Variant
Ftype(0) = 2
FData(0) = "AcDbBlockReference"
On Error Resume Next
SS.SelectOnScreen Ftype, FData
FixingsChartFRM.Show
End Sub
....1:它不会显示我选择的任何块(命令行显示选择对象:0已找到)和:
2:有没有比这更好的方法来将对象添加到选择集?
**** Hidden Message ***** 实用程序类的GetEntity方法将只允许您选择一个实体。 GetEntity的好处是您不再需要选择集,只需直接与实体一起使用即可。但是,您需要检查实体是否是正确的类型,但是,当您期望块时,您的用户总是会选择折线。 对不起,我解决了,但还有一件事......
...我想把块名称放在用户表单的文本框中,但是AcadObject只有ObjectName,我如何从选定的对象中获取块名称...
这是我在GetEntity部分之后使用的粗略代码:
ThisDrawing.Utility.GetEntity FixBlock, PickPoint, "Select a fixing.."
If FixBlock.ObjectName = "AcDbBlockReference" Then
fx1descTXT.Text = FixBlock.ObjectName
FixingsChartFRM.Show
ElseIf FixBlock.ObjectName"AcDbBlockReference" Then
MsgBox "Please pick a block.."
GoTo PICK
End If
fixblock.name = “您的文本” 哦对了,就这么简单,哈哈。我认为AcadObject没有Name属性,因为它没有出现在intellisense列表中。谢谢
页:
[1]