API: Basiskaart bewerken en opslaan als

Hallo

 

Ik ben op zoek naar een manier om een element uit mijn basiskaart te verwijderen (ongeacht het formaat) en de MEP in PDF-formaat op te slaan en te sluiten zonder op te slaan.

Voor het openen van het bestand is het ok.

Om op te slaan in PDF-formaat is het ok: "longstatus = Part.SaveAs3(Path & "\" & sfilename & "OUTSIDE", 0, 0)"

Om af te sluiten zonder op te slaan denk ik te weten: "instantie. QuitDoc (naam)"

 

Maar aan de andere kant, om een element uit mijn achtergrondplan te verwijderen, op alle vellen en op alle papierformaten, ben ik verloren. Ik heb de macrorecorder geprobeerd. Zonder succes. Hier is de code die het me geeft:

 

Deel instellen = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Blad2", "BLAD", 0.189279289501591, 0.128100540827147, 0, Onwaar, 0, Niets, 0)
Deel.EditTemplate
Deel.EditSketch
Deel.ClearSelection2 Waar
boolstatus = Part.Extension.SelectByID2("Plan détail20@Fond object2", "NOTE", 0.244213266171792, 4.26476882290562E-02, 0, False, 0, Niets, 0)
Deel.BewerkenVerwijderen
Deel.EditSheet
Deel.EditSketch

 

 

Heeft iemand een oplossing?

 

Bedankt

Gautier.

 

Hallo

Wat is dit mysterieuze ding om van de basiskaart te verwijderen? Een aantekening?

Is het op elke basiskaart precies hetzelfde?

Zou het niet makkelijker zijn om een andere basiskaart opnieuw te laden?

Om de basiskaart te wijzigen, zie deze link:

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

Anders kunnen de MyCAD-hulpprogramma's (betaald) een documentsjabloon ook in bulk wijzigen (bijvoorbeeld voor een map).

Of zie deze link die verschillende macro's bevat:

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

Ik wil de naam van onze klant verwijderen.

Het is altijd hetzelfde, het is waar dat het wijzigen van het achtergrondplan gemakkelijker zou zijn. Ik had er niet over nagedacht.

 

Aan de andere kant weet ik niet hoe ik het formaat van mijn achtergrond moet veranderen. En ik weet ook niet hoe ik het type formaat moet kennen (A4, A3, A2, A1, A0).

1 like
Het antwoord is waarschijnlijk hier: https://forum.solidworks.com/thread/60953

Hier is de oplossing die ik heb gevonden:

Zoals mij werd geadviseerd, heb ik basiskaarten gemaakt door de gegevens te verwijderen waarin ik niet geïnteresseerd ben.

Dan sla ik op als een PDF en ten slotte sluit ik het bestand zonder op te slaan:

Stel swApp = Toepassing.SldWorks in
Stel swModel = swApp.ActiveDoc in
Stel swDrawing in = swModel

'Test of het bestand is geopend
Als swModel niets is, dan

    MsgBox ("Een document openen")

Anders

    Stel swSheet in = swDrawing.GetCurrentSheet
    'Haalt naam op zonder extensie
    nom_Fichier = Strings.Left(swModel.GetPathName, Strings.Len(swModel.GetPathName) - 7)
    nom_Ouvrir = swModel.GetPathName
    'Haal de extensie op
    extensie = Strings.Right(swModel.GetPathName, 7)

    'Haalt alle namen van de bladen op
    vSheets = swDrawing.GetSheetNames
    nb_Feuil = swDrawing.GetSheetCount

    Als (Not (IsEmpty(vSheets))) dan
    
        nom_Quitter = swModel.GetTitle
        lengte = Len(vSheets(0))
    
        'Voor alle bladeren
        Voor i = 0 Naar UBound(vSheets)
            'Functie om bladformaten op te halen
            swDrawing.ActivateSheet (vSheets(i))
            
            Stel swSheet in = swDrawing.GetCurrentSheet
            sheetProperties = swSheet.GetProperties
            
            sheetScale = sheetProperties(2) / sheetProperties(3)
            paperSize = swSheet.GetSize(breedte, hoogte)
        
            'Volgens de formaatverandering door een ander formaat
            Selecteer Papierformaat van de behuizing
        
            Tekstvak 7
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(4), breedte, hoogte, "Standaard", True)
        
            Tekstvak 8
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(3), breedte, hoogte, "Standaard", True)
            
            Tekstvak 9
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(2), breedte, hoogte, "Standaard", True)
        
            Tekstvak 10
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(1), breedte, hoogte, "Standaard", True)
        
            Tekstvak 11
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(0), breedte, hoogte, "Standaard", True)
        
            Einde selecteren
        
        
    volgende i
    
    Opgeslagen als PDF met de extensie EXT
    longstatus = swModel.SaveAs(nom_Fichier & " EXT.PDF")
    Doe-evenementen
    'Gesloten zonder te besparen
    swApp.QuitDoc (nom_Quitter)
    Doe-evenementen
    
Einde als
Einde als

 

Hier is de code waarmee ik alle bladen van een tekening kan wijzigen met een nieuwe basiskaart, deze als pdf kan opslaan en sluiten zonder op te slaan:

Stel swApp = Toepassing.SldWorks in
Stel swModel = swApp.ActiveDoc in
Stel swDrawing in = swModel

'Test of het bestand is geopend
Als swModel niets is, dan

    MsgBox ("Een document openen")

Anders

    Stel swSheet in = swDrawing.GetCurrentSheet
    'Haalt naam op zonder extensie
    nom_Fichier = Strings.Left(swModel.GetPathName, Strings.Len(swModel.GetPathName) - 7)
    nom_Ouvrir = swModel.GetPathName
    'Haal de extensie op
    extensie = Strings.Right(swModel.GetPathName, 7)

    'Haalt alle namen van de bladen op
    vSheets = swDrawing.GetSheetNames
    nb_Feuil = swDrawing.GetSheetCount

    Als (Not (IsEmpty(vSheets))) dan
    
        nom_Quitter = swModel.GetTitle
        lengte = Len(vSheets(0))
    
        'Voor alle bladeren
        Voor i = 0 Naar UBound(vSheets)
            'Functie om bladformaten op te halen
            swDrawing.ActivateSheet (vSheets(i))
            
            Stel swSheet in = swDrawing.GetCurrentSheet
            sheetProperties = swSheet.GetProperties
            
            sheetScale = sheetProperties(2) / sheetProperties(3)
            paperSize = swSheet.GetSize(breedte, hoogte)
        
            'Volgens de formaatverandering door een ander formaat
            Selecteer Papierformaat van de behuizing
        
            Tekstvak 7
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(4), breedte, hoogte, "Standaard", True)
        
            Tekstvak 8
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(3), breedte, hoogte, "Standaard", True)
            
            Tekstvak 9
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(2), breedte, hoogte, "Standaard", True)
        
            Tekstvak 10
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(1), breedte, hoogte, "Standaard", True)
        
            Tekstvak 11
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(0), breedte, hoogte, "Standaard", True)
        
            Einde selecteren
        
        
    volgende i
    
    Opgeslagen als PDF met de extensie EXT
    longstatus = swModel.SaveAs(nom_Fichier & " EXT.PDF")
    Doe-evenementen
    'Gesloten zonder te besparen
    swApp.QuitDoc (nom_Quitter)
    Doe-evenementen
    
Einde als
Einde als