| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | CATIA V5 Blechkonstruktion Schulung - online, ein Seminar am 14.09.2026
|
|
Autor
|
Thema: Makro für Feature Freeze (3175 mal gelesen)
|
ramsy77 Mitglied Admin
 
 Beiträge: 125 Registriert: 17.12.2009 immer am letztstand...
|
erstellt am: 19. Jun. 2012 16:26 <-- editieren / zitieren --> Unities abgeben:         
|
Sebastian Roth Mitglied Projektmanagment / Konstruktion
 
 Beiträge: 142 Registriert: 23.08.2010
|
erstellt am: 20. Jun. 2012 07:21 <-- editieren / zitieren --> Unities abgeben:          Nur für ramsy77
Zitat: Original erstellt von ramsy77:PS: Ich hasse SpeedPak!!! [/B]
Dafür gibts 10 Unities... Mit Makro bin ich allerdings auf dem Abstellgleis, das kann ich nicht ------------------ Rechtschreibfehler dienen nur der Belustigung des Lesenden - eine weitere Kommentierung ist nicht erwünscht! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 20. Jun. 2012 08:28 <-- editieren / zitieren --> Unities abgeben:          Nur für ramsy77
Hi, Hier mal ein kleines Makros. Es druchläuft alle geöffneten Teile und setzt den FeatureFreeze-Balken ganz nach unten. Code: Dim SldWorks As Object Dim ModelDoc As Object Dim AktuellesDokTyp As Integer Dim DateiMitPfad As String Dim Dateiname As String Dim modeldocTitle As String Dim featurename As String Dim boolstatus As Boolean Dim feature As Object Sub main() Set SldWorks = Application.SldWorks ' Featurefreeze-Balken aktivieren Application.SldWorks.SetUserPreferenceToggle swUserPreferenceToggle_e.swUserEnableFreezeBar, True Set ModelDoc = SldWorks.ActiveDoc ' durch alle offenen Dokumente gehen Set ModelDoc = SldWorks.GetFirstDocument While Not ModelDoc Is Nothing AktuellesDokTyp = ModelDoc.GetType Dateiname = ModelDoc.GetPathName ModelDoc.ForceRebuild3 True Select Case AktuellesDokTyp Case 1 Set feature = ModelDoc.FirstFeature ' While we have a valid feature While Not feature Is Nothing ' Get the name of the feature If feature.Name = "Einfrieren***" Then Else featurename = feature.Name End If ' Get the next feature Set feature = feature.GetNextFeature() ' Continue until the last feature is done Wend boolstatus = ModelDoc.Extension.SelectByID2(featurename, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) boolstatus = ModelDoc.FeatureManager.EditFreeze(swMoveFreezeBarTo_e.swMoveFreezeBarToAfterFeature, featurename, False) ModelDoc.SaveAs2 Dateiname, 0, False, True End Select ' Option: Datei schließen modeldocTitle = ModelDoc.GetTitle SldWorks.CloseDoc modeldocTitle Set ModelDoc = SldWorks.ActiveDoc Wend End Sub
Benutzung natürlich auf eigene Gefahr (also vorher mal Testen). Gruß, Carsten [Diese Nachricht wurde von Carsten1210 am 20. Jun. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 21. Jun. 2012 11:09 <-- editieren / zitieren --> Unities abgeben:          Nur für ramsy77
Hi, Hier noch eine kleine Korrektur falls es sich um Blechteile handelt: Code: Dim SldWorks As Object Dim ModelDoc As Object Dim AktuellesDokTyp As Integer Dim DateiMitPfad As String Dim Dateiname As String Dim modeldocTitle As String Dim featurename As String Dim boolstatus As Boolean Dim feature As Object Sub main() Set SldWorks = Application.SldWorks ' Featurefreeze-Balken aktivieren Application.SldWorks.SetUserPreferenceToggle swUserPreferenceToggle_e.swUserEnableFreezeBar, True Set ModelDoc = SldWorks.ActiveDoc ' durch alle offenen Dokumente gehen Set ModelDoc = SldWorks.GetFirstDocument While Not ModelDoc Is Nothing AktuellesDokTyp = ModelDoc.GetType Dateiname = ModelDoc.GetPathName ModelDoc.ForceRebuild3 True Select Case AktuellesDokTyp Case 1 Set feature = ModelDoc.FirstFeature ' While we have a valid feature While Not feature Is Nothing ' Get the name of the feature If feature.Name = "Einfrieren***" Then 'ElseIf Left(feature.Name, 10) = "Abwicklung" Then Else featurename = feature.Name End If ' Get the next feature Set feature = feature.GetNextFeature() ' Continue until the last feature is done Wend boolstatus = ModelDoc.Extension.SelectByID2(featurename, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) boolstatus = ModelDoc.FeatureManager.EditFreeze(swMoveFreezeBarTo_e.swMoveFreezeBarToAfterFeature, featurename, False) ModelDoc.SaveAs2 Dateiname, 0, False, True End Select ' Option: Datei schließen modeldocTitle = ModelDoc.GetTitle SldWorks.CloseDoc modeldocTitle Set ModelDoc = SldWorks.ActiveDoc Wend End Sub
Das FeatureFreeze konnte den Balken nicht hinter die Abwicklung schieben, das ist nun behoben. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |