Autor
|
Thema: 3D-Viewer per SimTalk starten möglich? (429 mal gelesen)
|
aloetscher Mitglied Logistiksimulation
Beiträge: 10 Registriert: 03.06.2005
|
erstellt am: 03. Okt. 2005 15:33 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Ich bin gerade dabei, mich mit dem 3D-Teil von eM-Plant zu befassen. Ich habe nun folgendes Problem: Ich habe ein Simulationsmodell, welches mittels genetischer Algorithmen ein Optimum bestimmt. Die optimale Lösung wird anschliessend nochmals berechnet. Aus Performanzgründen möchte ich nur die optimierte Lösung im 3D-Viewer anzeigen lassen. Nun weiss ich aber nicht, ob ich den 3D-Viewer per SimTalk öffnen kann. Für jeden Hinweis wäre ich sehr froh. Ein zweites Problem habe ich mit dem Positionieren der Bausteine, welche ich im Modell per "erzeugeObjekt()" erzeuge. Diese werden nämlich erst nach Klick auf Menübefehl "eM-Plant => 2D --> 3D => Alle" am richtigen Ort erzeugt. Weiss jemand auch zu diesem Befehl ein SimTalk-Alias? Ah, ja, bevor ich es vergesse, ich benutze noch eM-Plant der Version 7.08. Vielen Dank für eure Antworten und Gruss, Adrian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 03. Okt. 2005 16:07 <-- editieren / zitieren -->
Hi, also den 3D-Viewer kannst Du mit der SIMTALK-Methode "open3d" oeffnen; nach dem "open3d" solltest Du noch eine sleep(2)-Methode einbauen bevor Du die 3D-Objekte erzeugst, damit der Viewer Zeit hat sich aufzubauen. Gruss ------------------ DER SIMULATOR |
aloetscher Mitglied Logistiksimulation
Beiträge: 10 Registriert: 03.06.2005
|
erstellt am: 04. Okt. 2005 09:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, vielen Dank für deine Antwort. Das Öffnen klappt nun einwandfrei. Jetzt habe ich aber noch ein Problem mit dem Schliessen des 3D-Viewers über den Befehl "beendeViewer". Nach Ausführung dieses Befehls und sleep(2) erscheint im TabViewer (im Register 3D-Model) wie gewünscht die Meldung "3D Viewer nicht gestartet", im Menü "3D" ist aber noch der Befehl "3D-Viewer schliessen" aktiv. Auch die Ausführungsgeschwindigkeit der Simulation entspricht noch der einer 3D-Simulation. In der Konsole erscheint bei Ausführung von "beendeViewer" zudem die Meldung "3D wird geschlossen. Möchten Sie Ihr Modell speichern?". Ich denke, man müsste irgendwie diese Meldung quittieren können, ich weiss aber nicht wie. Kennst du auch dazu eine Lösung? Gruss und nochmals Dank, Adrian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 04. Okt. 2005 14:10 <-- editieren / zitieren -->
Hi, habe das, was Du beschrieben hast, nachvollzogen. In der Tat stimmt da was nicht! Habe deshalb diese Sache zur Bearbeitung /Korrektur an die UGS/TMX Hotline weitergegeben. Hier ein Workaround: Du kannst ja bei den meisten Objekten den Viewerprozess selber definieren.(s. Reiter "extras"); Defaultmässig ist "3d" - also der 3d-Viewer eingestellt. Wenn du z.B. für die Be´s diesen Namen löscht ( 1x in der Klassenbibliothek) dann sollte die Simulation bei aktivem 3d-Viewer wieder so schnell laufen wie die 2d-Simulation. Gruss ------------------ DER SIMULATOR
[Diese Nachricht wurde von Simulator am 04. Okt. 2005 editiert.] |
aloetscher Mitglied Logistiksimulation
Beiträge: 10 Registriert: 03.06.2005
|
erstellt am: 04. Okt. 2005 14:40 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 05. Okt. 2005 20:51 <-- editieren / zitieren -->
Hallo Adrian, mich interessiert, ob diese Möglichkeit, den Datenaustausch 2D <--> 3D zu kappen (partiell), soweit funktioniert hat. Konnte damit das Problem umgangen/gelöst werden oder sollte noch nach weiteren Möglichkeiten nachgedacht werden ? Gruss ------------------ DER SIMULATOR |
aloetscher Mitglied Logistiksimulation
Beiträge: 10 Registriert: 03.06.2005
|
erstellt am: 06. Okt. 2005 09:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, jetzt bin ich endlich dazugekommen, den Workaround mit dem Kappen des 2D <--> 3D Datenaustausches auszuprobieren. Dies ergab bei mir nicht den gewünschten Effekt, denn es erschien im Sekundentakt die Meldung in der Statuszeile, dass die Simulation verzögert wird. Es mag aber auch daran liegen, dass ich nur bei den beweglichen Bausteinen die KanalId "3d" herausgenommen habe, ich habe dies aber nicht mehr weiter untersucht, da ich einen anderen Weg gefunden habe. Und zwar erstelle ich nun bei geöffnetem 3D-Viewer die Verbindung zum 3D-Viewer über den Befehl "verbinde3DViewer", bevor ich die Objekte erzeuge. Nachdem die Objekte erzeugt sind, trenne ich diese Verbindung wieder, wenn ich keine Animation wünsche. Codemässig sieht das ganze dann folgendermassen aus: verbinde3DViewer(true); createLayout; -- eigene Methode zur Erstellung der Objekte verbinde3DViewer(false); Nun habe ich noch ein Problem, dass alle die von mir erzeugten Objekte in der Mitte des 3D-Viewer-Netzwerkes erzeugt werden. Ich habe dieses Problem aber noch nicht genügend untersucht und werde hier dann wieder posten, wenn ich genaueres darüber weiss. Gruss, Adrian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
aloetscher Mitglied Logistiksimulation
Beiträge: 10 Registriert: 03.06.2005
|
erstellt am: 06. Okt. 2005 10:57 <-- editieren / zitieren --> Unities abgeben:
Hi, so, nun habe ich auch noch mein Problem analysieren können, warum die von mir erzeugten Objekte in der Mitte des 3D-Viewer-Netzwerkes angezeigt werden. Dies ist der Fall, wenn man die Verbindung zum 3D-Viewer wieder neu aufbaut und danach nicht auf den Menübefehl "em-Plant => 2D-->3D => Alle" klickt. Da ich dazu keinen SimTalk-Befehl gefunden habe, setze ich nun die Position der Bausteine über den Befehl "sendeNachricht" manuell. Ich finde dies sowieso geeigneter, da man somit die Position ganz unter seiner Kontrolle hat. Der Befehl sieht dann folgendermassen aus: meinObjekt.sendeNachricht("position", "3 x y z"); wobei: meinObjekt = Pfad zum 2D-Objekt x, y, z = x-, y-, z-Position Gruss, Adrian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|