PDA

View Full Version : Need Help! SurfCam Post -repeat tool header info



MMTechi
06-11-2009, 12:42 PM
I want the Surfcam mpost to output the toolheader information for each toolpath in an operation list, even if it repeats the same tool. This way I wouldn't have to post multiple times then copy and paste together, just to get the tool header per path. It would then be easier to delete the paths out of an operation that I don't need.

Sometimes when I am proving out some simple 2d programs I am using the same tool for a lot of different paths and I will rerun and tweak until I like what I have. It would be easier to jump to the next piece of code or path if it has the tool header info ready per each path.

I have done a good amount of editing to my posts for my Haas but haven't been able to figure this one out. I am hoping this can be done. I do understand Haas has a on/off feature that reads the tool info if jumping into the middle of a program. I would still like the NC code to have the tool info per individual path. Control memory and file size is not an issue.


If anyone knows this one and can share, Thank you in advance!
Robert Flores
MMTech 231-632-6669

below is a sample of what I would like the code to look like. I posted this 3 times and then copied and pasted the 3 progs together. Typically I have 5 to seven paths per tool and up to 10 tools. The header at the top of file allows a quick jumpto individual paths with cursor/dwn to M99 call.
Any additional comments are appreciated.

%
O777 (FORWARD CONTROL LINKAGE)
G54 G17 G90

M99 P3 (T3 .50 DIA CARB RGHR -0.8750)
M99 P32 (T3 .50 DIA CARB RGHR )
M99 P33 (T3 .50 DIA CARB RGHR )

M99 P100 (END PROG POSITION)

N3
N31
G90 G40 G80
T3 D3 M6 (T3 .50 DIA CARB RGHR -DR AT LOC)
/M8
G90 G0 X0. Y0.
G43 H3 G0 Z0.2
S2000 F12.0
M3


G0 X0. Y1.65
G0 Z0.3

G0 X0. Y1.65
G40
G73 X0. Y1.65 Z-0.3 Q0.09 K0.09 R0.1 P0.03 F2.4 G99 (MAY RETURN TO -R PLANE)
G80
G0 Z-0.3

X0. Y0. Z0.3
G40
G73 X0. Y0. Z-0.863 Q0.09 K0.09 R-0.463 P0.03 F2.4 G99 (MAY RETURN TO -R PLANE)
X0.0743 Y-0.8493
G80
G0 Z0.3


N3
N32
G90 G40 G80
T3 D3 M6 (T3 .50 DIA CARB RGHR)
/M8
G91 G41 G1 X-.02 F100.
G90 G0 X0. Y0.
G43 H3 G0 Z0.2
S2000 F12.0
M3

G0 X0. Y0.
G0 Z0.2

G0 Z0.1
G1 Z-0.875 F12.0
G3 X0.27 I0.135 J0
I-0.27 J0
X0. I-0.135 J0
G0 Z0.2

G91 G40 G0 Y.05
G90


N3
N33
G90 G40 G80
T3 D3 M6 (T3 .50 DIA CARB RGHR)
/M8
G91 G41 G1 X-.02 F100.
G90 G0 X1.015 Y-0.0285
G43 H3 G0 Z0.2
S2000 F12.0
M3

G0 X1.015 Y-0.0285
G0 Z0.2

G0 Z0.1
G1 Z-0.7 F12.0
G3 X0.9834 Y-0.0567 I-0.0017 J-0.03
G2 X0.6837 Y-0.7091 I-0.9834 J0.0567
G3 X0.6761 Y-0.7293 I0.0173 J-0.018
G1 X0.6858 Y-0.8401
G2 X0.3488 Y-1.3197 I-0.4532 J-0.0397
X-0.1144 Y-1.3602 I-0.3488 J1.3197
X-0.5295 Y-0.9465 I0.0381 J0.4534
G1 X-0.5392 Y-0.8356
G3 X-0.5502 Y-0.817 I-0.0249 J-0.0022
G2 X-0.7607 Y0.6258 I0.5502 J0.817
G3 X-0.755 Y0.6416 I-0.0193 J0.0158
G1 Y1.525
G2 X0. Y2.28 I0.755 J0
X0.755 Y1.525 I0 J-0.755
G1 Y0.6416
G3 X0.7607 Y0.6258 I0.025 J0
G2 X0.9834 Y-0.0567 I-0.7607 J-0.6258
G3 X1.0116 Y-0.0884 I0.0299 J-0.0018
G0 Z0.2


G91 G40 G0 Y.05
G90


N100
M98 P89995 (EXIT SUB PROG -EDIT AT MACHINE)
(/M9 )(COOLANT OFF)
(M5 )(SPINDLE OFF)
(G91 G0 Z3.0)
(G91 G0 X0. Y0.0 )(EDIT AS NEEDED)
(G111 G90 G40 G80 G0 X0. Y0. Z0.0)(ABS CANCEL ALL)
M1
T3 M6
M30
%

NICK REESE
06-11-2009, 02:34 PM
Hi MMTechi,

When we use the same tool twice, we add to the tool number by multiples of 100: like tool 25 , tool 125, tool 225. In the post where T is declared we have : T >2 Mod 100

When the program posts, they're each changed to tool 25. Is that what you need?

nick.

MMTechi
06-11-2009, 04:41 PM
I tried what you suggested but that is not quite what I am looking for. I still either edit in my operations list or in the nc code, and I use/have a 10 pocket tool change, so the numbers don't always come out right. I wonder if the Surfcam post can be forced to output a tool call/m6 for every toolpath in an operation list?

Thanks

Jason S
06-15-2009, 07:35 AM
Hi MMTechi,

When we use the same tool twice, we add to the tool number by multiples of 100: like tool 25 , tool 125, tool 225. In the post where T is declared we have : T >2 Mod 100

When the program posts, they're each changed to tool 25. Is that what you need?

nick.

A+ on that, that comes in handy when you want to do a dummy toolchange.

I also use If/Endif on my lathe post. Say I'm using T1 to face/turn, I will program the face as T1 and the turn as T101 and it will give me a dummy toolchange. That way if you dont have to rerun everything.

ToolChange
IF [Tool] < 100
M9
G28 U[0] W[0]
M1
Endif
IF [Tool] > 100
Set [Tool] to [Val10]
Endif
N[Block]
Comments
G0 T[Tool] t[Lcomp]
G50 S2000
G[FeedType] G[SpeedType] S[Speed] M[Direct]
G0 X[V] Z[H]
M[Cool]
G4 X1.5
Set [Val10] to [Tool]
End

Results:

N10
(CNMG432 1/32R)
(FACE LV./.005)
G0 T01 01
G50 S2000
G0 G96 S400 M3
G0 X3.1 Z0.1
M8
G4 X3.
G0 Z0.005
G1 X-0.0624 F0.009
G0 Z0.05
X3.1
N20
(CNMG432 1/32R)
(TURN OD)
G0 T01 01
G50 S2000
G0 G96 S400 M3
G0 X3.1 Z0.05
M8
G71 P1000 Q1100 D1000 U.02 W.005 F0.009
N1000 G0 X1.919
G1 Z0.0017 F.009
X1.999 Z-0.0383
Z-0.125
X2.9234
N1100 X3.0258 Z-0.1762
M9
G28 U0 W0

sinderal
10-26-2009, 12:48 PM
How about these kinds of output?


