Hey Panic mode, Really you are making some big jokes here.
QuoteI rarely read long posts
"you won't read lengthy post and u will read half and u will get half of the info and start writing critcs by reading that half info. People really spend there time for writing codes and you r reading half and u r commenting on Time, Energy and Etc. Wise people will excel through work performance others through big mouth and talking rubbish without getting the full info . Anyway My point is not to argue with you or advise you. I respect forgeur for his reply . Since you asked me what is the logic problem. Again it shows you cant even read the code and understand. It seems you have to attend some classes or I am even ready to help you . I will explain for 3D palletizing logic problem here and solutions. which is really out of the topic. But I am happy to explain for you since you have asked.
;-----------------------------------------------------------------------------------------------------------------------------------
WHILE Height<=3
WHILE Breadth<=4
WHILE Length<=6
PICKUP_BOX();move from a box conveyor to preposition
;calculat postions
Palletize[Length,Breadth,Height]=Xdroppoint
Palletize[Length,Breadth,Height].x=Xdroppoint.x+boxlength
Palletize[Length,Breadth,Height].y=Xdroppoint.y+boxbreadth
Palletize[Length,Breadth,Height].z=Xdroppoint.z+boxheight
If you are using the above codes so. Then in 3d palletizeing it will move(palletize) diagonally upwards.
;-----------------------------------------------------------------------------------------------------------------------------------
If you wanna use the above style of code. It should be.
Palletize[Length,Breadth,Height]=Xdroppoint
Palletize[Length,Breadth,Height].x=Xdroppoint.x+((Length-1)*boxlength)
Palletize[Length,Breadth,Height].y=Xdroppoint.y+((Breadthth-1)*boxbreadth)
Palletize[Length,Breadth,Height].z=Xdroppoint.z+((Height-1)*boxheight
Then it will move or palletize orderly.
;-----------------------------------------------------------------------------------------------------------------------------------
If you wanna to use above style there is also another option. like this
WHILE Palletize_Height<=3
Palletize_Breadth=1
Palletize.Y = Part[1].Y;
Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height].Z = Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height].Z + Part_Height
WHILE Palletize_Breadth<=3
Palletize_Length=1
Palletize.X = Part[1].X;
Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height].Y = Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height].Y + Part_Breadth
WHILE Palletize_Length<=5
Pickpart()
LIN Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height]
Gripperopen()
Palletize_Length = Palletize_Length+1
Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height].X = Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height].X + Part_Length
ENDWHILE
Palletize_Breadth=Palletize_Breadth+1
ENDWHILE
Palletize_Height= Palletize_Height+1
ENDWHILE
;-----------------------------------------------------------------------------------------------------------------------------------
I have written in mz first line of reply.
QuoteI have selected tool, base, A and V above this prog. I havent mentioned in this part and POS Part is what i have Teached.
Which means that I have written a subprogram and used it here which is above and not mentioned here, for selecting my base and tool. Every robot programmer knows that we need to give tool and base. It's a basic stuff. Which cant be written in forum(here we are writing only to the topic mentioned, Not the whole programe). So please open your eyes and spend some time for respecting others by reading full reply. Moreover It's not a English forum to improve the english, The main point in this forum improve robot knowledge by sharing ideas. Smart people will get in a correct way, what i mean here.
My idea is not to hurt anyone or to demotivate anyone. So please take it in a postive way.
Again back to the topic
In
LIN Palletize[Palletize_Length, Palletize_Breadth, Palletize_Height]
1) I am declaring palletize as POS and other variables also in DAT file. So, If any emergenccy stop happens it will resume because the current values are stored in .DAT file. Is it ok, when a Block Select or a Reset, between the E-Stop and the restart happens With the above(the second or Third programe above in example) logic without asking the user for new start or continue. will it continue? My guess is, Since the values are stored in .DAT file, Even reset or blockselect happens it will continue(even Block Select or a Reset, between the E-Stop and the restart happens) from where it had left. But I am not sure ???.
2) I am declaring palletize as POS and other variables also in DAT file. If any fault happens will it resume because the current values are stored in .DAT file. If I wanna to move to a particular point in palletizing for Example Palletize[2,3,1]. Do any these options work or do anyone has better idea????????????
Option1)
Can I give this values directly and will it move to it because the position will be stored in the array (2,3,1) from previous cycles.
Option2)
is it possible by changing the values in .DAT file by
after or below the decleration of these three variables
IF(Palletize_Length==2 and Palletize_Breadth==3 and Palletize_Height==1) THEN
.
.
ENDIF
and move to the point?
Since I dont have a robot or offline simulator I am unable to check it. That's y am asking to the people who have ideas in working with it.
Thank you