Makro do tworzenia nowych planów na zaimportowanej części

Cze wszystkim 

Chciałbym, aby mnie oświecono w kwestii możliwości tworzenia planów o z góry określonych nazwach. Pracuję tylko na importowanych częściach i często nie podoba mi się oryginalny układ planów. Chciałbym więc wiedzieć, czy istnieje technika, która sprawi, że ich tworzenie będzie automatyczne i że nazwa będzie zawsze taka sama w zależności od stworzonego planu. 

Dziękuję 

Witam

Tak, możliwe jest tworzenie planów za pomocą kodu.

Problem polega na tym, że do tworzenia planów potrzebne są referencje. Tak więc, za pomocą makr, oprócz uniknięcia kliknięcia nowego planu, będziesz musiał wcześniej wybrać referencje, co moim zdaniem sprawia, że korzystanie z makra jest bezużyteczne.

Jeśli wiesz, wykonuj dość zaawansowane makra, możesz utworzyć klasę wyboru, dynamicznie utworzyć formularz, umieścić kombinacje zaznaczeń w kolekcji, przejść przez tę kolekcję, aby utworzyć konspekty. (około 4 godziny programowania dla konesera)

Kierując się tą zasadą, wypełniasz formularz wszystkimi swoimi wyborami i uruchamiasz makro, które zajmie się tworzeniem planów.

1 polubienie

Witaj Jean-Luc Villamy, podobny temat był już poruszany, może Ci odpowiada? http://www.lynkoa.com/forum/electrique/macro-pour-changement-dorientation-des-vue-sous-solidworks

W przeciwnym razie możemy zobaczyć, czy wyślesz nam przykładowy plik z planem do stworzenia :)

1 polubienie

@Yves.T Jestem dopiero nowy w kodzie VBA, a te kroki, które opisujesz, wydają się niewykonalne dla mojego poziomu kodowania. Miałem nadzieję, że ktoś będzie miał kadr makro jak najbardziej zbliżony do tego, co chcę zrobić , który mogę modyfikować do swoich potrzeb. 

@Mad tak wiem to od tego czasu to ja założyłem ten temat :) Udało mi się dostosować makro, które mi dałeś, do pracy po swojemu. W tym przypadku nie próbuję już zmieniać orientacji mojej części w stosunku do układów współrzędnych, ale tworzę nowe płaszczyzny, które mają zdefiniowaną nazwę zgodnie z układem współrzędnych (x;y; z). Na przykład NOM_PRENOM_FACE i to dla trzech płaszczyzn... TWARZ... DOITE i ... NAD znacznikiem, więc kiedy uruchamiam makro, muszę je po prostu ograniczyć, jak chcę. Problem z makrem, które mi dałeś, polega na tym, że niektóre części nie mają ograniczonych płaszczyzn na powierzchniach, które bym chciał, więc to makro nie dotyka bezpośrednio mojego problemu. 

Mam nadzieję, że wystarczająco jasno określiłem, czego szukam, dziękuję za pomoc w moim procesie i za cierpliwość !

Edycja: powodem, dla którego chcę zmodyfikować oryginalne plany importu części w KROK, jest fakt, że wynikowy widok na rysunku nie pokazuje tego, czego oczekuję od części. 

Rejestrator makr podaje ten kod do generowania trzech płaszczyzn w odległości 100 mm

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Dim myRefPlane As Object
Set myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.1, 0, 0, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de face", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de dessus", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de dessus", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Set myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.1, 0, 0, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de dessus", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de droite", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de droite", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
Set myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.1, 0, 0, 0, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Plan de droite", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
End Sub

 

To makro nie powoduje żadnych zmian w moim utworze, poza tym, że moje ujęcia błyszczą bardzo zwięźle... Czy musiałem zmienić kilka linii, aby to zadziałało?

Tak, elementy, które mają być modyfikowane, to nazwy planów

Próbowałem zmodyfikować wszystko pod kątem nazw samolotów, nic nie robiłem po uruchomieniu makra, budują mi inne o nazwach Plan 12, Plan 13 i Plan 14. Przyznam, że nie do końca rozumiem, dlaczego to nie działa, próbowałem wszystkich możliwych kombinacji

Mea culpa po sprawdzeniu nowego kawałka rzeczywiście nic nie generuje, patrzę na jego

Nie ma problemu, dzięki za pomoc, w końcu będę wiedział, jak kodować, patrząc na kody, aby wiedzieć, gdzie utknął!

Dużo szukałem i niestety nie mogę znaleźć niczego istniejącego w sieci... Mój problem można by również rozwiązać, gdyby makro zmieniło nazwę samolotu, który dla niego wyznaczę, na przykład makro dla płaszczyzny przedniej itp.  z imieniem, które dla niego definiuję. Nie obchodzi mnie, czy mam dużo makr na pasku zadań oprogramowania. Chcę tylko zautomatyzować wprowadzanie tekstu, co na dłuższą metę marnuje mój czas, więc makro według nazwy ujęcia nie jest denerwujące.

Chcesz tylko zmienić nazwę planu A na plan 1?

Znalazłem rozwiązanie, nagrywam makro, gdy zmieniam nazwy ujęć, które utworzyłbym tuż przed, tak aby ujęcie 1 było NOM_Face itd. dla innych ujęć, to znaczy moje makro znajdzie nazwę ujęć edytowanych wcześniej i które zawsze mają te same znaki wywoławcze, więc to ode mnie zależy, czy zmuszę się do wykonania rozkazu, aby zlokalizować ten, z którego pochodzi twarz itp., kiedy je tworzę. 

Z drugiej strony, teraz szukam nagrania makra, gdy wykonuję ograniczenie na dwóch płaszczyznach, które na razie zawsze będą miały te same nazwy, ale SW najwyraźniej nie chce nic wiedzieć o ograniczeniach... Czy ktoś kiedykolwiek utworzył makro w celu zwiększenia ograniczeń ustawiania płaszczyzn (pozycjonowania w ASM)

Jest to makro, które pozwala mi automatycznie zmieniać nazwy utworzonych wcześniej klipów. Nie zapomnij narzucić kolejności budowy, aby uporządkować widoki rysunku.

 


renommer_les_plans.txt