Re: [Emc-users] equations in kinematics - an OT Thank You

2008-12-14 Thread Greg Michalski
Stuart - Thank you for starting this thread and posting your kinematics
calculations.  I hadn't delved into the kinematics aspect of EMC2, but
reading through your calculations the proverbial light-bulb went on and how
positioning is computed and achieved makes a lot more sense to me now.  Once
again - something new is learned every day subscribing to this list - I'll
stow this for the unavoidable I'll never use this stuff in life argument
my daughter is starting to use in defense of her math grades (sure, she's
only in 8th grade and isn't exhibiting any interest in mechanical
engineering but I can make an analogy that works :).

Thanks again.

Greg

-Original Message-
From: Stuart Stevenson [mailto:stus...@gmail.com] 
Sent: Sunday, December 14, 2008 12:14 AM
To: Enhanced Machine Controller (EMC)
Subject: Re: [Emc-users] equations in kinematics

On Sat, Dec 13, 2008 at 11:05 PM, Stephen Wille Padnos
spad...@sover.net wrote:
 Chris Radek wrote:

On Sat, Dec 13, 2008 at 10:14:04PM -0600, Stuart Stevenson wrote:


Gentlemen,
   which style of computation would run faster in the kinematics file?



If they are equivalent (and I sure as heck didn't check that),

 I didn't check for correctness either.  I did notice one thing that
 seems like a bad choice, but it may be intentional:

 ...
 va2=atan(-bskew1)
 
 va8=va7*tan(va2)
 ...

 since tan(atan(x)) should equal x, it seems you should be able to just
 use va8=-va7*bskew1.

it was intentional only in that I have variables in my macro call that
I use two different numbers
if the magnitude of the variable is less than 1 I use it as a per inch error
if the magnitude is GE 1 I use it as an angle
this necessitates the extra step for testing
when I write it for the kinematics I will only use the per inch error


it
will make little difference whether you split it up like #1 or have
huge statements like #2.  The compiler will do approximately the same
work

 I was in the middle of writing a similar statement, with some general
 instructions on writing a test program, when I decided to just write the
 test program instead :)  I found that the first version runs 1,000,000
 loops in about 0.5 seconds (on a 2.2 GHz Core 2 Duo), whereas the second
 takes about 2 seconds.  By making my own sqr function, that was cut
 down to about 1.5 seconds (this surprised me because I would have
 expected common subexpression elimination to work there, but I suppose
 gcc can't know if any of the called math functions save some state and
 may therefore return different values from call to call).

.  The only concern is which one you can understand better when
you (or some other unlucky person?) come back to it later.


 That is a big concern, and the code runs pretty fast anyway.  Like I
 said, my 2.2GHz CPU can run the slower version 500,000 to 750,000 times
 a second, so even a 500 MHz CPU, that's not as well optimized for math,
 should be able to do it 100,000 times a second (or about 100 times as
 often as necessary)

speed was my main concern
thanks
Stuart

 - Steve





--
 SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,
Nevada.
 The future of the web can't happen without you.  Join us at MIX09 to help
 pave the way to the Next Web now. Learn more and register at

http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users




--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] equations in kinematics - an OT Thank You

2008-12-14 Thread Stuart Stevenson
Greg,
I probably wouldn't yet take this work as the definitive kinematics. :)
It is a work in progress and learning (OJT).
having some fun now
Stuart

On Sun, Dec 14, 2008 at 8:38 AM, Greg Michalski
emc2usrl...@distinctperspectives.com wrote:
 Stuart - Thank you for starting this thread and posting your kinematics
 calculations.  I hadn't delved into the kinematics aspect of EMC2, but
 reading through your calculations the proverbial light-bulb went on and how
 positioning is computed and achieved makes a lot more sense to me now.  Once
 again - something new is learned every day subscribing to this list - I'll
 stow this for the unavoidable I'll never use this stuff in life argument
 my daughter is starting to use in defense of her math grades (sure, she's
 only in 8th grade and isn't exhibiting any interest in mechanical
 engineering but I can make an analogy that works :).

 Thanks again.

 Greg

 -Original Message-
 From: Stuart Stevenson [mailto:stus...@gmail.com]
 Sent: Sunday, December 14, 2008 12:14 AM
 To: Enhanced Machine Controller (EMC)
 Subject: Re: [Emc-users] equations in kinematics

 On Sat, Dec 13, 2008 at 11:05 PM, Stephen Wille Padnos
 spad...@sover.net wrote:
 Chris Radek wrote:

On Sat, Dec 13, 2008 at 10:14:04PM -0600, Stuart Stevenson wrote:


Gentlemen,
   which style of computation would run faster in the kinematics file?



If they are equivalent (and I sure as heck didn't check that),

 I didn't check for correctness either.  I did notice one thing that
 seems like a bad choice, but it may be intentional:

 ...
 va2=atan(-bskew1)
 
 va8=va7*tan(va2)
 ...

 since tan(atan(x)) should equal x, it seems you should be able to just
 use va8=-va7*bskew1.

 it was intentional only in that I have variables in my macro call that
 I use two different numbers
 if the magnitude of the variable is less than 1 I use it as a per inch error
 if the magnitude is GE 1 I use it as an angle
 this necessitates the extra step for testing
 when I write it for the kinematics I will only use the per inch error


it
will make little difference whether you split it up like #1 or have
huge statements like #2.  The compiler will do approximately the same
work

 I was in the middle of writing a similar statement, with some general
 instructions on writing a test program, when I decided to just write the
 test program instead :)  I found that the first version runs 1,000,000
 loops in about 0.5 seconds (on a 2.2 GHz Core 2 Duo), whereas the second
 takes about 2 seconds.  By making my own sqr function, that was cut
 down to about 1.5 seconds (this surprised me because I would have
 expected common subexpression elimination to work there, but I suppose
 gcc can't know if any of the called math functions save some state and
 may therefore return different values from call to call).

.  The only concern is which one you can understand better when
you (or some other unlucky person?) come back to it later.


 That is a big concern, and the code runs pretty fast anyway.  Like I
 said, my 2.2GHz CPU can run the slower version 500,000 to 750,000 times
 a second, so even a 500 MHz CPU, that's not as well optimized for math,
 should be able to do it 100,000 times a second (or about 100 times as
 often as necessary)

 speed was my main concern
 thanks
 Stuart

 - Steve




 
 --
 SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,
 Nevada.
 The future of the web can't happen without you.  Join us at MIX09 to help
 pave the way to the Next Web now. Learn more and register at

 http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users



 
 --
 SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
 The future of the web can't happen without you.  Join us at MIX09 to help
 pave the way to the Next Web now. Learn more and register at
 http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users


 --
 SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
 The future of the web can't happen without you.  Join us at MIX09 to help
 pave the way to the Next Web now. Learn more and register at
 http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users




[Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread BRIAN GLACKIN
Up until now, I have been using AC2GC for gcode generation.  While this is
ok, it gets tedious when I am generating multiples of a single part.  I have
reviewed the Gcode manual numerous times and cannot get my mind wrapped
around the method for doing this.  I reckon something along the line of a
drilling cycle is in order with a coordinate system change.

For simplicity, can someone show a looping routine to cut out a square 1 X
1 path (not worried about tooling offsets) then skip 1/2 on the Y axis and
repeat.  Once it reaches the end of the Y axis (24 in my case), I want it
to index down the X axis and reverse on down the Y axis.  I then want to
repeat this full loop until I exhaust the X axis.

I actually want to cut more than a simple square, but using it should allow
me to understand the subroutine.

Thanks.

Brian
--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread Sebastian Kuzminsky
BRIAN GLACKIN wrote:
 For simplicity, can someone show a looping routine to cut out a square 1 X
 1 path (not worried about tooling offsets) then skip 1/2 on the Y axis and
 repeat.  Once it reaches the end of the Y axis (24 in my case), I want it
 to index down the X axis and reverse on down the Y axis.  I then want to
 repeat this full loop until I exhaust the X axis.
 
 I actually want to cut more than a simple square, but using it should allow
 me to understand the subroutine.

There was a great series of articles in Digital Machinist 
http://www.digitalmachinist.net/ recently called Along the G-code 
Way, by Ed Nisley, that covered this exact topic from start to finish. 
  The author even used EMC2 for all the examples, including screen shots 
from Axis :-)

I dont know the exact issue numbers, but the search on the website above 
should find them for you.

It's the best introductory tutorial I've seen on G-code programming.

If there's a free online tutorial someplace i'd love to see it.


-- 
Sebastian Kuzminsky
One of my most productive days was throwing away 1000 lines of code.
 -- Ken Thompson

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread Jeff Epler
Here's a program that does something like what you asked for.

You might also be interested in the file 'interesting-subroutines.ngc', which
should be installed in the examples directory.

Jeff
(- CUT HERE  --)
O100 sub (square [x0] [y0] [z0] [zr] [f1] [f2])
 (cut a 1x1 square)
 (#1 = x0 = left hand corner of square)
 (#2 = y0 = lower corner of square)
 (#3 = z0 = depth of cut)
 (#4 = zr = retract after cut)
 (#5 = f1 = feed to cutting depth)
 (#6 = f2 = feed for square)
 (assumes already at safety height)
G0 X#1 Y#2
G1 Z#3 F#5
G1 X[#1+1] F#6
G1 Y[#2+1]
G1 X#1
G1 Y#2
G0 Z#4
O100 endsub

O200 sub (l2r [x0] [y0] [dx] [count] [z0] [zr] [f1] [f2])
 (#1 = x0 = least x coordinate)
 (#2 = y0 = common y coordinate for all squares)
 (#3 = dx = increment between x coordinates)
 (#4 = count = number of squares in row)
 (#5 = z0 = depth of cut)
 (#6 = zr = retract after cut)
 (#7 = f1 = feed to cutting depth)
 (#8 = f2 = feed for square)
 (cut squares from left to right at constant Y)
(#9 = temporary for count of squares in row)
#9=0
O210 while [#9 LT #4]
O100 call [#1+#9*#3] [#2] [#5] [#6] [#7] [#8]
#9=[#9+1]
O210 endwhile
O200 endsub

O300 sub (r2l [x0] [y0] [dx] [count] [z0] [zr] [f1] [f2])
 (parameters as for O200 sub)
 (cut squares from right to left at constant Y)
#9=[#4-1]
O310 while [#9 GE 0]
O100 call [#1+#9*#3] [#2] [#5] [#6] [#7] [#8]
#9=[#9-1]
O310 endwhile
O300 endsub

O400 sub (squares [x0] [y0] [dx] [dy] [xcount] [ycount] [z0] [zr] [f1] [f2])
 (#1 = x0 = least x coordinate)
 (#2 = y0 = least y coordinate)
 (#3 = dx = increment between x coordinates)
 (#4 = dy = increment between y coordinates)
 (#5 = xcount = number of squares in row)
 (#6 = ycount = number of rows)
 (#7 = z0 = depth of cut) 
 (#8 = zr = retract after cut)
 (#9 = f1 = feed to cutting depth)
(#10 = f2 = feed for square)
(#11 = temporary for count of rows)
#11=0
O410 while [#11 LE #6]
O420 if [[#11 MOD 2] EQ 0] 
O200 call [#1] [#2+#11*#4] [#3] [#5] [#7] [#8] [#9] [#10]
O420 else 
O300 call [#1] [#2+#11*#4] [#3] [#5] [#7] [#8] [#9] [#10]
O420 endif
#11=[#11+1]
O410 endwhile
O400 endsub

G20
M3 S1000
O400 call [0] [0] [1.5] [1.5] [4] [5] [-1] [1] [12] [30]
M2
(- CUT HERE  --)

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread BRIAN GLACKIN
Seb,

THanks for the link.  I checked the site and I cannot seem to access any of
the articles due to subscription requirements.  Perhaps in the future I will
explore this avenue, bit for the time being, Christmas preparations preclude
spending on this.

snip
Jeff,

Thanks for the snippet of code.  I will spend some time studying it and then
applying it to my cuts.  It certainly appears to be what I am looking for.

As for the other code in the example directory, I have not poked around in
there due to the temperature of my workspace.  Seems I have a bit in common
with Gene in this respect.  I do have several other dumpster boxes I am
looking for a monitor for so that I can have a simulator running in the
comfort of the house.  Once I have that, I will certainly explore that more
fully.
Thanks for the replies

Brian
--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread John Thornton
You might also look at the g code generators here

http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Simple_EMC_G-Code_Generators

and take a look at 

http://www.linuxcnc.org/docview/html//gcode_main.html#sub:G92,-G92.1,-G92.2,

http://www.linuxcnc.org/docview/html//gcode_main.html#cha:O-Codes

John

On 14 Dec 2008 at 11:58, BRIAN GLACKIN wrote:

 Up until now, I have been using AC2GC for gcode generation.  While
 this is
 ok, it gets tedious when I am generating multiples of a single part.
 I have
 reviewed the Gcode manual numerous times and cannot get my mind
 wrapped
 around the method for doing this.  I reckon something along the line
 of a
 drilling cycle is in order with a coordinate system change.
 
 For simplicity, can someone show a looping routine to cut out a
 square 1 X
 1 path (not worried about tooling offsets) then skip 1/2 on the Y
 axis and
 repeat.  Once it reaches the end of the Y axis (24 in my case), I
 want it
 to index down the X axis and reverse on down the Y axis.  I then
 want to
 repeat this full loop until I exhaust the X axis.
 
 I actually want to cut more than a simple square, but using it
 should allow
 me to understand the subroutine.
 
 Thanks.
 
 Brian
 
 --
 SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,
 Nevada.
 The future of the web can't happen without you.  Join us at MIX09 to
 help
 pave the way to the Next Web now. Learn more and register at
 http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visit
 mix.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users
 



--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread Jeff Epler
You can also view that file, useful-subroutines.ngc, from the comfort of an
internet-connected computer:

http://cvs.linuxcnc.org/cvs/emc2/nc_files/useful-subroutines.ngc?rev=1.4;content-type=text%2Fplain

Jeff

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread Jack Coats
You can grab a 'cheap' KVM from ebay, and a dumpster box to have a 'test 
system' on your desk.

It may not be graceful, but if you can have the box in the workshop 
running, you can use VNC on
your desktop inside to view what is going on there.  I wouldn't really 
CUT anything with it that way,
but for remote use, it works.  Personally I like to have a hardwired 
link, but in my place currently
I am using WIFI. 

For a box that you don't want to deal with wifi on but have an ethernet 
port, I suggest getting
one or two 'wifi external game adapters'.  I just purchased another (I 
have one belkin, one USRobotics,
and a 'new to me' linksys' in my house/shop) - the linksys - from 
http://3btech.net/li80wigaadbr.html
for $40

The KVM brand I like is a 4 port zonet ... right now they have one I 
really like http://3btech.net/fopomidekvmk.html
for about $25 including cables.  It has a place for a power supply, but 
it is not needed.  I think it is refurbed too.

For about $65 plus shipping if you already have wifi at home you would 
be in good shape.  If no wifi currently
you might want 2 of the game adapters.  Still it probably isn't as cheap 
as running an ethernet cable.

I hope some of this helps in getting your infrastructure going so you 
can have fun even if the shop is cold.



BRIAN GLACKIN wrote:
 Seb,

 THanks for the link.  I checked the site and I cannot seem to access any of
 the articles due to subscription requirements.  Perhaps in the future I will
 explore this avenue, bit for the time being, Christmas preparations preclude
 spending on this.

 snip
 Jeff,

 Thanks for the snippet of code.  I will spend some time studying it and then
 applying it to my cuts.  It certainly appears to be what I am looking for.

 As for the other code in the example directory, I have not poked around in
 there due to the temperature of my workspace.  Seems I have a bit in common
 with Gene in this respect.  I do have several other dumpster boxes I am
 looking for a monitor for so that I can have a simulator running in the
 comfort of the house.  Once I have that, I will certainly explore that more
 fully.
 Thanks for the replies

 Brian
 --
 SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
 The future of the web can't happen without you.  Join us at MIX09 to help
 pave the way to the Next Web now. Learn more and register at
 http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users

   

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


[Emc-users] RELEASED: emc 2.2.8

2008-12-14 Thread Jeff Epler
I'm pleased to announce the next release of the emc 2.2 series, emc
2.2.8.  This release contains a fix for a rare bug that caused incorrect
movement for G2 and G3 arc moves, as well as a few other things.

The new packages are now available for Ubuntu 8.04 Hardy Heron in the
package repositories.  If you have already installed an earlier 2.2.x
version, this is available as an update in the Ubuntu update manager.
If you are still using 2.1.7 but want to upgrade, instructions are here:
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingTo2.2
For information on how to upgrade from 2.2.x to 2.2.8 without using the
package manager, see
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?InstallingUpdates

Ubuntu 6.06 Dapper Drake packages should follow shortly.

CVS users can get this release by checking out the RELEASE_2_2_8 tag.
Source tarballs are available from the package repository:
http://linuxcnc.org/hardy/dists/hardy/emc2.2/source/emc2_2.2.8.tar.gz

Many thanks to Chris Radek, who finally tracked down and fixed this arc
bug.  Thanks also to John Thornton who has been working steadily on
improving the emc2 documentation.

Changes in this release:
  * Documentation improvements
  * Fix rare incorrect movement for G2 and G3 arc moves
  * partial swedish translation now under correct 'sv' language.
  * hostmot2 improvements: encoder velocity and index mask.  stepgen step
types and bugfixes.  better logging.  improved device firmwares.

Jeff

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] equations in kinematics

2008-12-14 Thread Jon Elson
Stuart Stevenson wrote:
 Gentlemen,
which style of computation would run faster in the kinematics file?

 this:
 va1=atan(askew1)

 va2=atan(-bskew1)
 snip
 or this:
 acomp=asin(sin(acmd))-(((cos(acmd))*(sin(-bcmd)))*$

 (tan((atan(-bskew1))*(cos((atan(-bskew1)/$
   
snip
count up the number of sin, cos, etc. functions.  If it is the same, 
then the time should be very close either way.  If you just pulled all 
the equations apart to store every temp result in a variable, the 
compiler will end up generating the identical code.  If you want, you 
could actually write a little program with a random number generator 
feeding your equations, and make it execute it in a loop 10,000 times.  
Run it with the Linux time command.  Don't have the program write 
anything to the screen, but maybe store the values in an array so it 
doesn't get optimized away.  Run both versions and compare.

Jon

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] equations in kinematics

2008-12-14 Thread John Kasunich
Given today's PCs, for all but the most hard-core numbercrunching, you
are better off optimizing for readability.  Don't do obviously bad
things like computing the same value three times, but in general, if you
are doing closed form math that doesn't involve loops or iteration, it
will be very fast compared to most other stuff, like I/O.

I bet your math runs in less time than it takes to send the voltage
commands to the PPMC DACs.

Regards,

John Kasunich

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] equations in kinematics

2008-12-14 Thread Jon Elson
Stephen Wille Padnos wrote:

 I was in the middle of writing a similar statement, with some general 
 instructions on writing a test program, when I decided to just write the 
 test program instead :)  I found that the first version runs 1,000,000 
 loops in about 0.5 seconds (on a 2.2 GHz Core 2 Duo), whereas the second 
 takes about 2 seconds.  By making my own sqr function, that was cut 
 down to about 1.5 seconds (this surprised me because I would have 
 expected common subexpression elimination to work there, but I suppose 
 gcc can't know if any of the called math functions save some state and 
 may therefore return different values from call to call).

   
Very interesting!  Well, there are these outfits that sell 
super-optimizing compilers and claim their code runs significantly 
faster than GCC.
My boss is still stuck in the Fortran world (gag, choke) and bought one, 
and he claims it can be twice as fast as g77 on heavy math stuff.
The old DEC compilers on Vax and Alpha were REALLY good.

Jon

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Gcode Newbie Question - repetitive part making

2008-12-14 Thread Jon Elson
BRIAN GLACKIN wrote:
 Seb,

 THanks for the link.  I checked the site and I cannot seem to access any of
 the articles due to subscription requirements.  Perhaps in the future I will
 explore this avenue, bit for the time being, Christmas preparations preclude
 spending on this.
   
it won't be real quick, but you could order that as a back issue.

Jon

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Lathe diameter mode

2008-12-14 Thread Leslie Newell
I finally got some time to play around with this. Simply changing the 
read_x function to halve the X axis seems to work. I had a look through 
a Fanuc lathe manual and that appears to be exactly what they do. Axis 
already shows the X radius and diameter so it doesn't really need 
changing. DTG uses radius as well but as it is a blended value, it 
wouldn't really be sensible for it to work in diameter anyway.

Currently I have hard-coded the read_x function to halve the X value 
which is of course not the correct way to go. The read_XX functions have 
access to the system parameters so it seems the sensible way to go would 
be to dedicate a parameter and maybe a G-code for diameter mode. Is 
there a list anywhere of the system parameters currently in use?

Les

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


[Emc-users] 5 axis tool length - 5 axis pivot length

2008-12-14 Thread Stuart Stevenson
Gentlemen,
   From the looks of some of the current kinematics files I will
assume two things:

1: the 5 axis tool length compensation is handled outside the kinematics file.
2: the pivot length compensation is handled inside the kinematics file.

Unless otherwise advised I will construct my kins with these assumptions.

I am compensating for
an out of parallel condition between the A and X axes
and
an out of parallel condition between the B and Y axes
and
a condition where the center line of the spindle does not project
through the A axis
and
a condition where the center line of the spindle does not project
through the B axis
and
I am adding orthogonal compensation.

The algorithm I have now is an inverse kins.
I am working on the forward kins.

Future readability has been mentioned.
The algorithm gets complicated.
Would these be better handled as separate calculations?
A few gentlemen have a good idea of my coding skill (or lack thereof).
I used the term 'skill' with a grain of salt.
Possibly a kind soul would lend a hand on the final version. :)

thanks
Stuart

--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


[Emc-users] Am I overloading the servo loop with my spindle encoder?

2008-12-14 Thread Tom
I am using the Mesa 5i20/7i33 system to retrofit my knee mill. I just finished
installing a 500 line (2000 ppr) encoder on the spindle, it is connected to the
Enc03 quadrature inputs on P2. 
My timing settings in my ini file are:
BASE_PERIOD =35000
SERVO_PERIOD =   100
TRAJ_PERIOD =1000
My spindle is capable of turning at a max of about 6000 rpm. But above 3000 rpm,
my floating point value on the hal pin: rev-scaled starts to bounce all over
the place. At full spindle speed my encoder is turning at the rate of 120,000Hz
(pulses per second).

My question is:  Is this too fast for my servo thread? If so, is it possible to
read every other pulse? 

Thanks,
Tom


--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Am I overloading the servo loop with my spindle encoder?

2008-12-14 Thread Stephen Wille Padnos
Tom wrote:

I am using the Mesa 5i20/7i33 system to retrofit my knee mill. I just finished
installing a 500 line (2000 ppr) encoder on the spindle, it is connected to the
Enc03 quadrature inputs on P2. 
My timing settings in my ini file are:
BASE_PERIOD =35000
  

Unless you're using fast I/O on the parallel port or similar, you 
probably don't need the BASE thread at all.

SERVO_PERIOD =   100
TRAJ_PERIOD =1000
  

These are fine, though these days the TRAJ thread often gets run at the 
same rate as the servo thread (1ms).

My spindle is capable of turning at a max of about 6000 rpm. But above 3000 
rpm,
my floating point value on the hal pin: rev-scaled starts to bounce all over
the place. At full spindle speed my encoder is turning at the rate of 120,000Hz
(pulses per second).
  

I think there's something off in your calculations :)

2000 counts/rev * 3000 revs/min = 6,000,000 counts/minute
Dividing by 60 gives 100,000 counts/second at 3000 RPM, at 6000 RPM it 
would be 200 kHz.

Are you sure the encoders are up to it?  Do you have differential or 
single ended encoders?  Is there noise filtering on the encoder lines?

My question is:  Is this too fast for my servo thread? If so, is it possible to
read every other pulse? 
  

No, this isn't too fast.  The Mesa board can count at 1 MHz (x4 = 4 
million counts/sec) in single ended mode, or ~10 MHz (40 M counts/sec) 
in differential mode.  The manual does have a note: The maximum input 
frequency may be lower with encoders that have high value (1K Ohm) 
pullup resistors on open collector outputs.  The counter in the Mesa 
card shouldn't overflow between reads (at a 1ms servo rate) until you 
get to 32 million counts/sec (or 8 billion if it's 24 bits, I don't 
remember which it is :) )

- Steve


--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Am I overloading the servo loop with my spi ndle encoder?

2008-12-14 Thread Tom
Stephen Wille Padnos spad...@... writes:


 I think there's something off in your calculations :)
 
 2000 counts/rev * 3000 revs/min = 6,000,000 counts/minute
 Dividing by 60 gives 100,000 counts/second at 3000 RPM, at 6000 RPM it 
 would be 200 kHz.

Stephen,

I forgot to mention that I have a 1:1.5 step up pulley driving the spindle.
Motor top speed is limited to 3,540 right now, so that is where I got my 120 
KHz.
 

 Are you sure the encoders are up to it?  Do you have differential or 
 single ended encoders?  Is there noise filtering on the encoder lines?

The encoder is a older Northern Precision Labs differential model. The line
drivers in the encoder are DS8830N(s) - I checked the driver's output full wave
propagation delays which are approx 35 ns max, which should be good for 250KHz.
I could not find a spec sheet on the encoder itself. It is likely that the
encoder has a bandwidth limitation that is causing my problem. I will look at
the outputs on the scope tomorrow. Also, I connected my cable shield to power
ground in the computer ribbon cable, so that may be causing excessive noise
feedback. 
You have to jumper the Mesa 7i33 for differential inputs, and I think it  has
noise filtering. 

Thanks,
Tom





--
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users