Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  3D-Objekte auf anderen Objekten animieren

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:  3D-Objekte auf anderen Objekten animieren (1578 mal gelesen)
fragensteller
Mitglied


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

Beiträge: 8
Registriert: 22.02.2007

erstellt am: 22. Feb. 2007 21:59    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,

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat


d_3d01.JPG


d_3d01.spp.JPG

 
so gehts

------------------
Der Simulator

fragensteller
Mitglied


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

Beiträge: 8
Registriert: 22.02.2007

erstellt am: 26. Feb. 2007 11:08    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

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat


d3d02.jpg

 
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


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

Beiträge: 8
Registriert: 22.02.2007

erstellt am: 26. Feb. 2007 21: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

@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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

@ 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


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

Beiträge: 8
Registriert: 22.02.2007

erstellt am: 26. Feb. 2007 21:37    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

@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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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


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

Beiträge: 8
Registriert: 22.02.2007

erstellt am: 27. Feb. 2007 10:07    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

Danke, jetzt funktioniert es. 

Gibt es eigentlich auch ein Gegenstück zu "sendeNachricht"? Kann man also 3D-Attribute auch auslesen, z.B. die Farbe eines 3D-Objekts?

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


Ex-Mitglied

erstellt am: 28. Feb. 2007 00:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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


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

Beiträge: 8
Registriert: 22.02.2007

erstellt am: 28. Feb. 2007 18:06    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

Und wie funktioniert das? Unter welchen Hilfethemen kann man das zum Beipiel nachlesen?

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


Ex-Mitglied

erstellt am: 28. Feb. 2007 19:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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



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

Beiträge: 10
Registriert: 15.03.2007

erstellt am: 28. Mrz. 2007 16:39    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 fragensteller 10 Unities + Antwort hilfreich

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

    
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

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