Eksport makr rozłożony dxf BIS

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

Dodatkowe informacje dla tych, którzy nie wiedzą, nie mam wiedzy na temat Vba ^^

 

Załączyłem sitodruk podstawowego makra


macro_de_base.png

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

W bieżącym makrze mam:

 

bRebuild = swModel.ForceRebuild3(False)

Jeśli zmienisz wartość "false" na "true", nie rozwiąże to problemu?

1 polubienie

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

@Coin37coin:

Jest to wartość zwracana, która pozwala dowiedzieć się, czy rekonstrukcja zwróciła błędy: http://help.solidworks.com/2015/english/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IModelDoc2~ForceRebuild3.html

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

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

@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

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

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ę?

 

 

@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

Oto plik tekstowy z komentarzem.


macro_export_famille_de_piece_dxf.txt
1 polubienie

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

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

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

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