Slt, szukam makra do zmiany nazw kart rysunków

Witam 

Szukam makra, które mógłbym dostosować i które pozwoliłoby mi wyszukać właściwość modelu w moim aktywnym widoku, a po przechwyceniu zmienić nazwę arkusza zgodnie z tą właściwością dla wszystkich arkuszy. Wykonujemy rysunki, które zawierają kilka części z numerami graweru i to właśnie ten numer grawerowania chciałbym zaimportować, aby nazwać zakładkę mojego rysunku. Jeśli masz coś, daj mi znać. Bardzo dziękuję! (jesteśmy na SW 2016)

 

Eric

2 polubienia

Witam

Sprawdź, czy to może Ci pomóc...

http://www.lynkoa.com/tutos/macro-solidworks-renommer-feuille-1-de-la-msie-en-plan

1 polubienie

Znalazłem inny, który powinien działać... Być może będziesz musiał zmienić kod, aby umieścić swoją funkcję (numer grawerowania)...

Znalazłem go tutaj w ostatnim poście:

http://www.forum-cao-3d.fr/api-questions/renommer-feuille-mep-solidworks-t12546.html


rename_all_sheetsconfiguration.swp
1 polubienie

Witam

Czy łatwiej byłoby przechwycić fragment danych bezpośrednio na rysunku i poprosić makro o zmianę nazwy arkusza zgodnie z tymi danymi? Bo w końcu numer, który mnie interesuje, automatycznie zapisuje się w moim kartridżu! Po prostu uważam, że Dassault nie myśli o zintegrowaniu tej opcji bezpośrednio z właściwościami liści!!

Dziękuję

Dziękuję za odpowiedź cobra, ale miałem już to makro ale nie przyjmuje ono bezpośredniej właściwości w samej części, ale albo nazwę konfiguracji, albo nazwę części:(

Głupia rzecz, ale jeśli przeczytasz tę właściwość w nazwie konfiguracji, powinna działać...

Witam

Aby pobrać właściwość w tabelce rysunkowej, najprostszym sposobem jest zapętlenie adnotacji.

Zasadniczo musisz użyć tego typu pętli:

    Ustaw deklarację swView=swDraw.GetFirstView ', aby włączyć mapę bazową
     Ustaw swNote = swView.GetFirstNote
    swModel.ClearSelection2 (Prawda)
    Zrób Póki Nie SwNote Nic
        Ustaw swAnn = swNote.GetAnnotation
        sValue = "$PRPSHEET:""" & Num_Gravage & """" ' Wpisz nazwę nieruchomości, której szukasz
        Jeśli swNote.PropertyLinkedText = sValue, to
                swSheet.SetName (swNote.GetText)
                Wyjdź z subwoofera
        Zakończ jeżeli:
        swModel.ClearSelection2 (Prawda)
        Ustaw swNote = swNote.GetNext
    Pętla
 

 

Cóż, dziękuję Ceril, ale ponieważ nie jestem programistą VBA, nie jestem zbyt pewien, gdzie i jak wstawić twoją linię, oto kod, który staram się dostosować do moich potrzeb! Jeśli mógłbyś mi pomóc, byłoby wspaniale. Dziękuję

Dim swApp jako SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Przyciemnij swSheet jako SldWorks.Sheet
Dim swModelview2 As Konfiguracja
Dim ConfigName As String
Przyciemnij vSheets jako wariant
Dim swView As SldWorks.View
Dim i As Liczba całkowita

Sub main()
Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc

vSheets = swModel.GetSheetNames
Dla i = 1 TB swModel.GetSheetCount
swModel.ActivateSheet vSheets(i - 1)
Ustaw swSheet = swModel.GetCurrentSheet
Liczba = swModel.GetModelViewCount

Ustaw swView = swModel.GetFirstView

Zrób Póki Nie SwView To Nic
ConfigName = swView.ReferencedConfiguration
Ustaw swView = swView.GetNextView
Pętla
swSheet.SetName Nazwa_konfiguracji
Dalej i

swModel.EditRebuild3 powiedział:
swModel.Save2 Fałsz
    
Koniec subwoofera

1 polubienie

Witam

W załączeniu znajduje się odpowiadający mu kod. Pozostaje tylko wpisać nazwę poszukiwanej nieruchomości.

 


renommage_feuille.txt

Popełniłem mały błąd, do przetwarzania kilku arkuszy zamień exit sub na exit do w tej części:

Jeśli swNote.PropertyLinkedText = sValue, to
                swSheet.SetName (swNote.GetText )
                swModel.EditRebuild3 powiedział:
                swModel.Save2 Fałsz
                Wyjdź z Do

1 polubienie

Na szczycie Cyryl! Bardzo dziękuję za pomoc!!

1 polubienie

Witam, czy w odniesieniu do tego nowego makra istnieje  sposób, aby stwierdzić, że notatka, w której znajdują się informacje, których szukam, aby zmienić nazwę moich kart, faktycznie zawiera więcej niż jedną właściwość?

Notatka składa się z 2 właściwości, które tworzą moją ostateczną liczbę, i nie wiem, jak powiedzieć jej &!

Podsumowując, jak możemy mu powiedzieć, aby skopiował notatkę, która zawiera tę właściwość i tę właściwość?

Dziękuję za pomoc, jestem do bani w VBA :)

 

Eric

Witam

W kodzie zamień wiersz sValue = "$PRPSHEET:"""Num_Gravage""" 'Wpisz nazwę poszukiwanej nieruchomości:

sValue = "$PRP:""Num_gravage"""" & "$PRP:"Inne""""" &"   "Wprowadź nazwę nieruchomości, której szukasz"

Jeśli w treści adnotacji nie ma nic między tymi dwiema właściwościami, usuń pierwsze & " ":

sValue = "$PRP:""Num_gravage"" & "$PRP:"""Inne"""" &" 

Witaj Cyryl, Oto,  co zrobiłem, ale to nie działa?!

    Zrób Póki Nie SwNote Nic
        Ustaw swAnn = swNote.GetAnnotation
        sValue = "$PRPSHEET:""Brak rysunku""" & "$PRPSHEET:""Brak elementu (rysunek)"""  'Wpisz nazwę nieruchomości, której szukasz'
        Jeśli swNote.PropertyLinkedText = sValue, to
                swSheet.SetName (swNote.GetText)
                swModel.EditRebuild3 powiedział:
                swModel.Save2 Fałsz
                Wyjdź z Do
        Zakończ jeżeli:
        swModel.ClearSelection2 (Prawda)
        Ustaw swNote = swNote.GetNext
    Pętla
Następny
Koniec subwoofera

Skopiowałem tutaj tylko tę sekcję, która nas interesuje.

$PRPSHEET czy tylko $PRP?

 

Dziękuję

Eric

Witam, nie ma znaczenia PRP czy PRPSHEET, to zależy od tego, skąd pochodzi nieruchomość.

Bezwzględnie konieczne jest użycie & " " na końcu sValue, tj.:

sValue = "$PRPSHEET:""Brak rysunku""" & "$PRPSHEET:""Brak elementu (rysunek)"""  & "