| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Bauteil nach Abhängigkeit bewegen (1839 mal gelesen)
|
Ulr1ch Mitglied Konstrukteur
Beiträge: 75 Registriert: 18.12.2003 IV9 Windows XPpro Pentium 4 2,4GHz 1,5GB RAM
|
erstellt am: 28. Jan. 2004 09:45 <-- editieren / zitieren --> Unities abgeben:
Hallo allerseits, in Baugruppen steht dem Anwender die Möglichkeit zur Verfügung Bauteile nach Abhängigkeit zu bewegen. Das ist eine gute Hilfe um Bewegungsabläufe darzustellen. Das ganze hat aber zwei Haken. Erstens muss man jedesmal die gewünschte Abhängigkeit aus dem Modellbaum heraussuchen und zweitens kann immer nur eine Abhängigkeit verändert werden und nicht mehrere hintereinander. Nun meine Frage: weis jemand ob und wie man die Funktion "nach Abhängigkeiten bewegen" per Makro starten kann? Folgendes hab ich bisher probiert: Ich habe die Parameter der Abhängigkeiten per Skript schrittweise verändert. Leider werden die einzelnen Schritte nicht angezeigt, sondern nur das Endergebnis. Die Bewegung ist also nicht sichtbar. Ich wäre sehr dankbar für Eure Hilfe! Viele Grüße aus dem verschneiten Süden Ulrich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Der Westfale Mitglied FH-Laboringenieur
Beiträge: 196 Registriert: 18.04.2002
|
erstellt am: 02. Feb. 2004 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Hallo Uli, schau doch mal, ob du bei www.sdotson.com noch irgendwo den Animator in Version 2.5 findest. Der war nämlich noch in VB programmiert, da kannst du dir die entsprechenden Teile rauskucken. Ich glaube, daß in einer Schleife die jeweiligen Abhängigkeitswerte geändert wurden und dann das Modell aktualisiert wurde. Wie genau weiß ich aber nicht; bin selber InvVB-Anfänger. Viel Erfolg wünscht ------------------ Jürgen L. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulr1ch Mitglied Konstrukteur
Beiträge: 75 Registriert: 18.12.2003 IV9 Windows XPpro Pentium 4 2,4GHz 1,5GB RAM
|
erstellt am: 03. Feb. 2004 08:20 <-- editieren / zitieren --> Unities abgeben:
Danke für den Tipp. Ich hab mir das Makro auch schon runtergeladen. Ich bin leider noch nicht dazu gekommen es auszuprobieren. In der Zwischenzeit habe ich mir anders geholfen: Ich hab mir Funktionen geschrieben, die, Abhängig von einer Referenzvariable die die ablaufende Zeit symbolisiert, Bauteile bewegt. Funktioniert auch gut, ist nur etwas umständlich einzugeben, kann aber immer wieder verwendet werden, ohne an der Funktion was zu ändern. Wenn jemand mehr darüber wisssen möchte, sagt mir bescheid. Servus Ulrich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Poliperze Mitglied construktor
Beiträge: 124 Registriert: 19.06.2003 IV 5.3 und 6.0 SP2 P4 2,2GHz / 1G RIM/ ATI 8800 fire GL
|
erstellt am: 27. Feb. 2004 13:56 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|
Ulr1ch Mitglied Konstrukteur
Beiträge: 75 Registriert: 18.12.2003 IV9 Windows XPpro Pentium 4 2,4GHz 1,5GB RAM
|
erstellt am: 02. Mrz. 2004 08:13 <-- editieren / zitieren --> Unities abgeben:
Ich hab mehrere Funktionen geschrieben, die abhängig von einer Referenz-Variable den Wert eines Parameters verändern. Die Funktionen heißen move1, move2, ... Der Code lautet wie folgt:
Code:
Public Function Move1(variable As Double, V_Start1 As Double, V_End1 As Double, W_Start1 As Double, W_End1 As Double) As Double If variable < V_Start1 Then Move1 = W_Start1 ElseIf variable >= V_Start1 And variable <= V_End1 Then Move1 = (W_Start1 + (W_End1 - W_Start1) / (V_End1 - V_Start1) * (variable - V_Start1)) ElseIf variable > V_End1 Then Move1 = W_End1 End IfEnd Function Public Function Move2(variable As Double, V_Start1 As Double, V_End1 As Double, W_Start1 As Double, W_End1 As Double, V_Start2 As Double, V_End2 As Double, W_End2 As Double) As Double Dim w_Start2 As Double w_Start2 = W_End1 If variable < V_Start1 Then Move2 = W_Start1 ElseIf variable >= V_Start1 And variable <= V_End1 Then Move2 = (W_Start1 + (W_End1 - W_Start1) / (V_End1 - V_Start1) * (variable - V_Start1)) ElseIf variable > V_End1 And variable < V_Start2 Then Move2 = W_End1 ElseIf variable >= V_Start2 And variable <= V_End2 Then Move2 = (w_Start2 + (W_End2 - w_Start2) / (V_End2 - V_Start2) * (variable - V_Start2)) ElseIf variable > V_End2 Then Move2 = W_End2 End If End Function
Anhand eines Beispiels möchte ich die Verwendung erklären: move1(ref; 10mm; 50mm; -10mm; 5mm) ==> Das Ergebnis ist abhängig von dem Parameter mit dem Namen "ref". Wenn sich dieser zwischen 10mm und 50mm bewegt, ändert sich das Ergebnis von -10mm bis 5mm. move2(ref; 10mm; 50mm; -10mm; 5mm; 100mm; 200mm; 27,5mm) ==> Move2 verhält sich genauso. Nur dass eine zweite Bewegung hinzu kommt. Nachdem zunächst die selbe bewegung wie im ersten Beispiel durchgeführt wird. Bewegt sich das Ergeniss auf 27,5 mm zu, wenn ref zwischen 100mm und 200mm ist. Mit etwas Geschick kann die Funktion auf weitere Bewegungen erweitert werden. (Ich hatte das schon, hab aber versehentlich die Datei gelöscht. Echt blöd) Ich geb zu, das alles klingt etwas kompliziert. (ist es auch) aber es Funktioniert ganz gut. Ich hoffe es kann jemand was damit anfangen.
Servus Ulrich
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Der Westfale Mitglied FH-Laboringenieur
Beiträge: 196 Registriert: 18.04.2002
|
erstellt am: 02. Mrz. 2004 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|
Poliperze Mitglied construktor
Beiträge: 124 Registriert: 19.06.2003 IV 5.3 und 6.0 SP2 P4 2,2GHz / 1G RIM/ ATI 8800 fire GL
|
erstellt am: 02. Mrz. 2004 17:26 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|