| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | Bechtle PLM Deutschland tritt dem Deutschen Robotik Verband bei und startet Kooperation, eine Pressemitteilung
|
|
Autor
|
Thema: SolidWorks Makro Konfiguration eines eingefügten abgeleiteten Teils ändern (253 mal gelesen)
|
DAda32 Mitglied
 Beiträge: 4 Registriert: 03.11.2025
|
erstellt am: 03. Nov. 2025 16:11 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, in meinem Makro füge ich ein Teil mit InsertPart3 in ein Partdoc ein. Das eingefügte Teil ist vom Typ "Stock", ist es möglich die Konfiguration des eingefügten Teils nachträglich noch zu ändern? Falls nein, wie kann ich beim einfügen des Teils sicherstellen, dass es nicht als Typ "Stock" endet? Vielen Dank SG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2661 Registriert: 02.10.2006 Firma: SW 2024-5.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2025-1.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 03. Nov. 2025 20:22 <-- editieren / zitieren --> Unities abgeben:          Nur für DAda32
Hallo, und herzlich Willkommen hier im Forum. Bei solchen Fragen frage ich inzwischen schon mal die KI. Kritisch hinterfragt, hilft sie doch, einen auf das richtige Gleis zu stellen. Hier die Antwort der KI: Code:
Dim swFeat As Feature Set swFeat = swPart.InsertPart3(derivedFileName, swInsertPartOptions_e.swInsertPartImportSolids, "Default")' Ändere die Konfiguration des eingefügten Teils Dim swRefConf As String swRefConf = "KonfigName" ' Name der gewünschten Konfiguration swFeat.ReferencedConfiguration = swRefConf
Wichtige Hinweise der KI: "KonfigName" muss exakt dem Namen der gewünschten Konfiguration in der Datei entsprechen. Die Änderung wirkt sich nur aus, wenn das eingefügte Teil mehrere Konfigurationen hat und die Geometrie sich zwischen ihnen unterscheidet. Du kannst die aktuelle Konfiguration auch abfragen mit Debug.Print swFeat.ReferencedConfiguration. Den Code habe ich nicht getestet. Viel Erfolg damit. Grüße, Andi B. ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DAda32 Mitglied
 Beiträge: 4 Registriert: 03.11.2025
|
erstellt am: 04. Nov. 2025 07:49 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Danke für deine Antwort. Der Code funktioniert so leider nicht. Aber so wie es scheint funktioniert der folgende Code: Sub main6() Dim swApp As SldWorks.SldWorks Dim swModel As ModelDoc2 Dim swPart As PartDoc Dim swFeat As Feature Dim swFeatData As SldWorks.DerivedPartFeatureData Dim swRet As Boolean Dim swRefConf As String Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc If swModel Is Nothing Then MsgBox "Kein Dokument geöffnet." Exit Sub End If If swModel.GetType <> swDocPART Then MsgBox "Dieses Makro funktioniert nur in einem Part-Dokument." Exit Sub End If Set swPart = swModel ' Teil einfügen (dritter Parameter ist die Konfiguration beim Einfügen) 'Set swFeat = swPart.InsertPart3( _ "C:\ABLAGE\PDM\Produkte\DUC_Duct Connector\20\ZN_024413.SLDPRT", _ swInsertPartOptions_e.swInsertPartImportSolids, _ "A1.2 PBD für Winkelabgänge") Set swFeat = swPart.FeatureByName("ZN_024240") ' Gewünschte Konfiguration (die in der Quelldatei existieren muss) swRefConf = "A1.2 PBD für Winkelabgänge draft angles" ' Feature-Definition (DerivedPartFeatureData) auslesen, Konfiguration setzen, und anwenden Set swFeatData = swFeat.GetDefinition If Not swFeatData Is Nothing Then swFeatData.PartConfiguration = swRefConf ' <-- hier die Konfig setzen swRet = swFeat.ModifyDefinition(swFeatData, swModel, Nothing) If Not swRet Then MsgBox "Konfiguration konnte nicht angewendet werden (ModifyDefinition fehlgeschlagen)." Else swModel.EditRebuild3 ' Änderungen wirksam machen MsgBox "Konfiguration geändert auf: " & swRefConf End If Set swFeatData = Nothing Else MsgBox "Konnte Feature-Definition nicht lesen." End If End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2661 Registriert: 02.10.2006 Firma: SW 2024-5.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2025-1.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 04. Nov. 2025 15:21 <-- editieren / zitieren --> Unities abgeben:          Nur für DAda32
Hallo, tut mir leid mit dem Code, aber hier hat die KI mal wieder einen Befehl erfunden, den es nicht gibt. Habe es jetzt selber getestet, geht nicht. Aber du hast ja eine Lösung gefunden die funktioniert, auch bei mir. Glückwunsch dazu. Grüße und bis zum nächsten Mal Andi B. ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DAda32 Mitglied
 Beiträge: 4 Registriert: 03.11.2025
|
erstellt am: 05. Nov. 2025 09:25 <-- editieren / zitieren --> Unities abgeben:         
Hallo, kein Problem - danke. Nur besteht noch ein Problem bei meinem Code. Die Konfiguration des eingefügten abgeleiteten Teils wird in beiden Konfigurationen meines PartDokuments geändert. Ich möchte jedoch, dass bei Konfiguration "90" die Konfiguration bleibt mit welcher das Teil eingefügt wurde. Hat dazu jemand eine Idee? Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2661 Registriert: 02.10.2006 Firma: SW 2024-5.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2025-1.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 05. Nov. 2025 10:30 <-- editieren / zitieren --> Unities abgeben:          Nur für DAda32
Hallo, das kann ich so nicht nachvollziehen. Ich habe ein Ausgangsteil mit 2 Konfigurationen 01 und 02, die 01 ist aktiv. Darin füge ich ein 2tes Teil mit der Konfig A mit deinem Makro ein. (Haltepunkt vor dem Konfigwechsel) In der Konfig 02 ist das eingefügte Teil entweder unterdrückt, oder auch nicht, je nach Einstellungen der Konfig. Aber auch hier ist die eingefügte Konfig A. Lasse ich das Makro durchlaufen und ändere die Konfig von A auf B, dann wird diese Änderung bei mir nur in der aktiven Konfig 01 durchgeführt. In der Konfig 02 ist das eingefügte Teil immer noch auf Konfig A. Grüße, Andi B.
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
DAda32 Mitglied
 Beiträge: 4 Registriert: 03.11.2025
|
erstellt am: 05. Nov. 2025 11:26 <-- editieren / zitieren --> Unities abgeben:         
Hallo, habe den Code, welchen ich in mein übergeordnetes Makro geschrieben habe, nochmals überprüft. Hatte da einen Fehler. Vielen Dank für deine Hilfe und schnelle Rückmeldungen Andi. Schöne Grüsse Adrian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |