I make extensive use of the @OP sections, TABLE words and jos data tags and I have a few notes to share:
As I recall #COOLNT is a system defined table word that is automatically assigned the integer value of jos(coolant). The only thing you need to do in the template is add the @COOLNT table for the supported coolant commands. The use of #EVAL(#COOLNT=jos(coolant)) is redundant. A very important note on the use of #CYCLE. If you use #CYCLE in a FXD or OP section you should always have an #UPDATE(#FXD) in that section as well. The problem is that #CYCLE will call a cycle, i.e. G81, but #FXD will cancel the cycle, i.e. G80. There is no built in relationship between the two words as to when the canned cycle status has changed. ================================================== Fred Lauzus, CAM Programming Coordinator High Steel Structures, Incorporated mailto:[EMAIL PROTECTED] http://www.highsteel.com ================================================== -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of John Gent Sent: Thursday, April 15, 2004 10:04 AM To: [EMAIL PROTECTED] Subject: [mfg-smartcam] FXD vs OP sections Hi all, Last week I posted a thing about using old methods in code generation. Another old method I still see being used is the use of the @FXD sections. And how about something that doesn't get used much - JOS tags and table variables. (perhaps explaining table variables would be a good, separate topic?) I thought I'd post a snippet of a fictitious template file that uses this newer stuff, with some descriptions. I'll explain further what this is doing later. Here we go ... /////////////////////////////// @DECLARE #TBL #geometry // Declare a user table variable. #DEC #mypeck // Declare a variable used for a peck value. @ @START % #ONBLK @ @TOOLCHG G80 @ @END G80 M30 #OFFBLK% @ // This used to be @FXD5 - peck drilling operation. This one is set up // for two types of peck, explained below. @OP_PDRL // Get the JOS tag value for Step - Operation - Coolant. // (page 175, Customization Guide) #EVAL(#COOLNT=jos(coolant)) // Get the JOS tag value for Cycle. // Use Cycle 1 for chip break (G73), Cycle 2 for full retract (G83). #EVAL(#CYCLE=jos(cycle)) // Get the JOS tag value for Step - Tool - Geometry. // Use this to lookup up peck amount for G73. // G83 will use the amount from the SMF file. #EVAL(#GEOMETRY=(jos(geometry)) // Output the system table variable #COOLNT // The value is obtained from the global table @COOLNT < #COOLNT> // If Cycle = 0 // use the system table variable #CYCLE to get "G73" from the local // table. Use the user table variable #geometry to get the peck // amount from the next local table. Note that in order to get the // "right hand" value, the #TABLE function is required. #IF(#CYCLE=0)<#EVAL(#mypeck=#TABLE(geometry,#geometry))> // Cycle is not 0 // so get the "G83" from the local table, // but use the SMF value from question 150 for the peck amount. #ELSE<#EVAL(#mypeck=#PECK)> // Output the canned cycle. (this IF, ELSE, output set can be done in // two lines, see below. < #CYCLE>< R#CHKD J#mypeck Z#ZDPTH F#FEED S#SPEED #SPNDL> // Output the hole location. < X#XPOS>< Y#YPOS> @@ // Local table of @OP_PDRL accessed by the table variable #CYCLE. @@CYCLE 0,G73 1,G83 @@ // Local table of @OP_PDRL accessed by the table variable #geometry. @@geometry 0,.05 1,.15 2,.1 @@ // End of the @OP_PDRL section processing. @ // Global @COOLANT table. // #COOLNT will access this table if the section it is in // does not have a local (@@COOLNT) table of its own. @COOLNT 0,M09 1,M07 2,M08 3,M08 4,M08 @ /////////////////////////////// The IF, ELSE, Output set, above, can be done in two lines, as follows: #IF(#CYCLE=0)<< #CYCLE>< R#CHKD J#geometry Z#ZDPTH F#FEED S#SPEED #SPNDL>> #ELSE<< #CYCLE>< R#CHKD J#PECK Z#ZDPTH F#FEED S#SPEED #SPNDL>> OK, this template will output a different type peck (chip break or full retract) depending on how the Peck Drilling operation page Cycle is set. For Cycle = "Cycle 1" a G73 is used, and for "Cycle 2" a G83 is used. If a G73 (Cycle 1) is used the template looks at the tools geometry (on the Tool tab - Tool Geometry) and uses a set of peck amounts based on that. If it is a full retract G83 it uses the peck amount from the machine file. Enjoy ... and Cheers! - John Gent McKenzie River Software ====================================================================== To find out more about this mailing list including how to unsubscribe, send the message "info mfg-smartcam" to [EMAIL PROTECTED] ====================================================================== ====================================================================== To find out more about this mailing list including how to unsubscribe, send the message "info mfg-smartcam" to [EMAIL PROTECTED] ======================================================================
