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,779
  • Joined

  • Last visited

  • Days Won

    164

Everything posted by Colin Gilchrist

  1. If you have solid pieces which are "adjacent but not intersecting" in some way, they will not boolean join together. The solution is to take one of the pieces, select it, and press "ALT + E" on the keyboard for "hide". Everything else will disappear temporarily. You can then use "Remove Solid History", to take away any history of that one piece, and then use the direct solid modeling functions to "Push-Pull" a face or feature on the solid, so it will get "just a little bigger" and actually intersect the other solid. Once the solid is modified, press "ALT + E" again, and everything will come back. If you did the push/pull right, so the solids properly intersect, you'll be able to complete your Boolean operation. It also helps in the case of a clamp, if you can "de-feature" the models as much as possible, before importing copies of the solid. I'll use "Modify Solid Feature > Remove" to remove holes and other "internal" features from a model to simplify it, then run Remove History, save the file, and then try to use Boolean Add.
  2. You can use the "Section NCI" C-hook, to break up a Toolpath Operation, and split it into multiple chunks of toolpath code, each with proper approach/retract motion, so you can run the files in sequence on a machine with small memory. After you run "Section NCI" to split a toolpath into multiple files, you must use "Import NCI" to import and stack up the operations. You can then use the NC File naming attributes to append "incrementing numbers" at the end of the file. "File-1", "File-2", "File-3", etc. Having the "approach/retract" moves inside the NCI Data, is better than asking your Post to add all the necessary approach/retract data, and include the "Tool Change" and "Retract at end-of-file" data. This solution has existed inside Mastercam since I started using the software with Version 6.1.3, back in 96'-97'.
  3. I helped setup a couple of Yasda PX30i machines with 323 Tool Magazines, and the customer quickly learned that they should have bought the 513 tool magazines! I hear Yasda is now building these magazines in a modular way, so you can just keep adding additional blocks of tools if you want to expand beyond 513 tools.
  4. The important thing to understand is that some functions were created inside the 5-Axis Post "early in the development" of the Post, and that architecture can be used to support other things. This is the case with 'n_tpln_mch'. It was originally used to support Nutating Heads/Tables for the G7 function, and using only "mechanical kinematics" to calculate the correct output for a Tool Plane, giving us XYZ P/S (Primary/Secondary) output. n_tpln_mch gets initialized to '-2'. A setting of '-2' indicates "5-Axis". A setting of "-1" indicates "a path that is not Toolplane Based (3+2 output)". For example Axis Substitution where the input is a Tool Plane, but the math tells the Post to "wrap the rotary axis". n_tpln_mch gets set to 'top_type' if 'top_map' is active. Otherwise, the post does some other calculations for 'n_tpln_mch', and eventually sets it to 0-4, indicating the type of internal processing (mapping) to achieve the desired output for angles and coordinates. When 'top_type' is set to '5', then 'n_tpln_mch' also gets set to '5', and then it just overrides all the automatic Nutating internal logic calls, and just calls the "Custom settings, ptop_type_ax and ptop_type_lim" instead. When G68.2 is implemented using the default architecture For a non-Nutating machine, 'top_map' should be '1', and 'top_type' should be '5', and the only values n_tpln_mch should have are -2 for 5-Axis, and '5' for Plane Mapping (Tilted Work Plane) output. It is only when 'top_map' is off or 'top_type' is not set to '5', when you'll get the value of 'n_tpln_mch' set in the range between -1 and 4. In a properly configured Post, using the default architecture, you should only see -2 or 5, or maybe -1 under certain circumstances. Just for clarity, the only valid values I believe the post should return for n_tpln_mch are: -2, -1, 0, 1, 2, 3, 4, or 5.
  5. That document talks about adding only "G68 single axis rotation". To add G68.2 support, you basically need to set 'top_type' to '5'. This tells MP not to use any of the automatic rotations, and lets you add code to 'pg68' and 'pg68_map', to support the Tilted Work Plane output. Some sample code (without variable definitions, just look at the structure first, to see if you can figure out what is going on). # -------------------------------------------------------------------------- # Mapping mode - # Rotations are always about the zero point # Only toolplane toolpaths by entire toolpath section use mapping mode # Modify according to specific post setup # -------------------------------------------------------------------------- pg69 #Cancel mapping mode if top_map, [ #Add your code to cancel mapping mode... pbld, n$, smap_mode, e$ ] pg68_map #Map the first postion to the machine if p_out | s_out, [ if map_mode = 0, [ tmpmtx_xx = mteq(m1$) #Copy toolplane into temp matrix ##### # Find alpha angle ieul = -atan2(tmpmtx_zy, tmpmtx_zx)-90 ##### # Rotate tmpmtx_xx matrix about wcs z by alpha angle - this should make zx equal zero axisx$ = vequ(caxisx) tmpmtx_xx = rotv(ieul , tmpmtx_xx) tmpmtx_yx = rotv(ieul , tmpmtx_yx) tmpmtx_zx = rotv(ieul , tmpmtx_zx) ##### # Find beta Angle between Tool Z Vector and WCS Z about X axisx$ = vequ(aaxisx) jeul = -atan2(-tmpmtx_zy, tmpmtx_zz) #pay attention to quadrants this is rotated 90 degrees, think of wcs z as an x axis and the vector needs to be measured counter clockwise from there ##### # Rotate tmpmtx_xx matrix about wcs x by beta angle axisx$ = vequ(aaxisx) tmpmtx_xx = rotv(jeul , tmpmtx_xx) tmpmtx_yx = rotv(jeul , tmpmtx_yx) tmpmtx_zx = rotv(jeul , tmpmtx_zx) ##### # Find gamma Angle between rotated Tool Plane X Vector and WCS x about z - tmpmtx_zx should be 0,0,1 axisx$ = vequ(caxisx) keul = -atan2(tmpmtx_xy, tmpmtx_xx) ##### # Rotate tool plane matrix - xx,yy,zz should all be equal to 1 axisx$ = vequ(caxisx) tmpmtx_xx = rotv(keul , tmpmtx_xx) tmpmtx_yx = rotv(keul , tmpmtx_yx) tmpmtx_zx = rotv(keul , tmpmtx_zx) ] if map_mode = 3, [ #Rotate xabs back xabs_s = vequ(xabs) rt_tox = vequ(tox$) axisx$ = vequ(caxisx) xabs_s = rotv(-p_vec_rot, xabs_s) rt_tox = rotv(-p_vec_rot, rt_tox) temp1_nx = vequ(aaxisx) temp1_nx = rotv(-p_vec_rot, temp1_nx) axisx$ = vequ(temp1_nx) xabs_s = rotv(-s_vec_rot, xabs_s) rt_tox = rotv(-s_vec_rot, rt_tox) if add_wrk_sht = 0, map_x = vequ(rt_tox) else, [ map_x = 0, map_y = 0, map_z = 0 #work shift is turned on, rotate around WCS origin ] ] ] pg68 #Enable mapping mode map_mode = one if p_out | s_out, [ if map_mode = 3, #G68.2 P3 Q1,2 - two vector method [ ivec = vequ(m1$) pbld, n$, *smap_mode, "P3 Q1", *map_x, *map_y, *map_z, *ivec, *jvec, *kvec, e$ ivec = vequ(m7$) pbld, n$, *smap_mode, "P3 Q2", *ivec, *jvec, *kvec, e$ pbld, n$, "G53.1", e$ ] if map_mode = 0, # #G68.2 - euler angles [ pbld, n$, *smap_mode, *map_x, *map_y, *map_z, *ieul, *jeul, *keul, e$ ] ] if p_out | s_out, prv_map_mode = one ########################## # Original mapping output # # #Primary mapping output # ivec = vequ(caxisx) # if p_out, # [ # map_r = -p_out # pbld, n$, smap_mode, *map_x, *map_y, *map_z, *ivec, *jvec, *kvec, *map_r, e$ # prv_map_mode = zero # ] # #Secondary mapping output # ivec = vequ(baxisx) # if s_out, # [ # map_r = s_out # pbld, n$, smap_mode, *map_x, *map_y, *map_z, *ivec, *jvec, *kvec, *map_r, e$ # ] # #if p_out | s_out, prv_map_mode = one ##########################
  6. 'top_map' is only the first variable used, to designate that we want to "map toolplane coordinates" to the WCS. The "mechanism" in the Post was first added to support G7 Rotation for 5-Axis Heidenhain controls. 'top_map' is just a "yes/no" (0 or 1) on/off variable. There is a helper variable called 'top_type' which has 5 possible values: 1-4 select different "automatic rotations" (in the locked portion of the Post), for Heidenhain G7 rotation. You don't want 1-4, you want '5' for Top Type. This lets you use two existing Post Blocks, ptop_type_ax and ptop_type_lim, to be able to calculate your rotation values, and set/check limits. How to enable G68 in Mastercam generic 5-axis post? Set variable ‘top_map’ to be 1; Modify the rotary axis settings in post block ‘p_nut_restore’ so that they match with the initial rotary settings right above this post block. Modify the value for variable ‘n_saxisx’, ‘n_saxisy’ and ‘n_saxisz’ if necessary. 5X uses ‘n_saxisx’ variables. Toolplane based toolpaths use ‘saxisx’ variables. Modify the value for variable ‘top_type’. If the value of ‘top_type’ is set to be 5, modify the rotary axis settings in post block ‘ptop_type_ax’ and ‘ptop_type_lim’ accordingly. In ‘ptop_type_ax’, also check the axis label, make sure they are set correctly. Modify the mapping logic in post block ‘pg68_map’ and ‘pg68’. Basically the axis to be rotated around may be modified. In ‘pg68_map’, check ‘axisx$’ and make sure it is set to be the right vector to rotate about. In ‘pg68’, check ‘ivec ‘ and make sure it is set to be the right axis vector to rotate about. Also check variable ‘map_r’ is set to be the correct angle. The sign of this angle may need to be changed depending on rotary axis type. For example, ‘map_r’ should be set to ‘p_out’ and ‘s_out’ for head/head machine. The G code for G68/G69 may be modified if necessary. Add code to turn on spindle for G68 mode in ‘p_goto_strt_tl’ and ‘p_goto_strt_ntl’. This is to fix a bug in our 5x post. Add code to turn on G90 mode in ‘p_goto_strt_tl’. This is to fix a bug in our 5x post. The post block ‘p_goto_strt_tl’ and ‘p_goto_strt_ntl’ should looks similar to code below. p_goto_strt_tl #Make the tool start up at toolchange …… …… if n_tpln_mch > m_one, #Toolplane mapping mode [ #Enter your mapping scheme here... pg68_map #spindle on pbld, n$, *speed, *spindle, pgear, e$ pbld, n$, "G43", *tlngno$, *zabs_s, e$ pbld, n$, *sg00, pwcs, *sgabsinc, "X0.", "Y0.", *zabs_s, e$ pcan1, pbld, n$, *sgcode, *xabs_s, *yabs_s, *p_out, *s_out, strcantext, e$ ] …… …… p_goto_strt_ntl #Make the tool start up at null toolchange …… …… ##### Custom changes allowed below ##### if n_tpln_mch > m_one, #Toolplane mapping mode [ #Enter your mapping scheme here... pg68_map #spindle on pbld, n$, speed, spindle, pgear, e$ pbld, n$, pwcs, sgabsinc, *xabs_s, *yabs_s, *zabs_s, *p_out, *s_out, e$ pg68 pbld, n$, *xout, *yout, *zout, e$ ] …… …… Add code to update work offset at the end of ‘p_goto_strt_tl’ and ‘p_goto_strt_ntl’. !workofs$ The G68 rotation center will always be WCS origin in our current post. This may need to be fixed if customer wants the rotation center to be the tool plane origin. Be aware of misc integer #6, that would affect the output. The fix needs to be related to the settings of ‘mi6$’. pg68_map #Map the first postion to the machine if p_out | s_out, [ #Rotate xabs back xabs_s = vequ(xabs) axisx$ = vequ(caxisx) xabs_s = rotv(-p_vec_rot, xabs_s) axisx$ = vequ(baxisx) axisx$ = rotv(p_vec_rot, axisx$) xabs_s = rotv(-s_vec_rot, xabs_s) if add_wrk_sht = 0, map_x = vequ(tox$) #work shift is not turned on, rotate around tool plane origin else, [ map_x = 0, map_y = 0, map_z = 0 #work shift is turned on, rotate around WCS origin ] ] Add the highlihghted logic below in post block ‘pg69’ as below. pg69 #Cancel mapping mode if top_map & prv_map_mode = one,
  7. Sure. Add: *e$ To force a "blank line" in the NC Code output. Add that code to the end of 'pheader$', 'psof$', 'ptlchg$', and 'ptlchg0$'.
  8. Maybe way out of left field, but how long is this long-run job? At 500 lbs/week (upper end of your estimate), that is 26,000 lbs of magnesium chips a year. Even if you're at the low end of your estimate, that is 13,000 lbs. just of swarf. Have you considered a small onsite furnace to melt the chips and pour your own ingots? I know that may seem crazy on the surface, but it is chips and dust that are the fire hazard. Bulk magnesium does not burn unless heated above its melting point (1198F for pure magnesium). It is also suitable for transport once you've condensed it back into a solid. This may make it easier to find a recycler, or maybe even a metals supplier/foundry who would pay you for ingots to use as feedstock, since it would come already alloyed, and likely only require minor adjustments to the elements/ratios. The ingots could also be stored outside. What about a racing wheel manufacturer like Litespeed or Dymag?
  9. When I was in my early 20's, maybe 23, I took a hike up to Rattlesnake Ridge, near the town of North Bend in Washington State. I brought along a woman I was dating and really liked was madly in love with. She was gorgeous and I wanted to impress her. I had a friend who was former EOD in the Air Force, and he made some spectacular fireworks. I took a very large, uh, let's say, "firecracker" with me on this hike. It is about a mile to the top of this ledge, about a thousand feet above rattlesnake lake, with the cascade mountains all around. Imagine the most beautiful scenery you've ever laid eyes on, and it was about ten times more beautiful than that. So I waited until there were no other hikers around at the top of this ridge, maybe 30-40 minutes until the coast was clear. I (very carefully) lit the fuse and waited until the wick was uncomfortably short, and chucked this thing off the edge, but behind the ledge, where the view is obscured and close to the 'mountain wall' behind the ledge, because this was likely the safest place to perform this stunt. The initial boom was loud, very loud. Let's call it unreasonably loud and very impressive for me, and my date. What I did not expect was the sound after the initial boom. We stood in awe as the wave front of the boom propagated along the walls of the valley. The mountains on either side reflected some of the sound back to us on the ledge, so we could hear the boom as it both travelled away from us, and echoed its passage back to us. The sound swept up the valley and continued for at least 20-30 seconds, the roar gradually fading into silence. We shared a private moment, and passed a bunch of sheriff deputies heading up the trail when we were almost to the parking lot. Was it foolhardy, dangerous, and illegal? Yes. It was also a magical adventure and a memory I'll treasure forever. I think a Mag. fire on a mountain in winter might also be a magical experience, provided you take the right precautions, and accept the risk & accountability which accompanies such an endeavor. Lighting the fire and "running", I wouldn't recommend. Stand in the shadows and slip away into the night instead after admiring the fruits of your labor.
  10. Kirkland, WA. Big Okuma shop. Tier-1 Boing Subcontractor for many years... If you know it, please don't say it. Lol. Let's just say, it can be very easy to underestimate the amount of Mag. chips in a 55-gallon drum. Ours was maybe 20% full. Maybe. And that was good for 20 minutes of burn. Good thing the ignition was determined to be accidental, from an untrained employee putting hot chips in the wrong barrel...
  11. If you do this > you'll want to alert the Fire Department beforehand, and DO NOT do this at night. Ask me how I know. Something, something, 2nd shift, something, something, bored machinists, I think you get the picture. And, I would not do this in California, Massachusetts, and/or any states with strict environmental protection laws, because if the wrong agencies catch wind (maybe literally, lol), that could be bad. Also, if you should happen to be playing around, and lighting Ti or Mag chips on fire, the light is as bright as a welding arc. Save your sight! Don't look unless you've got the proper welding glasses/shield to protect your eyes. And again, doing this at night will absolutely alert the entire neighborhood to a bright white fiery light source, and this will attract all the wrong attention.
  12. One of the great things about the Halocarbon MWF is the performance in improving surface finish. Improvements of 200-500% are possible in Tungsten, Tantalum and Niobium. I've heard serious boosts in tool life for Ti and Inco 718 as well.
  13. If you machine refractory metals, or Mag, Ti, Inconel, etc., I'd recommend looking into these guys. Their Metal Working Fluid (oil) has shown great performance in some very difficult materials for our government customers. I have no commercial affiliation or business interests with these guys, Phillips does not represent them or warranty their products, and these statements are my own. I just like their products and have heard good things from some guys I trust. But if you do call, tell Dave I gave you his contact! https://halocarbon.com/ Dave Antonuccio | Business Development Director Mobile: (828) 384-6541
  14. You can easily start a fire which burns through the bottom of your machine, and continues burning through the concrete, until all the magnesium is consumed in the fire. Fire suppression is a good hedge against risk, but fire prevention is much more important. A Class "D" extinguisher may save the fire from spreading to your entire shop, but it may not save the machine. I worked at a shop which occasionally would build parts from large magnesium casting. These are machined on open-bed Deckel CNC machines (before the merger), and the orders were to "sweep up all the chips/swarf after each and every cut, and transfer the chips to the chip barrel outside, at the far end of the parking lot". Letting the magnesium chips build up and/or moving on to other operations/work before cleaning up the fire hazard, was a terminable offense. When I was young, I thought this was overkill. With the benefit of experience comes wisdom, and now I completely understand and agree with the need for these rules!
  15. I would posit that he hasn't learned a thing since joining...
  16. Exactly. The whole "auto-increment the work offset" function was created and intended for Horizontal work. It allows you to program Front > Right > Back > Left planes, and get B0 G54, B90 G55, B180 G56, and B270 G57 > automagically. But this behavior does a terrible job at "advanced horizontal programming", where you may be cutting at B0, but on the left or right part, held on the B90 or B270 face, where you want a separate work offset, so you can make adjustments to each part/feature independently.
  17. Start over? Not to sound glib, but Mastercam V8 was last supported before the turn of the century, running on Windows 95, or XP, or maybe Windows 2000. To have any shot at a real answer, I'd suggest proving our community with more information about the problem.
  18. Yep, the "Taper" is the primary attachment point to the machine, hence it is the Primary Holder. Everything between the primary holder and the tool is just another adapter/attachment. This would also apply for a "stackup", such as the Capto system, where you can mount additional extensions/adapters between the primary holder and the tool component.
  19. I was able to use the Operations file (not Operation Defaults) to assign Tool Assemblies. This does create more work in your workflow though, as you now must "import" an Operation, instead of just clicking on a new Operation.
  20. I did some experimentation with the Defaults File. Looks like you can save a "Default Tool" to an operation, but not a "Default Tool Assembly". I went through and replaced the Machine Definition and Tool Library inside the Defaults File, which will cause any "new Operation" you create to use the default tool assigned, but it will just grab the "Default Holder", which you can't really change. I don't think this is a "bug" per se, but just an enhancement which needs to be made where if a Tool Assembly is assigned to a Default Operation Type in the Defaults File, that it actually pulls the Tool Assembly, not just the default tool. Just to confirm > it isn't you!
  21. Sweet! Looking at February 3rd, at my place. Start around 9:30-10:00 AM, I'm hosting lunch (we'll break around 12:30 PM), and we'll wrap around 3:00-4:00 PM, based on how everyone is feeling. Of course, everyone is welcome to attend as much, or as little, as they wish. I've also decided to do a limited Teams Meeting for those who are outside the New England area. First Come, First Served, for those who wish to join. I'm somewhat limiting attendance to no more than 10-15 people. My main intent in hosting was to meet more actual flesh-and-blood people, and not just host an online meeting, but I also don't want to let distance be a barrier to learning.
  22. Date changed to Saturday, February 3rd... Not sure if that changes anything? Either way, you're welcome to join or just watch the videos when you can.

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