Hallo Forum, hier mein Problem:
ich habe ein Polygon-Thema und mehrere
Objekte selektiert.
Für die selektierten Objekte möchte ich "nacheinander" also für jedes einzelne einige scripte laufen lassen.
geht das??
Gruß
Kay Krüger
ich habe ein Polygon-Thema und mehrere
Objekte selektiert.
Für die selektierten Objekte möchte ich "nacheinander" also für jedes einzelne einige scripte laufen lassen.
geht das??
Gruß
Kay Krüger
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Johannes Brinkmann am Di., 24.02.2004 - 13:46
Permalinkja, das geht. Mit dem Avenue-Befehl
av.run("Skriptname", SELF) kann aus einem Skript heraus ein zweites Skript aufgerufen werden. Entsprechend könntest Du diese Befehlszeile in eine Schleife integrieren, welche die Objekte eines Themas abfragt.
Hoffe, ich konnte helfen
Johannes
Gespeichert von Krüger am Di., 24.02.2004 - 14:00
Permalinkdie "for each" Schleife arbeitet die selektierten Objekte anscheinend nicht sauber nacheinander ab, sondern als "ganzes".
Ich brauche auf deutsch gesagt:
nimm 1 aus selection und mache dasunddas
nimm 2 aus selection und mache dasunddas usw.
so klarer??
Gruß Kay
Gespeichert von Jörg Thomsen am Di., 24.02.2004 - 14:24
Permalinkkann ich die Schleife mal sehen?
Jörg
Gespeichert von Maxilla am Di., 24.02.2004 - 14:53
PermalinkEinfaches Beispiel:
theView = av.GetActiveDoc
theTheme = theView.GetActiveThemes.Get(0)
theVTab = theTheme.getfTab
'--------------------------------
'SELEKTION IN BITMAP SCHREIBEN
theBitmap = theVTab.getSelection
'--------------------------------
'BITMAP IN LISTE SCHREIBEN
theList = List.Make
for each b in theBitmap
theList.Add(b.clone)
end
'--------------------------------
'OBJEKTE SPEZIFIEREN
no0 = theList.get(0)
no1 = theList.get(1)
'--------------------------------
'OBJEKTE EINZELN BEARBEITEN (HIER ALS BSP. EINFACH VALUE SETZEN)
theField = theVTab.findField("XY")
theVTab.setValue(theField,no0,99)
theVTab.setValue(theField,no1,11)
theVTab.flush
Gespeichert von Krüger am Di., 24.02.2004 - 14:58
Permalinkhier die Schleife
dasthema_tab=dasthema.getFtab
suche_tab=dasThema_tab.getselection
for each rec in suche_tab
finden.SelectByTheme( auswahl, #FTAB_RELTYPE_ISWITHINDISTANCEOF,
distance , #VTAB_SELTYPE_NEW )
av.run("xyz",self)
end
hinweis dasthema und auswahl sind identische Themen(logisch)
und in script "xyz" wird noch auf weitere "unterscripte" verwiesen
gruß
kay
Gespeichert von jörg Thomsen am Di., 24.02.2004 - 15:49
Permalinkdie SelectByTheme Methode habe kaum genutzt. Kann es sein, dass durch #VTAB_SELTYPE_NEW die Auswahl neu gesetzt wird, dh. in der Bitmap suche_tab nur noch ein Eintrag vorhanden ist und die Schleife dewegen auch nur einmal durchlaufen wird?
Ist vor dem ersten Schleifendurchlauf sicher gestelt, dass die Selektion korrekt ist?
Maxilla: ??
Die Schleife ist doch hervorragend geeignet. Würdest Du 1000 Zeilen mit
theVTab.setValue(theField,noY,X)
füllen, wenn Du 1000 Objekte bearbeiten willst? Außerdem ist bei einer Auswahl ja auch gar nicht bekannt, wieviele Ojekte bearbeitet werden müssen. Du könntest natürlich Dein Script zur Einzelbarbeitung dynamisch erzeugen, wenn Du weißt wieviele 'theVTab.setValue(theField,no0,99)' Du brauchts. Am besten machst Du das in einer Schleife ;-)
Jörg
Gespeichert von Maxilla am Di., 24.02.2004 - 15:57
Permalinkhast du wohl 'n büschn Recht. Dank für den zarten Hinweis :o]
M.
Gespeichert von jörg Thomsen am Di., 24.02.2004 - 16:00
PermalinkGespeichert von Krüger am Mi., 25.02.2004 - 11:02
PermalinkGruß Kay