bart
16 Listopad 2015 10:09
1
Cze wszystkim
Wracam do zarzutu dotyczącego wspomnianego w tym pytaniu makra.
Reasumując, posiadam plik Excel, który z jednej strony jest zamówieniem klienta, a z drugiej sparametryzowany plik Solidworks.
Chcę po prostu, aby Sw rozłożył każdą z konfiguracji mojej rodziny części i wyeksportował ją w formacie dxf z nazwą konfiguracji.
Pobrałem więc makro tutaj.
Ale utknąłem w kilku punktach.
- Kiedy uruchamiam makro, odczytując moją rodzinę części, tworzy ono stany rozwinięte (płaski wzór) dla wszystkich moich konfiguracji. Nie ma problemu, ale problem polega na tym, że eksportuje również te konfiguracje, więc kończę ze zduplikowanymi częściami.
- Moja część musi zostać odbudowana 2 razy, aby kwestie sporne zostały poprawnie rozwiązane. Chciałbym więc, aby przed eksportem każdej konfiguracji, Sw przebudowywał część 2 razy przed każdym nagraniem dxf.
Myślę, że to by było na tyle...
Z tym byłbym prawie na końcu mojego "projektu"
Dziękuję =)
1 polubienie
bart
16 Listopad 2015 10:13
2
Dodatkowe informacje dla tych, którzy nie wiedzą, nie mam wiedzy na temat Vba ^^
Załączyłem sitodruk podstawowego makra
macro_de_base.png
remrem
16 Listopad 2015 10:21
3
Do rekonstrukcji części:
Wykorzystuje metodę: Part.ForceRebuild3
Przykład tutaj: http://help.solidworks.com/2015/english/api/sldworksapi/rebuild_example_vb.htm
oraz tutaj (dla wszystkich konfiguracji): http://help.solidworks.com/2015/english/api/sldworksapi/Forcibly_Rebuild_All_Configurations_Example_VB.htm
2 polubienia
bart
16 Listopad 2015 10:26
4
W bieżącym makrze mam:
bRebuild = swModel.ForceRebuild3(False)
Jeśli zmienisz wartość "false" na "true", nie rozwiąże to problemu?
1 polubienie
remrem
16 Listopad 2015 10:33
6
Musisz upewnić się, że odbudowujesz właściwą konfigurację. Tutaj interesuje Cię "Flat Pattern".
Albo tak jak w przykładzie drugim, tworzysz listę wszystkich konfiguracji i przebudowujesz je jedna po drugiej.
Lub upewnij się, że wybrałeś odpowiednią konfigurację za pomocą tej metody: swModel.ShowConfiguration2 (sConfigName)
Następnie należy ponownie skompilować model.
2 polubienia
remrem
16 Listopad 2015 10:36
7
2 polubienia
Z drugiej strony nie rozumiem problemu, kiedy mówisz
"- Kiedy uruchamiam makro, odczytując moją rodzinę części, tworzy ono stany rozwinięte (płaski wzór) dla wszystkich moich konfiguracji. Nic wielkiego, ale problem polega na tym, że eksportuje również te konfiguracje, więc kończę z duplikatami części." ... czy to nie jest to, o co pytasz, kiedy mówisz "Chcę tylko, aby Sw rozłożył każdą z konfiguracji w mojej rodzinie części, kiedy uruchomisz makro i wyeksportujesz je do dxf z nazwą konfiguracji"?
(Nie mówię, że się mylisz, mówię, że nie rozumiem ;) )
Edit: Haaa ok Remrem. Dlatego to nie działa tak, jak chcę, zarówno prawda, jak i fałsz. Myślałem, że włączasz lub wyłączasz funkcję
1 polubienie
bart
16 Listopad 2015 10:43
9
Yes@remrem ,
W zasadzie nie zależy mi na "składanych" konfiguracjach.
To, co mnie interesuje, to wyeksportowanie wszystkich konfiguracji płaskiego wzoru, ale bez płaskiego wzoru pojawiającego się w nazwie.
W załączonym przykładzie właśnie utworzyłem pojedynczą konfigurację do przeprowadzenia testu.
Konfiguracja nazywa się "1625"
Dostaję te pliki
resultat.png
bart
16 Listopad 2015 10:47
10
@Coincoin, jeśli w zasadzie chcę tylko konfigurację na obu
Chcę tylko rozłożonego pokoju. Więc tak, tylko konfiguracja "płaskiego wzorca", ale usuwająca sufiks płaskiego wzoru
1 polubienie
remrem
16 Listopad 2015 10:53
11
Biorąc pod uwagę kod makra, jest to normalne:
Od:
Otwierasz plik programowy. Ty wymieniasz konfiguracje. Dla każdej konfiguracji:Ty wybierasz konfigurację Ty odbudowujesz Eksportujesz widok rozwijania z nazwą konfiguracji dnas nazwa pliku dxf
Czy istnieje sposób na rozróżnienie wykrytych konfiguracji?
Czy wszystkie pliki są rozłożone?
Czy możesz opublikować swój pełny kod w txt?
2 polubienia
bart
16 Listopad 2015 10:54
12
To jest ta część, którą trudno mi pojąć:
"Przyciemnij ścieżkę pliku jako ciąg Przyciemnij rozmiar ścieżki tak długo, jak długo Dim PathNoExtension As Ciąg Przyciemnij nową ścieżkę do pliku jako ciąg
ŚcieżkaPliku = swModel.GetPathName PathSize = Strings.Len(ŚcieżkaPliku)PathNoExtension = Strings.Left(ŚcieżkaPliku, RozmiarŚcieżki - 6)
NewFilePath = ŚcieżkaNoRozszerzenia + sNazwaKonfiguracji & ". DXF"
Eksport rozwinięcia blachy bRet = swModel.ExportFlatPatternView(NewFilePath, 1)
Dalej i
Koniec sub"
Co z tego wywnioskowałem, Sw eksportuje każdą konfigurację z nazwą części, nazwą konfiguracji z .dxf
A następnie wyeksportuj wszystkie konfiguracje "płaskiego wzoru"
Zgadza się?
bart
16 Listopad 2015 10:57
13
@remrem
Aby rozpoznać moje różne części, będzie ich nazwa (Typ 1) i konfiguracja długości (np. 1625)
Lub T1 1625.dxf, najlepiej byłoby mieć T1 LG 1625.dxf
Załączam makro
Tam udaje mi się uzyskać nazwę części "LG" config name.dxf
+ Nazwa części: "LG" "nazwa konfiguracji" płaski wzór.dxf
macro_export_famille_de_piece_dxf.txt
Nie, tworzy nową nazwę, a następnie eksportuje flatPattern, dołączając do niego nową nazwę
1 polubienie
remrem
16 Listopad 2015 12:03
15
1 polubienie
remrem
16 Listopad 2015 12:05
16
Oto obraz z kolorami dla lepszego zrozumienia.
Wykonane za pomocą Notepad++
[Edycja: ]
Dla "nazwy" jest to właściwość?
Czy długość jest właściwością, czy tylko iclus w nazwie konfiguracji?
Czy możesz wysłać mi standardową część do przeprowadzenia testów?
capture.png
2 polubienia
Aby obejść ten problem, radziłbym dodać następujący wiersz po "FilePath=swModel.GetPathName"
if String.Left(sConfigName, pathSize-15) = "SM-FLAT-PATTERN" then 'Sprawdź, czy ostatnie 15 znaków nazwy pasuje do SM-FLAT-PATTERN
Następny I' jeśli tak, następna konfiguracja
inaczej
I wznowić normalny przebieg makra później, nie zapominając o "end if" przed "Next i"
1 polubienie
bart
16 Listopad 2015 12:57
18
Jesteś @remrem szefem, dzięki temu lepiej rozumiem, jak działa makro. =)
Nazwa to tylko nazwa części, później po prostu wezmę nazwę konfiguracji
(T1, T2, T3 itd. staną się konfiguracjami i nie będą już częściami)
Nazwa konfiguracji nie jest zbyt ważna, o ile dostanę log części w nazwie Dxf.
Załączam dokument, o którym mowa
corniere.zip
bart
16 Listopad 2015 13:05
19
Zbliżamy się do perfekcji.
Aby obejść problem płaskiego wzoru, stworzyłem konfiguracje pochodne zamiast klasycznych konfiguracji.
Więc kończę tylko z moim rozłożonym z odpowiednią nazwą z nim związaną.
Tylko @remrem, jeśli możesz rzucić okiem na moją rodzinę pokojową, sprawdź, czy zrobiłbyś to samo.
Jeszcze raz dziękujemy! =)
resultat_2.png
1 polubienie
bart
16 Listopad 2015 13:21
20
Mała poprawa:
Aby wszystko było bezbłędne, chciałbym zastąpić om pokoju (PatchNoExtension) własnością osobistą.
Dodałem do mojej rodziny pokoi i w moich obiektach linię "typ"
Chciałbym, aby pojawił się w nazwie dxf.
Przykład: T1 (typ) LG 16455 (nazwa konfiguracji).dxf