Hot News:

Unser Angebot:

  Foren auf CAD.de
  Enterprise Dynamics
  Labels und Channels

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Labels und Channels (688 mal gelesen)
loland
Mitglied


Sehen Sie sich das Profil von loland an!   Senden Sie eine Private Message an loland  Schreiben Sie einen Gästebucheintrag für loland

Beiträge: 2
Registriert: 17.08.2005

erstellt am: 17. Aug. 2005 16:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo allerseits,

ich bin Anfänger im simulieren und fände es echt super wenn mir vielleicht jemand einen Tipp geben könnte:

Aufgabe:
Von einem Server aus sollen 3 verschiedene Schiffstyp-Atome (A,B,C) an 7 Liegeplätze weitergeleitet werden. 2 Liegeplätze sind nur für Typ A, 2 weitere für A und B, sowie 3 weitere für die Typen A,B,C. Jeder Schiffstyp soll natürlich nur zu einem für ihn vorgesehenen Liegeplatz weitergeleitet werden.


Problem:
Ich habe es mit folgendem If-Satz probiert, leider mit nur wenig Erfolg:

if(=(label([Schiff],i),1),indexmax(7,*(ocready(count,c),random(100000))),(if(=(label([Schiff],i),2),indexmax(5,*(ocready(count,c),random(100000))),indexmax(3,*(ocready(count,c),ran dom(100000))))))

Wenn ich folgenden Satz ins “send to” Feld des Servers einsetze wird leider nur der letzte Teil des Textes (ab dem letzten "indexmax") berücksichtigt. D.h. in diesem Fall werden die Schiffe per „Random“ Funktion an die ersten 3 Channels weitergeleitet.
Wahrscheinlich werden die Labels nicht oder falsch gelesen?!

Zur weiteren Info: Die Aufgabe ist umfangreicher als oben angegeben. Es werden 3 Labels in den Sources erzeugt. Sie haben alle den Namen "Schiff" und unterscheiden sich durch die values 1-3 um die 3 versch. Schiffstypen darzustellen.


Bin für jede Hilfe dankbar!

Viele Grüße
loland


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

g.zeller
Mitglied
Ingenieur


Sehen Sie sich das Profil von g.zeller an!   Senden Sie eine Private Message an g.zeller  Schreiben Sie einen Gästebucheintrag für g.zeller

Beiträge: 21
Registriert: 01.03.2005

erstellt am: 21. Aug. 2005 17:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für loland 10 Unities + Antwort hilfreich


schiff.mod.txt

 
Hallo Loland,

Du hast Recht: Offensichtlich hat die Variable "Schiff" nie den Wert 1 oder 2 (vielleicht hast Du einen String verwendet, dann müsste die Vergleichsoperation "comparetext" heißen.)
Die Lösung mit der If-Bedingung ist aber auch sehr kompliziert und verschachtelt. Außerdem lässt sie sich nicht so einfach eweitern, wenn z.B. noch eine weitere Schiffsvariante eingeführt werden würde.
Random liefert außerdem keine ganze Zahl, die man für die Anweisung im Sendto-Befehl eigentlich braucht (alles andere ist unsauber)

Mein Vorschlag: Arbeite mit einer "Case-Anweisung", der zugehörige Fall ergibt sich aus einer "inlist"-Anweisung. Darin kann für jede Schiffsvariante eine eigene Anweisung geschrieben werden.  Die zweite Frage nach der erweiterten Namensgebung kann ich auch gleich beantwortet: Man muss auch hier  zwischen String und Zahl unterscheiden, am Besten, man wertet den Wert der Variablen "Schiff" gleich als String aus.

Die Unterscheidung der Fälle sieht also folgendermaßen aus:

case(
inlist(ddb([schiff],first(c),2),[schiff_1],[schiff_2],[schiff_3]) +1,

Anweisung Fall 1 = unbekannnter Schiffsname,

Anweisung Fall 2 = Schiff 1,

Anweisung Fall 3 = Schiff 2,

Anweisung Fall 4 = Schiff 3,

)

Die genaue Anweisungen für die einzelnen Fälle sind in der Syntax ein bisschen komplizierter, ich habe deshalb das Modell angehängt.
(Bitte bei dem Dateinahmen die extension .txt wieder löschen.)

Bitte darauf achten, daß bei der Sendto-Anweisung auf das Produkt mit "First(c)" referenziert werden muss.

Das Modell kann mit der Demoversion von ED geladen werden, die auf der Seite www.indusim.de zu finden ist.

Natürlich könnte man noch wesentlich kompliziertere Fälle mit Hife einer Matrix etc abbilden, in der nicht mehr für jeden Schiffsnamen eine eigene Anweisung notwendig ist, ich denke aber, in diesem Fall ist die vorgeschlagene Lösung einfacher.

Ich hoffe, das Problem soweit gelöst zu haben,
viel Spaß mit der Auswertung,
Georg Zeller

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

loland
Mitglied


Sehen Sie sich das Profil von loland an!   Senden Sie eine Private Message an loland  Schreiben Sie einen Gästebucheintrag für loland

Beiträge: 2
Registriert: 17.08.2005

erstellt am: 22. Aug. 2005 16:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo G.Zeller,

vielen Dank für die Hilfe. Echt toll dass es Leute wie Dich gibt!
Die Lösung ist echt professionell.

Ich habe in der Zwischenzeit weiter an meinem If-Satz gearbeitet und bin auch dort zu einer Lösung gekommen - sieht folgendermaßen aus:

if((ddb([Schiff],rank(1,c)))=1, indexmax(7,*(ocready(count,c),random(100000))),(if(ddb([Schiff],rank(1,c))=2, indexmax(5,*(ocready(count,c),random(100000))) , indexmax(3,*(ocready(count,c),random(100000))))))

Also vielen Dank und Grüße

loland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz