Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

2D High Speed Parameter Call out


Recommended Posts

Hello everyone,
   I'm trying to make the post spits out the OPERATION NAME for the 2D High Speed ToolPaths but I think I did something wrong.  Would you guys give me a hand to point out what I've done wrong?  

Thank you for your time to help me out, have a great July-4th holiday.

 

 

 

s2DCore: 0
s2DPeel: 0
s2DBlend: 0
s2DArea: 0
s2DRest: 0
sDynamicArea: 0
sDynamicRest: 0
sDynamicCore: 0
sDynamicContour: 0



fmt      4 s2DCore
fmt      4 s2DPeel
fmt      4 s2DBlend
fmt      4 s2DArea
fmt      4 s2DRest
fmt      4 sDynamicArea
fmt      4 sDynamicRest
fmt      4 sDynamicCore
fmt      4 sDynamicContour


#Region pHighSpeedNotes
pHighSpeedNotes
          if s2DCore = 1, "2D CORE", e$
	  if s2DPeel = 1, "2D PEEL", e$
	  if s2DBlend = 1, "2D CORE", e$
	  if s2DArea = 1, "2D AREA", e$
	  if s2DRest = 1, "2D REST", e$
	  if sDynamicArea = 1, "DYNAMIC AREA", e$
	  if sDynamicRest = 1, "DYNAMIC REST", e$
	  if sDynamicCore = 1, "DYNAMIC CORE", e$
	  if sDynamicContour = 1, "DYNAMIC CONTOUR", e$
#EndRegion



if prmcode$ = 12713, 
   [
    s2DCore = rparsngl(sparameter$, 0)
    s2DPeel = rparsngl(sparameter$, 1)
    s2DBlend = rparsngl(sparameter$, 2)
    s2DArea = rparsngl(sparameter$, 3)
    s2DRest = rparsngl(sparameter$, 4)
    sDynamicArea = rparsngl(sparameter$, 5)
    sDynamicRest = rparsngl(sparameter$, 6)
    sDynamicCore = rparsngl(sparameter$, 7)
    sDynamicContour = rparsngl(sparameter$, 8) 
   ]


 

ptlchg_com      #Tool change common blocks
   pHighSpeedNotes
ptlchg0$         #Call from NCI null tool change (tool number repeats)
   pHighSpeedNotes
     

 

Link to comment
Share on other sites

You are making it quite a bit harder than you need.

1)   declare one variable

op_type_name_num : -1 

2)  then capture parameter 12713

if prmcode$ = 12713, op_type_name_num = rparsngl(sparameter$, 1)

3)  (option 1)  then do the output the way you did it with some minor tweaks,

pHighSpeedNotes
    if op_type_name_num = 0, "2D CORE", e $
    if op_type_name_num = 1, "2D PEEL", e$
    if op_type_name_num = 2, "2D CORE", e$
    if op_type_name_num = 3, "2D AREA", e$
    if op_type_name_num = 4, "2D REST", e$
    if op_type_name_num = 5, "DYNAMIC AREA", e$
    if op_type_name_num = 6, "DYNAMIC REST", e$
    if op_type_name_num = 7, "DYNAMIC CORE", e$
    if op_type_name_num = 8, "DYNAMIC CONTOUR", e$
    op_type_name_num = -1   #reinit back to -1 so it won't output in the next op

3b)  (Option 2)  or for output you could use a string select table after you gather the value of 12713

 
# --------------------------------------------------------------------------
#Select High Speed Name
s2DCore         :  "2D CORE"
s2DPeel         :  "2D PEEL"
s2DBlend        :  "2D CORE"
s2DArea         :  "2D AREA"
s2DRest         :  "2D REST"
sDynamicArea    :  "DYNAMIC AREA"
sDynamicRest    :  "DYNAMIC REST"
sDynamicCore    :  "DYNAMIC CORE"
sDynamicContour :  "DYNAMIC CONTOUR"
shsname         :  ""

fstrsel s2DPeel op_type_name_num shsname 9 -1
# --------------------------------------------------------------------------

 

and your postblock if you are using the string select table option

pHighSpeedNotes
   shsname, e$ 
   op_type_name_num = -1   #reinit back to -1 so it won't output in the next op

 

 

 

HTH

 

Husker

 

 

  • Like 1
Link to comment
Share on other sites
45 minutes ago, huskermcdoogle said:

You are making it quite a bit harder than you need.

1)   declare one variable


op_type_name_num : -1 

2)  then capture parameter 12713


if prmcode$ = 12713, op_type_name_num = rparsngl(sparameter$, 1)

3)  (option 1)  then do the output the way you did it with some minor tweaks,


pHighSpeedNotes
    if op_type_name_num = 0, "2D CORE", e $
    if op_type_name_num = 1, "2D PEEL", e$
    if op_type_name_num = 2, "2D CORE", e$
    if op_type_name_num = 3, "2D AREA", e$
    if op_type_name_num = 4, "2D REST", e$
    if op_type_name_num = 5, "DYNAMIC AREA", e$
    if op_type_name_num = 6, "DYNAMIC REST", e$
    if op_type_name_num = 7, "DYNAMIC CORE", e$
    if op_type_name_num = 8, "DYNAMIC CONTOUR", e$
    op_type_name_num = -1   #reinit back to -1 so it won't output in the next op

3b)  (Option 2)  or for output you could use a string select table after you gather the value of 12713



 

# --------------------------------------------------------------------------
#Select High Speed Name
s2DCore         :  "2D CORE"
s2DPeel         :  "2D PEEL"
s2DBlend        :  "2D CORE"
s2DArea         :  "2D AREA"
s2DRest         :  "2D REST"
sDynamicArea    :  "DYNAMIC AREA"
sDynamicRest    :  "DYNAMIC REST"
sDynamicCore    :  "DYNAMIC CORE"
sDynamicContour :  "DYNAMIC CONTOUR"
shsname         :  ""

fstrsel s2DPeel op_type_name_num shsname 9 -1
# --------------------------------------------------------------------------

 

and your postblock if you are using the string select table option


pHighSpeedNotes
   shsname, e$ 
   op_type_name_num = -1   #reinit back to -1 so it won't output in the next op

 

 

 

HTH

 

Husker

 

 

Husker,

Everything in your advice is correct, except "reinitialize to -1". You do not want to reset that value. When the Parameter Calls are made, MP will set this for you "automatically". The only time you'd want to set the value manually would be if you wanted to force the value out, the next time it was encountered on an output line. To do that, you should manipulate the "previous" value "prv_op_type_name_num = m_one".

If you want to "prevent" output, then the correct solution would be to "force update" the variable (!) so that we copy the "current" value into the "previous" value:

                  !op_type_name_num

Regarding the variable name, we already know it is a "selector variable", so instead of 'name_num' at the end, you could go with 'op_type_hsm', which more accurately reflects the string parameter that is then converted into a numeric value (using 'rparsngl'), for use in the String Select Table.

  • Like 1
Link to comment
Share on other sites

My brain wasn't thinking about how modality would come into play.  I always forget about ! and the fact that prv_ exist already.  Gonna take a minute to try and beat that in my head.  :rolleyes:

Otherwise, it's nice to be able to throw some stuff out there and have someone else come in and play cleanup.  ;)  I wish when I used to struggle with posts, that I was better at communicating what I was trying to do, onto the forum for some help.  So, now, if I can I am going to help as much as I can, and hope someday, someone will help get me out of a decent bind.

  • Like 3
Link to comment
Share on other sites
19 hours ago, Colin Gilchrist said:

Husker,

Everything in your advice is correct, except "reinitialize to -1". You do not want to reset that value. When the Parameter Calls are made, MP will set this for you "automatically". The only time you'd want to set the value manually would be if you wanted to force the value out, the next time it was encountered on an output line. To do that, you should manipulate the "previous" value "prv_op_type_name_num = m_one".

If you want to "prevent" output, then the correct solution would be to "force update" the variable (!) so that we copy the "current" value into the "previous" value:

                  !op_type_name_num

Regarding the variable name, we already know it is a "selector variable", so instead of 'name_num' at the end, you could go with 'op_type_hsm', which more accurately reflects the string parameter that is then converted into a numeric value (using 'rparsngl'), for use in the String Select Table.

Colin you are saying make that variable name shorter that is just crazy talk? Why not one_really_long_variable_that_is_real_hard_to_keep_track_of_as_name_and_use_it_to_make_your_process_harder_not_work_for_you? Lord forgive me for being ugly right now. :whistle:

  • Like 3
Link to comment
Share on other sites

Hello everyone,
    Thank you for responding me valuable information and I truly appreciated .  This forum labeled me as "ADVANCED MEMBER", I think I'm still knowing nothing base on what you guys see what I've done.  They should put me back to "BEGINNER".

    Once again, thank you huskermcdoogle, Colin and C^MillMan.  It really a big help from you guys, I truly appreciated.

 

 

Best regards,
   S.Luong

Link to comment
Share on other sites
19 hours ago, Colin Gilchrist said:

Husker,

Everything in your advice is correct, except "reinitialize to -1". You do not want to reset that value. When the Parameter Calls are made, MP will set this for you "automatically". The only time you'd want to set the value manually would be if you wanted to force the value out, the next time it was encountered on an output line. To do that, you should manipulate the "previous" value "prv_op_type_name_num = m_one".

If you want to "prevent" output, then the correct solution would be to "force update" the variable (!) so that we copy the "current" value into the "previous" value:

                  !op_type_name_num

Regarding the variable name, we already know it is a "selector variable", so instead of 'name_num' at the end, you could go with 'op_type_hsm', which more accurately reflects the string parameter that is then converted into a numeric value (using 'rparsngl'), for use in the String Select Table.

Hi Colin,
   I tried to do it as you instructed and I got error message as: 
 

07 Jul 2017 07:39:31 AM - PST LINE (5239) - The count passes the target string or target is before the start, , The item count has been re-calculated

This is what I've done, I think I didn't do right...  Please help, thank you for your valuable time.


#Region Custom Defined Variables
#Custom Defined Variables
op_type_hsm : 0
prv_op_type_hsm = m_one
#EndRegion

#Region
# --------------------------------------------------------------------------
#Select High Speed Name
s2DCore         :  "2D CORE"
s2DPeel         :  "2D PEEL"
s2DBlend        :  "2D CORE"
s2DArea         :  "2D AREA"
s2DRest         :  "2D REST"
sDynamicArea    :  "DYNAMIC AREA"
sDynamicRest    :  "DYNAMIC REST"
sDynamicCore    :  "DYNAMIC CORE"
sDynamicContour :  "DYNAMIC CONTOUR"
shsname         :  ""

fstrsel s2DPeel op_type_hsm shsname 9 -1
# --------------------------------------------------------------------------
#EndRegion

#Region pHighSpeedNotes
pHighSpeedNotes
      #if HighSpeed2DToolPathStepOverCoreMill > 0 & tool_op$ > 29 & tool_typ$ > 9 & tool_typ$ < 20, "(2D HIGH SPEED TOOLPATH)", e$, 
      #if HighSpeed2DToolPathStepOverCoreMill = 0 & tool_op$ > 29 & tool_typ$ > 9 & tool_typ$ < 20, "(2D HIGH SPEED TOOLPATH)", e$,
   shsname, e$ 
   !op_type_hsm   #reinit back to -1 so it won't output in the next op
#EndRegion


if prmcode$ = 12713, op_type_hsm = rparsngl(sparameter$, 1)
Link to comment
Share on other sites

Setting the value to '-1' does not tell MP to "not output" the string select. Only modality does this.

When you initialize a variable, MP will set both the current and the previous value to whatever your initial value is. This is the only time MP sets both the Current and the Previous, besides outputting the variable. MP will automatically set the 'prv_' value of the variable, when it is output.

The String Select Mechanism just uses the Modality of the Numeric Selector Variable (op_type_hsm) to determine "should the variable be output, or not?".

I think that Initializing the variable to '-1' in this case is a good idea, since you want the output to occur, even when 'op_type_hsm' is "zero".

But beyond that "initial" setting, using '-1' for the current value of 'op_type_hsm' is a bad idea. It is a bad idea, because '-1' is not a value that is in the "range" of the String Select Function. That range is '0-8'. Setting the previous value to '-1' is OK, but that will force the Target String to be output on the next output line.

To Summarize:

  • When initializing a Selector (numeric) variable for a String Select Table, initialize to '-1' if you want the '0' value to output.
  • OR - initialize the variable to '0', and add the Force Variable Modifier in front of the Target String: *shsname
  • Do not set the current value of the Selector variable to '-1'. This will cause the String Select Function to report an error, if the Target Variable is encountered on a Post Line.
  • You can always ignore modality by forcing the Target String, using the Force Modifier (*shsname), OR by simply setting the previous value of the variable to something "different" from the current value. Here is where '-1' can work for you. If you set (prv_op_type_hsm = -1), that would "force" the output the next time the Target String is encountered on the Post Line.
  • To prevent the Target String from outputting anything, you can Force Update the Selector variable. Just add the variable on a line by itself, with an exclamation point in front of the variable name: (!shsname)

 

  • Like 2
Link to comment
Share on other sites

This is what I did and the only does not satisfy me is the "2D HIGH SPEED BLEND", may be I did not have the right parameter but I tried for a week.  By the way, I am really appreciate for your input HUSKERMCDOOGLE, Colin and you guys are the best.

 

op_type_hsm : 0
prv_op_type_hsm = m_one

# --------------------------------------------------------------------------
#Region Select High Speed Name
# --------------------------------------------------------------------------
sDynamicMill    :  "(DYNAMIC MILL)"
sAreaMill       :  "(AREA MILL)"
sContourMill    :  "(2D HIGH SPEED CONTOUR MILL)"
sPeelMill       :  "(DYNAMIC PEEL MILL)"
sBlendMill      :  "(2D BLEND MILL)"
sDynamicArea    :  "DYNAMIC AREA"
sDynamicRest    :  "DYNAMIC REST"
sDynamicCore    :  "DYNAMIC CORE"
sDynamicContour :  "DYNAMIC CONTOUR"
shsname         :  ""

fstrsel sDynamicMill op_type_hsm shsname 9 -1
#EndRegion

#Region pHighSpeedNotes
pHighSpeedNotes
       if op_type_hsm = 0, sDynamicMill, e$
       if op_type_hsm = 1, sAreaMill, e$
       if op_type_hsm = 2, sContourMill, e$
       if op_type_hsm = 3, sPeelMill, e$
       if op_type_hsm = 4, sBlendMill, e$
       if op_type_hsm = 5, sDynamicArea, e$
       if op_type_hsm = 6, sDynamicRest, e$
       if op_type_hsm = 7, sDynamicCore, e$
       if op_type_hsm = 8, sDynamicContour, e$
       prv_op_type_hsm = m_one       
#EndRegion

 

           if prmcode$ = 12713, op_type_hsm = rparsngl(sparameter$, 1)

 

#Region Tool change common blocks

ptlchg_com      #Tool change common blocks
       pHighSpeedNotes ======================> not spitting out....
      pHighSpeed2DToolPaths

ptlchg0$         #Call from NCI null tool change (tool number repeats)
       pHighSpeedNotes ======================> not spitting out....
      pHighSpeed2DToolPaths

Link to comment
Share on other sites

S.Luong

You still aren't using the string select table correctly.  Your post block doesn't need any if statements to select the right string.  Can you attach or pm a copy of the post file.

#Region pHighSpeedNotes
pHighSpeedNotes
       if op_type_hsm = 0, sDynamicMill, e$
       if op_type_hsm = 1, sAreaMill, e$
       if op_type_hsm = 2, sContourMill, e$
       if op_type_hsm = 3, sPeelMill, e$
       if op_type_hsm = 4, sBlendMill, e$
       if op_type_hsm = 5, sDynamicArea, e$
       if op_type_hsm = 6, sDynamicRest, e$
       if op_type_hsm = 7, sDynamicCore, e$
       if op_type_hsm = 8, sDynamicContour, e$
       prv_op_type_hsm = m_one       
#EndRegion

 should be

#Region pHighSpeedNotes
pHighSpeedNotes
    shsname, e$     
#EndRegion

The string select table will then set shsname to the right string based on the value of op_type_hsm.  Then will output shsname if the value has changed.

 

Husker

  • Like 1
Link to comment
Share on other sites
22 hours ago, C^Millman said:

How many of your operators know Mastercam well enough to benefit from all of these comments? If they know it well enough to know what each of these comments mean they should be programming their own work.

Hello C^MillMan,
   At my company where many senior machinists only get used to the traditional cuts not HIGH SPEED.  Usually they see my feed rates, they start to "freak out" because my mine was 5 - 7 times faster than usual.

   Most machinists here are chaotic, they scream the hole shop for just little things and the only way to make them understand is to make the post explains things to them so they don't have to comeback and forth to the program room to ask questions.  

   For instance, here is my sample of codes:

