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

About Smrk

  • Birthday 04/12/1983

Uncategorized

  • Location
    Czech Republic

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Smrk's Achievements

Newbie

Newbie (1/14)

7

Reputation

  1. Hi, is there any way how to change transitions between cuts in Surface high speed area roughing? How to make transitions smoother (red lines) This is someties causing undercuts because of tool vibrations. Thanks
  2. Smrk

    SPLINE

    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).
  3. Hi, you can do it via post modification. I created this into my post, little modification and it can be applied on your case. http://www.emastercam.com/board/topic/87537-how-to-filter-duplicates-from-buffer/ Just add simple condition, when parameter 15346 = 3, than pop up window to warn programmer....
  4. 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 ] ] ]
  5. #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 . . . .
  6. 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.
  7. 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.
  8. i tried to set condition rc2 = size2 inside second loop which should stop looping if stplnam <> swcsnam, rc2 = rbuf(2, 0) but this doesn't work :-(
  9. 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
  10. 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
  11. 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

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