Konwertowanie na arkusz blachy w bibliotece funkcji lub makrze

Witam

Chcę zintegrować funkcję konwersji woluminów z funkcją biblioteczną, ale i tak nie wydaje się to możliwe w SW2016. Czy istnieje sztuczka, którą warto znać lub alternatywne rozwiązanie typu makro, które pozwoliłoby za pomocą jednego kliknięcia połączyć kilka brył i przekształcić wynikową bryłę w arkusz blachy, wykonując automatyczne wyszukiwanie istniejących wcześniej zagięć?  Z góry dziękuję.

Witam

Czy możesz zrobić nam zrzut ekranu ze swojej gry, bo nie jestem pewien, co masz na myśli. Ale wypróbuj funkcję wkładania fałd; Za pomocą jednego kliknięcia ta funkcja rozpoznaje zagięcia.

1 polubienie

Już w celu połączenia ciał należy to zrobić

Z tego samego materiału

które się przecinają

Czy Twoje części są wielobryłowe, czy są produkowane niezależnie?

Twoje makro musi też umieć zaparzyć kawę?

@+ ;-)

4 polubienia

Witam

Oto instrukcja, której należy użyć do konwersji na arkusz blachy:

InsertConvertToSheetMetal2 (Wstaw konwersjęNa Blachę2)

Strona pomocy:

http://help.solidworks.com/2015/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFeatureManager~InsertConvertToSheetMetal2.html

Przykład: 

http://help.solidworks.com/2013/English/api/sldworksapi/Insert_Convert_to_Sheet_Metal_Example_VB.htm

Aby połączyć ciała w VBA, zobacz tutaj:

Funkcja InsertCombineFeature

http://help.solidworks.com/2015/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFeatureManager~InsertCombineFeature.html

http://help.solidworks.com/2016/English/api/sldworksapi/Combine_Bodies_Example_VB.htm

wow, 3 odpowiedzi od 3 najlepszych współautorów ...  Przepraszam, nie widziałem ich, zapomniałem zasubskrybować własne pytanie (szkoda, że jako osoba zadająca pytania nie jesteś automatycznie subskrybowany, ale to nie jest debata). Aby to zilustrować, oto kroki co staram się robić z pomocą (ponieważ potrzebuję jej dużo przy kilku projektach):

Zaczynam od ciała centralnego, takiego jak słup. Mam też dwa profile tego samego zagęszczacza umieszczone w nieco przypadkowych miejscach w kosmosie. Celem jest połączenie ich ze sobą, a następnie ze słupem, aby w końcu wyjąć rozłożoną blachę, która spełnia wszystkie te warunki.

Tak więc, za pomocą bibliotek funkcyjnych, prawidłowo łączę wszystkie ciała. Pozostaje tylko je połączyć (bo jeśli ja scalę w trakcie linków, to SW też scali słup), a następnie przerobić to na blachę.

Po tym mam jeszcze trochę pracy do wykonania, muszę zmienić nazwę korpusu w blasze, aby automatycznie go wyodrębnić i zrobić z niego mieszkanie w dxf. Tak więc moje początkowe pytanie nie jest jeszcze na poziomie parzenia kawy, ale wciąż jest dalekie od ostatecznego celu. ;-)

To jest pełne wyjaśnienie. Aby działać szybciej (mam około dwudziestu takich ciał do stworzenia i rozłożenia płasko na każdym pliku), zdecydowałem się na bibliotekę funkcji, która tworzy połączenia za mnie. Teraz prawie to opanowałem. Jednak po scaleniu bryły nie można jej przekonwertować na arkusz blachy w tej samej bibliotece funkcji. A ponieważ mam za nim jeszcze wiele czynności do wykonania, jeśli biblioteka funkcji na to nie pozwala, dlaczego nie przejść przez makro. Wadą makr jest to, że nie widzę w kodzie, jak może poradzić sobie ze spłaszczaniem bez jednolitego wskazania przeze mnie krawędzi, czego absolutnie chcę uniknąć (zbyt długie). Nie znajduję w jego kodowaniu automatycznego wyszukiwania istniejących wcześniej fałd.

Mam nadzieję, że oświeciłem Cię co do celu i problemów, teraz podpisuję się pod moim tematem, aby szybciej reagować na Twoje wiele oświeconych rad ;-)).


2016-04-08_13h38_27.png
1 polubienie

Link, który może Ci pomóc w esporcie spłaszczania:

http://gupta9665.com/export-sheet-metal-part-configurations-as-dwg/

W przeciwnym razie musisz wiedzieć, gdzie dokładnie utknąłeś w makrze.

Jeśli połączysz się podczas wiązań, SW również połączy kij. Następnie tworzysz konfigurację bez słupka , a następnie konwertujesz ją na blachę. Czy to nie działa?

