Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro Blattformat neu Laden

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Performance Boost für Ihre Konstruktionen mit SOLIDWORKS 2023
Autor Thema:  Makro Blattformat neu Laden (1342 / mal gelesen)
Ringelstein
Mitglied
Ingenieur

Sehen Sie sich das Profil von Ringelstein an!   Senden Sie eine Private Message an Ringelstein  Schreiben Sie einen Gästebucheintrag für Ringelstein

Beiträge: 5
Registriert: 22.01.2020

erstellt am: 22. Jan. 2020 10:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Ziton an!   Senden Sie eine Private Message an Ziton  Schreiben Sie einen Gästebucheintrag für Ziton

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Ringelstein 10 Unities + Antwort hilfreich

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
Konstrukteur


Sehen Sie sich das Profil von Klopfer195 an!   Senden Sie eine Private Message an Klopfer195  Schreiben Sie einen Gästebucheintrag für Klopfer195

Beiträge: 27
Registriert: 05.02.2019

SolidWorks 2019 SP5

erstellt am: 22. Jan. 2020 10:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Ringelstein 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von Ringelstein an!   Senden Sie eine Private Message an Ringelstein  Schreiben Sie einen Gästebucheintrag für Ringelstein

Beiträge: 5
Registriert: 22.01.2020

erstellt am: 22. Jan. 2020 11:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Christoph Weise an!   Senden Sie eine Private Message an Christoph Weise  Schreiben Sie einen Gästebucheintrag für Christoph Weise

Beiträge: 204
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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Ringelstein 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von Ringelstein an!   Senden Sie eine Private Message an Ringelstein  Schreiben Sie einen Gästebucheintrag für Ringelstein

Beiträge: 5
Registriert: 22.01.2020

erstellt am: 29. Jan. 2020 12:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 ....


Sehen Sie sich das Profil von Lueghi an!   Senden Sie eine Private Message an Lueghi  Schreiben Sie einen Gästebucheintrag für Lueghi

Beiträge: 416
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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Ringelstein 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz