I have got some new messages so I send a second SUM. I finished up with using Topology Extension from ArcScript page. Thank to each and everybody helped me. And now the offers: I got a script from kwillet@yahoo.com. I did not tried it. Have I got a script for you! I had the exact same issue and this script is what I've been using to snap all my road segments together in ArcView. You must make it the apply script in a tool, then make your road theme editable and press the tool, draw a circle that encompasses the two lines and they will snap together just like that! It does not work with multipart lines. ' Name: QuickSnap ' ' Title: ' ' Topics: ' ' Description: This script must be the apply script for a tool. The user drags 'a circle on the View's display and any line endpoints within the circle will snap 'to the line endpoint that is closest to the center of the circle. If both of a 'line's endpoints are within the circle, only the closest one will snap (this is 'consistent with ArcView's approach to snapping--it doesn't like polylines to have 'the same beginning and end point). This is a quick and fairly precise way to 'snap lots of lines together at their endpoints. ' ' Requires: An editable polyline theme. This script doesn't work correctly 'if you have multipart polylines in your shapefile. ' ' Self: ' ' Results: ' 'by David F. Kimball 6/2000 v = av.GetActiveDoc if (v.Is(View).Not) then System.Beep return nil end d = v.GetDisplay c = d.ReturnUserCircle if (c = nil) then System.Beep return nil end if (c.GetRadius <= 0) then System.Beep return nil end cc = c.ReturnCenter r = c.GetRadius t = v.GetEditableTheme if (t = nil) then System.Beep return nil end if (t.Is(FTheme).Not) then System.Beep return nil end f = t.GetFTab fs = f.FindField("shape") if (fs.GetType <> #FIELD_SHAPELINE) then System.Beep return nil end t.SelectByShapes({c},#VTAB_SELTYPE_NEW) if (f.GetSelection.Count <= 1) then System.Beep return nil end minDist = nil p0 = nil 'the point to be snapped to recList = List.Make 'a list of lists, each of which contains an FTab rec# and a boolean, 'which if true means snap the first node and if false, snap the last node. for each rec in f.GetSelection if (minDist = nil) then minDist = cc.Distance(f.ReturnValue(fs,rec).AsList.Get(0).Get(0)) + 1 end ' for each aList in f.ReturnValue(fs,rec).AsList 'REPLACED BY: aList = f.ReturnValue(fs,rec).AsList.Get(0) '(now only does the first part of multipart shapes...) thisDist1 = cc.Distance(aList.Get(0)) thisDist2 = cc.Distance(aList.Get(aList.Count - 1)) if (thisDist1 < minDist) then minDist = thisDist1 p0 = aList.Get(0) end if (thisDist2 < minDist) then minDist = thisDist2 p0 = aList.Get(aList.Count - 1) end '---- snapFirst = nil toAdd = nil if (thisDist1 <= r) then snapFirst = true toAdd = {rec.Clone,snapFirst} end if (thisDist2 <= r) then if (snapFirst = true) then if (thisDist2 < thisDist1) then toAdd = {rec.Clone,false} end else toAdd = {rec.Clone,false} end end if (toAdd <> nil) then recList.Add(toAdd) end ' end end if (p0.Is(Point).Not) then System.Beep return nil end 'v.getgraphics.add(graphicshape.make(p0)) 'testing 'msgbox.info("",reclist.count.asstring) badLines = 0 'goodLines = 0 'recsString = "" f.BeginTransaction ' O-------------------------------------------O for each l in recList theRec = l.Get(0) ' recsString = recsString ++ theRec.AsString oldLine = f.ReturnValue(fs,theRec) ' v.getgraphics.add(graphicshape.make(oldLine)) 'testing oldLineList = oldLine.AsList if (l.Get(1) = true) then oldLineList.Get(0).Set(0,p0) else oldLineList.Get(0).Set(oldLineList.Get(0).Count - 1,p0) end newLine = Polyline.Make(oldLineList) if (newLine.Is(Polyline)) then f.SetValue(fs,theRec,newLine) ' goodLines = goodLines + 1 else badLines = badLines + 1 end end f.EndTransaction ' O-------------------------------------------O if (badLines > 0) then MsgBox.Warning(badLines.AsString ++ "lines could not be snapped due to errors.","Snapping errors") end ' O=============================================================O ' the following lines are optional--feel free to comment them ' out by placing a ' mark at the beginning of them. ' O=============================================================O f.GetSelection.ClearAll 'These two lines unselect all the lines in the theme, f.UpdateSelection 'which makes it easy to see what happened. v.Invalidate 'causes the View to redraw *********************** I got an offer from Uffe Kousgaard to use RW Net Pro DLL, which is purchasable from www.routware.dk I got tips for using ArcInfo from Scott Webb and Kathy Hannaford. First use ArcInfo to clean the coverage. CLEAN ROADS ROADS # 1.0 LINE. Then in ARCEDIT, use the commands DRAWENVIROMENT NODE DANGLE and NODECOLOR DANGLE 3 to show dangle nodes as green squares. I then systematically pan over the coverage (a grid helps keep track of where you are) and remove unwanted node. Setting NODESNAP CLOSEST 10 also helps to snap arc together. Using multiple windows in ArcEdit also prevents having to zoom in and out as much. Scott Webb ArcInfo is your best choice here, presuming you have a coverage. What you need to do is set your dangle and snap tolerances before you run the CLEAN (actually I would avoid the clean, do an intersection and then build lines so that you don't end up with fake polygon topology). Make a backup copy of the coverage before you begin in case anything goes awry. Check the syntax for the TOLERANCE command, then set your tolerances accordingly. Or you can just skip this and set the Edit Environment in ArcTools (even if you do set tolerances be sure to check the Edit Environment since sometimes it ignores your tolerence file). Then select all arcs, and apply the INTERSECT command button. SAVE the coverage. Exit ArcTools. BUILD with the LINE option from an ARC prompt (the line option isn't available in ArcTools so if you build there you will end up with polygons as well as lines). Of course you can replicate all of this in ArcEdit if you prefer. If you have a line shapefile rather than a coverage but you have access to ArcInfo you can still do te above but first use the SHAPEARC command (Arc prompt) to convert the shapefile to a coverage. SHAPEARC works fine with lines, doesn't destroy the attributes (avoid it with polygons though if you have attributes you want to keep). Now you have a coverage and can proceed. If you don't have access to ArcInfo there are ways in ArcView to clean up your line topology (but they are a pain). You might try the DataEdit extension (download from ArcScripts). There may even be a specially designed "get rid of dangles" script, try searching the esri ArcScripts site for "dangles" and see what you get. Anyway, good luck. I look forward to hearing how you solve your problem. Kathi Hannaford, Union Co. GIS And I got a forwarded message to the same problem originated from Ianko Tchoukanski : Check again the intersections with EditTools. You have to have green nodes in all intersections. Check with NA ==> Find Best Route and manually input two points (Add Location tool)one -somewhere on the network, the other on the network, but close to the a village that can not be located during your find closest facility process. This will help you to find out where your network breaks. I finished up with using Topology Extension from ArcScript page. Jozsef Fabian