PB z VBA Newsheet4. Wstawia arkusz do rysunku, ale nie wyświetla wybranej mapy bazowej. Zmuszony do ręcznego ładowania go z SW

W wersji Sw 2015 i nowszych nie mogę uzyskać instrukcji Newsheet3 lub Newsheet4 VBA w celu wstawienia nowego arkusza do rysunku z makra VBA:

Arkusz jest rzeczywiście tworzony z określonym tłem, ale nie pojawia się. Muszę otworzyć rysunek w sw, zrobić właściwości liścia/przeładować tak, aby się pojawił.

Zauważ, że z przykładami makr podanymi w pomocy również nie działa.

Czy jest to początek rozwiązania?

Dziękuję

 

Witam

W przykładzie pomocy: http://help.solidworks.com/2015/english/api/sldworksapi/Create_Drawing_Sheet_Zones_Example_VB.htm

Używają metody swModel.ForceRebuild3 z krokiem True :

swModel.ForceRebuild3 True

 

Odpowiada to "przeładowaniu".

Witam 

Próbowałem tej ścieżki, nie działa lepiej, próbowałem też przerobić arkusz instalacyjny, a także edytować fdp z vba, ale to nie daje rady!!

W każdym razie dziękuję

Klasa A+

Witam

Jeśli mapy bazowe są dostosowane, należy pobrać informacje z oryginalnego arkusza, ponieważ oprogramowanie z pamięci korzysta z szablonów domyślnych.

Spójrz na swSheet.GetProperties w pomocy API.

1 polubienie

Witam

Tak, są to niestandardowe mapy bazowe, ale szablony są dostępne na 1 serwerze  i  w ustawieniach nowego arkusza podaję właściwą ścieżkę, nawiasem mówiąc , NewSheet3 działał bardzo dobrze pod sw2014 z tymi samymi parametrami przed pojawieniem się obszarów na arkuszach mapy (konfigurowalne w New Sheet4).

z drugiej strony, jeśli używam NewSheet3 (bez stref) w sw2015, nie działa lepiej. Jest zmiana, której nie potrafię określić.

Może ktoś ostatnio z powodzeniem korzystał z newshhet4, ciekawie byłoby poznać jego opinię.

W załączniku właściwości wstawionego arkusza (wszystko wydaje mi się normalne) i sprawdziłem przez getTemplateName, czy odpowiedni fdp jest dobrze uwzględniony.

 


sheetprop_feuille_inseree.jpg

Ze swojej strony jestem pod 2016 rokiem, z poniższą linią działa bez problemów:

     boolstatus = swDraw.NewSheet4("Test", swDwgPaperA3size, swDwgTemplateCustom, 1, 1, True, "xxx:\SOLIDWORKS TEMPLATES\Mapy bazowe\a3.slddrt", 0, 0, "", 0.5, 0.5, 0.5, 0, 0, 0)
 

1 polubienie

Dziękuję Ci Cyrylu, 

W rzeczywistości właśnie odkryłem, że oprogramowanie nie może ponownie załadować FDP, gdy nowy arkusz ma ten sam format i orientację co poprzedni. Gdy wybierzesz inny  format, to działa.

Rozwiązałem mój pb, celowo wstawiając źle zorientowany arkusz, a następnie odwracając go za pomocą arkusza konfiguracyjnego.

mój kod w PJ.

Dziękuję 

Klasa A+


fonctionne.txt

Zaskakujące, ponieważ linia, którą położyłem i plik, na którym testowałem, były A3 dla A3.

1 polubienie

Witam

Linia Cyril.f również działa dla mnie bardzo dobrze, be.adl jest jedna rzecz, która mnie trochę zaskakuje w twoim przykładzie kodu, definiujesz zmienną swDraw jako DrawingDoc, ale pracujesz na zmiennej Part, którą zdefiniowałeś jako ModelDoc2 w swoich funkcjach NewSheet3 i SetupSheet5, czy jest to dobrowolne i czy różnica w działaniu będzie stamtąd?

Pozdrowienia

Witam

W rzeczywistości powrót do Modeldoc2  lub drawingDoc pozwala mi mieć dostęp do activateSheet() dla nowo utworzonego arkusza. Nie sprawdzałem, czy jest to naprawdę konieczne, ale działa to w ten sposób.

Jeśli chodzi o działanie Newshhet4(), dla mnie zacina się tylko wtedy, gdy wstawiony nowy arkusz ma ten sam format i orientację, co arkusze już obecne w oryginalnym dokumencie.

Pozdrawiam A+