2015-08-09 5 views
1

Я работаю по программированию API для Autocad 2013 в UFT следующим образом:Ошибка при вызове функции AddLine Autocad 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, это правильный способ передать начальную и конечную точки?

+0

Может быть, 'sptr (0) = CDbl (1): sptr (1) = CDbl (1): sptr (2) = CDbl (0)' и т. Д. Может помочь? – JosefZ

+0

Нет. Я проверил CDbl, но все равно получаю такую ​​же ошибку ... – sujit

ответ

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 
+0

Эй, спасибо ... теперь его работа с vbscript в uft. – sujit

Смежные вопросы