v2.9 and not the perpendicularity of X and Y
- abs32
- Away
- Senior Member
-
Less
More
- Posts: 51
- Thank you received: 0
21 Nov 2025 10:13 - 21 Nov 2025 10:16 #338875
by abs32
Replied by abs32 on topic v2.9 and not the perpendicularity of X and Y
But how to correctly write the value of one of the parameters in the settings? If earlier I could provide in a hal file
setp relkins.adjX.Y0 0
now it's an attempt to indicate
setp matrixkinx.C_xy 0
leads to abortion program launch
Through HalShow, the command setp matrixkinx.C_xy 0 is executed normally.
setp relkins.adjX.Y0 0
now it's an attempt to indicate
setp matrixkinx.C_xy 0
leads to abortion program launch
Through HalShow, the command setp matrixkinx.C_xy 0 is executed normally.
Last edit: 21 Nov 2025 10:16 by abs32.
Please Log in or Create an account to join the conversation.
- abs32
- Away
- Senior Member
-
Less
More
- Posts: 51
- Thank you received: 0
21 Nov 2025 10:20 - 21 Nov 2025 10:21 #338876
by abs32
Replied by abs32 on topic v2.9 and not the perpendicularity of X and Y
But another problem immediately appeared!
when you try to run a regular program, errors will appear
about the release of a program for A and B positive limits!
I don’t have A and B axles, but for 0-4 engines all the limits are set correctly
XXYYZ!
when you try to run a regular program, errors will appear
about the release of a program for A and B positive limits!
I don’t have A and B axles, but for 0-4 engines all the limits are set correctly
XXYYZ!
Last edit: 21 Nov 2025 10:21 by abs32.
Please Log in or Create an account to join the conversation.
- Aciera
-
- Offline
- Administrator
-
Less
More
- Posts: 4587
- Thank you received: 2035
21 Nov 2025 10:28 #338877
by Aciera
Replied by Aciera on topic v2.9 and not the perpendicularity of X and Y
setting maxkins paramter values certainly works for me.
Example using 'HALCMD' entry in the [HAL] section of the inifile:
parameter values can also be changed during run time using an executable Mcode that calls 'halcmd' tool but doing so on a kinematics parameter may lead to joint following errors.
Example using 'HALCMD' entry in the [HAL] section of the inifile:
parameter values can also be changed during run time using an executable Mcode that calls 'halcmd' tool but doing so on a kinematics parameter may lead to joint following errors.
Attachments:
Please Log in or Create an account to join the conversation.
- abs32
- Away
- Senior Member
-
Less
More
- Posts: 51
- Thank you received: 0
21 Nov 2025 11:43 - 21 Nov 2025 11:48 #338879
by abs32
Replied by abs32 on topic v2.9 and not the perpendicularity of X and Y
We figured out the setting of the parameters, thank you. The program starts normally. Home search is normal.
But running any g-code program fails. Moreover, an attempt to move manually (with arrows on the keyboard) leads to the fact that only each motor moves separately - i.e. not two X X motors, but one X motor, which immediately leads to an accident.
#2025-11-20 для 2.9.4
#KINEMATICS = trivkins coordinates=XXYYZ
KINEMATICS=matrixkins
Where exactly and how exactly can we now indicate that we have 5 engines and an XXYYZ circuit?
ini-file:
[KINS]
JOINTS = 5
#2025-11-20 для 2.9.4
#KINEMATICS = trivkins coordinates=XXYYZ
KINEMATICS=matrixkins
HALCMD = setp matrixkinx.C_xy 0 # Skew Y axis towards X axis
[HAL]
HALFILE = 4.hal
POSTGUI_HALFILE = postgui_call_list.hal
[TRAJ]
COORDINATES = XXYYZ
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 25.00
MAX_LINEAR_VELOCITY = 250.00
But running any g-code program fails. Moreover, an attempt to move manually (with arrows on the keyboard) leads to the fact that only each motor moves separately - i.e. not two X X motors, but one X motor, which immediately leads to an accident.
#2025-11-20 для 2.9.4
#KINEMATICS = trivkins coordinates=XXYYZ
KINEMATICS=matrixkins
Where exactly and how exactly can we now indicate that we have 5 engines and an XXYYZ circuit?
ini-file:
[KINS]
JOINTS = 5
#2025-11-20 для 2.9.4
#KINEMATICS = trivkins coordinates=XXYYZ
KINEMATICS=matrixkins
HALCMD = setp matrixkinx.C_xy 0 # Skew Y axis towards X axis
[HAL]
HALFILE = 4.hal
POSTGUI_HALFILE = postgui_call_list.hal
[TRAJ]
COORDINATES = XXYYZ
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 25.00
MAX_LINEAR_VELOCITY = 250.00
Last edit: 21 Nov 2025 11:48 by abs32.
Please Log in or Create an account to join the conversation.
- Aciera
-
- Offline
- Administrator
-
Less
More
- Posts: 4587
- Thank you received: 2035
21 Nov 2025 12:17 #338883
by Aciera
Replied by Aciera on topic v2.9 and not the perpendicularity of X and Y
'matrixkins.comp' would need to be modified to map your tandem joints to the approriate axes.
Please attach your current ini file so I can have a look.
Please attach your current ini file so I can have a look.
Please Log in or Create an account to join the conversation.
- abs32
- Away
- Senior Member
-
Less
More
- Posts: 51
- Thank you received: 0
21 Nov 2025 12:53 #338890
by abs32
Replied by abs32 on topic v2.9 and not the perpendicularity of X and Y
hal+ini
Attachments:
Please Log in or Create an account to join the conversation.
- Aciera
-
- Offline
- Administrator
-
Less
More
- Posts: 4587
- Thank you received: 2035
21 Nov 2025 13:02 #338892
by Aciera
Replied by Aciera on topic v2.9 and not the perpendicularity of X and Y
Attachments missing
Please Log in or Create an account to join the conversation.
- abs32
- Away
- Senior Member
-
Less
More
- Posts: 51
- Thank you received: 0
21 Nov 2025 13:03 - 22 Nov 2025 10:12 #338893
by abs32
Replied by abs32 on topic v2.9 and not the perpendicularity of X and Y
file
Attachments:
Last edit: 22 Nov 2025 10:12 by abs32.
Please Log in or Create an account to join the conversation.
- abs32
- Away
- Senior Member
-
Less
More
- Posts: 51
- Thank you received: 0
21 Nov 2025 13:16 - 21 Nov 2025 13:24 #338894
by abs32
Replied by abs32 on topic v2.9 and not the perpendicularity of X and Y
probably, this is influenced only by that part of ini where the formula XXYYZ and then something like that? -
// Apply inverse matrix transform to the 3 cartesian coordinates
pos->tran.x = invdet * ( (e * i - f * h) * j[0]
+(c * h - b * i) * j[2]
+(b * f - c * e) * j[4]);
pos->tran.y = invdet * ( (f * g - d * i) * j[0]
+(a * i - c * g) * j[2]
+(c * d - a * f) * j[4]);
pos->tran.z = invdet * ( (d * h - e * g) * j[0]
+(b * g - a * h) * j[2]
+(a * e - b * d) * j[4]);
// Pass rest of axes as identity
//if (EMCMOT_MAX_JOINTS > 3) pos->a = j[3];
//if (EMCMOT_MAX_JOINTS > 4) pos->b = j[4];
if (EMCMOT_MAX_JOINTS > 5) pos->c = j[5];
if (EMCMOT_MAX_JOINTS > 6) pos->u = j[6];
if (EMCMOT_MAX_JOINTS > 7) pos->v = j[7];
if (EMCMOT_MAX_JOINTS > 8) pos->w = j[8];
// Apply matrix transform to the 3 cartesian coordinates
j[0] = pos->tran.x * a + pos->tran.y * b + pos->tran.z * c;
j[1] = pos->tran.x * a + pos->tran.y * b + pos->tran.z * c;
j[2] = pos->tran.x * d + pos->tran.y * e + pos->tran.z * f;
j[3] = pos->tran.x * d + pos->tran.y * e + pos->tran.z * f;
j[4] = pos->tran.x * g + pos->tran.y * h + pos->tran.z * i;
// Pass rest of axes as identity
// if (EMCMOT_MAX_JOINTS > 3) j[3] = pos->a;
//if (EMCMOT_MAX_JOINTS > 4) j[4] = pos->b;
if (EMCMOT_MAX_JOINTS > 5) j[5] = pos->c;
if (EMCMOT_MAX_JOINTS > 6) j[6] = pos->u;
if (EMCMOT_MAX_JOINTS > 7) j[7] = pos->v;
if (EMCMOT_MAX_JOINTS > 8) j[8] = pos->w;
?
This is certainly not a one-size-fits-all solution with automatic situation recognition, but for a specific situation
// Apply inverse matrix transform to the 3 cartesian coordinates
pos->tran.x = invdet * ( (e * i - f * h) * j[0]
+(c * h - b * i) * j[2]
+(b * f - c * e) * j[4]);
pos->tran.y = invdet * ( (f * g - d * i) * j[0]
+(a * i - c * g) * j[2]
+(c * d - a * f) * j[4]);
pos->tran.z = invdet * ( (d * h - e * g) * j[0]
+(b * g - a * h) * j[2]
+(a * e - b * d) * j[4]);
// Pass rest of axes as identity
//if (EMCMOT_MAX_JOINTS > 3) pos->a = j[3];
//if (EMCMOT_MAX_JOINTS > 4) pos->b = j[4];
if (EMCMOT_MAX_JOINTS > 5) pos->c = j[5];
if (EMCMOT_MAX_JOINTS > 6) pos->u = j[6];
if (EMCMOT_MAX_JOINTS > 7) pos->v = j[7];
if (EMCMOT_MAX_JOINTS > 8) pos->w = j[8];
// Apply matrix transform to the 3 cartesian coordinates
j[0] = pos->tran.x * a + pos->tran.y * b + pos->tran.z * c;
j[1] = pos->tran.x * a + pos->tran.y * b + pos->tran.z * c;
j[2] = pos->tran.x * d + pos->tran.y * e + pos->tran.z * f;
j[3] = pos->tran.x * d + pos->tran.y * e + pos->tran.z * f;
j[4] = pos->tran.x * g + pos->tran.y * h + pos->tran.z * i;
// Pass rest of axes as identity
// if (EMCMOT_MAX_JOINTS > 3) j[3] = pos->a;
//if (EMCMOT_MAX_JOINTS > 4) j[4] = pos->b;
if (EMCMOT_MAX_JOINTS > 5) j[5] = pos->c;
if (EMCMOT_MAX_JOINTS > 6) j[6] = pos->u;
if (EMCMOT_MAX_JOINTS > 7) j[7] = pos->v;
if (EMCMOT_MAX_JOINTS > 8) j[8] = pos->w;
?
This is certainly not a one-size-fits-all solution with automatic situation recognition, but for a specific situation
Last edit: 21 Nov 2025 13:24 by abs32.
Please Log in or Create an account to join the conversation.
- abs32
- Away
- Senior Member
-
Less
More
- Posts: 51
- Thank you received: 0
21 Nov 2025 13:41 #338898
by abs32
Replied by abs32 on topic v2.9 and not the perpendicularity of X and Y
Внес исправления как написал, скомпилировал, запустил = РАБОТАЕТ! Ай да Пушкин, ай да сукин сын!
Made corrections as written, compiled, launched = WORKS! Oh yes Pushkin,
Made corrections as written, compiled, launched = WORKS! Oh yes Pushkin,
Please Log in or Create an account to join the conversation.
Time to create page: 0.100 seconds