Hey guys, If someone who has experience with fusion and openbuilds can help me wrap my head around this coordinate system you would be life saver. I attached an image of the project in fusion, one of it in openbuilds, and one of the gcode start. I'm setting up a custom machine that is essentially a normal xyz gantry but turned on its side to mill the ends of long aluminum extrusions. I built the machine setup in fusion with its origin on the work piece reference point (top corner of vise). In the fusion image, the machine is at its home next to all of the limit switches and it homes properly when I hit home all in openbuilds. The issue I'm having is that when I run the gcode the machine moves Y all the way to the bottom and hits its hard limit. I noticed the first move on the gcode is Y23.302 which seems to be too far. I'm confused on what coordinate system isn't setup properly and how to set the offset from machine home to move accurately to the work piece at the start of the gcode. This is for production use and will be running only this code constantly, so the goal is to be able to set up this offset so that machine can move to the workpiece from its home position without having to manually locate the bit before every job. It seems to be something that needs to be changed in fusion somewhere. It looks like in openbuilds the actual gcode is positioned all the way to the corner of the build area, which isn't right. It should be somewhere in the middle. Thanks for any help you guys can give!
Where have you set the origin for your CAM setup? The machine needs to be homed, then moved to that position and the WCS (G54) set to zero. That position will then be consistent provided that the machine has been homed. Homing sets the machine coordinate system (MCS).
Thanks for the help Misterg, I was able to set up the machine in a way where you start it, then home it, then run a short command to move the head to the starting point on the work piece with an offset that is adjustable and can be dialed in from where the home position is to wherever the workpiece is, set zero, then jobs are run off of this position. This way I'm able to remove the issue of finding the exact home point to work piece offset in fusion and remove the need for the machine to move all the way back to its home after every job.
I'm not sure if I'm misunderstanding your explanation, or if you're not quite understanding the process... The machine only needs to travel to the Home location once after power up - this is to set the machine coordinate system (MCS). Once done, the machine 'knows where it is' and any previously defined work coordinate systems (WCS) will be valid. This is completely separate from setting the reference point (origin for the WCS) that is also used for the CAM program: On the machine, you locate this once (using a probe, or manually), and set it as the WCS origin (e.g. for a machine with a fixed vice, this is often the top corner of the fixed jaw). In F360, you define the equivalent point in your machine model as the CAM WCS origin. If you have correctly modelled the stock and work-holding within F360, it 'knows' where the stock is relative to that reference point (the corner of the vice, say) and will generate GCode that reflects the position of the stock (relative to the vice, say) without you needing to know or calculate any offsets. At the end of the machining operation(s) you may want to retract the tool, or send it to a predefined position to allow the workpiece to be changed. This can be an arbitrary position - wherever is convenient; it doesn't need to be the 'Home' position. (G28 is useful for this, but *must* be defined before first use.) I'm happy to take a look at your F360 file (.f3d) if you wanted to post it. Apologies if I have misunderstood!
Sorry my explanation wasn't great. The idea is this machine will be running the same code over and over, the the process should be as fast as possible between runs. I did pretty much what you explained probably without the proper terminology lol. The short offset code just replaces the need to use a probe or manually jog it to the origin on every start up. Basically when I am first setting up the machine, the vise is getting clamped down and staying there indefinitely (haven't set the whole vise up yet, just got the code figured out). I will turn the machine on and home it. I then created a short gcode file that simply moves the machine from home to the origin for the WCS. I will jog the machine from home to the exact origin and plug these coordinates into this short gcode file. This file will never be changed as long as the vise never moves. Then I can run the actual cutting file without the need for the machine to go all the way back to home after every cut since this is where the start and end point would be if I generated the gcode to start from home. I can also just start the machine, home it, run the short code to position it, then run the cutting job. I need to eliminate the need to use a probe or manually position the machine to the work origin every time its started up. This way it is replying on the limit switches to know where it is, then the short codes knows where the wcs origin from home after having dialed it in. Hope this makes sense, kind of maybe a weird way of doing it but we will have production people running this and I want to keep things as simple and fast as possible for them. This method does however reply on the accuracy of the limit switches and how consistent the actual location is every time it is homed. Thank you for your explanation though as it did still clarify some things to me!
Yes, that's how it works - once you set a workplace coordinate system zero the controller remembers where that is relative to the home position. So, home - go to workplace zero - run job. Actually, if you have a fixture (like your vice), you can skip the "go to workplace zero" step if there is a safe path to your starting position - your controller knows where it is as soon as you home the machine. Alex.