Ich hätte nie gedacht, dass ich nach so viel Jahren mit 9.x nocheinmal eine Frage zu 3.3 stellen muss: Kann man auch bei Punktthemen das Snapping =(Einpassen) verwenden?
Es müssen Punkte auf andere Punkte bzw. Linien gesnappt werden. Aber es will nicht so recht klappen. Weder beim neu Erfassen noch beim Verschieben.
Jemand der noch im 3.3 arbeitet will mir weißmachen das das nicht gehen soll!?
Es müssen Punkte auf andere Punkte bzw. Linien gesnappt werden. Aber es will nicht so recht klappen. Weder beim neu Erfassen noch beim Verschieben.
Jemand der noch im 3.3 arbeitet will mir weißmachen das das nicht gehen soll!?
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Mi., 22.09.2010 - 18:26
Permalink' SnapPoints
' Snapt Punkte eines Punktthemas an Objekte eines anderen Themas
theView = av.GetActiveDoc
if (theView.Is(View).Not) then
MsgBox.Info("Bitte von einem View aus starten!","")
return nil
end
theFThemes = List.Make
thePointThemes = List.Make
for each thm in theView.GetThemes
if (thm.is(FTheme)) then
theFThemes.Add(thm)
theVTab = thm.GetFTab
theCN = theVTab.GetShapeClass.GetClassName
if (theCN = "Point") then
thePointThemes.Add(thm)
end
end
end
theFromThm = MsgBox.List(thePointThemes,"Waehlen Sie das Punktthema, "+
"dessen Punkte Sie verschieben wollen:"," PUNKT-Themen")
if (theFromThm = NIL) then return NIL end
theFThemes.RemoveObj (theFromThm)
theToThm = MsgBox.List(theFThemes,"Waehlen Sie das Thema, an das "+
"gesnapt werden soll:"," Thema")
if (theToThm = NIL) then return NIL end
theToVTab = theToThm.GetFTab
theToCN = theToVTab.GetShapeClass.GetClassName
if (theToCN = "Point") then
thePSEString = "Vertex"
else
thePSEList = {"Vertex","Boundary","Endpoint","Intersection"}
thePSEString = MsgBox.ListAsString(thePSEList,"An was soll gesnapt werden?",
" Snapping-Typ")
if (thePSEString = NIL) then return NIL end
end
thePEnum = ("#POINT_SNAP_"+thePSEString).AsEnum
theSnapTol = MsgBox.Input("Bitte Snaptoleranz angeben:","Snaptoleranz in Map Units",
theToThm.GetSnapTolerance.AsString)
if (theSnapTol = NIL) then return NIL end
theToThm.SetSnapTolerance (theSnapTol.AsNumber)
theToThm.SetInteractiveSnapTolerance (theSnapTol.AsNumber)
theFromFTab = theFromThm.GetFTab
theBitMap = theFromFTab.GetSelection
if (theBitMap.count = 0) then theBitMap = theFromFTab end
theShpFld = theFromFTab.FindField("Shape")
theView.SetEditableTheme(theFromThm)
i = 0
for each rec in theBitMap
theShape = theFromFTab.ReturnValue(theShpFld,rec)
if(theShape.GetClass.IsSubClassOf(Point)) then
theToThm.UserSnapPoint(thePEnum,theShape)
newShape = theShape
else
theShapeList = theShape.AsList
for each aPart in theShapeList
for each aPt in aPart
theToThm.UserSnapPoint(thePEnum,aPt)
end
end
newShape = theFromFTab.GetShapeClass.Make(theShapeList)
end
theFromFTab.SetValue(theShpFld,rec,newShape)
end
theFromThm.ClearSelection
theView.Invalidate
Gespeichert von gismoe am Do., 23.09.2010 - 11:40
PermalinkGespeichert von Maxilla am Do., 23.09.2010 - 12:17
Permalink