| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
Autor
|
Thema: Per Makro Zuschnittliste in Baugruppe automatisch erstellen und aktualisieren (2310 / mal gelesen)
|
Sascha1986 Mitglied
 Beiträge: 1 Registriert: 09.01.2017
|
erstellt am: 09. Jan. 2017 18:29 <-- editieren / zitieren --> Unities abgeben:         
Guten Abend miteinander, ich bin aktuell auf der Suche nach einer Lösung für unsere alten Daten. Wir arbeiten hauptsächlich mit Blechteielen und somit auch mit Schweißkonstruktionen. Das Problem ist nun, dass wir aktuell unser System automatisieren wollen. D.h. Vorschläge für benötigte Lagerbestände von Blechen, definiertere Ermittlung der Herstellungskosten einzelner Bauteile für Kosteneinsparungen usw. Um das ganze auf dem schnellsten Wege umzusetzen benötigen wir die Zuschnittsliste von Solidworks. Soweit auch kein Problem. Um jedoch die alten Daten ins System zu laden, werden Stücklisten mit Einzug und somit auch eine Zuschnittsliste in den einzelnen Teilen benötigt. Leider fehlt mir die nötige Erfahrung in der Programmierung der Makros. Aktuell kann das Makro nur auf ein einzelnes Teil angewendet werden. Ziel soll jedoch sein, dass das Makro sich durch die Baugruppe arbeitet und alle fehlenden Zuschnittslisten der Teile erstellt und diese automatisch aktualisiert. Anbei der bisherige Code: Code: Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swFeatMgr As SldWorks.FeatureManager Dim swFeat As SldWorks.Feature Dim swBodyFolder As SldWorks.BodyFolder Dim FeatType As String Dim FeatTypeName As String Dim ModelDoc As ObjectSub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swFeat = swModel.FirstFeature Set swFeatMgr = swModel.FeatureManager Do While Not swFeat Is Nothing FeatType = swFeat.Name FeatTypeName = swFeat.GetTypeName2 If FeatTypeName = "SolidBodyFolder" Then Set swBodyFolder = swFeat.GetSpecificFeature2 swBodyFolder.SetAutomaticCutList True swBodyFolder.SetAutomaticUpdate True End If Set swFeat = swFeat.GetNextFeature Loop End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
  
 Beiträge: 729 Registriert: 17.01.2007 SWX 2023 SP5 Draftsight 2023 Win 11 Enterprise Intel i7-13700 2.10 GHz 64GB RAM Nvidia RTX A2000 12GB SWx EPDM AP+ CSWE 2018
|
erstellt am: 10. Jan. 2017 07:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Sascha1986
Zum Basteln: Code:
Set swapp = Application.SldWorks Set swAllDocs = swapp.EnumDocuments2 Set FirstDoc = swapp.ActiveDoc DocCount = 0 swAllDocs.Reset swAllDocs.Next 1, swdoc, NumDocsReturned ' This loop will go through all of the documents within an assembly, including sub-assemblies. While NumDocsReturned <> 0 bDocWasVisible = swdoc.Visible ' Use Hidden Parts ' check the file to make sure it's a "sldprt" file. If (UCase(Right(swdoc.GetPathName, 6)) = UCase("sldprt")) Then swapp.ActivateDoc2 swdoc.GetPathName, True, longstatus 'open and activate the part 'Hier deinen Code reinfummeln swdoc.SaveAs (swdoc.GetPathName) ' save the change swapp.CloseDoc (swdoc.GetTitle()) ' close the part End If swAllDocs.Next 1, swdoc, NumDocsReturned ' Go to the next part DocCount = DocCount + 1 ' Keep a count of all parts within the assembly, including sub-assemblies. Wend
Gruß, Jens ------------------ CSWA, CSWP =) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
ramsy77 Mitglied Admin
 
 Beiträge: 125 Registriert: 17.12.2009 immer am letztstand...
|
erstellt am: 08. Jan. 2018 15:42 <-- editieren / zitieren --> Unities abgeben:          Nur für Sascha1986
Hallo, ist bei eurem Versuch was raus gekommen? Dieses Makro ist höchst interessant zumal ich beispielsweise versuche aus einer BG, in der auch irgendwo strukturbauteile verbaut sind, eine zuschnittsliste raus zu fahren um der AV die benötigten Längen an Profilen zu übergeben. das funkt in der BG nur dann wenn am top-level ein strukturbauteil verbaut ist der auch tatsächlich ein volumen hat (leere vorlage reicht nicht) danke vorab! mfg, R. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |