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:

Colin Gilchrist

Verified Members
  • Posts

    7,771
  • Joined

  • Last visited

  • Days Won

    162

Everything posted by Colin Gilchrist

  1. The issue is the way those corner surfaces were modeled. Look at where the ISO lines (UV Grid Lines) originate from. The "midpoint of the curved edge" appears to be where the surface "origin" is. Swapping UV won't redefine the intrinsic "origin" of the grid lines, just swaps them so the U or V lines now "align" with the adjacent surfaces, but in this case, the best way to fix this issue is simply to use Net Surface and build new ones. Go into Net Surface. Be sure you are in "full chain mode". Even though you are in Full Chain, the surface creation function is smart enough to search for the branch points and stop. For a "4-edge surface", you simply start at any side of the chain, click one section, and then follow the chaining around in the same chaining direction, to pick the 4 sides. (go all CW or all CCW.) For a 3-edge fillet like this, pick one wall edge, with the chain going "towards the point" at the bottom. 2nd, pick the far fillet edge, again pointing from the "top" to the bottom. Finally, select the 3rd chain as the top edge, going either direction, doesn't matter. After picking the 3 chains, press "ok", and Net Surf will create a 3-edge blend surface. Simple and quick, and the ISO grid lines will line up. (and can be swapped if needed)
  2. After you reorder the groups in the Kinematic Tree, you need to go into the "Axis Combinations Dialog" (little button that looks like a coordinate system). Go through the Axis Combination Tree, and make sure all the axes are selected. You must also select a "spindle" (tool holding component), and "table or rotary axis chuck", as the "work holding component".
  3. I couldn't do it with a single path. Here is the result with two paths. First, I created edge curves, and built new Net Surfaces. Then I changed the type to "full, start/end at exact edges". This give you the "Margins" Page. This you can use to adjust how "close" the tool machines to the edge. I found I also had to adjust the "Start Point", to get the entry/exit to not feed all the way to the opposite edge of the surface. Unified_Start_Point_Control and Margins Solution.mcam
  4. Edit the Control Definition File. You can put "" (a set of two Double-Quote Characters) to disable the field. Make sure the Post file is closed when you do this, because the Control Definition "writes" to the Post File Text Section.
  5. RMP 600 is a Strain Gauge Probe, not kinematic arrangement, and is far more sensitive than your machine is capable of holding. Accuracy/Repeatability should be on the order of 0.25 Microns to 2 Sigma. That is 10 Millionths. Make sure you calibrate with the new Stylus (I'd use a 1.5mm or 2mm max. diameter ruby or silicon nitride ball, depending on material being machined). When you use the "tool wear adjustment" Macro, there is typically an "experience" value. This is poorly-described, but is essentially "the adjustment percentage of the measured deviation between actual and nominal". You use the Experience value to adjust the amount of "change being made" to the wear adjustment. For example, say you programmed a 2mm cutter to make a Semi-finish pass, on both sides of the slot, leaving 0.1mm per side. This should give you a 2.8mm wide slot. But when you measure the slot width, it is 2.784mm. The difference between nominal (2.8) and actual is 0.016mm. We could then correct the Wear Offset (assuming radius, in this example), by 0.008mm, so it cuts that much additional metal off each side of the slot. Except in practice, other factors such as tool deflection come into play. Through "experience" you come to find that using between 60-70% of the 'delta measurement', gives you more predictable results in production, to avoid overcutting when making the final finish pass. You could use an "E" value (may be a different Alpha-Address Character), of E0.65, which would tell the Macro to only use "65%" of the delta value. I will typically use an Experience value of 40%, if I'm doing a multi-step process with the probe to qualify a tool. I find I get the best results by "sneaking up on the adjustment", and then re-cutting the Semi-Finish Pass (again, using 40% as a starting test value). If you are taking the approach of automating the process, it will be very important to calibrate often, and to be sure the probe tip and the slot is very clean, and that the machine is warmed-up, using the same cutting program that will be run in production. (Don't put "too much heat" into the machine, it needs to be as close to actual "operating temperature" as possible.)
  6. Hire Ron to really show you the ropes! Get that PX30i whipped into shape!
  7. In general, if you are talking a "5-Axis Lathe", you are better off purchasing a Post. You're not going to be successful trying to just add 5-Axis Matrix and Vector logic to a 4-Axis Mill or 4-Axis Lathe Post. There is no generic MT Post I'm aware of. They all cost money, and you must go through your Reseller or an authorized 3rd Party Post Developer, to source a 5-Axis or MT Post.
  8. I always "force" a regeneration. The other things that don't "update" without a regen are the Miscellaneous Integers and Real Numbers.
  9. These things are built by Fanuc, using Fanuc Drives and Motors. They are not good; they are fantastic! Make sure you get the options for "flushing" of the zero-point connection, and ask Methods about adding "spindle cleaning/flush" options, to make sure the no chips get caught in the spindle taper. Make sure you get the Big-Plus option on the spindle, and buy "real" Big-Plus holders. The BT30 Taper, with Big-Plus, is comparable in rigidity to a non-big plus CAT40 holder. I did Turnkey job from 17-4 Stainless on a regular short-bed Robodrill (not plus-k), and I was drilling 5xD and 7xD, small holes (.125 and 6mm diameter), with no issues. (I did have thru-spindle coolant, which is a must for productive deep-hole drilling. Not that 5xD or 7xD is extreme, but the first time I tried this on a non-thru coolant spindle, we had issues with drill breakage due to work-hardening of the material when attempting to peck. Raising the retract height helped, but with Thru-Coolant, we successfully machined hundreds of holes without pecking. I opted to thread mill, rather than tapping.
  10. By Definition, you are manipulating the "Plunge and Retract" motion. Your only option is to use the Plunge and Retract Speeds (turn off "rapid retract", to save yourself the possibility of a Dog-leg Rapid Crash! This makes the final "retract" move a Feed move, at whatever Feedrate you specify in the Retract Feed data entry field.
  11. Kind of a late response, but I'll take a stab at this. Your title was "String Select", and the example you gave was using 'rpar'. That is the old-school function for getting the data. There is a whole bunch of new functions in the MP Language, but I have yet to see practical examples, and posts written "from the ground up with only the new functionality", as examples from CNC Software. To be fair, I also haven't looked too hard recently to see if any exist either. I use all the old-school functions because 99% of the people asking Post Questions, on this forum, are using a Post that uses the old 'Parameter Table/Pre-Read' functions (pparameter$ and pwrttparams$).
  12. 6684 is the line number where the error was detected.
  13. Looking at the numbers, a Metric Pitch of 0.4mm = 0.015748031496063" per tooth. I always try to adjust my RPM to hit a Tapping Feed Rate which isn't rounded (or is rounded very, very little), to help avoid accumulated pitch errors. I agree with tapping faster, but 0.015748031496063" is a tough pitch to find the right RPM to cut at, because RPM is only specified in integer values. (Can't do decimal values on the commanded RPM.) For this pitch, I believe 889 RPM is perfect. That would give you a tapping feedrate of 14.0000000 Inches per Minute. Or you could double the RPM to 1,778, and tap at 28 IPM. I would look to Emuge for taps. Is the hole truly "thru", with ample clearance on the other side of the hole to push the chips through? If so, a Spiral Point Tap would work, just keep in mind that it won't "pull" the chips out from the hole, but will "push" them through. Form Tapping would give great results, or look to a "Spiral Flute Tap" to pull the chips. If I have the option, I like to run the Pulse Jet lubrication option on Haas machines, and fill the reservoir with Aluminum Tap Magic, and just use the Pulse Jet for the tapping operations, but use regular coolant for everything else. The other option (as has been mentioned in this thread) is to use regular coolant, but make sure your concentration level is at 10% or above.
  14. [email protected] That would be a good start, even if they do want all communication to flow through your Reseller, you can at least establish the connection with CNC Software. You should mention you were talking with Hector on Emastercam.
  15. To debug an external file: There is a variable 'subout$' that controls the output stream. You can write to 5 different files, values are 0-4. NC File is the "main" file, when 'subout$ = 0'. You tell MP if you want to "initialize a new file" with the "stream program" variable. For AUX files, this is 'auxprg$'. Setting 'auxprg$ = 1' tells MP to overwrite a new file every time. Setting 'auxprg$ = 2' tells MP to "append" the output to the existing file. You need to set the File Path, File Name, and File Extension, to tell MP, "where to put, and what to name", the AUX File being created which is normally held in memory, and destroyed when no longer needed. You do this with the variables: 'snameaux$', 'sextaux$', 'spathaux$'. (name, extension, path) After setting 'auxprg$', and setting the correct path/name/extension for the file, you put the command variable 'newaux$' on a Post Line. This tells MP that as AUX file is being manipulated and filled with data, that you want to write that data to a physical file on your hard drive. In the 2022 or 2023 Mastercam MP Online Reference Guide, or in the older PDF Files, look up: auxprg$ clearaux$ mergeaux$ newaux$ subout$ newaux$ M L R W MT Open a file to receive output for the AUX stream (subout$ = 2). You can open a new file or open an existing file and append the new output to it; use the auxprg$ setting to control the output mode. If NC sectioning is active, the value of section_size_aux$ must be set to a non-zero value. Opening a file for the AUX output stream Follow this general outline when you want to write the contents of the AUX output stream to a new file. Set the value of subout$ = 1. This activates the AUX stream and directs new NC output to it. Set the values of the following strings to the desired path, file name, and extension: snameaux$ = filename sextaux$ = extension spathaux$ = path If necessary, configure the file for output with auxprg$: Choose to open the file for new output or in append mode. Select the character encoding: UTF-8 or ASCII/Windows code page. Use the newaux$ command to open the file. Where does this value come from? Output on following NCI lines None Control definition page None How is this used? Example p_mypostblock if subout$ = 0, [ sextnc$ = sncext + "_" + no2str(prv_section_size_nc$) newnc$ ] else, if subout$ = 1, [ sextsub$ = ssubext + "_" + no2str(prv_section_size_sub$) newsub$ ] else, if subout$ = 2, [ sextaux$ = sauxext + "_" + no2str(prv_section_size_aux$) newaux$ ] else, if subout$ = 3, [ sextext$ = sextext + "_" + no2str(prv_section_size_ext$) newext$ ] else, if subout$ = 4, [ sextlcc$ = slccext + "_" + no2str(prv_section_size_lcc$) newlcc$ ]
  16. You should be able to talk with In-House or Postability directly, and the Reseller should work with them to sell you a working Post. I know your Post is a Wire Post. In-House Solutions has built hundreds of thousands of Post Processors for Mastercam. I'm sure they can get one working for your specific machine. @Webby, can you please ask Alex Dales, if he can chime in on this? He is looking to source a Post for a Agiecharmilles CUT P550 Pro.
  17. In-House Solutions: [email protected] Postability: [email protected] Both of these companies are authorized 3rd Party Post Developers, and will sell you a Post for your machine, through your Mastercam Reseller. There are Posts available, you just have to go to the right source (and pay for them), to get a working solution.
  18. James, what do you think about just going with G68.2 on a Horizontal, versus the G54.4, since the machine doesn't have two rotaries to compensate? Would you just go G54.4, and call it a day?
  19. You may be going about this the hard way. The predefined variable 'posttype$', is set to '1' for mill/router operations, and '2' for Lathe Operations. (Easy way to determine if operation is mill or lathe.) The predefined variable 'spindle_no$' is set to '0' for Main Spindle, and set to '1' for the Sub Spindle.
  20. The Solids Chaining, and some of the new Wireframe Chaining options, have improved quite a bit in recent years. I love having the new chaining arrow where you can toggle through the chaining branches that Mastercam can find. Keeps you from having to jump between the chaining dialog box, and the model. If I think a part is likely to have revisions, or there is likely to be more than 50 operations, I'll build wireframe "as needed" (typically using create curve) from the model. If my part is not likely to change, and be less than 50 operations, I'll drive the 2D Operations using Solid Chaining. One thing that I would love to see added would be an "Air Stock" control, or to have the 2D Operations be "stock aware", so if I select an "air chain" from the Solid, Mastercam could detect that there was stock on the part that existed outside that "air chain" boundary. I also do the same thing as Aaron, where I create Solids that are copies of the model, which I manipulate by using the "Remove Feature" function. This allows me to use "in-process" manufacturing models, where I don't have dozens of Operations tied to a single model. The blessing and curse of Solids is "should you need to modify/change anything on the solid", it will dirty all Toolpath Operations tied to the solid. I like to be able to choose "what paths did this change affect", and "do I need to redo/regenerate everything, or can I leave the Roughing Operations as-is".
  21. The 'rpar' function, grabs an 'Array' of 'space delimited' numeric variables from the line, starting from the 1st variable, and stopping where you tell it to stop (with the optional 2nd parameter) So, you are telling the function, "get the first two variable values", starting from the 'first variable' in the list, which happens to be '0.'. Because you used the value '2', you are telling the function to grab only the first two variables, from an "array" of variables. If all you want is a single value, use 'rparsngl'. Plus, you need to use the 'sparameter$' String, as the "input" string, and use 'sm_offset' as the String to capture the result: if prmcode$ = 20200, sm_offset = rparsngl(sparameter$, 2) #<- This will only capture the 2nd parameter, from the string. All of the '20,xxx' series Tool Parameters, would be constantly written to the same string variable name, during processing 'sparameter$'. You need to add this line of code to 'pparameter$' Post Block, for capture during normal processing. If you also want that data "During the Tool Table (prwtt$) processing", you also need to add that line of code to 'pwrttparams$'. Here is what it should look like (you may have other 'parameter read logic' in the Post Block, so just append your code "to the end of the block". pwrttparam$ #Pre-read parameter data #"pwrttparam", ~prmcode$, ~sparameter$, e$ if prmcode$ = 15346, comp_type = rpar(sparameter$, 1) #Cutter compensation type - 0=computer, 1=control, 2=wear, 3=reverse wear, 4=off if prmcode$ = 10010, xy_stock = rpar(sparameter$, 1) #Capture stock to leave (XY) if prmcode$ = 10068, z_stock = rpar(sparameter$, 1) #Capture stock to leave (Z) if prmcode$ = 20200, sm_offset = rparsngl(sparameter$, 2) #Capture the 2nd parameter from this string (for Tool Table) pparameter$ #Read operation parameters #rd_params is used to call pparameter postblock and read the parameters of the operation specified in rd_param_op_no #"pparameter", ~prmcode$, ~sparameter$, e$ if prmcode$ = 12025, rotary_axis2 = rpar(sparameter$, 1) #Capture the axis of rotation in Multiaxis Drill and Curve 5 Axis # Check To See if tool is metric if prmcode$ = 20007, toolismetric = rparsngl(sparameter$, 11) if prmcode$ = 20200, sm_offset = rparsngl(sparameter$, 2) #Capture the 2nd parameter from this string (during output)
  22. For using the Dynamic Paths, here are some typical good starting values. As Aaron mentioned, try to utilize a much flute as possible, but I try and stay between 2:1 and 3:1, Depth-to-Diameter ratio. As you get above 3:1, you'll need to reduce your Stepover accordingly. For Aluminum, I typically use between 20-40% Radial Engagement (Stepover), depending on cutter length. For 2:1, or under, go with 40% to keep the material removal rates up. I think 30% is a good "default" stepover value for aluminum. That said, I've successfully done an outside shape with 4:1 ratio (2" deep with a .500 diameter tool), but dropped my stepover to 15%. Typical Stepovers, based on material, at 2:1 Ratio: Aluminum 15-40%, default of 30% Steel 10-20%, default of 15% Stainless Steel 5-15%, default of 8% HSRA (Inconel, Waspalloy, etc.) 2-5%, default of 2.5% Titanium 2-6%, default of 4% I try and keep my "minimum corner radius" value at double my stepover value, or more. If you're trying to get the tool into tight areas, like a slot between features, you can drop this value down as low as 3% (minimum input value I think is 2.5%). For "Pockets", you do not need any Avoidance Geometry. You only need Machining Geometry, set to "Stay Inside". (You can use "Avoidance" for internal bosses however.) As G-Code mentioned: you do need Machining Geometry for Stock, and Avoidance Geometry for the part contour, when roughing an external shape from outside.

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...