| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Bauteilbemaßung per VBA ändern (3290 mal gelesen)
|
simon3 Mitglied
Beiträge: 2 Registriert: 16.02.2012
|
erstellt am: 16. Feb. 2012 22:44 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich stehe gerade vor einem Problem, das ich trotz intensiver Suche in diesem Forum noch nicht lösen konnte. Und zwar möchte ich den Durchmesser einer Kugel, die als .ipt abgespeichert ist, per VBA anpassen. Ich habe schon probiert die entsprechende Bemaßung als iProperty zu exportieren und auszulesen. Das funktioniert bisher auch. Allerdings kann ich den Wert dieser benutzerdefinierten iProperty nicht verändern oder speichern, sodass sich die Größe der Kugel ändert. Ist dies überhaupt möglich, oder gibt es einen Weg Skizzenbemaßungen noch direkter per VBA anzusprechen? Beste Grüße, Simon [Diese Nachricht wurde von simon3 am 16. Feb. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Egbert Junge Mitglied Dipl.-Ing. Konstruktionstechnik
Beiträge: 38 Registriert: 22.02.2005 Inventor Professional 2010 SP4,Vault 2010, Windows 7 64bit, Xeon 4x 2,66GHz,6GB Arbeitsspeicher,Quadro FX1800
|
erstellt am: 24. Feb. 2012 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Hallo Simon, meinst Du etwas in dieser Art? Code: Public Sub MaßÄndern() Dim oapp As Application Set oapp = ThisApplication Dim oDoc As Document Set oDoc = oapp.ActiveDocument Dim oParameters As Parameters Set oParameters = oDoc.ComponentDefinition.Parameters Dim oDurchmesser As ModelParameter Set oDurchmesser = oParameters.Item("d7") 'Musst Du natürlich anpassen oDurchmesser.Value = 40 'Neuen Durchmesser setzen(Dran denken dies sind 400mm!) oDoc.Update End Sub
Gruß EgbertEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
simon3 Mitglied
Beiträge: 2 Registriert: 16.02.2012
|
erstellt am: 26. Feb. 2012 15:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Egbert! Vielen Dank für deine Antwort! Nach weiterem Suchen bin ich irgendwann auch auf diese Möglichkeit gestoßen, Bauteilparameter per VBA anzupassen. Jetzt funktioniert alles! Beste Grüße, Simon Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 04. Sep. 2018 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
|
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 601 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 05. Sep. 2018 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
kann ich leider nicht nachvollziehen (bei mir funktioniert es) Der Fehler ist in dieser Zeile: "Set oDoc = oapp.ActiveDocument"? Ich kann nur raten. Vielleicht die Zeile ersetzen durch Set oDoc = ThisApplication.ActiveDocument Dann werden die ersten beiden Zeilen mit oapp nicht mehr gebraucht, können auskommentiert werden. Ist ein Part geöffnet, wenn das Makro gestartet wird? Welche IV-Version? ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 05. Sep. 2018 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Danke für Deine Antwort. Nein schon eine Zeile davor: Dim oDoc As Document Ich habe versucht einen Verweis zu setzen auf die "Autodesk Inventor Object Library" Hier kommt folgende Fehlermeldung -> "Fehler beim Laden einer DLL" Ja es ist ein Part geöffnet. Inventor 2018
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 601 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 05. Sep. 2018 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
reden wir von VBA oder setzt Du das mit .Net in einem AddIn um? falls .Net - falsches Forum - könnte ... As Inventor.Document klappen (wobei ich da keine Ahnung habe, wovon ich rede) falls VBA: mit Verweis setzen, ist VBA-Editor -> Menü Tools -> References gemeint? Da sollte der Haken gesetzt sein bei der "Autodesk Inventor Object Library" (das halte ich für ~Standard). Zeigt bei mir auf diese Datei "C:\Program Files\Autodesk\Inventor 2016\Bin\RxInventor.tlb" (falls das hilft, kA ob für IV2018 analog) ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 05. Sep. 2018 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Es ist VBA der Pfad ist bei mit exakt der selbe wie ich eben sehe. Daher kann das auch nicht funktionieren!? Richtig wäre: C:\Program Files\Autodesk\Inventor 2018\Bin wie kann ich den Pfad ändern? [Diese Nachricht wurde von Scoopa am 05. Sep. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 601 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 05. Sep. 2018 18:15 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Erscheint mir logisch, dass darin die Ursache liegen könnte. In dem Dialog gibt es rechts einen Button, über den dann die Datei gewählt werden kann. (Habs gerade nicht zur Hand, deshalb weiß ich nicht wie der Button heißt) ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 06. Sep. 2018 07:53 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
|
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 07. Sep. 2018 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
|
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 07. Sep. 2018 12:27 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Ist es auch möglich in einer Baugruppe einige Bauteile masslich zu verändern? oder muss man dazu jedes einzelne Bauteil extra ändern? Also evtl so -Bauteil öffnen -Bauteil masslich editieren -Bauteil speichern -Bauteil schliessen -Baugruppe aktualisieren Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Egbert Junge Mitglied Dipl.-Ing. Konstruktionstechnik
Beiträge: 38 Registriert: 22.02.2005 Inventor Professional 2010 SP4,Vault 2010, Windows 7 64bit, Xeon 4x 2,66GHz,6GB Arbeitsspeicher,Quadro FX1800
|
erstellt am: 07. Sep. 2018 13:42 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Nein, geht auch direkt aus der Baugruppe: Code: Public Sub MaßBgÄndern() Dim oapp As Application Set oapp = ThisApplication Dim oBgDoc As Document Set oBgDoc = oapp.ActiveDocument Dim oDoc As PartDocument Set oDoc = oBgDoc.ReferencedDocuments.Item(1) 'Hier deine Parts auswählen Dim oParameters As Parameters Set oParameters = oDoc.ComponentDefinition.Parameters Dim oDurchmesser As ModelParameter Set oDurchmesser = oParameters.Item("d7") 'Musst Du natürlich anpassen oDurchmesser.value = 20 'Neuen Durchmesser setzen(Dran denken dies sind 400mm!) oBgDoc.Update End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 07. Sep. 2018 15:28 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Vielen Dank! Bei Item nehme ich Namen des Bauteils im Strukturbaum? Set oDoc = oBgDoc.ReferencedDocuments.Item(1) 'Hier deine Parts auswählen Also Set oDoc = oBgDoc.ReferencedDocuments.Item(Name des Bauteils) 'Hier deine Parts auswählen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Scoopa Mitglied MB Techniker
Beiträge: 224 Registriert: 26.04.2006 HP Workstation / WIN 7 / Solid Edge ST7
|
erstellt am: 12. Sep. 2018 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für simon3
Geht das ganze auch in einer Unterbaugruppe? Bzw bei einem Bauteil, dass in der Baugruppe in einer darin enthaltenen Baugruppe auftaucht? Hauptbaugruppe |__ Bauteil 'das ist mit Set oDoc = oBgDoc.ReferencedDocuments.Item(1) anzuwählen - soweit verstanden |__ Unterbaugruppe |___Bauteil 'wie kann ich diese Bauteile editieren? |___Bauteil 'wie kann ich diese Bauteile editieren?
[Diese Nachricht wurde von Scoopa am 12. Sep. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |