Hi all,

I have never used Avenue scripts. In fact when I was going through forum I realized it was about in the year 2000 that the change from .ave to vba had started taking place. That time I was probably in high school :P

Anyways,, is there any documentation that gives information on library changes from avenue to vba.

I basically want to convert the following avenue script to vba.. Can anyone please help me with that :

Thanks !

Priyanka

I have never used Avenue scripts. In fact when I was going through forum I realized it was about in the year 2000 that the change from .ave to vba had started taking place. That time I was probably in high school :P

Anyways,, is there any documentation that gives information on library changes from avenue to vba.

I basically want to convert the following avenue script to vba.. Can anyone please help me with that :

tView = av.GetActiveDoc tdisp = av.GetActiveDoc.getdisplay atheme = tView.GetThemes.get(0) tGrid = atheme.GetGrid CellSize = tGrid.GetCellSize theGridExtent = tGrid.GetExtent top = thegridextent.gettop bottom = thegridextent.getbottom left = thegridextent.getleft right = thegridextent.getright userPoint = tdisp.ReturnUserPoint x = userPoint.GetX y = userPoint.GetY userCellValue = tGrid.CellValue(userPoint,Prj.MakeNull) coordfile = FileDialog.Put("xyz.dbf".AsFileName,"*.*","File") theVtab = Vtab.MakeNew(coordfile,dbase) coortable = Table.Make(theVtab) coortable.SetName("High Points Blocking View") PntType = Field.Make("Coord Type",#FIELD_CHAR,12,0) theAzmth = Field.Make("Azimuth",#FIELD_DECIMAL,10,3) Pntx = Field.Make("x",#FIELD_DECIMAL,25,4) Pnty = Field.Make("y",#FIELD_DECIMAL,25,4) theAngle = Field.Make("View Angle",#FIELD_DECIMAL,25,4) theVtab.AddFields({PntType,theAzmth,Pntx,Pnty,theAngle}) rec = theVtab.AddRecord theVtab.SetValue(PntType,rec,"User") theVtab.SetValue(Pntx,rec,x) theVtab.SetValue(Pnty,rec,y) av.ShowStopButton for each azimuth in 0..359 tmpPoint = Point.MakeNull oldCellValue = userCellValue distance = CellSize azimuthR = azimuth.AsRadians x2 = x y2 = y higherPt = false While ( (x2 < right) and (x2 > left) and (y2 < top) and (y2 > bottom)) a = distance * azimuthR.sin b = distance * azimuthR.cos x2 = x + a y2 = y + b if ( (x2 < right) and (x2 > left) and (y2 < top) and (y2 > bottom)) then tmpPoint.SetX(x2) tmpPoint.SetY(y2) NewCellValue = tGrid.CellValue(tmpPoint,Prj.MakeNull) x3 = x2 y3 = y2 if ( NewCellValue > OldCellValue) then OldCellValue = NewCellValue x4 = x3 y4 = y3 higherPt = true end end distance = distance + CellSize doMore = av.SetWorkingStatus if (not doMore) then exit end end rec = theVtab.AddRecord theVtab.SetValue(PntType,rec,"Calculated") theVtab.SetValue(theAzmth,rec,azimuth) if (higherPt = true) then HowFar = ( ((x - x4)*(x - x4)) + ((y - y4)*(y-y4))).sqrt height = NewCellValue - userCellValue hyp = ( (HowFar*HowFar) + (height*height)).sqrt theVtab.SetValue(Pntx,rec,x4) theVtab.SetValue(Pnty,rec,y4) theVtab.SetValue(theAngle,rec,HowFar/hyp) else theVtab.SetValue(Pntx,rec,x3) theVtab.SetValue(Pnty,rec,y3) theVtab.SetValue(theAngle,rec,1) end end av.ClearWorkingStatus total = 0 for each rec in theVtab total = total + theVtab.ReturnValue(theAngle,rec) end total = (total/360) * 100 Msgbox.Info("The sky seen index is " + total.asString,"INFO")

Thanks !

Priyanka

You should also note that VBA is planned to be deprecated in the near future too so you might be converting all your programs to something that will be need reconverting soon.