02-16-2019, 09:59 PM
(本文最后修改:02-19-2019,01:36 AM byrakshithb174.编辑原因:更新信息
)
你好,
我正在使用ABB机器人进行3D打印项目。我已经讲过了3D打印文档关于如何修改后处理器代码以说明挤压值。本文档提出了挤出机电机速度控制的模拟输出。然而,我使用IRC5 DeviceNet的数字I/O与一些同步信号来实现材料挤压。我已经准备好了必要的硬件 我知道如何用ABB软件配置I/O
我想修改后处理器代码(ABB_RAPID_IRC5.py),只在调用Extruder()函数时包含一组围绕MoveL命令的特定命令。到目前为止,我做了以下修改:
当我做这个修改时,所有的MoveL命令都被这样的自定义代码行包围:
但是,我希望插入这些自定义代码行具体的Extruder()函数调用后的move命令。以roboDK生成的RAPID代码为例:
我只希望拳头MoveL被自定义代码行包围,而不是连续的MoveL命令。有人能帮我修改帖子来实现这一点吗?
PS:我正在使用ABB_RAPID_IRC5.py post文件的旧版本(不是实现模拟控制的新版本;虽然我可以访问,以及),因为我需要确切的E值从slic3r(未转换为ExtruderSpeed()函数)
任何帮助都将不胜感激!
我正在使用ABB机器人进行3D打印项目。我已经讲过了3D打印文档关于如何修改后处理器代码以说明挤压值。本文档提出了挤出机电机速度控制的模拟输出。然而,我使用IRC5 DeviceNet的数字I/O与一些同步信号来实现材料挤压。我已经准备好了必要的硬件 我知道如何用ABB软件配置I/O
我想修改后处理器代码(ABB_RAPID_IRC5.py),只在调用Extruder()函数时包含一组围绕MoveL命令的特定命令。到目前为止,我做了以下修改:
代码:
def MoveL(self, pose,关节,conf_RLF=None):
""" "添加一个线性运动""" "
目标= "
如果pose为None:
目标= ' CalcRobT ([% s, % s), % s, \ WObj: = % s)的% (angles_2_str(关节),extaxes_2_str(关节),自我。TOOLDATA self.WOBJDATA)
其他:
#过滤小动作
#如果自我。LAST_POSE不是None, pose也不是None:
# #如果新位置与上一个位置相同,跳过添加新移动
if distance(pose. pos (), self.LAST_POSE. pos ()) < 0.001 and pose_angle_between(pose, self.LAST_POSE) < 0.01:
#返回
#处理3D打印挤出机集成
# self.new_move(pose)(故意禁用)
如果conf_RLF为None:
conf_RLF = [0,0,0]
Cf1 = 0
Cf4 = 0
Cf6 = 0
如果关节不是None并且len(关节)>= 6:
Cf1 = math.floor(关节[0]/90.0)
Cf4 = math.floor(关节[3]/90.0)
Cf6 = math.floor(关节[5]/90.0)
[后,低臂,翻转]= conf_RLF
cfx = 4*REAR + 2*LOWERARM + FLIP
目标= ' [% s,[%, %, %, %我),% s]“% (pose_2_str(姿势),cf1, cf4, cf6,排名,extaxes_2_str(关节))
如果自我。ARC_ON:
# ArcL p100, v100, seam1, weld5 \Weave:= Weave 1, z10, gun1;
self.addline ('ArcL %s,%s,%s,%s,\Weave:=%s,%s,%s,\WObj:=%s;' % (target, self.SPEEDDATA, self.ARC_SEAMDATA, self.ARC_WELDDATA, self.ARC_WEAVEDATA, self.ZONEDATA, self.TOOLDATA, self.WOBJDATA))
elif自我。CLAD_ON:
self.addline ('CladL %s,%s,%s,%s,%s,\WObj:=%s;' % (target, self.SPEEDDATA, self.CLAD_DATA, self.ZONEDATA, self.TOOLDATA, self.WOBJDATA))
其他:
self.addline ('custom code line 1')
self.addline ('custom code line 2')
self.addline ('MoveL %s,%s,%s,%s,\WObj:=%s;' % (target, self.SPEEDDATA, self.ZONEDATA, self.TOOLDATA, self.WOBJDATA))
self.addline ('custom code line 3')
当我做这个修改时,所有的MoveL命令都被这样的自定义代码行包围:
代码:
自定义代码第1行
自定义代码第2行
MoveL命令
自定义代码第3行
但是,我希望插入这些自定义代码行具体的Extruder()函数调用后的move命令。以roboDK生成的RAPID代码为例:
代码:
挤出机(-0.800);
MoveL [[80.484, 81.324, 5.000), (0.000000, 0.000000, -1.000000, 0.000000), (1, - 1, 0, 1], [9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v35, z1, rdkTool, \ WObj: = rdkWObj;
MoveL [[80.484, 81.324, 0.600), (0.000000, 0.000000, -1.000000, 0.000000), (1, - 1, 0, 1], [9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v180, z1, rdkTool, \ WObj: = rdkWObj;
MoveL [[80.484, 81.324, 0.600), (0.000000, 0.000000, -1.000000, 0.000000), (1, - 1, 0, 1], [9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v180, z1, rdkTool, \ WObj: = rdkWObj;
MoveL [[80.484, 81.324, 0.200), (0.000000, 0.000000, -1.000000, 0.000000), (1, - 1, 0, 1], [9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v180, z1, rdkTool, \ WObj: = rdkWObj;
我只希望拳头MoveL被自定义代码行包围,而不是连续的MoveL命令。有人能帮我修改帖子来实现这一点吗?
PS:我正在使用ABB_RAPID_IRC5.py post文件的旧版本(不是实现模拟控制的新版本;虽然我可以访问,以及),因为我需要确切的E值从slic3r(未转换为ExtruderSpeed()函数)
任何帮助都将不胜感激!