slovak Posted April 27, 2012 Report Share Posted April 27, 2012 Уважаемое сообщество! Собственно написал скрипт, который рисует циклоиды: Dim oLine Dim oCircle Dim A(2, 2000) Dim NumberPoints Dim phi Dim alpha Dim pi Dim Count Dim Rb Dim Rm Dim k Count = 0 pi = 3.1415926 alpha = 0 Rb = 10 Rm = 2 NumberPoints = 360 k = Rb/Rm for phi = 0 to 2*pi step pi/180 Count = Count + 1 A(1, Count) = Rm*(k - 1)*(cos(phi) + cos((k - 1)*phi)/(k - 1)) A(2, Count) = Rm*(k - 1)*(sin(phi) - sin((k - 1)*phi)/(k - 1)) next for phi = 0 to 2*pi step pi/180 Count = Count + 1 A(1, Count) = (Rb + Rm)*cos(phi) - Rm*cos(alpha + ((Rb+Rm)/Rm)*phi) A(2, Count) = (Rb + Rm)*sin(phi) - Rm*sin(alpha + ((Rb+Rm)/Rm)*phi) next Set oCircle = ThisDrawing.ModelSpace.AddCircle(CStr(0)+","+CStr(0)+","+CStr(0), Rb) Set oCircle = ThisDrawing.ModelSpace.AddCircle(CStr(Rb + Rm)+","+CStr(0)+","+CStr(0), Rm) Set oCircle = ThisDrawing.ModelSpace.AddCircle(CStr(Rb - Rm)+","+CStr(0)+","+CStr(0), Rm) for i = 1 to Count - 1 Set oLine = ThisDrawing.ModelSpace.AddLine(CStr(A(1, i))+","+CStr(A(2, i))+","+CStr(0), CStr(A(1, i + 1))+","+CStr(A(2, i + 1))+","+CStr(0)) 'Set oLine = ThisDrawing.ModelSpace.AddLine(CStr(0)+","+CStr(0)+","+CStr(0), CStr(A(1, i))+","+CStr(A(2, i))+","+CStr(0)) 'Set oCircle = ThisDrawing.ModelSpace.AddCircle(CStr(A(1, i))+","+CStr(A(2, i))+","+CStr(0), 0.01) next Пытаюсь отрисовать их с помощью полилинии. Для проверки работоспособности пытался нарисовать полилинию: Dim varVertList(8) Dim objPLine varVertList(0) = 0 varVertList(1) = 0 varVertList(2) = 0 varVertList(3) = 10 varVertList(4) = 10 varVertList(5) = 0 varVertList(6) = 10 varVertList(7) = 50 varVertList(8) = 0 Set objPLine = ThisDrawing.ModelSpace.AddPolyline(varVertList) В результате получаю: err: "TeighaX" raised an exception "Параметр задан неверно." at line 17 pos 0 Set objPLine = ThisDrawing.ModelSpace.AddPolyline(varVertList) ^ В каком виде должны быть координаты вершин в массиве varVertList для отрисовки полилинии? Пробовал строкой как для отрезка ("x,y,z") - тоже не вышло. Заранее благодарю за ответ! К стати, в первом листинге не корректно отображается подсветка синтаксиса строки: 'Set oCircle = ThisDrawing.ModelSpace.AddCircle(CStr(A(1, i))+","+CStr(A(2, i))+","+CStr(0), 0.01) Строка начинается с " ' ", но не отображается зеленым. 1 Quote Link to comment Share on other sites More sharing options...
ISL Posted May 2, 2012 Report Share Posted May 2, 2012 В текущей версии создать LightweightPolyline из VBScript нельзя, поскольку VBScript передаёт VT_ARRAY|VT_VARIANT, тогда как OdaX ожидает VT_ARRAY|VT_R8. Проблема известна и исправлена, войдёт в следующую сборку. 1 Quote Link to comment Share on other sites More sharing options...
slovak Posted May 7, 2012 Author Report Share Posted May 7, 2012 В текущей версии создать LightweightPolyline из VBScript нельзя, поскольку VBScript передаёт VT_ARRAY|VT_VARIANT, тогда как OdaX ожидает VT_ARRAY|VT_R8. Проблема известна и исправлена, войдёт в следующую сборку. Большое спасибо за ответ! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.