| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Solidworks 2010 vba - Selektieren eines Parts (1768 mal gelesen)
|
Steffen Materna Mitglied
 Beiträge: 4 Registriert: 12.02.2013
|
erstellt am: 12. Feb. 2013 10:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich arbeite gerade an einer Studienarbeit. Dabei muss ich ein Makro programmieren, das es ermöglicht, Teile aus einer Baugruppe gezielt zu ersetzen. Das möchte ich gerne über die Funktion replace.components machen, allerdings habe ich dabei das Problem, dass ich es nicht hinbekomme, das entsprechende Teil der Baugruppe zu selektieren. Die API gibt nur ein Beispielmakro an, bei dem bereits durch den Nutzer das entsprechende Teile markiert ist. Ich möchte es allerdings über das Makro ansteuern. Für Hilfe bin ich sehr dankbar.
Gruß Steffen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jörg_B Mitglied Staatlich geprüfter Techniker Maschinenbau

 Beiträge: 96 Registriert: 24.03.2003 Beruf<P>Solid Works 2011 SP 5<P>Windows 7 Intel Q6600, 3GB Ram FX 1500 / 6.14.10.9163<P>Privat Alibre 11 Standard HP dv 9700 AMD Turion 64 X2, 2GB Ram NVIDIA GForce 8400M GS
|
erstellt am: 12. Feb. 2013 11:32 <-- editieren / zitieren --> Unities abgeben:          Nur für Steffen Materna
Hallo Steffen, ich kenne mich mit der API nicht wirklich aus, aber ich denke das was Du suchst geht in Richtung SelectedByID2. Solche Solidworks-API speziellen Fragen stellt man am besten direkt im Solidworksbrett.
------------------ Gruß vom Oberrhein Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steffen Materna Mitglied
 Beiträge: 4 Registriert: 12.02.2013
|
erstellt am: 12. Feb. 2013 11:34 <-- editieren / zitieren --> Unities abgeben:         
|
Jörg_B Mitglied Staatlich geprüfter Techniker Maschinenbau

 Beiträge: 96 Registriert: 24.03.2003 Beruf<P>Solid Works 2011 SP 5<P>Windows 7 Intel Q6600, 3GB Ram FX 1500 / 6.14.10.9163<P>Privat Alibre 11 Standard HP dv 9700 AMD Turion 64 X2, 2GB Ram NVIDIA GForce 8400M GS
|
erstellt am: 12. Feb. 2013 13:28 <-- editieren / zitieren --> Unities abgeben:          Nur für Steffen Materna
Hallo, hier ein Schnelltest aus dem Makrorekorder. Baugruppe mit Namen Test; Teil-1 und Teil-2 Im Verzeichniss C:\temp. Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc boolstatus = Part.Extension.SelectByID2("Teil1-1@Test", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) boolstatus = Part.ReplaceComponents("C:\temp\Teil2.SLDPRT", "Standard", True, True) End Sub Edit: Die -1 ist die Instanz des Teiles (Im Featurebaum in <> ------------------ Gruß vom Oberrhein Jörg [Diese Nachricht wurde von Jörg_B am 12. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steffen Materna Mitglied
 Beiträge: 4 Registriert: 12.02.2013
|
erstellt am: 12. Feb. 2013 13:50 <-- editieren / zitieren --> Unities abgeben:         
|
Steffen Materna Mitglied
 Beiträge: 4 Registriert: 12.02.2013
|
erstellt am: 14. Feb. 2013 15:16 <-- editieren / zitieren --> Unities abgeben:         
Derweil bin ich gut vorangekommen. Leider habe ich nun das nächste Problem. Wir arbeiten in der Firma selbstverständlich mit dem PDM-System. Wenn ich nun eine Komponente via vba ersetzen möchte, geht das nur, wenn ich das Teil zuvor im PDM mal angeklickt habe. Ich denke es wird dann in den Speicher geschrieben bzw. lokal hinterlegt. Nun ist es extrem Benutzerunfreundlich, wenn er jedesmal, bevor der Automatismus greifen soll, alle erforderlichen Teile einmal anklicken muss. Gibt es eine Möglichkeit, Teile mit einem Befehl "vorzuladen"? Viele Grüße Steffen Materna Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2678 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers
|
erstellt am: 04. Mrz. 2013 16:45 <-- editieren / zitieren --> Unities abgeben:          Nur für Steffen Materna
Zitat: Original erstellt von Steffen Materna: ...Wir arbeiten in der Firma selbstverständlich mit dem PDM-System. Wenn ich nun eine Komponente via vba ersetzen möchte, geht das nur, wenn ich das Teil zuvor im PDM mal angeklickt habe. ...
Hallo Steffen, ich kann dir wahrscheinlich leider eh nicht helfen, aber: Es gibt nicht DAS PDM-System, sondern viele. Jedes ist anders zu bedienen, jedes reagiert anders... du solltest also schon dazu schreiben, um welches es sich handelt. Bei der Gelegenheit könntest du auch deine Sysinfo ausfüllen, damit wäre den potenziellen Helfern oft schon geholfen. ------------------ Klaus www.al-ko.com | mein Gästebuch | privat... |  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |