| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| FMB, eine Veranstaltung am 05.11.2024
|
Autor
|
Thema: Alle Verknüpfungen über Makro löschen (2293 / mal gelesen)
|
socke112 Mitglied Ingenieur
Beiträge: 9 Registriert: 25.05.2012 Solidworks 2019, SP 2
|
erstellt am: 08. Jul. 2019 17:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, von einem Lieferanten habe ich eine Baugruppe mit viele Baugruppen (hunderte), in denen die Verknüpfungen fehlerhaft sind. Da die Baugruppen nur bei uns ins PDM-System eingepflegt werden müssen, ohne auf weitere Bearbeitung zu achten, schreibe ich gerade an einem Makro mit folgenden Funktionen: - Alle Verknüpfungen pro Baugruppe löschen - Alle Teile pro Baugruppe fixieren (das geht schon mal) Wie kann ich alle Teile pro Baugruppe per Makro löschen? Grüße, Socke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ConZept Mitglied Maschinenbautechniker
Beiträge: 15 Registriert: 19.02.2019 SolidWorks 2018 / SP 4.0 Win7x64 /HP Z440
|
erstellt am: 08. Jul. 2019 17:36 <-- editieren / zitieren --> Unities abgeben: Nur für socke112
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 08. Jul. 2019 18:11 <-- editieren / zitieren --> Unities abgeben: Nur für socke112
|
socke112 Mitglied Ingenieur
Beiträge: 9 Registriert: 25.05.2012 Solidworks 2019, SP 2
|
erstellt am: 10. Jul. 2019 12:34 <-- editieren / zitieren --> Unities abgeben:
|
socke112 Mitglied Ingenieur
Beiträge: 9 Registriert: 25.05.2012 Solidworks 2019, SP 2
|
erstellt am: 10. Jul. 2019 14:36 <-- editieren / zitieren --> Unities abgeben:
Hallo, meine Versuche enden leider damit, dass ich immer einzeln das Löschen bestätigen muss. Drücke ich "nein", versucht das Makro die nächste Verknüpfung zu löschen, drücke ich "ja" dann endet das Makro. Kann jemand helfen? Option Explicit Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swFeat As SldWorks.Feature Dim swMateFeat As SldWorks.Feature Dim swSubFeat As SldWorks.Feature Dim swMate As SldWorks.Mate2 Dim swComp As SldWorks.Component2 Dim swMateEnt(2) As SldWorks.MateEntity2 Dim fileName As String Dim errors As Long Dim warnings As Long Dim i As Long Dim boolstatus As Boolean Dim counter As Integer Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc counter = 0 'Get the first feature in the assembly Set swFeat = swModel.FirstFeature 'Iterate over features in FeatureManager design tree Do While Not swFeat Is Nothing If "MateGroup" = swFeat.GetTypeName Then Set swMateFeat = swFeat Exit Do End If Set swFeat = swFeat.GetNextFeature Loop 'Get first mate, which is a subfeature Set swSubFeat = swMateFeat.GetFirstSubFeature Do While Not swSubFeat Is Nothing Set swMate = swSubFeat.GetSpecificFeature2 If Not swMate Is Nothing Then boolstatus = swSubFeat.Select2(True, 0) 'Markiere Verknüpfung swModel.EditDelete End If ' Get the next mate in MateGroup Set swSubFeat = swSubFeat.GetNextSubFeature counter = counter + 1 Loop MsgBox counter End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 10. Jul. 2019 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für socke112
Hallo socke, quick and dirty swModel.EditDelete erst nach dem Loop ausführen, also wenn bereits alles markiert ist, da wenn du es im Loop machst nach Set swSubFeat = swSubFeat.GetNextSubFeature swSubFeat = Nothing wird, könnte evtl. daran liegen das du das Object swSubFeat von dem du GetNextSubFeature holen willst schon eleminiert hast. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ConZept Mitglied Maschinenbautechniker
Beiträge: 15 Registriert: 19.02.2019 SolidWorks 2018 / SP 4.0 Win7x64 /HP Z440
|
erstellt am: 10. Jul. 2019 19:06 <-- editieren / zitieren --> Unities abgeben: Nur für socke112
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 11. Jul. 2019 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für socke112
Hallo, bei mir kommt keine Abfrage wenn ich EditDelete verwende, und habe hierzu auch keine Meldung in den Systemsteuerungen ausgeblendet. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
socke112 Mitglied Ingenieur
Beiträge: 9 Registriert: 25.05.2012 Solidworks 2019, SP 2
|
erstellt am: 11. Jul. 2019 14:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, jetzt funktioniert's auch bei mir Vielen Dank! (Sobald ich den Code bereinigt habe, stelle ihn vor.... ) Eine Frage hätte ich noch. Der Lieferant hat offenbar ständig mit irgendwelchen Dummies gearbeitet, die aber wohl in einem anderen Ordner lagen und nicht mitgeliefert worden sind. SolidWorks unterdrückt Dateien, die nicht gefunden werden. Beim Laden ins PDM-System wird dann ein Fehler ausgegeben und ich muss alle Baugruppen händisch durchgehen Wie kann ich prüfen, ob die (ggf. unterdrückte) Datei existiert und diese dann löschen? Danke! Grüße, Socke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 11. Jul. 2019 18:09 <-- editieren / zitieren --> Unities abgeben: Nur für socke112
Hallo, Zitat: Wie kann ich prüfen, ob die (ggf. unterdrückte) Datei existiert und diese dann löschen?
du könntest analaog wie schon oben durch die Komponenten Traversieren und deren Status mit GetSuppression2 Method (IComponent2) abfragen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 11. Jul. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |