andreychip Posted April 27, 2018 Posted April 27, 2018 Hello. We purchased PowerPmacNc16-SDK and we need to add 2 axes. How can we add the linear axis W (on one axis with the Z axis) and the circular axis B to the x / y / z axis transformation matrix? . Thank you Help.
Jay Lee Posted April 27, 2018 Posted April 27, 2018 Not really sure what you want to achieve. if you just want to add display on NC interface, then please change the content of PowerPmacNC.ini file and save. in that file, you need to change AxisLabels and MotorNumbers to match your axis names. Transformation matrices are usually used with G code with variable values, but not axis values. it seems to be a 5-axis system but it's not clear how it works. Please tell more about the details you want to achieve.
andreychip Posted April 28, 2018 Author Posted April 28, 2018 Not really sure what you want to achieve. if you just want to add display on NC interface, then please change the content of PowerPmacNC.ini file and save. in that file, you need to change AxisLabels and MotorNumbers to match your axis names. Transformation matrices are usually used with G code with variable values, but not axis values. it seems to be a 5-axis system but it's not clear how it works. Please tell more about the details you want to achieve. I know how to add an axis. In this case, I do not understand how to add another coordinate axis to the transformation matrix 3x3 (X / Y / Z) or it must be added to another matrix. In the documentation, this is poorly described.
curtwilson Posted May 1, 2018 Posted May 1, 2018 In the transformation matrix for a coordinate system, all axes have a scaling term (Diag) and an offset term (Bias). This includes the W and B axes you want to add. There are four sets of axis "triplets" -- X/Y/Z, U/V/W, XX/YY/ZZ, and UU/VV/WW -- that have 3x3 transformations consisting of the 3 diagonal terms already mentioned plus 6 off-diagonal terms (e.g. XYZ[m]). What no one here understands is what you are trying to do by "add[ing] another coordinate axis to the transformation matrix 3x3 (X / Y / Z)". I doesn't seem to make any geometric sense to us. The User's Manual chapter "Setting Up Coordinate Systems" shows the full transformation matrix structure.
mbalentine Posted May 2, 2018 Posted May 2, 2018 In the transformation matrix for a coordinate system, all axes have a scaling term (Diag) and an offset term (Bias). This includes the W and B axes you want to add. There are four sets of axis "triplets" -- X/Y/Z, U/V/W, XX/YY/ZZ, and UU/VV/WW -- that have 3x3 transformations consisting of the 3 diagonal terms already mentioned plus 6 off-diagonal terms (e.g. XYZ[m]). What no one here understands is what you are trying to do by "add[ing] another coordinate axis to the transformation matrix 3x3 (X / Y / Z)". I doesn't seem to make any geometric sense to us. The User's Manual chapter "Setting Up Coordinate Systems" shows the full transformation matrix structure. I believe he is asking: A) How to add a 4th (rotary) axis B) How to accommodate a compound (or redundant) Z axis A) For the rotary axis, isn't this usually handled in a CAM software package? (Suitable POST processor assumed) Otherwise the CNC machine can be treated as a 4 DOF kinematic machine, which is essentially what the CAM software does. B) I suspect his machine has a 'Major' & 'minor' Z axis arrangement where the W axis might move the entire head in the Z direction and the (z) axis extends & retracts the spindle (also in the Z direction) so that "Z" = W + (z). Could this be handled as: (???) 1) Make Z a phantom axis with feedback Z=W+(z) so that the T-matrix remains intact. Phantom not controlling, no cascade - just a buffer between the machine Z command and two other active axes such as DD & EE. 2) An algorithm to distribute the Z motion command over the two axes. The W axis might be slower than the (z), but who knows. (spectral decomposition comes to mind, linear proportioning would be simplest.) Or perhaps I am completely missing his point.... It has happened before. Maybe all he wants to do is add some screen art.
andreychip Posted May 3, 2018 Author Posted May 3, 2018 I believe he is asking: A) How to add a 4th (rotary) axis B) How to accommodate a compound (or redundant) Z axis A) For the rotary axis, isn't this usually handled in a CAM software package? (Suitable POST processor assumed) Otherwise the CNC machine can be treated as a 4 DOF kinematic machine, which is essentially what the CAM software does. B) I suspect his machine has a 'Major' & 'minor' Z axis arrangement where the W axis might move the entire head in the Z direction and the (z) axis extends & retracts the spindle (also in the Z direction) so that "Z" = W + (z). Could this be handled as: (???) 1) Make Z a phantom axis with feedback Z=W+(z) so that the T-matrix remains intact. Phantom not controlling, no cascade - just a buffer between the machine Z command and two other active axes such as DD & EE. 2) An algorithm to distribute the Z motion command over the two axes. The W axis might be slower than the (z), but who knows. (spectral decomposition comes to mind, linear proportioning would be simplest.) Or perhaps I am completely missing his point.... It has happened before. Maybe all he wants to do is add some screen art. Thank you. You described everything correctly. I will clarify my question a little. Is it possible to add a correction to the W axis using such an expression? tsel1; // Transform 1 selected as active Tdet= tinit(1); // Initialize Transform 1 Tdata[1].Bias[6] = XdOffset; // Set X offset term Tdata[1].Bias[7] = YdOffset;// Set Y offset term Tdata[1].Bias[8] = ZdOffset; Tdata[1].Bias[5]=WlOffset; // Is this expression true? Thanks in advance
mbalentine Posted May 4, 2018 Posted May 4, 2018 Thank you. You described everything correctly. I will clarify my question a little. Is it possible to add a correction to the W axis using such an expression? tsel1; // Transform 1 selected as active Tdet= tinit(1); // Initialize Transform 1 Tdata[1].Bias[6] = XdOffset; // Set X offset term Tdata[1].Bias[7] = YdOffset;// Set Y offset term Tdata[1].Bias[8] = ZdOffset; Tdata[1].Bias[5]=WlOffset; // Is this expression true? Thanks in advance OK, A picture is SO valuable :-) 1) Tdata[1].Bias[5]=WlOffset; // Is this expression true? -- Well, yes, but not in the context I believe you are asking. Lets say you define: #5->2000W+28 This would write kw=2000 and dw=28 so the answer to your question is yes But will this value interact with the XYZ T-matrix? NO Referring to the July 2016 Users Manual: the axis def matrix on pp 466 and the T-matrix on pp484. Note how the ka, kb, kc axes are single elements on the diagonal, but the kx, ky, kz elements are surrounded by dot products kxy, kyz, kzx, etc. PMAC will treat these 3x3 sub matrices as a 'self contained' transformation. How? That is where the IJK vector comes into use. Note that I, J, K (II, JJ, KK) are skipped over in the axis definitions. They are reserved to define rotation of the XYZ coordinate frame. As you already know, the IJK vector is used to define the rotation of the XYZ T-matrix. This is hard coded into PMAC firmware. It is so common to do a rotation in XYZ space that this very basic kinematic transform is built in. Your machine is an XYZ machine. You can indeed use the built in XYZ T-matrix functionality. And an offset in d5 will apply to the W axis. (Easiest done in the axis def statement) Lets say your machine has 5000 cts/mm with 200mm of travel in W and 2000 cnts/mm with 1000mm travel in Z, but you want to include the W axis as part of the XYZ T-matrix so you can take advantage of basic CNC coordinate rotations and circular interpolation, etc. over the full travel capacity in Z. I think(?) you could just define motors #4->(2000*1000/1200)Z+d4 //assume #4 is driving axis Z #5->(5000*200/1200)Z+d5 //assume #5 is driving axis W This will linearly proportion any Z axis command over the two motors, but is probably too simplistic a solution for real life. You probably have significant mechanical constraints to consider. Another approach would be to do something like: #4->2000DD+d12 #5->5000EE+d13 you will need to use a dummy or phantom axis for Z, and implement some algorithm to distribute the Z command over the two axis. See the document on spectral decomposition from Kurt for one idea when two axes of significantly different bandwidths complement each other. Very. Cool. (Also a Youtube video). ODT - please correct my omissions, lack of detail, and outright errors.
andreychip Posted May 4, 2018 Author Posted May 4, 2018 Thanks, mbalentine. I'll write when I finish the machine.
Recommended Posts