%
O1
(T1 D25. D=0 ENDMILL CR=0 F160.0 FZ80.0 S800)
(T2 D10. D=0 CENTER CR=0 F500.0 FZ80.0 S2500)
(T3 D2.5 D=0 DRILL CR=0 F250.0 FZ500.0 S2500)
(T4 D4.2 D=0 DRILL CR=0 F250.0 FZ250.0 S2500)
(T5 D5. D=0 TAP CR=0 F640.0 FZ250.0 S800)
(T6 D21. D=0 DRILL CR=0 F150.0 FZ640.0 S700)
(T7 D20. D=0 ENDMILL CR=0 F200.0 FZ100.0 S1000)
(T8 D20. D=0 ENDMILL CR=0 F200.0 FZ100.0 S1000)
G17 G40 G80 G49
G91 G28 Z0
N1
M6 T1
(T1 D25. D=0 ENDMILL CR=0 F160.0 FZ80.0 S800)
G90 G54 G0 X-98.75 Y-20. M3 S800
G43 Z100. H1 M8
G0 Z5.
G1 Z-3. F80.0
X-80.
Y0 F160.0
X-31.
Y-44.
X-80.
Y-20.
X-88.75
X-70. F80.0
Y-10. F160.0
X-41.
Y-34.
X-70.
Y-20.
G0 Z100.
X-60. Y-1.25
Z5.
G1 Z-3. F80.0
Y-20.
X-51. F160.0
Y-24.
X-60.
Y-20.
G0 Z100.
X-98.75
Z2.
G1 Z-6. F80.0
X-80.
Y0 F160.0
X-31.
Y-44.
X-80.
Y-20.
X-88.75
X-70. F80.0
Y-10. F160.0
X-41.
Y-34.
X-70.
Y-20.
G0 Z100.
X-60. Y-1.25
Z2.
G1 Z-6. F80.0
Y-20.
X-51. F160.0
Y-24.
X-60.
Y-20.
G0 Z100.
M5
M9
G91 G28 Z0
G49
N2
M6 T2
(T2 D10. D=0 CENTER CR=0 F500.0 FZ80.0 S2500)
G90 G52 G0 X-10. Y-7. M3 S2500
G43 Z100. H2 M8
G81 G98 X-10. Y-7. Z-3. R3. F500.0
Y-37. R3.
G80
G0 X-24. Y-22. Z100.
G81 G98 X-24. Y-22. Z-7.8 R-3. F500.0
X-50. R-3.
X-76. R-3.
G80
M5
M9
G91 G28 Z0
G49
N3
M6 T3
(T3 D2.5 D=0 DRILL CR=0 F250.0 FZ500.0 S2500)
G90 G52 G0 X-24. Y-22. M3 S2500
G43 Z100. H3 M8
G73 G98 X-24. Y-22. Z-19.751 Q3. R-3. F250.0
X-76. R-3.
G80
M5
M9
G91 G28 Z0
G49
N4
M6 T4
(T4 D4.2 D=0 DRILL CR=0 F250.0 FZ250.0 S2500)
G90 G52 G0 X-10. Y-7. M3 S2500
G43 Z100. H4 M8
G83 G98 X-10. Y-7. Z-20.262 Q3. R3. F250.0
Y-37. R3.
G80
M5
M9
G91 G28 Z0
G49
N5
M6 T5
(T5 D5. D=0 TAP CR=0 F640.0 FZ250.0 S800)
G90 G52 G0 X-10. Y-7. M3 S800
G43 Z100. H5 M8
G0 Y-37.
M5
M9
G91 G28 Z0
G49
N6
M6 T6
(T6 D21. D=0 DRILL CR=0 F150.0 FZ640.0 S700)
G90 G52 G0 X-50. Y-22. M3 S700
G43 Z100. H6 M8
G83 G98 X-50. Y-22. Z-25.309 Q3. R-3. F150.0
G80
M5
M9
G91 G28 Z0
G49
N7
M6 T7
(T7 D20. D=0 ENDMILL CR=0 F200.0 FZ100.0 S1000)
G90 G52 G0 X-50. Y-22. M3 S1000
G43 Z100. H7 M8
G0 Z-1.
G1 Z-10. F100.0
Y-27.9 F200.0
G3 I0 J5.9
G1 Y-22.
Z-14. F100.0
Y-27.9 F200.0
G3 I0 J5.9
G1 Y-22.
Z-16.5 F100.0
Y-27.9 F200.0
G3 I0 J5.9
G0 Z100.
M5
M9
G91 G28 Z0
G49
N8
M6 T8
(T8 D20. D=0 ENDMILL CR=0 F200.0 FZ100.0 S1000)
G90 G52 G0 X-50. Y-22. M3 S1000
G43 Z100. H8 M8
G0 Z-1.
G1 Z-16.5 F100.0
Y-28. F200.0
G3 I0 J6.
X-46.465 Y-26.536 I0 J5. F100.0
G0 Z100.
M9
G91 G28 Z0 M5
M30
%

torro
04-17-2010, 08:36 PM
%
O1
(T1 D25. D=0 ENDMILL CR=0 F160.0 FZ80.0 S800)
(T2 D10. D=0 CENTER CR=0 F500.0 FZ80.0 S2500)
(T3 D2.5 D=0 DRILL CR=0 F250.0 FZ500.0 S2500)
(T4 D4.2 D=0 DRILL CR=0 F250.0 FZ250.0 S2500)
(T5 D5. D=0 TAP CR=0 F640.0 FZ250.0 S800)
(T6 D21. D=0 DRILL CR=0 F150.0 FZ640.0 S700)
(T7 D20. D=0 ENDMILL CR=0 F200.0 FZ100.0 S1000)
(T8 D20. D=0 ENDMILL CR=0 F200.0 FZ100.0 S1000)
G17 G40 G80 G49
G91 G28 Z0
N1
M6 T1
(T1 D25. D=0 ENDMILL CR=0 F160.0 FZ80.0 S800)
G90 G54 G0 X-98.75 Y-20. M3 S800
G43 Z100. H1 M8
G0 Z5.
G1 Z-3. F80.0

Hi sinderal, may I ask a question,
how can you do that on Surfcam mpost to output the toolheader information for each toolpath

Thanks

sinderal
04-18-2010, 03:11 AM
Hi Torro:

It must do some work for those! Attached please find the post file which I wrote before. You may modify it per your requirement! I am using Metric unit, so please modify all the register format to Inch format.

torro
04-18-2010, 01:35 PM
Appreciated your're help Thanks

MMTechi
04-19-2010, 09:59 PM
Hi Sinderal,

Thankyou for your help, I like what you have in your post and am going to try and utilize some of what your post can do into my own. Where can I read more on how to do the file insert and the sxxx series code and tool info changes in the post? Pretty good work!

This however is not quite what I was looking for. In the surfcam operations manager, when you select an operation (not just an individual toolpath) to post out, surfcam does you the "favor of not" putting a new tool header in the nc program if the same tool number is used on the next tool paths. I actually want the tool header posted out again even if the next path is the same tool (I do a lot surface 3d point to point programs, below is short prog just for discussion). I hope I am making myself understandable and hopefully you have a method. I would be glad to speak with you if it would be ok to contact you or you are welcome to call me.


Thank you again for everyones help.
Robert Flores
MMTech 231-632-6669

below is a the unedited output of the my surfcams posted list of individual toolpaths, NOTICE the comments separate the individual toolpath ( I want the full TOOLCHANGE header posted for each toolpath, even if same tool, not just the comment)

%
O777 (FORWARD CONTROL LINKAGE)
G54 G17 G90

N3
G90 G40 G80
T3 D3 M6
(T3 .50 DIA CARB -PLUNGE MILL DR LOCATION)
G43 H3 G0 Z0.2
S2000 F12.0 M8
M3
G0 X0. Y1.65
G99 G73 X0. Y1.65 Z-0.3 Q0.09 K0.09 R0.1 P0.03 F2.4
G80
G0 Z.3

(T3 .50 DIA CARB -MILL HOLE DIA PROFILE)
G0 Z0.1
G1 Z-0.875 F12.0
G3 X0.27 I0.135 J0
I-0.27 J0
X0. I-0.135 J0
G0 Z0.2

(T3 .50 DIA CARB -MILL PART PROFILE)
G0 X1.015 Y-0.0285
G0 Z0.1
G1 Z-0.7 F12.0
G3 X0.9834 Y-0.0567 I-0.0017 J-0.03
G2 X0.6837 Y-0.7091 I-0.9834 J0.0567
G3 X0.6761 Y-0.7293 I0.0173 J-0.018
G1 X0.6858 Y-0.8401
G2 X0.3488 Y-1.3197 I-0.4532 J-0.0397
X-0.1144 Y-1.3602 I-0.3488 J1.3197
X-0.5295 Y-0.9465 I0.0381 J0.4534
G1 X-0.5392 Y-0.8356
G3 X-0.5502 Y-0.817 I-0.0249 J-0.0022
G2 X-0.7607 Y0.6258 I0.5502 J0.817
G3 X-0.755 Y0.6416 I-0.0193 J0.0158
G1 Y1.525
G2 X0. Y2.28 I0.755 J0
X0.755 Y1.525 I0 J-0.755
G1 Y0.6416
G3 X0.7607 Y0.6258 I0.025 J0
G2 X0.9834 Y-0.0567 I-0.7607 J-0.6258
G3 X1.0116 Y-0.0884 I0.0299 J-0.0018
G0 Z0.2


N100
M98 P89995 (EXIT SUB PROG -EDIT AT MACHINE)
M30
%


This is what i would like surfcam to create, then I can easily rerun any of the pieces of code as needed even if in middle of a large program.

%
O777 (FORWARD CONTROL LINKAGE)
G54 G17 G90

N3
G90 G40 G80
T3 D3 M6
(T3 .50 DIA CARB -PLUNGE MILL DR LOCATION)
G43 H3 G0 Z0.2
S2000 F12.0 M8
M3
G0 X0. Y1.65
G99 G73 X0. Y1.65 Z-0.3 Q0.09 K0.09 R0.1 P0.03 F2.4
G80
G0 Z.3

N3
G90 G40 G80
T3 D3 M6
(T3 .50 DIA CARB -MILL HOLE DIA PROFILE)
G43 H3 G0 Z0.2
S2000 F12.0 M8
M3
G0 Z0.1
G1 Z-0.875 F12.0
G3 X0.27 I0.135 J0
I-0.27 J0
X0. I-0.135 J0
G0 Z0.2

N3
G90 G40 G80
T3 D3 M6
(T3 .50 DIA CARB -MILL PART PROFILE)
G90 G0 X1.015 Y-0.0285
G43 H3 G0 Z0.2 M8
S2000 F12.0
M3
G0 Z0.1
G1 Z-0.7 F12.0
G3 X0.9834 Y-0.0567 I-0.0017 J-0.03
G2 X0.6837 Y-0.7091 I-0.9834 J0.0567
G3 X0.6761 Y-0.7293 I0.0173 J-0.018
G1 X0.6858 Y-0.8401
G2 X0.3488 Y-1.3197 I-0.4532 J-0.0397
X-0.1144 Y-1.3602 I-0.3488 J1.3197
X-0.5295 Y-0.9465 I0.0381 J0.4534
G1 X-0.5392 Y-0.8356
G3 X-0.5502 Y-0.817 I-0.0249 J-0.0022
G2 X-0.7607 Y0.6258 I0.5502 J0.817
G3 X-0.755 Y0.6416 I-0.0193 J0.0158
G1 Y1.525
G2 X0. Y2.28 I0.755 J0
X0.755 Y1.525 I0 J-0.755
G1 Y0.6416
G3 X0.7607 Y0.6258 I0.025 J0
G2 X0.9834 Y-0.0567 I-0.7607 J-0.6258
G3 X1.0116 Y-0.0884 I0.0299 J-0.0018
G0 Z0.2

N100
M98 P89995 (EXIT SUB PROG -EDIT AT MACHINE)
M30
%

scallopz
04-20-2010, 03:07 PM
MMTechi,

Hello again,

I may not have been clear the 1st time. In the 1st operation, you have tool number 3. In the 2nd operation, change the tool number from 3 to 103. In the 3rd operation change the tool number to 203. (You don't have to change the length offset or the diameter offset numbers) In the postform.m file, add to the declaration of T at the top to make it "T >MOD 100" When you post the program you will get 3 operations, each with T3.

If you use spost instead for posting, I can't help you.

Good luck,

nick.

MMTechi
04-20-2010, 04:31 PM
Hi Scallops,

Thanks for your reply, I tried your suggestion in my postform.m file but it doesn't output in the format style you describe. maybe you could copy/paste your post here and I will post a program through your post file to see if it will work for me.

Just curious but will this make surfcam repost the tool header even if it is the same tool used again on the next tool path or will your post assign a new number only after that tool is used again but after a different tool is used in between paths

my email is MMTech@chartermi.net
or maybe we can talk 231-632-6669

Thanks

gwarble
06-29-2011, 03:06 AM
bumping an old thread here, but i think i have an easy solution to the original question...

quick aside; sanderal, great post! i've not seen any documentation for the "file" functionality you are utilizing, which has many other potential uses as well (an offsetting program at the bottom of the posted program to offset used tools... etc

back to the OP's question, use this:


Upon Every [DComp]
'( OPERATION ' j[block] ' )'
'( TOOL CHANGE CODE HERE? )'
End
with:

j >4 "" # Operation #
Sequence#s N 0 1 1 # block Char-Freq-Incr-Start

note: i don't use 'block' otherwise... if you do you need a better way to track which operation it is... but with this you'll see where it inserts the code (after rapid plane, before xy move, but modal so you'll want to code that in)

hope this helps... if not for OP at least for someone who searches and finds this... and if anyone is interested i can post the whole post, but my MO is handle the differing code at the machine in the macros (mainly the M6 macro) so the post will seem simplistic, ie (example code, do not run (my M6 macro sets everything... absolute, rapid, no offsets, AI off then back on, home z, maybe move xy, coolant off, etc...):

%
O0001 (05_FAM_TOP_ENCLOSURE_152TEST)
POPEN(11.57.52 PM 6/28/2011)
DPRNT[//START*05_FAM_TOP_ENCLOSURE_6152984A-01/05_FAM_TOP_ENCLOSURE_152/TEST]
PCLOS
( OPERATION 1 )
M6T3
M1(TOOL3 0. CHAMFER MILL)
G54X-0.2149Y-1.8404M3S12000
G43Z1.H3
/M8
T11
G0Z0.333
G1Z0.1192F60.0
G1Y1.8154
G0Z1.
( OPERATION 2 )
X0.1Y0.1S5500
G81G98X0.1Y0.1Z-0.13R0.1F10.0
G80
( OPERATION 3 )
N11M6T11
M1(TOOL11 0.0995 DRILL)
G54X0.1Y0.1M3S6250
G43Z1.1H11
/M8
T3
G83G98X0.1Y0.1Z-0.25R0.1Q0.0625F15.0
G80
M6T3 R0
M30
%Operation 2 is where the OP's question would come into play... so you'd want to put the tool change info (and tool header code) into this Upon Every... and probably just a comment in the ToolChange sequence...

- joel

ps: the "mod 1000" trick also mentioned works great (i use 1000 not 100 in the hopes of someday having a machine with over 100 tools :) but its main flaw: you have to change tool numbers when you move operations around, insert toolpaths, etc... it becomes cumbersome... but i still use it for a "production" posted program that maybe have one specific operation (like finishing pass after a long cycle of roughing with the same tool... those cases where the "DComp" post above is too slow (ie too many z-retractions at the toolchange... which i guess could be eliminated in the macros but mine home z at every toolchange right now)

pps: and what i actually use this DComp trick for is the lathes, switching between CSS and RPM, and IPM and IPR:

Upon Every [DComp]
'( OPERATION ' h[block] ' )'
if [SpeedType] = [val4] AND [Speed] = [val5]
''
else
Call Custom1 # Speed(Type) Change
endif
if [FeedType] <> [val6]
Call Custom3 # FeedType Change
endif
End

camaru
07-01-2011, 07:16 PM
Hi,
if your on maintenance contact surfware and ask them how? but they will limit the amount of time they will give this.

There is a option in spost to get the type of operation (OPERTN/6,-1,-1) but i dont think its available in mpost. I asked them to put it in mpost about 4 years ago but there not that quick. if the oper function is in mpost you could varialble the tool information and use a "if then" function inside the toolchange area.
the operation feature is key to what you want to do, it will help you to automaticly put in the type of path information into your g-code.

Anders6612
10-23-2012, 02:46 PM
Does toollist exist also for turning tools? In that case,
anyone that have a list of turning tools, or know how to
figure it out?

Camfather
10-25-2012, 04:42 AM
Great reading all the tips and tricks you guys have found to make it work for you, I am going to use some of these in my shop tomorrow.

What a lot of people don't know is that Mpost isn't a Surfware product, it's the "lite" version of posthaste from Posthaste post processor (Home_ (http://www.postprocessor.com/)

Paul Andrews makes and sells the full version and provides awesome support for a very low cost.

If you need to take Mpost to the next level, this is your only option.

scallopz
03-28-2013, 12:57 PM
Wish there were some way to pass the tool library reference number to the mpost to avoid having 2 drills with the same tool number. We switch between tool numbers 19 and 25 (drill chucks), but that's not foolproof. On a big piece we may use 50 or more drills. I've seen some good ideas here, though.

thanks,

nick.

transparos
10-17-2015, 11:32 AM
Hi Torro:

It must do some work for those! Attached please find the post file which I wrote before. You may modify it per your requirement! I am using Metric unit, so please modify all the register format to Inch format.

I can't download your post, industryarena, popped up blank.