Тема: Построение полилинии по динамическому массиву (VBA)?

При построении полилинии по динамическому массиву возникает ошибка:
Private Sub CommandButton3_Click()
Dim plineObj As AcadLWPolyline
Dim pointsPl()
Dim int1
ReDim pointsPl(0 To 2 * int1)
Set plineObj = ThisDrawing.ModelSpace. _
                   AddLightWeightPolyline(pointsPl)
end sub
Как это сдалать?
Спасибо за помощь!

Re: Построение полилинии по динамическому массиву (VBA)?

процедура ReDim pointsPl(0 To 2 * int1) неверна. Ресультатом такого деьствия является массив на не четное кол-во елементов
(0 То 10) имеет 11 елементов
для AcadLWPolyline необходим массив ~ (0 To 2 * int1 - 1)
для AcadPolyline (0 To 3 * int1 - 1)

Re: Построение полилинии по динамическому массиву (VBA)?

В процедуре у меня так и стоит, массив 0 to 2*int1-1.
Здесь был приведен только принцип. Проверял, не помогает.

Re: Построение полилинии по динамическому массиву (VBA)?

Правила работы с окном ВОТЧ
1. ставите бреак поинт напротив
Set plineObj = ThisDrawing.ModelSpace. _
                   AddLightWeightPolyline(points)
должна появиться большая каричневая точка
2. правой кнопкой мышки нажать на переменную (points)
должно появиться окно ВОТЧ, а в нем переменная с крестиком
3. левый клик на крестик
Масив должен раскрыться
4. проверяете значения масива
емпти там быть не ДОЛЖНО
>ReDim points(0 To 2 * int1 - 1)
ReDim points(0 To 2 * int1 - 1) аз доубле, может поможет
>For int2 = 0 to int1 - 1
;если вы хотите прыгать через одну то
надо For int2 = 0 to int1 - 1 Step 2 ; или что то вроде етого
>points(2 * int1) = R + int2 * 0.1* R
вы каждый раз пишите в одну и туже переменную points(2 * int1)
надо  points(int2)постольку именно int2 инкремируется (растет)
>points(2 * int1 + 1) = R + int2 * 0.1* R
тоже самое
надо points(int2 + 1)
>Next int2

Re: Построение полилинии по динамическому массиву (VBA)?

Проверил, цикл у меня работает правильно и все точки от 0 до 9 при 5 точках по которым строится полилиния имеют значения.
Так что проблема в чем-то другом.
А вот "Double" при объявлении points помогло!
СПАСИБО!

Re: Построение полилинии по динамическому массиву (VBA)?

не мог цикл работать правильно
>ReDim points(0 To 2 * int1 - 1)
при int1 = 5
ReDim points(0 To 2 * 5 - 1)'Масив на 10(десять)елементов
0,1,2,3,4,5,6,7,8,9
>points(2 * int1) = ...
и тем более
>points(2 * int1 + 1) = ...
заполняют (2 * int1) одинадцатый и (2 * int1 + 1)двенадцатый елементы, которых нет?
Удачи