Mapa bazowa makr

Witam

Chcę zaktualizować tła starych planów. W folderze systemu Windows znajdują się następujące formaty szablonów: C:\parameter-sw\Basemaps

A3;   A3_Technical_specifications_catalogue_products; A2; A2_TECH; A1;  A1_TECH

 

na moich starych mapach bazowych, których używałem

 

A3;  Technical_specifications_catalogue_products; A2; A2_TECH; A1;  A1_TECH

Chciałbym, jeśli szablony nazw są

Technical_specifications_catalogue_products.slddrt, a następnie załaduj mapę bazową poprzez: A3_Technical_specifications_catalogue_products.slddrt

Jeśli A3.slddrt, to A3.slddrt nowa ścieżka

..............

 

Załączam makro, którego używam.

Masz pomysł, aby sprawdzić nazwę szablonu?

 

Z góry dziękujemy za Twoją opinię

 


mise_en_forme_fdp_avant_validation.swp

Witam

W zależności od tego, jak zadeklarowana jest funkcja SldWorks.Sheet, należy napisać to:

Set swSheet = swDraw.GetCurrentSheet
sTemplate = Mid(swSheet.GetTemplateName, InStrRev(swSheet.GetTemplateName, "\") + 1)

 

1 polubienie

Dziękujemy za Twoją opinię cyril

Testowałem, ale to nie działa, oto zaktualizowane makro 

Masz pomysł?

 

 

 


mise_en_forme_fdp_avant_validation_-_copie.swp

Witam

Do tego czasu nie otwierałem kodu, więc kiedy go otwieram, widzę, że nazwa znalezionej mapy tła nie jest przetwarzana.

Musisz więc użyć sTemplate z If... Wtedy.

Po zmianie planu tła w tym samym formacie posłużę się informacjami, które @d.roger przekazał mi w innym temacie w 2017 roku.

Zasadniczo musisz dwukrotnie rozpocząć zmianę tła, aby zadziałała.

bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")
bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")

 

Witaj Cyrylu,

Dziękujemy za Twoją opinię.

W przypadku formatu A3 mam 3 istniejące formaty A3,A3TECH,A3_Technical_specifications_catalogue_products 

Wszystkie szablony są nazwane w ten sam sposób (A3 dla A3, A3-TEC dla A3-TECH, A2 dla A2 ........), z wyjątkiem  Technical_specifications_catalogue_products, która stała się A3_Technical_specifications_catalogue_products.

Domyślam się, że musisz stworzyć tyle stałych, ile jest teł?

Nie rozumiem, jak  sprawdzić nazwę mapy bazowej i załadować odpowiednią mapę bazową.

Z góry dziękujemy za Twoją opinię


mise_en_forme_fdp_avant_validation_-_copie.swp

Witam

Przykład dla formatu A3, który należy powtórzyć na innych formatach.

                   If vSheetProps(0) = "8" Then
                      Select Case sTemplate
                        Case "Technical_specifications_catalogue_products.slddrt"
                            stemplatepath = cDirTemplate & "A3_Technical_specifications_catalogue_products.slddrt"
                        Case "A3.slddrt"
                            stemplatepath = cDirTemplate & cTemplateA3
                        Case "A3-TEC.slddrt"
                            stemplatepath = cDirTemplate & "A3-TEC.slddrt"
                        End Select
                        bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")
                        bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")

 

2 polubienia

Jeśli wszystko dobrze prześledziłem, otrzymasz nazwę szablonu za pomocą zmiennej sTemplate.

Po prostu wpisz w następujący wiersz "sTemplate = Mid(swSheet.GetTemplateName, InStrRev(swSheet.GetTemplateName, "\") + 1)", debug.print sTemplate lub msgbox sTemplate, aby zobaczyć wartość wyświetlanej zmiennej.

Następnie, zamiast wykonywać testy za pomocą vSheetProps, wykonujesz test za pomocą zmiennej sTemplate (Czy sTemplate jest równy lub zaczyna się od then...

1 polubienie

Dziękuję Ci Cyrylu,

Miłego dnia