Makro do otwierania płaszczyzny, na której znajduje się tylko część nazwy pliku 3D

Witam

Chciałbym zrobić makro, które pozwoliłoby mi otworzyć plan pomieszczenia, w którym uruchamiam makro. Jednak nazwa instalacji jest tylko częścią nazwy pliku 3D.

Moje pliki 3D nazywają się "3D0000M000-1 Nazwa pliku. Sldprt", a moje plany nazywają się tylko "3D0000M000-1".

Znajdują się one w tym samym folderze.

Nie mogę rozpocząć wyszukiwania, zaczynając od tylko tych pierwszych 12 znaków.

Jeśli ktoś ma jakiś pomysł, jestem zainteresowany, jestem pewien, że nie jest to skomplikowane, ale blokuję!

Z góry dzięki!

Witam

Zwykle wystarczą tylko dwa kliknięcia, aby otworzyć MEP, CTRL-D + wprowadź  lub zobaczysz literę, której dotyczy problem (plik == > utworzyć plan, a obok niego znajduje się skrót)


ctrl-d.jpg
1 polubienie

Witam

Trochę pracy nad ciągami vba, zobacz TUTAJ.

Pozdrowienia

 

2 polubienia

Witam Panowie,

Dziękujemy za Twoją opinię!

AC Cobra 427 : Ponieważ część nie nazywa się dokładnie tak samo jak płaszczyzna, nie otwiera się.

D.Roger: Próbowałem zintegrować funkcję Left, ale po jej uruchomieniu pojawia się błąd 91. Myślę, że to zmienna swModel jest problemem, ale próbowałem z swModel.GetPathName i nic to nie zmienia.

Oto mój kod:


code_ouverture_plan.jpg

Witam

Nazwa pliku = Lewo(swModel.GetTitle, 12)

Pozdrowienia

Dziękuję d.roger!

Nie mam już żadnych błędów w kompilacji, ale niestety zasada nie działa. Makro wysyła mi komunikat, że nie może znaleźć planu, gdy znajduje się on w tym samym folderze.

Masz pojęcie, co mogłem zrobić źle?

Witam

Musisz pobrać ścieżkę do folderu, popracować nad nazwą pliku, a następnie dodać żądane rozszerzenie:

Przyciemnij nazwę pliku jako ciąg
Nazwa pliku = Lewo(swModel.GetTitle, 12)
Nazwa pliku Debug.Print
Dim swPath As String
swPath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, "\", , 0))
Debug.Print swPath
Dim nazwa_plikuZaplanuj jako ciąg
FilenamePlan=swPath & Nazwa pliku & ".slddrw"
Debug.Print Nazwa pliku Plan

Pozdrowienia

Mały jak "bestia"; Po co zmieniać nazwisko posła do Parlamentu Europejskiego???

Witam 

Twoje makro zwraca komunikat, że nie ma rysunku, ponieważ umieściłeś *.slddrw   , więc szuka 3D0000M000-1*.slddrw

Witam

Dziękuję za pomoc!

W końcu rozwiązałem swój problem, ale nie poświęciłem czasu, aby ci o tym powiedzieć!

Oto kod, którego użyłem:

Opcja jawna

Dim swApp jako SldWorks.SldWorks
Dim swModel As ModelDoc2

Dim DocName As Ciąg
Dim DrwName As Ciąg

Dim swLoadErrors tak długo, jak długo
Dim swLoadWarnings Tak długo

Sub main()

Ustaw swApp = Application.SldWorks

Ustaw swModel = swApp.ActiveDoc

DocName = swModel.GetTitle

DrwName = Left$(NazwaDokumentu, 12) & ".slddrw"

DrwName = Replace(swModel.GetPathName, DocName, DrwName, 1, , vbTextCompare)

Jeśli Dir$(DrwName) <> "" to

Ustaw swModel = swApp.OpenDoc6(DrwName, swDocDRAWING, swOpenDocOptions_Silent, "", swLoadErrors, swLoadWarnings)

Zakończ jeżeli:

Koniec subwoofera