wielokat

Tytuł może się różnie kojarzyć, ale problem jest realny. Każdy kto próbował drukować elementy z (sub)milimetrową precyzją wie, że kiedy próbuje się spasować dwa elementy takie jak cylindry i tłoki czy drobne elementy mechaniczne często nie pasują one po wydrukowaniu tak jak na modelu.

W szczególności okrągłe otwory na wydrukach mają często średnice znacząco mniejsze niż na modelu 3d. Dotyczy to szczególnie otworów pionowych czyli prostopadłych do powierzchni stołu i takich, które mają średnice mniejsze niż 10-20mm. Do pewnego stopnia można to też zaobserwować dla otworów o niekolistym kształcie i w innych niż pionowa pozycjach. A to wszystko dzieje się mimo idealnej kalibracji hardware!

Poniżej pokrótce przedstawię czynniki jakie składają się na to zjawisko i przedstawię jak można próbować z nimi walczyć.

1) Liczba ścian wielokąta

Software modelujący tworzy okręgi jako wielokąty. Niektóre programy (np. Sketchup) działają tak, że te wielokąty są wpisane w okrąg o teoretycznie zadanej średnicy. A więc de facto średnica czegoś, co można włożyć w taki wielokąt jest mniejsza niż pierwotnego kręgu (bo to wyznacza średnica mniejszego koła wpisanego z kolei w wielokąt).

Im więcej boków wielokąta tym bardziej jest on zbliżony do idealnego koła i problem jest mniejszy. Widać to na poniższym wykresie:

źródło: http://hydraraptor.blogspot.com

Recepta: Należy robić wieloboki o możliwie dużej liczbie boków. Ale…

2) Upraszczanie w software tnącym

Gdy otwór jest niewielki, to drukarka dla wielu małych boków wielokąta musiałaby zrobić wiele bardzo krótkich (czasowo i przestrzennie) ruchów głowicą, z których każdy jest osobną komendą w gcode. Jest tylko dana ilość komend, którą drukarka może przyjąć/przetworzyć w ciągu sekundy. Software tnący wiedząc o tym zmniejsza ilość ruchów/komend na sekundę ścinając i upraszczając takie złożone łuki “skacząc” po kilka segmentów na raz. Również popularny firmware Marlin może to robic poprzez zazwyczaj “inteligentną” funkcję “look ahead”. Razem powoduje to w rzeczywistym wydruku ponowne zmniejszanie ilości boków wielokąta przy cięciu obiektu.

Recepta: Dobór silcera. Jeśli się dobrze orientuję stary Skeniforge i oparta na nim Cura najwyraźniej tną w opisany powyżej sposób, podczas gdy Slic3r i Netfabb nie upraszczają łuków. Nie wiem jak sprawa wygląda w Kisslicerze. Nie upraszczanie łuków ma swoje zalety, ale znowu jest pewne ale…

3) Prędkość przesyłu gcode

Inny, ale związany z powyższym efekt występuje, gdy drukujemy z komputera przez kabel USB. Na USB jest emulacja portu COM o jakiejś przepustowości i gdy próbuje się przesłać zbyt dużo komend w ciągu sekundy, to COM staje się wąskim gardłem. Firmware drukarki radzi sobie z tym buforując komendy po stronie drukarki. Ale jeśli bufor się opróżni, co dzieje się gdy jest dużo krótkich komend do wykonania, to głowica drukarki staje na ułamki sekundy czekając na kolejną komendę. To powoduje niekontrolowany wypływ plastiku, krople/”mikro-bloby” na wewnętrznych ściankach otworu i w sumie zmniejszenie średnicy. Zresztą to samo może wystąpić też na zewnętrznych łukach obiektu.

Recepta: Pomaga ustawienie wyższego baudrate na porcie COM jeśli drukujemy z komputera lub po prostu drukowanie z karty SD (co jest warte polecenia również z innych powodów).

4) Ciągnięcie ścieżki

Wypływający z głowicy plastik ma pewną lepkość, co powoduje, że wywierana jest pewna siła ciągnąca/wlokąca za przesuwającą
się głowicą. Przy ciasnych łukach otworów wewntrznych ta siła powoduje, że położona ułamek sekundy wcześniej, jeszcze gorąca
i nieprzyklejona ścieżka plastiku odrywana jest od swojej właściwej pozycji. W rezultacie plastik tworzy jakby sieczne okręgu. A rezultatem znowu jest zmniejszenie się światła otworu.

Recepta: Precyzyjny dobór temperatury (nie za wysoka) + niska prędkość druku.

5) Szerokość ścieżki

Szerokość wypływającej z głowicy ścieżki plastiku nie musi być równa szerokości dyszy. Napięcie powierzchniowe płynnego plastiku i nacisk dyszy od góry powodują, że przekrój ścieżki przypomina zgniecionego pączka z łukowatymi bokami.

W zależności od ustawienia flowratio i packing density możemy otrzymać w rzeczywistości ścieżkę znacząco szerszą niż wydaje się to naszemu slicerowi na podstawie zadanej średnicy dyszy. Jest to potencjalnie tym wyraźniejsze im szersza jest dysza i większa wysokość warstwy.

Jeśli ścieżka jest szersza niż sądzi software tnący, to otwory będą miały odrobinę zmniejszoną średnicę. Będzie to też widoczne na zewnętrznych wymiarach obiektów, które będą z kolei przestrzelone.

Recepta: Kalibracja ilości wypływającego plastiku. Odkąd korzystamy z dobrodziejstw slicerów wolumetrycznych majstrować powinniśmy właściwie tylko przy packing density, filament diameter i steps_per_E.

6) Ilość plastiku na łukach

Powyższy efekt jest wzmacniany dodatkowo z powodu tego, że ścieżka plastiku tworząca okrąg będzie ściskana od wewnętrznej strony łuku.

źródło: http://reprap.org/wiki/ArcCompensation

Odnosząc się do rysunku nasz slicer przyjmuje, że dysza porusza się po okręgu o promieniu r. Slicery kompensują szerokość ścieżki odsuwając głowicę o połowę szerokości ścieżki od krawędzi (efektywnie powiększając r w stosunku do zadanej średnicy otworu). Natomiast nie zmienia to faktu, że na wewnętrznym łuku o promieniu R “mieści się” mniej plastiku niż na środku ścieżki. Po wewnętrznej stronie łuku jest więc nadmiar plastiku i efekt opisany w punkcie 5 się nasila.

Recepta: brak?

7) Rozpychające się wypełnienie

Jeśli drukujemy z pojedynczym obrysem (permieter/wall) i ustawimy pełne wypełnienie (infill), to gęsto kładziony plastik z wypełnienia może nie mieć gdzie “uciekać” i może rozpychać zewnętrzne ścianki wydruku. Będzie to widoczne nie tylko w postaci mniejszych wewnętrznych otworów, ale także na zewnętrznych wymiarach obiektu oraz po nierównej fakturze ścian.

Recepta: przynajmniej podwójne obrysy, mniejsze niż 100% wypełnienie, być może niższy współczynnik infill overlap.

 

Uff… sporo tego. Jak widać problem jest złożony i wieloaspektowy. I zapewne dlatego do tej pory pozostaje nierozwiązany przez społeczność drukarkową.

Podane przeze mnie recepty są tylko częściową odpowiedzią na problem. Czasem są też niepraktyczne w stosowaniu (np. niska prędkość wydruku). Skeinforge ma co prawda moduł “Stretch”, który pozwala na powiększanie średnic otworów przy cięciu obiektu, ale w (mojej) praktyce zastosowanie go więcej psuje niż naprawia. Jednocześnie jak widać w komentarzach do tego artykułu sa inne zdania na ten temat. Jednak poza tym ręka do góry, kto na co dzień używa poczciwego Skeinforge :-) Zaś pozostałe slicery są niestety ślepe na problem za małych otworów. 

W sumie jedynym pewnym sposobem na za małe otwory jest więc powiększanie ich na modelu. Trzeba to robić jednak z myślą o tym jak będziemy drukować, bo otwory drukowane w pionie (studnie) odczuwają opisane zmniejszenie średnicy znacznie bardziej niż otwory poziome. Jeśli więc chcemy, by były jak najbardziej zbliżonej średnicy w rzeczywistości, to na modelu muszą mieć różne średnice. A to jest bardzo niewygodne i wymaga eksperymentowania na ślepo. Mi zazwyczaj wychodzi, że średnica niewielkich (3-5mm) otworów pionowych powinna być 1-1,5mm większa na modelu niż ta, której oczekujemy na wydruku.

Zobaczymy czy ktoś wymyśli w końcu jakiś sprytny sposób na ten problem. Powiedziałbym, że jest to spora przeszkoda w dalszym triumfalnym pochodzie domowych drukarek 3d.

  2 Responses to “Rzecz o za małych otworach – teoria i praktyka dla zaawansowanych”

  1. Ja używam Skeinforge. I nie zgadzam się że moduł Stretch psuje średnice. Raz włączonego pluginu nigdy nie wyłączałem. Wręcz przeciwnie – nigdy nie mam problemów ze średnicami otworów, są po prostu idealne. STL’e dla małych otworów mają średnicę w modelu większą o ok 0.3mm i to jest w sam raz dla Skeinforge’a, podczas gdy Slic3r z wersji na wersję różnie to robi.Problem to raz miałem z modelem przygotowanym właśnie pod slic3ra, wtedy otwór był za duży :-)

    • Ciekawostka, jak próbowałem tego Stretch-a to tak średnio mi to wychodziło. Choć może za mało próbowałem.
      Tak czy inaczej odzwierciedliłem Twoją opinię w tekście posta.

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
© 2011 Suffusion theme by Sayontan Sinha