Pomysł jest do przetestowania, ale ponieważ mam błędy "funkcja biblioteczna niemożliwa do zastosowania" 1 raz na 2 podczas scalania, porzuciłem ten pomysł. Trzeba powiedzieć, że w zależności od profili, jako że moje okucia są styczne do słupa, mam bardzo delikatne i przypadkowe zgrzewy.

1 polubienie

A jeśli zostawisz trochę luzu między przyszłą częścią arkusza blachy a słupkiem, na przykład 0,01 (tworząc plan, aby można było powiedzieć do i wybrać go zamiast powierzchni), aby nie mógł się połączyć.

Nie mogę utworzyć płaszczyzny odsunięcia, szkic mojej funkcji wisi w punkcie styku płaszczyzny szkicu z krawędziami słupa. Wiedząc, że ten słup jest konstrukcją spawaną na szkicu 3D, więc trudno go przesunąć...  I oczywiście chciałbym jak najbardziej ograniczyć liczbę odniesień do klikania w mojej bibliotece funkcji.

Część "kombajn" wydaje mi się mniej problematyczna niż konwersja na blachę, której nie mogę ustawić:

Czy istnieje jakaś sztuczka, aby zastąpić referencje używane w funkcji konwersji odniesieniami, które wyznaczam, ograniczając się, jeśli to możliwe, do podstawowego planu funkcji arkusza blachy, i aby wyszukiwanie wcześniej istniejących zagięć było automatycznie aktywowane? Próbowałem użyć makra wyboru ciała w połączeniu z funkcją konwersji, ale jestem trochę zbyt wolny pod względem programowania, aby to osiągnąć. To makro zakłada, że ciało lub ściana jest wybrana przed zastosowaniem makra, wolałbym, aby makro poprosiło mnie o wybranie płaszczyzny przed zastosowaniem konwersji i, jeśli to konieczne, wybranie powierzchni i krawędzi, aby wykonać tę konwersję. A na górze, że prosi mnie, żebym wcześniej wybrał wszystkie ciała do połączenia, aby zrobić wszystko oprócz kawy ;-).

Uważam, że dobre samouczki pozwalają wypełniać parametry funkcji za pomocą formularza użytkownika, ale nie umożliwiają wyboru obiektów, ścian, krawędzi lub innych niezbędnych do funkcji, takich jak konwersja do arkusza blachy lub łączenie.

Jeszcze raz dziękuję za radę.

W rzeczywistości szukasz szybkiego sposobu na konwersję na blachę bez wybierania zagięć, ale tylko powierzchni. Spróbuj zobaczyć wstawioną funkcję zagięć, ta funkcja rozpoznaje ostre krawędzie i konwertuje je na blachę, po prostu wybierając powierzchnię. Aby utworzyć to makro, masz nagrane nowe makro i wykonujesz wszystkie operacje ręcznie, a następnie kończysz nagrywanie. Wtedy zobaczysz, co się stanie.

1 polubienie

Co ciekawe, ta ostatnia propozycja, zawsze używałem (błędnie) funkcji "konwertuj na blachę" zamiast "wstaw zagięcia". Dobra wiadomość jest taka, że to tak zadziałało. Pierwszą złą rzeczą jest to, że stosując metodę dwa razy z rzędu z dokładnie tymi samymi parametrami, za pierwszym razem zadziałała, za drugim razem SW powiedział mi, że nie można utworzyć fałd. Może w SP3... Czytałem, że inny użytkownik skarżył się na blachę pod SW2016 w SP1 i w mniejszym stopniu w SP2. Drugą złą wiadomością dla mnie jest to, że "insert folds"  nadal nie mieści się w funkcji bibliotecznej. Grrrr. Tak zmuszony do przejścia przez makro.

Oto jak by to wyglądało:


Dim swApp As Object

Przyciemnij część jako obiekt
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Ustaw swApp = _
Aplikacja.SldWorks

Ustaw część = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("", "TWARZ", 1.71659798004902, 0.35623999999999957, -0.21627010114517, Fałsz, 0, Nic, 0)
boolstatus = Part.InsertBends2(0.001, "", 0.5, -1, Prawda, 0.5, Prawda)
Part.ClearSelection2 Prawda
Koniec subwoofera
 

Pozostaje dowiedzieć się, jak zastąpić "twarz" i wszystkie jej argumenty pozycjonowania interakcją "wybierz twarz" .

Ciąg dalszy nastąpi... Dziękuję Manu za ten pierwszy pomysł, pozostaje SW, aby funkcja była stabilna (poświęcę czas na zrobienie filmu i wyślę go do wsparcia w weekend), to już będzie krok naprzód.

OK, to działa, mam nadzieję, że odniesiesz sukces i cieszę się, że udało Ci się trochę pomóc sobie w tym procesie. ;-)