|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus  der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | 
|  |  | 
|  | myCAD Event 2025, eine Veranstaltung am 18.11.2025 
 | 
| Autor | Thema:  Arbeitsprozess automatisieren (2307 mal gelesen) | 
 | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 08:33  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Forum, vielleicht hat ja jemand von euch schon mal das Problem gehabt jedes Teil im Strukturbaum zu öffnen und es mit Strg+Q neu durchrechnen zu lassen und anschließend wieder abspeichern und schließen zu müssen.Das sind viele Mausklicks bei vielen Teilen.
 Ist euch vielleicht schon einmal solch ein Script über den Weg gelaufen? Ich selber habe keine Ahnung von Script bzw. Marcoprogrammierung.
 Wer könnte mir bei meinem Problem behilflich sein?
 Vielen Dank schon mal im Voraus.Gruß Thomas
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Olaf Wolfram Ehrenmitglied V.I.P. h.c.
 CAD-Mutti und Konstrukteur CSWP CSWI
 
 
  
 
      Beiträge: 2431Registriert: 30.06.2008
 I7-3770 CPU 3,40 Ghz32 Gb RAM
 64 bit
 WIN 10
 SWX 2019 SP5
 NVIDIA Quadro K2000<P>
 Lenovo ThinkStation
 |    erstellt am: 14. Jan. 2010 08:47  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Hallo Thomas, Was bezweckst du damit, bzw. was willst du an den Dateien erreichen?Vlt. hilft dir der Taskplaner?
 ------------------...strebe niemals nach den Dingen, die auch dümmeren gelingen.....
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 08:57  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Hallo Thomas, Ich habe mir mal genau so ein Makro gebaut. Der Code ist sicher nicht perfekt, funktioniert aber.Dies ist aber mit äusserster Vorsich zu geniessen!
 Ich lehne jede Haftung ab!
   Code:
 [EDIT] War nix! 
 UserForm1, ist bloss eine Progressbar (ProgressBar1). Dazu wird noch der Titel des Fensters geändert (Caption). Kannst Du aber alles weglassen, wenn Du möchtest.
 ------------------
 
  
 [Diese Nachricht wurde von G. Dawg am 14. Jan. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 09:00  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Ofaf, meine Teile besitzen Bohrreihen. Die Bohrungen zueinander dürfen einen bestimmten Lochabstand nicht überschreiten. Wird das Teil länger, dann wird automatisch eine Bohrung dazu getan. Das funktioniert in beide Richtungen. Diesen Automatismus habe ich über Gleichnungen erreicht, die sich im Teil befinden. SWX
  ist leider nicht in der Lage alles zu aktualisieren. Es stellt das Teil nach dem aktualisieren richtig dar, aber leider die Bohrkette nicht. Erst wenn ich das Teil separat öffnen und dann Strg+Q sage, dann werden erst die Bohrungen richtig gesetzt. Deshalb bin ich gezwungen jedes Teil separat zu öffnen und zu aktualisieren.
 Wenn ich jetzt so ein Makro hätte mit dem ich das Öffnen,aktualisieren & speichern automaisieren könnte, dann würde das mir viele Mausklicks ersparen.
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 09:13  <-- editieren / zitieren -->    Unities abgeben:            
  Vielen Dank für die schnelle Hilfe, aber wie schon gesagt, ich habe von Programmmierung keine Ahnung. Ich habe dein Quellcode mal in ein Macro kopiert und gestartet. Es kam gleich am Anfang eine Fehlermeldung bei UserForm1.Show 0 Wenn du sagt ich kann alles weglassen, dann weis ich wirklich nicht bis wohin ich die Zeilen herauslöschen kann. Sorry!!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 09:34  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Ok, sorry!     So vielleicht: Code:
 Public swApp As SldWorks.SldWorksPublic ModelDoc As SldWorks.ModelDoc2
 Sub main()Dim bret As Boolean
 Dim i As Integer
 Dim x As Integer
 '##########################################################################Set swApp = Application.SldWorks
 Set ModelDoc = swApp.GetFirstDocument
 i = 0Do While Not ModelDoc Is Nothing
 i = i + 1
 Set ModelDoc = ModelDoc.GetNext
 Loop
 '##########################################################################
 '##########################################################################
 Set swApp = Application.SldWorks
 Set ModelDoc = swApp.GetFirstDocument
 x = 0Do While Not ModelDoc Is Nothing
 bret = ModelDoc.ForceRebuild3(True)
 x = x + 1
 
 Debug.Print "Bitte warten ... " & x & " von " & i & " Dokumenten neu aufgebaut: " & ModelDoc.GetTitle
 Set ModelDoc = ModelDoc.GetNext
 Loop
 '##########################################################################
 Debug.Print "#############################################"Debug.Print "Fertig, " & i & " Dokumente neu aufgebaut."
 End Sub 
 ------------------
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 09:54  <-- editieren / zitieren -->    Unities abgeben:            
  Ich habe jetzt noch einmal ein neues Macro angelegt.  Dieses Macro habe ich gestartet. Das Programm hat eine Weile eine Sanduhr gezeigt und dann war es fertig. Ich kann jetzt nicht auf Anhieb sagen, ob er etwas gemacht hat. Werd mal die Teile kontrollieren. Nur nochmal für mich zum Verständnis: 1) Teil wird geöffnet 2) Teil wird neu durchgerechnet (z.Bsp. mit Strg+Q) 3) Teil wird abgespeichert 4) Teil wird geschlossen 5) jetzt beginnt das Ganze wieder bei 1) Werden nur die nicht unterdrückten Teile aktualisiert oder alle Teile die im Strukturbaum stehen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 10:45  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Sorry für den Müll zuvor! Was Du, natürlich, suchst, ist das da: Code:
 Option Explicit
 Sub main()Dim swApp As SldWorks.SldWorks
 Dim swModel As SldWorks.ModelDoc2
 Dim swAssy As SldWorks.AssemblyDoc
 Dim swConf As SldWorks.Configuration
 Dim swRootComp As SldWorks.Component2
 Dim bret As Boolean
 
 Set swApp = CreateObject("SldWorks.Application")
 
 Set swModel = swApp.ActiveDoc
 Set swConf = swModel.GetActiveConfiguration
 
 Dim swSelMgr As SldWorks.SelectionMgr
 Dim SelComp As SldWorks.Component2
 
 Set swRootComp = swConf.GetRootComponent
 
 Debug.Print "File = " & swModel.GetPathName
 
 TraverseComponent swRootComp, 1
 End Sub Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)
 Dim vChildComp As Variant
 Dim swChildComp As SldWorks.Component2
 Dim swCompConfig As SldWorks.Configuration
 Dim sPadStr As String
 Dim i As Long
 For i = 0 To nLevel - 1
 sPadStr = sPadStr + " "
 Next i
 vChildComp = swComp.GetChildren
 For i = 0 To UBound(vChildComp)
 Set swChildComp = vChildComp(i)
 TraverseComponent swChildComp, nLevel + 1
 Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
 
 
 Dim swApp1 As SldWorks.SldWorks
 Dim swModel1 As SldWorks.ModelDoc2
 Set swApp1 = CreateObject("SldWorks.Application")
 Set swModel1 = swApp1.ActiveDoc
 Dim bret As Boolean
 bret = swModel1.ForceRebuild3(True)
 
 Next i
 
 End Sub
 
 
 ------------------
   [Diese Nachricht wurde von G. Dawg am 14. Jan. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 11:28  <-- editieren / zitieren -->    Unities abgeben:            
  Sorry, aber ich hab auch noch einmal mit dem letzten Quellcode von dir probiert, aber die Teile werden nicht aktualisiert.Ich hab dir mal eine Beispielbaugruppe mitgeschickt. Wenn du in der Baugruppe sagst aktualisieren, dann verändern sich die Lochabstände nicht. Gehts du aber direkt in das Teil und sagst dort aktualisieren, dann werden die Bohrungen neu berechnet.
 Das bekomme ich mit deinem Makro im Moment noch nicht hin.
 Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 11:31  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 13:12  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
   Jetzt wird das geöffnete und neu aufgebaute Dokument auch gleich gespeichert (ohne zu fragen )    Code:
 Option Explicit
 Sub main()Dim swApp As SldWorks.SldWorks
 Dim swModel As SldWorks.ModelDoc2
 Dim swAssy As SldWorks.AssemblyDoc
 Dim swConf As SldWorks.Configuration
 Dim swRootComp As SldWorks.Component2
 Dim bret As Boolean
 
 Set swApp = CreateObject("SldWorks.Application")
 Set swModel = swApp.ActiveDoc
 Set swConf = swModel.GetActiveConfiguration
 
 Dim swSelMgr As SldWorks.SelectionMgr
 Dim SelComp As SldWorks.Component2
 
 Set swRootComp = swConf.GetRootComponent
 
 Debug.Print "File = " & swModel.GetPathName
 
 TraverseComponent swRootComp, 1
 End Sub Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)
 Dim vChildComp As Variant
 Dim swChildComp As SldWorks.Component2
 Dim swCompConfig As SldWorks.Configuration
 Dim sPadStr As String
 Dim i As Long
 Dim nRetval As Long
 
 For i = 0 To nLevel - 1
 sPadStr = sPadStr + " "
 Next i
 vChildComp = swComp.GetChildren
 For i = 0 To UBound(vChildComp)
 Set swChildComp = vChildComp(i)
 TraverseComponent swChildComp, nLevel + 1
 
 Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
 
 Dim swApp1 As SldWorks.SldWorks
 Dim swModel1 As SldWorks.ModelDoc2
 Set swApp1 = Application.SldWorks
 
 Set swModel1 = swApp1.ActivateDoc2(swChildComp.GetPathName, True, nRetval): Debug.Assert 0 = nRetval
 
 Dim bret As Boolean
 bret = swModel1.ForceRebuild3(True)
 
 swModel1.Save
 swApp1.CloseDoc (swChildComp.GetPathName)
 
 Next i
 
 End Sub
 
 
 Ich hoffe, dass das jetzt bei Dir das Gewünschte erledigt.
 ------------------
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 13:47  <-- editieren / zitieren -->    Unities abgeben:            
  Sorry, hab das Macro mal ausprobiert. Es bleibt nach kurzer Zeit stehen. Ich habe ein Screenshot vom Debugger gemacht. Sollte dich das Thema inzwischen nerven, dann gib mir kurz bescheid und wir brechen es hier ab. Ich hatte nicht vor dich mit meinen Problemen derartig in Beschlag zu nehmen.
 Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 13:49  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 13:58  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 14:02  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Funktioniert! Hast Du die Verweise kontrolliert? Im VBA Editor unter Extras -> Verweise.Dort sollten KEINE "NICHT VORHANDEN: SoidWorks [IRGENDETWAS]" stehen.
 Wenn dort welche auf SolidWorks 2009 zeigen sollten, muss Du die gleichen Verweise für die 2007 Version suchen und aktivieren.
 ------------------
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Lutz Federbusch Ehrenmitglied V.I.P. h.c.
 Dipl.-Ing. Maschinenbau
 
 
  
 
      Beiträge: 3094Registriert: 03.12.2001
 alle SW seit 97+AutoCAD2016-2022
 ERP ProAlpha + CA-Link
 Intel Core i7-7820K 32GB
 Win10x64 Quadro K5000
 SpacePilot
 |    erstellt am: 14. Jan. 2010 14:05  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Vielleicht sind noch Verweise dabei, die nicht passen, weil nicht die gleichen Dinge/Versionen auf den Rechnern installiert sind. Schaut mal aus dem Quelltextfenster unter Extras-Verweise nach. ------------------Lutz Federbusch
 Mein Gästebuch
 Der Mensch, Herr oder Sklave der Technik?
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 15:17  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | metz Mitglied
 Techniker Maschinenbau
 
   
 
      Beiträge: 326Registriert: 16.02.2009
 |    erstellt am: 14. Jan. 2010 15:52  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 14. Jan. 2010 16:47  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
 Zitat:Original erstellt von Thomas 3D:
 Ich hab dir mal einen Screenshot von meinen Verweisen gemacht.
   
 Hmmm!?Kennt 2007 die Methode "GetChildren" vielleicht nicht?
 Öffne in SolidWorks die Hilfe -> API-Hilfe und suche nach "GetChildren". Was siehst Du?
 ------------------ [FunCode]Dim ArmerKerl as Mann
 Dim Frau as Object
 ArmerKerl do Frau untilFrau.GetChildren
 Loop
 [/FunCode]
 ------------------
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 17:08  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Lutz Federbusch Ehrenmitglied V.I.P. h.c.
 Dipl.-Ing. Maschinenbau
 
 
  
 
      Beiträge: 3094Registriert: 03.12.2001
 alle SW seit 97+AutoCAD2016-2022
 ERP ProAlpha + CA-Link
 Intel Core i7-7820K 32GB
 Win10x64 Quadro K5000
 SpacePilot
 |    erstellt am: 14. Jan. 2010 17:20  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Bei mir läuft das unter SW2007x64 SP3.0 und speichert tatsächlich alle enthaltenen Komponenten, aber nicht die aktive Baugruppe. Zum FunCode:ArmerKerl ist inzwischen ersetzt...
 ------------------Lutz Federbusch
 Mein Gästebuch
 Der Mensch, Herr oder Sklave der Technik?
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 17:24  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Lutz Federbusch Ehrenmitglied V.I.P. h.c.
 Dipl.-Ing. Maschinenbau
 
 
  
 
      Beiträge: 3094Registriert: 03.12.2001
 alle SW seit 97+AutoCAD2016-2022
 ERP ProAlpha + CA-Link
 Intel Core i7-7820K 32GB
 Win10x64 Quadro K5000
 SpacePilot
 |    erstellt am: 14. Jan. 2010 17:29  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 17:38  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Lutz Federbusch Ehrenmitglied V.I.P. h.c.
 Dipl.-Ing. Maschinenbau
 
 
  
 
      Beiträge: 3094Registriert: 03.12.2001
 alle SW seit 97+AutoCAD2016-2022
 ERP ProAlpha + CA-Link
 Intel Core i7-7820K 32GB
 Win10x64 Quadro K5000
 SpacePilot
 |    erstellt am: 14. Jan. 2010 17:41  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 17:53  <-- editieren / zitieren -->    Unities abgeben:            
  1) Ich habe das Macro über das Icon "Macro starten" (grünes Dreieck) ausgewählt und somit auch gestartet. 2) als Fehlermeldung kommt: siehe oben Bild Macro03.jpg 3) Option Explicit in Hochkomma setze, dann passiert garnichts Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 18:09  <-- editieren / zitieren -->    Unities abgeben:            
  Ich habe die Hochkommas wieder herausgelöscht. Komischerweise ging es dann. Mir ist aufgefallen, dass die Bohrungen nicht gleich richtig plaziert werden. Erst beim 2. Mal starten des Macros wurden, die Bohrungen richtig platziert. Ist das auch bei euch so gewesen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Lutz Federbusch Ehrenmitglied V.I.P. h.c.
 Dipl.-Ing. Maschinenbau
 
 
  
 
      Beiträge: 3094Registriert: 03.12.2001
 alle SW seit 97+AutoCAD2016-2022
 ERP ProAlpha + CA-Link
 Intel Core i7-7820K 32GB
 Win10x64 Quadro K5000
 SpacePilot
 |    erstellt am: 14. Jan. 2010 18:10  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Klick mal in Deiner Fehlermeldung auf DEBUG und halte die Maus nacheinander über Deinen Variablennamen still - dann siehst Du, was für Werte drinstehen. bret sollte TRUE sein. SwApp1 und SwModel1 nicht "Nothing" ------------------Lutz Federbusch
 Mein Gästebuch
 Der Mensch, Herr oder Sklave der Technik?
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 18:21  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 14. Jan. 2010 18:26  <-- editieren / zitieren -->    Unities abgeben:            
  Ich habe jetzt mal ein 2. Teil dazu geladen, um zu sehen ob das Macro auch mit 2 Teilen umgehen kann. Das Macro ist durchgelaufen. Ich mußte allerdings das Macro 2x starten, damit die Bohrungen richtig plaziert werden.  Ich habe noch einen 2. Versuch gestartet. Jetzt ist eins von den zwei Teilen unterdrückt. Das Macro hängt sich wieder auf.     Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 15. Jan. 2010 07:02  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Versuche mal die folgende Zeilen zu ändern, damit die unterdrückten Teile übersprungen werden: EDIT: Makro angehängt Ändere in
 Code:
 Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)
 
 
 folgende Zeilen[/code]
 Set swModel1 = swApp1.ActivateDoc2(swChildComp.GetPathName, True, nRetval): Debug.Assert 0 = nRetval
 
 Dim bret As Boolean
 bret = swModel1.ForceRebuild3(True)
 
 swModel1.Save
 swApp1.CloseDoc (swChildComp.GetPathName)
 [/code]
 zu
 Code:
 Set swModel1 = swApp1.ActivateDoc2(swChildComp.GetPathName, True, nRetval): Debug.Assert 0 = nRetval
 Set swModel1 = swApp1.ActiveDoc
 
 If swModel1.Visible Then
 Dim bret As Boolean
 bret = swModel1.ForceRebuild3(True)
 swModel1.Save
 swApp1.CloseDoc (swChildComp.GetPathName)
 End If
 
 
 ------------------
   [Diese Nachricht wurde von G. Dawg am 15. Jan. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 15. Jan. 2010 07:23  <-- editieren / zitieren -->    Unities abgeben:            
  Guten Morgen, ich habe so eben das Macro ausprobiert, da scheint noch ein Fehler zu sein, denn sobald ich das Macro starte blinkt der Mauspfeil und hört damit nicht mehr auf. Es sieht so aus als wenn sich das Programm im Kreise dreht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 15. Jan. 2010 08:25  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
 Zitat:Original erstellt von Thomas 3D:
 Es sieht so aus als wenn sich das Programm im Kreise dreht.
 
 Eigentlich kann das nicht sein. Wieso ist das nur bei Dir so?!Arbeitest Du mit SolidWorks 2007 oder 2009?
 ------------------
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 15. Jan. 2010 08:47  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 15. Jan. 2010 08:53  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 15. Jan. 2010 11:10  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Geht. Nach dem 2. Aufbau auch richtig. Scheint eine SolidWorks-Limitation zu sein. Eigentlich müsste man die Teile prüfen ob diese Unterdrückt sind. Wird jetzt nicht gemacht.Denn so sollte nichts neu aufgebaut werden können, weil das massgebende Teil unterdrückt ist; oder?!
 So wie Du das haben möchtest, ist, zuerst alle Unterdrückungen aufheben, jedes Teil nacheinander öffnen, CTRL+Q und speichern.Aber... und dann? Alles wieder unterdrücken?
 Da musst Du wohl selber ran an die API. 1. Damit es für Dich funktioniert, 2. Damit alles Deinen Wünschen entspricht. 3. Ich leider keine Zeit habe um das weiter zu verfolgen. Sorry. ------------------
   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 15. Jan. 2010 11:19  <-- editieren / zitieren -->    Unities abgeben:            
  Ich möchte die bestehende Konfiguration einfach aktualisieren. Es sollen nur die Teile geöffnet werden, die nicht unterdrückt worden sind.  Aber trotzdem VIELEN DANK für deine Hilfe. Ich werd dein Macro auf einem anderen Rechner ausprobieren. Vielleicht klappt es ja dort. Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | G. Dawg Ehrenmitglied V.I.P. h.c.
 Teamleiter FEM Simulation
 
 
  
 
      Beiträge: 2622Registriert: 12.07.2004
 SolidWorks_2o2o SP3.oWin10_x64, Quadro_P2ooo.
 VisualStudio_2o19_Pro.
 FEM: Forge_NxT_HPC, ANSYS_WB.
 3D-Printer: Ultimaker_2, Tinker_Gnome.
 |    erstellt am: 15. Jan. 2010 11:27  <-- editieren / zitieren -->    Unities abgeben:           Nur für Thomas 3D   
  Einmal noch!      Versuches damit. Jetzt werden unterdrückte Komponenten nicht mehr neu aufgebaut. Weiss nicht ob es das besser macht...?! EDITErsetze:
 
 Code:If swModel1.Visible Then
 
 mit:
 Code:If swChildComp.GetSuppression <> 0 Then
 
 ------------------
   [Diese Nachricht wurde von G. Dawg am 15. Jan. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | Thomas 3D Mitglied
 3D Designer
 
   
 
      Beiträge: 394Registriert: 17.09.2008
 AutoCad 2024Athena 2023
 SWX 2020
 |    erstellt am: 15. Jan. 2010 11:37  <-- editieren / zitieren -->    Unities abgeben:            |