CAD CAM EDM DRO - Yahoo Group Archive

Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen

on 2000-12-06 12:44:46 UTC
Hi Ballendo,

Yeah, I got caught up in something that just "seemed" to fit right in
with what I was doing. Goes back to the Generic "black box" that
several of us think we should be using for generating pulses.

I did find some URL's while searching, posted below, might be useful for
others!


ballendo@... wrote:
>
> Alan, Wally,
>
> Not sure what you're looking for here. I think Alan wants to know how
> to do interpolated moves of multiple axes? Wally wants a "driver???"
> for EMC?

I'm wanting to go past the Jog code, and run multiple axis. Learn a
little! Now where was that DDA code...

>
> So I have some "guesses" as to what you are looking for below:
>
> Wally, I believe you are right that Mariss' pulsegen is going to need
> some software to set the rates for the axes/axis. Also, at 8191hz max
> output some screw/drive/pulley setups will not be serviceable.
>
> Since Mariss provided the circuit, keep in mind his "pulse
> multiplied" drives may allow some of these high freq. apps to work. I
> haven't "done the math" to see just what sort of errors accumulate at
> different angles of 2 or 3 axis motion. (doing it the way Alan
> suggested; set it and go!)

I'd still like to know if this is the intent (set rates and go),
otherwise, as in a software implementation, each pulse is generated
individually by DDA code.

>
> As for "EMC driver", what do you mean? Do you want to incorporate
> this pulsegen circuit into EMC? If so, Mariss has provided the info
> needed to get started in the .doc file. (send 2 byte "rates" 1024
> times/sec for each axis, I believe)
>
> Alan,
>
> Interpolation of multiple axes can be done MANY ways! I'll give you
> and anyone else who's listening a hint. The screen you are looking at
> to read this "interpolates axes" when it draws angled lines in
> graphics modes.

I have actually used "slope" of a line to generate movement, but it DOES
take several Floating Point calc's to accomplish. DDA's should be able
to do it with long integers.

>
> The "grandfather" of the linear interpolation algorithm used by many
> graphics applications is Jack Bresenham, who used to work for IBM and
> in 1965 wrote a paper for IBM's system journal titled(i think) "a
> fast line drawing algorithm". He's now teaching at a university in
> the eastern U.S.. A nice man to talk with, but do some research first!
>
> Anyway, his algorithm has been added to, chopped up, modified,
> improved upon but is still useful to begin understanding the problem
> of "picking the correct/best points (from the finite set that IS the
> screen or CNC machine work area) to most accurately represent the
> desired line". He also holds a patent on a fast circular algorithm.
>

So then his algorithm IS a good way to "pick the best points"! I dumped
out some runs of numbers from my implementation of an linear
interpolation algorithm, but it wasn't easy to tell how well my "Y = mX
+ b" was working.

Jack Bresenham is now at Winthrop University, I understand from a URL
below. A search for "Bresenham" and "stepper" Turned up some material
last night: (or TONS if you just look for Bresenham).

http://www.cs.unc.edu/~davemc/Class/136/Lecture9/Lines.html
This one has some nifty Java stuff to show how some of the DDA stuff
works!

http://www.cs.helsinki.fi/group/goa/mallinnus/lines/bresenh.html

Also good. Hopefully enough to get me going on it.

> Another fast circular interp is in the book "numerical methods". I'm
> working from memory so I don't have the authors name. Source in C in
> the book and included CD.

I thought the circular interp was DDA? I'll need that next. This book
sounds familiar, although I don't remember a CD? (OK, I probably saw it
BEFORE there were CD's). If you can find the author, I'd appreciate it.

>
> The book Graphics GEMS (available online) contains many code examples
> (old versions were pascal or BASIC, new editions use C or C++) which
> will prove useful to someone intending to "write a CNC control".

> Obviously, the needed code IS in the EMC source! If you understand C.

GEMS sounds good, I've been to the EMC site several times, but not come
away with much. I looked at the "parallel port interface" file; WAY to
much work to talk to a simple parallel port IMHO. (not meant to be a
negative statement!) When I find the "MEAT" on the interpolation
algorithms, I could probably get/learn something from that!

>
> Also in Kevin Carrols' Stepster source and the informative
> explanation of stepster titled "exactly how a cnc works". Both
> available at http://www.metalworking.com . Click the shareware link
> and scroll down...

Is that the step969 and step11 BASIC code I remember? I remember having
a horrible time trying to download the files on an old machine with old
OS/Netscape software. Never did run it, didn't have hardware at the
time. Something to look at!

>
> Luberths' home build plotter site and forum (do a search) has lots of
> 2 and 3 axis code examples in pascal, BASIC, and c . Also some good
> hpgl interpreters. It has been fun to watch his learning curve and
> progression.

"Luberths" didn't find anything, but I recall "homebuilt plotters" site
that came up with my Bresenham link and a hole lotta good stuff:

http://www.geocities.com/SiliconValley/Lab/3685/plotter/plotter.htm


> A company in Hayward (near Fremont), California called Silicon Valley
> Surplus used to sell a "motion control system" (based on the morrow
> CPM computer). They were selling mostly low-end "laser show" stuff
> last time I checked, but they do/did have available some 4 axis
> interpolation step motor code (in BASIC)on disk which is easy to
> follow and adapt. The early, original code was written in forth by
> George Borys. I believe DeskNC used/uses their algorithms. Carl?
>
Haven't found "Silicon Valley Surplus" yet, but a search found a list of
"Silicon Valley Surplus" stores/swap meets:

http://www.kce.com/junk.htm

I'd like to find this store! But Hayward would be a drive.


> Microchip (makers of the PIC uP's) had a servo drive with software
> source in one of their application handbooks a few years back.
>
> And of course the book I mentioned in an earlier thread is useful
> (Chuck Raskin).
>
> Hope this helps. (and is somewhere near the mark)
>
> Ballendo
>
> P.S. The older routines were optimised to use the limited processing
> power of the old microprocessors' (avoid divides at all cost,use
> shifts and adds if possible, and multiply only when really
> necessary). Nowadays, many of the "interp" routines just "code the
> straight math" and let the incredible speed "make up" for the old
> methods. Mariss referred to doing this in his pulsgen.doc paper.
>
> P.S.S. List, while we're here in this "interpolate and algorithms"
> thread; maybe others can write what or where to find related info for
> those wishing to "write a cnc control"???
>

I'd sure appreciate it, and I'd like to know others who are interested
in this pursuit.

Thanks Ballendo,

Alan KM6VV

Discussion Thread

Alan Marconett KM6VV 2000-12-06 12:44:46 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Jeff Barlow 2000-12-06 14:50:07 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Mariss Freimanis 2000-12-06 15:12:20 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Wally K 2000-12-06 16:11:43 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Mariss Freimanis 2000-12-06 16:18:12 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen PhilC 2000-12-06 16:28:04 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Wally K 2000-12-06 17:01:52 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Wally K 2000-12-06 17:27:35 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen PhilC 2000-12-06 17:30:32 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Wally K 2000-12-06 17:43:11 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen PhilC 2000-12-06 18:43:29 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Wally K 2000-12-06 19:01:44 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Jeff Barlow 2000-12-06 19:09:49 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen PhilC 2000-12-06 19:18:12 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Mariss Freimanis 2000-12-06 21:51:54 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Wally K 2000-12-07 04:21:10 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Smoke 2000-12-07 07:12:30 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Dan Mauch 2000-12-07 07:22:24 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Mariss Freimanis 2000-12-07 07:55:19 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Dan Mauch 2000-12-07 08:44:54 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Wally K 2000-12-07 09:28:30 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen Smoke 2000-12-07 10:19:49 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Ian Wright 2000-12-07 14:29:20 UTC Re: [CAD_CAM_EDM_DRO] interpolation and algorithms of multiple axes was Re: Pulse Gen Mariss Freimanis 2000-12-07 14:46:27 UTC interpolation and algorithms of multiple axes was Re: Pulse Gen