|
|
(32 intermediate revisions by the same user not shown) |
Line 16: |
Line 16: |
| ***** Roughing: 10% to 50% of tool diameter | | ***** Roughing: 10% to 50% of tool diameter |
| ***** Finishing (bottom): 3% - 5% of tool diameter | | ***** Finishing (bottom): 3% - 5% of tool diameter |
| | * Feeds & Speeds |
| | ** https://www.the-carbide-end-mill-store.com/Feeds-and-Speeds.html |
| | ** [[Feeds_and_Speeds]] |
|
| |
|
| = G-Code = | | = G-Code = |
|
| |
|
| This may be specific to Acorn CNC at HSL. | | This may be specific to Acorn CNC at HSL. |
| | |
| | * https://en.wikipedia.org/wiki/G-code |
|
| |
|
| == Comments == | | == Comments == |
Line 106: |
Line 111: |
| TBD | | TBD |
|
| |
|
| = Bearing Cup (new version) = | | = Bearing Cup = |
| == Drill Ears ==
| | * [[BearingCupVersionOne]] |
| <pre>
| | * [[BearingCupVersionTwo]] |
| ;; ------------------------------
| | * [[BearingCupVersionThree]] |
| ;; Drill Ears (001)
| |
| ;; ------------------------------
| |
| ;; Use 1/2" x 2" rectangle 6061 T6, at least 28mm long.
| |
| ;; Spindle RPM to 1200
| |
| ;; Zero X to 14mm left of end
| |
| ;; Zero Y to middle of material
| |
| ;; Insert Appropriate drill bit (.166 for slip, M4-0.7 tap drill bit for threads)
| |
| ;; Zero Z to shoulder of drill bit
| |
| ;; Check H128 for zero offset
| |
| ;; Check T128 for zero diameter
| |
| | |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| F60 (set feed rate to 60mm per minute, 0.025 mm per tooth)
| |
| T128 (tool with zero height and diameter)
| |
| G43 H128 (height offset zero)
| |
| | |
| G0 Z20 (traverse to 20mm above part)
| |
| | |
| G0 X8 Y12.09 (traverse to screw hole center XY)
| |
| G0 Z5 (traverse to 5mm above)
| |
| G1 Z-5 (peck to 5mm deep)
| |
| G0 Z6 (retract to 6mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-10 (peck to 10mm deep - top has not been faced yet)
| |
| | |
| G0 Z20 (traverse to 20mm above)
| |
| | |
| M30 (end of program)
| |
| </pre>
| |
| | |
| == Drill Center ==
| |
| <pre>
| |
| ;; ------------------------------------
| |
| ;; Drill Center, Starter Bit (002)
| |
| ;; ------------------------------------
| |
| ;; Insert 5/16" or 8mm drill bit
| |
| ;; Zero Z to shoulder of drill bit
| |
| | |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| F60 (set feed rate to 60mm per minute, 0.025 mm per tooth)
| |
| T128 (tool with zero height and diameter)
| |
| G43 H128 (height offset zero)
| |
| | |
| G0 Z20 (traverse to 20mm above part)
| |
| | |
| G0 X0 Y0 (traverse to screw hole center XY)
| |
| G0 Z5 (traverse to 5mm above)
| |
| G1 Z-5 (peck to 5mm deep)
| |
| G0 Z6 (retract to 6mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-10 (peck to 10mm deep - top has not been faced yet)
| |
| | |
| G0 Z20 (traverse to 20mm above)
| |
| | |
| M30 (end of program)
| |
| </pre>
| |
| <pre>
| |
| ;; ------------------------------------
| |
| ;; Drill Center, Final Bit (003)
| |
| ;; ------------------------------------
| |
| ;; Insert 1/2" or 13mm drill bit
| |
| ;; Zero Z to shoulder of drill bit
| |
| | |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| F60 (set feed rate to 60mm per minute, 0.025 mm per tooth)
| |
| T128 (tool with zero height and diameter)
| |
| G43 H128 (height offset zero)
| |
| | |
| G0 Z20 (traverse to 20mm above part)
| |
| | |
| G0 X0 Y0 (traverse to screw hole center XY)
| |
| G0 Z5 (traverse to 5mm above)
| |
| G1 Z-5 (peck to 5mm deep)
| |
| G0 Z6 (retract to 6mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-10 (peck to 10mm deep - top has not been faced yet)
| |
| | |
| G0 Z20 (traverse to 20mm above)
| |
| | |
| M30 (end of program)
| |
| </pre>
| |
| | |
| == Face Part ==
| |
| <pre>
| |
| ;; ----------------------------------------
| |
| ;; Face Part (004)
| |
| ;; ----------------------------------------
| |
| ;; Insert 6mm carbide square end mill
| |
| ;; Set RPM to 5,000, 300 SFM
| |
| ;; Zero Z to a grazing cut.
| |
| | |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| F500 (set feed speed to 500mm per minute, 0.025 mm per tooth)
| |
| T128 (tool with zero height and diameter)
| |
| G43 H128 (height offset zero)
| |
| | |
| G0 Z20 (traverse to 20mm above part)
| |
| | |
| G17 (set XY coordinate system for arc cuts)
| |
| | |
| G0 X20 Y0.56 (traverse to outside part)
| |
| G0 Z5 (traverse to 5mm above part)
| |
| G1 Z0 (feed to grazing cut)
| |
| G1 X6.34 Y9.59 (feed to start of upper right ear)
| |
| G2 X6.34 Y9.59 I1.66 J2.5 (CW arc cut to same position about upper right ear)
| |
| G3 X-6.34 Y-9.59 I-6.34 J-9.59 (CCW arc cut to lower left ear about origin)
| |
| G2 X-6.34 Y-9.59 I-1.66 J-2.5 (CW arc cut to same position about lower left ear)
| |
| G3 X6.34 Y9.59 I6.34 J9.59 (CCW arc cut back to where we stared about origin)
| |
| | |
| G0 Z20 (traverse to 20mm above)
| |
| M30 (end of program)
| |
| </pre>
| |
| | |
| == Round Pocket Retainer ==
| |
| <pre>
| |
| ;; --------------------------------------
| |
| ;; Round Pocket Retainer (005)
| |
| ;; --------------------------------------
| |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| F500 (set feed speed to 500mm per minute, 0.025 mm per tooth)
| |
| T128
| |
| G43 H128
| |
| | |
| G0 Z20 (traverse to 20mm above)
| |
| M30 (end of program)
| |
| </pre>
| |
| | |
| = Bearing Cup (old version) =
| |
| | |
| == Face Material (001) ==
| |
| | |
| Lightest possible grazing pass. Material is 12.7mm thick, I need 8mm of it, 3.175mm buried in the vise, leaving 1.525 mm to spare.
| |
| | |
| The end mill also will be clear of the vise in the Y axis, so going below the jaws in the Z axis is actually safe, but I'm shooting for a belt and suspenders.
| |
| | |
| <pre>
| |
| ;; ----------------------------------------------
| |
| ;; Face Material
| |
| ;; ----------------------------------------------
| |
| ;; Zero X to right end
| |
| ;; Zero Y to middle of material, 25.4mm from edge
| |
| ;; Zero Z with 3" five-tooth indexable carbide facing mill
| |
| ;; Set spindle speed to 500 RPM, 400 SFM, 6061-T6 with carbide allows 800.
| |
| ;; Feed Speed 60mm per minute = 0.025 mm chip, 6061-T6 with carbide allows 0.05
| |
| | |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| F60 (set feed rate to 60mm per minute)
| |
| G0 Z20 (traverse to 20mm above part)
| |
| G0 X50 Y0 (traverse to outside part)
| |
| G0 Z5 (traverse to 5mm above part)
| |
| | |
| G1 Z1 (feed to 1mm above part)
| |
|
| |
|
| G1 X-347 (feed to left end, 6 minutes run time)
| | = Gear Cutting = |
| G0 Z20 (traverse to 20mm above part)
| |
| </pre>
| |
|
| |
|
| * Update G1 Z1 to G1 Z0 and re-run.
| | == G-Code == |
| * Update G1 Z1 to G1 Z-0.1 and re-run.
| |
|
| |
|
| == Drill Center ==
| | [[GearCuttingVersionOne]] |
|
| |
|
| Zero X to 13mm from short edge
| | == Notes == |
|
| |
|
| Zero Y to 25.4mm from long edge (center of material)
| | * On a 30mm radius gear, error from 1 degree involute curve approximation is on the order of thousandths of a millimeter. |
| | * 20 degrees is the typical pressure angle. |
| | * http://www.otvinta.com/gear.html |
| | ** http://www.otvinta.com/tutorial01.html |
| | ** Also: cnc-mill/involute_gear/calculator/Otvinta.com -- Involute Gear Calculator |
|
| |
|
| Set spindle speed to 1200 RPM
| | == Not Profile-Shifted == |
|
| |
|
| === Starter Center Drill (002) === | | * Bottom of Root to Pitch Radius = module |
| | * Pitch Radius to Tip Radius = module |
| | * module = distance along pitch radian from pitch circle at 0 radians to base circle at standard pressure angle radians |
| | ** See: https://www.tec-science.com/mechanical-power-transmission/involute-gear/undercut/ |
| | ** "Calculation of the minimum number of teeth" |
| | * 14 teeth minumum (17 hypothetical, 14 practical, some stretch to 12) |
|
| |
|
| Zero Tool Z Manually w/ 5/16 drill, zero Z to drill shoulder.
| | == Profile Shifted == |
|
| |
|
| <pre>
| | * z=10, x=.4 pretty safe |
| G21 (set units to millimeters)
| | * z=8, x=.4 probably works in practice |
| G90 (set measurements to absolute, relative to machine zero)
| | * https://khkgears.net/new/gear_knowledge/abcs_of_gears-b/gear_profile_shift.html |
| G0 Z20 (traverse to 20mm above part)
| | * http://www-mdp.eng.cam.ac.uk/web/library/enginfo/textbooks_dvd_only/DAN/gears/generation/generation.html |
| G0 X0 Y0 (traverse to origin XY)
| |
| F60 (set feed rate to 60mm per minute, 0.025 mm per tooth)
| |
| G0 Z5 (traverse to 5mm above part)
| |
|
| |
|
| G1 Z-6 (feed to 6mm deep)
| | == Mesh Check == |
| G0 Z5 (retract to 5mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-12 (feed to 12mm deep)
| |
| G0 Z20 (traverse to 20mm above)
| |
| </pre>
| |
| | |
| === Final Center Drill (003) === | |
| | |
| Zero Tool Z Manually w/ 1/2 drill, zero Z to drill shoulder.
| |
| <pre>
| |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| G0 Z20 (traverse to 20mm above part)
| |
| G0 X0 Y0 (traverse to origin XY)
| |
| F60 (set feed rate to 60mm per minute, 0.035 mm per tooth)
| |
| G0 Z5 (traverse to 5mm above part)
| |
|
| |
|
| G1 Z-6 (feed to 6mm deep)
| | Looks promising: |
| G0 Z5 (retract to 5mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-9 (feed to 9mm deep)
| |
| G0 Z20 (traverse to 20mm above)
| |
| </pre>
| |
|
| |
|
| == Drill Screw Holes ==
| | [[File:Mesh check.png|thumb]] |
|
| |
|
| === Drill Threaded Hole (004) === | | = Geometry = |
|
| |
|
| Use bit that came with M4-0.7 tap.
| | == Circle from 3 Points == |
|
| |
|
| Zero Z to drill bit shoulder.
| | https://stackoverflow.com/questions/4103405/what-is-the-algorithm-for-finding-the-center-of-a-circle-from-three-points#4103418 |
|
| |
|
| <pre> | | <pre> |
| G21 (set units to millimeters)
| | public static Circle circleFromPoints(final Point p1, final Point p2, final Point p3) |
| G90 (set measurements to absolute, relative to machine zero)
| | { |
| G0 Z20 (traverse to 20mm above part)
| | final double offset = Math.pow(p2.x,2) + Math.pow(p2.y,2); |
| G0 X9.5 Y9.5 (traverse to screw hole center XY)
| | final double bc = ( Math.pow(p1.x,2) + Math.pow(p1.y,2) - offset )/2.0; |
| F60 (set feed rate to 60mm per minute, 0.025 mm per tooth)
| | final double cd = (offset - Math.pow(p3.x, 2) - Math.pow(p3.y, 2))/2.0; |
| G0 Z5 (traverse to 5mm above)
| | final double det = (p1.x - p2.x) * (p2.y - p3.y) - (p2.x - p3.x)* (p1.y - p2.y); |
| | | |
| G1 Z-5 (peck to 5mm deep)
| | if (Math.abs(det) < TOL) { throw new IllegalArgumentException("Yeah, lazy."); } |
| G0 Z6 (retract to 6mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-10 (peck to 10mm deep)
| |
| G0 Z6 (retract to 6mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-9 (peck to 9mm deep)
| |
| G0 Z20 (traverse to 20mm above)
| |
| </pre>
| |
| | |
| === Drill Slip Hole (005) === | |
| | |
| Use .166" or 4.25mm bit.
| |
| | |
| Zero Z to drill bit shoulder.
| |
| | |
| <pre>
| |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| G0 Z20 (traverse to 20mm above part)
| |
| G0 X-9.5 Y-9.5 (traverse to screw hole XY)
| |
| F60 (set feed rate to 60mm per minute, 0.025 mm per tooth)
| |
| G0 Z5 (traverse to 5mm above)
| |
| | |
| G1 Z-5 (peck to 5mm deep)
| |
| G0 Z6 (retract to 6mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-10 (peck to 10mm deep)
| |
| G0 Z6 (retract to 6mm above)
| |
| G0 Z0 (traverse to 0mm above)
| |
| G1 Z-9 (peck to 9mm deep)
| |
| G0 Z20 (traverse to 20mm above)
| |
| </pre>
| |
| | |
| == Arc Bore Center ==
| |
| | |
| Zero Tool Z w/ 6mm Square End Mill
| |
| | |
| Set spindle speed to 2600 RPM
| |
| | |
| === Bearing Retainer (006) ===
| |
| | |
| <pre>
| |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| G0 Z20 (traverse to 20mm above part)
| |
| G0 X0 Y0 (traverse to origin XY)
| |
| F120 (set feed rate to 120mm per minute)
| |
| G0 Z5 (traverse to 5mm above part)
| |
| | |
| G1 Z1 (feed to 1mm above part)
| |
| | |
| (repeatable cut)
| |
| G1 X4.5 Y0 (feed to 1.5mm cut)
| |
| G2 X4.5 Y0 I-4.5 J0 (bore circle to same location around machine zero)
| |
| G1 X6 Y0 (feed to final size)
| |
| G2 X6 Y0 I-6 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (repeatable cut)
| |
| | |
| G1 Z-2 (feed to 2mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X4.5 Y0 (feed to 1.5mm cut)
| |
| G2 X4.5 Y0 I-4.5 J0 (bore circle to same location around machine zero)
| |
| G1 X6 Y0 (feed to final size)
| |
| G2 X6 Y0 I-6 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (repeatable cut)
| |
| | |
| G1 Z-4 (feed to 4mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X4.5 Y0 (feed to 1.5mm cut)
| |
| G2 X4.5 Y0 I-4.5 J0 (bore circle to same location around machine zero)
| |
| G1 X6 Y0 (feed to final size)
| |
| G2 X6 Y0 I-6 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (repeatable cut)
| |
| | |
| G1 Z-6 (feed to 6mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X4.5 Y0 (feed to 1.5mm cut)
| |
| G2 X4.5 Y0 I-4.5 J0 (bore circle to same location around machine zero)
| |
| G1 X6 Y0 (feed to final size)
| |
| G2 X6 Y0 I-6 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (repeatable cut)
| |
| | |
| G1 Z-8 (feed to 8mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X4.5 Y0 (feed to 1.5mm cut)
| |
| G2 X4.5 Y0 I-4.5 J0 (bore circle to same location around machine zero)
| |
| G1 X6 Y0 (feed to final size)
| |
| G2 X6 Y0 I-6 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (repeatable cut)
| |
| | |
| G1 Z-9 (feed to 10mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X4.5 Y0 (feed to 1.5mm cut)
| |
| G2 X4.5 Y0 I-4.5 J0 (bore circle to same location around machine zero)
| |
| G1 X6 Y0 (feed to final size)
| |
| G2 X6 Y0 I-6 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (repeatable cut)
| |
| | |
| G0 Z20 (traverse to 20mm above part)
| |
| </pre>
| |
| | |
| === Bearing Cup (007) ===
| |
| | |
| <pre>
| |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| G0 Z20 (traverse to 20mm above part)
| |
| G0 X0 Y0 (traverse to origin XY)
| |
| F120 (set feed rate to 120mm per minute)
| |
| G0 Z5 (traverse to 5mm above part)
| |
| | |
| G1 Z1 (feed to 1mm above part)
| |
| | |
| (repeatable cut)
| |
| G1 X7.5 Y0 (feed to 1.5mm cut)
| |
| G2 X7.5 Y0 I-7.5 J0 (bore circle to same location around machine zero)
| |
| G1 X8.03 Y0 (feed to final size)
| |
| G2 X8.03 Y0 I-8.03 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-2 (feed to 2mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X8.03 Y0 (feed to bore size)
| |
| G2 X8.03 Y0 I-8.03 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-4 (feed to 4mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X8.03 Y0 (feed to bore size)
| |
| G2 X8.03 Y0 I-8.03 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-6 (feed to 6mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X8.03 Y0 (feed to bore size)
| |
| G2 X8.03 Y0 I-8.03 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-7 (feed to 7mm below surface)
| |
| | |
| (repeatable cut)
| |
| G1 X8.03 Y0 (feed to bore size)
| |
| G2 X8.03 Y0 I-8.03 J0 (bore circle to same location around machine zero)
| |
| G1 X0 Y0 (feed to origin)
| |
| (end repeatable cut)
| |
| | |
| G0 Z20 (traverse to 20mm above part)
| |
| </pre>
| |
| | |
| == Arc Cut Perimeter (008) ==
| |
| | |
| Zero Tool Z w/ 3/8 Square End Mill
| |
| | |
| Check for Z-9 Clearance above Vise
| |
| | |
| <pre>
| |
| G21 (set units to millimeters)
| |
| G90 (set measurements to absolute, relative to machine zero)
| |
| F120 (set feed rate to 120mm per minute)
| |
| G0 Z20 (traverse to 20mm above part)
| |
| G0 X25 Y5.93 (traverse to cut start XY)
| |
| G0 Z5 (traverse to 5mm above part)
| |
| | |
| G1 Z1 (feed to 1mm above part)
| |
| | |
| (repeatable cut)
| |
| G1 X14.32 Y5.93 (feed to first arc start)
| |
| G2 X-5.93 Y-14.32 I-14.32 J-5.93 (arc cut to second arc start)
| |
| G2 X-14.32 Y-5.93 I-3.57 J4.82 (arc cut to third arc start)
| |
| G2 X5.93 Y14.32 I14.32 J5.93 (arc cut to fourth arc start)
| |
| G2 X14.32 Y5.93 I3.57 J-4.82 (arc cut to first arc start)
| |
| G1 X25 (cut to outside part)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-2 (feed to 2mm below part)
| |
| | |
| (repeatable cut)
| |
| G1 X14.32 Y5.93 (feed to first arc start)
| |
| G2 X-5.93 Y-14.32 I-14.32 J-5.93 (arc cut to second arc start)
| |
| G2 X-14.32 Y-5.93 I-3.57 J4.82 (arc cut to third arc start)
| |
| G2 X5.93 Y14.32 I14.32 J5.93 (arc cut to fourth arc start)
| |
| G2 X14.32 Y5.93 I3.57 J-4.82 (arc cut to first arc start)
| |
| G1 X25 (cut to outside part)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-4 (feed to 4mm below part)
| |
| | |
| (repeatable cut)
| |
| G1 X14.32 Y5.93 (feed to first arc start)
| |
| G2 X-5.93 Y-14.32 I-14.32 J-5.93 (arc cut to second arc start)
| |
| G2 X-14.32 Y-5.93 I-3.57 J4.82 (arc cut to third arc start)
| |
| G2 X5.93 Y14.32 I14.32 J5.93 (arc cut to fourth arc start)
| |
| G2 X14.32 Y5.93 I3.57 J-4.82 (arc cut to first arc start)
| |
| G1 X25 (cut to outside part)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-6 (feed to 6mm below part)
| |
| | |
| (repeatable cut) | |
| G1 X14.32 Y5.93 (feed to first arc start)
| |
| G2 X-5.93 Y-14.32 I-14.32 J-5.93 (arc cut to second arc start)
| |
| G2 X-14.32 Y-5.93 I-3.57 J4.82 (arc cut to third arc start)
| |
| G2 X5.93 Y14.32 I14.32 J5.93 (arc cut to fourth arc start)
| |
| G2 X14.32 Y5.93 I3.57 J-4.82 (arc cut to first arc start)
| |
| G1 X25 (cut to outside part)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-8 (feed to 8mm below part)
| |
| | |
| (repeatable cut)
| |
| G1 X14.32 Y5.93 (feed to first arc start)
| |
| G2 X-5.93 Y-14.32 I-14.32 J-5.93 (arc cut to second arc start)
| |
| G2 X-14.32 Y-5.93 I-3.57 J4.82 (arc cut to third arc start)
| |
| G2 X5.93 Y14.32 I14.32 J5.93 (arc cut to fourth arc start)
| |
| G2 X14.32 Y5.93 I3.57 J-4.82 (arc cut to first arc start)
| |
| G1 X25 (cut to outside part)
| |
| (end repeatable cut)
| |
| | |
| G1 Z-9 (feed to 9mm below part)
| |
| | |
| (repeatable cut)
| |
| G1 X14.32 Y5.93 (feed to first arc start)
| |
| G2 X-5.93 Y-14.32 I-14.32 J-5.93 (arc cut to second arc start)
| |
| G2 X-14.32 Y-5.93 I-3.57 J4.82 (arc cut to third arc start)
| |
| G2 X5.93 Y14.32 I14.32 J5.93 (arc cut to fourth arc start)
| |
| G2 X14.32 Y5.93 I3.57 J-4.82 (arc cut to first arc start)
| |
| G1 X25 (cut to outside part)
| |
| (end repeatable cut)
| |
|
| |
|
| G0 Z20 (traverse to 20mm above part)
| | final double idet = 1/det; |
| | |
| | final double centerx = (bc * (p2.y - p3.y) - cd * (p1.y - p2.y)) * idet; |
| | final double centery = (cd * (p1.x - p2.x) - bc * (p2.x - p3.x)) * idet; |
| | final double radius = |
| | Math.sqrt( Math.pow(p2.x - centerx,2) + Math.pow(p2.y-centery,2)); |
| | |
| | return new Circle(new Point(centerx,centery),radius); |
| | } |
| </pre> | | </pre> |