调用Autocad API的AddLine函数时出错

时间:2015-08-09 09:25:18

标签: vbscript qtp autocad

我正在为UFT中的Autocad 2013进行API编程,如下所示:

Public Function Test() 
    Dim oApp, oDoc , sptr(2) , eptr(2) , objLine 
    Set oApp = GetObject(,"Autocad.Application")
     Set oDoc = oApp.ActiveDocument 
    sptr(0) = 1 : sptr(1) = 1 : sptr(2) = 0 
    eptr(0) = 5 : eptr(1) = 5 :eptr(2) = 0 
    Set objLine = oDoc.ModelSpace.AddLine(sptr,eptr) 
    oApp.Visible = True 
  End Function 

   Call Test()

我在Set objLine收到以下错误:

  

无效的过程调用或参数

因为它是VBScript,这是传递起点和终点的正确方法吗?

1 个答案:

答案 0 :(得分:1)

AddLine()函数需要一组Double值。 VBScript只能创建Variant值的数组。幸运的是,AutoCAD包含一个名为CreateTypedArray()的函数,作为其Utility类的一部分,允许您创建类型数组,然后将其传递给AutoCAD函数。

Dim s, e
oDoc.Utility.CreateTypedArray s, vbDouble, 1, 1, 0   ' Make 's' a Double array
oDoc.Utility.CreateTypedArray e, vbDouble, 5, 5, 0   ' Make 'e' a Double array
Set objLine = oDoc.ModelSpace.AddLine(s, e)          ' Pass our new arrays