Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Objekte erzeugen und mit Variable bennen

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
Autor Thema:  Objekte erzeugen und mit Variable bennen (1158 mal gelesen)
Janine93
Mitglied
Studentin


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

Beiträge: 21
Registriert: 05.03.2021

Ich nutze Plant Simulation 12

erstellt am: 18. Apr. 2021 16:41    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 Nadin,

ich mal wieder...
Ich möchte, wie du dich vllt noch erinnern kannst, ein  Lager anhand einer Parametereingabe erzeugen. Dazu erzeuge ich Teilstücke und möchte diese aufsteigend benennen. Nun weiß ich nicht wie ich diese Variable "i" richtig an den Namen anhängen kann, sodass sie mit hochgezählt wird. Geht das irgendwie?

Code:

For var i :=  1 to 10
var LT : object := .Benutzerobjekte.Lagerteilstück.duplizieren(.Modelle.Modell, "LT"_i)
LT_i.setzePosition(100,100)
i := i+1
next

Danke schon einmal für die Hilfe!
LG Janine

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

nadin1223
Mitglied
Ing.


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

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 19. Apr. 2021 19:11    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 Janine93 10 Unities + Antwort hilfreich

mal Code kommentiert

Code:

For var i :=  1 to 10
//Nur deutsche Klassenbibliothek besitzt "Benutzerobjekte". (TIPP: eigenen Ordner mit eigenen Namen verwenden)
var LT : object := .Benutzerobjekte.Lagerteilstück.duplizieren(.Modelle.Modell, "LT"+i) //Strings verketten geht beispielsweise mit +
LT.setzePosition(100,100) //die Position des Objectes wird gesetzt, LT_1 ist Name und von Typ String
//i := i+1 //sowas niemals in einer For-Schleife machen. Dies macht die For-Schleife selbst!!!
next

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

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

Janine93
Mitglied
Studentin


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

Beiträge: 21
Registriert: 05.03.2021

Ich nutze Plant Simulation 12

erstellt am: 21. Apr. 2021 10:01    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


Aufbau_Teilstuck.PNG

 
Super das klappt wunderbar, danke sehr!

Und den Tipp mit den Benutzobjekten bzw besser einen eigenen Ordner anzulegen ebenfalls!
Jetzt würde ich gerne auf Knopfdruck alle Teilstücke wieder aus meinem Modell löschen.
Die Teilstücke sind wie folgt benannt:
LTj_i (also LT1_1, LT1_2, LT1_3, ... LT4_5, usw.)

Mein Code funktioniert leider nicht, was abzusehen war... ich weiß allerdings auch keine andere Lösung. Das Objekt aus der Klassenbibliothek löschen ist keine Option. Gibt es da eine andere Möglichkeit?

Code:
For var j := 1 to Regalanzahl
For var i:= 1 to Lagerplatzanzahl_pro_Regal
.Modelle.Modell."LT"+j+"_"+i.delete.object
next
next


Das gleiche Problem habe ich, wenn ich Kanten zwischen zwei Teilstücken erstellen will. Den Aufbau eines Teilstücks hab ich mal als Bild hochgeladen.

Code:
//Regale erstellen
For var j:= 1 to Regalanzahl
For var i :=  1 to Lagerplatzanzahl_pro_Regal
var LT : object := .Tool.Bausteine.Lagerteilstück.duplizieren(.Modelle.Modell, "LT"+j+"_"+i)
LT.setzePosition(400*j,(180*Lagerplatzanzahl_pro_Regal)-(180*(i-1)))
next
For var i:=1 to Lagerplatzanzahl_pro_Regal
var ki_j_a := .Materialfluss.Kante.verbinden(.Modelle.Modell.LTj_i.Übergang1, LTj_i+2_Eingang)
var kj_i_b := .Materialfluss.Kante.verbinden(.Modelle.Modell.LTj_i+2.Ausgang, LTj_i_Übergang)
next
next

[Diese Nachricht wurde von Janine93 am 21. Apr. 2021 editiert.]

[Diese Nachricht wurde von Janine93 am 21. Apr. 2021 editiert.]

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

nadin1223
Mitglied
Ing.


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

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 21. Apr. 2021 20:43    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 Janine93 10 Unities + Antwort hilfreich

Zitat:
Jetzt würde ich gerne auf Knopfdruck alle Teilstücke wieder aus meinem Modell löschen.

Beispielsweise in einer For-downto-Schleife die Objekte im Netzwerk durchgehen, den Ursprung oder InternalClassName von Objekt prüfen und wenn passen dann löschen.

-----------
zu Kante:

Kanten werden zwischen Objekten also any-Typ gesetzt. Das ist kein String.

".Modelle.Modell.LTj_i.Übergang1" das ist nicht dein Objekt! Programmierung interpretiert LTj_i als einen Objekt-Name, der nicht existiert! Dein Objekt ist einmal "var LT : object". Zum verbinden brauchst du zwei Objekte. Also musst du noch ein "var LT_Connect: object" (irrgendwo in For-Schleife) wird dies gemerkt, wenn bedingung SoUndSo dann Verbinde(LT,LT_Connect)...
 
TIPP: Kante nicht unbedingt separat in extra For-Schleife, dann hast du auch die zwei Objekte. Wenn es net klappt mit dem Umbau der For-Schleife, kannst auch die erzeugten Objekte in einer Tabelle als Verweis ablegen. (Tabellen sind auch hifreich bei Steuerung-Strategien wie auch Löschen von Objekten)

------------

TIPP: Im Kleinen dein Lager so wie du es brauchst manuel aufbauen und testen (Verifikation-Test). Dass es auch so funktioniert, wie du es dir vorstellst und du eine Vergleichsreferenz zum späteren Veri-Test hast.

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

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

Janine93
Mitglied
Studentin


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

Beiträge: 21
Registriert: 05.03.2021

Ich nutze Plant Simulation 12

erstellt am: 24. Apr. 2021 16:41    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

Liebe Nadin,

vielen Dank für deine stets hilfreichen und kompetenten Antworten!

In der Theorie habe ich es verstanden, in der Praxis habe ich gerade ein Problem, aber auch schon mit dem Erstellen und Benennen der Lagerteilstücke.
Ich musste leider von PlantSim 16 auf Version 12 wechseln (weil ich eine Lizenz vom Lehrstuhl bekommen habe). Soweit so gut, habe mich mittlerweile eigentlich gut an die Unterschiede in der Programmierung gewöhnt.
Allerdings funktioniert folgender Code, der in Plantsim 16 einwandfrei funktioniert hat (natürlich in 2.0 geschrieben) hier nicht:

Code:
is
j : integer;
i : integer;
LT : object;
do
For  j:= 1 to Regalanzahl loop
For  i :=  1 to Lagerplatzanzahl_pro_Regal loop
LT := .Modelle.Lagerteilstück.duplizieren(.Modelle.Tool, "LT"+j+"_"+i);
LT.setzePosition(400*j,(180*Lagerplatzanzahl_pro_Regal)-(180*(i-1)));
next;
next;
end;

Fehlermeldung kommt bei der Zeile: LT := .Modelle.Lagerteilstück.duplizieren(.Modelle.Tool, "LT"+j+"_"+i);
"Die Datentypen der Operanden sind nicht kompatibel"

Kannst du mir sagen wo der Fehler liegt?

Die Lagerteilstücke verbinde ich übrigens wie folgt:

Code:
is
j : integer;
i : integer;
LT : object;
LT_Connect : object;
do
For  j:= 1 to Regalanzahl loop
For  i :=  1 to Lagerplatzanzahl_pro_Regal loop
LT := .Modelle.Lagerteilstück.duplizieren(.Modelle.Tool, "LT"+j+"_"+i);
LT.setzePosition(400*j,(180*Lagerplatzanzahl_pro_Regal)-(180*(i-1)));
Layouttabelle.schreibeZeile(j, i, "LT"+j+"_"+i);
LT_Connect := .Modelle.Tool.Lagerteilstück("LT"+j+"_"+i-1);
If i > 1 then
.Materialfluss.Kante.verbinden(LT, LT_Connect);
end;
next;
next;
end;

wobei natürlich auch das nicht funktioniert wegen der oben genannten Fehlermeldung.

Ich danke für deine stetige und schnelle Hilfe!

LG Janine

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

nadin1223
Mitglied
Ing.


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

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 25. Apr. 2021 20:49    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 Janine93 10 Unities + Antwort hilfreich

Zitat:
Fehlermeldung kommt bei der Zeile: LT := .Modelle.Lagerteilstück.duplizieren(.Modelle.Tool, "LT"+j+"_"+i);
"Die Datentypen der Operanden sind nicht kompatibel"

glaub ab V12.2 sind Formate integer und string ohne zu konvertieren mithilfe + verkettbar.
Davor muss es string-Format sein. Also "to_str" ist nötig.

Code:
LT := .Modelle.Lagerteilstück.duplizieren(.Modelle.Tool, "LT"+to_str(j)+"_"+to_str(i));

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

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

Janine93
Mitglied
Studentin


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

Beiträge: 21
Registriert: 05.03.2021

Ich nutze Plant Simulation 12

erstellt am: 26. Apr. 2021 12:29    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

Ah okay, gut zu wissen! Danke!

Jetzt bekomme ich eine andere Fehlermeldung...
"Falsche Parameterzahl in duplizieren: 2 übergeben, 0 erwartet"

Weißt du woran das liegt?

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

nadin1223
Mitglied
Ing.


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

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 27. Apr. 2021 00:15    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 Janine93 10 Unities + Antwort hilfreich

V12 ist echt laaaange her 

Duplizieren / Ableiten sind seit ca. V14 gängig. Davor war es "erzeugeObjekt".

Allgemein zur Suche nach Attributen. Die Attribute sind alle in der Hilfe recht gut beschrieben...
"duplizieren" markieren F1 drücken --> sollte Hilfe für dieses Attribut angezeigt werden.
(Wenn net, dann in Hilfe "duplizieren" eintippen).

...und dies sind nur Syntax-Fehler... Die logischen Fehler werden viel interessanter ... 

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

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

Janine93
Mitglied
Studentin


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

Beiträge: 21
Registriert: 05.03.2021

Ich nutze Plant Simulation 12

erstellt am: 27. Apr. 2021 20:56    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

haha, das glaube ich dir 

danke für deine Tipps, es klappt jetzt alles!!!
logische Fehler sind auch korrigiert ;P Ich lerne fleißig dazu!

Mein Problem bei Attributen ist, dass ich manchmal gar nicht weiß wonach ich suchen muss. Aber ich werde trotzdem jetzt immer mehr die Hilfe nutzen. Danke 

LG Janine

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

nadin1223
Mitglied
Ing.


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

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 27. Apr. 2021 21:22    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 Janine93 10 Unities + Antwort hilfreich

Zitat:
Mein Problem bei Attributen ist, dass ich manchmal gar nicht weiß wonach ich suchen muss.

jep ist normal und mit der Zeit wird es besser.
Auch Fragen sind gut. Es zeigt Interesse am Verstehen des Problems wie auch Eigeninitiative bei der Recherche. 

Nun ist es mein Hobby, sodass eine Antwort meinerseits Zeit und Lust braucht. Das kann die Hilfe halt manchmal schneller erledigen. Auch trägt es zur Selbstständigkeit bei 

vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

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

Janine93
Mitglied
Studentin


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

Beiträge: 21
Registriert: 05.03.2021

Ich nutze Plant Simulation 12

erstellt am: 28. Apr. 2021 08:04    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

Echt toll, dass du anderen so super hilfst. Wirklich beeindruckend wie gut du dich in PlantSim auskennst.

Ohne dich wäre ich hier schon verzweifelt 

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)2023 CAD.de | Impressum | Datenschutz