API: Edytuj mapę bazową i zapisz jako

Witam

 

Szukam sposobu na usunięcie elementu z mojej mapy bazowej (niezależnie od formatu) i zapisanie MEP w formacie PDF i zamknięcie bez zapisywania.

Do otwarcia pliku jest ok.

Aby zapisać w formacie PDF, jest ok: "longstatus = Part.SaveAs3(Ścieżka & "\" & sfilename & "OUTSIDE", 0, 0)"

Do zamknięcia bez zapisywania myślę, że wiem: "instancja. QuitDoc (nazwa)"

 

Ale z drugiej strony, aby usunąć element z mojego planu tła, na wszystkich arkuszach i na wszystkich rozmiarach papieru, jestem zagubiony. Wypróbowałem rejestrator makr. Bez powodzenia. Oto kod, który mi daje:

 

Ustaw część = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Arkusz2", "ARKUSZ", 0.189279289501591, 0.128100540827147, 0, Fałsz, 0, Nic, 0)
Part.EditTemplate (Szablon części)
Part.EditSketch
Part.ClearSelection2 Prawda
boolstatus = Part.Extension.SelectByID2("Plan détail20@Fond obiektu2", "UWAGA", 0.244213266171792, 4.26476882290562E-02, 0, Fałsz, 0, Nic, 0)
Part.EditDelete (Część.EdytujUsuń
Part.EditSheet (Arkusz edycji)
Part.EditSketch

 

 

Czy ktoś ma rozwiązanie?

 

Dziękuję

Gautier.

 

Witam

Co to za tajemnicza rzecz do usunięcia z mapy bazowej? Adnotacja?

Czy jest ona dokładnie taka sama na każdej mapie bazowej?

Czy nie byłoby łatwiej ponownie załadować inną mapę bazową?

Aby zmienić mapę bazową, skorzystaj z tego łącza:

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

W przeciwnym razie narzędzia MyCAD (płatne) mogą również zbiorczo zmienić szablon dokumentu (na przykład dla folderu).

Lub zobacz ten link, który zawiera kilka makr:

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

Chcę usunąć imię i nazwisko naszego klienta.

Zawsze jest tak samo, to prawda, że zmiana planu tła byłaby łatwiejsza. Nie myślałem o tym.

 

Z drugiej strony nie wiem, jak zmienić format mojego tła. I też nie wiem, jak poznać rodzaj formatu (A4, A3, A2, A1, A0).

1 polubienie
Odpowiedź prawdopodobnie znajduje się tutaj: https://forum.solidworks.com/thread/60953

Oto rozwiązanie, które znalazłem:

Zgodnie z poradą stworzyłem mapy bazowe, usuwając dane, które mnie nie interesują.

Następnie zapisuję jako PDF i na koniec zamykam plik bez zapisywania:

Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swDrawing = swModel

'Sprawdź, czy plik jest otwarty
Jeśli swModel jest niczym, to

    MsgBox ("Otwórz dokument")

Inaczej

    Ustaw swSheet = swDrawing.GetCurrentSheet
    'Pobiera nazwę bez rozszerzenia
    nom_Fichier = Strings.Left(swModel.GetPathName, Strings.Len(swModel.GetPathName) - 7)
    nom_Ouvrir = swModel.GetPathName
    'Pobierz rozszerzenie
    extension = Strings.Right(swModel.GetPathName, 7)

    'Pobiera wszystkie nazwy arkuszy
    vSheets = swDrawing.GetSheetNames
    nb_Feuil = swDrawing.GetSheetCount

    Jeśli (Not (IsEmpty(vSheets))) to
    
        nom_Quitter = swModel.GetTitle
        długość = Len(vSheets(0))
    
        "Na wszystkie liście
        Dla i = 0 Do UBound(vSheets)
            'Funkcja pobierania formatów arkuszy
            swDrawing.ActivateSheet (vSheets(i))
            
            Ustaw swSheet = swDrawing.GetCurrentSheet
            sheetProperties = swSheet.GetProperties
            
            sheetScale = właściwości_arkusza(2) / właściwościArkusza(3)
            paperSize = swSheet.GetSize(szerokość, wysokość)
        
            "W zależności od formatu zmiana na inny format
            Wybierz rozmiar papieru przypadku
        
            Ramka 7
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(4), width, height, "Default", True)
        
            Ramka 8
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(3), szerokość, wysokość, "Domyślnie", Prawda)
            
            Ramka 9
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(2), width, height, "Default", True)
        
            Ramka 10
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(1), szerokość, wysokość, "Domyślnie", Prawda)
        
            Ramka 11
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(0), szerokość, wysokość, "Domyślnie", Prawda)
        
            Zakończ wybór
        
        
    Dalej i
    
    Zapisany jako PDF z rozszerzeniem EXT
    longstatus = swModel.SaveAs(nom_Fichier & " EXT.PDF")
    DoWydarzenia
    "Zamknięte bez zapisywania
    swApp.QuitDoc (nom_Quitter)
    DoWydarzenia
    
Zakończ jeżeli:
Zakończ jeżeli:

 

Oto kod, który pozwala mi zmienić wszystkie arkusze rysunku z nową mapą bazową, zapisać go jako plik PDF i zamknąć bez zapisywania:

Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swDrawing = swModel

'Sprawdź, czy plik jest otwarty
Jeśli swModel jest niczym, to

    MsgBox ("Otwórz dokument")

Inaczej

    Ustaw swSheet = swDrawing.GetCurrentSheet
    'Pobiera nazwę bez rozszerzenia
    nom_Fichier = Strings.Left(swModel.GetPathName, Strings.Len(swModel.GetPathName) - 7)
    nom_Ouvrir = swModel.GetPathName
    'Pobierz rozszerzenie
    extension = Strings.Right(swModel.GetPathName, 7)

    'Pobiera wszystkie nazwy arkuszy
    vSheets = swDrawing.GetSheetNames
    nb_Feuil = swDrawing.GetSheetCount

    Jeśli (Not (IsEmpty(vSheets))) to
    
        nom_Quitter = swModel.GetTitle
        długość = Len(vSheets(0))
    
        "Na wszystkie liście
        Dla i = 0 Do UBound(vSheets)
            'Funkcja pobierania formatów arkuszy
            swDrawing.ActivateSheet (vSheets(i))
            
            Ustaw swSheet = swDrawing.GetCurrentSheet
            sheetProperties = swSheet.GetProperties
            
            sheetScale = właściwości_arkusza(2) / właściwościArkusza(3)
            paperSize = swSheet.GetSize(szerokość, wysokość)
        
            "W zależności od formatu zmiana na inny format
            Wybierz rozmiar papieru przypadku
        
            Ramka 7
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(4), width, height, "Default", True)
        
            Ramka 8
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(3), szerokość, wysokość, "Domyślnie", Prawda)
            
            Ramka 9
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(2), width, height, "Default", True)
        
            Ramka 10
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(1), szerokość, wysokość, "Domyślnie", Prawda)
        
            Ramka 11
        
                boolstatus = swModel.SetupSheet5(vSheets(i), 12, 12, sheetProperties(2), sheetProperties(3), True, sheetformatpath(0), szerokość, wysokość, "Domyślnie", Prawda)
        
            Zakończ wybór
        
        
    Dalej i
    
    Zapisany jako PDF z rozszerzeniem EXT
    longstatus = swModel.SaveAs(nom_Fichier & " EXT.PDF")
    DoWydarzenia
    "Zamknięte bez zapisywania
    swApp.QuitDoc (nom_Quitter)
    DoWydarzenia
    
Zakończ jeżeli:
Zakończ jeżeli: