'ADDS A DISTANCE MATRIX FOR THE ACTIVE POINT SHAPEFILE 'REQUIRES: THE SHAPEFILE TO HAVE AN ID FIELD FOR EACH SHAPE THE NEW FILEDS ARE NAMED BY THESE IDs 'LOADING SCRIPTS ' 1. Double-click on an empty area on the bar containing all buttons, The "Customize" dialog appears ' 2. In the "Type" pull-down, select "View" ' 3. In the "Category" pull-down, select "Buttons", The display right below the pull down changes to show an array of buttons ' 4. Slide the scrollbar (below the button display) to the right and select the last button by clicking on it, Now click on "New" ' 5. A new blank button appears. Double-click on the blank area to the right of the entry "Click" (just below the button display) ' 6. The "Script Manager" Dialog appears, Click on "New", Enter any name in the input box that appears (prefix it with "Z_" so that it goes in the last) ' 7. A new blank script document (With the name just specified) appears. Delete whatever is on it... ' 8. Either copy-paste this ENTIRE script on the document, or, click on the button with the open-folder icon (tooltip reads "Load text file") and navigate to this file ' 9. Either done, click on the button with the tick-mark icon ("compile"). If spatial analyst is not loaded, there will be some error message, Load it ' 10. After the script is compiled (the tick-mark buton should be grayed out), close the script window and return to the view ' 11. Click on the new button to run the script theView = av.GetActiveDoc TheFtab=theView.GetActiveThemes.Get(0).GetFtab TheFtab.SetEditable(TRUE) IDField=TheFtab.FindField("ID") ShField=TheFtab.FindField("Shape") ThePointList={} TheValList={} FieldList={} for each t in theFtab CompShp=TheFtab.ReturnValue(ShField,t) ThePointList.Add(CompShp) end for each i in theFtab Val=TheFtab.ReturnValue(IDField,i) TheValList.Add(Val) end for each f in TheValList NewField=Field.Make(f.AsString,#FIELD_DECIMAL,12,6) FieldList.Add(NewField) end TheFtab.AddFields(FieldList) for each rec in TheFtab TheP=TheFtab.ReturnValue(ShField,rec) for each comp in 0..(ThePointList.Count-1) TVal=TheValList.Get(comp) TShp=ThePointList.Get(comp) TheDist=TheP.Distance(TShp) TheField=TheFtab.FindField(TVal.AsString) TheFtab.SetValue(TheField,rec,TheDist) end end TheFtab.SetEditable(FALSE)