Здравствуйте, мне нужна помощь помочь разобраться с уже написанным скриптом:
'do_h_lin.ave строит сложные линии. Создайте в виде кнопку и подсоедините к ней
' эту программку. Выбирете значок и его размер, который будет наноситься на линию
'с заданным шагом. Выбирите графику и нажмите на созданную кнопку, программа задаст
'вопроссы и начнет работать.
theView = av.GetActiveDoc
TheDisplay=theView.GetDisplay
Theinter=List.Make
w=MsgBox.Input ("w=","Введите число шагов", "1").asNumber
if (w = Nil) then
exit
end
THi=0
While (THi<w)
n=MsgBox.Input ("n=","Введите Шаг", "40000").asNumber
if (n = Nil) then
exit
end
Theinter.Add(n)
THi=THi+1
end
THj=THi-1
d=MsgBox.Input ("d=","Введите сдвиг", "1050").asNumber
if (d = Nil) then
exit
end
qw=MsgBox.ChoiceAsString({"Направить наружу","Направить внутрь"},"Выбмрети направление : " , "")
if (qw = Nil) then
exit
end
for each recnum in av.GetActiveDoc.GetGraphics.getSelected
Shpart=recnum.GetShape.AsMultiPoint.AsList
E0=0
X0=Shpart.get(0).GetX
Y0=Shpart.get(0).getY
' Shpart.Remove (0)
THj=0
for each Shpoint in Shpart
Xi=Shpoint.GetX
Yi=Shpoint.GetY
TheX=((Xi.abs)-(X0.abs)).abs
TheY=((Yi.abs)-(Y0.abs)).abs
Ez=(TheX^2)+(TheY^2)
E=Ez.sqrt
if(THj=THi) then
THj=0
end
n=Theinter.get(THj)
Thj=Thj+1
En=n-E0
if (En>=0) then
While (E>=En)
THEcos=TheX/E
THEsin=TheY/E
Thea=Thesin.Asin.AsDegrees
if (qw="Направить внутрь") then
Thea=180+Thea
d=-(d.abs)
end
dx=d*Thesin
dy=d*Thecos
if (Xi<X0) Then
THEcos=-Thecos
nx=0
else
nx=1
end
if (Yi<Y0) Then
THEsin=-Thesin
ny=0
else
ny=1
end
if ((nx=1)and(ny=1)) then
dx=-dx
end
if ((nx=0)and(ny=1)) then
Thea=180-Thea
dx=-dx
dy=-dy
end
if ((nx=1)and(ny=0)) then
Thea=-Thea
end
if ((nx=0)and(ny=0)) then
Thea=180+Thea
dy=-dy
end
Xn=X0+(En*Thecos)+dx
Yn=Y0+(En*Thesin)+dy
ThePoint=Xn@Yn
TheGraphicPoint=GraphicShape.Make(Thepoint)
TheGraphicPoint.Getsymbol.SetAngle(Thea)
TheGraphicList=TheView.GetGraphics
TheGraphicList.Add(TheGraphicPoint)
if(THj=THi) then
THj=0
end
n=Theinter.get(THj)
THj=THj+1 &nb