CHAM

cylinder openSCAD

cylinder openSCAD
Przygotowując ten artykuł, chciałem dowiedzieć się, jakie osoby mają problemy z openSCAD. Ku mojemu zdziwieniu najczęstsze pytanie dotyczyło stworzenia cylindra. Jest polecenie cylindra, o którym najpierw poznasz szczegóły. Następnie zobaczysz innowacyjne sposoby tworzenia butli według własnych upodobań. Możesz także odbierać cylindry z innych elementów, aby tworzyć ciekawsze rzeczy. Większość czytelników, którzy tu przyjeżdżają, prawdopodobnie chce zobaczyć wydrążony cylinder lub jakąś rurkę. Czytaj dalej, mamy dla Ciebie wiele do zrobienia.

Polecenie cylindra

Jeśli używasz najprostszej wersji polecenia cylinder, potrzebujesz tylko jednego parametru. To tworzy jeden jednolity, jednolity cylinder i nic więcej. Należy pamiętać, że walec będzie miał standardowy promień i wysokość wartości w nawiasie. Polecenie ma jednak wiele opcji, przejrzyjmy 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, środek = prawda );

Pierwsze dwa cylindry w powyższym kodzie nie mają sensu, ponieważ nie mają wysokości. Częstym błędem jest to, że zapominasz o wartości i nie wygląda ona tak, jak zamierzałeś. Kiedy używasz zmiennych, to samo dzieje się, gdy używasz niezdefiniowanej zmiennej. W tym przypadku dla wzrostu, ale sprawdź dziennik konsoli po uruchomieniu.

Stożek

Trzeci to stożek, powodem jest to, że wartość r2 ma standardowy rozmiar. Wypróbuj czwarty i zobacz, co się stanie. Ten ostatni tworzy stożek, w którym masz pełną kontrolę nad wymiarami. Ten jest prosty w użyciu dla stałych szyszek. Ustawiasz dwa promienie i wysokość i gotowe. Możesz również użyć średnicy, jeśli bardziej Ci odpowiada.

Środek = wartość prawdziwa obowiązuje dla osi z, pozostawiając stożek w połowie wysokości „podłoża”. Wartość domyślna to false, co sprawia, że ​​dno stożka kończy się na „ziemi”, że tak powiem. Za pomocą parametru '$fn' możesz również wybrać, jak blisko ściany stożków mają być okrągłe.

Pusty cylinder

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

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

Mówiąc najprościej, gdy masz kilka kawałków, odcinasz materiał z pierwszego kawałka, używając wszystkich następnych kawałków. W takim przypadku wycinasz cylinder z cylindra. Jeśli chcesz wyciąć jakikolwiek inny kształt, możesz to również zrobić. Wypróbuj sześcian lub kulę! Zwróć uwagę na interesujące, a czasem niszczące skutki, jakie wartość $fn może mieć na ten kod.

Pusty stożek

Możesz to również zrobić ze stożkiem, po prostu użyj wartości podwójnego promienia. Ponieważ definiujesz oba stożki, masz dużą kontrolę nad końcowym wynikiem. Najprostszy pusty stożek to tylko dwa stożki w sobie o grubości odpowiadającej materiałowi.

różnica()
cylinder( r1 = 30, r2 = 12, h = 50);
cylinder( r1 = 25, r2 = 7, h = 45);

Ten stożek jest zakryty 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. Na przykład możesz wyciąć przez nią prosty otwór, zmieniając drugi cylinder. Możesz również wybrać sześcian, ale pamiętaj, że może to spowodować wycięcie zbyt dużej ilości materiału ze stożka.

Piramida

Może się to wydawać nieistotne, ale jest to przydatna sztuczka, o której należy pamiętać, kontynuując korzystanie z openSCAD. Wszystkie cylindry i inne elementy są przybliżeniem kształtu. O parametrze $fn czytałeś wcześniej, tutaj możesz z niego skorzystać. Mając to na uwadze, możesz pomyśleć: Piramida to stożek z czterema bokami. Poprawny! użyj $fn = 4 i masz stożek z czterema bokami, 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 tnie ten sam cylinder co zewnętrzny outer. Dopóki nie zaczniesz grać z parametrem $fn. Aby zapoznać się z działaniem tego parametru, postaraj się wykonać czworonożny stołek. Jak parametr $fn wpływa na wynik?? Jak możesz zakryć górę lub dół??

