Makro Property Intelligence

Witam

W mojej firmie nazywamy nasze utwory: Nomdeprojet_Numérodepièce_Révision.

Chcę utworzyć makro Solidworks, które pozwoli mi wypełnić właściwości "ProjectName" (pierwsze 7 znaków lub cokolwiek przed pierwszym "_") i "PartNumber" (znaki pomiędzy dwoma "_") części we właściwości niestandardowej.

Czy mógłbyś mi pomóc z kodem, ponieważ jestem prawdziwym początkującym, jeśli chodzi o makra, lub jeśli istnieje prostsza metoda.

 

Dziękuję

 

Quentin

Witam

Nie ma go w Solidworks i nie jest to dokładnie to, czego szukasz, ale może ci pomóc z makrem.

W moim przypadku nazwa pliku jest następująca: désignationdelapièce__référence

Odwołanie zawsze składa się z 8 znaków.

 

/*Wyszukiwanie separatora
separator=szukaj(rel_model_name(),"__")
/* sprawdzić obecność separatora
Jeśli separator >0
/*Wyodrębnianie oznaczenia
desygnacja=ekstrakt(rel_model_name(),1,(separator-1))
/*Pobierz odniesienie
reference=ekstrakt(rel_model_name(),(separator+2),8)
inaczej
desygnacja=rel_model_name()
reference="...-.... "
endif (jedynie)

 

S.B

Dziękuję

Udało mi się dzięki otwartemu tematowi na forum, jeśli to pomoże:

 

 

Dim swApp jako SldWorks.SldWorks

Dim swModel As ModelDoc2

 
Sub main()

 
    Ustaw swApp = Application.SldWorks

    Ustaw swModel = swApp.ActiveDoc

 
    'Sprawdź i dodaj/zaktualizuj właściwość PartNo
   
    Jeśli swModel.CustomInfo("_ToolingNo") = "" Następnie

      swModel.AddCustomInfo2 "_ToolingNo", swCustomInfoText, Left(swModel.GetTitle, 7)

    Inaczej

        swModel.CustomInfo("_ToolingNo") = Lewo(swModel.GetTitle, 7)

    Zakończ jeżeli:

 
    'Sprawdź i dodaj/aktualizuj właściwość poprawki
  
    Jeśli swModel.CustomInfo("_Position") = "" Następnie

      swModel.AddCustomInfo2 "_Position", swCustomInfoText, Mid(swModel.GetTitle, 9, 5)

    Inaczej

        swModel.CustomInfo("_Position") = Mid(swModel.GetTitle, 9, 5)

    Zakończ jeżeli:

 
    'Sprawdź i dodaj/aktualizuj właściwość opisu

    Jeśli swModel.CustomInfo("Poprawka") = "" Następnie

      swModel.AddCustomInfo2 "Rewizja", swCustomInfoText, Mid(swModel.GetTitle, 15, 2)

    Inaczej

        swModel.CustomInfo("Rewizja") = Mid(swModel.GetTitle, 15, 2)

    Zakończ jeżeli:

 
Koniec subwoofera