--2D码垛和3D码垛--
local pos = {}
local GetProduct = p1 --取料点
local Suction = 1 --吸料端口
MovJ(J3,0) --J3轴抬到0的位置
SetU(0);SetT(0); --使用默认用户0工具0坐标系
--平面码垛--
function PLT_2D()
local Xhang,Ylie = 9,5 --码垛行、列数
SetPlt(1,p2,p3,p4,Xhang,Ylie) --设置码垛参数
while true do
--码垛方法1--
for Num = 1,Xhang*Ylie do
MArchP(GetProduct,0,10,10) --拱形移到取料点
DO(Suction,ON) --打开输出口吸料
print("Number=",Num)
local XX = (Num - 1)%Xhang + 1 --计算 Y 行 求余
local YY = (Num - 1)//Xhang + 1 --计算 X 行 求商的整数
pos = GetPlt(1,XX,YY)
MArchP(pos,0,10,10) --拱形移到码垛点(即放料点)
DO(Suction,OFF) --关闭输出口放料
end
--码垛方法2
--[[
for YY = 1,Ylie do
for XX = 1,Xhang do
MArchP(GetProduct,0,10,10) --拱形移到取料点
DO(Suction,ON) --打开输出口吸料
pos = GetPlt(1,XX,YY)
MArchP(pos,0,10,10) --拱形移到码垛点(即放料点)
DO(Suction,OFF) --关闭输出口放料
end
end
]]--
end
end
--空间码垛--
function PLT_3D()
local Xhang,Ylie,Zceng = 9,5,2 --码垛行、列、层数
SetPlt(1,p2,p3,p4,p5,Xhang,Ylie,Zceng) --设置码垛参数
while true do
--码垛方法1--
for ZZ = 1,Zceng do --空间的层数
for Num = 1,Xhang*Ylie do
MArchP(GetProduct,0,10,10) --拱形移到取料点
DO(Suction,ON) --打开输出口吸料
print("Number=",Num)
local XX = (Num - 1)%Xhang + 1 --计算 Y 行 求余
local YY = (Num - 1)//Xhang + 1 --计算 X 行 求商的整数
pos = GetPlt(1,XX,YY,ZZ)
if ZZ == Zceng then --如果ZZ是2,则是码垛第2层,那么角度+180度(-180度也可以,自己定正负号)
pos.c = pos.c + 180
end
MArchP(pos,0,10,10) --拱形移到码垛点(即放料点)
DO(Suction,OFF) --关闭输出口放料
end
end
pos.c = pos.c - 180 --把角度还原初始值
--码垛方法2
--[[
for ZZ = 1,Zceng do --层
for YY = 1,Ylie do --列
for XX = 1,Xhang do --行
MArchP(GetProduct,0,10,10) --拱形移到取料点
DO(Suction,ON) --打开输出口吸料
pos = GetPlt(1,XX,YY,ZZ)
if ZZ == Zceng then --如果ZZ是2,则是码垛第2层,那么角度+180度(-180度也可以,自己定正负号)
pos.c = pos.c + 180
end
MArchP(pos,0,10,10) --拱形移到码垛点(即放料点)
DO(Suction,OFF) --关闭输出口放料
end
end
end
pos.c = pos.c - 180 --把角度还原初始值
]]--
end
end
--平面码垛--
--PLT_2D()
--空间码垛--
PLT_3D()
LUA语言之AR Robot在2D_3D码垛中的应用
最新推荐文章于 2023-10-07 21:37:58 发布