Makro do usuwania Arkusza2

Witam

 

Chcę mieć możliwość usunięcia arkusza2 (jeśli istnieje) z rysunku za pomocą makra. (SW2014)

Najpierw próbowałem nagrać makro, ale to nie działa, potem znalazłem wiele tropów w internecie, ale na razie żaden z nich nie działa.

 

Oto przykład (niefunkcjonalny) dotyczący 3D Content Central:

 

' Przykładowe makro z opisami sposobu dodawania i usuwania arkuszy rysunków. Autor: Matthew Lorono, Copyright 2007 (fcsuper@aol.com)
' Na przykład, ten kod sam w sobie nie zapewnia zwykłej funkcji.  Używając tego kodu w jakikolwiek sposób, użytkownik i
' wszelkie podmioty, które Użytkownik reprezentuje, wyrażają zgodę na zwolnienie pierwotnego autora z wszelkiej odpowiedzialności.
Bezpłatna dystrybucja i użycie tego kodu w innych wolnych pracach są mile widziane.  Jeśli jakakolwiek część tego kodu jest używana w innych pracach, uznanie
' oryginalny autor musi być umieszczony w tym utworze w miejscu widocznym dla użytkownika.  Wszystkie inne formy dystrybucji (tj. nie są bezpłatne) są
' zabronione bez wyraźnej pisemnej zgody pierwotnego autora.
' Dystrybuowane przez: http://sw.fcsuper.com

Dim swApp As Object
Przyciemnij część jako obiekt
Dim boolstatus As Boolean

Sub main()

Ustaw swApp = Application.SldWorks

Ustaw część = swApp.ActiveDoc

"Dodaj arkusz
boolstatus = Part.NewSheet3("Bean", swDwgPaperCsize, swDwgTemplateCsize, 1, 1, False, 0, 0, 0, 0)

'Wyczyść boolstatus dla następnej operacji (operacja usuwania może nie działać poprawnie, gdy boolstatus = True)
boolstatus = Fałsz

'Dane wejściowe użytkownika (aby użytkownik mógł zobaczyć, co się stało; nie są niezbędne do działania tego makra)
MsgBox ("Co słychać?")

'Wybierz arkusz
boolstatus = Part.Extension.SelectByID2("Bean", "ARKUSZ", 0, 0, 0, Fałsz, 0, Nic, 0)

'Usuń arkusz
Part.EditDelete (Część.EdytujUsuń

Koniec subwoofera

 

Jeśli masz pomysł z wyprzedzeniem, dziękuję.

Witam

Jeśli masz dostęp do narzędzi MyCADTools, INTEGRACJA pozwala Ci to zrobić (tak mi się wydaje).

Jeśli nie, poczekaj @.PL!

1 polubienie

Nie można go znaleźć w integracji, pozwala usunąć warstwę, ale nie arkusz.

Celem jest właśnie uruchomienie tego makra w integracji.

1 polubienie

Więc w tamtym czasie pomyślałem, że to jest jedno z możliwych działań. Przepraszam.

Możesz to zrobić w następujący sposób:

 

 

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

swDrawing.ActivateSheet ("Arkusz 2")

Ustaw swSheet = swDrawing.GetCurrentSheet

 

SWMODEL. EditDelete (EdytujUsuń)

 

1 polubienie

Witam

Prawdopodobnie musisz zamienić "SHEET" na "Sheet" lub, co bardziej prawdopodobne, "Sheet2".

Oryginalne makro będzie działać, jeśli SolidWorks jest w języku angielskim...

FYI, 1. makro dodało arkusz, ale nie może go usunąć.

Dla makra g.doyen ditto

SW wyświetla etykietę narzędzia, której nie można usunąć żadną z tych encji.

W przeciwnym razie próbowałem również w angielskich makrach zastąpić je Leaf lub Leaf2, na próżno.

Czy zatem powinniśmy dodać arkusz, czy go usunąć? A może po prostu usunąć arkusz 2 tylko wtedy, gdy istnieje?

Usunięto Arkusz Sheet2, jeśli istnieje.

1 polubienie

Ok, więc załącznik makro działa?


feuille2.txt

Niestety nie, błąd kompilacji.

Oto sitodruk:

Ponieważ obraz nie jest świetny

To błędy na tej linii

Ustaw swSheet = swDrawing.GetCurrentSheet

a dokładniej na swDrawing (zmienna niezdefiniowana)

Zrobione w pośpiechu i nie przetestowane, zamiast tego musi zostać przeciągnięte.
1 polubienie

spróbuj podmienić na SwDraw ;)

 

Nawiasem mówiąc, Twój 2. arkusz koniecznie będzie się nazywał "arkusz2"?

Jeśli chodzi o pomyłkę, to prawda.

Arkusz2 aktywuje się, ale okno z komunikatem Żadna z tych encji nie może zostać usunięta, nadal się pojawia... GRRR...

 

W przeciwnym razie, w naszym sposobie działania, tak, Arkusz1 jest zawsze płaszczyzną laserową, a Arkusz2 jest płaszczyzną składania.

Miałem czas, aby przetestować to dziś wieczorem i teraz działa!

Makro umieściłem w samouczku na Lynkoa, można je znaleźć tutaj:

http://www.lynkoa.com/tutos/macro-solidworks-supprimer-une-feuille-d-une-mise-en-plan-0

 

PS: wybierz tę odpowiedź jako najlepszą!

1 polubienie

Przepraszam za spóźnioną odpowiedź. Ale dziś rano duży problem z siecią.

Przetestowałem ostatnie makro i działa świetnie.

Z drugiej strony format pdf całkowicie psuje układ podczas kopiowania, wklejania.

Ale nic poważnego.

Bardzo dziękuję wszystkim, którzy pomogli, a w szczególności .PL, którzy zasłużyli na najlepszą odpowiedź!

1 polubienie
Dziękuję. W przypadku twojego ostatniego problemu, którego nie zrozumiałem, możesz otworzyć nowe pytanie, jeśli chcesz.