N2( .7500,3/4 EM, CB, ROUGHER,)
(4FLTS 1.500LOC, 1.63LOH)
G0 G17 G40 G49 G80 G90
G91 G28 Z0 M19
G28 Y0 
T2 M6(ROUGH OUT TOP ISLAND, CUT#23)
G90 G54 X2.0294 Y-12.4506
S7500 M3(XYZ STK= .015)
(.075 STEPOVER, 10.PERCENT TDIA.)
G43 H2 Z1. T10 M8(DOC= Z-.1099)
Z.3125
G1 Z-.1099 F5.
X2.0008 Y-12.3869 F350.
G3 X1.9623 Y-12.3329 R.1687
G2 X1.8113 Y-10.0804 R.8566
(CUTTING CODES CONTINUE)
G1 X2.7529 Y-11.6266
X2.7344 Y-11.6297
G0 Z1.
G91 G28 Z0. M9
/G28 Y0. M5


If they know how much I cut, they would know how much deep to cut on the jaws to hold the part within "rigid" condition.  That's why I would like the post spits out of the comment about how much stepover, the percent of tool dia. steps in.  

 

People having different ideas about how to write post and portraits how they want to communicate with setup men, I may be wrong and if you know any better tricks I am thankful to have yours.

 

 

Best regards.

Link to comment
Share on other sites
3 minutes ago, htm01 said:

you could do that with X+ set up sheet

We have it in the setup sheet and the issue is most setup men don't take time to read the setup for the detail part at all.  We all the programmers included inside the setup sheet and company even try to award if someone reads the setup sheet thoroughly, that person would get $5 dollars. 

 

However, ever since only one setup man got $5 dollars out of 40 men.

Link to comment
Share on other sites
Just now, htm01 said:

do the next set up sheet on pink paper and staple it to their paycheck

hahahaha.... most of our setup men here are good, the company won't let go any.  We all have to solve problems not to make it disappear without being solved.

 

I have to admit it that it is very hard to find good machinist in silicon valley (San Jose, California), especially this time.  Nearly all employers fighting for programmers, setup even operators.  

 

Letting any of good man go is a "bad take", to make both parties happy is to make sure they understand what the programmers' needs and wants without any dramas.

Link to comment
Share on other sites
23 hours ago, huskermcdoogle said:

S.Luong

You still aren't using the string select table correctly.  Your post block doesn't need any if statements to select the right string.  Can you attach or pm a copy of the post file.


#Region pHighSpeedNotes
pHighSpeedNotes
       if op_type_hsm = 0, sDynamicMill, e$
       if op_type_hsm = 1, sAreaMill, e$
       if op_type_hsm = 2, sContourMill, e$
       if op_type_hsm = 3, sPeelMill, e$
       if op_type_hsm = 4, sBlendMill, e$
       if op_type_hsm = 5, sDynamicArea, e$
       if op_type_hsm = 6, sDynamicRest, e$
       if op_type_hsm = 7, sDynamicCore, e$
       if op_type_hsm = 8, sDynamicContour, e$
       prv_op_type_hsm = m_one       
#EndRegion

 should be


#Region pHighSpeedNotes
pHighSpeedNotes
    shsname, e$     
#EndRegion

The string select table will then set shsname to the right string based on the value of op_type_hsm.  Then will output shsname if the value has changed.

 

Husker

 

Hello Husker,
   I did as you directed and something not spitting out right, can you tell me what I've done wrong?  Thank you.


 

op_type_hsm : 0
prv_op_type_hsm = m_one
# --------------------------------------------------------------------------
#Region Select High Speed Name
# --------------------------------------------------------------------------
sDynamicMill    :  "(DYNAMIC MILL)"
sAreaMill       :  "(AREA MILL)"
sContourMill    :  "(2D HIGH SPEED CONTOUR MILL)"
sPeelMill       :  "(DYNAMIC PEEL MILL)"
sBlendMill      :  "(2D BLEND MILL)"
sDynamicArea    :  "DYNAMIC AREA"
sDynamicRest    :  "DYNAMIC REST"
sDynamicCore    :  "DYNAMIC CORE"
sDynamicContour :  "DYNAMIC CONTOUR"
shsname         :  ""

fstrsel sDynamicMill op_type_hsm shsname 9 -1
#EndRegion

#Region pHighSpeedNotes
pHighSpeedNotes
 *shsname, e$    
#EndRegion


ptlchg_com      #Tool change common blocks
    pHighSpeedNotes
ptlchg0$         #Call from NCI null tool change (tool number repeats)
    pHighSpeedNotes

 

 

====================G-CODES=================

N1( 2.0000,2.000 SHELL MILL, CB, .005RAD, USED TOOL,)
(3FLTS .500LOC, 2.00LOH)
(SEMT13TAGSN-JM VP15TF INSERT TYPE)
G0 G17 G40 G49 G80 G90
G91 G28 Z0 M19
G28 Y0 (DYNAMIC MILL) =======================>WRONG NOTE HERE, JUST A REGULAR POCKET, NOT A HIGH SPEED.
T1 M6(2D TOOLPATHS - POCKET, CUT#2)
G90 G54 X1. Y2.
S6500 M3(XY STK= -.125)
(.7 STEPOVER, .005 FINISH)
(.0087 - .0175 PER RAMP)

G43 H1 Z1. T2 M8(DOC= Z0.)
Z.0625
G1 Z0. F5.
X.8801 Y-.88 F50.
Y-11.625
G0 Z1.
G91 G28 Z0. M9
/G28 Y0. M5
M1
(*)
N2( .7500,3/4 EM, CB, ROUGHER,)
(4FLTS 1.500LOC, 1.63LOH)
G0 G17 G40 G49 G80 G90
G91 G28 Z0 M19
G28 Y0 (DYNAMIC MILL)=======================>RIGHT NOTE HERE, GOOD NOTE.
T2 M6(ROUGH OUT TOP ISLAND, CUT#3)
G90 G54 X1.7584 Y-2.698
S7500 M3(XYZ STK= .015)
(.075 STEPOVER, 10.PERCENT TDIA.)
G43 H2 Z1. T10 M8(DOC= Z-.1099)
Z.3125
G1 Z-.1099 F5.
X1.736 Y-2.6435 F75.
G3 X1.6992 Y-2.5883 R.1688
G1 X2.3711 Y-1.7202
X2.3565 Y-1.7084
G0 Z1.
G91 G28 Z0. M9
/G28 Y0. M5
M1
(*)
N10( .5000,1/2 SPOTTER, HSS, 90.DEGS,)
(2FLTS .250LOC, .251LBS, 1.00LOH)
G0 G17 G40 G49 G80 G90
G91 G28 Z0 M19
G28 Y0 (DYNAMIC MILL)=======================>WRONG NOTE HERE, JUST A DRILL CYCLE
T10 M6(SPOT 1X CENTER 3D ARC RELIEF HOLE, CUT#4)
G90 G54 X2.9 Y-1.4241
S4500 M3
G43 H10 Z1. T12 M8(DOC= Z-.05)
G99 G81 Z-.05 R.125 F5.
G80
(*)
N1002(SPOT 2X .257, CUT#5)
G0 G90 G54
S4500 M3 (DYNAMIC MILL)=======================>WRONG NOTE HERE, JUST A DRILL CYCLE
G43 H10 Z1.(DOC=Z-.255)
X3.0969 Y-.9965
Z.125
G99 G81 Z-.255 R.125 F10.
Y-2.0077
G80
Z1.
G91 G28 Z0. M9
/G28 Y0. M5
G0 G90 G54 X0.
M1
T1 M6(FIRST PROGRAMMED TOOL)
M30(191,194CHARS - 191.82KB)
%

Link to comment
Share on other sites
17 minutes ago, huskermcdoogle said:

Get rid of the force *, and see what it does.  You need to use modality, as well as possibly another logic test against a parameter to see if it is a 2d high speed path.

 

I did, then no 2D High Speed notes showing anywhere.  I think it needs a "FORCE TO UPDATE" and I tried "!", didn't work too....

 

Thank you for your help, truly appreciated.

 

#Region pHighSpeedNotes
pHighSpeedNotes
 if op_type_hsm = -1, *shsname, e$    
#EndRegion


#Region pHighSpeedNotes
pHighSpeedNotes
 if op_type_hsm > 0, *shsname, e$    
#EndRegion


#Region pHighSpeedNotes
pHighSpeedNotes
 if op_type_hsm > 0, shsname, e$    
#EndRegion
Link to comment
Share on other sites

Try this.

Initialize only this, do not initialize prv_op_type_hsm.  MP will take care of this properly.  Setting it to 9 is key for this to work.

op_type_hsm : 9

Output without forcing, when prmcode$ = 12713, there will be a value, and it will update op_type_hsm, modality will make it output.

pHighSpeedNotes
 shsname, e$    

Add a blank string into your string select table.  And update the number of entries to 10.

# --------------------------------------------------------------------------
#2D High Speed Op Name Output Strings
sDynamicMill    :  "(DYNAMIC MILL)"
sAreaMill       :  "(AREA MILL)"
sContourMill    :  "(2D HIGH SPEED CONTOUR MILL)"
sPeelMill       :  "(DYNAMIC PEEL MILL)"
sBlendMill      :  "(2D BLEND MILL)"
sDynamicArea    :  "DYNAMIC AREA"
sDynamicRest    :  "DYNAMIC REST"
sDynamicCore    :  "DYNAMIC CORE"
sDynamicContour :  "DYNAMIC CONTOUR"
s2dhsinit : ""
shsname         :  ""

fstrsel sDynamicMill op_type_hsm shsname 10 -1
# --------------------------------------------------------------------------

I tested it in my post, works great.  Don't forget you still need to get the parameter 12713 in your pparameter$ postblock.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...