Autor
|
Thema: Koordinaten für Netzwerke bzw. Stationen (649 / mal gelesen)
|
Julian2408 Mitglied
Beiträge: 26 Registriert: 09.07.2020
|
erstellt am: 02. Dez. 2020 18:06 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe einen generischen Ansatz entwickelt, der das Modell auf Basis einer vorliegenden Datenbank erzeugt. Nun wollte ich testen inwiefern sich der Ansatz auf einen anderen Datensatz übertragen lässt. Hierbei bin ich auf die Schwierigkeit gestoßen, dass die Koordinaten der einzelnen Stationen in unterschiedlicher Form vorliegen. In meinem ursprünglichen Datensatz waren es Werte in folgender Art: X: 10 Y: -15 Z: 0 Im zweiten Datensatz X: 2500 Y: 4600 Z: 0 Nun habe ich das Problem, dass ich die Fehlermeldung erhalte, dass sich die Station außerhalb des Netzwerks befindet. Dies liegt zum Einen an den extrem hohen Zahlenwerten, zum Anderen an dem positiven Y-Wert. Die zu hohen Werte habe ich versucht durch einfache Multiplikation (*0.01) zu verringern. Zusätzlich habe ich beim Y-Wert versucht mit minus zu multiplizieren (*-0.01). Ich erhalte dann keine Fehlermeldung mehr, aber das beeinflusst natürlich mein Modell und die Stationen erzeugt es so natürlich auch kreuz und quer. Ich habe dann versucht den AchsenUrsprung zu verändern, jedoch bisher ohne Erfolg. Kann mir jmd. sagen wie ich das Problem lösen kann? Ich denke da gibt es mal wieder eine ganze einfache Lösung dafür, man muss sie nur kennen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 02. Dez. 2020 18:46 <-- editieren / zitieren --> Unities abgeben: Nur für Julian2408
ja der Canvas hat eine Begrenzung, deshalb die Fehlermeldung. Ist irgendwas mit über 2000. Musst mal testen. Zitat: Zusätzlich habe ich beim Y-Wert versucht mit minus zu multiplizieren (*-0.01).
damit spiegelst du alles um die Y-Achse... also ehe verschieben um Offset.. Dafür must du ein [0,0] klar festlegen. Zitat: Die zu hohen Werte habe ich versucht durch einfache Multiplikation (*0.01) zu verringern.
das ist jetzt ein Wiederspruch zu Zitat: generischen Ansatz entwickelt, der das Modell auf Basis einer vorliegenden Datenbank erzeugt
Beispielsweise die Deminsion klar! definieren. Also wenn es nicht in Meter (integer) vorliegt, dann meckert der Import. Erweiterter Ansatz wäre: Der Nutzer wählt vor Import-Start die Einheit aus. (bsw. [mm],[cm], [m] usw.) Eig. für must-have Daten gängig. Weil es sind in Datenbank Daten, aber für dein Modell sind das Informationen...Die Transformation von Daten zu Information muss gleich der User-Erwartung sein. 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 |
Julian2408 Mitglied
Beiträge: 26 Registriert: 09.07.2020
|
erstellt am: 03. Dez. 2020 14:59 <-- editieren / zitieren --> Unities abgeben:
Hey Nadin, danke schon mal für deine Antwort. Zitat: Die zu hohen Werte habe ich versucht durch einfache Multiplikation (*0.01) zu verringern.
Sollte natürlich 0,001 heißen und damit wollte ich einfach erreichen, dass eben aus mm --> m wird und Plant Simulation mir das ganze auch verarbeiten kann. Zitat: also ehe verschieben um Offset.. Dafür must du ein [0,0] klar festlegen.
Kannst du mir sagen wie genau das geht? Ich habe in der Hilfe nachgelesen und dann einfach mal bisschen rumprobiert und eben diesen AchsenUrsprung verschoben, sodass man auch gut gesehen hat, dass er sich verschiebt und sich positive Y-Koordinaten nun eben auch im Bild befinden. Ich konnte jedoch trotzdem keine positiven Y-Werte einlesen und habe die gleiche Fehlermeldung erhalten. Muss ich hier zusätzlich noch irgendwas aktualisieren oder anpassen? [Diese Nachricht wurde von Julian2408 am 03. Dez. 2020 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: 03. Dez. 2020 21:29 <-- editieren / zitieren --> Unities abgeben: Nur für Julian2408
Zitat: dass eben aus mm --> m wird und Plant Simulation mir das ganze auch verarbeiten kann.
wenn du aus der DB weißt, dass es mm sind... es kann auch genau so gut hektar|Kühe|Elle uvm. sein Zitat: Ich konnte jedoch trotzdem keine positiven Y-Werte einlesen und habe die gleiche Fehlermeldung erhalten.
Also mal in Plant Sim V15 mit Station in 3D max Value geprüft (siehe Bild). X ist pos geht bis max 1600. Y ist negativ geht bis -1600. Somit: ja Y-dim mit *-1 multipliezieren --> Hast recht, du musst es spiegeln. Sorry mein fehler! (Ich glaub V14 hatte noch positiv. Kann leider nicht mehr nachprüfen )
------------------ 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 |
Julian2408 Mitglied
Beiträge: 26 Registriert: 09.07.2020
|
erstellt am: 06. Dez. 2020 09:31 <-- editieren / zitieren --> Unities abgeben:
Hey Nadin, also verstehe ich das richtig, dass Plant Simulation eben maximal X pos bis 1600 abbildet und y pos bis -1600. Wie sollte man mit Daten umgehen die außerhalb dieses Bereichs liegen? Was ich nicht ganz verstehe: Ich habe in den Modelleinstellungen die Längeneinheit nun von m in mm geändert. Meine ursprüngliche Methode sah so aus: Code: XPosition := .Benutzerobjekte.t_Stationen["X-Position", y] YPosition := .Benutzerobjekte.t_Stationen["Y-Position", y] ZPosition := .Benutzerobjekte.t_Stationen["Z-Position", y] XPosition := XPosition *0.001 YPosition := YPosition *-0.001 StationCoord := [XPosition, YPosition, ZPosition] ..... StationObject.Koordinate3D := StationCoord
Ich habe also mm Werte in der Tabelle und wandle sie so um in m Werte und spiegle außerdem die y-Werte. Bsp. Tabelle x = 17000 y= 11000; --> Nach Methode x = 17, y = -11 Nun dachte ich, wenn ich die Modelleinstellungen auf mm ändere, dass ich die Umrechnung weglassen kann. Dies ist aber wohl nicht der Fall. Wenn ich die Umrechnung weglasse, bekomme ich eine Fehlermeldung, dass sich die Stationen außerhalb befinden. Wenn ich aber die Attribute der generierten Station anschaue, sind die Koordinaten in mm hinterlegt: x= 17000, y=-11000. Ich rechne also zunächst mm in m um, damit mir das Modell letztendlich doch wieder mm Werte anzeigt? [Diese Nachricht wurde von Julian2408 am 06. Dez. 2020 editiert.] [Diese Nachricht wurde von Julian2408 am 06. Dez. 2020 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: 06. Dez. 2020 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für Julian2408
Zitat: also verstehe ich das richtig, dass Plant Simulation eben maximal X pos bis 1600 abbildet und y pos bis -1600. Wie sollte man mit Daten umgehen die außerhalb dieses Bereichs liegen?
Für V15 ja Zitat: Ich habe in den Modelleinstellungen die Längeneinheit nun von m in mm geändert.
das ist nicht damit gemeint... Mal ein Beispiel (Bild): Die DB ist hier mal eine Tabelle --> Daten(nameStation, XPos, YPos).. Ist nur die technische Machbarkeit umgesetzt. d.h. nur Canvas-Max ist beachtet (Daten zu Daten und ohne Förderwege und MA ... also nur reine Stationen werden im Netzwerk erzeugt) Dann ist der Ansatz Xneu = Xalt*faktor + offset Der Faktor skaliert, der Offset definiert meine [0,0] Position. ---------------- Wenn jetzt beispielsweise noch hübsch sein soll (also wenn ich Pos aus DB als Must-Have interpretieren muss), dann würde ich beispielsweise über ein Dialog gehen. Nach dem Moto: "Du allwissender Nutzer, was ist das? Kühe oder Meter?" Mit dieser Info teste ich dann die Skalierung. Wenn dann der Canvas-Test scheitert, würde ich den allwissenden Nutzer informieren und fragen: "Hey du, schau mal deine Positionen in DB sind von bis, aber maximal sind XXXX erlaubt. Darf ich es für dich skalieren?" Wenn Nutzer nun ja auswählt, dann sind die DB-Daten richtig und ich erzeuge das Netzwerk (Die Stationen und co. werden dann auch skaliert). Aber der Nutzer kann hier auch nein sagen (Weil die Daten können auch falsch sein). Wie letzendlich bei dir dies aussehen wird: ist tatsächlich dir selbst überlassen und sehr von der Aufgabenstellung abhängig. Die anfachste Form beispielsweise: "Nutzer die Positionsdaten dürfen in der DB nur in Meter als real hinterlegt sein" 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 |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|