API: Grundkarte bearbeiten und speichern unter

Hallo

 

Ich suche nach einer Möglichkeit, ein Element aus meiner Grundkarte (unabhängig vom Format) zu löschen und die MEP im PDF-Format zu speichern und ohne Speichern zu schließen.

Für das Öffnen der Datei ist es in Ordnung.

Um im PDF-Format zu speichern, ist es in Ordnung: "longstatus = Part.SaveAs3(Path & "\" & sfilename & "OUTSIDE", 0, 0)"

Zu schließen, ohne zu speichern, glaube ich zu wissen: "Instanz. QuitDoc (Name)"

 

Aber auf der anderen Seite, wenn ich ein Element aus meinem Hintergrundplan entferne, auf allen Blättern und auf allen Papierformaten, bin ich verloren. Ich habe den Makrorecorder ausprobiert. Erfolglos. Hier ist der Code, den es mir gibt:

 

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Sheet2", "SHEET", 0.189279289501591, 0.128100540827147, 0, False, 0, Nichts, 0)
Part.EditTemplate
Part.EditSketch
Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Plan détail20@Fond object2", "HINWEIS", 0.244213266171792, 4.26476882290562E-02, 0, Falsch, 0, Nichts, 0)
Part.EditDelete
Part.EditSheet
Part.EditSketch

 

 

Hat jemand eine Lösung?

 

Vielen Dank

Gautier.

 

Hallo

Was ist das für ein mysteriöses Ding, das aus der Grundkarte entfernt werden soll? Eine Anmerkung?

Ist es auf jeder Grundkarte genau gleich?

Wäre es nicht einfacher, eine andere Grundkarte neu zu laden?

Informationen zum Ändern der Grundkarte finden Sie unter diesem Link:

https://forum.solidworks.com/thread/38707?tstart=0

Andernfalls können die MyCAD-Dienstprogramme (kostenpflichtig) eine Dokumentvorlage auch in großen Mengen ändern (z. B. für einen Ordner).

Oder sehen Sie sich diesen Link an, der mehrere Makros enthält:

https://forum.solidworks.com/thread/59487

Ich möchte den Namen unseres Kunden entfernen.

Es ist immer dasselbe, es stimmt, dass es einfacher wäre, den Hintergrundplan zu ändern. Ich hatte nicht darüber nachgedacht.

 

Auf der anderen Seite weiß ich nicht, wie ich das Format meines Hintergrunds ändern kann. Und ich weiß auch nicht, wie ich die Art des Formats kennen soll (A4, A3, A2, A1, A0).

1 „Gefällt mir“
Die Antwort gibt es wohl hier: https://forum.solidworks.com/thread/60953

Hier ist die Lösung, die ich gefunden habe:

Wie mir geraten, habe ich Grundkarten erstellt, indem ich die Daten entfernt habe, die mich nicht interessieren.

Dann speichere ich als PDF und schließe schließlich die Datei, ohne sie zu speichern:

Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc
Set swDrawing = swModel

'Testen, ob die Datei geöffnet ist
Wenn swModel nichts ist, dann

    MsgBox ("Dokument öffnen")

Oder

    Legen Sie swSheet = swDrawing.GetCurrentSheet fest
    'Ruft den Namen ohne Erweiterung ab
    nom_Fichier = Strings.Left(swModel.GetPathName, Strings.Len(swModel.GetPathName) - 7)
    nom_Ouvrir = swModel.GetPathName
    'Rufen Sie die Erweiterung ab
    Erweiterung = Strings.Right(swModel.GetPathName, 7)

    "Ruft alle Namen der Blätter ab
    vSheets = swDrawing.GetSheetNames
    nb_Feuil = swDrawing.GetSheetCount

    If (Not (IsEmpty(vSheets))) dann
    
        nom_Quitter = swModel.GetTitle
        Länge = Länge(vBlätter(0))
    
        »Für alle Blätter
        Für i = 0 Bis UBound(vSheets)
            'Funktion zum Abrufen von Blattformaten
            swDrawing.ActivateSheet (vSheets(i))
            
            Legen Sie swSheet = swDrawing.GetCurrentSheet fest
            sheetProperties = swSheet.GetProperties
            
            sheetScale = sheetProperties(2) / sheetProperties(3)
            paperSize = swSheet.GetSize(Breite, Höhe)
        
            "Je nach Formatwechsel durch ein anderes Format
            Wählen Sie Case paperFormat
        
            Kasten 7
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(4), width, height, "Standard", True)
        
            Kasten 8
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(3), width, height, "Standard", True)
            
            Kasten 9
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(2), width, height, "Standard", True)
        
            Kasten 10
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(1), width, height, "Standard", True)
        
            Kasten 11
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(0), width, height, "Default", True)
        
            Ende Auswahl
        
        
    Weiter i
    
    Als PDF mit der Erweiterung EXT gespeichert
    longstatus = swModel.SaveAs(nom_Fichier & " EXT.PDF")
    Veranstaltungen durchführen
    "Geschlossen ohne Einsparung
    swApp.QuitDoc (nom_Quitter)
    Veranstaltungen durchführen
    
Ende, wenn
Ende, wenn

 

Hier ist der Code, der es mir ermöglicht, alle Blätter einer Zeichnung mit einer neuen Grundkarte zu ändern, sie als PDF zu speichern und ohne Speichern zu schließen:

Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc
Set swDrawing = swModel

'Testen, ob die Datei geöffnet ist
Wenn swModel nichts ist, dann

    MsgBox ("Dokument öffnen")

Oder

    Legen Sie swSheet = swDrawing.GetCurrentSheet fest
    'Ruft den Namen ohne Erweiterung ab
    nom_Fichier = Strings.Left(swModel.GetPathName, Strings.Len(swModel.GetPathName) - 7)
    nom_Ouvrir = swModel.GetPathName
    'Rufen Sie die Erweiterung ab
    Erweiterung = Strings.Right(swModel.GetPathName, 7)

    "Ruft alle Namen der Blätter ab
    vSheets = swDrawing.GetSheetNames
    nb_Feuil = swDrawing.GetSheetCount

    If (Not (IsEmpty(vSheets))) dann
    
        nom_Quitter = swModel.GetTitle
        Länge = Länge(vBlätter(0))
    
        »Für alle Blätter
        Für i = 0 Bis UBound(vSheets)
            'Funktion zum Abrufen von Blattformaten
            swDrawing.ActivateSheet (vSheets(i))
            
            Legen Sie swSheet = swDrawing.GetCurrentSheet fest
            sheetProperties = swSheet.GetProperties
            
            sheetScale = sheetProperties(2) / sheetProperties(3)
            paperSize = swSheet.GetSize(Breite, Höhe)
        
            "Je nach Formatwechsel durch ein anderes Format
            Wählen Sie Case paperFormat
        
            Kasten 7
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(4), width, height, "Standard", True)
        
            Kasten 8
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(3), width, height, "Standard", True)
            
            Kasten 9
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(2), width, height, "Standard", True)
        
            Kasten 10
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(1), width, height, "Standard", True)
        
            Kasten 11
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(0), width, height, "Default", True)
        
            Ende Auswahl
        
        
    Weiter i
    
    Als PDF mit der Erweiterung EXT gespeichert
    longstatus = swModel.SaveAs(nom_Fichier & " EXT.PDF")
    Veranstaltungen durchführen
    "Geschlossen ohne Einsparung
    swApp.QuitDoc (nom_Quitter)
    Veranstaltungen durchführen
    
Ende, wenn
Ende, wenn