Autor
|
Thema: create Track and TwoLaneTrack - SimTalk (405 mal gelesen)
|
NewPlantSimNutzer Mitglied
Beiträge: 39 Registriert: 07.12.2021
|
erstellt am: 07. Apr. 2022 09:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, gibt es eine Möglichkeit einspurige und zweispurige Wege über eine Tabelle mit den entsprechenden Konfigurationen erzeugen zu lassen: - Weglänge - Wegbreite - Wegposition Im Anhang habe ich ein kleines Beispiel hochgeladen, wie ich es gerne hätte und mit welcher Ausgangstabelle. Nun fehlt mir die entsprechende Methodik dafür um Sie erzeugen zu lassen. Ich bekomme zwar hin die Wege in das Modell einfügen zu lassen, jedoch nicht mit der richtigen Breite und Länge, lediglich das Objekt "Track" oder "TwoLaneTrack" wird mir hinzugefügt.
[Diese Nachricht wurde von NewPlantSimNutzer am 07. Apr. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 08. Apr. 2022 20:43 <-- editieren / zitieren --> Unities abgeben: Nur für NewPlantSimNutzer
Moin, sorry, ist bei mir ein wenig untergegangen. diese Erklärung gilt für V15 2D (es ist ein kleiner Unterschied, zwischen 2D und 3D da)
Zitat: - Weglänge - Wegbreite - Wegposition
ein "Track" und "TwoLaneTrack" haben eine Segmenttabelle. Diese enthält eine Abfolge von Punkten; In erster Zeile ist der Start--> Dieser Wert ist Leer, weil diese Wert durch die Weg.XPos und weg.Ypos gesetzt ist (Das ist die Wegposition). In darauffolgenden Zeilen stehen alle anderen Positionen der Punkte. Diese Angabe erfolgt relativ durch Winkel (>0) und Länge (>0). Der Winkel ist mithilfe der Trigonometrie berechenbar. Beispielsweise mit tan(x/y) und der Fallunterscheidung. X ist hier die Bildschirmbreite, Y ist die Bildschirmhöhe, die positiv nach oben geht. Die Länge über die Hypotenuse (beispielsweise Wurzel ziehen "sqrt") Wegbreite ist Weg.Breite ..es wäre - ist nur ein Vorschlag - einfacher, wenn gleich Winkel und Weg übergeben werden ------------------ 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 |
NewPlantSimNutzer Mitglied
Beiträge: 39 Registriert: 07.12.2021
|
erstellt am: 09. Apr. 2022 11:22 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 09. Apr. 2022 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für NewPlantSimNutzer
beispielsweise im ersten Stepp: kann der Nutzer in Excel die Werte so eingeben wie du es brauchst und eig. die Berechnung ist nicht kompliziert .... also bitte sowas net als kompliziert bezeichnen ------------------ Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern) [Diese Nachricht wurde von nadin1223 am 09. Apr. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NewPlantSimNutzer Mitglied
Beiträge: 39 Registriert: 07.12.2021
|
erstellt am: 25. Apr. 2022 14:44 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 25. Apr. 2022 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für NewPlantSimNutzer
Moin, was hast du bis jetzt in Excel für eine Eingabe vorgesehen? Was lädst du bis jetzt in Plant Sim für Informationen ein und Wie werden diese in die Tabelle geschrieben? ------------------ 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 |
NewPlantSimNutzer Mitglied
Beiträge: 39 Registriert: 07.12.2021
|
erstellt am: 25. Apr. 2022 17:43 <-- editieren / zitieren --> Unities abgeben:
Aktuell führe ich den Import über die Tabelle "createWay_Waagerecht" und "createWay_Senkrecht" mit der im Modell rechts stehenden Methode aus. Ich habe die Wege getrennt, damit es es eine bessere Übersichtlichkeit für den Anwender bietet. Aber die Methode wie ich Wege drehe, ist jetzt nicht besonders toll. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NewPlantSimNutzer Mitglied
Beiträge: 39 Registriert: 07.12.2021
|
erstellt am: 25. Apr. 2022 17:51 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 26. Apr. 2022 00:08 <-- editieren / zitieren --> Unities abgeben: Nur für NewPlantSimNutzer
Das rote Kreuz ist das Koordinatenursprung. es ist sichtbar sobald es nicht mit dem oberen Fenster-Bildschirmrand übereinstimmt. ZU angehängten Bild: Lege in der Klassenbibliothek einen Ordner an. Vergebe den Ordner einen Sinnvollen Namen. Lege alle Objekte, welche du modellierst in diesen Ordner rein. Dann gibt es auch diesen Verweis auf das Objekt. Dann ist dieses Objekt auch auffindbar beispielsweise über den Ursprung-Verkettung... So wie jetzt deine Klassenbibliothek ist; kann ich leider keine Struktur erkennen. ZU Weg: du darfst auch ein wenig faul sein ... also die Erzeuge Bausteine per Hand löschen ist echt sehr umständig ... ein Beispiel:
Code: --n.r. Bevor was erzeugt werden kann, muss du auch eine Methode vorsehen, welche --bestehende erzeugte Objekte löscht. --hier ein Beispiel als Reset. --damit könnte in Init das Modell erzeugt werden.for var i := root.NumNodes downto 1 loop --die Wege beispielsweise über den InternalClassName filtern if root.node(i).InternalClassName = "NW_Way" or root.node(i).InternalClassName = "Nw2Way" then root.node(i).deleteObject elseif root.node(i).origin.~ = .DeineWelt then--die Kreuzung beispielsweise über den Ursprung filtern root.node(i).deleteObject end next
ZU Wege erzeugen: ein Beispiel in Code
Code: var obj,obj_class bject var Xpos,Ypos,i,k:integer var succList:listvar _tab : table for i:=1 to Table_createWay_Waagerecht.yDim _tab.create --Erzeugen der Klassen obj_class:=str_to_obj(".Materialflow."+Table_createWay_Waagerecht[2,i]) -- Setzen der Koordinaten Xpos:=round(Table_createWay_Waagerecht[3,i]/root.scalingFactor) Ypos:=round(Table_createWay_Waagerecht[4,i]/root.scalingFactor) --Erzeugen der Objekte und Name ändern obj:=obj_class.createObject(root,Xpos,Ypos,Table_createWay_Waagerecht[1,i]) obj.getCurveSegments(_tab) _tab[1,2] := 0 --dieser Wert gibt dir den Winkel vor!!
_tab[2,2] := 10 --Wo ist Information über die Länge in Tabelle? obj.setCurveSegments(_tab) _tab.forget --n.r. ich bin mir nicht sicher, ob 15.X forget kannte. wenn hier Fehlermeldung, dann dies entfernen. -- setzen der Prozesszeiten next for i:=1 to Table_createWay_Senkrecht.yDim _tab.create --Erzeugen der Klassen obj_class:=str_to_obj(".Materialflow."+Table_createWay_Senkrecht[2,i]) -- Setzen der Koordinaten Xpos:=round(Table_createWay_Senkrecht[3,i]/root.scalingFactor) Ypos:=round(Table_createWay_Senkrecht[4,i]/root.scalingFactor) --Erzeugen der Objekte und Name ändern obj:=obj_class.createObject(root,Xpos,Ypos,Table_createWay_Senkrecht[1,i]) obj.getCurveSegments(_tab) _tab[1,2] := 90 --dieser Wert gibt dir den Winkel vor!! _tab[2,2] := 10 --Wo ist Information über die Länge in Tabelle? obj.setCurveSegments(_tab) _tab.forget -- setzen der Prozesszeiten next --das kann auch eine For-Schleife machen
damit wird noch nicht alles so auf die Position gesetzt, wie du grade dies per drehen setzt. Hoffe es wird ein wenig ersichtlich wie dies so gehen könnte. INFO: Jede Spalte, die keine Überraschung darstellt - also beispielsweise immer Kreuzung - ist uninteressant!! ------------------ 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 |
NewPlantSimNutzer Mitglied
Beiträge: 39 Registriert: 07.12.2021
|
erstellt am: 26. Apr. 2022 15:43 <-- editieren / zitieren --> Unities abgeben:
Ah, okay... Nur hatte ich das nie eingestellt gehabt. Bekommt man das irgendwie weg? Ich werde versuchen, dass morgen noch mit Umzusetzen, aber ich habe leider keine Zeit mehr um etwas ausprobieren... Das Modell muss jetzt einfach irgendwie ein bisschen laufen. Wieso betreten denn meine Fahrzeuge die Kreuzung nicht? Weißt du wieso die einfach davor stehen bleiben? LG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
NewPlantSimNutzer Mitglied
Beiträge: 39 Registriert: 07.12.2021
|
erstellt am: 26. Apr. 2022 15:46 <-- editieren / zitieren --> Unities abgeben:
Danke für den Tipp mit der Segmenttabelle. Ich weiß aber nicht so recht, wie ich den Bezug von meiner Tabelle in Plant Sim, die Daten in die Segmenttabelle schreiben soll und es dann auch der entsprechende richtige Weg ist.. LG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 27. Apr. 2022 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für NewPlantSimNutzer
Weil das Ziel in Transporter leer ist, versucht der Transporter in der Kreuzung auf die "Links_Ausgang" umzulagern. Weil "Links_Ausgang" nicht verbunden ist, wird der Transporter nicht umgelagert 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 |