CAD

openSCAD цилиндър

openSCAD цилиндър
Когато подготвях тази статия, исках да разбера какви хора имат проблеми с openSCAD. За моя изненада най-често срещаният въпрос беше за създаването на цилиндър. Има команда за цилиндър, за която първо ще научите подробностите. След това ще видите иновативни начини за създаване на цилиндри по ваш вкус. Можете също така да отнемете цилиндри от други парчета, за да създадете по-интересни неща. Повечето читатели, които идват тук, вероятно искат да видят кух цилиндър или тръба от някакъв вид. Продължавайте да четете, имаме много неща за вас.

Командата на цилиндъра

Ако използвате най-простата версия на командата на цилиндъра, имате нужда само от един параметър. Това прави един твърд еднороден цилиндър и нищо повече. Трябва да отбележите, че този цилиндър ще бъде със стандартен радиус и височината на стойността в скобите. Командата обаче има много опции, нека да ги разровим.

цилиндър (r1 = 20);
цилиндър (r1 = 20, r2 = 5);
цилиндър (r1 = 20, h = 40);
цилиндър (r = 20, h = 40);
цилиндър (r1 = 20, r2 = 5, h = 40, център = вярно);

Първите два цилиндъра в горния код нямат смисъл, защото нямат височина. Често срещана грешка е, когато забравите стойността и тя не изглежда така, както сте предвидили. Когато използвате променливи, същото се случва, ако използвате недефинирана променлива. В този случай за височина, но проверете дневника на конзолата, когато го стартирате.

Конус

Третият е конус, причината е, че стойността r2 има стандартен размер. Опитайте четвъртия и вижте какво ще се случи. Последният създава конус, където имате пълен контрол върху размерите. Този е лесен за използване за твърди конуси. Поставяте двата радиуса и височината и сте готови. Можете също да използвате диаметъра, ако това ви подхожда по-добре.

Стойността center = true е валидна за оста z, оставяйки конуса наполовина нагоре от „земята“. По подразбиране е false, което кара дъното на конуса да се окаже на "земята", така да се каже. Можете също така да изберете колко близо стените на конусите да са кръгли с параметъра '$ fn'.

Кухи цилиндър

Ей, почакай малко! Това създава само твърди парчета, как да пробивам дупки в тях? Питате, благодаря! Аз ще ви кажа. Отговорът е всичко в разликата. Командата, която е. Помислете за кода по-долу, той съдържа два цилиндъра, които са обхванати с къдрави скоби и командата за разлика.

разлика ()
цилиндър (r = 30, h = 40);
цилиндър (r = 28, h = 41);

Просто казано, когато имате няколко парчета, тогава отрязвате материала от първото парче, като използвате всички следващи парчета. В този случай изрязвате цилиндър от цилиндър. Ако искате да изрежете друга форма, можете да направите и това. Опитайте с куб или сфера! Обърнете внимание на интересните и понякога опустошителни ефекти, които стойността $ fn може да има върху този код.

Кух конус

Можете да направите това и с конус, просто използвайте стойностите на двойния радиус. Тъй като определяте и двата конуса, имате много контрол върху крайния резултат. Най-простият кухи конус е само два конуса един в друг с дебелина на материала.

разлика ()
цилиндър (r1 = 30, r2 = 12, h = 50);
цилиндър (r1 = 25, r2 = 7, h = 45);

Този конус е покрит отгоре, можете да го отворите, като просто настроите втората височина по-висока от първата. Тъй като имате два цилиндъра, можете да промените всеки от двата. Като пример можете да изрежете прав отвор през него, като смените втория цилиндър. Можете също да изберете куб, но имайте предвид, че това може да изреже твърде много материал от конуса.

Пирамида

Това може да изглежда без значение, но това е полезен трик, който трябва да имате предвид, докато продължавате да използвате openSCAD. Всички цилиндри и други елементи представляват приблизителна форма. Прочетохте за параметъра $ fn по-рано, тук се възползвате от него. Имайки предвид това, може да си помислите: Пирамидата е конус с четири страни. Правилно! използвайте $ fn = 4 и имате конус с четири страни, което означава пирамида.

разлика ()
цилиндър (r1 = 30, r2 = 12, h = 40, $ fn = 4);
цилиндър (r1 = 25, r2 = 7, h = 35, $ ​​fn = 4);

Вътрешният цилиндър реже същия цилиндър като външния. Докато не започнете да играете с параметъра $ fn. За да се запознаете с ефектите от този параметър, опитайте се да направите столче с четири крака. Как влияе параметърът $ fn на резултата? Също така, как можете да покриете горната или долната част?

Комбинирайки много

За да използвате много цилиндрите, трябва да се научите как да комбинирате много от тях. Крайният резултат може да бъде много сложен и понякога дори полезен. Поставянето на горната част на цилиндъра е една от възможностите. За да направите това добре, трябва да започнете да използвате променливи. Направете си навик да ги поставяте на върха на това, което проектирате. Това улеснява направата на модули по-късно.

