Darin
-
Posts
285 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Store
eMastercam Wiki
Blogs
Gallery
Events
Posts posted by Darin
-
-
I would like the canned text to output after the operation's finished just before the last G00 Z retract. When I select add after it outputs it before my operation. Where can I change this in this post?
This is how it outputs now with add after on a canned text
N100 G20
N110 G91 G28 Z0.
N120 G91 G28 X0. Y0. B0.
N130 G00 G17 G40 G49 G80 G90
N17 M01 ( 1-1/4 END MILL )
N140 T17 M06
N150 G00 G90 G55 X2.4218 Y2.4218 B0. S450 M03
N160 G43 H17 Z.1
N170 M05 <------------------------------- Need this to be before the G00 Z.1---------------------------------------->
N180 G01 Z-16.5 F15.
N190 G02 X2.6048 Y1.9799 I-.4419 J-.4419
N200 X1.9799 Y1.355 I-.6249 J0.
N210 X1.355 Y1.9799 I0. J.6249
N220 X1.9799 Y2.6048 I.6249 J0.
N230 X2.4218 Y2.4218 I0. J-.6249
N240 G00 Z.1
This is how I would like it to post
N100 G20
N110 G91 G28 Z0.
N120 G91 G28 X0. Y0. B0.
N130 G00 G17 G40 G49 G80 G90
N17 M01 ( 1-1/4 END MILL )
N140 T17 M06
N150 G00 G90 G55 X2.4218 Y2.4218 B0. S450 M03
N160 G43 H17 Z.1
N180 G01 Z-16.5 F15.
N190 G02 X2.6048 Y1.9799 I-.4419 J-.4419
N200 X1.9799 Y1.355 I-.6249 J0.
N210 X1.355 Y1.9799 I0. J.6249
N220 X1.9799 Y2.6048 I.6249 J0.
N230 X2.4218 Y2.4218 I0. J-.6249
N235 M05 <--------------------------------Post here---------------------------------->
N240 G00 Z.1
Here is the post
[post_VERSION] #DO NOT MOVE OR ALTER THIS LINE# V16.00 P0 E1 W16.00 T1368216059 M16.00 I0 O0
# Post Name : Fanuc 4X Mill.pst
# Product : Mill
# Machine Name : Mill
# Control Name : Fanuc
# Description : Generic 4 Axis Mill Post
# 4-axis/Axis subs. : Yes
# 5-axis : No
# Subprograms : Yes
# Executable : MP 14.0
#
# WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
#
# THIS POST REQUIRES A VALID 3 OR 4 AXIS MACHINE DEFINITION.
# YOU WILL RECEIVE AN ERROR MESSAGE IF MORE THAN ONE ROTARY AXIS IS DETECTED IN
# THE ACTIVE AXIS COMBINATION WITH READ_MD SET TO YES.
#
# Associated File List$
#
# GENERIC FANUC 4X MILL.control-5
#
# Associated File List$
#
# --------------------------------------------------------------------------
# Revision log:
# --------------------------------------------------------------------------
# CNC 06/09/05 - Initial post setup for Mastercam X
# CNC 10/06/05 - Changed parameter read for min_speed, modified pspindle, pprep$ and pset_mach
# - Modified pset_rot_label to use srot_y for horizontal machines
# - Added call to pset_mach in pq$ to set rotaxtyp$
Thanks
-
Is there any way to set up my nesting set up sheets to have the tools incorporated with the sheet nesting print outs? Also is there a way to edit the sheet names? It just calls them sheet #1 result #1 and so on. Is there an add-on nesting set up sheet that can be edited?
-
Is there anyway to control the size of the font to default to a smaller size? Sheet size - result 2 font defaults to 16.0 size font every time we nest. We can change it after with F4 but it is a pain everytime we re- nest we have to do this. Or is there a way to shut off? I tried the config settings and display options.
-
I just took a look at the mpmaster post and the logic is already there for what you want to do. Remove all the code that I gave you earlier and uncomment the following in pcomment3
# if stpgrpname <> snull, pbld, n$, pspc, scomm_str, "TOOLPATH GROUP - ", stpgrpname, scomm_end, e$
Just for reference the issues with the what you had were
1. The IF statement was inside of another IF improperly.
2. Not sure that was exactly where you whanted the sgroupname to be output
3. Your post didn't have "sopen_prn" and "sclose_prn" strings defined.
Great thanks . Worked perfect. I thought it was in there.
-
Initialize variable
sgroupname : ""
Add to psof$, ptlchg$ and ptlchg0$ wherever you want the comment to come out, probably before/after "comment$".
sopen_prn, sgroupname, sclose_prn, e$
Add to pparameter$ postblock
#Group Comment if prmcode$ = 20018, sgroupname = sparameter$
Thanks John. But for some reason I get a error. Maybe I am putting in at the wrong place.
Here is the error I am getting
g 2013 04:18:32 PM - <2> - Initialization of pre-defined post variables, strings, postblocks was successful.
27 Aug 2013 04:18:32 PM - <2> - Search for defined post variables, strings, postblocks was successful.
27 Aug 2013 04:18:32 PM - <2> - PST LINE (1742) - The post block output type processing has failed!, , Label has not been defined[4]
27 Aug 2013 04:18:32 PM - <2> - PST LINE (1742) - The post block output type processing has failed!, , Label has not been defined[27]
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'mtol$' was re-initialized from 0.0001 to 0.00001
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'met_mtol$' was re-initialized from 0.001 to 0.0001
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'ltol$' was re-initialized from 0.0005 to 0.002
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'maxrad$' was re-initialized from 999.9999 to 999.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'met_maxrad$' was re-initialized from 9999.999 to 9999.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'helix_tol$' was re-initialized from 0.0005 to 0.0001
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'met_helix_tol$' was re-initialized from 0.005 to 0.001
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'atol$' was re-initialized from 0.5 to 0.01
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'dec_seq_right$' was re-initialized from 3. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'dec_seq_left$' was re-initialized from 3. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'sub_seq_typ$' was re-initialized from 0. to 1.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'bldnxtool$' was re-initialized from 0. to 1.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'nobrk$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'nobrkxz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'nobrkyz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'lnobrk$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'lnobrkxz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'lnobrkyz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'arcoutput$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'arcoutputxz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'arcoutputyz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'larcoutput$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'larctypexz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'larcoutputyz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'breakarcs$' was re-initialized from 0. to 2.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'breakarcsxz$' was re-initialized from 0. to 2.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'breakarcsyz$' was re-initialized from 0. to 2.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'lbreakarcs$' was re-initialized from 0. to 2.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'lbreakarcsxz$' was re-initialized from 0. to 2.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'lbreakarcsyz$' was re-initialized from 0. to 2.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'do_full_arc$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'do_full_arcxz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'do_full_arcyz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'ldo_full_arc$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'ldo_full_arcxz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'ldo_full_arcyz$' was re-initialized from 1. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'rotfeed4$' was re-initialized from 2. to 1.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'rotfeed5$' was re-initialized from 3. to 0.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'lrotfeed4$' was re-initialized from 2. to 1.
27 Aug 2013 04:18:32 PM - <2> - CONTROL DEFINITION - Post variable 'sub_level$' was re-initialized from 0. to 0.
27 Aug 2013 04:18:32 PM - <2> - Successful completion of posting process!
This is where I added the changes.
pparameter$ # Run parameter table
if opcode$=13 | opcode$=14, result = fprm (opcode$)
if prmcode$ = 10000, stoper = ucase(sparameter$)
if stoper=snull, stoper = snullop
if prmcode$ = 10010, stock = rpar(sparameter$,1) # Stock to leave in Z
if prmcode$ = 10068, stock1 = rpar(sparameter$,1) # Stock to leave in XY
if prmcode$ = 12068, stock2 = rpar(sparameter$,1) # Stock to leave in Z facing
if prmcode$ = 10020, clearinc = rpar(sparameter$,1) #param 10020 is clearance now and 10021 indicates abs or inc
if prmcode$ = 15100, clearflg = rpar(sparameter$,1)
if prmcode$ = 15145, metvals = rpar(sparameter$,1)
if prmcode$ = 15339, clearstrt = rpar(sparameter$,1)
if prmcode$ = 15346, comp_type = rpar(sparameter$,1)
if prmcode$ = 15182, miscvalon = rpar(sparameter$,1)
if prmcode$ = 20010, sconstplname = ucase(sparameter$)
if prmcode$ = 20011, sconstplcomm = ucase(sparameter$)
if prmcode$ = 20012, stoolplname = ucase(sparameter$)
if prmcode$ = 20013, stoolplcomm = ucase(sparameter$)
if prmcode$ = 20014, swcsplname = ucase(sparameter$)
if prmcode$ = 20015, swcsplcomm = ucase(sparameter$)
if prmcode$ = 20016, smatlname1 = ucase(sparameter$)
if prmcode$ = 20017, smatlname2 = ucase(sparameter$)
if prmcode$ = 20018, stpgrpname = ucase(sparameter$)
if prmcode$ = 12025, rotary_axis2 = rpar(sparameter$,1) #Capture the axis of rotation in Multiaxis Drill and Curve 5 Axis
if prmcode$ = 15371, axissubdir = rpar(sparameter$,1)
if prmcode$ = 12628,
if prmcode$ = 20018, sgroupname = sparameter$ #Group comment <<<<<<<----------- Added this here.................>>>>>>>>>>>>>
[
hst_flg = 1
hststyle = rpar(sparameter$,1)
]
pwrttparam$ #Information from parameters
Misc variables
tcnt : 0 #Count the number of tool changes
toolcount : 1 #Tool counter for logic control
toolcountn : 0 #Next tool counter for logic control
toolcountp : 0 #Previous tool counter for logic control
tooltotal : 0 #Tool tool count
nexttool : 0 #Next actual tool
counter : 0 #Counter
nstrlen : 0 #Length of string
stock_typ : 0 #Predator Stock Type
cyl_typ : 0 #Predator Cyl Stock Type
z_min$ : 99999 #Min Z
z_tmin : 99999 #Overall min Z
z_max$ : -99999 #Max Z
z_tmax : -99999 #Overall max Z
sav_mi9 : 0 #Saved mi9 value
rotretflg : 0 #Flag used for indexing lock code output
compwarnflg : 0 #Flag for compensation warning output
sof : 1 #Indicates start of file through toolchange
header : 1 #Indicates start of file (header) for comment output
miscvalon : 0 #Flag for warning that misc values are set to post default
abs2incflg : 0 #Flag for post change from abs to inc output for rot_type = 2
axissubdir : 0 #Direction of current axis substitution 0 = CCW, 1 = CW
retractflg : 0 #Flag to indicate retract at null toolchange
mr1_flg : 0 #Flag to indicate whether look ahead function is active or not
lim_flg : 0 #Flag to only output limit warning once
tilt_flg : 0 #Flag to only output tilt limit warning once
hst_flg : 0 #Flag to output HST comments
sgroupname : "" #Flag to output groupname comments <<<<<<<<<<<<<<<< Added this here............>>>>>>>>>>>>>>>>>>>>>>
# --------------------------------------------------------------------------
# Start of File and Toolchange Setup
# --------------------------------------------------------------------------
psof0$ #Start of file for tool zero
psof$
sopen_prn, sgroupname, sclose_prn, e$ <<<<<<<<<<<<<<<<<<<<<<<<Added this here.......................>>>>>>>>>>>>>>>>>>>>>>>
psof$ #Start of file for non-zero tool number
ptravel
pwritbuf5
pcuttype
-
Hi,
How can you add the toolpath group comments to a MPMaster post? I would like to have it post out what I put in the name for the toolpath group name in the top of the program somewhere.
Like I have 2ND OP on the screen shot. Would like that to be somewhere on the top.
Right now I have to put in a manual entry to do this. The problem with that is that the manual entry still has the issue with not saving whatever you name it after you edit it every time. This has been this way since I can remember. What I mean by that is try to name the manual entry something then go back and change something in the manual entry and see what happens to what you named it. It will be gone and you will have to rename it every time you change it. This is has been a bug for awhile now.
- 1
-
I'm not sure about you guys, but I tend to overlook simple, but critical details when I am programming. Some of my most common oversights are forgetting to turn on the coolant, and making sure that H and D outputs are appropriate for the tool. As a safeguard against my scatter-brained behavior, I have built a safety net into my post that will notify me that I have overlooked something. I will share this safety net for any of you that have an interest.
When posting, as each toolpath operation is processed, the post checks for any common errors that I have designated. If any are found, a popup box appears notifying the toolpath number, tool description and the error encountered.
The core of this feature is the popup box. You will need to add an entire postblock like this:
ptlchg_errorpop #Pop-up common toolchange errors if DepthCuts = 0, [ if NumEntities = 1, errorcheck = 1 else, errorcheck = 3 ] else, errorcheck = 3 if tloffno$ <> t$ & tloffno$ <> zero, [if mprint(stooldiameteroffserror, 2) = 2, exitpost$] #Diameter if tloffno$ = zero, [if mprint(stooldiameteroffszeroerror, 2) = 2, exitpost$] #Zero Diameter if tlngno$ <> t$ & tlngno$ <> zero, [if mprint(stoollengthoffserror, 2) = 2, exitpost$] #Length if tlngno$ = zero, [if mprint(stoollengthoffszeroerror, 2) = 2, exitpost$] #Length if coolant$ = zero, result = mprint(scoolantisoffserror, 1) #No Coolant
The strings that contain the text in the boxes are defined like this:
# -------------------------------------------------------------------------- # Error Checks # -------------------------------------------------------------------------- sOpSeqNo : "" #Operation manager displayed operation number stoollengthoffserror = "Operation " + sOpSeqNo + ": " + "(" + s20001 + ") TOOL LENGTH OFFSET DOES NOT MATCH TOOL NUMBER" stoollengthoffszeroerror = "Operation " + sOpSeqNo + ": " + "(" + s20001 + ") TOOL LENGTH OFFSET IS ZERO" stooldiameteroffserror = "Operation " + sOpSeqNo + ": " + "(" + s20001 + ") TOOL DIAMETER OFFSET DOES NOT MATCH TOOL NUMBER" stooldiameteroffszeroerror = "Operation " + sOpSeqNo + ": " + "(" + s20001 + ") TOOL DIAMETER OFFSET IS ZERO" scoolantisoffserror = "Operation " + sOpSeqNo + ": " + "(" + s20001 + ") COOLANT IS TURNED OFF" serrordetect = "POTENTIAL OFFSET AND/OR COOLANT ERRORS DETECTED. NOTIFY?" s20001 : "" #String for tool description s20002 : "" #String for tool description
And finally, since I have jobs that I intentionally leave the coolant off, I created an escape route from the parade of popups, like this:
ptlchg_errorcheck #Check for common toolchange errors if errorcheck = 0, [ if tloffno$ <> t$ | tlngno$ <> t$ | coolant$ = zero, result = mprint(serrordetect, 2) if result = 1, errorcheck = 1 if result = 2, errorcheck = 2 ] if errorcheck = 1, ptlchg_errorpop
This creates a single popup that notifies me that errors were found. Do I want to see them?
Now, to make this work, you need to:
1. In the pparameter$ section, add this:
if prmcode$ = 15084, NumEntities = rpar(sparameter$, 1) if prmcode$ = 15211, DepthCuts = rpar(sparameter$, 1) if prmcode$ = 15240, sOpSeqNo = sparameter$ #This is the operation manager operation number if prmcode$ = 20001, [ s20001 = sparameter$ s20002 = sparameter$ ]
2. In the variable format area, add this:
fmt 4 errorcheck #Flag for error notification fmt 4 NumEntities #Flag for Contour Chains fmt 4 DepthCuts #Flag for Depth Cuts
3. In the psof$, ptlchg0$, and ptlchg$ sections, add this near the top:
ptlchg_errorcheck #Check for common toolchange errors
Note: Some of the popups have one option, and some have two. On major errors, I have assigned the second button to exit the post.
I have tried to thumbnail an image of a coolant popup, without success. So, I have attached a PDF of the image here:
Works great thanks. Is there a way to turn off the coolant reminder?
-
Hi,
Is there a switch in the MPLmaster post for using G41 and G42 with a lathe canned cycle? For some reason it is not posting a G42 or G41 but does post G40.
Also what would be involved to change where the G40 is? I would like to have it on the line below with the Z move
Works fine without using canned cycle.
(ROUGH OD)
G54
N7 T0707
G18 G99
M24
G97 S200 M03
G0 X19.5 Z.15
X19.4 Z.1
G71 U.5 R0.
G71 P9 Q11 U.2 W.01 F.01
N9 G0 X18.748 S200 W0. <---------------------------- Should be a G42 on this line----------------->
G1 Z0.
X18.798 Z-.025
Z-2.
N11 G40 X19.4
G0 Z.1 <----------------------------- Would like the G40 on this line------------------------------->
G28 U0. V0. W0.
M01
(TOOL - 9 OFFSET - 9)
(OD 55 DEG RIGHT INSERT - DNMG-432)
(MPLMASTER GENERIC 3/4 AXIS LATHE)
(FINISH OD)
G54
N9 T0909
G18 G99
G97 S200 M03
G0 X19.4 Z.1
G70 P9 Q11
G0 Z.1
G28 U0. V0. W0.
M05
M30
%
-
Download this zip file, extract it and right-click on the batch file and run as Administrator.
Your other error can be eliminated by adding a manual entry toolpath and selecting that when verifying.
Ok thanks that fixed the Cannot find Parasolid data in Solidworks file error.
So I have to add a manual entry ever time to fix this error?
-
-
Sometimes I will create a surface from a solid face. Then extend the surface edge or extend trimmed edges and create a curve dynamic on the extended surface.
Then make a new spline by selecting points of all geo I want as one chain. Can be a pain.
That worked great for extending the 3D geo but what about trimming them? I tried a negative number in the field but didn't trim it. I guess the question is how do you trim a surface that cam from a solid not extend it?
Thanks
-
Why not to curve 5axis or swarf to cut the edges on the router just wondering why 3d contour?
We are using 5axis curve classic just using the 3D geo for the path. 3D offset contour is what I was using to make the geo edges smaller or bigger. But I like Dan@Vian Ent 's idea and I will try that.
Thanks
-
We do a lot of 3D wireframe work at one of the places I program for. They have a 5-axis router and they will need to add or take some material off the edges of these composite parts . Since it is 3D the edit trim extend usual give me the selected objects do not intersect. What we have been trying is just to contour offset a edge and use xform point to point after we trim the lines close. But this doesn't always work out and we sometimes have to create a line end endpoint even though the geo isn't straight because it is a spline just to be able to close chain. Especially if the geo is really curved and at a weird angle. Is there a trick on doing this? We bring in a solid model and make a wireframe from it. Is this something that would be better editing in the solid?
Thanks
-
Darin, it is not a matter of making the post to respond to a transform rotate,.... If you are using an axis substitution toolpath you have already introduced rotation into the toolpath by substituting the X or Y axis with rotary output. To get that toolpath to index and cut at the next position you need to use a transform translate. I use between points, the distance you are going to translate is the arc segment between the indexed angles. You would input that value relative to the axis you are substituting.
Ex: I have a pocket tpath substituting the Y axis on a 10" dia, need to index every 30deg, using the between points translation I set the Y axis to move 2.61799"
I got it now thanks. So even though you are using transform translate not rotate it reads the axis substitution and makes the correct code.
Thanks
-
Important things to know about SSD drives. The main one is it will not make any programs run faster. So Mastercam will run the same as regular hard drive. It is all in boot up times. You want faster Mastercam get better (more) processors better (more) ram better video card. I heard X7 has better processing features now that use the new technology.
Cost vs performance.
As All Have indicated, the SSD is About 40-> 80 Times faster than a HDD.
However; That said, and SSD will:
.. Considerably improve boot time - that is going from "start loading OS" -> able to open first program. Also shortens shut down time.
.. Speed up program load times - How noticeable depends on program.
.. Will load any files much faster than a HDD, providing the file is on the SSD.
Will NOT:
.. Speed up web surfing, downloading files from the web, nor speed up email
.. Will Not make programs RUN faster. Does not improve FPS in games (Will speed up map loading providing the map is on the SSD.
.. Will NOT speed up file load times if file is on HDD
-
-
I noticed you aren't using "unroll" in your rotary parameters for the Axis Sub Toolpath. Is your geometry drawn flat? If not, you should be using "unroll".
Edit: ok, looks like you are using the flat chain of geometry. You can take that chain and translate copy it on the flat to make multiple cuts around a diameter. You want 12 cuts, so you calculate the circumference as 10.945 x 3.14159265 = 34.3847316. (the more accurate your calculation, the better the result. Go at least 1 more significate digit in precision than your tolerance. So if your machine is accurate to .0001, then make sure your translation distance is 5 or 6 decimal places in accuracy.)
So 34.3847316 / 12 = 2.8653943. When you translate, use that distance, and round to 6 digits. 2.865394 is what I would use.
Hope that helps,
Colin
Thanks Colin. Worked great. What is involved in making a post work with transform and axis sub tool paths?
-
Hi,
Does transform rotate tool path work with a contour operation that has axis substitution? I can't get it to post like I want it. It just seems to post the same B moves for all the transform paths. I am trying to make these cutouts every 30 degs on this cylindrical part on a horizontal machine. The cutouts need to be cut on the 10.945 dia axis not straight through. I have X6 and W7..
This is how it posts.
N1 M01 ( 3/16 ENDMILL )
( MILLS 1ST 10 MM SLOT WITH 3/16 ENDMILL )
N140 T01 M06
N150 G00 G90 G54 X0. Y.8492 B-.314 S4500 M03
N160 G43 H01 Z5.5725
N170 G01 Z5.1975 F10.
N180 G41 D01 Y.7242 F30.
N190 Y.7149 B-.299
N200 Y.7066 B-.254
N210 Y.6999 B-.185
N220 Y.6957 B-.097
N230 Y.6942 B0.
N240 B3.86 F330.71
N250 Y.8801 F30.
N260 Y.8804 B-3.86 F330.71
N270 Y.6942 F30.
N280 B0. F330.71
N290 B.314
N300 Y.6957 B.411 F30.
N310 Y.6999 B.499
N320 Y.7066 B.568
N330 Y.7149 B.613
N340 Y.7242 B.628
N350 G40 Y.8492
N360 Y.8392 B-.314
N370 G41 D01 Y.7142
N380 Y.7049 B-.299
N390 Y.6966 B-.254
N400 Y.6899 B-.185
N410 Y.6857 B-.097
N420 Y.6842 B0.
N430 B3.916 F330.71
N440 Y.6848 B3.94 F317.98
N450 Y.6865 B3.957 F225.02
N460 Y.6888 B3.965 F95.72
N470 Y.8854 F30.
N480 Y.8877 B3.958 F82.73
N490 Y.8895 B3.94 F222.21
N500 Y.8901 B3.916 F319.88
N510 Y.8904 B-3.916 F330.71
N520 Y.8898 B-3.94 F317.99
N530 Y.8881 B-3.958 F227.65
N540 Y.8857 B-3.965 F81.69
N550 Y.6888 F30.
N560 Y.6865 B-3.958 F82.73
N570 Y.6847 B-3.94 F222.21
N580 Y.6842 B-3.916 F321.08
N590 B0.
N600 B.314
N610 Y.6857 B.411 F30.
N620 Y.6899 B.499
N630 Y.6966 B.568
N640 Y.7049 B.613
N650 Y.7142 B.628
N660 G40 Y.8392
N670 G00 Z5.5725
( MILLS 1ST 10 MM SLOT WITH 3/16 ENDMILL )
N680 G00 G90 G55 B-.314 <------------------------- Shouldn't These B moves should have 30 degs added to them from the transform?------------------------------>
N690 X0. Y.8492
N700 Z5.5725
N710 G01 Z5.1975 F10.
N720 G41 D01 Y.7242 F30.
N730 Y.7149 B-.299
N740 Y.7066 B-.254
N750 Y.6999 B-.185
N760 Y.6957 B-.097
N770 Y.6942 B0.
N780 B3.86 F330.71
N790 Y.8801 F30.
N800 Y.8804 B-3.86 F330.71
N810 Y.6942 F30.
N820 B0. F330.71
N830 B.314
N840 Y.6957 B.411 F30.
N850 Y.6999 B.499
N860 Y.7066 B.568
N870 Y.7149 B.613
N880 Y.7242 B.628
N890 G40 Y.8492
N900 Y.8392 B-.314
N910 G41 D01 Y.7142
N920 Y.7049 B-.299
N930 Y.6966 B-.254
N940 Y.6899 B-.185
N950 Y.6857 B-.097
N960 Y.6842 B0.
N970 B3.916 F330.71
N980 Y.6848 B3.94 F317.98
N990 Y.6865 B3.957 F225.02
N1000 Y.6888 B3.965 F95.72
N1010 Y.8854 F30.
N1020 Y.8877 B3.958 F82.73
N1030 Y.8895 B3.94 F222.21
N1040 Y.8901 B3.916 F319.88
N1050 Y.8904 B-3.916 F330.71
N1060 Y.8898 B-3.94 F317.99
N1070 Y.8881 B-3.958 F227.65
N1080 Y.8857 B-3.965 F81.69
N1090 Y.6888 F30.
N1100 Y.6865 B-3.958 F82.73
N1110 Y.6847 B-3.94 F222.21
N1120 Y.6842 B-3.916 F321.08
N1130 B0.
N1140 B.314
N1150 Y.6857 B.411 F30.
N1160 Y.6899 B.499
N1170 Y.6966 B.568
N1180 Y.7049 B.613
N1190 Y.7142 B.628
N1200 G40 Y.8392
N1210 G00 Z5.5725
-
no version could ever save complete files with toolpaths back to earlier versions
X6x32 can save geometry back
X7 cannot save anything back as a Mastercam file
Great thanks gcode that is what I thought. They really just need to upgrade to X6. Will X2 work with W7 64 bit systems ok?
-
I have done a search on this but want to make sure I am clear on this. I program for a company that uses X2. Was there any version say X4 or X5 that would be able to save the full Mastercam file to a older version like X2? I was told Mastercam has always only saved the geometry not any operations. Is this correct? Or was there a version that could save all to an older version? I need to know if I should install X2. I have X6 and X7.
Thanks
-
Can you post a pic of the gouge on the part? Is it a little gouge or huge arc-drive-the-wrong-way gouge? What machine control?Sounds like a machine/post issue though. I've wrecked some parts with arcs going the wrong way. Do what Colin says above. Also allow 360 deg arcs.
How big is the gouge? How big is the part? If the gouge is around .005, and your tolerance is set to that, then that's your cause. .005 may be perfectly fine if you've got that much tolerance, or on monster parts. But if not, that could be your cause.
Another GREAT tool for checking code is the full on version of Cimco V6. It's very inexpensive and worth it's weight in gold.
. ....Reseller for Wash?
Hi Chris... Thanks for the input.. I am assuming the person meant Oregon reseller but not sure.. It is one of the many place I program for . I hear a lot of feedback from different people so I take a lot of the things I hear with a grain of salt.. I can only go from my experience on the hundred's of machine I have dealt with.. I haven't see these tool paths do this till now.. I am glad I have some great contacts like yourself and others... I have some that actually have You-Ji's running with Mastercams and they don't have these issues... So it is a lot of investigating that I have to do... It might be a simple as getting the control settings right on the machines....
Thanks
-
From what others in the thread have said, I'm leaning towards the Hybrid arcs being the culprit, not the post itself. Those CD settings look spot on, so your problem is likely not the arc settings in the NC code.
Tolerance also has a lot to do with it. For finishing, I typically go 2:1 ratio, with .0003 total tolerance.
Ok thanks Colin... So I should never use Hybrid? Also should I always have the total tolerance 2:1 even if I am roughing? Could the total tolerance settings have made this gouge?
Thanks
-
^^^^ Both of these ^^^^
I've used the solids as well, with no problems as far as toolpaths go. Processing or regen time can become a bit to much for my patience though.
I'll agree with tightening up the tolerance settings. I also have resorted to always using the output feed as this, I believe, is what caused a gouge in a program I did some time ago. And yes, it did NOT show in the verify.
I noticed you don't have your "Part Clearance" on at all. I would add some type of clearance and just because I like to be cautious, I'd also raise the "Clearance Plane" setting a bit.
For some reason the part clearance doesn't work with full vertical retract... It is grayed out... I was told to use full vertical retract it is safer...
Thanks
-
The first thing I would check would be the Arc settings in your Control Definition. The only time I've seen issues with gouging in a HST toolpath was due to the control reading a radius value, and swinging the wrong way around the arc.
Are you using IJK (Delta start-to-center) for your arc values, or are you using Radius? If your machine will accept it, please use the IJK option, as this specifies the exact arc centerpoint, and the machine doesn't have to guess.
The other clue here is the old posts as others have mentioned. We made some improvements around X4 or X5 in the posts for Arcs. Specifically, we added some code to force the internal calculations for the Arc centers to use the "Delta" values, even if you are outputting Radius for arcs.
Code:
# The following four initializations are used for full arc and helix arc output when the CD # is set to output R or signed R for arcs larctypexz$ : 2 #Lathe Arc center type XZ plane 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc. arctype$ : 2 #Mill Arc center type XY plane 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc. arctypexz$ : 2 #Mill Arc center type XZ plane 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc. arctypeyz$ : 2 #Mill Arc center type YZ plane 1=abs, 2=St-Ctr, 3=Ctr-St, 4=unsigned inc.
If you don't see those 4 variable initializations in your post, then I would recommend you upgrade to a newer post processor. As a last resort, you can always turn off the arcs completely in the toolpath, and just go point-to-point moves (G1).
Thanks Colin again for your help.... Here is the post.. I don't find those exact lines like the one above.. Also a screen shot of the control settings...
[post_VERSION] #DO NOT MOVE OR ALTER THIS LINE# V15.00 P2 E1 W15.00 T1337895755 M15.00 I0 O0
# Post Name : YOU JI
# Product : LATHE
# Machine Name : YOU JI
# Control Name : OI
# Description : YOU JI C-AXIS POST
# Mill/Turn : YES
# 4-axis/Axis subs. : YES
# 5-axis : NO
# Subprograms : YES
# Canned Cycles : YES
# Executable : MP 10.0
#
# WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
#
# Associated File List$
#
# GENERIC FANUC 4X MT_LATHE.control
#
# Associated File List$
#
# --------------------------------------------------------------------------
# Revision log:
# --------------------------------------------------------------------------
# Programmers Note:
# CNC 07/7/04 - Initial post update for Mastercam X
# DV 05/03/13 - Modified R output for drilling, and Coordinate conversion
#
#
# --------------------------------------------------------------------------
# Features:
# --------------------------------------------------------------------------
####### MILL/TURN FUNCTIONS SUPPORTED BY THIS POST #######
#
# This post supports Generic Fanuc code output for mill/turn lathes.
# It is designed to support the features of Mastercam X.
#
## NEW FEATURES FOR X
# - Machine definition, control definition and toolpath group parameter read sections added.
# - Variable initialization with CD_VAR are read directly from CD. Changing these initial values
# in the post will not effect output. These values are only processed during the update post routine.
# - Variable initialization with SET_BY_MD or SET_BY_CD are overwritten in this post by parameter or
# variable settings from MD or CD.
# - Enhanced tool information - Added switch for tool comments (see tool_info)
# - Supports X comments including machine name, group name and group comment output (see pcomment2)
# - Additional date, time and data path output options (see pheader)
# - Support for 10 additional canned text options for X
# - Decimal support for sequence number output (set "Increment sequence number" in CD to a decimal value
# for output. I.E. "Increment sequence number" = .5, "Start sequence number" = 10 : N10, N10.5, N11, N11.5, etc...)
# - Switch for output of M00 or M01 at tool change (3 position switch, off, M00, M01 - see prog_stop)
# - Support for seperate XY, XZ and YZ plane/arc variables (see Arc page in CD)
# - Support for X style coolant. Allows up to 10 different coolants to be turned on/off before, with, or after like
# canned text. Coolant output is handled by "coolant" variable and string selector for V9 style coolant,
# "coolantx" variable and string selector for X style coolant.
#
# Following Misc. Integers are used:
#
# mi1 - Work coordinate system: (home_type)
# -1 = Reference return / Tool offset positioning.
# 0 = G50 with the X and Z home positions.
# 1 = X and Z home positions.
# 2 = WCS of G54, G55.... based on Mastercam settings.
#
# mi2 - Absolute or Incremental positioning at top level
# 0 = absolute
# 1 = incremental
#
# mi3 - Select G28 or G30 reference point return:
# 0 = G28, 1 = G30
#
# mi4 - Canned conversion cycle type selection:
# Mill-
# Activates milling axis conversation canned cycles (G107 or G112).
parc #Select the arc output
#Setup for arctype setting
if (posttype$ = 2 & (larctypexz$ = one | larctypexz$ = four)) |
(posttype$ = 1 &(plane$ = zero & (arctype$ = one | arctype$ = four)) | #XY Plane
(plane$ = one & (arctypeyz$ = one | arctypeyz$ = four)) | #YZ Plane
(plane$ = two & (arctypexz$ = one | arctypexz$ = four))), #XZ Plane
[
result = newfs(two, i$)
result = newfs(two, j$)
result = newfs(two, k$)
result = newfs(two, iout)
result = newfs(two, jout)
result = newfs(two, kout)
]
else,
[
result = newfs(three, i$)
result = newfs(three, j$)
result = newfs(three, k$)
result = newfs(three, iout)
result = newfs(three, jout)
result = newfs(three, kout)
]
if (posttype$ = 2 & (plane$ = 2 & larctypexz$ < five)) |
(posttype$ = 1 & ((plane$ = 0 & arctype$ < five) |
(plane$ = 1 & arctypeyz$ < five) |
(plane$ = 2 & arctypexz$ < five))),
[
#Arc output for IJK
if (posttype$ = 2 & (plane$ = 2 & larctypexz$ = one)) | #XZ plane - Lathe
(posttype$ = 1 & ((plane$ = zero & arctype$ = one) | #XY Plane - Mill
(plane$ = one & arctypeyz$ = one) | #YZ Plane - Mill
(plane$ = two & arctypexz$ = one))), #XZ Plane - Mill
[
#Arc output for IJK, absolute
iout = (iout + dia_shift) * dia_mult
jout = (jout + y_shift) * y_mult
kout = (kout + z_shift) * z_mult
if c_ax_flp, iout = -iout
]
else,
[
#Arc output for IJK, start/center
iout = iout * (dia_mult/abs(dia_mult))
jout = jout * y_mult
kout = kout * z_mult
if c_ax_flp, iout = -iout
]
iout, kout, jout
!i$, !j$, !k$
]
else,
[
#Arc output for R
if abs(sweep$)<=180 |
(posttype$ = 2 & (plane$ = 2 & larctypexz$ = five)) | #XZ Plane - Lathe
(posttype$ = 1 & ((plane$ = 0 & arctype$ = five) | #XY Plane - Mill
(plane$ = 1 & arctypeyz$ = five) | #YZ Plane - Mill
(plane$ = 2 & arctypexz$ = five))), result = nwadrs(srad, arcrad$) #XZ Plane - Mill
else, result = nwadrs(srminus, arcrad$)
*arcrad$
]
pffr #Output feedrate, force
if ipr_actv$ = zero, pfr_m
else, pfr_l
*feed
pfr #Output feedrate
if ipr_actv$ = zero, pfr_m
else, pfr_l
`feed
pfr_m #Format feedrate for mill
result = nwadrs(strf, feed)
result = newfs (17, feed)
pfr_l #Format feedrate for lathe
if opcode$ = 104,
Canned text output postion?
in Post Processor Development Forum
Posted
Any ideas on how to do this?
Thanks