Community
Fusion Manufacture
Talk shop with the Fusion (formerly Fusion 360) Manufacture Community. Share tool strategies, tips, get advice and solve problems together with the best minds in the industry.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MultiCAM post generating odd K values

8 REPLIES 8
Reply
Message 1 of 9
ajepsonVPFWR
458 Views, 8 Replies

MultiCAM post generating odd K values

Using the standard MultiCAM iso post, and noticed an issue just before I was going to run a surfacing program. It's a fairly straightforward parallel surfacing path that simulates and looks fine in Fusion. The tiny preview on the pendant looked off just as I was about to start cutting, so I decided to take a closer look and back plot the G code. A lot of the linking moves are G2 and G3 arcs using I and J values which plot fine, but there are some lines with a K value instead, and those Z moves are large enough that they would crash the bit right through the part and the table.  Stock is only .5" thick, stepovers are .06", yet most of the K values are >2-20". Using a different post processor eliminates the odd K values, so it's likely something in the MultiCAM post, but coding isn't something I want to be guessing with. 

I think this bit of code is what is calculating the circular move values

// circular output
var iOutput = createReferenceVariable({prefix:"I"}, xyzFormat);
var jOutput = createReferenceVariable({prefix:"J"}, xyzFormat);
var kOutput = createReferenceVariable({prefix:"K"}, zFormat);

var gMotionModal = createModal({force:true}, gFormat); // modal group 1 // G0-G3, ...
var gPlaneModal = createModal({onchange:function () {gMotionModal.reset();}}, gFormat); // modal group 2 // G17-19
var gAbsIncModal = createModal({}, gFormat); // modal group 3 // G90-91
var gCycleModal = createModal({force:true}, gFormat); // modal group 9 // G81, ...

And this is some of the code that I'm trying to fix

N66770 G1 X10.9526 Z0.0672
N66775 G1 X11.0474 Z0.0609
N66780 G1 X11.5249 Z0.0297
N66785 G18
N66790 G3 X11.8984 Z0.0175 I0.3988 K6.5107
N66795 G1 X16.4036 Z0.0174
N66800 G3 X16.8406 Z0.0374 I0.0214 K4.3185
N66805 G1 X17.0397 Z0.0581
N66810 G3 X17.7949 Z0.1522 I-2.0408 K19.4507
N66815 G2 X18.4138 Z0.0237 I-1.9629 K-11.0092
N66820 G1 X18.4352 Z0.0207
N66825 G1 X18.459 Z0.0184
N66830 G1 X18.4793 Z0.0175
N66835 G1 X19.3133 Z0.0174
N66840 G1 X19.3413 Z0.0181
N66845 G1 X19.3672 Z0.02
N66850 G1 X19.3803 Z0.0186
N66855 G1 X19.3991 Z0.0175
N66860 G1 X19.4406 Z0.0176
N66865 G1 X19.4562 Z0.0187
N66870 G1 X19.472 Z0.0175
N66875 G1 X19.691 Z0.0174
N66880 G1 X19.6929 Z0.0173
N66885 G1 X19.6947 Z0.0168
N66890 G1 X19.6965 Z0.0161
N66895 G1 X19.6982 Z0.0154
N66900 G1 X19.7001 Z0.015
N66905 G1 X19.702 Z0.0148
N66910 G17
N66915 G3 Y19.4817 J0.0312
N66920 G1 X19.7001 Z0.015
N66925 G1 X19.6982 Z0.0154
N66930 G1 X19.6965 Z0.0161
N66935 G1 X19.6947 Z0.0168
N66940 G1 X19.6929 Z0.0173
N66945 G1 X19.691 Z0.0174
N66950 G1 X19.5118 Z0.0175
N66955 G18
N66960 G2 X19.4515 Z0.0181 I-0.0157 K1.583
N66965 G1 X19.431 Z0.0174
N66970 G1 X18.5931 Z0.0176
N66975 G2 X18.4913 Z0.0294 I0.0082 K0.5126
N66980 G3 X18.051 Z0.1229 I-2.0291 K-8.4774
N66985 G2 X17.3641 Z0.044 I-2.5394 K19.0843
N66990 G2 X16.8269 Z0.0175 I-0.5741 K6.1702
N66995 G1 X11.4238
N67000 G2 X11.09 Z0.0292 I0.0237 K5.4436
N67005 G1 X10.751 Z0.0525
N67010 G1 X10.5916 Z0.0243
N67015 G1 X10.5652 Z0.0207
N67020 G1 X10.5387 Z0.0184
N67025 G1 X10.5119 Z0.0174
N67030 G1 X10.151 Z0.0175
N67035 G1 X10.1377 Z0.0186
N67040 G1 X9.9318 Z0.044

 Any help or insight would be appreciated

Labels (2)
8 REPLIES 8
Message 2 of 9
will_1
in reply to: ajepsonVPFWR

Hi @ajepsonVPFWR ,

 

Have you tried this at the actual machine? Even just in the air. Your z values and K values are inverted on this machine so I am not sure what a backplotter is going to do with that kind of data.

 

You mention that some of the z moves are bad. Could you provide the details about which z moves these are?

 

Thanks,

Will

Message 3 of 9
ajepsonVPFWR
in reply to: will_1

Hi Will, 

 

I'm hesitant to try this on the machine, even as an air cut, because of the implications of a direct crash between the spindle and the table. There's a few quirks with MultiCAM routers that make me more hesitant than I am around other CNC machines.

 

One of the biggest differences I've noticed with MultiCAM is the inverted Z values are intentional and also necessary to run properly with their controller. The machine always needs to have Z0 set at the top of the stock, with positive Z values plunging the bit downwards, and negative values for retractions. Setting the stock bottom and the spoilboard surface as Z0 would be preferable, but MultiCAM has gone out of their way to discourage anyone using that workflow on their machines. 

 

Another hesitation is because our router is setup with the MultiCAM pendant as the only means of starting and stopping a program. In an effort to be user friendly, there's no way to view or step through G code line by line on the machine either, just a play button that starts code from the beginning, or a proximity restart feature that guesses where to start mid program, based on the gantry position. The feed and speed overrides are also quite clunky to use in a situation like this, which all combine to make troubleshooting code on the machine very cumbersome, and potentially risky as well. 

 

The Z moves I was referring to are the ones involving an I and K value, preceded by G18, that correspond to the large circular arc movements in ZX planes. When I manually edited a few lines of code and back plotted the results, deleting I and K from a line deletes those circles, and just leaves a gap where a different arc value could fit in perfectly. See attached screenshots for visuals. I also realized I made an error in assuming these were the arcs from the linking moves, those appear to be fine, and these I and K values are part of the surfacing path. I wonder if it's possible that the post processor is calculating certain G2 and G3 moves incorrectly because of MultiCAM's convoluted need to invert Z values. It would explain why a G2 and G3 arcs plot as intended in the XY planes, but not always in XZ or YZ planes. 

Message 4 of 9
will_1
in reply to: ajepsonVPFWR

Hi @ajepsonVPFWR ,

 

I am not confident the backplotter takes into account the inverted Z. I don't think we can use the backplotter as a measure of whether or not the post is right or wrong. (Unless it is a Multicam back plotter.)

 

The post is inverting the K values in addition to the z values which makes sense to me. It is possible that the G2 and G3 need to be inverted. You can try this out if you want.

 

The quick solution is to get rid of all arcs that aren't in the XY plane.

 

You can do this by changing...

 

allowedCircularPlanes = undefined// allow any circular motion
 
... to this ....
 
allowedCircularPlanes = 1 << PLANE_XY; // allow XY circular motion
 
.. in the post processor.
 
Thanks,
Will
 
Message 5 of 9
ajepsonVPFWR
in reply to: will_1

Hi @will_1 

 

You're likely right about the backplotter not being exact, I'm only counting on it to visualize G code moves relative to one and other, and pinpointing the I and K errors. 

I've tried inverting the I and K values manually, and that solves the problem completely. When it comes to modifying the post config, I'm stuck on how to edit with the proper syntax though. 

// circular output
var iOutput = createReferenceVariable({prefix:"I"}, xyzFormat);
var jOutput = createReferenceVariable({prefix:"J"}, xyzFormat);
var kOutput = createReferenceVariable({prefix:"K"}, zFormat);

var gMotionModal = createModal({force:true}, gFormat); // modal group 1 // G0-G3, ...

Would iOutput and kOutput need to change directly, or does the variable for G2 and G3 need to change?

 

Altering the config to (allowedCircularPlanes = 1 << PLANE_XY; // allow XY circular motion) also mostly fixes the problem, although it would be nice to keep XZ and YZ arcs if at all possible. 

 

While I'm trying to figure out other little hiccups to fine tune in the post config, is it possible to modify the F value such that the value is divided by 60? In addition to inverting Z values, MultiCAM also based feed rates on inches per second.

var feedFormat = createFormat({decimals:(unit == MM ? 1 : 2)});

 

Message 6 of 9
will_1
in reply to: ajepsonVPFWR

Hi @ajepsonVPFWR ,

 

If you add the "scale" parameter to the format you can achieve what you are asking. See "zFormat" as an example.

 

Thanks,

Will

Message 7 of 9
ajepsonVPFWR
in reply to: will_1

Hi @will_1 

 

I was able to add the scale parameter without issues to adjust feedrates, but I get an error when I did the same this to the I and K variables, and Fusion warns that it's an invalid processor when I try to load that new version. Is there a different way to add in "scale"

 

// circular output
var iOutput = createReferenceVariable({prefix:"I"}, xyzFormat), forceDecimal:true, scale:-1});
var jOutput = createReferenceVariable({prefix:"J"}, xyzFormat);
var kOutput = createReferenceVariable({prefix:"K"}, zFormat), forceDecimal:true,scale:-1}); 

Message 8 of 9
will_1
in reply to: ajepsonVPFWR

Hi @ajepsonVPFWR ,

 

It looks like you are maybe adding "format" information to a "reference variable". You might be able to add the format information to the reference variable long hand (I actually have not tried) instead of the format variable itself but it might be simpler to create separate formats. The point is that the scale parameter is available at the format level so that is where it should be added. My suggestion is that you create new formats for I and K and use them when you create the I and K reference variables.

 

Thanks,

Will

Message 9 of 9
Anonymous
in reply to: ajepsonVPFWR

Just clarifying for future readers:

"The machine always needs to have Z0 set at the top of the stock"
Untrue. Z0 can be top, bottom, or any other Z value.

"In an effort to be user friendly, there's no way to view or step through G code line by line on the machine either, just a play button that starts code from the beginning"
Untrue. The Job Console can do this and much more.

You may need to upgrade your software to v4

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Technology Administrators


Autodesk Design & Make Report