我试图获得用户选择的线/样条曲线的长度
这是我用来让用户选择他们的行的代码:
Dim USel As Selection
Dim USelLB
Dim InputObject(0)
InputObject(0) = "AnyObject"
Set USel = CATIA.ActiveDocument.Selection
Set USelLB = USel
USel.Clear
USelLB.Clear
Linestomeasure = USelLB.SelectElement3(InputObject, "Select objects to list names", True, CATMultiSelTriggWhenUserValidatesSelection, False)
Linestomeasure
是 public
变量,在mainsub我一直试图使用以下代码测量 Linestomeasure
:
Dim pd1 As PartDocument
Dim a As Object
Dim c As Reference
a = TrimLines.Item(1)
c = pd1.Part.CreateReferenceFromObject(a)
Dim Mea1 As Measurable
Dim TheSPAWorkbench As SPAWorkbench
Set TheSPAWorkbench = pd1.GetWorkbench("SPAWorkbench")
Set Mea1 = TheSPAWorkbench.GetMeasurable(c)
但是当我运行代码 a = trimLines.Item(1)
在调试器中突出显示时出现错误消息"Object Required" .
有没有人知道如何更改我的代码,以便我可以将行的长度作为我可以使用的变量?或者只是以不同的方式去做我想做的事情?
1 回答
Edited answer to reflect comment bellow
看起来你正在为
USelLB.SelectElement3
分配错误类型的变量,并且还误解了它实际上是如何工作的 .Selection.SelectElement3
返回String
,反映选择是否成功 .从
Selection
检索到的Object
在Selection.Item(Index)
内你的代码应该是这样的:
请记住,使用
AnyObject
类型过滤器可能会导致用户选择不需要的对象 . 你应该使用更具体的过滤器 .