A head scratcher for me
11 Nov 2018 17:53 #120452
by rcKeith
Replied by rcKeith on topic A head scratcher for me
Hi Andy
Changing the XY to UV plane made no difference still went fast on the UV axis. Damn.
Keith
Changing the XY to UV plane made no difference still went fast on the UV axis. Damn.
Keith
Please Log in or Create an account to join the conversation.
12 Nov 2018 11:40 #120484
by andypugh
Replied by andypugh on topic A head scratcher for me
Pity, though it was more a hope than an expectation that changing plane would help.
What does the first few lines of your G-code look like?
What does the first few lines of your G-code look like?
Please Log in or Create an account to join the conversation.
12 Nov 2018 15:07 #120491
by rcKeith
Replied by rcKeith on topic A head scratcher for me
Hi Andy
Here's the wing g-code for the left with UV on the big side attached is the full file. Here the first 30 or so lines
%
; Begin Header section
;hawk outer wing section
; root on left
G21
;UV plane selected
G17.1
G90
; End Header section
F 75.0000
; Switch On Hot wire
M3
; Go Home
G00 U 0.0000 V 0.0000 X 0.0000 Y 0.0000
; Go X Home
G00 U 0.0000 V 47.0717 X 0.0000 Y 17.2227
; Approaching Airfoil trailing edge
G01 U 0.0883 V 47.0717 X -0.0061 Y 17.2227 F 75.0000
; Begin Airfoil contour
G01 U 10.0376 V 47.0171 X 9.8755 Y 18.9244
G01 U 10.4867 V 47.0297 X 9.9371 Y 18.9339
G01 U 10.9357 V 47.0422 X 9.9987 Y 18.9434
G01 U 11.3846 V 47.0547 X 10.0604 Y 18.9530
G01 U 11.8335 V 47.0673 X 10.1220 Y 18.9625
G01 U 12.2822 V 47.0799 X 10.1836 Y 18.9717
G01 U 12.7309 V 47.0921 X 10.2452 Y 18.9809
G01 U 13.1796 V 47.1038 X 10.3068 Y 18.9901
G01 U 13.6281 V 47.1156 X 10.3684 Y 18.9993
G01 U 14.0766 V 47.1274 X 10.4300 Y 19.0085
G01 U 14.5250 V 47.1392 X 10.4916 Y 19.0176
G01 U 14.9734 V 47.1506 X 10.5532 Y 19.0268
G01 U 15.4217 V 47.1615 X 10.6148 Y 19.0362
G01 U 15.8699 V 47.1724 X 10.6763 Y 19.0456
G01 U 16.3181 V 47.1829 X 10.7378 Y 19.0552
G01 U 16.7662 V 47.1933 X 10.7994 Y 19.0647
G01 U 17.2142 V 47.2036 X 10.8609 Y 19.0742
G01 U 17.6621 V 47.2139 X 10.9224 Y 19.0838
G01 U 18.1100 V 47.2242 X 10.9839 Y 19.0934
Here's the wing g-code for the left with UV on the big side attached is the full file. Here the first 30 or so lines
%
; Begin Header section
;hawk outer wing section
; root on left
G21
;UV plane selected
G17.1
G90
; End Header section
F 75.0000
; Switch On Hot wire
M3
; Go Home
G00 U 0.0000 V 0.0000 X 0.0000 Y 0.0000
; Go X Home
G00 U 0.0000 V 47.0717 X 0.0000 Y 17.2227
; Approaching Airfoil trailing edge
G01 U 0.0883 V 47.0717 X -0.0061 Y 17.2227 F 75.0000
; Begin Airfoil contour
G01 U 10.0376 V 47.0171 X 9.8755 Y 18.9244
G01 U 10.4867 V 47.0297 X 9.9371 Y 18.9339
G01 U 10.9357 V 47.0422 X 9.9987 Y 18.9434
G01 U 11.3846 V 47.0547 X 10.0604 Y 18.9530
G01 U 11.8335 V 47.0673 X 10.1220 Y 18.9625
G01 U 12.2822 V 47.0799 X 10.1836 Y 18.9717
G01 U 12.7309 V 47.0921 X 10.2452 Y 18.9809
G01 U 13.1796 V 47.1038 X 10.3068 Y 18.9901
G01 U 13.6281 V 47.1156 X 10.3684 Y 18.9993
G01 U 14.0766 V 47.1274 X 10.4300 Y 19.0085
G01 U 14.5250 V 47.1392 X 10.4916 Y 19.0176
G01 U 14.9734 V 47.1506 X 10.5532 Y 19.0268
G01 U 15.4217 V 47.1615 X 10.6148 Y 19.0362
G01 U 15.8699 V 47.1724 X 10.6763 Y 19.0456
G01 U 16.3181 V 47.1829 X 10.7378 Y 19.0552
G01 U 16.7662 V 47.1933 X 10.7994 Y 19.0647
G01 U 17.2142 V 47.2036 X 10.8609 Y 19.0742
G01 U 17.6621 V 47.2139 X 10.9224 Y 19.0838
G01 U 18.1100 V 47.2242 X 10.9839 Y 19.0934
Please Log in or Create an account to join the conversation.
12 Nov 2018 15:20 #120494
by andypugh
Replied by andypugh on topic A head scratcher for me
OK, my suggestion is that you set up LinuxCNC to run a filter on the G-code file that converts the file from G94 to G93.
The filter would compare the distances in the XY and UV planes and use the largest to calculate a G93 feed rate.
How is your Python? (I am willing to have a go, but I am at work at the moment so can't do it until later)
The filter would compare the distances in the XY and UV planes and use the largest to calculate a G93 feed rate.
How is your Python? (I am willing to have a go, but I am at work at the moment so can't do it until later)
Please Log in or Create an account to join the conversation.
12 Nov 2018 21:44 #120513
by rcKeith
Replied by rcKeith on topic A head scratcher for me
Hi Andy
I've done a bit in Python but I not sure how I'd caluclate the feed rate. If you can point me in the right direction then I can have a go.
Thanks for your help
Keith
I've done a bit in Python but I not sure how I'd caluclate the feed rate. If you can point me in the right direction then I can have a go.
Thanks for your help
Keith
Please Log in or Create an account to join the conversation.
13 Nov 2018 02:21 #120524
by andypugh
Replied by andypugh on topic A head scratcher for me
I have run out of time tonight, but this is close.
In the INI file add this to the [FILTER] section
Now save this at that path as filter.py
Now any gcode file with a .foam extension will run through that filter, example output:
It probably needs work, I am not sure that my G93 feedrate calculation is correct, but the structure is there.
In the INI file add this to the [FILTER] section
PROGRAM_EXTENSION = .foam foam
foam = /home/{YOUR USERNAME}/linuxcnc/filter.py
Now save this at that path as filter.py
#! /usr/bin/python
import re
import sys
import math
infile = sys.argv[1]
f = open(infile, 'r')
feedrate = 1
X = 0.0
Y = 0.0
U = 0.0
V = 0.0
oldX = X
oldY = Y
oldU = U
oldV = V
for line in f:
Ff = re.match(r".*F\s*([\d\.,]+)", line)
Xf = re.match(r".*X\s*([\d\.,]+)", line)
Yf = re.match(r".*Y\s*([\d\.,]+)", line)
Uf = re.match(r".*U\s*([\d\.,]+)", line)
Vf = re.match(r".*V\s*([\d\.,]+)", line)
G1f = re.match(r".*G\s*0*1\D", line)
if Xf:
X = float(Xf.group(1))
if Yf:
Y = float(Yf.group(1))
if Uf:
U = float(Uf.group(1))
if Vf:
V = float(Vf.group(1))
hXY = math.sqrt((oldX-X)**2 + (oldY-Y)**2)
hUV = math.sqrt((oldU-U)**2 + (oldV-V)**2)
if hXY > hUV and hXY != 0:
F93 = float(feedrate / hXY)
elif hUV != 0:
F93 = float(feedrate / hUV)
if Ff:
feedrate = float(Ff.group(1))
print "( feedrate = %f)" % feedrate
print "G93"
elif G1f:
print "%s F%f" % (line.rstrip(), F93)
else:
print line.rstrip()
oldX = X
oldY = Y
oldU = U
oldV = V
print "M2"
Now any gcode file with a .foam extension will run through that filter, example output:
It probably needs work, I am not sure that my G93 feedrate calculation is correct, but the structure is there.
The following user(s) said Thank You: aleksamc
Please Log in or Create an account to join the conversation.
13 Nov 2018 13:29 #120535
by rcKeith
Replied by rcKeith on topic A head scratcher for me
Hi Andy
Thank you so much that awesome. I'll give it a try and let you know. Looks a nice peice of code
Keith
Thank you so much that awesome. I'll give it a try and let you know. Looks a nice peice of code
Keith
Please Log in or Create an account to join the conversation.
16 Nov 2018 10:59 #120826
by rcKeith
Replied by rcKeith on topic A head scratcher for me
Hi Andy
Just tested on the machine and it works fantastic. Thank you so much. You're a wizard.
Keith
Just tested on the machine and it works fantastic. Thank you so much. You're a wizard.
Keith
Please Log in or Create an account to join the conversation.
01 Jun 2020 19:32 #169702
by aleksamc
Replied by aleksamc on topic A head scratcher for me
I try to use your filter.py, andypugh but get error Permission denied.
I have another thread for this topic Slow work of rotary axis
Can you help me in this?
I have verion 2.7.15 and axes x,y,z,a.
I have another thread for this topic Slow work of rotary axis
Can you help me in this?
I have verion 2.7.15 and axes x,y,z,a.
Please Log in or Create an account to join the conversation.
01 Jun 2020 20:08 #169709
by rcKeith
Replied by rcKeith on topic A head scratcher for me
Can you do some screenshots of where you have the filter.py installed? and your ini file.
Keith
Keith
Please Log in or Create an account to join the conversation.
Time to create page: 0.137 seconds