ngcgui preamble postamble

More
10 years 10 months ago #67086 by Rick G
One of the neat features of NGCGUI is that you can string together several subs before you finalize.
You can select a preamble to run just once with the "features" parameter.
So your preamble could start the spindle with a M3 or call a sub to light a plasma torch.
And not be repeated for the remaining subs.
You can also select a postamble to run at the end, such as a M5.
However it appears that the postamble runs at the end of each sub not just the last one.
Is there a parameter to avoid this?

Rick G

Please Log in to join the conversation.

More
10 years 10 months ago #67087 by dgarrett
Replied by dgarrett on topic ngcgui preamble postamble

You can select a preamble to run just once with the "features" parameter.

I think you are referring to the #<_feature> global that is incremented for each feature.
Code:
ngcgui inserts a special global variable named #<_feature:> that begins with a value of 0 and is incremented for each added feature. This _global can be tested in subroutines; no entry box is created for it.

Is there a parameter to avoid this?

There is no such parameter but you could:
1) Make a subroutine that does what you want (M5.ngc for example) and invoke
it as the last subroutine in the chain
or
2) Use a 'custom' tab, specify a final subroutine (no-op.ngc if necessary),
specify a final postamble in the tab, invoke this subroutine last in the chain.
(A custom tab is specified with NGCGU_SUBFILE="")
or
3) Use the option "NGCGUI_OPTIONS=noiframe and manually specify a different
postamble for the last subroutine in the chain

Please Log in to join the conversation.

More
10 years 10 months ago #67089 by Rick G
Replied by Rick G on topic ngcgui preamble postamble
dgarrett,

I think you are referring to the #<_feature> global that is incremented for each feature.


Yes, I was away from the computer.
I have used both 1 and 2 above in the past, but it would nice to have something more automatic.
Again thanks for your work on NGCGUI!

Rick G

Please Log in to join the conversation.

More
10 years 10 months ago #67093 by dgarrett
Replied by dgarrett on topic ngcgui preamble postamble
Rick,

I made a patch that causes (py)ngcgui to create a global that
can be tested in the subroutine (or the preamble or postamble):
Code:
#<_last_feature:> == 1 if last feature, 0 otherwise

The tar file includes the patch and updated ngcgui.tcl, pyngcgui.py:
www.panix.com/~dgarrett/stuff/last_feature.tgz

If you test both files and this fix meets your needs, i would make
a commit to put it in git master.

Note: if a subroutine that tests this variable is used in other
contexts (e.g., not ngcgui), it should test first for the existence
of the variable using the EXISTS[arg] function
ref: linuxcnc.org/docs/2.7/html/gcode/overview.html#gcode:functionsj

Please Log in to join the conversation.

More
10 years 10 months ago #67103 by dgarrett
Replied by dgarrett on topic ngcgui preamble postamble
Rick,

I had a better idea and made a new patch for a more general solution:
www.panix.com/~dgarrett/stuff/remaining_features.tgz

With this version, the global variable created is a count of the
number of features remaining after the current feature:
Code:
#<_remaining_features:>
So a value of zero indicates the current feature is the last.
You could also use it to print the number of features remaining.

Please Log in to join the conversation.

More
10 years 10 months ago #67123 by Rick G
Replied by Rick G on topic ngcgui preamble postamble
Dewey,

That is great! Just tried it on ngcgui with no postamble and I think it is a great new feature.

For example I edited slot.ngc by adding...
Code:
;adding to test remaining features (debug, remaining features, #<_remaining_features:>) o<i3> if [#<_remaining_features:> EQ 0] m5 (debug, m5 last remaining features, #<_remaining_features:>) o<i3> endif

As you said with this you get a running count down on the screen of the features that are running and a action to be taken after the last feature.

Thanks for the great addition.

Rick G

Please Log in to join the conversation.

More
10 years 10 months ago #67129 by dgarrett
Replied by dgarrett on topic ngcgui preamble postamble
ok -- pushed to master, thanks for the suggestion

git.linuxcnc.org/gitweb?p=linuxcnc.git;a...2e28958f6e440f00dd65

Please Log in to join the conversation.

Time to create page: 0.082 seconds
Powered by Kunena Forum