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:

Family of parts


Recommended Posts

Hello,

 

I have been programming a family of parts,(different dia.'s and linear locations), by importing a new solid into an existing file of a dif. size part, putting geometry to the new solid then reselecting the new geometry for each tool and regenerating the path. Is there a faster/easier way to do this. Can Mastercam do parametric programming to adjust for the different sizes. I understand that Solidworks will make the adjustments using, I think it's a matrix table, but I don't have Solidworks.

Can anyone suggest a better way of doing this? Any input will be greatly appreciated.

 

Thank you,

 

rchipper

Link to comment
Share on other sites

theoretically, you could have a table driven pattern in SW to control features of the part. If the programming was done in MC4SW then it should regenerate correctly when making a change to the spreadsheet.

Never used MC4SW so don't know the pitfalls.

Link to comment
Share on other sites

If the family of parts are close enough you might be better off manually writing a program using all XZ? variables then writing each seperate program with a G65 call. Give your print dimensions letters and input the values in the program(s).

 

G65 P4501 A1.0 B2.75 C.75 D1.014 ect...

 

G00X[#1+.05]Z#2

G01X-.05F.004

G00X#1Z[#2+.02]

.

.

.

Link to comment
Share on other sites

I am with Tim, Take the time to write a smart program with variables, Below is an example that uses Incremental moves and a Variable for the part length

 

%

O4956 (J SERIES FRONT RAD)

(CAREFULL INCREMENTAL & ABSOLUTE PROGRAM)

(03.10.13)

(ADDED 0.5MM TO 6MM DIMENSION NOW 6.5)

(#563 X AXIS DEPTH)

 

N5 (SPINDLE-1 CUT SHAPE)

(T1010 H10. 10 ENDMILL)

(CUT FORM)

#570=0

 

M98 P4999 (LF/RF)

 

IF [#560LE2 ]GOTO6 (32MM WIDE)

#563=-22 (20 WIDE)

GOTO7

 

N6#563=-34 (32 WIDE)

 

N7 G28 U0

G28 V0 W0

 

G54

G00 T1010

G361 B0.0 D0.

G00 T [#543](TOOL PRECALL)

M69

G98 G19 M46

M303

M45

G43 H10.

G97 S5000 M13

M69

G00 C0

M68

G00 X60 Y0 Z0

G52 X0 Y#546 Z0 (BUGGER FACTOR ADJUST Y)

 

(***************************)

M172 (SYNC FOR LOWER SUPPORT)

(SUPPORT ON PART)

M175 (SYNC FOR LOWER SUPPORT)

(***************************)

 

IF [#562EQ0 ]GOTO900 (LEFT FACING C0)

 

(RIGHT FACING FROM HERE)

(CUT1 0.3MM STOCK)

G0 Y-25.0 Z [-#520-1.5]M8 (Z-81.5)

X#563

G1 Y-15.3 F300.

G3 V.5 W.5 R.5

G1 Z-2. F500.0 (Z-2)

G2 V7.3 W7.3 R7.3

G1 V4.

G2 V7.3 W-7.3 R7.3

G1 Z [-#520+12.5](Z-67.5)

G3 V.7 W-.7 R.7

G1 V6.

G2 V5.3 W-5.3 R5.3

G1 W-7.5

G3 V.5 W-.5 R.5

G1 V5.

G0 X50.0

 

G0 Y-25.0 Z [-#520-1.5](Z-81.5)

X#563

G1 Y-15. F300.0

G3 V.5 W.5 R.5

G1 Z-2. F500.0 (Z-2)

G2 V7. W7. R7.

G1 V4.

G2 V7. W-7. R7.

G1 Z [-#520+12.5](Z-67.5)

G3 V1. W-1. R1.

G1 V6.

G2 V5. W-5. R5.

G1 W-7.5

G3 V.5 W-.5 R.5

G1 V5.

G0 X50.0 M09

GOTO998 (EXIT)

(*******************)

 

 

N900 (LEFT FACING)

G0 Y-25.0 Z [-#520-1.5]M8 (Z-81.5)

X#563

G1 Y-16.3 F300.0

G3 V.5 W.5 R.5

G1 W7.5 F500.0 (Z-73.5)

G2 V5.3 W5.3 R5.3

G1 V6.

G3 V.7 W.7 R.7

G1 Z-2. (Z-2)

G2 V7.3 W7.3 R7.3

G1 V4.

G2 V7.3 W-7.3 R7.3

G1 Z [-#520-1](Z-81.0)

G3 V.5 W-.5 R.5

G1 V5.

G0 X50.0

 

Y-21.

G1 X#563

V5.

G3 V.5 W.5 R.5

G1 W7.5

G2 V5. W5. R5.

G1 V6.

G3 V1. W1. R1.

G1 Z-2. (Z-2)

G2 V7. W7. R7.

G1 V4.

G2 V7. W-7. R7.

G1 Z [-#520-1](Z-81.0)

G3 V.5 W-.5 R.5

G1 V5.

G0 X50.0

 

N998 (EXIT BLOCKS)

G52 X0 Y0 Z0 (BUGGER FACTOR RESET)

(***************************)

M176 (SYNC FOR LOWER SUPPORT)

(SUPPORT OFF PART)

(***************************)

 

M09

M05

G49

G28 U0

G28 V0 W0

 

(SUB END)

G69.1

M01

M99

%

Link to comment
Share on other sites
  • 2 weeks later...

I program the smallest part and the largest part, Then I compare the output and use it to write a macro program to run all parts by inputing all the varables needed with speeds and feeds.

 

Example

%

:8000(XXXXX MAIN PROG.)

(HEAD 1)

G20

G0G10L2P0X0.Z11.3512

G0G10L2P1X0.Z0.

(===============================)

(ENTER PART # ON MACRO VAR. #500)

(===============================)

G65P1000(PART # MACRO)

(===============================)

M38

M434

M100

M01

M101

N4G0G28U0.(TOOL - 4 OFFSET - 4)

G0G30W0.

M102

G0T0499

M11(CHUCK UNCLAMP)

M25

G50S#100

G96S#101M3

G0G54Z-.04M8

X3.

M51

X1.2425

G99G1X1.0425F#102

Z2.0

G0X1.18

Z-.04

G1X.988

Z1.955

G0X3.

M9

M59

G0G28U0.M5

G0Z[11.9312+#116]

G0T0488

M103

/M01

M104

 

N2G0G28U0.(TOOL - 2 OFFSET - 2)

M105

G0T0299

M10(CHUCK CLAMP)

G50S#104

G96S#105M3

G0G54Z[11.9312+#116]M8

X3.

X.968

G1Z[11.8312+#116]F#106

Z[8.0337+#116]

X1.42

G0Z[11.9312+#116]

X.716

G1Z[11.8312+#116]

Z[10.5112+#116]

X.7974

Z[9.8789+#116]

G3X.8119Z[9.85+#116]R.0612

G1Z[8.0337+#116]

X1.188

G0Z[11.9312+#116]

X.4641

G1Z[11.8312+#116]

Z[11.1104+#116]

X.5581Z[11.0634+#116]

Z[10.5112+#116]

X.936

G0X3.

(===============================)

IF[#116LE0.]GOTO1002

(===============================)

M9

M81

G0G28U0.M5

G0T0288

M106

/M01

M107

N44G0G28U0.(TOOL - 4 OFFSET - 4)

M108

G0T0499

G50S#107

G96S#108M3

G0G54Z[11.7+#116]M8

X3.

X.4016

G1Z[11.7+#116]F#109

Z[11.106+#116]

X.4226Z[11.0955+#116]

X.4826Z[11.0635+#116]

G3X.4916Z[11.0526+#116]R.0154

G1Z[10.4856+#116]

G2X.5069Z[10.48+#116]R.0057

G1X.7042

G3X.733Z[10.4646+#116]R.0154

G1Z[9.8876+#116]

G2X.7439Z[9.8735+#116]R.0246

G3X.769Z[9.8646+#116]R.0154

G1Z[8.0096+#116]

X1.22

X1.3614Z[8.0732+#116]

G0X3.

(===============================)

IF[#116LE0.]GOTO1004

(===============================)

M9

M81

G0G28U0.M5

G0T0488

M109

/M01

M110

N6G0G28U0.(TOOL - 6 OFFSET - 6)

M111

G0T0699

G50S#110

G96S#111M3

G0G54Z[7.98+#116]M8

X6.

X1.42

G1X.71F#112

X1.42

G0X6.

G0G28U0.M5

G0T0688

M112

/M01

M113

 

(===============================)

IF[#116LE0.]GOTO8

(===============================)

N22G0G28U0.(TOOL - 2 OFFSET - 2)

M114

G0T0299

G50S#113

G96S#114M3

N1002(FOR SHORT BARREL T2)

Z[8.0803+#117]

G0X3.

X.8974

G1Z[7.9803+#117]F#115

Z[7.3119+#117]

G2X.8212Z[7.2187+#117]R1.3138

G1Z[2.454+#117]

X.98Z[2.0063+#117]

X1.1214Z[2.077+#117]

G0Z[7.3384+#117]

X.9137

G1X.8412Z[7.2452+#117]

G2X.6624Z[6.7688+#117]R1.3138

G1Z[6.7638+#117]

X.7323Z[2.7157+#117]

G2X.7362Z[2.6936+#117]R.1288

G1X.8412Z[2.3976+#117]

X.9826Z[2.4684+#117]

G0X3.

M9

G0G28U0.M5

G0Z[11.7+#117]

G0T0288

M115

/M01

M116

(===============================)

IF[#116LE0.]GOTO44

(===============================)

N444G0G28U0.(TOOL - 4 OFFSET - 4)

M117

G0T0405

G50S#116

G96S#117M3

Z[8.08+#117]

G0X3.

N1004(FOR SHORT BARREL T4)

X.835

G1Z[7.98+#117]F#118

Z[7.3396+#117]

G3X.8324Z[7.3334+#117]R.0154

G2X.6Z[6.7835+#117]R1.3596

G1Z[6.7781+#117]

X.6699Z[2.7301+#117]

G2X.6752Z[2.7002+#117]R.1746

G1X1.0144Z[1.7438+#117]

X1.2114Z[1.7613+#117]

G0X3.

M9

M81

G0G28U0.M5

G0Z[7.98+#116]

G0T0488

M118

/M01

M119

(===============================)

IF[#116LE0.]GOTO6

(===============================)

 

N8G0G28U0.(TOOL - 8 OFFSET - 8)

M120

G0T0899

M26

G50S#119

G96S#116M3

G0G54Z[11.8+#116]M8

X3.

X.3623

G1Z[11.13+#116]F.008

X.4957

Z[11.23+#116]

G0Z[11.8+#116]

X.229

G1Z[11.13+#116]

X.3823

Z[11.23+#116]

G0Z[11.8+#116]

X.199

G1Z[11.115+#116]

X.4957

Z[11.215+#116]

G0X.6957

Z[11.8+#116]

G1X-.0313

G0Z[11.5091+#116]

X3.

M9

G0G28U0.M5

G0T0888

M121

/M01

M122

 

N10G0G28U0.(TOOL - 10 OFFSET - 10)

M123

G0T1099

G97S#122M3

G0G54Z[11.5091+#116]M8

X3.

X.7

G92X.484Z[10.555+#116]F#123

X.4745

X.4671

X.4607

X.4551

X.4551

G0X.7

X3.Z[11.5091+#116]

M9

G0G28U0.M5

G0T1088

M124

/M01

M125

 

N1212G0G28U0.(TOOL - 12 OFFSET - 12)

M126

G0T1299

M26

G97S#124M3

G0G54Z[11.35+#116]M8

X3.

Z[11.2025+#116]

X.269

G1Z[11.1025+#116]F#125

Z[11.06+#116]

X.219Z[11.035+#116]

X.1836Z[11.0173+#116]

G0Z[11.2025+#116]

X.319

G1Z[11.1025+#116]

Z[11.0625+#116]

X.274

X.249Z[11.05+#116]

X.2136Z[11.0323+#116]

G0Z[11.2025+#116]

X.339

G1Z[11.1025+#116]

Z[11.1+#116]

Z[11.064+#116]

G3X.336Z[11.0625+#116]R.0015

G1X.299

X.249

G0X.1872

Z[11.0156+#116]

G1X.2225Z[11.0332+#116]

X.276Z[11.06+#116]

X.336

G2X.344Z[11.064+#116]R.004

G1Z[11.1+#116]

Z[11.2+#116]

G0X3.

M9

G0G28U0.M5

G0G30W0.

G0T1288

M127

/M30

M01

N1000(START LOAD SEQ.)

M128

G0G28U0.

G0G30W0.

T0100

M10(CHUCK CLAMP)

M37(SHUTTER OPEN)

G04P1500

M65(LOAD PART)

M129

M30

%

 

:1000(PART # AND MATERIAL MACRO)

(SPEED & FEED N2001 OR N2002)

(N2001=ALLOY STEEL)

(N2002=STANLESS STEEL)

IF[#500EQ1001.]GOTO1001

IF[#500EQ1002.]GOTO1002

IF[#500EQ1003.]GOTO1003

IF[#500EQ1004.]GOTO1004

IF[#500EQ1005.]GOTO1005

IF[#500EQ1006.]GOTO1006

IF[#500EQ1007.]GOTO1007

IF[#500EQ1008.]GOTO1008

IF[#500EQ1009.]GOTO1009

IF[#500EQ1010.]GOTO1010

GOTO3000

N1001(CAB)

N1002(CAH)

#132=0.0(LENGTH A)

#133=0.0(LENGTH B)

GOTO2001

N1005(CAB)

N1006(CAH)

#132=4.2(LENGTH A)

#133=0.0(LENGTH B)

GOTO2001

N1009(MAB)

N1010(MAH)

#132=4.2(LENGTH A)

#133=1.99(LENGTH B)

GOTO2001

N2001(ALLOY STEEL)

(N4 TOOL 4 ALLOY STEEL)

#100=[1000*3](MAX RPM)

#101=[100*6](SFPM)

#102=[.001*10](FPR)

(N2 TOOL 2 ALLOY STEEL)

#104=[1000*3](MAX RPM)

#105=[100*6](SFPM)

#106[.001*12](FPR)

(N44 TOOL 4 ALLOY STEEL)

#107=[1000*3](MAX RPM)

#108=[100*6](SFPM)

#109[.001*10](FPR)

(N6 TOOL 6 ALLOY STEEL)

#110=[1000*3.6](MAX RPM)

#111=[100*4](SFPM)

#112[.001*12](FPR)

(N22 TOOL 2 ALLOY STEEL)

#113=[1000*3](MAX RPM)

#114=[100*6](SFPM)

#115[.001*12](FPR)

(N444 TOOL 4 ALLOY STEEL)

#116=[1000*3](MAX RPM)

#117=[100*6](SFPM)

#118[.001*10](FPR)

(N8 TOOL 8 ALLOY STEEL)

#119=[1000*3](MAX RPM)

#120=[100*3](SFPM)

#121[.001*8](FPR)

(N10 TOOL 10 ALLOY STEEL)

#122=[1000*1.28](MAX RPM)

#123=[1./28](TPI)

(N12 TOOL 12 ALLOY STEEL)

#124=[1000*1.28](MAX RPM)

#125=[100*3](SFPM)

M99

N1003(CSB)

N1004(CSH)

#132=0.0(LENGTH A)

#133=0.0(LENGTH B)

GOTO2002

N1007(CSB)

N1008(CSH)

#132=4.2(LENGTH A)

#133=0.0(LENGTH B)

GOTO2002

N2002(STANLESS STEEL)

(N4 TOOL 4 STANLESS STEEL)

#100=[1000*5](MAX RPM)

#101=[100*6](SFPM)

#102=[.001*10](FPR)

(N2 TOOL 2 STANLESS STEEL)

#104=[1000*3](MAX RPM)

#105=[100*6](SFPM)

#106[.001*12](FPR)

(N44 TOOL 4 STANLESS STEEL)

#107=[1000*3](MAX RPM)

#108=[100*6](SFPM)

#109[.001*10](FPR)

(N6 TOOL 6 STANLESS STEEL)

#110=[1000*3.6](MAX RPM)

#111=[100*4](SFPM)

#112[.001*12](FPR)

(N22 TOOL 2 STANLESS STEEL)

#113=[1000*3](MAX RPM)

#114=[100*6](SFPM)

#115[.001*12](FPR)

(N444 TOOL 4 STANLESS STEEL)

#116=[1000*3](MAX RPM)

#117=[100*6](SFPM)

#118[.001*10](FPR)

(N8 TOOL 8 STANLESS STEEL)

#119=[1000*3](MAX RPM)

#120=[100*3](SFPM)

#121[.001*8](FPR)

(N10 TOOL 10 STANLESS STEEL)

#122=[1000*1.28](MAX RPM)

#123=[1./28](TPI)

(N12 TOOL 12 STANLESS STEEL)

#124=[1000*1.28](MAX RPM)

#125=[100*3](SFPM)

M99

N3000(ALARM)

#3000=10(NO PART # SET VAR#500)

M99

 

%

Link to comment
Share on other sites

Thank you all very much. I am sorry for not replying sooner but I have been very busy.

 

Peter,

That milling C-HOOK would make my life so much easier. The part is not too complicated, diameter changes, linear changes and yes there is a simple 120 degree surface that I am stepping down to rough it.

Would you be willing to share with me how these work? How to create? I am fairly new to Mastercam and am eager to learn everything I can.

Link to comment
Share on other sites

Would you be willing to share with me how these work? How to create? I am fairly new to Mastercam and am eager to learn everything I can.

 

Sure, but U should know those C-Hooks are the result of 2-3 years learnig and developing. And digging the net and this forum also ;)

I had to start learning eveything from zero, including C++. That's why was it so long. Today I can say, I can put together some similar in

2-3 weeks, based on this development experience. Whit this, I would say it's not impossible but in the same time not easy.

 

For basic (half-)automatized tasks, VBS scripts are enough, but the possibilities are limited.

 

Next level can be the NET-Hook, written in C# or VB. With X7 and with the new NETHook3_0 you have a lot more

functions than VBS scripts, and you can do more, like fancy pop-up windows like mine, do more complex drawings,

auto chaining and auto import (or create) of operations and connect them to geometries.

 

What I used is C-Hook, written in C++. With C-Hooks you get a lot of function (much more than NET-Hook) you

can control basically everything very deeply and that's why it can be difficult sometimes. But at the same time

you get a full control over everything and you can automatize a lot of functions in Mastercam.

 

If one day, when you taste this "power" how you can control Mastercam, you gonna say it's easy and fun... ;)

Hope this helps a little and make some sense to start on a way.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

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