| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY baut sein Angebot für den Vertrieb von NVIDIA Software-Angeboten für Reseller und professionelle Anwender aus |
Autor
|
Thema: Animation Kette, umlauf. Mitnehmer, VBA (7837 mal gelesen)
|
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 30. Dez. 2002 12:20 <-- editieren / zitieren --> Unities abgeben:
Hallo CAD-Gemeinde, ursprünglich bin ich dem Wahn verfallen, eine Rollenkette zu animieren, habe mich aber dann doch auf die Animation umlaufender Mitnehmer beschränkt. ( Beispiel anbei Inv.VI, Abhängigkeit 'Bewegkette' durchlaufen lassen ) Dabei bin ich über folgende Probleme gestolpert, weshalb die Erstellung auch recht umständlich war: 1.) Unzulänglichkeiten in der Abhängigkeit 'Übergang'. Eigentlich sollte es möglich sein den Mitnehmer mittels 'Übergang' an die Kurve zu binden und lediglich noch eine zusätzliche Abhängigkeit in der Länge zu variieren, geht aber nicht. 2.) Die Erstellung der einzelnen Mitnehmer und die erforderlichen Abhängigkeiten wollte ich über ein VBA-Makro vornehmen. Das Einfügen der Mitnehmer ist kein Problem, aber die Methode .AddMateConstraint(...) schmeißt mir jedesmal nen Fehler, wobei aber der Parameter für die Abhängigkeit in der Liste erzeugt wird, nur die Abhängigkeit selber wird nicht erstellt. Hat sonst noch jemand ähnliches probiert und weiter Anregungen ? Übrigens: die IGUS-Kette hier im Forum hilft dabei bedingt weiter. An alle guten Rutsch und frohes neues.
------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 30. Dez. 2002 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi Chefe, in der letzten Zeile in Sub AddMitnehmer ist ein Pfad für die Datei VW Entwurf Mitnehmer.ipt. Ich bekam auch immer den gleichen Fehler, weil eben der Pfad nicht gestimmt hat (ist klar, dein Pfad). Jetzt habe ich das an meinen Pfad angepasst, und zumindest bekomme ich jetzt keine Fehler Meldung mehr. Check mal deinen Pfad. PS: Ups, dein Problem ist in AddMateConstraint, sorry ich habe mich verlesen. ------------------ Grüße daywa1k3r [Diese Nachricht wurde von daywa1k3r am 30. Dezember 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 30. Dez. 2002 14:44 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hallo, interesantes Problem. Was mir so auf die Schnelle einfällt, sind ein paar flüchtigkeits Fehler. Ich habe aber keine Möglichkeit hier groß zu testen. 1. Dim oOcc As ComponentOccurence Set oOcc1... Set oOcc2... 2. AddMateConstraint liefert ein MateConstraint zurück. Du hast ein AssemblyConstraint deklariert. 3. AddMateConstraint erwartet als erste zwei Parameter zwei Objekte, also vielleicht wäre es besser: Dim oWPlane as Object Dim oWPoint as Object Vielleicht ändert das alles nichts an deinem Problem, oder vielleicht doch. Ich kann es vielleicht morgen testen. Bis dahin, viel Glück... ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
W. Holzwarth Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau
Beiträge: 9326 Registriert: 13.10.2000 Inventor bis 2024, Rhino 7, Mainboard ASUS ROG STRIX X570F-Gaming, CPU Ryzen 9 5900X, 64 GB RAM, 4 TB SSD, Radeon RX 6900 XT, Dual Monitor 24", Spacemouse Enterprise, Win 10 22H2
|
erstellt am: 30. Dez. 2002 15:53 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Robby Lampe Mitglied
Beiträge: 1026 Registriert: 18.10.2000
|
erstellt am: 30. Dez. 2002 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002 Eplan electric P8 professional Build 1.8.5.2413
|
erstellt am: 30. Dez. 2002 17:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Daywa1k3r, (hey, spitzen Name, nur bisschen schwer zu merken) Danke für die Hinweise, ändert aber beides nix, habs gerade in ner neuen Baugruppe ausprobiert. Gruß
------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 30. Dez. 2002 17:56 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
@W.Holzwarth, Robby, soweit kommen wir doch gar nicht. Wenn ich das richtig verstanden habe, sollte man eine Baugruppe öffnen, und die VW ENTWURF TRANSBAND.ipt einfügen. Danach mit der erste Funktion ein so VW ETNWURF MITNEHMER.ipt erstellen, und anschliessend mit AddMateConstraint die Abhängikeiten erstellen. Aber da macht es KABOOOOMM. Ich bin mir fast sicher, dass es entweder ein falsches Argument, oder falscher Return Typ, der Grund für die Abstürze ist.
------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 30. Dez. 2002 19:17 <-- editieren / zitieren --> Unities abgeben:
|
W. Holzwarth Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau
Beiträge: 9326 Registriert: 13.10.2000 Inventor bis 2024, Rhino 7, Mainboard ASUS ROG STRIX X570F-Gaming, CPU Ryzen 9 5900X, 64 GB RAM, 4 TB SSD, Radeon RX 6900 XT, Dual Monitor 24", Spacemouse Enterprise, Win 10 22H2
|
erstellt am: 30. Dez. 2002 20:11 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Aah, jetz', jahh, Scheffe. Dess lefft. Doch von VBA hab' ich keinen Schimmer. Da müsst' ich wohl mal ran. Aber man kommt ja kaum damit nach, die standardmäßig vorhandenen Software-Funktionen vernünftig anzuwenden .. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 30. Dez. 2002 20:15 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 30. Dez. 2002 21:03 <-- editieren / zitieren --> Unities abgeben:
Hi daywa..., ne mein Problem mit automatischem Erzeugen von Abhängigkeiten ist damit keineswegs behoben. Es bleibt, wie Du richtig erkannt hast, das KABOOOOM... Im Moment ist das Beispiel zwar mal ein Ansatz, aber 40 Mitnehmer mit je 3 Abhängigkeiten und denen noch ne Benutzerfunktion zuweisen,nö, sowas macht man nur einmal, das muß auch anders gehn. Vielleicht gibts ja auch nen andern Ansatz, z.B. adaptive Skizze oder sowas. Wie gesagt das Endziel ist die animierte Rollenkette ! Gruß
------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 30. Dez. 2002 22:01 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi Chefe, (Du kannst daywalker zu mir sagen), so, folgendes Makro funktioniert: Code:
Public Sub MateConstraint() ' Set a reference to the assembly component definition. Dim oAsmCompDef As AssemblyComponentDefinition Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition ' Set a reference to the select set. Dim oSelectSet As SelectSet Set oSelectSet = ThisApplication.ActiveDocument.SelectSet ' Validate the correct data is in the select set. If oSelectSet.Count <> 2 Then MsgBox "You must select the two entities valid for mate." Exit Sub End If ' Get the two entities from the select set. Dim oBrepEnt1 As Object Dim oBrepEnt2 As Object Set oBrepEnt1 = oSelectSet.Item(1) Set oBrepEnt2 = oSelectSet.Item(2) Debug.Print oBrepEnt1.Name Debug.Print oBrepEnt1.Type Debug.Print oBrepEnt2.Name Debug.Print oBrepEnt2.Type ' Create the insert constraint between the parts. Dim oMate As MateConstraint Set oMate = oAsmCompDef.Constraints.AddMateConstraint(oBrepEnt1, oBrepEnt2, 0) End Sub
Mach mal eine Baugruppe auf, füge deine VW ENTWURF TRANSBAND.ipt ein, und erzeuge, mit deiner Funktion ein VW ENTWURF MITNEHMER.ipt. So jetzt markiere in dem Object Browser Arbeitsebene6 und Arbeitspunkt1 (mit "Strg" Taste, schon klar). Dann lasse mal dieses Makro laufen. Deine Abhängigkeiten sind gesetzt, und achte mal auf den Objekten Typ. So jetzt machst Du mal das in IV rückgängig, und lass mal dein AddMateConstraint laufen. Füge aber die zwei Zeilen hinzu, die dir den Typ von oWPoints und oWPlanes im Debug Fenster ausgeben. Setze einen Halte Punkt wo das KABOOOOM passiert, und lasse es laufen. Achte auf den Typ. Und ?Das ist der falsche Typ, Mann. Also falsche Argumente. Mein Problem ist nur, dass ich hier nur mein Notbook habe. Dank XP Home Edition ist der jetzt, trotz seine 2.43 GHz so schnell wie ein Pentium 133Mhz. So jedes Mal wenn ich irgendwas in den Code eingebe, muss ich ca. 60 sec. warten bis ich weiter schreiben kann. In den Pausen habe ich so immer kleine Schlückchen von Amarula (so n Afrikanischer Liqeur, hhhmmm...) getrunken. Jetzt sehe ich, dass die Flasche halb leer ist, und ich sehe alles doppelt Mein Hund schaut mich schon ganz merkwürdig an. Naja, ich glaube, jetzt wird es wirklich Zeit, dass ich ein Betriebssystem drauf schmeisse, weil jetzt ist es amtlich XP HOME EDITION GEFÄRDET DIE GESUNDHEIT. Naja, bis demnächst,... Nachtrag:
also, ich habe die Konstanten ausgelesen, und es ist falsch: kWorkPlaneObject und kWorkPointObject und richtig wäre: kWorkPlaneProxyObject und kWorkPointProxyObject aber wie man die raus bekommt, bleibt mir noch ein Rätsel. ------------------ Grüße daywa1k3r
[Diese Nachricht wurde von daywa1k3r am 30. Dezember 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 31. Dez. 2002 12:42 <-- editieren / zitieren --> Unities abgeben:
Hi DayWalker, ( klappt schon besser mit dem Namen ) hoffe Du kannst Deinem Hund wieder in die Augen schauen... Wenn Du von den 40 Mitnehmern 39 rauslöscht, läßt sich auch wieder Code schreiben ohne an Alkvergiftung zu sterben, ich hatte das gleiche Problem, nehme aber schon wieder feste Nahrung zu mir. ja so funkts, inzwischen hab ich auch das Beispiel in der API-Reference gefunden. Offensichtlich arbeiten die Add...Constraint-Methoden wohl nur mit Proxy-Objekten, warum auch immer !? Ich hab dann mal versucht dem SelectSet über die Methode .Select(Object) die Auswahl automatisch durchführen zu lassen, tut aber nicht, brauch wohl auch Proxy-Objekte. Wie man nun an diese Proxy-Objekte rankommt oder normale in Proxy-Objekte wandelt bleibt allerdings als Frage offen. Über die API sollte es doch möglich sein Componenten einzufügen und diesen auch Abhängigkeiten zu erzeugen, wofür brauch denn sonst ne Automatisierungsschnittstelle ? Bis neulich dann ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 31. Dez. 2002 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi Chefe, Zitat:
hoffe Du kannst Deinem Hund wieder in die Augen schauen...
jep, alles wieder gut Zitat:
Wenn Du von den 40 Mitnehmern 39 rauslöscht, läßt sich auch wieder Code schreiben ohne an Alkvergiftung zu sterben, ich hatte das gleiche Problem, nehme aber schon wieder feste Nahrung zu mir.
geht schon viel besser. Zitat:
Ich hab dann mal versucht dem SelectSet über die Methode .Select(Object) die Auswahl automatisch durchführen zu lassen, tut aber nicht, brauch wohl auch Proxy-Objekte.
Haha, jo das habe ich auch versucht. Zitat:
Wie man nun an diese Proxy-Objekte rankommt oder normale in Proxy-Objekte wandelt bleibt allerdings als Frage offen.
Also, da gibt es eine Methode CreateGeometryProxy(Geometry As Object, Result As Object), aber irgendwie schaffe ich es nicht die sinnvoll (ohne Fehlermeldung) einzusetzen. Ich werde es aber weiter probieren, weil mich die Sache langsam wahnsinnig macht. Die Leute die konstruieren hier im Forum sind ziemlich fit, so wenn es eine Lösung über Konstruktion gäbe, hätten die die auch hier rein gepostet. Daher denke ich, dass der Weg über VB, zwar ein steiniger, aber doch der richtige ist.
------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 31. Dez. 2002 15:26 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
So, ich habs endlich: Code:
Public Sub AddAbhängigkeiten() ' Set a reference to the assembly constraints. ' This assumes an assembly document is open. Dim oAsmCompDef As AssemblyComponentDefinition Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition ' Set a refernce to all constraints Dim oAsmConst As AssemblyConstraints Set oAsmConst = oAsmCompDef.Constraints ' Select objects to constrain with ' Liste der Bauteile. Dim Number As Variant Dim oOcc1 As ComponentOccurrence Dim oOcc2 As ComponentOccurrence ' Wahl von zwei Bauteilen Number = oAsmCompDef.Occurrences.Count Set oOcc1 = oAsmCompDef.Occurrences.Item(Number) Set oOcc2 = oAsmCompDef.Occurrences.Item(1) 'Dim sel As SelectSet ' Auswahl der Objekte aus den Bauteilen Dim oWPoint As Object Dim oWPoint1 As Object Dim oWPlane As Object Dim oWPlane1 As Object Set oWPoint1 = oOcc1.Definition.WorkPoints.Item(2) Call oOcc1.CreateGeometryProxy(oWPoint1, oWPoint) Set oWPlane1 = oOcc2.Definition.WorkPlanes.Item(5) Call oOcc2.CreateGeometryProxy(oWPlane1, oWPlane) Debug.Print oWPoint.Name Debug.Print oWPoint.Type Debug.Print oWPlane.Name Debug.Print oWPlane.Type 'Add mate Constraint Dim oAsmNewConst As AssemblyConstraint Set oAsmNewConst = oAsmConst.AddMateConstraint(oWPoint, oWPlane, 3)End Sub
Eigendlich ganz einfach Guten Rutsch... ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 31. Dez. 2002 17:45 <-- editieren / zitieren --> Unities abgeben:
Hi DayWalker, ist doch immer wieder erstaunlich... Bin zwischenzeitlich auch über die Methode .CreateGeometryProxy(...) gestolpert. Hab dann geschlagene 2Std. mit dem Mistding (Doku is ja auch echt prickelnd) rumgekämpft, den Zorn meiner Familie zunehmnd auf mich ziehend, immer mit dem Resultat: "Typen unverträglich" Also insowerfen bin ich Dir zu ewigem Dank verpflichtet, naja zumindest für dieses Jahr Nun aber auf und Sylvester feiern Also guten Rutsch...
------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robby Lampe Mitglied
Beiträge: 1026 Registriert: 18.10.2000 Autodesk Inventor Pro/ENGINEER Wildfire (alle Versionen) Windchill ProductPoint Windchill Intralink
|
erstellt am: 03. Jan. 2003 18:26 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 03. Jan. 2003 21:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Robby, Hallo VBA-Spezialisten, so nun gehts richtig los: Wenn Ihr an beigefügtem Beispiel mal an dem Kettenrad dreht versteht Ihr nachfolgendes vielleicht Beim drehen des Kettenrades sollen sich folgende Abhängigkeiten der Kettengelenke programmgesteuert ändern: a) auflösen der Abhängigkeit zur XY-Ebene (30) b) erstellen der Abhängigkeit Einfügen an jeweiliger Ausbuchtung im Kettenrad Das ja nun soweit kein Problem, dank DayWalker Was mir aber echtes Kopfzerbrechen für die Animation bereitet ist: entweder ich drehe das Kettenrad animiert über eine Abhängigkeit Winkel, dann brauch ich aber Events, welche nach bestimmten Drehwinkeln ein Sub() aufrufen oder ich drehe das Kettenrad programmgesteuert, dann bekomm ich aber keine gescheite Animation hin, 'n Timer macht die Sache auch nicht besser. Hat sonst noch jemand ne Idee ? Grüße Oliver ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robby Lampe Mitglied
Beiträge: 1026 Registriert: 18.10.2000 Autodesk Inventor Pro/ENGINEER Wildfire (alle Versionen) Windchill ProductPoint Windchill Intralink
|
erstellt am: 04. Jan. 2003 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi Oliver, können wir erst einmal ein Problem lösen bevor wir hier eine Bibliothek der Ketten-, Riemen- und andere Antriebe aufzubauen. Hast Du mal den Korrekturwert in deine Förderkette eingebaut, damit diese nicht mehr nach dem 2-fachen Umfang die Mitnehmer verliert. Würde mich mal als Ergebnis interessieren (ohne die Postioniermöglichkeit). ------------------ gruß robby PS: Benutz doch deine Funktionen XPos,YPos,WPos + KPos zur Lösung [Diese Nachricht wurde von Robby Lampe am 04. Januar 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 05. Jan. 2003 02:11 <-- editieren / zitieren --> Unities abgeben:
Hi Robby, Deinen Korrekturwert hab ich dankend eingebaut Außerdem das Ergebnis aus dem Talk mit DayWalker Einfach mal das Makro "AddAlleMitnehmer" aufrufen Ich will hier keine Bibliothek auf aufbauen, aber ich hatte mir in den Kopf gesetzt eine Gliederkette zu animieren und geht nicht gibts nicht Du kannst ja mal versuchen für die Gliederkette XPos, YPos usw. zu bestimmen, das macht nämlich gerade beim Übergang von Gerade zu Kreis und vor allem umgekehrt Ärger, da zwei quadratische Gleichungen mit zwei Unbekannten bei rauskommt, deshalb such ich nach ner andern Lösung. So jetzt auch mich aber hin Grüße an alle Oliver ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robby Lampe Mitglied
Beiträge: 1026 Registriert: 18.10.2000 Autodesk Inventor Pro/ENGINEER Wildfire (alle Versionen) Windchill ProductPoint Windchill Intralink
|
erstellt am: 05. Jan. 2003 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 05. Jan. 2003 12:05 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Zitat:
Hi Oliver, war nicht so ernst gemeint mit der Biblio.
Doch, doch, der Robby ist ein ganz böser Nein im Ernst, wie auch sonst, ist auch diesmal dein Problem sehr interessant. Du hast das Problem richtig erkannt : beim Übergang von Gerade zu Kreis und vor allem umgekert Ärger Ich glaube Du würdest schneller ans Ziel kommen,wenn es gar keinen Übergänge geben würde. Einfach eine Linie. Ich weiß nicht ob das möglich ist, aber ich kann es mir schon vorstellen. Gestern Nacht habe ich versucht so ein Makro zu schreiben, das einfach ein Band als eine Linie zeichnet ?!?. Ich konnte aber keine Funktion finden, das mir in eine Linie einen Bogen reinzeichnet. Gelungen ist mir das, komischer Weisse nur mit einem 3DSketch !?! Eigendlich wollte ich eine exe machen, wo es möglich ist die Länge und die Breite einzugeben, aber dieses Makro tut es auch. Code:
Public Sub band() Dim oPartDoc As PartDocument Set oPartDoc = ThisApplication.ActiveDocument Dim oCompDef As PartComponentDefinition Set oCompDef = oPartDoc.ComponentDefinition Dim oTG As TransientGeometry Set oTG = ThisApplication.TransientGeometry Dim oWPs(1 To 6) As WorkPoint Set oWPs(1) = oCompDef.WorkPoints.AddFixed(oTG.CreatePoint(0, 0, 0)) Set oWPs(2) = oCompDef.WorkPoints.AddFixed(oTG.CreatePoint(10, 0, 0)) Set oWPs(3) = oCompDef.WorkPoints.AddFixed(oTG.CreatePoint(10, 4, 0)) Set oWPs(4) = oCompDef.WorkPoints.AddFixed(oTG.CreatePoint(0, 4, 0)) Set oWPs(5) = oCompDef.WorkPoints.AddFixed(oTG.CreatePoint(2, 0, 0)) Set oWPs(6) = oCompDef.WorkPoints.AddFixed(oTG.CreatePoint(8, 0, 0)) Dim oSketch3D As Sketch3D Set oSketch3D = oPartDoc.ComponentDefinition.Sketches3D.Add Dim oLine As SketchLine3D Set oLine = oSketch3D.SketchLines3D.AddByTwoPoints(oWPs(5), oWPs(2), True, 2) Set oLine = oSketch3D.SketchLines3D.AddByTwoPoints(oLine.EndPoint, oWPs(3), True, 2) Set oLine = oSketch3D.SketchLines3D.AddByTwoPoints(oLine.EndPoint, oWPs(4), True, 2) Set oLine = oSketch3D.SketchLines3D.AddByTwoPoints(oLine.EndPoint, oWPs(1), True, 2) Set oLine = oSketch3D.SketchLines3D.AddByTwoPoints(oLine.EndPoint, oWPs(6), True, 2) End Sub
Sowas müsste auch mit eine Linie möglich sein. Danach würde ich die Glieder zeichnen,und zwar so: Code:
Public Sub glied() Dim oPartDoc As PartDocument Set oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject, ThisApplication.FileManager.GetTemplateFile(kPartDocumentObject)) Dim oCompDef As PartComponentDefinition Set oCompDef = oPartDoc.ComponentDefinition Dim oSketch As PlanarSketch Set oSketch = oCompDef.Sketches.Add(oCompDef.WorkPlanes(3)) Dim oTransGeom As TransientGeometry Set oTransGeom = ThisApplication.TransientGeometry Dim oCricleLines As SketchEntitiesEnumerator Set oCircularLines = oSketch.SketchCircles.AddByCenterRadius(oTransGeom.CreatePoint2d(0, 0), 0.1) Dim oProfile As Profile Set oProfile = oSketch.Profiles.AddForSolid Dim oExtrude As ExtrudeFeature Set oExtrude = oCompDef.Features.ExtrudeFeatures.AddByDistanceExtent(oProfile, 0.4, kSymmetricExtentDirection, kJoinOperation) End Sub
Danach könnten wir auf das Band ein nach dem anderen die Ketten Glider legen. Beim Einfügen immer die Abhägigkeiten vergeben, die XY Achse(Glied) auf das Band, und den Abstand zwischen den einzelenen Glieder. Natürlich sollten wir als erstes die Glieder Anzahl ausrechnen, und das als Laufvariable in eine Schleife setzen. Das war nur so eine kleine Anregung, aber villeicht bringt dich das ein Schritt weiter. Bis dahin... PS: Jörgen lebst Du noch ? Nachtrag: Das mit der Linie und den Bogen müsste mit: Evaluator() As Curve2dEvaluator gehen. ------------------ Grüße daywa1k3r [Diese Nachricht wurde von daywa1k3r am 05. Januar 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 05. Jan. 2003 18:22 <-- editieren / zitieren --> Unities abgeben:
Hallo DayWalker, ich glaub ich steh im Moment ein wenig auf dem Schlauch: Zitat: "Beim Einfügen immer die Abhägigkeiten vergeben, die XY-Achse(Glied) auf das Band" ??? Abhängigkeit zu dem 3D-Pfad ??? Wie soll das gehen ? Welche Abhängigkeit, Passend oder Übergang ? Werde Dein Code-Beispiel auf jeden Fall gut sichern, für späteres ggf. automatisches Erstellen nämlich unabdingbar. Gruß Oliver P.S.: Wer zum Henker ist Jörgen ? Würde mich interessieren, ob das Makro AddAlleMitnehmer() o.s.ä. bei Euch läuft. ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 05. Jan. 2003 21:27 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi, Zitat:
ich glaub ich steh im Moment ein wenig auf dem Schlauch
Willkommen im Club Zitat:
??? Abhängigkeit zu dem 3D-Pfad ??? Wie soll das gehen ?
Ich weiss es nicht. Zitat:
Welche Abhängigkeit, Passend oder Übergang ?
Auch noch keine Ahnung. Dieser Weg scheint mir aber richtig. Wenn das Ding richtig aufgebaut ist, muss man sich nicht den Wolf rechnen. Vielleicht komme ich morgen dazu, weiter zu suchen. Ich hatte heute leider zu wenig Zeit. Zitat:
Wer zum Henker ist Jörgen ?
Hier... so long... ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robby Lampe Mitglied
Beiträge: 1026 Registriert: 18.10.2000
|
erstellt am: 05. Jan. 2003 23:43 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi Oliver, warum das Lösungsprinzip nicht nocheinmal verwenden. Anbei die Lösung mit den Funktion X-,Y-,WPos. Es ist noch nicht rund, da das Kettenglied immer bei 360° hängt, aber das ist nur ein mathematisches Problem. Wende doch einmal dein wunderschönes Makro AddAlleMitnehmer, was nebenbei bemerkt sehr gut funktioniert, an. ------------------ gruß robby Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002 Eplan electric P8 professional Build 1.8.5.2413
|
erstellt am: 06. Jan. 2003 14:55 <-- editieren / zitieren --> Unities abgeben:
Hi Robby, zwischen der Gliederkette und dem Zahnriemen mit Mitnehmern besteht ein wesentlicher geometrischer Unterschied beim Umlauf ums Rad. zur Erläuterung siehe angehängtes JPG. Bei Zahriemen läßt sich der Abstand der Mitnehmer auf dem Kreisbogen abtragen, also Abst.(L)=Alpha*R Bei der Gliederkette ist der Abstand aber die Kreissekante, also: DeltaX^2 + DeltaY^2 = L^2 und X1^2 +Y1^2=R^2 Deshalb auch vorangegangene Bemerkungen: Zitat: "ursprünglich bin ich dem Wahn verfallen, eine Rollenkette zu animieren, habe mich aber dann doch auf die Animation umlaufender Mitnehmer beschränkt." Zitat: "...den Wolf rechnen..." Es wäre im Prinzip kein Problem, wenn ein Glied in der UserFunktion YPos Zugriff auf die eigene X-Position hätte, ohne allerdings diese X-Position mit einer Abhängigkeit zu versehen. Doch leider hat man laut API-Ref. keinen Zugriff auf die API aus so'ner Funktion. Werd ich aber noch überprüfen. Der Ansatz von DayWalker ist durchaus nicht blöde, denn wenn ich mich auf einem Pfad bewege ist zumindest die Richtung mal klar, also sprich welche der zwei Lösungen einer quadratischen Gleichung. Und wenn sich das ganze sogar noch in Koordinatensystem entlang dieses Pfades transferieren läßt, umso besser. Aber ich fürchte er hat die Rechnung ohne den Inventor gemacht Gruß Oliver ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 06. Jan. 2003 15:37 <-- editieren / zitieren --> Unities abgeben:
Also ich kann zwar in einer "Public Function User() as double" auf die API zugreifen, aber wenn ich diese dann als Abhängigkeit zuweisen will bringt er mir einen Fehler schon beim Zugriff auf ThisApplication. Also merke: Die API-Referenz hat immer recht ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robby Lampe Mitglied
Beiträge: 1026 Registriert: 18.10.2000 Autodesk Inventor Pro/ENGINEER Wildfire (alle Versionen) Windchill ProductPoint Windchill Intralink
|
erstellt am: 06. Jan. 2003 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi Oliver, die VBA:Funktionen in den Parameter funktionieren nicht mit Inventor-API -Befehlen (z.Z.). Naja, dann müssen für diesen Anwendungfall neue X-,Y-,WPos-Funktionen her. Nur was machst Du, wenn noch weitere Umlenkachsen hinzu kommen? ------------------ gruß robby Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 06. Jan. 2003 18:30 <-- editieren / zitieren --> Unities abgeben:
Horch Horch... Was heißt z.Z. ? Wann ist diese Zeit zu Ende ? Außerdem: Das Ganze VBA-Getue mit XPos, YPos, WPos könnten wir uns sparen, wenn IV in der Lage wäre die Abhänigkeit "Übergang" für mehrere Objekte zu händeln, die untereinander über "Passend" abhängig sind ! Zitat: "Naja, dann müssen für diesen Anwendungfall neue X-,Y-,WPos-Funktionen her" Oh Mann Robby , genau das macht doch die Probleme !! Gruß Oliver ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002 Eplan electric P8 professional Build 1.8.5.2413
|
erstellt am: 11. Jan. 2003 16:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, sollte ich mit meinem letzten Beitrag jemandem auf den Schlips getreten haben, so tut mir das ehrlich leid, wollt ich nicht. Ich hab das Projekt mit der Kette noch nicht ganz ad Akta gelegt, aber im Moment wenig Zeit mich drum zu kümmern. Die Sache mit den umlaufenden Mitnehmern hab ich noch ergänzt, bzw. Bucks beseitigt, so daß die Kette jetzt auch in beiden Richtungen läuft. Bei Interesse kann ich diese gern noch posten. Gruß Oliver ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Robby Lampe Mitglied
Beiträge: 1026 Registriert: 18.10.2000
|
erstellt am: 11. Jan. 2003 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
daywa1k3r Ehrenmitglied V.I.P. h.c. Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012 64Bi
|
erstellt am: 17. Jan. 2003 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
Hi, ich sehe es erst jetzt: Zitat:
sollte ich mit meinem letzten Beitrag jemandem auf den Schlips getreten haben, so tut mir das ehrlich leid, wollt ich nicht.
also mir auch nicht Nur das Problem ist, dass ich seit 07.01 wieder arbeiten muss, und daswegen nicht viel Zeit habe. Wir haben hier versucht das ganze, einfach mal zu zeichnen (also nicht programmieren, einfach zeihnen) und hatten auch kein Erfolg. Die Mittnehmer liefen schon auf einem Pfad, und schön einer nach dem anderen, aber sobald wir die um den Bogen ziehen wollten, blieb alles bei den Dritten hängen. Ich glaube da war eine Abhängikeit die für Abstand zwischen die Mittnehmer, die sich eigendlich nie ändern sollte, das tut sie aber. Ich glaube das liegt an dem Kernel, oder Inventor, oder, .... Auf jeden Fall war das ein Wert mit 3 Nachkommastellen. Keine Ahnung, ganz ehrlich. So, bis bald... ------------------ Grüße daywa1k3r Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 P4/3,2 GHz 2GB Ram GeForce FX5700LE (81.95) XP-Sp2 AIS9-Sp4 AIS10-Sp3a AIS11-Sp2 AIS 2008-Sp1 ................... Dell M70 / 2.13 GHz 2GB Ram Quadro FX1400 Go XP-SP2 AIP9-SP4 AIP10-SP3a
|
erstellt am: 04. Nov. 2003 20:49 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Charly Setter Moderator
Beiträge: 11977 Registriert: 28.05.2002 Der vernünftige Mensch paßt sich der Welt an; der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen.<P>Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab. (George Bernard Shaw)
|
erstellt am: 04. Nov. 2003 21:01 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 P4/3,2 GHz 2GB Ram GeForce FX5700LE (81.95) XP-Sp2 AIS9-Sp4 AIS10-Sp3a AIS11-Sp2 AIS 2008-Sp1 ................... Dell M70 / 2.13 GHz 2GB Ram Quadro FX1400 Go XP-SP2 AIP9-SP4 AIP10-SP3a
|
erstellt am: 04. Nov. 2003 21:10 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Charly Setter Moderator
Beiträge: 11977 Registriert: 28.05.2002 Der vernünftige Mensch paßt sich der Welt an; der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen.<P>Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab. (George Bernard Shaw)
|
erstellt am: 05. Nov. 2003 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 05. Nov. 2003 10:03 <-- editieren / zitieren --> Unities abgeben:
Es geht bis jetzt nur für ein Förderband mit Mitnehmern, allerdings nur unter Beschwörung der VBA-Geister. Für ne Rollenkette hat sich meines Wissens noch nichts gefunden. Oliver ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SHP Mitglied Konstrukteur
Beiträge: 1331 Registriert: 17.07.2003 P4/3,2 GHz 2GB Ram GeForce FX5700LE (81.95) XP-Sp2 AIS9-Sp4 AIS10-Sp3a AIS11-Sp2 AIS 2008-Sp1 ................... Dell M70 / 2.13 GHz 2GB Ram Quadro FX1400 Go XP-SP2 AIP9-SP4 AIP10-SP3a
|
erstellt am: 05. Nov. 2003 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
invhp Ehrenmitglied V.I.P. h.c. MB Techniker, AE, WKZmacher
Beiträge: 5552 Registriert: 16.05.2002 (fast) alles, was Autodesk im Mechanikbereich anbietet ;)
|
erstellt am: 05. Nov. 2003 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|
Chefe Mitglied Geschäftsführer
Beiträge: 175 Registriert: 23.12.2002
|
erstellt am: 05. Nov. 2003 17:10 <-- editieren / zitieren --> Unities abgeben:
Was es bei einem Keilriemen zu animieren gibt, versteh ich nicht ganz. Zahnriemen sehe ich als ausgeschlossen an, da der ja nur aus einem Teil besteht, da müßte die Skizze des Teils über Adaptivität animiert werden. Das geht glaub ich erst, wenn die neuen N2-gekühlten CPU's verfügbar sind. Ansonsten wie schon gesagt: umlaufende Mitnehmer auf einem Riemen montiert geht mit VBA, Beispiel oben. Rollenkette geht auf Grund komplizierter Abhängigkeiten nicht. Oliver ------------------ HKE GmbH Automatisierungstechnik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wibo Mitglied
Beiträge: 56 Registriert: 25.07.2003 .....................\ | | | / ......................(o o) ........|~~ooO~~(_)~~~~| ........|..Poweruser.........| ........|..Inventor............| ........|..Kreisliga...........| ........'~~~~~~~~~Ooo~' ....................|__|__| ....................|..|...|..| ..................ooO.Ooo
|
erstellt am: 12. Apr. 2004 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für Chefe
|