Lathe Rigid tapping G33.1 with tailstock as W axis
- alkabal
- Offline
- Platinum Member
Less
More
- Posts: 476
- Thank you received: 52
07 Jan 2020 16:01 - 07 Jan 2020 16:02 #154219
by alkabal
Lathe Rigid tapping G33.1 with tailstock as W axis was created by alkabal
Hi
My name is Aurelien from France.
Sorry to ask here, i'm machinekit user but i does not foud help or information from machinekit group untill now, and i think you have do much work for CNC feature.
I knwo that the code is now many different but for this parts i have check and "all" seems to be the same.
I have a lathe (mechanicca cortini H105s) and i have retrofited this one with some beaglebone, driver new stepper etc.
The things that make me asking help is the manual tailstock changed as motorised stepper tailstock.
major settings :
[DISPLAY]
DISPLAY = axis
LATHE = 1
GEOMETRY = XZW
[TRAJ]
COORDINATES = X Z W
AXES = 9
JOINTS = 2
# W axis
[AXIS_8]
TYPE = LINEAR
Tailstock seems to work fine for standard command.
But i have do some test for show what is work and not work (turning speedle manually and simulating spindle-at-speed to 1) :
-G33 W-15.5 K1 work like a charm in G18 so is ok
-G33.1 W-15.5 K1 does nothing (i can see in Axis GUI after other command the status is like "run program" but this one change nothing)
-G73 W-15.5 R-10 Q1 need to be in G17.1 plane : lathe with XZW ????
-G81 G82 G83 need to be in G17.1 plane : lathe with XZW ????
-G76 "cannot move rotary axes with G76" off course this is fully out of interest for a lathe with W, but W is linear and i have do this only for test all synchronised stuff^^
I have check source code for G33.1 and i have see some difference vs G33 regarding to parsing value
I have try to patch all the needed file in /src/emc/: now i can see in Axis GUI the status is like "run program" but motor don't move.
After more check in the source tree i think also need to patch some other file like tc.c tp.c but i have some trouble understanding how to do this for stuff like "xyz/uVec" any help are welcome.
github.com/LinuxCNC/linuxcnc/blob/368e2f...src/emc/tp/tc.c#L395
Unfortunatly i think they are other problem, i have read that is not possible for a lathe to wait spindle at 0 rpm before reversing direction or maybee this is not an issue for the stuff i likle to add ???
groups.google.com/forum/#!searchin/machi...r83-dXY/59B3pXN_GQAJ
en.industryarena.com/forum/reverse-lathe-turn-m3-m4--67203.html
forum.linuxcnc.org/26-turning/32523-lathe-rigid-tapping-g33-1
I really like to know what do you think about that ?
Br, and happy new year to all.
My name is Aurelien from France.
Sorry to ask here, i'm machinekit user but i does not foud help or information from machinekit group untill now, and i think you have do much work for CNC feature.
I knwo that the code is now many different but for this parts i have check and "all" seems to be the same.
I have a lathe (mechanicca cortini H105s) and i have retrofited this one with some beaglebone, driver new stepper etc.
The things that make me asking help is the manual tailstock changed as motorised stepper tailstock.
major settings :
[DISPLAY]
DISPLAY = axis
LATHE = 1
GEOMETRY = XZW
[TRAJ]
COORDINATES = X Z W
AXES = 9
JOINTS = 2
# W axis
[AXIS_8]
TYPE = LINEAR
Tailstock seems to work fine for standard command.
But i have do some test for show what is work and not work (turning speedle manually and simulating spindle-at-speed to 1) :
-G33 W-15.5 K1 work like a charm in G18 so is ok
-G33.1 W-15.5 K1 does nothing (i can see in Axis GUI after other command the status is like "run program" but this one change nothing)
-G73 W-15.5 R-10 Q1 need to be in G17.1 plane : lathe with XZW ????
-G81 G82 G83 need to be in G17.1 plane : lathe with XZW ????
-G76 "cannot move rotary axes with G76" off course this is fully out of interest for a lathe with W, but W is linear and i have do this only for test all synchronised stuff^^
I have check source code for G33.1 and i have see some difference vs G33 regarding to parsing value
I have try to patch all the needed file in /src/emc/: now i can see in Axis GUI the status is like "run program" but motor don't move.
After more check in the source tree i think also need to patch some other file like tc.c tp.c but i have some trouble understanding how to do this for stuff like "xyz/uVec" any help are welcome.
github.com/LinuxCNC/linuxcnc/blob/368e2f...src/emc/tp/tc.c#L395
Unfortunatly i think they are other problem, i have read that is not possible for a lathe to wait spindle at 0 rpm before reversing direction or maybee this is not an issue for the stuff i likle to add ???
groups.google.com/forum/#!searchin/machi...r83-dXY/59B3pXN_GQAJ
en.industryarena.com/forum/reverse-lathe-turn-m3-m4--67203.html
forum.linuxcnc.org/26-turning/32523-lathe-rigid-tapping-g33-1
I really like to know what do you think about that ?
Br, and happy new year to all.
Last edit: 07 Jan 2020 16:02 by alkabal.
Please Log in or Create an account to join the conversation.
- alkabal
- Offline
- Platinum Member
Less
More
- Posts: 476
- Thank you received: 52
07 Jan 2020 23:06 #154279
by alkabal
Replied by alkabal on topic Lathe Rigid tapping G33.1 with tailstock as W axis
Hi
attached tc.c and tp.p patched but can't compile becaus error :
If this can help to point me in the right direction : for now i'm unsure about good sintaxe and don't really know how to change other file like _posemath.c gomath.c
Br
attached tc.c and tp.p patched but can't compile becaus error :
emc/tp/tc.c: In function ‘tcGetStartTangentUnitVector’:
emc/tp/tc.c:208:41: error: ‘PmCartesian {aka const struct <anonymous>}’ has no m ember named ‘uVec’
*out=tc->coords.rigidtap.uvw.uVec;
^
emc/tp/tc.c: In function ‘tcGetEndTangentUnitVector’:
emc/tp/tc.c:231:52: error: ‘PmCartesian {aka const struct <anonymous>}’ has no m ember named ‘uVec’
pmCartScalMult(&tc->coords.rigidtap.uvw.uVec, -1.0, out);
^
emc/tp/tc.c: In function ‘tcGetPosReal’:
emc/tp/tc.c:305:33: warning: passing argument 1 of ‘pmCartLinePoint’ from incomp atible pointer type [-Wincompatible-pointer-types]
pmCartLinePoint(&tc->coords.rigidtap.uvw, progress, &uvw);
^
In file included from emc/tp/tc.c:19:0:
./libnml/posemath/posemath.h:941:16: note: expected ‘const PmCartLine * const {a ka const struct <anonymous> * const}’ but argument is of type ‘const PmCartesian * {aka const struct <anonymous> *}’
extern int pmCartLinePoint(PmCartLine const * const line, double len, PmCar tesian * const point);
^~~~~~~~~~~~~~~
emc/tp/tc.c: In function ‘pmRigidTapInit’:
emc/tp/tc.c:724:52: error: ‘uvw’ undeclared (first use in this function)
emcPoseToPmCartesian(start, &start_xyz, &abc, &uvw);
^~~
emc/tp/tc.c:724:52: note: each undeclared identifier is reported only once for e ach function it appears in
emc/tp/tc.c:732:20: warning: passing argument 1 of ‘pmCartLineInit’ from incompa tible pointer type [-Wincompatible-pointer-types]
pmCartLineInit(&tap->uvw, &start_uvw, &end_uvw);
^
In file included from emc/tp/tc.c:19:0:
./libnml/posemath/posemath.h:940:16: note: expected ‘PmCartLine * const {aka str uct <anonymous> * const}’ but argument is of type ‘PmCartesian * {aka struct <an onymous> *}’
extern int pmCartLineInit(PmCartLine * const line, PmCartesian const * cons t start, PmCartesian const * const end);
^~~~~~~~~~~~~~
emc/tp/tc.c:740:36: error: ‘PmCartesian {aka struct <anonymous>}’ has no member named ‘tmag’
tap->reversal_target = tap->uvw.tmag;
^
emc/tp/tc.c: In function ‘pmRigidTapTarget’:
emc/tp/tc.c:750:49: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ befo re ‘->’ token
double target = tap->xyz.tmag + overrun, tap->uvw.tmag + overrun;
If this can help to point me in the right direction : for now i'm unsure about good sintaxe and don't really know how to change other file like _posemath.c gomath.c
Br
Please Log in or Create an account to join the conversation.
- alkabal
- Offline
- Platinum Member
Less
More
- Posts: 476
- Thank you received: 52
08 Jan 2020 17:11 #154321
by alkabal
Replied by alkabal on topic Lathe Rigid tapping G33.1 with tailstock as W axis
Hi again.
I'm really unsure about the better way to do that i like because i think the needed patch is out of logic regarding to the files that need to be edited..
I have read something about using double Z axis like some unknow for me "gantry" machine.
maybee this is a better way ???
forum.linuxcnc.org/38-general-linuxcnc-q.../35911-double-z-axis
Please i really like to know some opinion.
Br
I'm really unsure about the better way to do that i like because i think the needed patch is out of logic regarding to the files that need to be edited..
I have read something about using double Z axis like some unknow for me "gantry" machine.
maybee this is a better way ???
forum.linuxcnc.org/38-general-linuxcnc-q.../35911-double-z-axis
Please i really like to know some opinion.
Br
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23310
- Thank you received: 4858
09 Jan 2020 01:30 #154382
by andypugh
Replied by andypugh on topic Lathe Rigid tapping G33.1 with tailstock as W axis
I think you have a fun project here
It is possible that the answer is to create a G33.2 for the W axis, that uses G33 inside a remap first in one direction, then the other.
Or maybe configure your tailstock as a Y axis.
But I can see advantages to your approach of extending the base code to accept more axes.
I think your problem with compilation is that (for whatever reason) XYZ are stored as a unified structure (pmcartesian) but UVW are not.
It is possible that the answer is to create a G33.2 for the W axis, that uses G33 inside a remap first in one direction, then the other.
Or maybe configure your tailstock as a Y axis.
But I can see advantages to your approach of extending the base code to accept more axes.
I think your problem with compilation is that (for whatever reason) XYZ are stored as a unified structure (pmcartesian) but UVW are not.
Please Log in or Create an account to join the conversation.
- alkabal
- Offline
- Platinum Member
Less
More
- Posts: 476
- Thank you received: 52
09 Jan 2020 02:16 #154391
by alkabal
Replied by alkabal on topic Lathe Rigid tapping G33.1 with tailstock as W axis
Firstly many thanks for the reply !!
I have think and do (before read your message lol) the change for use Y axis and this work like a charm !! (without any need to change plane i can keep G18, all cycle tested ok except unwanted G76)
I have only do a commented a line inside axis.py for not remove the Y jog button.
Using Y is not so beautifull as displayed a W axis but seems to do the whole job nicely.
The remap is maybee a good idea, i need to check it but i think need to remap all other mode and deal with plane i'm also afraid if this is enough regarding to G33.1 source code. (my knowledge is not really big)
I have think and do (before read your message lol) the change for use Y axis and this work like a charm !! (without any need to change plane i can keep G18, all cycle tested ok except unwanted G76)
I have only do a commented a line inside axis.py for not remove the Y jog button.
Using Y is not so beautifull as displayed a W axis but seems to do the whole job nicely.
The remap is maybee a good idea, i need to check it but i think need to remap all other mode and deal with plane i'm also afraid if this is enough regarding to G33.1 source code. (my knowledge is not really big)
Please Log in or Create an account to join the conversation.
- alkabal
- Offline
- Platinum Member
Less
More
- Posts: 476
- Thank you received: 52
09 Jan 2020 02:35 - 09 Jan 2020 02:36 #154394
by alkabal
1-change all the needed source code for allow to use G33.1
2-change all the needed source code for adding something like G33.2 (i think need the other change like for G33.1 but surely better to separate)
3-do something with remap
Second i'm affraid (if this is not stupid) about too much hard to do the change
Thanks a lot, Br
Replied by alkabal on topic Lathe Rigid tapping G33.1 with tailstock as W axis
I not fully understand what you think is the best :But I can see advantages to your approach of extending the base code to accept more axes.
.
1-change all the needed source code for allow to use G33.1
2-change all the needed source code for adding something like G33.2 (i think need the other change like for G33.1 but surely better to separate)
3-do something with remap
First the problem is i don't really understand the code like posmath tc tp and i'm really affraid about doing this as stupid wrong direction because in my head pmcartesian = cartesian = XYZ i don't want to break some logic.I think your problem with compilation is that (for whatever reason) XYZ are stored as a unified structure (pmcartesian) but UVW are not.
Second i'm affraid (if this is not stupid) about too much hard to do the change
Oh i'm really happy i think this is the first time i read something like this about my cnc project until now !!!I think you have a fun project here
.
Thanks a lot, Br
Last edit: 09 Jan 2020 02:36 by alkabal.
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23310
- Thank you received: 4858
09 Jan 2020 10:19 - 09 Jan 2020 10:21 #154422
by andypugh
It depends if you want to fix it for everyone and change LinuxCNC or just make your machine work.
To fix it for yourself only, the simplest thing is to use the Y axis for the tailstock.
To fix it for yourself only and to keep the preview looking good, making a remapped G33.n is the way to go (you can't remap G33.1)
linuxcnc.org/docs/2.7/html/remap/remap.html
Amongst a lot of other info, this shows that G33.2 is available.
You could remap this in G-code to something like:
In the INI
then create a file "myrigidtap.ngc"
But if you want to fix it for everyone, then that involves changes to the LinuxCNC source code. And spindle-synched motion is one of the more complicated parts.
Replied by andypugh on topic Lathe Rigid tapping G33.1 with tailstock as W axis
I not fully understand what you think is the best :
1-change all the needed source code for allow to use G33.1
2-change all the needed source code for adding something like G33.2 (i think need the other change like for G33.1 but surely better to separate)
3-do something with remap
It depends if you want to fix it for everyone and change LinuxCNC or just make your machine work.
To fix it for yourself only, the simplest thing is to use the Y axis for the tailstock.
To fix it for yourself only and to keep the preview looking good, making a remapped G33.n is the way to go (you can't remap G33.1)
linuxcnc.org/docs/2.7/html/remap/remap.html
Amongst a lot of other info, this shows that G33.2 is available.
You could remap this in G-code to something like:
In the INI
[RS274NGC]
REMAP=G33.2 argspec=uvw ngc=myridgidtap
then create a file "myrigidtap.ngc"
O<myrigidtap> SUB
(store starting UVW)
(note that at this point #<w> is the W-word from the G33.2 command, and #<_w> is the current W position)
#1 = #<_u>
#2 = #<_v>
#3 = #<_w>
G33 U#<u> V#<v> W#<w>
(reverse the spindle)
M4
G33 U#1 V#2 W#3
{spindle back to forwards)
O<myrigidtap> ENDSUB
M2
But if you want to fix it for everyone, then that involves changes to the LinuxCNC source code. And spindle-synched motion is one of the more complicated parts.
Last edit: 09 Jan 2020 10:21 by andypugh.
Please Log in or Create an account to join the conversation.
- alkabal
- Offline
- Platinum Member
Less
More
- Posts: 476
- Thank you received: 52
09 Jan 2020 11:43 - 09 Jan 2020 11:45 #154428
by alkabal
Replied by alkabal on topic Lathe Rigid tapping G33.1 with tailstock as W axis
Top, i check this remap soon, a lot of thanks
Really i like to change source for everyone i(f this something possible to merge and keep logic) but for now i can't compile correctly, and you think in all way add a G33.2 is better vs only update the G33.1 source code ?
Br
Really i like to change source for everyone i(f this something possible to merge and keep logic) but for now i can't compile correctly, and you think in all way add a G33.2 is better vs only update the G33.1 source code ?
Br
Last edit: 09 Jan 2020 11:45 by alkabal.
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23310
- Thank you received: 4858
09 Jan 2020 12:23 #154431
by andypugh
Replied by andypugh on topic Lathe Rigid tapping G33.1 with tailstock as W axis
The best solution would be to extend G33.1 to all axes. (you can imagine using a rotary axis to cut a partial worm sector.....)
But it looks like that would be a significant undertaking.
But it looks like that would be a significant undertaking.
Please Log in or Create an account to join the conversation.
- alkabal
- Offline
- Platinum Member
Less
More
- Posts: 476
- Thank you received: 52
09 Jan 2020 14:05 #154440
by alkabal
Replied by alkabal on topic Lathe Rigid tapping G33.1 with tailstock as W axis
For now remapping does not work fine :
W is 0
Ask G33.2 W-5 K1 S50 (spindle speed for M3 M4 inside remap)
The initial move is ok, stopping after 5 full spindle revolution (by hand)
the retract wait 5 backwards spindle revolution before start the synchronised move.
I’m afraid about overrun after the initial move if the spindle does not reverse instantly. (I have see something about over range or something like this in the source code)
Br
W is 0
Ask G33.2 W-5 K1 S50 (spindle speed for M3 M4 inside remap)
The initial move is ok, stopping after 5 full spindle revolution (by hand)
the retract wait 5 backwards spindle revolution before start the synchronised move.
I’m afraid about overrun after the initial move if the spindle does not reverse instantly. (I have see something about over range or something like this in the source code)
Br
Please Log in or Create an account to join the conversation.
Moderators: piasdom
Time to create page: 0.081 seconds