| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Bechtle stärkt PLM-Geschäft mit Neugründung |
Autor
|
Thema: Blöcke (1407 mal gelesen)
|
e.pepe Mitglied Technischer Fachwirt/Projektmanager/Qualitätsmanager/Konstrukteur/CAD-Admin
Beiträge: 109 Registriert: 18.02.2012
|
erstellt am: 19. Apr. 2013 12:56 <-- editieren / zitieren --> Unities abgeben:
Hallo CAD Freunde :-) Ich habe eine Frage und zwar hat jemand von Euch ein Makro der im Feature Manager (Zeichnung) die gelöschten Blöcke endgültig löscht? Siehe Bild Danke Mfg Pepe [Diese Nachricht wurde von e.pepe am 19. Apr. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 19. Apr. 2013 14:41 <-- editieren / zitieren --> Unities abgeben: Nur für e.pepe
Hallo Pepe, hab mal in der Mittagspause wass gebastelt, ist aber noch nicht wirklich gut, da es mit dem Selektieren (und daraufhin löschen) z.B. bei umbenannten Blockdefinitionen nicht klappt oder auch "InDrawingBlöcke" (also welche, die direkt in der Zeichnung erstellt wurden ohne Datei) ein Fehler geschmissen wird. Aber ist hoffentlich ein Anfang, mit dem du weiter spielen kannst. Code: Sub main() Dim swApp As SldWorks.SldWorks Dim swDraw As SldWorks.DrawingDoc Dim SwSketchMgr As SldWorks.SketchManager Dim vBlockDef As Variant Dim vBlockInst As Variant Dim swBlockDef As SldWorks.SketchBlockDefinition Dim swBlockInst As SldWorks.SketchBlockInstance Dim NameBlock As String Dim i As Long Dim bRet As Boolean Dim NameAnf As Long Dim NameEnd As Long ' im laufenden SolidWorks an das aktive Dokument anklinken Set swApp = Application.SldWorks Set swDraw = swApp.ActiveDoc ' die Blockdefinitionen bekommen wir über den SketchManager Set SwSketchMgr = swDraw.SketchManager vBlockDef = SwSketchMgr.GetSketchBlockDefinitions ' wenn überhaupt irgendwelche Blöcke da sind If Not IsEmpty(vBlockDef) Then ' ... nacheinander alle Blockdefinitionen abklappern For i = 0 To UBound(vBlockDef) ' die nächste Blockdefinition holen Set swBlockDef = vBlockDef(i) 'Debug.Print swBlockDef.FileName ' und alle Blockinstancen dafür holen vBlockInst = swBlockDef.GetInstances ' wenn es keine Blockinstanzen gibt kann gelöscht werden If IsEmpty(vBlockInst) Then ' für das simulierte Selektieren brauchen wir den Namen des Blockes, ' dazu aus dem FileNamen den Teil ohne Pfad und Endung rausschneiden NameAnf = InStrRev(swBlockDef.FileName, "\") NameEnd = InStrRev(swBlockDef.FileName, ".") NameBlock = Mid(swBlockDef.FileName, NameAnf + 1, NameEnd - NameAnf - 1) ' mit dem Namen dann virtuelle selektieren bRet = swDraw.Extension.SelectByID2(NameBlock, "SUBSKETCHDEF", 0, 0, 0, False, 0, Nothing, 0) 'Debug.Print bRet, NameBlock ' und die selektierten Blockdefintion löschen swDraw.EditDelete End If Next i End If End Sub
Ciao, Stefan------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
e.pepe Mitglied Technischer Fachwirt/Projektmanager/Qualitätsmanager/Konstrukteur/CAD-Admin
Beiträge: 109 Registriert: 18.02.2012
|
erstellt am: 23. Apr. 2013 13:56 <-- editieren / zitieren --> Unities abgeben:
|
BuseHase Mitglied Konstrukteur
Beiträge: 206 Registriert: 27.08.2008 Prozessor: Intel XEON QX5460 @3,16Ghz Arbeitsspeicher: 8GB Grafikkarte: nVidia Quadro FX 4600 768 MB OS: Windows 7 64BIT Professional SP1 SWX 2019 SP5.0
|
erstellt am: 23. Apr. 2013 14:10 <-- editieren / zitieren --> Unities abgeben: Nur für e.pepe
Also ich klicke die einzeln an und lösch ich die mit der ENTF-Taste, wozu das Makro sind es denn so viele Blöcke? ------------------ Ich bin so hungrig, das ich vor lauter Durst nicht weiss wo ich die Nacht schlafen soll, so kalt ist mir. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
e.pepe Mitglied Technischer Fachwirt/Projektmanager/Qualitätsmanager/Konstrukteur/CAD-Admin
Beiträge: 109 Registriert: 18.02.2012
|
erstellt am: 23. Apr. 2013 16:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Stefan, Makro läuft super das wollte ich haben. Bis jetzt hab ich kein Fehler gehabt. Wenn einer Fehler auftauchen sollte werde ich versuchen den zu beheben und meld mich dann nochmal. Danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
e.pepe Mitglied Technischer Fachwirt/Projektmanager/Qualitätsmanager/Konstrukteur/CAD-Admin
Beiträge: 109 Registriert: 18.02.2012 Win 10 Prof.; 64Bit SolidWorks 2018 Sp5.0 Nvidia Quadro P2000
|
erstellt am: 23. Apr. 2013 16:25 <-- editieren / zitieren --> Unities abgeben:
Hallo BuseHase, Einzelen lösche ich ja selber aber manchmal sind es 3-4 Stück und jedes einzeln löschen hab ich keine lust also daher diese Coole Makro von Stefan mit einem Klick alle weg.. ;-) pepe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |