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:

Smrk

Verified Members
  • Posts

    113
  • Joined

  • Last visited

Posts posted by Smrk

  1. Best way: Create 2D contour toolpath with compensation off - center of tool, lead in/out off. Set tolerance and arc filter. Then save toolpath geometry into any level and delete vertical lines (if there any). 

     

    • Like 3
  2. i just added new postblock to warn programmer when he uses different tool compensation on same tool. If i have already this information stored in buffer, why not to use them :-) It only compare wear vs. control/rev.wear. Not control vs.rev.wear

     

    ptlkontrola  #controls if wear / (control | reverse wear) is used with same tool

        rc4 = 1    
        rc5 = 1
        size4 = rbuf(4, 0)
        size5 = rbuf(5, 0)
        size6 = rbuf(6, 0)
        while rc4 <= size4,
        [
        rc6 = 1
         tlnumber = rbuf(4, rc4)
        tlcutcomp = rbuf(5, rc5)
            while rc6 <= size6,
            [
                 tlvyber = rbuf(6,rc6)
            if tlcutcomp = 1 & tlnumber = tlvyber,
            [
            result = mprint("WARNING, SAME TOOL USES DIFFERENT COMPENSATION!!!")
            rc4 = c9k
            rc5 = c9k
            ]
            if tlcutcomp = 3 & tlnumber = tlvyber,
            [
            result = mprint("WARNING, SAME TOOL USES DIFFERENT COMPENSATION!!!")
            rc4 = c9k
            rc5 = c9k
            ]
            ]
        ]

  3. #variable definition:

    tlpomnumber  : 0

     

    #buffer definition:

    tlnumber  : 0
    size4     : 0
    rc4       : 1
    wc4       : 1
    fbuf 4 0 1 0

    tlcutcomp : 0
    size5     : 0
    rc5       : 1
    wc5       : 1
    fbuf 5 0 1 0

    fmt "" 4 tlvyber     #buffer of non duplicated tool numbers
    tlvyber   : 0
    size6     : 0
    rc6       : 1
    wc6       : 1
    fbuf 6 0 1 0

     

    #new postblock

    ptlvyber  #pick up tools with  "WEAR" comp, print into NC

        zero = wbuf(6,wc6)
        size4 = rbuf(4, 0)
        size5 = rbuf(5, 0)
        size6 = rbuf(6, 0)
        while rc4 <= size4,
        [
         tlnumber = rbuf(4, rc4)
        tlcutcomp = rbuf(5, rc5)
        tlpomnumber = tlnumber
        rc6 = 1
        if tlcutcomp = 2,
        [
             while rc6 <= size6,
            [
            tlvyber = rbuf(6,rc6)
            if tlpomnumber = tlvyber,
            tlpomnumber = 0
            ]
        if tlpomnumber <> 0,
        tlnumber = wbuf(6,wc6)
        size6 = rbuf(6, 0)
        ]
        ]
        
        size6 =    rbuf(6, 0)
        rc6 = 1
        while rc6 <= size6,
        [
        tlvyber = rbuf(6, rc6)
        if tlvyber <> 0,
        ";", "TOOL #." tlvyber "COMP. R=0, DR=?", e$       #print this into NC output.
        ]

     

     

     

    pwrttparam$

     

        if prmcode$ = 15346,                #stores tzpe of comp into buffer 5
        [
            tlcutcomp = rparsngl(sparameter$,1)
            tlcutcomp = wbuf(5,wc5)
        ]
        if prmcode$ = 10002,                #stores tool number into buffer 4
        [
            tlnumber = rparsngl(sparameter$,1)
            tlnumber = wbuf(4,wc4)
        ]

     

     

     

    psof$

     

    ptlvyber   #add postblock ptlvyber call into psof$

     

     

    This writes list of tools with wear compensation under tooltable...

     

    result:

     

     ; T
     ; DATE - 31-03-16
     ; TIME - 09:39
     ; MCX FILE -D:\PRACE\T.MCX-9
     ; NC FILE - D:\NC\T.H
     ; Programmed by: Kominik
    110 BLK FORM  0.1 Z X+0.000 Y+0.000 Z+0.000
    120 BLK FORM  0.2   X+0.000 Y+0.000 Z+0.000
    ; T. 20 R:5.00 Cor.rad.:0.50 Overal:80 Code: V.20430049-120
    ; T. 24 R:1.00 Cor.rad.:1.00 Overal:15 L3=12 Code: 565.200.100.120
    ; T. 18 R:4.00 Cor.rad.:4.00 Overal:80 Code: V.20430046-120
    ;( X-MIN= -72.462 )
    ;( X-MAX= +77.872 )
    ;( Y-MIN= -96.157 )
    ;( Y-MAX= +48.642 )
    ;( Z-MIN= +0.000 )
    ;( Z-MAX= +50.000 )
    ; TOOL #20  COMP R=0, DR=?
    ; TOOL #18  COMP R=0, DR=?

    130 TOOL CALL 20 Z S22000
    140 TOOL DEF 24
    150 L X-72.462 Y-3.720 R0 FMAX M03
    160 L Z+25.000 R0 FMAX M9
    170 L Z+10.000 R0 FMAX

    .

    .

    .

    .

    • Like 1
  4. Hi,

    i have two buffers and need to filter duplicates from them.

    For example Buffer 1:

    20 20 20 20 24 18 18 20

    and buffer 2:

    2 0 2 0 0 2 0 0

     

    I want to filter from buffer 1 only values that match "2" in buffer 2. In this case it is only  numbers 20 and 18 and want to have theese numbers only once in buffer 3.

     

    so i wrote this:

     

        zero = wbuf(3,wc3)  # put 0 to buffer 3, no null size buffer
         size1 = rbuf(1, 0)
        while rc1 <= size1,
      [
           toolnumber = rbuf(1, rc1)
        size2 = rbuf(2, 0)
        toolcomp = rbuf(2, rc2)
        if toolcomp = 2,
        rc3 = 1
        size3 = rbuf(3,0)
        while rc3 <= size3,
        [
            toolselect = rbuf(3,rc3)
            if toolnumber <> toolselect,
            toolnumber = wbuf(3,wc3)
        
          ]
        ]

     

    and result of this in buffer 3 is : 0 20 20 18 18 18

     

    I think, this reads values from buffer 1 and 2, if it match condition "2" than it scan buffer 3 if toolnumber is present, if not it write it to buffer 3 and than "rewind" buffer 3 (rc3 = 1)

     

    What is wrong with this code or am i miss something?

    Thanks for help.

  5. I am very experienced using WCS and modelling. Also i programmed 3+2 for years, very variable jobs, so not only  copy and paste. But in september we went to five axis and it was completly new world. Especially Tool axis control page :-) It takes me about 1 month to learn what which toolpath do and how and when to use it. Hardest part for me is postprocessor and machine simulation, i am still arguing with reseller about that.

    But i'm still cautious and paste program pause into g code before five axis part of program :-) I am still learning.

  6. Finally i programmed this:

     

    #buffer definition
    stplnam
    size2 : 0
    rc2 : 1
    wc2 : 1
    fbuf 2 0 80 0

    swcsnam
    size3 : 0
    rc3 : 1
    wc3 : 1
    fbuf 3 0 80 0

     

     

    pwrttparam$ #pre read routine

     

          if prmcode$ = 20014, sparameter$ = wbuf(3, wc3) #store WCS name to buffer 3
          if prmcode$ = 20012, sparameter$ = wbuf(2, wc2) #store T-plane name to buffer 2

     

     

    pwcscheck # postblock to read and compare WCS - T-plane

     

        size2 = rbuf(2, 0)
        while rc2 <= size2,
        [
           stplnam = rbuf(2, rc2)
            size3 = rbuf(3, 0)
            while rc3 <= size3,
            [
            swcsnam = rbuf(3, rc3)
            ]
        if stplnam <> swcsnam, result = mprint("WCS - TPlane ARE DIFFERENT!!!")
            ]

     

    psof$            #Start of file for non-zero tool number

     pwcscheck

    ...

    ...

    It looks like it works, but i have another question:

    is it possible to stop while loop after first postitive result? Because at this moment it gives me as many pop-up windows as many differences in plane names.

    Thanks

    • Like 1
  7. I would like to warn programmer, that WCS and T-plane are different, so i added this into my post:

     

    "string definition"

    s_wcsnam
    s_tplnam
     

    and in pparameter$  section

     

        if prmcode$ = 20012, s_tplnam = sparameter$
        if prmcode$ = 20014, s_wcsnam = sparameter$
          [
             if s_tplnam <> s_wcsnam, mprint("WCS-TPlane !!!)

          ]

     

    but i get this error:

     

    PST LINE (914) - The post block output type processing has failed!, , Label has not been defined[32]
    PST LINE (914) - The post block output type processing has failed!, , Illegal character(s) encountered
    PST LINE (914) - The post block output type processing has failed!, , Label was expected but was not found[51], Illegal character(s) encountered

     

    I think that boolean <> is allowed for strings and result is 0 or 1. I tried many options how to fix this, but it still doesnt work. Pleas, can you help me?

     

     

    And the next level is how to capture WCS origin coordinates and compare them to warn programmer.

    These values are in OP_VIEW003 parameter 15366-15368, but i dont have this output in NCI.

    Any Idea?

     

    Thanks,

    Smrk

  8. Hi,

    i want to generate total maximum/minimum coordinates of whole program, so i added this into my post:

     

    #buffer 2 min/max
    b2_xmin : 0
    b2_xmax : 0
    b2_ymin : 0
    b2_ymax : 0
    b2_zmin : 0
    b2_zmax : 0
    size2 : 0
    rc2 : 2
    wc2 : 1
    fbuf 2 0 3 0 0

     

     

    ------------------------

     

    # variable def
    fmt "" 2 x_tmin     #min X
    fmt "" 2 x_tmax     #max X
    fmt "" 2 y_tmin     #minY
    fmt "" 2 y_tmax     #max Y
    fmt "" 2 z_tmin     #min Z
    fmt "" 2 z_tmax     #max Z

     

     

    -------------------------

    # in psof section:

     

          ptravel
          pwritbuf2
          ";(","X-MIN= ",*x_tmin,")",e$
          ";(","X-MAX= ",*x_tmax,")",e$
          ";(","Y-MIN= ",*y_tmin,")",e$
          ";(","Y-MAX= ",*y_tmax,")",e$
          ";(","Z-MIN= ",*z_tmin,")",e$
          ";(","Z-MAX= ",*z_tmax,")",e$

     

    ptravel
        if x_min$ < x_tmin, x_tmin = x_min$
        if x_max$ > x_tmax, x_tmax = x_max$
        if y_min$ < y_tmin, y_tmin = y_min$
        if y_max$ > y_tmax, y_tmax = y_max$
        if z_min$ < z_tmin, z_tmin = z_min$
        if z_max$ > z_tmax, z_tmax = z_max$

    # buffer read write
    pwritbuf2
         b2_xmin = x_min$
        b2_xmax = x_max$
        b2_ymin = y_min$
        b2_ymax = y_max$
        b2_zmin = z_min$
        b2_zmax = z_max$

     

     

     

     

     

    and the result is this:

     

     

    100 BEGIN PGM T MM
    0 ; T
     ; DATE - 28-10-14
     ; TIME - 17:45
     ; MCX FILE -T
     ; NC FILE - C:\.............\T.H
     ; Created by: Kominik
    110 BLK FORM  0.1 Z X+0.000 Y+0.000 Z+0.000
    120 BLK FORM  0.2   X+0.000 Y+0.000 Z+0.000
    ; C. 20 R:5.00 Cor.rad.:0.50 overal:70 Code: 574.100.05
    ; C. 21 R:5.00 Cor.rad.:0.00 overal:50 Code: 80.6302
    ;( X-MIN= -109.356 )
    ;( X-MAX= +69.618 )
    ;( Y-MIN= -35.330 )
    ;( Y-MAX= +51.990 )
    ;( Z-MIN= +0.000 )
    ;( Z-MAX= +25.000 )
    130 TOOL CALL 20 Z S22000
    140 L X-72.967 Y+3.995 R0 FMAX M03
    150 L Z+25.000 R0 FMAX M9
    160 L Z+10.000 R0 FMAX
    170 L Z+0.000 R0 F1500
    180 L X-68.232 Y-4.814 R0 F6500
    190 CC X-59.424 Y-0.079
    200 C X-54.689 Y-8.887 DR+ R0
    .....
    ....
    ...
    ..
    .

     

     

    It looks exactly what i want, but i would like to ask you, if this code is without any hidden bug.

    Thanks

  9. Hi,

    i wonder how to create machine definition for machine simulation. I have solid model.

    In machine simulation toolbar is "machine conversion" but after clicking to this button i have pop-up window " Please fill the path in where machine to be exported in IOF_machine_path.ini from user\Documents\my mcamx "

    I dont have this file in that folder.

    Thanks for help

  10. Bug description:

     

    When a tool is used by multiple operations, double clicking, editing, and electing to create a new tool is no longer editing the original tool and then not updating the original toolpath.

     

    I think, this bug is not fixed in MU2. I still have this problem.

  11. I did some tests and the winner is.... "surface finish contour" operation

    In example file are ops 1-7 (7th is finish contour)

    Three stock model ops:

    8 - stock as bounding box, selected operations 1-6 (without surface finish) - this takes aprox 19 sec to calculate - so no problem

    9 and 10 have selected all ops as source operations - and it freezes during calculation

    TK-TEST.MCX-7

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