Cylinder Openscad

Cylinder Openscad
Przygotowując ten artykuł, chciałem dowiedzieć się, co ludzie mają problemy z Openscad. Ku mojemu zaskoczeniu najczęstszym pytaniem było stworzenie cylindra. Istnieje polecenie cylindra, które poznasz szczegóły dotyczące najpierw. Następnie zobaczysz innowacyjne sposoby tworzenia cylindrów według własnych upodobań. Możesz także zabrać cylindry z innych utworów, aby stworzyć bardziej interesujące rzeczy. Większość czytelników, którzy tu przychodzą, prawdopodobnie chce zobaczyć pusty cylinder lub jakąś rurkę. Czytaj dalej, mamy dla Ciebie wiele.

Polecenie cylindra

Jeśli używasz najprostszej wersji polecenia cylindra, potrzebujesz tylko jednego parametru. To sprawia, że ​​jeden stały jednolity cylinder i nic więcej. Należy zauważyć, że ten cylinder będzie miał standardowy promień i wysokość wartości w nawiasie. Polecenie ma jednak wiele opcji, wykopajmy je.

cylinder (R1 = 20);
cylinder (R1 = 20, R2 = 5);
Cylinder (R1 = 20, H = 40);
cylinder (r = 20, h = 40);
Cylinder (R1 = 20, R2 = 5, H = 40, Center = True);

Pierwsze dwa cylindry w powyższym kodzie nie mają sensu, ponieważ nie mają wysokości. Częstym błędem jest to, że zapomnisz o wartości i nie wygląda to tak, jak zamierzałeś. Gdy używasz zmiennych, to samo dzieje się, jeśli używasz niezdefiniowanej zmiennej. W takim przypadku wysokość, ale sprawdź dziennik konsoli podczas jego uruchomienia.

Stożek

Trzeci to stożek, powodem jest to, że wartość R2 ma standardowy rozmiar. Spróbuj czwartego i zobacz, co się stanie. Ostatni tworzy stożek, w którym masz pełną kontrolę nad wymiarami. Ten jest prosty w użyciu dla stożków. Ustawiasz dwa promienie i wysokość i gotowe. Możesz także użyć średnicy, jeśli to lepiej Ci odpowiada.

Centrum = prawdziwa wartość jest ważna dla osi Z, pozostawiając stożek w połowie „ziemi”. Domyślnie jest fałszywe, co sprawia, że ​​dno stożek kończy się na „ziemi”, że tak powiem. Możesz także wybrać, jak blisko są ściany stożkowe do bycia okrągłym z parametrem „$ fn”.

Pusty cylinder

Hej, poczekaj chwilę! To tworzy tylko solidne kawałki, jak wywiercić w nich otwory? Pytasz, dziękuję! powiem Ci. Odpowiedź jest w różnicy. To jest polecenie. Rozważ poniższy kod, zawiera dwa cylindry, które są objęte kręconymi nawiasami i poleceniem różnicy.

różnica()
cylinder (r = 30, h = 40);
cylinder (r = 28, h = 41);

Mówiąc wprost, gdy masz kilka kawałków, odcinasz materiał z pierwszego kawałka za pomocą wszystkich następujących elementów. W tym przypadku wycinasz cylinder z cylindra. Jeśli chcesz wyciąć jakikolwiek inny kształt, możesz to również zrobić. Wypróbuj kostkę lub kulę! Zwróć uwagę na interesujące, a czasem niszczycielskie efekty, jakie wartość $ FN może mieć na ten kod.

Hollow Cone

Możesz to również zrobić za pomocą stożka, po prostu użyj wartości podwójnego promienia. Ponieważ definiujesz oba stożki, masz dużą kontrolę nad końcowym wynikiem. Najprostszym pustym stożkiem jest tylko dwa stożki w sobie o grubości materiału.

różnica()
Cylinder (R1 = 30, R2 = 12, H = 50);
Cylinder (R1 = 25, R2 = 7, H = 45);

Ten stożek jest pokryty u góry, możesz go otworzyć, po prostu ustawiając drugą wysokość wyżej niż pierwsza. Ponieważ masz dwa cylindry, możesz zmienić dowolny z nich. Jako przykład możesz przeciąć przez niego prosty otwór, zmieniając drugi cylinder. Możesz także wybrać kostkę, ale pamiętaj, że może to wyciąć zbyt dużo materiału ze stożka.

Piramida

Może to wydawać się nieistotne, ale jest to przydatna sztuczka, o której należy pamiętać, gdy będziesz używać OpenScad. Wszystkie cylindry i inne elementy są przybliżeniem kształtu. Czytałeś wcześniej o parametrze $ FN, tutaj korzystasz. Mając to na uwadze, możesz pomyśleć: piramida to stożek z czterema stronami. Prawidłowy! Użyj $ fn = 4, a masz stożka z czterema stronami, co oznacza piramidę.

różnica()
Cylinder (R1 = 30, R2 = 12, H = 40, $ fn = 4);
Cylinder (R1 = 25, R2 = 7, H = 35, $ ​​fn = 4);

Wewnętrzny cylinder przecina ten sam cylinder, co zewnętrzny. Dopóki nie zaczniesz grać z parametrem $ FN. Aby zapoznać się z efektami tego parametru, spróbuj zrobić czteronogi stołek. W jaki sposób parametr $ FN wpływa na wynik? Jak możesz zakryć górną lub dolną część?

Łącząc wiele

Aby dużo użyć cylindrów, powinieneś nauczyć się, jak łączyć wiele z nich. Ostateczny wynik może być bardzo złożony, a czasem nawet przydatny. Jedną opcją jest umieszczenie topu na cylindrze. Aby to zrobić, musisz zacząć używać zmiennych. Zwyczajanie ich umieszczenia na szczycie tego, co projektujesz. Ułatwia później tworzenie modułów.

grube = 5;
Baser = 30;
topr = 12;
Wysokość = 50;
Union ()
// dolny stożek
różnica()
Cylinder (R1 = Baser, R2 = TOPR, H = Wysokość);
Cylinder (R1 = Baser -Thickn, R2 = TOPR - grubość, H = wysokość + grubość);

// górna piłka
przetłumacz ([0, 0, wysokość])
różnica()
kula (r = topr);
kula (r = topr -thickn);
przetłumacz ([0, 0, -topr])
cube (size = topr*2, center = true);

Zaczynając od góry, masz zmienne. Są dla grubości, promienia podstawowego, promienia górnego i wysokości. Oświadczenie Unii łączy elementy. Wewnątrz szelków masz stożek, a następnie górną piłkę. Ponieważ są w związku, na końcu staną się jednym kawałkiem. Możesz zrobić jeszcze więcej, gdy używasz wielu cylindrów pod wieloma kątami.

Tworzenie rurki testowej

Przechodząc od stożków, zrób rurkę testową. Po pierwsze, musisz zastanowić się, jakie kształty tworzą rurkę testową. Główna część to cylinder, nic fantazyjnego, tylko regularna różnica między dwoma cylindrami. Jeśli ustawisz długość jako zmienną, możesz użyć tej wartości jako odniesienia. Musisz wiedzieć, gdzie kończy się rurka i staje się na dole pół-sferze. Użyjesz również promienia rurki do zdefiniowania kuli.

tubr = 20;
Tubl = 80;
grube = 2;
różnica()
Cylinder (R1 = TUBR, R2 = TUBR, H = TUBL);
Cylinder (R1 = tubr - grubość, r2 = tubr - grubość, h = TUBL);

Wypróbuj to, a będziesz mieć tylko prosty cylinder, dzięki. W domyślnej openScad nie ma przyrodni sferze, musisz to zrobić. Użyj różnicy między dwiema kulkami, aby utworzyć pustą kula, a następnie usuń kolejną kostkę, która odcina kula.

różnica()
kula (tubr);
kula (tubr - grubość);
przetłumacz ([0, 0, -Tubr])
cube (rozmiar = tubr*2, środkowy = true);

Teraz masz dwa osobne elementy. Następnym krokiem jest ich połączenie. Tutaj możesz użyć polecenia Unii. Podobnie jak polecenie różnicy, związek przyjmuje wszystkie elementy uporządkowane. W związku zamówienie nie jest tak ważne, ponieważ jest dodatkiem. Kod będzie wyglądał trochę brzydko, ponieważ nie używamy tutaj modułów.

Union ()
// Główna rurka
różnica()
Cylinder (R1 = TUBR, R2 = TUBR, H = TUBL);
Cylinder (R1 = tubr - grubość, r2 = tubr - grubość, h = TUBL);

