| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: Makro Blattformat neu Laden (1945 / mal gelesen)
|
Ringelstein Mitglied Ingenieur
 Beiträge: 5 Registriert: 22.01.2020
|
erstellt am: 22. Jan. 2020 10:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo wir bräuchten ein Makro um das aktive Blattformat neu zu laden. Ich hab da auch schon was zusammen gebastelt. Es funktioniert so weit auch schon. Aber das Makro verändert die Projektionsmethode vom ersten auf den dritten Winkel. Was muss ich verändern bzw. ergänzen das das nicht mehr passiert? Sub main()
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim vSheetProps As Variant Dim vSheetName As Variant Dim vTemplateName As Variant Dim longstatus As Long Dim longwarnings As Long Dim nErrors As Long Dim nWarnings As Long Dim i As Long '*************************************** On Error Resume Next Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc ' Check to see if a drawing is loaded. If swModel Is Nothing Then MsgBox "Keine 2D Zeichung geöffnet!" Exit Sub End If If swModel.GetType <> swDocDRAWING Then MsgBox "Keine 2D Zeichung geöffnet!" Exit Sub End If Set swDraw = swModel vSheetName = swDraw.GetSheetNames ' Traverse the drawing sheets For i = 0 To UBound(vSheetName) swDraw.ActivateSheet vSheetName(i) Set swSheet = swDraw.GetCurrentSheet 'Get the current drawing sheet format from this sheet vTemplateName = swSheet.GetTemplateName vSheetProps = swSheet.GetProperties 'Set the sheet format to NONE swModel.SetupSheet5 swSheet.GetName, swDwgPapersUserDefined, swDwgTemplateNone, vSheetProps(2), vSheetProps(3), False, "", vSheetProps(5), vSheetProps(6), "Default", True 'Reload original sheet format for this sheet swModel.SetupSheet5 swSheet.GetName, swDwgPapersUserDefined, swDwgTemplateCustom, vSheetProps(2), vSheetProps(3), False, vTemplateName, vSheetProps(5), vSheetProps(6), "Default", True swDraw.ViewZoomtofit2 Next i swDraw.ActivateSheet vSheetName(0) swDraw.ForceRebuild3 False swDraw.Save3 1, nErrors, nWarnings Set swDraw = Nothing MsgBox "Blatt wurde aktualisiert..." End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ziton Mitglied CAD/PDM Administration

 Beiträge: 24 Registriert: 05.01.2012 SW2018 SP5.0 / Pro.File 8.6 CPU: Intel i7-4790 4x 3,6GHz GPU: NVIDEA Quadro K2200 RAM: 16 GB Win 10 x64
|
erstellt am: 22. Jan. 2020 10:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Ringelstein
Hallo Ringelstein, hier mal die Parameter zum Befehl SetupSheet5 aus der API Hilfe. Name - Name for the sheet PaperSize - Size of paper if using swDwgTemplateNone as defined in swDwgPaperSizes_e TemplateIn - Template as defined in swDwgTemplates_e Scale1 - Scale numerator Scale2 - Scale denominator FirstAngle - True for first angle projection, false otherwise TemplateName - Name of custom template with full directory path if using swDwgTemplateCustom Width - Paper width; valid only if TemplateIn is set to swDwgTemplates_e.swDwgTemplateNone or PaperSize is set to swDwgPaperSizes_e.swDwgPapersUserDefined Height - Paper height if TemplateIn is set to swDwgTemplateNone or swDwgPapersUserDefined PropertyViewName - Name of view containing the model from which to get custom property values RemoveModifiedNotes - True to delete modified notes, false to not ------------------ Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klopfer195 Mitglied Projektmanager / Toolmanager

 Beiträge: 31 Registriert: 05.02.2019 SolidWorks 2019 SP5
