Autor
|
Thema: 3D-Objekte auf anderen Objekten animieren (1627 mal gelesen)
|
fragensteller Mitglied
Beiträge: 8 Registriert: 22.02.2007
|
erstellt am: 22. Feb. 2007 21:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte BEs auf anderen 3D-Objekten animieren. Ich habe die x- und y-Koordinaten der BEs auf den anderen Objekten. In der Hilfefunktion habe ich gelesen, dass man es evtl. mit der Methode "sendenachricht" und dem 3D-Attribut "anipathchild" machen kann? Hat jemand von euch ein Beispiel dazu? Bei mir funktioniert es irgendwie überhaupt nicht. Die BEs werden nicht an den gegebenen Positionen animiert. In meinem Programm sieht es so aus: flaechenobjekt.sendenachricht("1 \"testpfad\" {{10 20 0}}"); Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Feb. 2007 02:24 <-- editieren / zitieren -->
so gehts ------------------ Der Simulator |
fragensteller Mitglied
Beiträge: 8 Registriert: 22.02.2007
|
erstellt am: 26. Feb. 2007 11:08 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort. Mit einem (!) Behälter auf einem anderen Objekt klappt es jetzt sehr gut. Probleme treten auf, wenn ich einen weiteren Behälter dazu stellen möchte. Einen Pfad kann man ja nicht hinzufügen, ohne dass der alte gelöscht wird. Ich habe also versucht, alle Pfade neu zu erzeugen. Dann hängen sich aber beide Behälter an ein und denselben Pfad. Es sieht dann so aus, als würde nur ein Behälter auf dem Objekt stehen. Füge ich nur einen Pfad hinzu und nehme in Kauf, dass dadurch der alte Pfad gelöscht wird, so wird auch der erste Behälter irgendwann (nicht sofort) entfernt. Es werden dann nur die Behälter angezeigt, zu denen ein Pfad existiert. Wie bekomme ich es hin, dass sich ein Behälter nur an einen "freien Pfad" anhängt? Oder anders: 2D-Anipunkt und 3D-Anipfad haben ja schon die gleichen Namen (Darauf achte ich.). Was muss man machen, damit sich ein 3D-Behälter an den Pfad anhängt, der zum 2D-Anipunkt gehört, an den sich das 2D-Gegenstück des 3D-Behälters hängt. Oder was noch besser wäre... kann man einem Behälter mitteilen, an welchen Pfad er sich hängen soll? In 2D gibt es ja auch die Methoden "verbindeAniPunkt" und "umlagern". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 26. Feb. 2007 20:06 <-- editieren / zitieren -->
naja, so ganz stimmt das nicht mit den Pfaden. Du kannst die Pfade auslesen im eMPlant 2D und entsprechend verändern und wieder zurueckschreiben. Siehe hierzu das Thema benutzerdefinierte Attribute und den Reiter "Kommunikation". Und so funktioniert es mit mehreren Pfaden, am Beispiel einer Parallelstation (s. Anhang) ------------------ Der Simulator |
fragensteller Mitglied
Beiträge: 8 Registriert: 22.02.2007
|
erstellt am: 26. Feb. 2007 21:11 <-- editieren / zitieren --> Unities abgeben:
@Simulator: Ich bin froh, dass ich jemanden gefunden habe, der sich so gut damit auskennt. Danke. Ich versuche es noch mal anders zu erklären. Ich habe auf einem Lager-Baustein in 2D Anipunkte erzeugt. Sie sind zum Beispiel von 1 bis 6 durchnummeriert. Auf diese Anipunkte werden Behälter (BEs) gestellt, mit Hilfe von "umlagern" und "pe" (damit jeder Behälter seinen Anipunkt findet, pe[3,1] -> Anipunkt 3). Während der Simulation werden Behälter und ihre Anipunkte gelöscht und neue kommen hinzu, immer mit anderen Koordinaten. Nun möchte ich, dass es in 3D genauso funktioniert. Wenn ich nun aber 6 Anipfade erzeuge, die auch von 1 bis 6 durchnummeriert sind, dann werden alle Behälter auf Anipfad 1 angezeigt. Ich verstehe nicht, warum ein Behälter mit einer bestimmten ID in 2D zum Beispiel auf Anipunkt 3 und in 3D dann doch auf Anipfad 1 angezeigt wird. Lagerplätze möchte ich nicht verwenden, weil diese ja über die Fläche gleichverteilt werden. Was bedeutet eigentlich anicycletimeschild? Zu dieser Methode habe ich gar nichts gefunden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 26. Feb. 2007 21:29 <-- editieren / zitieren -->
@ anicycletimeschild. Hier kannst Du den Zeitverbrauch eines 3D-Objektes fuer die korrespondierende Strecke definieren. anicycletimeschild sollte immer eine Wert>>0 haben ! @lagerplaetze moechte ich nicht verwenden nun, genau das habe ich in meinem Beispiel getan. In 3d werden ueber #x#y die Lagerplatzpositionen definiert (s. vorheriges Beispiel) Du kannst durch Veränderung von #x#y genau das gleiche herbeifuehren wie im 2d .pe[3,1] entspricht z.B. Pfad "#2#0" Schau Dir mal das Thema "Lagerplätze" in der 3D-Beschreibung an ------------------ Der Simulator |
fragensteller Mitglied
Beiträge: 8 Registriert: 22.02.2007
|
erstellt am: 26. Feb. 2007 21:37 <-- editieren / zitieren --> Unities abgeben:
@Simulator: Du hast geschrieben: Du kannst durch Veränderung von #x#y genau das gleiche herbeifuehren wie im 2d .pe[3,1] entspricht z.B. Pfad "#2#0" Schau Dir mal das Thema "Lagerplätze" in der 3D-Beschreibung an Auf diese Idee bin ich noch gar nicht gekommen. Meine Anipunkte in 2D sind aber nicht gleichverteilt über die Fläche. In 3D sind sie es doch aber immer, oder? Soll ich gar keine Lagerplätze erzeugen, sondern nur die Anipfade nach dem Schema #0#0 benennen?
Ich habe dem 2D-Lager nämlich einfach nur ein neues Bild zugewiesen, sodass es jetzt wie eine große Fläche aussieht, auf der in unregelmäßigen Abständen Behälter abgestellt werden können. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 26. Feb. 2007 23:16 <-- editieren / zitieren -->
Für jeden Platz eines Lagers gibt es eine korrespondierende 3d-Position und 0rientierung ! Wenn Du ein Be via @.umlagern(lager.pe(1,1)) umlagerst, so wird es auf der zugehoerigen 3d-Position "#0#0" dargestellt. Wie in meinem Beispiel gezeigt, kannst Du jede Lagerplatzposition individuell verändern und aus ihr sogar noch einen animationsfähigen Pfad machen. ------------------ Der Simulator |
fragensteller Mitglied
Beiträge: 8 Registriert: 22.02.2007
|
erstellt am: 27. Feb. 2007 10:07 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 28. Feb. 2007 00:19 <-- editieren / zitieren -->
Du kannst die Inhalte der 3d-Attribute (wie name (color)) ueber eine def. Verbindung zu den (benutzerdefinierten) Attributen erhalten. Ueber diese Vorgehensweise wird z.B. das name-Attribut gehandelt.
------------------ Der Simulator |
fragensteller Mitglied
Beiträge: 8 Registriert: 22.02.2007
|
erstellt am: 28. Feb. 2007 18:06 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 28. Feb. 2007 19:38 <-- editieren / zitieren -->
fuer Dein Objekt erzeugst Du ein benutzerdefiniertes Attribut (String), das den selben Name traegt wie das jeweilige 3d-Objekt. In Deinem Fall also "color". Unter dem "Kommunikations-Reiter" gibt es ein Eingabefeld "Kanal-ID" Dort traegst Du 3d ein. Im 3d-Fenster oeffnest Du den 3d-Browser (ctrl+b) und selektierst Dein 3d-Objekt. Im rechten Fenster des Browsers markierst Du das "color"-Attribut und drückst die rechte Maustaste. In dem eingeblendeten Relations-Menue trägst Du Folgendes ein: Objekt: # Type: notify Update: done Priority: 10 Nun kannst Du ueber das 2d-Attribut "color" dem Objekt eine Farbe zuordnen z.B. #FF0000 fuer rot bzw. danach logischerweise wieder auslesen. ------------------ Der Simulator |
sim3dvis Mitglied
Beiträge: 10 Registriert: 15.03.2007
|
erstellt am: 28. Mrz. 2007 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für fragensteller
Zitat: Original erstellt von Simulator: fuer Dein Objekt erzeugst Du ein benutzerdefiniertes Attribut (String), das den selben Name traegt wie das jeweilige 3d-Objekt. In Deinem Fall also "color".Unter dem "Kommunikations-Reiter" gibt es ein Eingabefeld "Kanal-ID" Dort traegst Du 3d ein. Im 3d-Fenster oeffnest Du den 3d-Browser (ctrl+b) und selektierst Dein 3d-Objekt. Im rechten Fenster des Browsers markierst Du das "color"-Attribut und drückst die rechte Maustaste. In dem eingeblendeten Relations-Menue trägst Du Folgendes ein: Objekt: # Type: notify Update: done Priority: 10 Nun kannst Du ueber das 2d-Attribut "color" dem Objekt eine Farbe zuordnen z.B. #FF0000 fuer rot bzw. danach logischerweise wieder auslesen.
Die Frage ist aber wirklich, wo so etwas steht??? Gibt es eine Doku von TM oder UGS oder wem auch immer, in der solche Dinge erklärt sind. Da weiß ja kein Mensch, wo man welche Relations setzen muss, um bestimmte Ziele zu erreichen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 28. Mrz. 2007 18:54 <-- editieren / zitieren -->
Zitat: Original erstellt von sim3dvis: Die Frage ist aber wirklich, wo so etwas steht??? Gibt es eine Doku von TM oder UGS oder wem auch immer, in der solche Dinge erklärt sind.
Diese Frage stellt sich eigentlich nicht, denn jede SW hat undokumentierte Funktionen, die primaer fuer Spezialisten gedacht sind -in Fachzeitschriften werden solche Funktionen dann gerne unter "tips & tricks" beschrieben. Zitat: Original erstellt von sim3dvis: Da weiß ja kein Mensch, wo man welche Relations setzen muss, um bestimmte Ziele zu erreichen.
Wie lauten denn Deine bestimmten Ziele ? ------------------ Der Simulator
|