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:

Peter - Avivi CNC Solutions

Verified Members
  • Posts

    292
  • Joined

  • Last visited

Everything posted by Peter - Avivi CNC Solutions

  1. Thank you Ron! These kind words are pushing me forward... And you're welcome! Just a note, I went through on this, and I see, few things are still missing from this library, but when I decided to implement this on this way, then I focused on the new Dynamic path mostly. But I think what I shared here, it can be a good starting point and easy to extend or improve or add other stuffs toolpaths.
  2. Hmm, after many (many!) things, I feel it's time to dig and play a bit with RefPoints! THX for mention it!
  3. Yeah, hopefully we don't have to wait so much. But bugs are happens, we are humans. Right? [OffTopic] 1, I never OFF topics 2, I never feed trolls 3, You looks smart, which is good, we need this kind of guys like you 4, Houston, we have a problem... Out there: http://www.emasterca...-g13-parameter/ 5, Since you dealig with MP, I just curious about your thoughts and comments there. 6, My dude over there begs for a good solution, except CustomDrill Cycles. 7, I just wanna redirect you to there and I hope that 3% is not a big deal [OnTopic]
  4. Why the hekkkkkk you post a long NC sample to show 3 sample lines? Nevermind... instead of this: if stagetool = 1, first_tool$, "M6", e$ Use this: if stagetool = 1 & (last_tool$ <> first_tool$), first_tool$, "M6", e$ To M0/M1 stuff, think on a different way, to deal with output of ManulaEntry is not a black/white thing. Look at CannedText
  5. I just run across here, but I strongly think, it's not a bug. This is how the smooth transitions behaves... Personally I think it works as it should and as I prefer (in case of smooth transition)
  6. Loose pull stud in the toolholder? @ the prepared toolpocket.
  7. Here what I made before, just for fun. Yes, this is the proper solution (X7). Maybe someone will find it here once and it will be a good point to start... Or... DO NOT copy/paste directly into your post, I just wanna show an example, which work with every toolpath in every case. The answer may hidden somewhere here... Definitions: OpLastOp_id : 0 # OP tracking ID OpDrillPoints : 0 # Number of Drill Points OpStock_XY : 0 # OP stock on XY or drive surfaces OpStock_Z : 0 # OP stock on Z OpStock_F : 0 # Facing OP stock on face OpStock_C : 0 # Surface OP stock on check surface OpStock_Wall : 0 # OP stock on 3D HSM Wall OpStock_Floor : 0 # OP stock on 3D HSM Floor OpStock_HSM_C : 0 # OP stock on 3D HSM Check OpCompSide : 0 # OP Cutting Side Op2D_HSM_Style : 0 # 2D HSM OP Type Op3D_HSM_Style : 0 # 3D HSM OP Type OpContType : 0 # 2D Contour OP Type OpPockType : 0 # 2D Pocket OP Type OpPockCutDir : no$ # 2D Pocket OP Cutting direction OpFaceType : 0 # 2D Facing OP Type OpPockStepO : 0 # Pocket OP StepOver in mm OpPockStepO_P : 0 # Pocket OP StepOver in percentage OpDepthCuts : no$ # 2D Operations - Depth cuts ON/OFF OpDepthCuts_D : 0 # 2D Operations - Depth cuts rough value OpMultiPass : no$ # 2D Operations - Multipass cuts ON/OFF OpMultiPass_SO : 0 # 2D Operations - Multipass cuts step OpMultiPass_N : 0 # 2D Operations - Multipass number of passes OpHSMCutDir : no$ # HSM OP Cutting direction OpHSMStepO : 0 # 2D HSM Stepover OpHSMStepO_2 : 0 # 2D HSM Stepover - 2 OpThrdType : 0 # Thread mill type, RH/LH OpThrdSide : 0 # Thread mill side, ID/OD Op3DStep_O : 0 # Multisurface OP Stepover Op3DStep_D : 0 # Multisurface OP Stepdown Op3DFlowTyp : no$ # Multisurface Rough/Finish OP Flowline Type (Across) Op3DFlow_AD : 0 # Multisurface Rough/Finish OP Flowline Across distance Op3DFlow_SH : 0 # Multisurface Rough/Finish OP Flowline Scallop height Op3DContFlat : 0 # Multisurface Rough/Finish OP Contour use Flat Op3DContFlat_SO : 0 # Multisurface Rough/Finish OP Contour Stepover on Flats Op3DRest_SO : 0 # Multisurface Rough Rest OP Stepover Op3DPencil : 0 # Multisurface Finsih Pencil OP StepType Op3DPen_P : 0 # Multisurface Finsih Pencil OP Passes total number Op3DPen_SO : 0 # Multisurface Finsih Pencil OP Stepover Op3DBlend_SO : 0 # Multisurface Finsih B OP Blend Stepover Op3DHSMStepO : 0 # 3D HSM Stepover Op3DHSMStepO_2 : 0 # 3D HSM Stepover - 2 Op3DHSMStep_D : 0 # 3D HSM Stepdown OpDrlTipComp : 0 # Drill OP Tip compensation length OpDrlTipComp_ON : no$ # Drill OP Tip compensation enabled OpBrkTrghLen : 0 # Operation Breaktrough length OpBrkTrghLen_ON : no$ # Operation Breaktrough enabled fmt "Z" 25 OpDepth # Operation full depth, Z level fmt 4 OpDrillPoints # Number of Drill Points fmt 25 OpStock_XY "mm" # OP stock on XY or drive surfaces fmt 25 OpStock_Z "mm" # OP stock on Z fmt 25 OpStock_F "mm" # Facing OP stock on face fmt 25 OpStock_C "mm" # Surface OP stock on check surface fmt 25 OpStock_Wall "mm" # OP stock on 3D HSM Wall fmt 25 OpStock_Floor "mm" # OP stock on 3D HSM Floor fmt 25 OpStock_HSM_C "mm" # OP stock on 3D HSM Check fmt 25 OpPockStepO "mm" # Pocket OP StepOver in mm fmt 25 OpPockStepO_P "%" # Pocket OP StepOver in percentage fmt 25 OpDepthCuts_D "mm" # 2D Operations - Depth cuts rough value fmt 25 OpMultiPass_SO "mm" # 2D Operations - Multipass cuts step fmt 4 OpMultiPass_N # 2D Operations - Multipass number of passes fmt 25 OpHSMStepO "mm" # 2D HSM Stepover fmt 25 OpHSMStepO_2 "mm" # 2D HSM Stepover - 2 fmt 25 Op3DStep_O "mm" # Multisurface OP Stepover fmt 25 Op3DStep_D "mm" # Multisurface OP Stepdown fmt 25 Op3DRadStep "mm" # Multisurface Rough/Finish OP Radial Step fmt 25 Op3DFlow_AD "mm" # Multisurface Rough/Finish OP Flowline Across distance fmt 25 Op3DFlow_SH "mm" # Multisurface Rough/Finish OP Flowline Scallop height fmt 25 Op3DContFlat_SO "mm" # Multisurface Rough/Finish OP Contour Stepover on Flats fmt 25 Op3DRest_SO "mm" # Multisurface Rough Rest OP Stepover fmt 4 Op3DPen_P # Multisurface Finsih Pencil OP Passes total number fmt 25 Op3DPen_SO "mm" # Multisurface Finsih Pencil OP Stepover fmt 25 Op3DBlend_SO "mm" # Multisurface Finsih B OP Blend Stepover fmt 25 Op3DHSMStepO "mm" # 3D HSM Stepover fmt 25 Op3DHSMStepO_2 "mm" # 3D HSM Stepover - 2 fmt 25 Op3DHSMStep_D "mm" # 3D HSM Stepdown fmt "Z" 25 OpThrdDpth # Thread Mill OP Depth fmt "D" 25 OpThrdDia "mm" # Thread Mill OP Diameter fmt 25 OpThrdPitch "mm" # Thread Mill OP Pitch # ------------------------------------------------------------------------- # ------------------------------------------------------------------------- # Cutter Compensation Side sComp_L : "LEFT" sComp_R : "RIGHT" sOpCompSide : "" fstrsel sComp_L OpCompSide sOpCompSide 2 -1 # ------------------------------------------------------------------------- #Select operation note - 2D HSM sHsm2D00 : "2D HSM CORE" sHsm2D01 : "2D HSM PEEL" sHsm2D02 : "2D HSM BLEND" sHsm2D03 : "2D HSM AREA" sHsm2D04 : "2D HSM REST" sHsm2D05 : "2D DYNAMIC AREA" sHsm2D06 : "2D DYNAMIC REST" sHsm2D07 : "2D DYNAMIC CORE" sHsm2D08 : "2D DYNAMIC CONTOUR" sHsm2D09 : "----" sHsm2D10 : "----" sHsm2D11 : "----" sHsm2D12 : "----" sHsm2D13 : "----" sHsm2D14 : "----" sOpType_2D_HSM : "" fstrsel sHsm2D00 Op2D_HSM_Style sOpType_2D_HSM 15 -1 # ------------------------------------------------------------------------- #Select operation note - 3D HSM sHsm3D00 : "3D HSM CORE ROUGH" sHsm3D01 : "3D HSM AREA CLEARANCE" sHsm3D02 : "3D HSM WATERLINE" sHsm3D03 : "3D HSM SCALLOP" sHsm3D04 : "3D HSM HORIZONTAL AREA" sHsm3D05 : "3D HSM RASTER" sHsm3D06 : "3D HSM PENCIL" sHsm3D07 : "3D HSM HYBRID" sHsm3D08 : "-----" sHsm3D09 : "3D HSM SPIRAL" sHsm3D10 : "3D HSM RADIAL" sHsm3D11 : "3D HSM REST ROUGH" sHsm3D12 : "3D OPTIAREA" sHsm3D13 : "3D OPTICORE" sHsm3D14 : "3D OPTIREST" sHsm3D15 : "3D HSM PROJECT" sOpType_3D_HSM : "" fstrsel sHsm3D00 Op3D_HSM_Style sOpType_3D_HSM 16 -1 # ------------------------------------------------------------------------- #Select operation note - Drill sdr00 : "COUNTER BORE" sdr01 : "PECK DRILL" sdr02 : "CHIP BREAK" sdr03 : "TAP" sdr04 : "BORE #1" sdr05 : "BORE #2" sdr06 : "FINE BORE" sdr07 : "MISC #2" sdr08 : "CUSTOM CYCLE 9" sdr09 : "CUSTOM CYCLE 10" sdr10 : "CUSTOM CYCLE 11" sdr11 : "CUSTOM CYCLE 12" sdr12 : "CUSTOM CYCLE 13" sdr13 : "CUSTOM CYCLE 14" sdr14 : "CUSTOM CYCLE 15" sdr15 : "CUSTOM CYCLE 16" sdr16 : "CUSTOM CYCLE 17" sdr17 : "CUSTOM CYCLE 18" sdr18 : "CUSTOM CYCLE 19" sdr19 : "CUSTOM CYCLE 20" sDrlOp : "" fstrsel sdr00 nextdc$ sDrlOp 20 -1 # ------------------------------------------------------------------------- #Tool_Op String Select stop00 : "None" stop01 : "Contour" stop02 : "Drill" stop03 : "Pocket" stop04 : "Transform" stop05 : "Surface Rough Parallel" stop06 : "Surface Rough Radial" stop07 : "Surface Rough Project" stop08 : "Surface Rough Flowline" stop09 : "Surface Rough Contour" stop10 : "Surface Rough Pocket" stop11 : "Surface Finish Parallel" stop12 : "Surface Finish Radial" stop13 : "Surface Finish Project" stop14 : "Surface Finish Flowline" stop15 : "Surface Finish Contour" stop16 : "For C-Hook-created operations" stop17 : "Manual entry" stop18 : "None" stop19 : "Point" stop20 : "Trimmed" stop21 : "Ruled" stop22 : "Revolved" stop23 : "Letters" stop24 : "Swept 2D" stop25 : "Swept 3D" stop26 : "Coons" stop27 : "Lofted" stop28 : "5-Axis Drilling" stop29 : "NONE" stop30 : "NONE" stop31 : "NONE" stop32 : "NONE" stop33 : "NONE" stop34 : "NONE" stop35 : "NONE" stop36 : "NONE" stop37 : "NONE" stop38 : "NONE" stop39 : "Surface Finish Pencil" stop40 : "Surface Finish Leftover" stop41 : "Surface Finish Parallel Steep" stop42 : "Surface Finish Shallow" stop43 : "Surface Finish Scallop" stop44 : "Surface Rough Plunge" stop45 : "NONE" stop46 : "NONE" stop47 : "NONE" stop48 : "NONE" stop49 : "NONE" sSurf_Op : "" fstrsel stop00 tool_op$ sSurf_Op 50 -1 # ------------------------------------------------------------------------- # Contour Type sCont00 : "2D" sCont01 : "3D" sCont02 : "2D Chamfer" sCont03 : "3D Chamfer" sCont04 : "Ramp" sCont05 : "Remachining" sCont06 : "Oscillate" sContOpType : "" fstrsel sCont00 OpContType sContOpType 7 -1 # ------------------------------------------------------------------------- # Pocket Type sPock00 : "Standard" sPock01 : "Facing" sPock02 : "Island Facing" sPock03 : "Remachining" sPock04 : "Open" sPockOpType : "" fstrsel sPock00 OpPockType sPockOpType 5 -1 # ------------------------------------------------------------------------- # Facing Type sFace00 : "ZigZag" sFace01 : "" sFace02 : "" sFace03 : "One Pass" sFace04 : "One Way" sFace05 : "Dynamic" sFaceOpType : "" fstrsel sFace00 OpFaceType sFaceOpType 6 -1 # ------------------------------------------------------------------------- Postblocks: pOperationInfo sav_spc = spaces$ spaces$ = 0 #pCheckOpValues "( *** Operation Basic Info *** )", e$ #"()", e$ #*opcode$, e$ #*tool_op$, e$ #"()", e$ # Contour Operations if (opcode$ = 1 | opcode$ = 2) & tool_op$ = 1, pContourOp # 2D HSM Operations if opcode$ = 2 & tool_op$ = 134, pHSMOp_2D # Drill Operations if opcode$ = 3, pDrillOp # Pocket Operations if opcode$ = 4, pPocketOp # Circmill Operations if opcode$ = 2 & (tool_op$ = 18 | (tool_op$ > 99 & tool_op$ < 107)), pCircMillOp # Facing Operations if opcode$ = 19, pFacingOp # Multisurface Operations if (opcode$ = 13 | opcode$ = 14) & tool_op$ < 132, pMultiSurfOp # HSM Multisurface Operations if opcode$ = 13 & tool_op$ = 132, pHSMOp_3D "( **************************** )", e$ spaces$ = sav_spc pContourOp # Contour Operations "( Operation Type: Contour - ", *sContOpType, " )", e$ "( DOC = ", *OpDepth, " )", e$ if OpDepthCuts & OpDepthCuts_D <> 0, "( Maximum Depth Cuts: ", *OpDepthCuts_D, " )", e$ if OpMultiPass, "( Multipass Cuts: ", *OpMultiPass_N, " Cuts by ", *OpMultiPass_SO, " )", e$ if OpStock_XY <> 0, "( Stock to leave on XY: ", *OpStock_XY, " )", e$ if OpStock_Z <> 0, "( Stock to leave on Z: ", *OpStock_Z, " )", e$ "( Cutter Compensation: ", *scomp_type, " )", e$ "( Compensation Side: ", *sOpCompSide, " )", e$ pHSMOp_2D # 2D HSM Operations "( Operation Type: ", *sOpType_2D_HSM, " )", e$ "( DOC = ", *OpDepth, " )", e$ if Op2D_HSM_Style = 0 | Op2D_HSM_Style = 3, "( Maximum Stepover: ", *OpHSMStepO_2, " )", e$ else, "( Maximum Stepover: ", *OpHSMStepO, " )", e$ if OpDepthCuts & OpDepthCuts_D <> 0, "( Maximum Depth Cuts: ", *OpDepthCuts_D, " )", e$ if OpStock_XY <> 0, "( Stock to leave on XY: ", *OpStock_XY, " )", e$ if OpStock_Z <> 0, "( Stock to leave on Z: ", *OpStock_Z, " )", e$ #"( Cutter Compensation: ", *scomp_type, " )", e$ #"( Compensation Side: ", *sOpCompSide, " )", e$ #if OpHSMCutDir = no$, "( Cutting Direction: Climb )", e$ #if OpHSMCutDir = yes$, "( Cutting Direction: Conventional )", e$ pDrillOp # Drill Operations "( Operation Type: ", *sDrlOp, " )", e$ "( Drilling Depth: ", *OpDepth, " )", e$ "( Number of Holes: ", *OpDrillPoints, " )", e$ if drl_sel_tos$ < 0, [ [if mprint("Drilling R plane below Top of Stock!!!", 2) = 2, exitpost$] ] pPocketOp # Pocket Operations "( Operation Type: Pocket - ", *sPockOpType, " )", e$ "( DOC = ", *OpDepth, " )", e$ "( Rough Stepover: ", *OpPockStepO, ", ", *OpPockStepO_P, " )", e$ if OpDepthCuts & OpDepthCuts_D <> 0, "( Maximum Depth Cuts: ", *OpDepthCuts_D, " )", e$ if OpStock_XY <> 0, "( Stock to leave on XY: ", *OpStock_XY, " )", e$ if OpStock_Z <> 0, "( Stock to leave on Z: ", *OpStock_Z, " )", e$ if OpPockCutDir = yes$, "( Cutting Direction: Climb )", e$ if OpPockCutDir = no$, "( Cutting Direction: Conventional )", e$ pCircMillOp # Circmill Operations if tool_op$ = 18, "( Operation Type: Circle Mill )", e$ if tool_op$ = 100, "( Operation Type: Threadmill )", e$ if tool_op$ = 105, "( Operation Type: Slot Milling )", e$ if tool_op$ = 106, "( Operation Type: Helix Bore )", e$ if tool_op$ <> 100, "( DOC = ", *OpDepth, " )", e$ else, [ "( Thread Type: ", [if OpThrdType = 0, "Right", else, "Left"], [if OpThrdSide = 0, " - ID", else, " - OD"], " Thread )", e$ "( Thread Depth = ", *OpThrdDpth, " )", e$ "( Thread Diameter = ", *OpThrdDia, " )", e$ "( Thread Pitch = ", *OpThrdPitch, " )", e$ if OpMultiPass, "( Multipass Cuts: ", *OpMultiPass_N, " Cuts by ", *OpMultiPass_SO, " )", e$ ] if OpDepthCuts & OpDepthCuts_D <> 0, "( Maximum Depth Cuts: ", *OpDepthCuts_D, " )", e$ if OpStock_XY <> 0, "( Stock to leave on XY: ", *OpStock_XY, " )", e$ if OpStock_Z <> 0 & opcode$ <> 19, "( Stock to leave on Z: ", *OpStock_Z, " )", e$ "( Cutter Compensation: ", *scomp_type, " )", e$ if tool_op$ <> 100, "( Compensation Side: ", *sOpCompSide, " )", e$ pFacingOp # Facing Operations "( Operation Type: Facing - ", *sFaceOpType, " )", e$ "( DOC = ", *OpDepth, " )", e$ if OpDepthCuts & OpDepthCuts_D <> 0, "( Maximum Depth Cuts: ", *OpDepthCuts_D, " )", e$ if OpStock_F <> 0, "( Stock to leave on Face: ", *OpStock_F, " )", e$ pMultiSurfOp # Multisurface Operations if tool_op$ < 50, "( Operation Type: ", *sSurf_Op, " )", e$ if Op3DStep_O <> 0, [ "( Maximum Stepover: ", *Op3DStep_O, " )", e$ Op3DStep_O = 0 ] # Radial Rough/Finish if tool_op$ = 6 | tool_op$ = 12, [ Op3DRadStep = Op3DRadStep / deg2rad$ "( Radial Angle Step: ", *Op3DRadStep, " )", e$ ] # Flowline Rough/Finish if tool_op$ = 8 | tool_op$ = 14, [ if Op3DFlowTyp, "( Stepover Distance: ", *Op3DFlow_AD, " )", e$ else, "( Scallop Height: ", *Op3DFlow_SH, " )", e$ ] # Contour Rough/Finish if tool_op$ = 9 | tool_op$ = 15, [ if Op3DContFlat > 1, "( Stepover on Flat areas: ", *Op3DContFlat_SO, " )", e$ "( Maximum Stepdown: ", *Op3DStep_D, " )", e$ ] # Pocket Rough if tool_op$ = 10, "( Stepover Distance: ", *OpPockStepO, ", ", *OpPockStepO_P, " )", e$ # Pencil Finish if tool_op$ = 39, [ if Op3DPencil = 0, "( Only one pencil pass! )", e$ if Op3DPencil = 1, "( Number of total passes: ", *Op3DPen_P, " )", e$ if Op3DPencil = 2, "( Stepover Distance: ", *Op3DPen_SO, " )", e$ ] # Restmill Rough if tool_op$ = 107, [ "( Operation Type: Surface Rough Restmill )", e$ "( Stepover Distance: ", *Op3DRest_SO, " )", e$ ] # Blend Finish if tool_op$ = 109, [ "( Operation Type: Surface Finish Blend )", e$ "( Stepover Distance: ", *Op3DBlend_SO, " )", e$ ] if opcode$ = 14 & tool_op$ <> 9, "( Maximum Stepdown: ", *Op3DStep_D, " )", e$ if OpStock_XY <> 0, "( Stock to leave on Drive: ", *OpStock_XY, " )", e$ if OpStock_C <> 0, "( Stock to leave on Check: ", *OpStock_C, " )", e$ pHSMOp_3D # HSM Multisurface Operations "( Operation Type: ", *sOpType_3D_HSM, " )", e$ if Op3D_HSM_Style < 2 | Op3D_HSM_Style = 4, "( Maximum Stepover: ", *Op3DHSMStepO, " )", e$ if Op3D_HSM_Style = 3 | Op3D_HSM_Style = 5 | (Op3D_HSM_Style > 8 & Op3D_HSM_Style < 15), "( Maximum Stepover: ", *Op3DHSMStepO_2, " )", e$ # HSM Pencil if Op3D_HSM_Style = 6, [ "( Maximum 3D Stepover: ", *Op3DHSMStepO_2, " )", e$ ] # HSM Hybrid if Op3D_HSM_Style = 7, [ "( Maximum Z Stepdown: ", *Op3DHSMStep_D, " )", e$ "( Maximum 3D Stepover: ", *Op3DHSMStepO_2, " )", e$ ] if OpStock_Wall <> 0, "( Stock to leave on Wall: ", *OpStock_Wall, " )", e$ if OpStock_Floor <> 0, "( Stock to leave on Floor: ", *OpStock_Floor, " )", e$ if OpStock_HSM_C <> 0, "( Stock to leave on Check: ", *OpStock_HSM_C, " )", e$ And...: pparameter$ #Read operation parameters if prmcode$ = 10029, OpDepth = rpar(sparameter$, 1) # Operation full depth if prmcode$ = 15083, OpDrillPoints = rpar(sparameter$, 1) # Number of Drill Points if prmcode$ = 10010, OpStock_XY = rpar(sparameter$, 1) # OP stock on XY or drive surfaces if prmcode$ = 10068, OpStock_Z = rpar(sparameter$, 1) # OP stock on Z if prmcode$ = 10227, OpStock_C = rpar(sparameter$, 1) # Surface OP stock on check surface if prmcode$ = 12068, OpStock_F = rpar(sparameter$, 1) # Facing OP stock on face if prmcode$ = 12665, OpStock_Wall = rpar(sparameter$, 1) # OP stock on 3D HSM Wall if prmcode$ = 12666, OpStock_Floor = rpar(sparameter$, 1) # OP stock on 3D HSM Floor if prmcode$ = 12594, OpStock_HSM_C = rpar(sparameter$, 1) # OP stock on 3D HSM Check if prmcode$ = 15346, comp_type = rpar(sparameter$, 1) #Cutter compensation type - 0=computer, 1=control, 2=wear, 3=reverse wear, 4=off if prmcode$ = 15347, OpCompSide = rpar(sparameter$, 1) # OP Cutting Side if prmcode$ = 12713, Op2D_HSM_Style = rpar(sparameter$, 1) # 2D HSM OP Type if prmcode$ = 12628, Op3D_HSM_Style = rpar(sparameter$, 1) # 3D HSM OP Type if prmcode$ = 12014, OpContType = rpar(sparameter$, 1) # 2D Contour OP Type if prmcode$ = 10450, OpPockType = rpar(sparameter$, 1) # 2D Pocket OP Type if prmcode$ = 15564, OpPockCutDir = rpar(sparameter$, 1) # 2D Pocket OP Cutting direction if prmcode$ = 12051, OpFaceType = rpar(sparameter$, 1) # 2D Facing OP Type if prmcode$ = 10302, OpPockStepO = rpar(sparameter$, 1) # Pocket OP StepOver in mm if prmcode$ = 10414, OpPockStepO_P = rpar(sparameter$, 1) # Pocket OP StepOver in percentage if prmcode$ = 15211, OpDepthCuts = rpar(sparameter$, 1) # 2D Operations - Depth cuts ON/OFF if prmcode$ = 10065, OpDepthCuts_D = rpar(sparameter$, 1) # 2D Operations - Depth cuts rough value if prmcode$ = 15214, OpMultiPass = rpar(sparameter$, 1) # 2D Operations - Multipass cuts ON/OFF if prmcode$ = 15561, OpMultiPass_SO = rpar(sparameter$, 1) # 2D Operations - Multipass cuts step if prmcode$ = 15560, OpMultiPass_N = rpar(sparameter$, 1) # 2D Operations - Multipass number of passes if prmcode$ = 12956, OpHSMCutDir = rpar(sparameter$, 1) # HSM OP Cutting direction if prmcode$ = 12719, OpHSMStepO = rpar(sparameter$, 1) # 2D HSM Stepover if prmcode$ = 12974, OpHSMStepO_2 = rpar(sparameter$, 1) # 2D HSM Stepover - 2 if prmcode$ = 12192, OpThrdDpth = rpar(sparameter$, 1) # Thread Mill OP Depth if prmcode$ = 12203, OpThrdDia = rpar(sparameter$, 1) # Thread Mill OP Diameter if prmcode$ = 12194, OpThrdPitch = rpar(sparameter$, 1) # Thread Mill OP Pitch if prmcode$ = 12204, OpThrdType = rpar(sparameter$, 1) # Thread mill type, RH/LH if prmcode$ = 12202, OpThrdSide = rpar(sparameter$, 1) # Thread mill side, ID/OD if prmcode$ = 10205, Op3DStep_O = rpar(sparameter$, 1) # Multisurface OP Stepover if prmcode$ = 12411, Op3DStep_D = rpar(sparameter$, 1) # Multisurface OP Stepdown if prmcode$ = 12103, Op3DRadStep = rpar(sparameter$, 1) # Multisurface Rough/Finish OP Radial Step if prmcode$ = 12117, Op3DFlowTyp = rpar(sparameter$, 1) # Multisurface Rough/Finish OP Flowline Type (Across) if prmcode$ = 12118, Op3DFlow_AD = rpar(sparameter$, 1) # Multisurface Rough/Finish OP Flowline Across distance if prmcode$ = 12119, Op3DFlow_SH = rpar(sparameter$, 1) # Multisurface Rough/Finish OP Flowline Scallop height if prmcode$ = 15505, Op3DContFlat = rpar(sparameter$, 1) # Multisurface Rough/Finish OP Contour use Flat if prmcode$ = 15506, Op3DContFlat_SO = rpar(sparameter$, 1) # Multisurface Rough/Finish OP Contour Stepover on Flats if prmcode$ = 12124, Op3DRest_SO = rpar(sparameter$, 1) # Multisurface Rough Rest OP Stepover if prmcode$ = 12449, Op3DPencil = rpar(sparameter$, 1) # Multisurface Finsih Pencil OP StepType if prmcode$ = 12424, Op3DPen_P = rpar(sparameter$, 1) # Multisurface Finsih Pencil OP Passes total number if prmcode$ = 12054, Op3DPen_SO = rpar(sparameter$, 1) # Multisurface Finsih Pencil OP Stepover if prmcode$ = 12302, Op3DBlend_SO = rpar(sparameter$, 1) # Multisurface Finsih Blend OP Stepover if prmcode$ = 12597, Op3DHSMStepO = rpar(sparameter$, 1) # 3D HSM Stepover if prmcode$ = 12579, Op3DHSMStepO_2 = rpar(sparameter$, 1) # 3D HSM Stepover if prmcode$ = 12578, Op3DHSMStep_D = rpar(sparameter$, 1) # 3D HSM Stepdown Finally need to drop the "pOperationInfo" postblock call into the "ptlchg$" and "ptlchg0$" postblocks and let it run. (roughly...)
  8. Yepp, mpmaster is a good post and a good starting point. But the little details... Well, not developed correctly or 100%. Like the "pccdia" on a circle movement... I used to work on many machines, but none of them can accomplish G41/G42 with G2/G3. Just a sidenote. Anyhow Steven, "radial", what radial? Which toolpath strategy we talking'bout here?
  9. U need to format the ntools$ variable as an integer. Go to format section of post and add: fmt 4 ntools$
  10. Not a problem, I forget more and usually you came into the picture... Thanxx for the exact explanation!
  11. It was only an idea (I just rememeber this variable) but you made the proper solution and yes, you're right, it should be checked at the and of process.
  12. ...or you can watch the nchar$ variable. It counts the characters written to NC file. In my quick test 193018 characters is 184257 bytes, so not the best solution, but more than nothing...
  13. ...or if your bldnxtool$ variable set to 1 (@ variable declaration area), then you can use the ntools$ variable. for example in your psof$ postblock: psof$ if ntools$ > 30, "error handling here", e$ Far simple.
  14. You can change it in Control Definiton, I suggest to do a search here... A what?!
  15. Correct Roger! Your's so simple but works well also. Rocheey's solution is also perfect. Guys, I've learned a lot with these again and I had a good chance to play with all the options. I also played with Modal/Modeless dialogs and with TopMost property. The other isde of the coin is that I just came back to play with NET-Hooks after a long time, so probably this is why I missed the .Hide() - .Show() methods... But thank you both for helps, clear explanations and effort!!!
  16. No, but not so simple. BUT I see a way to solve it. For example if you program a Circle Mill OP in MCAM, you can post it as G65 Pxxxx instead of G2/G3. So yes, it can be solved by posting out a macro call (or G12/G13 on HAAS). I made some similar in the past and some macros combined into NC code by post, so it's possible for sure. BUT this takes time and...
  17. It is ("Dialog.ShowDialog()") and make sense for me as a possible way. I am Rocheey! I open for everything, thank you in advance and your effort.
  18. HI Guys! I just realized now, that after many C-Hook and NET-Hook, I always made a straight forward runoffs without any interactivity between Mastercam and my app. They always run in one direction: Set all stuff -> User input -> Draw and/or Draw -> Import OPs Now I working on a project, which asks for geometry from user and after selection it needs to be to return to my Windows Form. What I would to do (and I did halfway) after pushing a button on my Form it should be minimize/hide, then Mastercam ask for a geo then return to my Form (maximize to original size or unhide). Code for Selecting a geo and for button is OK, no problem with that. But when I push the button, Mastercam ask for a geo but I can not to select any because my Form remains and not allow me to select anything in MCAM. I found many possible solution for this issue, but which is the best and safe practice? Thank you for any input! Visual Basic, VS Express 2013, MCAM X7, NET_Hook3_0 Private Sub LineSelect_Click(sender As Object, e As EventArgs) Handles LineSelect.Click Dim GeoMask As GeometryMask = New GeometryMask(False) GeoMask.Lines = True Dim SelectedGeo As Mastercam.Database.Geometry = SelectionManager.AskForGeometry("Select one line", GeoMask) End Sub
  19. Yepp, buffers are very powerful tools in MP, I use it whereever I can. Mostly I need infos (and records) from each operations, so here is my method to write them and my 0.02$ pwrtt$ #Pre-read NCI file if op_id$ <> prv_op_id$, [ pWriteBuffer_1 pWriteBuffer_2 pWriteBuffer_3 pWriteBuffer_4 pWriteBuffer_5 ] !op_id$
  20. Increment subs? If the memory is an issue.

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