дебелина = 5;
baser = 30;
topr = 12;
височина = 50;
union ()
// Долен конус
разлика ()
цилиндър (r1 = baser, r2 = topr, h = височина);
цилиндър (r1 = baser-thickn, r2 = topr - thickn, h = височина + thickn);

// Най-горната топка
превод ([0, 0, височина])
разлика ()
сфера (r = topr);
сфера (r = topr -дебела);
превод ([0, 0, -topr])
куб (размер = topr * 2, център = вярно);

Започвайки отгоре, имате променливи. Те са за дебелината, базовия радиус, горния радиус и височината. Декларацията на обединението обединява парчетата. Вътре в скобите имате конуса и горната топка. Тъй като те са вътре в съюза, те ще станат едно парче в края. Можете да направите още повече, когато използвате много цилиндри в много ъгли.

Изработване на епруветка

Преминавайки от конуси, направете епруветка. Първо, трябва да помислите какви форми правят епруветка. Основната част е цилиндър, нищо изискано, просто редовната разлика между два цилиндъра. Ако зададете дължината като променлива, можете да използвате тази стойност като препратка. Трябва да знаете къде тръбата завършва и се превръща в полусферата отдолу. Също така ще използвате радиуса на тръбата, за да определите сферата.

тубър = 20;
tubl = 80;
дебелина = 2;
разлика ()
цилиндър (r1 = козина, r2 = козина, h = тръба);
цилиндър (r1 = Tubr - thickn, r2 = Tubr - thickn, h = tubl);

Опитайте това и ще имате само обикновен цилиндър, за да направите цялата тръба, която трябва да я разтопите заедно с полусферата. В стандартния openSCAD няма полусфера, трябва да го направите. Използвайте разликата между две сфери, за да създадете куха сфера, след което премахнете друг куб, който отрязва сферата.

разлика ()
сфера (тубър);
сфера (тубър - дебелина);
превод ([0, 0, -tubr])
куб (размер = тубър * 2, център = вярно);

Сега имате две отделни парчета. Следващата стъпка е да ги съберете. Тук можете да използвате командата union. Подобно на командата за разлика, обединението взема всички парчета в ред. В обединението редът не е толкова важен, тъй като е допълнение. Кодът ще изглежда малко грозен, защото тук не използваме модули.

union ()
// Основна тръба
разлика ()
цилиндър (r1 = козина, r2 = козина, h = тръба);
цилиндър (r1 = Tubr - thickn, r2 = Tubr - thickn, h = tubl);

// Долна сфера
превод ([0, 0, tubl])
разлика ()
сфера (тубър);
сфера (тубър - дебелина);
превод ([0, 0, -tubr])
куб (размер = тубър * 2, център = вярно);


// Горен пръстен
разлика ()
цилиндър (r = тубър + дебелина, h = дебелина);
цилиндър (r = козина, h = дебелина);

Тук го проектираме с главата надолу, това зависи от вас. Направете това, което е удобно за конкретния случай. Винаги можете да го завъртите, когато го използвате. Горният пръстен има остри ръбове, можете да коригирате това, като използвате кръг и го завъртите_екструдирайте. Има и други начини да го направите, изследвате и експериментирате!

rotate_extrude (изпъкналост = 10, $ fn = 100)
превод ([tubr, 0, 0])
кръг (r = thickn, $ fn = 100);

Комбиниране на много цилиндри

След като сте направили тръба от няколко цилиндъра, може да искате да ги свържете по различни начини. За да направите това, можете отново да използвате съюз. Да предположим, че искате едната тръба под ъгъл от четиридесет и пет градуса спрямо другата тръба. За да направите това, поставете ъгловата тръба наполовина на голямата тръба.

union ()
тръба (50, 4, 300);
превод ([0, 0, totlength / 2]) завъртане ([45, 0, 0])
тръба (50, 4, 150);

Когато опитате това, изглежда страхотно отвън. Когато погледнете вътре, виждате, че имате и двете цели тръби. Късата блокира потока в дългата тръба. За да отстраните това, трябва да изтриете двата цилиндъра вътре в тръбите. Можете да разгледате цялото съединение едно парче и да поставите съответните цилиндри след него вътре в разлика.

разлика ()
union ()
тръба (50, 4, 300);
превод ([0, 0, totlength / 2]) завъртане ([45, 0, 0])
тръба (50, 4, 150);


цилиндър (r = 50 - 4, h = дължина на височината);
превод ([0, 0, totlength / 2]) завъртане ([45, 0, 0])
цилиндър (r = 50 - 4, h = дължина на тотала / 2);

Както можете да видите, първият цилиндър се простира по цялата дължина на тръбата. Това ще изтрие всичко в голямата тръба, но малката тръба, която е наклонена, също трябва да бъде изтрита. Командата за превод премества тръбата нагоре наполовина, след това се завърта и поставя цилиндъра вътре в тръбата. Всъщност кодът се копира отгоре и тръбата се заменя с цилиндър.

ВиК

Ако искате да направите повече тръби, можете да използвате модула в горния пример и да започнете да се разширявате. Кодът е достъпен на https: // github.com / matstage / openSCAD-Цилиндри.git, По време на писането има само тези две, но проверявайте често, за да видите повече. Може да успеете да създадете по-вълнуващи неща.

Вътре в блок

Ако се стремите да направите двигател с вътрешно горене, имате нужда от цилиндричен отвор в твърдо парче. По-долу е даден пример, възможно най-простият, за охлаждащи канали и бутала има още много какво да добавите. Това е за друг ден все пак.

модул цилиндров блок (
цилиндър R = 3,
Ръб = 1,
numCylinders = 8)

разлика ()
куб ([цилиндър R * 2 + Edge * 2,
цилиндър R * 2 * numCylinders + Edge * numCylinders + Edge, 10]);
за (x = [0: 1: numCylinders-1])
превод ([цилиндър R + Edge, цилиндър R * x * 2 + Edge * x + цилиндър R + Edge, 0])
цилиндър (r = цилиндър R, h = 12);

Тук имате куб, който расте според броя на цилиндрите, които искате вътре в блока. Всички стойности в модула са по подразбиране, така че можете да го използвате без стойности. За да го използвате, използвайте 'use 'в горната част на вашия файл и след това добавете cylinderblock (numCylinders = 8). Можете да използвате или пропуснете която и да е стойност, когато ги пропуснете, ще се използва по подразбиране. Накратко, вътрешността на модула започва със стойностите и след това създава куб, който да е достатъчно дълъг, за да побере цилиндрите. След това продължава чрез премахване на цилиндрите с изявление for. Благодарение на формуляра for можете да направите по-голям или по-малък блок. За по-напреднали модули можете да поставите ограничения, които променят дизайна, когато се достигнат определени стойности. Може би искате да го направите V, ако е 8 или повече цилиндъра.

Екструдиране от плоска форма

Друг начин за създаване на цилиндър е да се направи кръг и да се екструдира. Плътният цилиндър е само два реда:

линейно_екструдиране (15)
кръг (20);

Това създава 15 (без единици в openSCAD) с радиус 20. Можете да използвате диаметъра, като използвате параметъра d. Самото създаване на цилиндър не е много полезно, но можете да използвате същата техника за всяка 2D форма. Ще видите това по-късно. Докато кухият цилиндър кодът е малко по-дълъг.

линейно_екструдиране (15)
разлика ()
кръг (20);
кръг (18);

Това е същото, но както направихме по-рано, вие премахвате централния кръг. Можете също така да го огънете в кръг с версията rotate_extrude. Това е чудесно за приготвяне на понички, най-простата версия изглежда като такава.

rotate_extrude (ъгъл = 180, изпъкналост = 10)
превод ([30,0,0])
разлика ()
кръг (20);
кръг (10);

Този код създава полукръг, който е кух. Бележка, с която трябва да внимавате, е необходим превод, или ще получите грешка: „ГРЕШКА: всички точки за rotateextrude () трябва да имат един и същ координатен знак X (обхватът е -2.09 -> 20.00) ”. Числата ще зависят от стойността в кръга. Тъй като това създава същата форма като цилиндъра, може да изглежда безполезно. Не е! Най-доброто използване на тази команда е да се направи плоска форма функционална по някакъв начин. Ръководството има прост многоъгълник като пример, създава кръгла форма, където можете да пуснете колан. Можете също така да го завъртите. Кодът по-долу създава тирбушон.

превод ([- 80,0,0])
linear_extrude (80, усукване = 900, мащаб = 2.0, филийки = 100)
превод ([2, 0, 0])
квадрат (10);

Примерът в ръководството показва многоъгълник, който може да бъде полезен. Кодът по-долу може да бъде каквото ви харесва, но илюстрира силата да го направите по този начин.

превод ([0, -80, 0])
rotate_extrude (ъгъл = 275)
превод ([12,3,2])
многоъгълник (точки = [[0,0], [20,17], [34,12], [25,22], [20, 30]]);

Можете да експериментирате с формата на многоъгълника, докато не го направите правилно за вашето приложение. Ако се чувствате малко плашещи, като използвате само числа, можете да създадете профила в други CAD програми и да импортирате резултата от dxf с помощта на командата import ().

Заключение

Изработването на цилиндър е просто, но само началото на процеса. Трудната част е да направите нещо полезно с него. Също така трябва да го включите във вашия дизайн и може би да създадете по-сложни проблеми от цилиндрите. Намерете начини и предизвикателства за непрекъснатото ви разширяване на знанията с помощта на openSCAD. Не забравяйте да използвате документацията и да се опрете на друг софтуер, когато това не може лесно да бъде постигнато с цифри и подобни. Нещо, което не е разгледано в тази публикация, е, че можете да рисувате неща в Inkscape и Blender и да ги импортирате в openSCAD. Експортирането от openSCAD в stl и други формати се поддържа добре и ако наистина сте любопитни, разгледайте творенията в Thingiverse. Те имат пакет ентусиасти, които допринасят за нещата на техния сайт.

Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...