Łącząc wiele

Aby mieć dużo zastosowań cylindrów, należy nauczyć się łączyć wiele z nich. Ostateczny wynik może być bardzo złożony, a czasem nawet przydatny. Jedną z opcji jest założenie topu na butlę. Aby to zrobić dobrze, musisz zacząć używać zmiennych. Przyzwyczajaj się do umieszczania ich na szczycie tego, co projektujesz. Ułatwia późniejsze tworzenie modułów.

grubość = 5;
podstawa = 30;
góra = 12;
wysokość = 50;
zjednoczenie ()
// Stożek dolny
różnica()
cylinder(r1 = podstawa, r2 = góra, h = wysokość);
cylinder(r1 = podstawa-grubość, r2 = topr - grubość, h = wysokość + grubość);

// Górna piłka
przetłumacz([0, 0, wysokość])
różnica()
kula(r = góra);
kula(r = topr -gruba);
przetłumacz([0, 0, -topr])
kostka(rozmiar = top*2, środek = prawda);

Zaczynając od góry, masz zmienne. Dotyczą grubości, promienia podstawy, promienia górnego i wysokości. Oświadczenie związkowe łączy wszystkie elementy. Wewnątrz szelek 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, używając wielu cylindrów pod wieloma kątami.

Robienie probówki

Przechodząc od szyszek, zrób probówkę. Najpierw musisz zastanowić się, jakie kształty składają się na probówkę. Główna część to cylinder, nic nadzwyczajnego, 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ę półkulą na dole. Użyjesz również promienia rury, aby zdefiniować sferę.

tuba = 20;
tuba = 80;
grubość = 2;
różnica()
cylinder(r1 = tuba, r2 = tuba, h = tubl);
cylinder(r1 = tubr - grub., r2 = tubr - grub., h = tubl);

Wypróbuj to, a będziesz miał tylko prosty walec, aby całą rurkę trzeba było stopić razem z półkulą. W domyślnym openSCAD nie ma półkuli, musisz to zrobić. Użyj różnicy między dwiema kulami, aby utworzyć pustą kulę, a następnie usuń kolejną kostkę, która odcina kulę.

różnica()
kula(tubr);
kula(tubr - grubość);
przetłumacz([0, 0, -tubr])
kostka(rozmiar=tubr*2, środek = prawda);

Teraz masz dwa oddzielne kawałki. Następnym krokiem jest ich ułożenie. Tutaj możesz użyć polecenia union. Podobnie jak w przypadku polecenia różnicy, związek układa wszystkie elementy w kolejności. W związku kolejność nie jest tak ważna, ponieważ jest dodatkiem. Kod będzie wyglądał trochę brzydko, ponieważ nie używamy tutaj modułów.

zjednoczenie ()
// Główna rura
różnica()
cylinder(r1 = tuba, r2 = tuba, h = tubl);
cylinder(r1 = tubr - grub., r2 = tubr - grub., h = tubl);

// Dolna kula
przetłumacz([0, 0, tubl])
różnica()
kula(tubr);
kula(tubr - grubość);
przetłumacz([0, 0, -tubr])
sześcian(rozmiar=tubr*2, środek = prawda);


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

Tutaj projektujemy to do góry nogami, to zależy od Ciebie. Rób to, co jest wygodne w konkretnym przypadku. Zawsze możesz go obracać, gdy go używasz. Górny pierścień ma ostre krawędzie, możesz temu zaradzić za pomocą koła i obróć_wyciągnij. Można to zrobić na inne sposoby, eksplorować i eksperymentować!

obróć_wyciągnięcie(wypukłość = 10, $fn = 100)
przetłumacz([tubr, 0, 0])
okrąg(r = grubość, $fn =100);

Łącząc wiele cylindrów

Kiedy już zrobisz rurkę z kilku cylindrów, możesz też chcieć połączyć je na różne sposoby. Aby to zrobić, możesz ponownie użyć związku. Załóżmy, że chcesz, aby jedna rurka znajdowała się pod kątem czterdziestu pięciu stopni względem drugiej rurki. Aby to zrobić, umieść rurę pod kątem w połowie dużej rury.

zjednoczenie ()
probówka (50, 4, 300);
przetłumacz([0, 0, długość całkowita/2]) obróć([45, 0, 0])
probówka (50, 4, 150);

Kiedy tego spróbujesz, wygląda świetnie z zewnątrz. Kiedy zajrzysz do środka, zobaczysz, że masz obie rurki. Krótka blokuje przepływ w długiej rurce. Aby temu zaradzić, musisz wymazać oba cylindry wewnątrz rur. Możesz rozważyć całą złączkę jako jedną część i umieścić odpowiednie cylindry za nią w różnicy.

różnica()
zjednoczenie ()
tuba (50, 4, 300);
przetłumacz([0, 0, długość całkowita/2]) obróć([45, 0, 0])
probówka (50, 4, 150);


cylinder(r = 50 - 4, h = długość całkowita);
przetłumacz([0, 0, długość całkowita/2]) obróć([45, 0, 0])
cylinder(r = 50 - 4, h = długość całkowita/2);

Jak widać, pierwszy cylinder rozciąga rurkę na całą długość. Spowoduje to usunięcie wszystkiego, co znajduje się w dużej rurce, ale mała rurka, która jest pochylona, ​​również musi zostać wymazana. Polecenie tłumaczenia przesuwa rurkę do połowy, a następnie obraca się i umieszcza cylinder wewnątrz rurki. W rzeczywistości kod jest kopiowany z góry, a rurkę zastępuje cylinder.

Instalacja wodociągowa

Jeśli chcesz zrobić więcej lamp, możesz użyć modułu z powyższego przykładu i rozpocząć rozbudowę. Kod jest dostępny na https://github.com/matstage/openSCAD-Cylinders.git, W chwili pisania tego tekstu są tylko te dwa, ale zaglądaj tam często, aby zobaczyć więcej. Być może uda Ci się stworzyć bardziej ekscytujące rzeczy.

Wewnątrz bloku

Jeśli zamierzasz zbudować silnik spalinowy, potrzebujesz cylindrycznego otworu w solidnym kawałku. Poniżej przykład, najprostszy z możliwych, dla kanałów chłodzących i tłoków jest o wiele więcej do dodania. To jednak na inny dzień.

blok cylindrów modułu (
cylinderR = 3,
Krawędź = 1,
liczba cylindrów = 8)

różnica()
sześcian ([cylinderR*2 + krawędź * 2,
cylinderR*2*numCylinders+Edge*numCylinders+Ekran,10]);
for(x = [0:1:numCylinder-1])
przetł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 w zależności od liczby cylindrów, które chcesz umieścić w bloku. Wszystkie wartości w module są domyślne, więc możesz ich używać bez wartości. Aby go użyć, użyj „użyj” ' oświadczenie na górze pliku, a następnie dodaj cylinderblock(numCylinders = 8). Możesz użyć lub pominąć dowolną wartość, gdy ją pominiesz, przyjmie wartość domyślną. Krótko mówiąc, wnętrze modułu zaczyna się od wartości, a następnie tworzy sześcian, aby był wystarczająco długi, aby zmieścić cylindry. Następnie kontynuuje, usuwając cylindry ze stwierdzeniem for. Dzięki oświadczeniu for możesz zrobić większy lub mniejszy blok. W przypadku bardziej zaawansowanych modułów możesz wprowadzić ograniczenia, które zmieniają projekt po osiągnięciu określonych wartości. Może chcesz, aby był to V, jeśli ma 8 lub więcej cylindrów?.