|
erstellt am: 22. Jan. 2020 10:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Ringelstein
Ohne es jetzt mal auszuprobieren sollte es eigentlich so 'Reload original sheet format for this sheet swModel.SetupSheet5 swSheet.GetName, swDwgPapersUserDefined, swDwgTemplateCustom, vSheetProps(2), vSheetProps(3), True, vTemplateName, vSheetProps(5), vSheetProps(6), "Default", True swDraw.ViewZoomtofit2 funktionieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ringelstein Mitglied Ingenieur
 Beiträge: 5 Registriert: 22.01.2020
|
erstellt am: 22. Jan. 2020 11:28 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Klopfer195: Ohne es jetzt mal auszuprobieren sollte es eigentlich so 'Reload original sheet format for this sheet swModel.SetupSheet5 swSheet.GetName, swDwgPapersUserDefined, swDwgTemplateCustom, vSheetProps(2), vSheetProps(3), True, vTemplateName, vSheetProps(5), vSheetProps(6), "Default", True swDraw.ViewZoomtofit2 funktionieren.
Vielen Dank. Das hat geklappt. Hätte man ja auch drauf kommen können das vSheetProps(3) = FirstAngle ist.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christoph Weise Mitglied Technischer Produktdesigner / Konstruktion / CAD-Admin
 
 Beiträge: 207 Registriert: 22.03.2015 Dell 3650 Intel I7 11700k 32 GB RAM Nvidia RTX A4000 16GB Win 10 22H2 64-bit SolidWorks 2022SP5 QuickPress 6.3.3 PortaX 2.27 SAP ERP 6.0
|
erstellt am: 23. Jan. 2020 09:14 <-- editieren / zitieren --> Unities abgeben:          Nur für Ringelstein
Hallo Ringelstein, Ich hatte so etwas auch schon mal vor zu automatisieren. Nur bin ich hier auf ein Problem gestoßen, was bei dir evtl. auch vorliegt. Bei uns sind zum Teil auch ältere Zeichnungen vorhanden, wenn man diese manuell aktualisiert kommt die Meldung "Das Blattformat wurde nicht gefunden". Anschließend muss nun das Blattformat nochmals von Hand ausgewählt werden. Hast du dieses Problem auch? Oder hat irgendjemand die schon die Lösung dafür? Gruß Christoph ------------------ Wer einen Fehler findet darf ihn behalten, wer zwei findet kann beide behalten, ab fünf Fehler gibs Rabatt :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ringelstein Mitglied Ingenieur
 Beiträge: 5 Registriert: 22.01.2020
|
erstellt am: 29. Jan. 2020 12:00 <-- editieren / zitieren --> Unities abgeben:         
Ne, das Problem haben wir zum Glück nicht. Bei uns Funktioniert das Makro jetzt so eiwandfrei. Vielleicht hat sich der Dateipfad bei den alten Zeichnungen mal geändert das daher das Problem kommt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Lueghi Mitglied Admin für alle Systeme ....
 
 Beiträge: 467 Registriert: 01.07.2005 CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO PDM...: PRO.FILE 8.6 ERP...: proAlpha 6.2e / 7.1 BS....: Win10, HP ZBook G5
|
erstellt am: 29. Jan. 2020 12:35 <-- editieren / zitieren --> Unities abgeben:          Nur für Ringelstein
Zitat: Original erstellt von Christoph Weise: ... Bei uns sind zum Teil auch ältere Zeichnungen vorhanden, wenn man diese manuell aktualisiert kommt die Meldung "Das Blattformat wurde nicht gefunden". Anschließend muss nun das Blattformat nochmals von Hand ausgewählt werden.Hast du dieses Problem auch? Oder hat irgendjemand die schon die Lösung dafür?
Wenn sich nur der Vorlagenpfad geändert hat, dann kann man den aktuellen mit Code: sheetformatdir = Left(swApp.GetUserPreferenceStringValue(swFileLocationsSheetFormat), InStr(1, _ swApp.GetUserPreferenceStringValue(swFileLocationsSheetFormat), ";", vbTextCompare) - 1) & "\"
auslesen und mit dem aktuellen Vorlagennamen kombinieren. Dann sollte auch die automatische Aktualisierung funktionieren. ------------------ Gruß Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |