การพิมพ์ 3 มิติหรือการเพิ่มกระบวนการผลิตเป็นขั้นตอนของการสร้างสิ่งของแข็ง 3 มิติจากไฟล์ดิจิตอล แขนหุ่นยนต์อุตสาหกรรมสามารถถูกใช้เครื่องพิมพ์ 3 มิติ 3 แกนหรือ 5 แกน 3 มิติสำหรับRoboDK วีดีโอดังกล่าวแสดงในภาพรวมของวิธีตั้งค่าเครื่องพิมพ์ 3 มิติด้วย RoboDK ออฟไลน์: watch video.
เครื่องพิมพ์ 3 มิติด้วยหุ่นยนต์เป็นหนึ่งในหลายวิธีต่อไปนี้:
●แปลงโปรแกรม G-code โดยตรง (ไฟล์NC) ถึงโปรแกรมหุ่นยนต์ด้วย RoboDK, ซึ่งแสดงโดยRobot Machining project. อัตราของการไหลวัตถุ(คำสั่งเครื่องอัดรัด E) ได้ถูกนำลงบัญชีอย่างเหมาะสมสำหรับแต่ละการเคลื่อนที่และมันสามารถรวมกันในโปรแกรมที่สร้างขึ้นเป็นProgram Event. G-code เป็นชนิดของไฟล์ NC ที่ถูกสนับสนุนโดย RoboDK และมันยังเป็นรูปแบบทีถูกสนับสนุนโดยเครื่องพิมพ์ 3 มิติ ซอฟต์แวร์เครื่องตัดส่วนใหญ่สามารถสร้าง G-code ที่ให้มาในไฟล์ STL
●เลือกUtilities➔3D Print Projectเพื่อเปิดการตั้งค่าเครื่องพิมพ์ 3 มิติการตั้งค่าเหล่านี้เป็นสิ่งที่เหมือนกับRobot Machining Project, ความแตกต่างเฉพาะคือPath inputการตั้งค่าล่วงหน้า3D print object. เลือกSelect objectเพื่อเลือกวัตถุบนหน้าจอหลักและรับเส้นทางเครื่องมืออย่างอัตโนมัติเลือกเครื่องพิมพ์ 3 มิติเพื่อเปิด Slic3r.


ค่าเริ่มต้น, RoboDK แปลคำสั่งการเรียกโปรแกรม E เป็นโปรแกรมที่เรียกว่าExtruderและให้ค่า E value เป็นค่าพารามิเตอร์เลือกProgram Eventsเพื่อเปลี่ยนลักษณะดังกล่าว

ค่าเครื่องอัดรีด (E) เป็นตัวแทนที่แสดงว่าวัตถุดิบที่จำเป็นต้องอัดรีดก่อนการเคลื่อนที่ ค่านี้สามารถถูกขับเคลื่อนการป้อนเครื่องอัดรีดจากหุ่นยนต์ลงในบัญชีความเร็วหุ่นยนต์และระยะทางระหว่างจุด
อีกทางเลือกหนึ่ง, มันยังสามารถคำนวณการป้อนเครื่องอัดรีดโดยการใช้หน่วยประมวลผลและสร้างโค้ดที่เหมาะสมตามลำดับ ส่วนต่อไปนี้มีตัวอย่างแสดง
ในส่วนนี้แสดงการดัดแปลงหุ่นยนต์post processorเพื่อคำนวณการป้อนเครื่องอัดรัดก่อนการดำเนินการแต่ละการเคลื่อนที่ อีกทางเลือกหนึ่ง, การคำนวณเหล่านี้สามารถถูกทำได้บนหุ่นยนต์ควบคุม
ในขั้นตอนแรกที่จะขัดขวางการเรียกเครื่องอัดรีดและการอ่านค่าเครื่องอัดรีด (ค่า E) จากส่วนของ RunCode ในหน่วยประมวลผล:
def RunCode(self, code, is_function_call = False):
if is_function_call:
if code.startswith("Extruder("):
# Intercept the extruder command.
# if the program call is Extruder(123.56)
# we extract the number as a string
# and convert it to a number
self.NEW_E_LENGTH = float(code[9:-1])
# Skip the program call generation
return
else:
self.addline(code + "()")
else:
# Output program code
self.addline(code)
ค่าเครื่องอัดฉีดถูกบันทึกตัวแปร NEW_E_LENGTH จากนั้น, เราจำเป็นต้องกำหนดขั้นตอนใหม่ซึ่งจะสร้างคำสั่งการป้อนค่าเครื่องอัดรีดอย่างเหมาะสมตามระยะทางระหว่างการเคลื่อนที่,ความเร็วของหุ่นยนต์และความเร่งของหุ่นยนต์ สามารถประมาณได้ว่าการป้อนเครื่องอัดรีดถูกขับเคลื่อนด้วยผลลัพธ์อนาล็อกเฉพาะจากหุ่นยนต์ควบคุม (ตัวเลขผลลัพธ์อนาล็อก 5 ในตัวอย่างนี้)
def new_move(self, pose1, pose2):
if pose1 isNone:
return
def Calculate_Time(Dist, Vmax, Amax):
'''Calculate the time to move Dist with Amax acceleration and Vmax speed'''
tacc = Vmax/Amax;
Xacc = 0.5*Amax*tacc*tacc;
if Dist <= 2*Xacc:
# Vmax is not reached
tacc = sqrt(Dist/Amax)
Ttot = tacc*2
else:
# Vmax is reached
Xvmax = Dist - 2*Xacc
Tvmax = Xvmax/Vmax
Ttot = 2*tacc + Tvmax
return Ttot
add_material = self.NEW_E_LENGTH - self.LAST_E_LENGTH
self.LAST_E_LENGTH = self.NEW_E_LENGTH
if add_material > 0:
distance_mm = norm(subs3(pose1.Pos(), pose2.Pos()))
# calculate movement time in seconds
time_s = Calculate_Time(distance_mm, self.SPEED_MMS, self.ACCEL_MMSS)
# add material
self.setDO(5, (add_material/time_s))
else:
# DO not add material
self.setDO(5,0)
สุดท้าย, พวกเราจำเป็นต้องกระตุ้นคำสั่ง new_move ของแต่ละคำแนะนำการเคลื่อนที่ใหม่ พวกเราสามารถเพิ่มกาเรียกนี้ตั้งแต่เริ่มต้นของคำสั่ง MoveL:
def MoveL(self, pose, joints, conf_RLF=None):
"""Add a linear movement"""
self.new_move(self.LAST_POSE, pose) # used for 3D printing