Wytłaczanie z płaskiego kształtu

Innym sposobem na stworzenie cylindra jest wykonanie okręgu i wyciągnięcie go. Solidny cylinder to tylko dwie linie:

liniowe_wyciągnięcie(15)
koło(20);

Tworzy to 15 (bez jednostek w openSCAD) długości, z promieniem 20. Możesz użyć średnicy za pomocą parametru d. Samo tworzenie cylindra nie jest zbyt 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.

liniowe_wyciągnięcie(15)
różnica()
koło(20);
koło(18);

To jest to samo, ale, jak już wcześniej zrobiliśmy, usuwasz środkowy okrąg. Możesz również wygiąć go w okrąg za pomocą wersji rotate_extrude. Świetnie nadaje się do robienia pączków, najprostsza wersja wygląda jak jedna.

obróć_wyciągnięcie(kąt =180, wypukłość =10)
przetłumacz([30,0,0])
różnica()
koło(20);
koło(10);

Ten kod tworzy półokrąg, który jest pusty. Uwaga, z którą powinieneś być ostrożny, czy tłumaczenie jest konieczne, w przeciwnym razie pojawi się błąd: „BŁĄD: wszystkie punkty dla rotateextrude() muszą mieć ten sam znak współrzędnych X (zakres wynosi -2.09 -> 20.00)”. Liczby będą zależeć od wartości w kółku. Ponieważ tworzy to taki sam kształt jak cylinder, może wydawać się bezużyteczny. Nie jest! Najlepszym zastosowaniem tego polecenia jest sprawienie, by płaski kształt jakoś funkcjonował. Instrukcja ma na przykład prosty wielokąt, tworzy okrągły kształt, w którym można uruchomić pasek. Możesz też go obrócić. Poniższy kod tworzy korkociąg.

przetłumacz([-80,0,0])
linear_extrude(80, skręt = 900, skala = 2.0, plastry = 100)
przetłumacz([2, 0, 0])
kwadratowy(10);

Przykład w instrukcji pokazuje wielokąt, który może być przydatny. Poniższy kod może być dowolny, ale ilustruje siłę robienia tego w ten sposób.

przetłumacz([0, -80, 0])
obróć_wyciągnięcie(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, aż dopasujesz go do swojej aplikacji. Jeśli używanie samych liczb wydaje się trochę zniechęcające, możesz utworzyć profil w innych programach CAD i zaimportować wynik dxf za pomocą polecenia import().

Wniosek

Wykonanie cylindra jest proste, ale to dopiero początek procesu. Trudną częścią jest zrobienie z nim czegoś pożytecznego. Musisz również 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 poszerzania wiedzy za pomocą openSCAD. Pamiętaj, aby korzystać z dokumentacji i opierać się na innym oprogramowaniu, gdy nie można tego łatwo osiągnąć za pomocą liczb i tym podobnych. Coś, czego nie omówiono w tym poście, to to, że możesz rysować rzeczy w Inkscape i Blenderze i importować je do openSCAD. Eksportowanie z openSCAD do stl i innych formatów jest dobrze obsługiwane, a jeśli jesteś naprawdę ciekawy, sprawdź kreacje na Thingiverse. Mają grupę entuzjastów, którzy wnoszą coś do ich witryny.

Gry Top 10 Games to Play on Ubuntu
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
Gry 5 najlepszych gier zręcznościowych dla systemu Linux
5 najlepszych gier zręcznościowych dla systemu Linux
W dzisiejszych czasach komputery to poważne maszyny używane do gier. Jeśli nie możesz uzyskać nowego wysokiego wyniku, będziesz wiedział, o co mi chod...
Gry Bitwa o Wesnoth 1.13.6 Wydanie rozwojowe
Bitwa o Wesnoth 1.13.6 Wydanie rozwojowe
Bitwa o Wesnoth 1.13.6 wydana w zeszłym miesiącu jest szóstą wersją rozwojową w 1.13.Seria x i zapewnia szereg ulepszeń, w szczególności w interfejsie...