CNC 101 was Re: what is POSTPROCESSOR? a fundamental question
Posted by
ballendo
on 2003-03-05 06:28:17 UTC
Jerry,
Let me take a stab at this. First, see my just posted message, as I
will refer to it here...
A post processor is the last part of #2 (CAM)
From your message, it appear that you may be a programmer of
computers? Then let's speak your language.
The post processor is the compiler. The part geometry (#1,CAD) is the
source code. The controller(#3,CNC) is the hardware the compiled
program "runs" (includes the runtime dlls, processes, ports, and cpu).
More snips, inserts below...
Your interpreter program is performing the CNC function.
which your interpreter/port driver "understands".
interpreter/port driver program so it makes the correct motor moves
based on the g code gotten from the dxf to gcode tranlator program;
then you are right.
result in LOTS of calculation and MULTIPLE writes to the port. Some
will not go to the port pins at all. Here are three examples to
illustrate:
example 1:
N100 M03 S1000 (turn spindle on cw at 1000rpm)
The port pin which turns the spindle motor on will be "set" when this
line of the gcode is executed. (FWIW, lines of gcode are properly
called blocks)
example2:
N110 G01 X1 Y2 F12 (feed from current position to the coords given at
12 units per minute)
The port pins for x step and dir, and y step and dir; will be pulsed
in a manner to accomplish a straight line move to the x1y2 position.
This will involve calculations for speed, interpolation, checks for
whether the control is in absolute or incremental mode, calcs to
determine the number of pulses to send, etc. LOTS of writes to the
port pins will be made as a result of the control executing this line.
example3:
G92 X0Y0 (load the display for x and y with zero)
In this final example, nothing is sent to the port pins at all. The
control makes an internal change, and updates the display of the x
and y coordinates when this line is executed.
So you can see that the CNC control does far more than just "send
gcode to the port pins" (and these examples were VERY basic).
Remember, the CNC control (whether it is hardware based, or software
based), is tasked with accomplishing the correct drive of the motors
to traverse the desired toolpath (#3 in my previous post). The
toolpath is derived FROM the part geometry. Let me add something here
re: post processors:
As Fred S (and a couple of others) wrote, a post processor does MORE
than JUST convert the part geometry to a toolpath. It ALSO considers
the machine structure and capabilities, and MODIFIES the gcode so
that the machine is not "asked" to do something it cannot accomplish
mechanically. And as Doug mentioned, it ALSO may try to take into
consideration the TOOL shape, and cutting action, and MODIFY the
toolpath further so that the material is most effectively cut. Let's
give another example:
We are both on a lawn in need of mowing. YOU are pushing a lawnmower.
I am standing in the middle of the lawn. Now the part geometry says
that I am to remain standing and not cut off, or run-over. (This
would be the extent of the information provided by the DXF file.)
But you could do this a few different ways. You could mow in rows
until you got to me when you could just veer around me and come back
on the next row and veer around again, leaving me standing. You have
done what the part geometry requires. Bu what if your mower cant make
a sharp enough turn to leave the grass near me cut, without cutting
me down also? Now you have to use a different cutting strategy, based
on the limitations of your mower... So maybe you cut the whole lawn
in wide circles, overlapping, with part of each circle coming near
enough to me to satisfy the geometry requirements. You are not
turning the mower sharply, so this accomplishes BOTH what the part
geometry (DXF) requires; AND what the mower (CNC machine) is capable
of!
The post processor is what "decided" to use the wide overlapping
circles instead of the back and forth rows to cut the lawn. It had to
consider the needs of BOTH the part geometry AND the machine
capabilities to create the necessary mowpath (toolpath).
processor is needed or not depends on BOTH the machine being
controlled AND the means by which the part geometry is
defined/determined/delivered. In the last example, if the mower could
make a tighter turn, you could have mowed in rows without killing me!
And if you were allowed to leave the grass standing near me(the part
geometry was different), you ALSO could have mowed in rows...
information from numbers and move according to these numbers; i.e.,
(numerically controlled): AND if the computer used can provide the
numbers "needed" by these motors to move in the "correct" way for the
machine capabilities (not too fast, or too far,etc.), THEN you have a
viable computer numerically controlled (CNC) machine.
Hope this helps,
Ballendo
P.S. The post processor is one means to use a common "base" language
(gcode) and "port" it to different platforms (controls/machines).
Sort of like the C computer programming language. Remember, the post
processor is the compiler; which is creating a program to run on a
specific platform. The source code is the same (ideally); but you use
compiler switches or a different compiler(post processors) to target
your executable (the final output gcode) different os's(the
controls/machines).
Let me take a stab at this. First, see my just posted message, as I
will refer to it here...
A post processor is the last part of #2 (CAM)
From your message, it appear that you may be a programmer of
computers? Then let's speak your language.
The post processor is the compiler. The part geometry (#1,CAD) is the
source code. The controller(#3,CNC) is the hardware the compiled
program "runs" (includes the runtime dlls, processes, ports, and cpu).
More snips, inserts below...
> Jerry Kimberlin wrote:Yes, in this case you are doing the functions of a post processor.
> Thanks, Tim. So a post processor is just something that provides
> G-code. I have a CNC xy table and I just type the G-code lines
> into my computer using a compiler program that interprets the
> G-code and sends the pulses out the parallel port. I guess I am
> my own post processor.
Your interpreter program is performing the CNC function.
>This means that any program that can translate DXF to G-code is allYes, as long as that program translates the dxf "source" into g-code
>that is necessary.
which your interpreter/port driver "understands".
> Then I can port that G-code set into my compiler so I don't have toIf what you are saying here is: that you will adjust your
> type it in manually.
interpreter/port driver program so it makes the correct motor moves
based on the g code gotten from the dxf to gcode tranlator program;
then you are right.
> It sounds like all the programs you mention are just programsOnly some g codes will be directly "sent" to a port pin. Most will
> that take G-code and send it to specific pins on a parallel
> port.
result in LOTS of calculation and MULTIPLE writes to the port. Some
will not go to the port pins at all. Here are three examples to
illustrate:
example 1:
N100 M03 S1000 (turn spindle on cw at 1000rpm)
The port pin which turns the spindle motor on will be "set" when this
line of the gcode is executed. (FWIW, lines of gcode are properly
called blocks)
example2:
N110 G01 X1 Y2 F12 (feed from current position to the coords given at
12 units per minute)
The port pins for x step and dir, and y step and dir; will be pulsed
in a manner to accomplish a straight line move to the x1y2 position.
This will involve calculations for speed, interpolation, checks for
whether the control is in absolute or incremental mode, calcs to
determine the number of pulses to send, etc. LOTS of writes to the
port pins will be made as a result of the control executing this line.
example3:
G92 X0Y0 (load the display for x and y with zero)
In this final example, nothing is sent to the port pins at all. The
control makes an internal change, and updates the display of the x
and y coordinates when this line is executed.
So you can see that the CNC control does far more than just "send
gcode to the port pins" (and these examples were VERY basic).
Remember, the CNC control (whether it is hardware based, or software
based), is tasked with accomplishing the correct drive of the motors
to traverse the desired toolpath (#3 in my previous post). The
toolpath is derived FROM the part geometry. Let me add something here
re: post processors:
As Fred S (and a couple of others) wrote, a post processor does MORE
than JUST convert the part geometry to a toolpath. It ALSO considers
the machine structure and capabilities, and MODIFIES the gcode so
that the machine is not "asked" to do something it cannot accomplish
mechanically. And as Doug mentioned, it ALSO may try to take into
consideration the TOOL shape, and cutting action, and MODIFY the
toolpath further so that the material is most effectively cut. Let's
give another example:
We are both on a lawn in need of mowing. YOU are pushing a lawnmower.
I am standing in the middle of the lawn. Now the part geometry says
that I am to remain standing and not cut off, or run-over. (This
would be the extent of the information provided by the DXF file.)
But you could do this a few different ways. You could mow in rows
until you got to me when you could just veer around me and come back
on the next row and veer around again, leaving me standing. You have
done what the part geometry requires. Bu what if your mower cant make
a sharp enough turn to leave the grass near me cut, without cutting
me down also? Now you have to use a different cutting strategy, based
on the limitations of your mower... So maybe you cut the whole lawn
in wide circles, overlapping, with part of each circle coming near
enough to me to satisfy the geometry requirements. You are not
turning the mower sharply, so this accomplishes BOTH what the part
geometry (DXF) requires; AND what the mower (CNC machine) is capable
of!
The post processor is what "decided" to use the wide overlapping
circles instead of the back and forth rows to cut the lawn. It had to
consider the needs of BOTH the part geometry AND the machine
capabilities to create the necessary mowpath (toolpath).
> So, any machine that is controlled via a parallel port onNo. The parallel port is part of the #3 step of CNC. Whether a post
> a computer has no need of any program called a "post processor"
> that is specific for a particular machine, a priori.
processor is needed or not depends on BOTH the machine being
controlled AND the means by which the part geometry is
defined/determined/delivered. In the last example, if the mower could
make a tighter turn, you could have mowed in rows without killing me!
And if you were allowed to leave the grass standing near me(the part
geometry was different), you ALSO could have mowed in rows...
> So long as that machine has motors and drivers, any computer canLet's just say that if a machine has motors which get their position
> control any machine so conceived.
information from numbers and move according to these numbers; i.e.,
(numerically controlled): AND if the computer used can provide the
numbers "needed" by these motors to move in the "correct" way for the
machine capabilities (not too fast, or too far,etc.), THEN you have a
viable computer numerically controlled (CNC) machine.
Hope this helps,
Ballendo
P.S. The post processor is one means to use a common "base" language
(gcode) and "port" it to different platforms (controls/machines).
Sort of like the C computer programming language. Remember, the post
processor is the compiler; which is creating a program to run on a
specific platform. The source code is the same (ideally); but you use
compiler switches or a different compiler(post processors) to target
your executable (the final output gcode) different os's(the
controls/machines).
>
> JerryK
Discussion Thread
Asim Khan <asimtec@y...
2003-03-03 06:24:09 UTC
what is POSTPROCESSOR? a fundamental question
Tim Goldstein
2003-03-03 07:20:21 UTC
RE: [CAD_CAM_EDM_DRO] what is POSTPROCESSOR? a fundamental question
stevenson_engineers <machines@n...
2003-03-03 14:32:04 UTC
Re: what is POSTPROCESSOR? a fundamental question
Tony Jeffree
2003-03-03 15:28:09 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
Fred Smith <imserv@v...
2003-03-03 16:51:45 UTC
Re: what is POSTPROCESSOR? a fundamental question
yethdear0 <yethdear0@y...
2003-03-03 16:52:38 UTC
Re: what is POSTPROCESSOR? a fundamental question
doug98105 <dougrasmussen@c...
2003-03-03 17:46:14 UTC
Re: what is POSTPROCESSOR? a fundamental question
Jerry Kimberlin
2003-03-03 19:53:53 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
Tim Goldstein
2003-03-03 21:26:24 UTC
RE: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
William Scalione
2003-03-03 21:38:52 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
Tony Jeffree
2003-03-03 23:08:35 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
stevenson_engineers <machines@n...
2003-03-04 01:30:03 UTC
Re: what is POSTPROCESSOR? a fundamental question
James Cullins
2003-03-04 05:49:25 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
glee@i...
2003-03-04 06:30:55 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
Fred Smith <imserv@v...
2003-03-04 07:14:33 UTC
Re: what is POSTPROCESSOR? a fundamental question
Raymond Heckert
2003-03-04 17:08:28 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
Jerry Kimberlin
2003-03-04 19:07:27 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
Tim Goldstein
2003-03-04 19:15:05 UTC
RE: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
Jerry Kimberlin
2003-03-04 20:55:55 UTC
Re: [CAD_CAM_EDM_DRO] Re: what is POSTPROCESSOR? a fundamental question
ballendo
2003-03-05 06:28:17 UTC
CNC 101 was Re: what is POSTPROCESSOR? a fundamental question
Marcus & Eva
2003-03-05 08:22:25 UTC
Re: [CAD_CAM_EDM_DRO] CNC 101 was Re: what is POSTPROCESSOR? a fundamental question
dakota8833
2003-03-05 21:33:03 UTC
CNC 101 was Re: what is POSTPROCESSOR? a fundamental question
ballendo
2003-03-05 22:31:52 UTC
CNC 101 was Re: what is POSTPROCESSOR? a fundamental question