// dolna kula
Tłumacz ([0, 0, Tubl])
różnica()
kula (tubr);
kula (tubr - grubość);
przetłumacz ([0, 0, -Tubr])
cube (rozmiar = tubr*2, środkowy = true);


// górny pierścień
różnica()
cylinder (r = tubr + grubość, h = grubość);
cylinder (r = tubr, h = grube);

Tutaj projektujemy go do góry nogami, to zależy od Ciebie. Rób to, co jest wygodne dla konkretnego przypadku. Zawsze możesz go obrócić, gdy go używasz. Górny pierścień ma ostre krawędzie, możesz to naprawić za pomocą koła i obracanie go. Istnieją inne sposoby, aby to zrobić, odkrywać i eksperymentować!

rotate_extrude (wypukłość = 10, $ fn = 100)
Tłumacz ([TUBR, 0, 0])
Circle (r = grube, $ fn = 100);

Łącząc wiele cylindrów

Po zrobieniu rurki z kilku cylindrów możesz również chcieć je podłączyć na różne sposoby. Aby to zrobić, możesz ponownie użyć związku. Powiedzmy, że chcesz jednej rurki pod kątem czterdziestu pięciu stopni do drugiej rurki. Aby to zrobić, ustawiasz kątową rurkę w połowie dużej rurki.

Union ()
rurka (50, 4, 300);
Tłumacz ([0, 0, totlength/2]) obracaj ([45, 0, 0])
rurka (50, 4, 150);

Kiedy spróbujesz, wygląda świetnie z zewnątrz. Kiedy zajrzysz do środka, widzisz, że masz obie całe rurki. Krótki blokuje przepływ w długiej rurce. Aby to naprawić, musisz wymazać oba cylindry w rurkach. Możesz wziąć pod uwagę cały związek jeden kawałek i umieścić odpowiednie cylindry po niej w różnicy.

różnica()
Union ()
rurka (50, 4, 300);
Tłumacz ([0, 0, totlength/2]) obracaj ([45, 0, 0])
rurka (50, 4, 150);


cylinder (r = 50–4, h = totlength);
Tłumacz ([0, 0, totlength/2]) obracaj ([45, 0, 0])
cylinder (r = 50–4, h = totlength/2);

Jak widać, pierwszy cylinder rozciąga całą długość rurki. To usunie wszystko wewnątrz dużej rurki, ale mała rurka, która się pochyla. Polecenie Tłumacz przesuwa rurkę w górę, a następnie obraca się i wkłada cylinder wewnątrz rurki. W rzeczywistości kod jest kopiowany z góry, a rurka jest zastępowana cylindrem.

Instalacja wodociągowa

Jeśli chcesz zrobić więcej rur, możesz użyć modułu w powyższym przykładzie i rozpocząć rozszerzanie się. Kod jest dostępny na stronie https: // github.com/matstage/openscad-cylindery.Git, w chwili pisania, są tylko te dwa, ale często sprawdzaj, aby zobaczyć więcej. Możesz być w stanie stworzyć bardziej ekscytujące rzeczy.

Wewnątrz bloku

Jeśli chcesz stworzyć silnik spalinowy, potrzebujesz cylindrycznej dziury w solidnym kawałku. Poniżej jest przykład, najprostszy możliwy, dla kanałów chłodzących i tłoków jest o wiele więcej do dodania. To jest jednak kolejny dzień.

cylinder modułowy (
Cylinderr = 3,
Krawędź = 1,
NumCylinders = 8)

różnica()
kostka ([cylinderr * 2 + krawędź * 2,
cylinderr*2*NumCylinders + krawędź*NumCylinders + krawędź, 10]);
dla (x = [0: 1: numCylinders-1])
Tłumacz ([Cylinderr+ krawędź, cylinderr*x*2+ krawędź*x+ cylinderr+ krawędź, 0])
cylinder (r = cylinderr, h = 12);

Tutaj masz kostkę, która rośnie zgodnie z liczbą cylindrów, które chcesz w bloku. Wszystkie wartości w module są domyślne, więc można go używać bez wartości. Aby go użyć, użyj instrukcji „Użyj” u góry pliku, a następnie dodaj CylinderBlock (NumCylinders = 8). Możesz użyć lub pominąć dowolną wartość, kiedy je pominisz, wymaga to domyślnego. Krótko mówiąc, wnętrza moduł zaczyna się od wartości, a następnie tworzy kostkę, aby była wystarczająco długa, aby dopasować się do cylindrów. Następnie kontynuuje usuwanie cylindrów za pomocą instrukcji. Dzięki oświadczeniu możesz zrobić większy lub mniejszy blok. Aby uzyskać bardziej zaawansowane moduły, możesz umieścić ograniczenia w tej zmianie projektu, gdy osiągnięte są pewne wartości. Może chcesz uczynić to V, jeśli jest to 8 lub więcej cylindrów.

Wytworzenie z płaskiego kształtu

Innym sposobem na stworzenie cylindra jest wykonanie koła i wyciągnięcie. Solidny cylinder to tylko dwie linie:

Linear_Extrude (15)
okrąg (20);

To tworzy 15 (brak jednostek w Openscad), z promieniem 20. Możesz użyć średnicy za pomocą parametru D. Samo tworzenie cylindra nie jest bardzo przydatne, ale możesz użyć tej samej techniki dla dowolnego kształtu 2D. Zobaczysz to później. Podczas gdy pusty cylinder kod jest trochę dłuższy.

Linear_Extrude (15)
różnica()
okrąg (20);
koło (18);

To jest to samo, ale, jak to zrobiliśmy wcześniej, usuwasz środkowe koło. Możesz również zgiąć go w okręgu z wersją Rotate_Extrude. To świetne do tworzenia pączków, najprostsza wersja wygląda jak jedna.

rotate_extrude (kąt = 180, wypukłość = 10)
przetłumacz ([30,0,0])
różnica()
okrąg (20);
okrąg (10);

Ten kod tworzy pustą półkola. Uwaga, że ​​powinieneś być ostrożny, jest to konieczne tłumaczenie lub otrzymasz błąd: „Błąd: Wszystkie punkty dla RotateExtrude () muszą mieć ten sam znak współrzędnych X (zakres to -2.09 -> 20.00) ”. Liczby będą zależeć od wartości w kręgu. Ponieważ tworzy to ten sam kształt co cylinder, może wydawać się bezużyteczne. Nie jest! Najlepszym zastosowaniem tego polecenia jest jakoś funkcjonowanie płaskiego kształtu. Podręcznik ma prosty wielokąt jako przykład, tworzy okrągły kształt, w którym możesz uruchomić pasek. Możesz też to przekręcić. Poniższy kod tworzy korkociąg.

przetłumacz ([-80,0,0])
Linear_Extrude (80, Twist = 900, skala = 2.0, plastry = 100)
przetłumacz ([2, 0, 0])
kwadrat (10);

Przykład w instrukcji pokazuje wielokąta, który może być przydatny. Poniższy kod może być czymkolwiek lubisz, ale ilustruje moc robienia tego w ten sposób.

przetłumacz ([0, -80, 0])
rotate_extrude (kąt = 275)
przetłumacz ([12,3,2])
wielokąt (punkty = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

Możesz eksperymentować z kształtem wielokąta, dopóki nie dostaniesz go do aplikacji. Jeśli wydaje się to trochę zniechęcające przy użyciu tylko liczb, możesz utworzyć profil w innych programach CAD i zaimportować wynik DXF za pomocą polecenia import ().

Wniosek

Tworzenie cylindra jest proste, ale tylko początek procesu. Trudną częścią jest uczynienie z tym czegoś użytecznego. Musisz także włączyć go do swojego projektu i być może stworzyć bardziej złożone problemy niż cylindry. Znajdź sposoby i wyzwania dla ciągłego rozszerzenia wiedzy za pomocą Openscad. Pamiętaj, aby używać dokumentacji i opierać się na innym oprogramowaniu, gdy nie można go łatwo osiągnąć za pomocą liczb i takich. W tym poście coś jest to, że możesz rysować rzeczy w Inkscape i Blender oraz importować je do OpenScad. Eksport z Openscad do STL i innych formatów jest dobrze obsługiwany, a jeśli jesteś naprawdę ciekawy, sprawdź kreacje na Thingerse. Mają pakiet entuzjastów wnoszących rzeczy do swojej strony.