|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus  der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | 
|  |  | 
|  | SolidWorks Basics , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein) 
 | 
| Autor | Thema:  Makro (1912 mal gelesen) | 
 | kons92 Mitglied
 Konstrukteur
 
  
 
      Beiträge: 91Registriert: 07.12.2009
 i920,6GB DDR3,FX3500SW2011 SP1.0
 Win7 64Bit
 |    erstellt am: 06. Jul. 2010 14:45  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo an alle, ich bin auf der Such nach einem Makro, welches alle Teile einer Baugruppe öffnet und danach die Konfigurationstabelle öffnet, damit diese aktualisiert wird.  Das Problem ist daraus entstanden, dass ich eine Berechnung mittels Excel in jedem Einzelteil habe und ich mittels übernommenen Linien aus der Baugruppe mir die Maße von 2 Variablen holen. Doch berechnet er die berechneten Maße nicht neu ohne die Tabelle zu öfnnen. Vielen Dank im voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | pi-design Mitglied
 Design Engineer
 
    
 
      Beiträge: 950Registriert: 09.08.2002
 WIN 10 / 64bitSWX 2018 SP5 64 Bit
 MS Office 2013
 HP Z420
 Intel Xeon E5-1620 3,66GHz
 16 GB RAM
 2x HP LA2405wg (24")
 NVIDIA Quadro 2000
 Space Explorer
 |    erstellt am: 07. Jul. 2010 08:44  <-- editieren / zitieren -->    Unities abgeben:           Nur für kons92   
  Hi, das wirst Du so nicht einfach bekommen. Wir haben so ein Makro, jedoch kann ich Dir unser KnowHow nicht weitergeben. Da wird Dir nichts anderes übrig bleiben, als es selbst zu erstellen oder es erstellen zu lassen. ------------------Gruß Pille
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Piet Mitglied
 Konstruktionsleiter & Konstrukteur
 
    
 
      Beiträge: 661Registriert: 20.11.2001
 SWx 2021 |    erstellt am: 07. Jul. 2010 10:27  <-- editieren / zitieren -->    Unities abgeben:           Nur für kons92   | 
                        | kons92 Mitglied
 Konstrukteur
 
  
 
      Beiträge: 91Registriert: 07.12.2009
 i920,6GB DDR3,FX3500SW2011 SP1.0
 Win7 64Bit
 |    erstellt am: 07. Jul. 2010 16:11  <-- editieren / zitieren -->    Unities abgeben:            
  Leider funktioniert das Makro Nr. 39 nicht. Es aktualisiert nur im Teil die Konfiguration aber leider nicht die Konfigurationstabelle Trotzdem Danke für die Beiträge und vielleicht hat ein anderer noch eine Idee Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | kons92 Mitglied
 Konstrukteur
 
  
 
      Beiträge: 91Registriert: 07.12.2009
 i920,6GB DDR3,FX3500SW2011 SP1.0
 Win7 64Bit
 |    erstellt am: 07. Jul. 2010 18:14  <-- editieren / zitieren -->    Unities abgeben:            
  Ich habe mittels der Aufnahme Funktion bereits es hinbekommen, dass die Konfigurationstabelle geöffnet wird und wieder geschlossen wird. Allerdings bräuchte ich noch einen Code, der als Schleife alle Komponenten der Baugruppe öffnet und den vorhandenen Code ausführt. Hat einer vll. einen solchen Code?? Vielen Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | kons92 Mitglied
 Konstrukteur
 
  
 
      Beiträge: 91Registriert: 07.12.2009
 i920,6GB DDR3,FX3500SW2011 SP1.0
 Win7 64Bit
 |    erstellt am: 07. Jul. 2010 23:32  <-- editieren / zitieren -->    Unities abgeben:            
  Ich habe einen Code erstellt, der das erste Teil öffnet und auch die Tabelle, aber leider danach Solidworks abstürzen lässt. Vll. findet einer den Fehler. Was kann ich anstatt "Tabelle" schreiben, was den Namen der Konfigurationstabelle findet? Code:
 Dim swApp As Object
 Dim Part As ObjectDim boolstatus As Boolean
 Dim longstatus As Long, longwarnings As Long
 Sub main() Set swApp = _Application.SldWorks
 Set Part = swApp.ActiveDocDim myModelView As Object
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
 Part.InsertFamilyTableEdit
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Part.ClearSelection2 True
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Part.CloseFamilyTable
 End Sub
 
 
 Code öffne Tabelle
 
 Code:
 Sub ShowAllOpenFiles()
 Dim swDoc As SldWorks.ModelDoc2
 Dim swAllDocs As EnumDocuments2
 Dim FirstDoc As SldWorks.ModelDoc2
 Dim dummy As Boolean
 Dim NumDocsReturned As Long
 Dim DocCount As Long
 Dim i As Long
 Dim sMsg As String
 Dim swApp As SldWorks.SldWorks
 Dim bDocWasVisible As Boolean
 Dim OpenWarnings As Long
 Dim OpenErrors As Long
 Dim DwgPath As String
 Dim myDwgDoc As SldWorks.ModelDoc2
 Set swApp = Application.SldWorksSet swAllDocs = swApp.EnumDocuments2
 Set FirstDoc = swApp.ActiveDoc
 DocCount = 0swAllDocs.Reset
 swAllDocs.Next 1, swDoc, NumDocsReturned
 While NumDocsReturned <> 0
 bDocWasVisible = swDoc.Visible
 swApp.ActivateDoc swDoc.GetPathName
 DwgPath = swDoc.GetPathName
 If (LCase(Right(DwgPath, 3)) <> "drw") And (DwgPath <> "") Then
 DwgPath = Left(DwgPath, Len(DwgPath) - 3) & "drw"
 Set myDwgDoc = swApp.OpenDoc6(DwgPath, swDocDRAWING, swOpenDocOptions_Silent, "", OpenErrors, OpenWarnings)
 If Not myDwgDoc Is Nothing Then
 swApp.ActivateDoc myDwgDoc.GetPathName
 Set myDwgDoc = Nothing
 End If
 End If
 swAllDocs.Next 1, swDoc, NumDocsReturned
 DocCount = DocCount + 1
 Wend
 swApp.ActivateDoc FirstDoc.GetPathNameEnd Sub
 
 Code öffne alle Teile einer Baugruppe
 
 Code:Sub ShowAllOpenFiles()
 Dim swApp1 As Object Dim Part As ObjectDim boolstatus As Boolean
 Dim longstatus As Long, longwarnings As Long
 Dim swDoc As SldWorks.ModelDoc2
 Dim swAllDocs As EnumDocuments2
 Dim FirstDoc As SldWorks.ModelDoc2
 Dim dummy As Boolean
 Dim NumDocsReturned As Long
 Dim DocCount As Long
 Dim i As Long
 Dim sMsg As String
 Dim swApp As SldWorks.SldWorks
 Dim bDocWasVisible As Boolean
 Dim OpenWarnings As Long
 Dim OpenErrors As Long
 Dim DwgPath As String
 Dim myDwgDoc As SldWorks.ModelDoc2
 Set swApp = Application.SldWorksSet swAllDocs = swApp.EnumDocuments2
 Set FirstDoc = swApp.ActiveDoc
 DocCount = 0swAllDocs.Reset
 swAllDocs.Next 1, swDoc, NumDocsReturned
 While NumDocsReturned <> 0
 bDocWasVisible = swDoc.Visible
 swApp.ActivateDoc swDoc.GetPathName
 DwgPath = swDoc.GetPathName
 
 
 
 
 Set swApp1 = _
 Application.SldWorks
 Set Part = swApp1.ActiveDoc
 Dim myModelView As Object
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
 Part.InsertFamilyTableEdit
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Part.ClearSelection2 True
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Set myModelView = Part.ActiveView
 myModelView.FrameState = swWindowState_e.swWindowMaximized
 Part.CloseFamilyTable
     
 If (LCase(Right(DwgPath, 3)) <> "drw") And (DwgPath <> "") Then
 DwgPath = Left(DwgPath, Len(DwgPath) - 3) & "drw"
 Set myDwgDoc = swApp.OpenDoc6(DwgPath, swDocDRAWING, swOpenDocOptions_Silent, "", OpenErrors, OpenWarnings)
 If Not myDwgDoc Is Nothing Then
 swApp.ActivateDoc myDwgDoc.GetPathName
 Set myDwgDoc = Nothing
 End If
 End If
 
 swAllDocs.Next 1, swDoc, NumDocsReturned
 DocCount = DocCount + 1
 Wend
 swApp.ActivateDoc FirstDoc.GetPathNameEnd Sub
 
 
 Versuch einer Kombination beider
 Vielen Dank
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | nahe Ehrenmitglied
 
 
      
 
      Beiträge: 1764Registriert: 18.01.2001
 arbeite mit:Dell Precision 7750
 i7 2,6 GHz 6 Kerne
 32GB RAM
 512GB SSD
 NVIDIA Quadro RTX 4000
 ------------------------
 SWX-2020 SP5.0
 EPDM
 ----------------
 Windows 10
 ----------------
 VB.net
 VB
 VBA
 ein wenig Swift am Mac
 |    erstellt am: 08. Jul. 2010 06:35  <-- editieren / zitieren -->    Unities abgeben:           Nur für kons92   | 
                        | kons92 Mitglied
 Konstrukteur
 
  
 
      Beiträge: 91Registriert: 07.12.2009
 i920,6GB DDR3,FX3500SW2011 SP1.0
 Win7 64Bit
 |    erstellt am: 08. Jul. 2010 06:42  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | metz Mitglied
 Techniker Maschinenbau
 
   
 
      Beiträge: 326Registriert: 16.02.2009
 |    erstellt am: 08. Jul. 2010 06:57  <-- editieren / zitieren -->    Unities abgeben:           Nur für kons92   | 
                        | kons92 Mitglied
 Konstrukteur
 
  
 
      Beiträge: 91Registriert: 07.12.2009
 i920,6GB DDR3,FX3500SW2011 SP1.0
 Win7 64Bit
 |    erstellt am: 08. Jul. 2010 16:49  <-- editieren / zitieren -->    Unities abgeben:            | 
                       
 | kons92 Mitglied
 Konstrukteur
 
  
 
      Beiträge: 91Registriert: 07.12.2009
 i920,6GB DDR3,FX3500SW2011 SP1.0
 Win7 64Bit
 |    erstellt am: 10. Jul. 2010 14:01  <-- editieren / zitieren -->    Unities abgeben:            
  Leider bin ich noch am suchen, wie ich den ersten Teil, welche alle Teile öffnet ändern kann, sodass er nur die Teile der Baugruppe öffnet, die geöffnet ist, wenn man das Makro startet. Vielleicht hat einer eine Idee. Vielen Dank im voraus Kons92 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |