I am an unashamed proponent of APT so take these comments in that light.

On Sat, Feb 25, 2012 at 11:43 PM, Erik Christiansen <dva...@internode.on.net
> wrote:

> On 19.02.12 09:29, Kirk Wallace wrote:
> > In looking at the wiki APT page:
> > http://wiki.linuxcnc.org/cgi-bin/wiki.pl?AptProgrammingForEMC
> >
> > there is a link:
> > http://www.nfrpartners.com/nfraptlang.htm
> >
> > What comes to mind is that APT may not be easier for simple g-code
> > tasks,
>
> Kirk, you've probably won the intergalactic grand prize for
> understatement, there.

Not an understatement, just fact. For dead simple one time projects APT is
not the most efficient use of a tool.


> During a break from the gcode translator, I've
> just taken a peek at that link, and I am stunned. Viesturs was right.
> APT is (I think) just too laborious to compose or interpret, due to
> unbelievable prolixity (and therefore lexical complexity which is beyond
> human comprehension, unless an impractical amount of time and sweat is
> invested in mentally merging and resolving the disparate sections.)
>
It is not often I must look up a word to even come close to understanding
it. Prolixity got me here. Every day is a good day to learn. :)
APT is wordy but it turns out prolixity is a positive.


> The example at the link demonstrates the language's complexity problems
> quite well. To generate just 4 arcs and 4 straight lines, it uses 47
> code lines! Gcode does that in 8. It is clearly a CAM language, with a
> high level of flexibility. But it is a pig to read, too great a quantity
> of mire to wade through, and I can't help thinking it's overkill for any
> simple job.
>

preface to my comments - for me Latin is a pig to read - for me Russian is
a pig to read

The 47 lines completely describes the geometry and the process necessary to
cut the part. An APT programmer can read this as someone reads a sentence
in their native language.
Comparing the process needed to program something more complicated than a
square with filiet corners you will find APT has less prolixity and
contains all the information needed to understand the current process AND
to modify the current process six months later after the calculation notes
are lost from the desktop.
Comparing the process needed to program the same part in other CAM systems
you will find APT is usually not much more 'wordy' (if you loosely define
wordy to include mouse clicks).
NCL (my current APT application) has the menus and mouse capability to do
most things without typing much. It has the added benefit some CAM systems
probably don't have - writing the language concurrent to mouse clicks. This
allows you to save the process for troubleshooting and/or historical needs.


> > but if one had a part where features are connected, such as the
> > example with connected arcs, if one feature is changed, APT
> > automatically changes related features(?). Plus it seems to handle 3D
> > features, which to me doesn't seem reasonable to do with hand g-coding.
>
> Dunno that I'm immediately convinced that the enormous price is offset
> by significant benefits. If we need to move a gcode arc, because the
> straight line leading into it grew by half an inch, then it is moved
> automatically if the arc centre position is relative, isn't it?
>
A square plate or pocket is an overly simplified comparison.
Moving the just one arc center of a square will not work in gcode. If you
move both arc centers on one side of the part you must also move the end
points of the G02/G03 lines a commensurate amount.
If you move only one are or if you have a 4 walled pocket that the lines
are not parallel to an axis you will need to get out the pen, paper and
calculator to calculate new entry and exit points for the gcode. Or you can
fire up a point and click CAM system to regenerate the geometry to extract
the new gcode endpoints so you can implement them in the 'simpler' gcode
program. Likely not a 'prolixity' reducer here.


> If the arc is 90°, and we exit to another straight line, then it has to
> be manually moved to be tangent again, if that is what we want. But
> there might not be meat out there, and the new design might need an
> S-bend, i.e. a second arc in the opposite direction (or some other
> fiddle), to come back to the exit line. No amount of language smarts can
> predict the size and shape of the new casting which will roll in the
> door, so the motion tweaking has to be manual in any event, I suspect.
>
> > It looks like APT360 is usable, it might be worth while to formulate
> > ways to make it more convenient to use, and go from there.
>
> Weeelll, for various values of "worth while", making it more convenient
> to use would have to be an improvement. But as ancient Irish wisdom has
> it, "If I was going there, I wouldn't start from here."
>
Admittedly, since I am already here if I was going there (or anywhere past
there), I would start from here. :)


>
> Gcode seems good for expressing machine motion, except that it is at the
> other extreme - it is too terse, and in no way mnemonic.
>
> In another break from adding gcode translation, I've just added handling
> of included files. That allows common machine initialisations to be
> stored in files, and included in new programs by a single line. It also
> allows collections of related subroutines in a single file (named as the
> user
> pleases), which become part of the including program, at the point of
> inclusion.
>
> The next step is to add an alias (or #define) command, which will allow
> the user to give meaningful names to #5400 and its friends. Without
> explanatory comments, I'd be surprised if anyone could walk up to a
> gcode program and instantly know what an expression using #5400 and/or
> #5410 is doing. A meaningful variable name can fix that.
>
> And wouldn't it be more useful to be able to use something along the
> lines of Workspace[2,Z] instead of #5243?
>
> ISTM that APT is a Bridge Too Far, and incremental improvements in what
> we have are more achievable.
>
Building the bridge IS more time consuming (read expensive in time and/or
money) but a bridge is much more usable then a log thrown across the creek.
We have three other CAM systems here. We use one other CAM system beside
our APT system. Two of the systems were tried and not used. When the part
gets too complicated for the one other system we use we will use our APT
system to program it. We have five programmers, of which I am one of them,
four know APT and one doesn't. The programmer that doesn't know our APT
system can program almost anything that comes through the door. The four
programmers that know our APT system can program anything that comes
through the door. Most of the time this is not a big difference but
sometimes this is the critical difference. I will always push for the tool
that has no limits, APT or LinuxCNC or whatever other tool without limits
there may be.

my caveat
I, in no way, advocate the use of APT in the direct control of equipment. I
believe gcode is the best machine language. Gcode is the result of
calculations - APT is a step in front of the calculation. This introduces
an uncertainty in the resultant machine control process. I would not want
to have that uncertainty in my machine control. For simple parts not much
more complicated than the previously discussed four sided part there would
surely be few problems but for more complicated parts you will find
problems pop up - always at the most expensive, inopportune time.

I need to be clear on this point.
My advocation of a linux port of APT is purely a selfish desire. This
involves financial and fanatical (sometimes read as philosophical) arenas.
:)

thanks for listening
Stuart


> Erik
>
> --
> C hasn't changed much since the 1970s. And let's face it it's ugly.
> Can't we do better? C++? (Sorry, never mind.)      - Rob Pike
>
>
> ------------------------------------------------------------------------------
> Virtualization & Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>



-- 
dos centavos
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to