เครื่องพิมพ์ 3 มิติ: ทำสิ่งที่มี OpenScad
ในสัปดาห์นี้เราเริ่มต้นด้วย OpenScad โปรแกรมการสร้างแบบจำลอง 3 มิติที่ชอบการเขียนโปรแกรมมากกว่าการวาดภาพ วัตถุที่พิมพ์ได้ 3 มิติที่เป็นประโยชน์อย่างมากรวมถึงชิ้นส่วนสำหรับการเปลี่ยนใหม่อย่างมาก – ถูกสร้างขึ้นใน OpenScad ดังนั้นในตอนท้ายของสิ่งนี้คุณจะสามารถจัดสไตล์ชิ้นส่วนของคุณเอง
สิ่งนี้ไม่ได้ระบุว่าเป็นบทช่วยสอนทั้งหมดสำหรับ OpenScad; ฉันแค่สาธิต Scad เพียงพอที่จะพัฒนาส่วนพื้นฐาน สัปดาห์หน้าฉันจะมีส่วนร่วมมากมายที่จะสร้างส่วนหนึ่งกับ AutoCAD อย่างไรก็ตามหากคุณมีแนวคิดเกี่ยวกับเครื่องมือแอปพลิเคชันซอฟต์แวร์ที่ฉันต้องใช้เป็นบทช่วยสอนเพื่อให้ส่วนหนึ่งทิ้งบันทึกไว้ในความคิดเห็น ตรวจสอบคู่มือการพิมพ์ 3 มิติเพื่อให้ส่วนหนึ่งกับ OpenScad ด้านล่าง
ก่อนอื่นบางอย่าง
แนวคิดพื้นฐานที่อยู่เบื้องหลัง OpenScad เป็นรูปทรงเรขาคณิตที่เป็นของแข็งที่สร้างสรรค์นี่เป็นวิธีการสร้างแบบจำลองที่ใช้พื้นฐานพื้นฐานเช่นทรงกลมลูกบาศก์หรือกระบอกสูบพร้อมกับการดำเนินการบูลีนขั้นพื้นฐานเพื่อผลิตวัตถุ การใช้คำเพื่ออธิบายวิธีนี้เป็นเพียงการแย่มากดังนั้นนี่คือตัวอย่างสั้น ๆ มาก ในอุดมคติคือภาพของวัตถุสองชิ้นที่ผลิตใน OpenScad, ลูกบาศก์รวมถึงกระบอกสูบด้านล่างเป็นรหัสซึ่งคุณต้องสามารถปฏิบัติตามได้อย่างง่ายดาย:
ก่อน
1
2
3
4
5
6
7
ตัวอย่างโมดูล () {
ทรงกลม (10);
แปล ([15,15, -10]) {
ทรงกระบอก (H = 20, R = 5);
}
}
ตัวอย่าง();
สมองตายง่ายใช่มั้ย เราแค่ผลิตลูกบอลที่มีรัศมี 10 เช่นเดียวกับกระบอกสูบที่มีรัศมี 5 รวมถึงความสูง 20 เราเทียบกับกระบอกสูบในพื้นที่โดย 15 ยูนิตใน X เช่นเดียวกับแกน y รวมถึง 10 หน่วยในแกน Z นี่คือที่ที่มีรูปทรงเรขาคณิตที่เป็นของแข็งที่สร้างสรรค์เข้ามาเราสามารถรวมกลุ่ม 3D สามมิติเหล่านั้นได้โดยใช้คำสั่งยูเนี่ยน () เช่นเดียวกับ:
1
2
3
4
5
6
ยูเนี่ยน () {
ทรงกลม (10);
แปล ([0,0, -10]) {
ทรงกระบอก (H = 20, R = 5);
}
}
ใน OpenScad คำสั่ง Union เป็นนัย จำนวนมากคุณไม่ต้องการยกเว้นในสถานการณ์ที่คุณรวมการดำเนินการบูลีนอื่น ๆ มีสองการดำเนินการบูลีนมากขึ้นที่เราสามารถใช้ประโยชน์ได้ – ความแตกต่างหรือเพียงแค่ลบหนึ่งรายการจากอีกรายการหนึ่งเช่นเดียวกับสี่แยก ตรงนี้เป็นคำสั่งที่แตกต่าง:
1
2
3
4
5
6
ความแตกต่าง(){
ทรงกลม (10);
แปล ([0,0, -10]) {
ทรงกระบอก (H = 20, R = 5);
}
}
และคำสั่งตัด:
1
2
3
4
5
6
จุดตัด(){
ทรงกลม (10);
แปล ([0,0, -10]) {
ทรงกระบอก (H = 20, R = 5);
}
}
นั่นคือเรขาคณิตที่เป็นของแข็งที่สร้างสรรค์ ด้วยการดำเนินงานบูลีนเหล่านี้คุณสามารถทำอะไรก็ได้ ฉันหมายถึงถึงเวลาที่จะแสดงให้เห็นว่าใช่มั้ย
สิ่งของของเรา
เมื่อพิจารณาว่าฉันจะทำแบบฝึกหัดจำนวนหนึ่งวิธีการพัฒนา ‘สิ่ง’ มันสมเหตุสมผลที่จะมี ‘สิ่งที่’ พื้นฐานเพื่อทำกับบทเรียนเหล่านี้ การเลือกรายการที่จะคัดลอกนั้นยากอย่างยิ่งอย่างไรก็ตามหลังจากดึงหนังสือสองสามเล่มเกี่ยวกับการวาดภาพวิศวกรรมเช่นเดียวกับการร่างฉันตัดสินใน ‘สิ่ง’ ข้างต้นจากการวาดภาพวิศวกรรม (ฝรั่งเศส, 1929) หากคุณสงสัยว่าทำไมฉันจึงเลือกบางสิ่งบางอย่างแปลก ๆ ออกมาจากหนังสือเล่มนี้เพียงจำไว้ว่า: ผู้คนที่สร้างยานอวกาศอพอลโลค้นพบการร่างเช่นเดียวกับการวาดด้วยหนังสือเล่มนี้ นอกจากนี้นี่เป็นคอลัมน์ของฉันดังนั้นข้อเสนอให้กับมัน ด้วยการรวมสองถังรวมถึงลูกบาศก์มันค่อนข้างง่ายที่จะสร้างรูปร่างพื้นฐานของสิ่งที่จะจบลงด้วยการเป็นส่วนที่เสร็จสมบูรณ์ของเรา รหัสเบื้องต้นอยู่ด้านล่างพร้อมกับการแสดงผล:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
สิ่งที่โมดูล ()
{
ความแตกต่าง(){
ทรงกระบอก (H = 7, R = 19);
ทรงกระบอก (h = 7, r = 8);
}
แปล ([- 23,10,0]) {
ลูกบาศก์ ([46, 10, 7]);
}
แปล ([- 10, -26,0]) {
ลูกบาศก์ ([20, 16, 7]);
}
แปล ([- 10, -26,7]) {
คิวบ์ ([20,4,7]);
}
}
สิ่ง();
อีกครั้งนี่เป็นเพียงจุดเริ่มต้นของส่วนของเรา เราใช้เพียงแค่ลูกบาศก์รวมถึงกระบอกสูบที่นี่ หากคุณสงสัยว่าทำไมมิติที่เราใช้มีความแปลกมากจึงเป็นเรื่องเดิม (ตีพิมพ์ในสำเนารูปแบบวิศวกรรมฉบับที่สี่ของฉันในปี 1929 อย่างไรก็ตามมันอาจมาจากรุ่นแรกที่ตีพิมพ์ในปี 1911) ถูกสร้างขึ้นใน แปดแปดนิ้ว ฉันแค่เขียน OpenScad ของฉันดังนั้นระบบหนึ่งจึงเท่ากับหนึ่งในแปดของนิ้ว เมื่อเราพิมพ์สิ่งนี้เราสามารถซ่อมแซมปัญหาขนาดใดก็ได้เพียงแค่ทวีคูณ เพื่อสร้างร่างกายหลักของส่วนของเราเราต้องการเพิ่มถังสองสามกระบอกในหน้าแปลน สิ่งหนึ่งที่ยอดเยี่ยมอย่างแท้จริงเกี่ยวกับ OpenScad คือความสามารถในการผลิตชิ้นส่วนเล็ก ๆ น้อย ๆ รวมถึงรวมเข้ากับคำสั่งยูเนี่ยน นี่คือคอลเลกชันของกระบอกสูบสำหรับหน้าแปลนของเรา:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
หน้าแปลนโมดูล () {
หมุน ([270,0,180]) {
แปล ([- 10,6, -4]) {
ความแตกต่าง(){
ยูเนี่ยน () {
ลูกบาศก์ ([20,12,4]);
แปล ([10,0,0]) {
ทรงกระบอก (h = 4, r = 10);
}
}
การแปลe ([10,0,0]) {
ทรงกระบอก (H = 4, R = 3.5);
หมุน ([0,0,90]) {
ทรงกระบอก (h = 3, r = 7);
}
}
}
}
}
}
เนื่องจาก OpenScad เป็นเพียงรหัสเราสามารถโทรโมดูลนี้ในพื้นที่ที่เหมาะสมในรหัส คุณสามารถดูสิ่งนี้ในรหัสสรุปที่ไม่กี่เลื่อนลง ในอุดมคติตอนนี้ส่วนของเราปรากฏขึ้นเช่นนี้: ตอนนี้สิ่งเดียวที่ได้รับมอบหมายเพิ่มในสิ่งนี้คือสล็อต 3/8 “ในร่างกายหลักเช่นเดียวกับเนื้อไม่กี่ตัว ฉันจะทิ้งเนื้อเป็นแบบฝึกหัดให้กับผู้อ่านอย่างไรก็ตามนี่คือรหัสเช่นเดียวกับภาพถ่ายสำหรับส่วนที่เกิดขึ้น:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
สิ่งที่โมดูล ()
{
ความแตกต่าง(){
ทรงกระบอก (H = 7, R = 19);
ทรงกระบอก (h = 7, r = 8);
หมุน ([0,0,225]) {
แปล ([0,1.5,0]) {
คิวบ์ ([20,3,7]);
}
}
}
แปล ([- 23,10,0]) {
ลูกบาศก์ ([46, 10, 7]);
}
แปล ([- 10, -26,0]) {
ลูกบาศก์ ([20, 10, 7]);
}
แปล ([0, -26,24]) {
แปลน ();
}
}
หน้าแปลนโมดูล () {
หมุน ([270,0,180]) {
แปล ([- 10,6, -4]) {
ความแตกต่าง(){
ยูเนี่ยน () {
ลูกบาศก์ ([20,12,4]);
แปล ([10,0,0]) {
ทรงกระบอก (h = 4, r = 10);
}
}
แปล ([10,0,0]) {
ทรงกระบอก (H = 4, R = 3.5);
หมุน ([0,0,90]) {
ทรงกระบอก (h = 3, r = 7);
}
}
}
}
}
}
สิ่ง();
ดังนั้นคุณไป สิ่งที่ผลิตด้วย OpenScad นี่เป็นแนวทางข้อสรุปในการสร้างสิ่งของด้วย OpenScad หรือไม่? ไม่อย่างไรก็ตามมันมีมากเกินพอที่จะทำให้เท้าเปียก เพียงพอแล้วคุณสามารถจัดสไตล์ชิ้นส่วนของคุณเองรวมทั้งส่งพวกเขาไปที่เครื่องพิมพ์ 3 มิติ สัปดาห์หน้าฉันจะทำส่วนเดียวกันใน AutoCAD ซึ่งจะต้องถือเอาไว้กับแพ็คเกจ CAD อื่น ๆ หากคุณมีความปรารถนาใด ๆ ที่จะเห็นส่วนนี้ที่ทำกับแพ็คเกจสไตล์ 3 มิติอีกหนึ่งแพ็คเกจให้จดบันทึกในความคิดเห็น