logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

MES Mariusz 07 Mar 2015 12:35 4155 13
  • #1 14508364
    MES Mariusz
    Poziom 36  
    Witam.

    Część softu EDA (np. Design Spark) umożliwia wygenerowanie plików IDF, zawierających informacje o PCB, owiercie i komponentach.

    Plik IDF pozwala się zaimportować w programach CAD (np. w komercyjnym Solidworks lub darmowym DesignSpark Mechanical) w celu dalszej obróbki (np. zastąpienia wygenerowanych prymitywów komponentów realnymi, pobranymi z http://www.tracepartsonline.net/ lub http://www.3dcontentcentral.com/

    SolidWorks otwiera IDF jako part, a więc nie można spobie po prostu kliknąć w komponent na PCB i użyć replace component (all instances). Na szczęście idzie taki part zapisać jako złożenie (zostaną stworzone party do wszystkich elementów, oraz zostanie utworzone złożenie składające się z tych partów.

    https://forum.solidworks.com/message/483547#483547

    Wtedy (w złożeniu) można już użyć replace component.

    Chwilowo jednak mam drobny problem. Mianowicie po użyciu replace components, komponenty wstawiają mi się w pozycje daleko poza obszarem PCB (dziwne zachowanie, powinny wstawić się w miejsce poprzedniego). Origin rezystora w odpowiednim miejscu. Nie wiem dlaczego tak dziwnie się wstawiają.

    https://forum.solidworks.com/message/483664?et=watches.email.thread#483664

    Jak załapię co robię nie tak, dam znać. Chyba, że ktoś mnie ubiegnie / podpowie.

    Pozdrawiam
    Mariusz
  • #2 14511493
    MES Mariusz
    Poziom 36  
    Pliki IDF okazują się bezużyteczne, jeśli chodzi o budowanie docelowych modeli 3D. Pewnie nie tylko w przypadku Eagle-a...

    https://forum.solidworks.com/message/483703#483703

    Przynajmniej metodą otwarcia IFD w jakimś CAD (np.SolidWorks), zamiany parta na assembly, i próby podmiany komponentów. Taką drogą nic z tego nie wyjdzie.

    Te same pliki IDF można zaczytać do CircuitWorks-a (dodatek do SolidWorks-a) - nawet skopane IDF-y z Design Sparka z wyniesionym w kosmos originem, a ten zbuduje poprawny model 3D. Niestety CircuitWorks (podobnie jak SolidWorks) jest narzędziem komercyjnym.
  • #3 14521791
    MES Mariusz
    Poziom 36  
    Chętnie poczytałbym o niekomercyjnych sposobach na zautomatyzowane budowanie modeli 3D (ręcznie to każdy może sobie zrobić parta płytki i komponenty osadzać w otworach lub na padach matami czy "na oko", o ile dysponuje nadmiarem czasu z możliwością do przeznaczenia go na ten cel). Mnie interesują rozwiązania zautomatyzowane (np. CircuitWorks, który działa świetnie). Szukam jednak niekomercyjnej alternatywy.

    Widzę jednak, że na forum budowanie modeli 3D nie jest popularnym tematem (rzeczywiście nie budujecie?). Bez modelu 3D to takie trochę projektowanie na ślepo, choć z drugiej strony, sam długi czas tak robiłem (modelowanie 3D było poza moim zasięgiem).
  • Pomocny post
    #4 14527713
    mario88
    Poziom 12  
    Witam,
    FreeCAD ma dwa moduły do importowania plików IDF - Idf oraz FreeCAD-PCB (beta).
  • #5 14532940
    MES Mariusz
    Poziom 36  
    mario88 napisał:
    Witam,
    FreeCAD ma dwa moduły do importowania plików IDF - Idf oraz FreeCAD-PCB (beta).


    Pobrałem Freecad-a. Widzę, że pod nazwą "IDF" importuje on pliki *.emn.

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    DesignSpark PCB exportuje "IDF" w postaci plików *.idb + *.idl, co powoduje, że Freecad nie jeste niestety w stanie otworzyć exportu z DesignSpark.

    Bez problemu udało mi się natomiast otwoerzyć IDF (*.emn) z Eagle-a:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Freecada widzę pierwszy raz.

    Jakaś szybka podpowiedź, w jaki sposób zamienić w nim komponent, np. IC3 na rzeczywisty komponent (np. zaimportowany *.step, lub w natywnym formacie freecad-a?) ?

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Dodano po 32 [minuty]:

    No dobra, dodałem moduł PCB
    http://sourceforge.net/projects/eaglepcb2freecad/?source=navbar

    i otwarłem IDF-a z DesignSparka

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Pozostaje obejrzeć film:
    [youtube]https://www.youtube.com/watch?v=81NsljRJx8c [/youtube]

    i doczytać załączoną w paczce instruction.pdf
  • #6 14533126
    mario88
    Poziom 12  
    Witam,
    Bez problemu możesz zamienić rozszerzenie idb na emn.

    [...]Jakaś szybka podpowiedź, w jaki sposób zamienić w nim komponent, np. IC3 na rzeczywisty komponent (np. zaimportowany *.step, lub w natywnym formacie freecad-a?) ? [...]
    Przejdź do folderu, w którym zainstalowałeś FreeCADa i odszukaj podfolder Mod/Idf/Idflibs - tam odszukaj plik footprints_models.csv.

    Tak na marginesie: wersja, którą zainstalowałeś ma błąd w importerze plików w formacie IDF 2/3 :). Nowa wersja, która to naprawi powinna się pojawić w następnym tygodniu.
  • #8 14536971
    MES Mariusz
    Poziom 36  
    mario88 napisał:
    Tak na marginesie: wersja, którą zainstalowałeś ma błąd w importerze plików w formacie IDF 2/3 :). Nowa wersja, która to naprawi powinna się pojawić w następnym tygodniu.


    Po załadowaniu modułu PCB mamy do dyspozycji Workschop PCB i otwieranie wielu plików PCB, nie tylko IDF.

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks


    mario88 napisał:
    Przejdź do folderu, w którym zainstalowałeś FreeCADa i odszukaj podfolder Mod/Idf/Idflibs - tam odszukaj plik footprints_models.csv.


    Czy moduł IDF (na który się powołujesz) jest w jakiś sposób lepszy / konkurencyjny do modułu PCB? (Mod/PCB/) ? Jaka jest różnica między nimi ? (próbuję się w tym odnaleźć).

    Pozdrawiam
    Mariusz

    Dodano po 58 [minuty]:

    PS. Zaczytałem plik IDF. W drzewie pojawiły się PCB i komponenty.

    Nie widzę tych komponentów na PCB (nawet wyciągnięć), jednak po kliknięciu na komponent w drzewie zostaje wskazana jego pozycja na PCB.

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Klikam na Assign model:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    orientuję się, że istnieje już jakaś wstępna baza modeli do wykorzystania, więc (wydaje mi się, że) przypisuję komponentowi model:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Na PCB nie pojawia się jednak komponent.

    Wracam więc czytać dokumentację (chyba, że ktoś coś podpowie).

    PS. Fajne jest rónież to, że istnieją wersje portable nie wymagające instalacji:
    http://sourceforge.net/projects/free-cad/file...eeCAD%20Windows/FreeCAD%200.15%20development/
  • Pomocny post
    #9 14537878
    mario88
    Poziom 12  
    Witam,
    większość rzeczy, które opiszę znajduje się we wspomnianym przez Ciebie pliku pdf.

    Każdorazowo po zmianie parametrów obiektu/dodaniu nowego musisz: a) przeładować płytkę b) zrobić update partów.
    Jeżeli komponent się nie pokaże (jak u ciebie czerwona ikonka), to będzie oznaczało iż skrypt nie może odnaleźć podanego pliku, bądź są jakieś problemy z jego wczytaniem. Jeżeli nic nie ustawiałeś to modele musisz wrzucać do podkatalogu PCB/parts. Baza danych jest zrobione pod te paczki http://sourceforge.net/projects/eaglepcb2freecad/files/models/.

    [...]Czy moduł IDF (na który się powołujesz) jest w jakiś sposób lepszy / konkurencyjny do modułu PCB? (Mod/PCB/) ? Jaka jest różnica między nimi ? (próbuję się w tym odnaleźć). [...]
    FreeCAD-PCB jest modułem zewnętrznym (dlatego nie ma go od razu po instalacji FreeCADa) nastawionym na wspieranie najpopularniejszych formatów plików zawierających PCB. Sam moduł IDF wspiera tylko ten format w wersji 2/3 + biblioteki. Moduł IDF jest obecnie tylko 'łatany', FC-PCB jest nadal wspierany.
    FC-PCB wspomaga także projektowanie płytek w programie oraz export (niektóre elementy płytki) do kilku popularnych formatów.

    Wspomniany przeze mnie błąd tyczy się błędnego obracania partów po wczytaniu płytki - kąt jest przemnożony przez -1. Dzisiaj powinna się pojawić wersja eliminująca ten błąd.
  • #10 14539633
    MES Mariusz
    Poziom 36  
    Rzeczywiście.

    Pod ścieżką
    d:\FreeCAD_0.15.4655_x64_dev_bin\Mod\PCB\parts\
    miałem pusto.

    Rozpakowałem tam zawartość paczki models_1.7z

    Dalej jednak otwarcie IDF-a kończy się wyświetleniem płytki z owiertem. Komponenty w drzewie są, na PCB ich nie widać.

    Nic, wracam do dokumentacji.

    Dodano po 2 [godziny] 30 [minuty]:

    Dla potomnych. Obrazek na dobry start.

    Zaimportowany projekt w IDF v3

    Klikam na pierwszy z brzegu komponent i sprawdzam jego właściwości.
    Widzę, że to komponent w obudowie 0402C.


    Idę więc do bazy celem sprawdzenia poprawności przypisania modelu 3D:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Początkowo w bazie nie ma komponentu 0402C, więc go dodaję:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Komponent pojawił się w bazie i został zapisany.


    By zmiany były widoczne na modelu 3D aktualizuję modele:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks


    Po chwili rezultat jest już widoczny:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks


    Od zewnątrz wszystko wyglądało by na "w porządku". Mamy przecież 3D model, hurraa, możemy mierzyć, obracać, renderować... Ale jeśli przyjrzymy się bliżej i wyeksportujemy takie złożenie do formatu step, i otworzymy je np. w SolidWorksie, okaże się, że... w złożeniu:

    a). dla każdego pojedynczego komponentu (referencji) zostanie utworzony odrębny part (nawet jeśli w złożeniu użyte jest 100 takich samych partów).
    b). w każdym (takim samym) parcie zapisany zostanie indywidualny origin, który w złożeniu powoduje złudzenie, że komponent postał położony na swoich poprawnych koordynatach (x,y).
    c). tymczasem, w złożeniu (assembly) każdy komponent został położony w koordynacie (0,0).

    Jego ewentualna wymiana (pojawia się nowa rewizja modelu 3D) powoduje, że komponent ląduje w lewym dolnym rogu PCB.


    W poprawnym złożeniu (tak to robi CircuitWorks)

    a). dla wszystkich powtarzających się elementów tworzony jest jeden part zawierający origin zgodny z originem w bibliotece PCB (footprincie).
    b). w złożeniu (assembly) wszystkie komponeny (często jeden powtarzający się part) położone są na swoich poprawnych koordynatach x,y. Wymiana takiego komponentu na nowszy (pojawia się nowa rewizja biblioteki 3D) nie powoduje żadnych nieprawidłowości.


    Nie wiem jak to robi CircuitWorks, ale może deweloperzy FreeCAD-a (zwłaszcza modułu PCB) się domyślą i wdrożą to w swoim rozwiązaniu?

    Byłoby wybornie.

    Dla potrzeb amatorskich mimo wszystko nawet obecna forma działania modułu PCB jest interesująca / i pewnie dla wielu osób wystarczająca.
  • #11 14542521
    MES Mariusz
    Poziom 36  
    Hej mario88.

    W ramach testu rozpatruję 2 przypadki:

    1). step wygenerowany za pomocą SolidWorksa z modelu 3D utworzonego za pomocą dodatku CircuitWorks.

    2). step wygenerowany za pomocą FreeCAD-a z modelu 3D utworzonego za pomocą dodatku PCB.

    Każdy z tych plików następnie importuję do SolidWorks-a i sprawdzam na jakich koordynatach leżą komponenty (czy rozmieszczenie następuje w złożeniu z uwzględnieniem oryginalnych originów komponentów, czy też wszystkie komponenty w złożeniu postawione są na originie 0,0, lecz każdy z komponentów ma w siebie koordynat taki, że w rezultacie na złożeniu komponenty lądują na "swoich" geometrycznych miejscach.


    Wynik testu a).

    3D model stworzony w SolidWorksie (za pomocą dodatku CircuitWorks) wyeksportowałem do formatu STEP (AP214).

    Tak utworzony step zaimportowałem ponownie do SolidWorksa.

    Przy imporcie plików STEP SolidWorks sam generuje sobie wszystkie potrzebne party i następnie tworzy z nich złożenie.

    Rezultat: Wszystkie utworzone party mają poprawne originy i są rozłożone w złożeniu na odpowiednie koordynaty x,y


    Wynik testu b).

    3D model stworzony we FreeCAD (za pomocą dodatku PCB) wyeksportowałem do formatu STEP with colors.

    Tak utworzony step zaimportowałem do SolidWorksa.

    Przy imporcie plików STEP SolidWorks sam generuje sobie wszystkie potrzebne party i następnie tworzy z nich złożenie.

    Rezultat: Wszystkie utworzone party mają originy ustawione w taki sposób by na złożeniu, postawione w originie 0,0 wyglądało to tak, jakby były poprawnie (po koordynatach) rozłożone na PCB.

    Także widzisz, Mariuszu, coś tu nie gra...

    Na tym obrazku widać originy wszystkich komponentów (niebieskie strzałki) - wszystkie są w jednym miejscu.

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks


    Aby to jeszcze wyrażniej pokazać otwieram dowolny z elementów:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks


    Sam zobacz, gdzie jest origin:

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Więc oboje możemy być pewni, że CircuitWorks rozkłada komponenty W ŻŁOŻENIU na odpowiednie koordynaty, natomiast Freecad PCB wkłada DO KAŻDEGO KOMPONENTU INNY KOORDYNAT, taki, by po położeniu w złożeniu komponentów na originie 0,0 wyglądało to tak, jakby komponenty były rozłożone.

    Zastanawiam się, czy są jakiekolwiek szanse na to by działanie dodaktu PCB do FreeCADa było analogiczne do działania CircuitWorks-a.

    Pozdrawiam
    Mariusz

    Dodano po 33 [minuty]:

    mario88

    To samo zobaczysz importując wygenerowany wcześniej step STEP ponownie do FreeCAD-a. Klikając na dowolny komponent zobaczysz, że leży on w koordynacie 0,0 !

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Dodano po 12 [minuty]:

    PS. Sprawdziłem też jak zachowuje się STEP z SolidWorksa (poprawne koordynaty w złożeniu) zaimportowany do FreeCAD-a.

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    Przy klikaniu w kolejne komponenty na PCB:

    a). w przypadku STEP-a z SolidWorksa wartości zmianiają się przy każdym komponencie klikniętym w drzewie.

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks

    b). w przypadku STEP-a z FreeCAD-a wartości pozostają bez zmian niezależnie od tego który komponent w drzewie zostanie kliknięty.

    Generowanie modeli 3D z plików IDF - komponenty poza obszarem PCB w SolidWorks
  • #13 14716745
    MES Mariusz
    Poziom 36  
    Miło mi poinformować, że bug dotyczący błędnego zapisu koordynatów przy eksporcie do formatu step with colours został naprawiony / wyeliminowany.

    http://forum.freecadweb.org/viewtopic.php?f=3&t=10221&e=1

    Właśnie sprawdziłem (binarki nieoficjalne), i widzę, że teraz wszystko śmiga prawidłowo. Testowałem na wersji 64 bit:

    https://www.dropbox.com/sh/rj0idt7yj89dnx3/AACN5wFgfmKy-Y8yNgPcRdHca?dl=0

    Pozdrawiam
    Mariusz
  • #14 17739790
    silelis
    Poziom 12  
    Cześć,

    Czy ktoś może ma informacje na temat dalszego wsparcia modułu PCB do FreeCAD?
REKLAMA