View Issue Details

IDProjectCategoryView StatusLast Update
0002660Path[FreeCAD] Featurepublic2019-06-20 05:48
ReporterluispaAssigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status acknowledgedResolutionopen 
PlatformX86_64OSLinuxOS VersionUbuntu 16.04
Product Version[FreeCAD] 0.19 
Target Version[FreeCAD] 0.19Fixed in Version 
Summary0002660: Improving path surfacing object feature
DescriptionThis feature is partially implemented. There are useful parameters which are still not implemented, i.e. operation limits or material allowance (XY) and path angle among others.
Due the fact HeeksCNC also uses OpenCamLib it should be easy to use the attached Python script to include these parameters in the Path Surfacing Object feature.
TagsNo tags attached.

Activities

luispa

2016-08-05 02:43

reporter   ~0007239

The toolpaths in the HeeksCNC picture should be possible with FreeCAD if using the same parameters. I attached a picture with the HeeksCNC parameters, this allows to realize how these parameters are traduced to the script.

Kunda1

2017-05-07 14:57

administrator   ~0008904

@luispa the bugtracker recently was broken and it seems that last backup didn't transfer your attachments which is a shame. Sorry for the inconvenience biput would you be able to re-upload said attachments?

luispa

2017-05-08 01:51

reporter   ~0008909

Hi,
I've attached the files again. Is there any advance on this feature?
Thank you very much.

Freecad-Path-2.png (54,881 bytes)
Freecad-Path-2.png (54,881 bytes)
Heekscad-2.png (112,240 bytes)
Heekscad-2.png (112,240 bytes)
HeeksCNC-pocket-2.png (61,961 bytes)
HeeksCNC-pocket-2.png (61,961 bytes)
HeeksCNC-Script-2.txt (59,994 bytes)
# coding=UTF8
# No troubled Microsoft Windows detected
import sys
sys.path.insert(0,'/usr/lib/heekscnc/')
import math
import area
area.set_units(1)
import area_funcs
import nc.attach as attach
import ocl
import ocl_funcs
from depth_params import depth_params as depth_params

from nc.nc import *
from nc.emc2b import *

output('/home/luispa/Dropbox/Reeds development/Exportados Finales/Rev21/Rev21.ngc')
program_begin(1, 'programa 1')
absolute()
metric()
set_plane(0)

set_path_control_mode(0,0.0001,0.0001)
#(3 mm cortador de ranura)
tool_defn( 1, '3 mm cortador de ranura', {'corner radius':0, 'cutting edge angle':0, 'cutting edge height':12, 'diameter':3, 'flat radius':0, 'material':1, 'tool length offset':127, 'type':3, 'name':'3 mm cortador de ranura'})
#(4 mm broca)
tool_defn( 2, '4 mm broca', {'corner radius':0, 'cutting edge angle':59, 'cutting edge height':50.8, 'diameter':4, 'flat radius':0, 'material':1, 'tool length offset':100, 'type':0, 'name':'4 mm broca'})
#(6 mm cortador de ranura)
tool_defn( 3, '6 mm cortador de ranura', {'corner radius':0, 'cutting edge angle':0, 'cutting edge height':30, 'diameter':6, 'flat radius':0, 'material':1, 'tool length offset':100, 'type':3, 'name':'6 mm cortador de ranura'})
#(8 mm fresa esférica)
tool_defn( 4, '8 mm fresa esférica', {'corner radius':0, 'cutting edge angle':0, 'cutting edge height':50.8, 'diameter':8, 'flat radius':0, 'material':0, 'tool length offset':127, 'type':4, 'name':'8 mm fresa esférica'})
stl1 = ocl_funcs.STLSurfFromFile('/tmp/surface1.stl')
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-1.5')
tool_change( id=4)
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(37.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(38.4268, 95.716), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(38.2635, 83.2592), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(38.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(37.7723, 102.7978), area.Point(36.39699857, 101.2039404)))
c.append(area.Vertex(1, area.Point(35.2489, 104.2102), area.Point(33.32039919, 97.80437333)))
c.append(area.Vertex(1, area.Point(29.131, 104.9806), area.Point(30.08588178, 87.8865748)))
c.append(area.Vertex(1, area.Point(24.1537, 103.9858), area.Point(29.60335327, 89.66836124)))
c.append(area.Vertex(1, area.Point(22.1771, 102.7472), area.Point(26.15243951, 98.59968078)))
c.append(area.Vertex(1, area.Point(21.5019, 101.379), area.Point(23.60345045, 101.1925991)))
c.append(area.Vertex(0, area.Point(21.5, 101.2999), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.8474, 74.79), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.7385, 83.0962), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.7704, 80.6644), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.6862, 87.0853), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.9405, 67.6884), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.8452, 74.9561), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.9405, 67.6884), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.8724, 72.8802), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.9405, 67.6884), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.8599, 73.8351), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.9405, 67.6884), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(21.8997, 70.8045), area.Point(140.8436125, 70.80355)))
c.append(area.Vertex(0, area.Point(22.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(21.9541, 66.6519), area.Point(180.38697, 66.65145)))
c.append(area.Vertex(0, area.Point(22.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(21.9813, 64.5759), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(22.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-2.0')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(67.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68.1392, 73.7716), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(68.1261, 72.776), area.Point(105.86285, 72.77735)))
c.append(area.Vertex(0, area.Point(68.1346, 73.4257), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68.0992, 70.7233), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68.1531, 74.8342), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68.1522, 74.7647), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68.3804, 92.1764), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68.313, 87.0345), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68.5, 101.2999), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(67.715, 102.853), area.Point(66.29989779, 101.1628142)))
c.append(area.Vertex(1, area.Point(65.2294, 104.2169), area.Point(63.26319122, 97.68678502)))
c.append(area.Vertex(1, area.Point(58.7879, 104.9621), area.Point(60.04967023, 87.65610198)))
c.append(area.Vertex(1, area.Point(54.7059, 104.1947), area.Point(59.61817921, 89.30531983)))
c.append(area.Vertex(1, area.Point(52.249, 102.8186), area.Point(56.64402663, 97.85301864)))
c.append(area.Vertex(1, area.Point(51.5224, 101.5686), area.Point(53.74490745, 101.1128799)))
c.append(area.Vertex(1, area.Point(51.5, 101.2999), area.Point(53.11855583, 101.3002538)))
c.append(area.Vertex(0, area.Point(51.64, 90.6141), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.5638, 96.4257), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.5639, 96.424), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.8561, 74.1224), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.78, 79.9321), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.9609, 66.1315), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.9435, 67.4603), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.9681, 65.5805), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(51.9323, 68.3106), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(52.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-2.5')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(97.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98.1382, 73.6979), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98.1182, 72.1712), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98.1519, 74.7401), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98.0982, 70.6445), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98.4058, 94.1139), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98.365, 91.0012), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(97.7723, 102.7978), area.Point(96.39699857, 101.2039404)))
c.append(area.Vertex(1, area.Point(95.2489, 104.2102), area.Point(93.32039919, 97.80437333)))
c.append(area.Vertex(1, area.Point(89.131, 104.9806), area.Point(90.08592396, 87.88690971)))
c.append(area.Vertex(1, area.Point(84.1329, 103.9772), area.Point(89.59658577, 89.71156289)))
c.append(area.Vertex(1, area.Point(82.1771, 102.7472), area.Point(86.1337968, 98.62567091)))
c.append(area.Vertex(1, area.Point(81.5019, 101.379), area.Point(83.59910829, 101.1947419)))
c.append(area.Vertex(0, area.Point(81.5, 101.2999), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(81.6963, 86.3144), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(81.6349, 91.0012), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-3.0')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(127.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.15, 74.601), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(127.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.1191, 72.242), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(127.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.1875, 77.457), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.1827, 77.0932), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.2176, 79.7586), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.2029, 78.6338), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.2557, 82.6665), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.2176, 79.7586), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.3086, 86.6994), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.2176, 79.7586), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.3391, 89.0281), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.3086, 86.6994), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.4017, 93.8014), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.3778, 91.9818), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.3117, 86.9374), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.3614, 90.7324), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(128.1069, 102.4121), area.Point(126.5672833, 101.2423578)))
c.append(area.Vertex(1, area.Point(126.5961, 103.6336), area.Point(124.5350786, 99.53938752)))
c.append(area.Vertex(1, area.Point(123.7407, 104.6224), area.Point(121.4933725, 93.51546596)))
c.append(area.Vertex(1, area.Point(115.8115, 104.5196), area.Point(120.0108532, 86.46394757)))
c.append(area.Vertex(1, area.Point(113.223, 103.5333), area.Point(117.9979401, 94.89153523)))
c.append(area.Vertex(1, area.Point(112.159, 102.7285), area.Point(115.542501, 99.361023)))
c.append(area.Vertex(1, area.Point(111.5396, 101.6569), area.Point(113.6830271, 101.1327797)))
c.append(area.Vertex(1, area.Point(111.5, 101.2999), area.Point(113.1263601, 101.3001933)))
c.append(area.Vertex(0, area.Point(111.7531, 81.9872), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(111.6904, 86.7675), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(111.9233, 68.9957), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(111.8808, 72.242), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(112.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(127.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(127.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-3.5')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(157.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.0503, 66.9952), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.0569, 67.4938), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.1224, 72.4914), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.0962, 70.4936), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(158.1224, 72.4913), area.Point(202.2664349, 70.91332554)))
c.append(area.Vertex(0, area.Point(158.0962, 70.4936), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.1486, 74.4894), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.1224, 72.4914), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.1355, 73.4904), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.1339, 73.3739), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.2167, 79.6889), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.2009, 78.4848), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.2795, 84.4779), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.2533, 82.4802), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(157.7723, 102.7978), area.Point(156.3969986, 101.2039404)))
c.append(area.Vertex(1, area.Point(155.2489, 104.2102), area.Point(153.3203992, 97.80437333)))
c.append(area.Vertex(1, area.Point(149.131, 104.9806), area.Point(150.0853226, 87.88213432)))
c.append(area.Vertex(1, area.Point(144.1256, 103.9742), area.Point(149.5934462, 89.73004019)))
c.append(area.Vertex(1, area.Point(142.1771, 102.7472), area.Point(146.1287019, 98.63260702)))
c.append(area.Vertex(1, area.Point(141.5019, 101.379), area.Point(143.5973892, 101.1955903)))
c.append(area.Vertex(0, area.Point(141.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.8735, 72.8026), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.8514, 74.4894), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(141.8776, 72.4885), area.Point(186.0514232, 74.06753833)))
c.append(area.Vertex(-1, area.Point(141.8644, 73.4904), area.Point(271.3144054, 74.69486267)))
c.append(area.Vertex(0, area.Point(141.8841, 71.992), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(141.8775, 72.4914), area.Point(160.7709833, 72.49135)))
c.append(area.Vertex(0, area.Point(142.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.9037, 70.4914), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.9561, 66.4965), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.8776, 72.4885), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.9561, 66.4965), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.9299, 68.495), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.9561, 66.4965), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.9823, 64.4982), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(141.9921, 63.7488), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-4.0')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(187.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.0174, 64.4801), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(188.0304, 65.4703), area.Point(74.91863129, 65.47005)))
c.append(area.Vertex(0, area.Point(188.0174, 64.4801), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.0953, 70.4214), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.225, 80.3195), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.2158, 79.6211), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.2769, 84.2786), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.2509, 82.2991), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.3028, 86.2581), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.2158, 79.6211), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.4014, 93.7782), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.3028, 86.2581), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(187.7723, 102.7978), area.Point(186.3969986, 101.2039404)))
c.append(area.Vertex(1, area.Point(185.2489, 104.2102), area.Point(183.3203992, 97.80437333)))
c.append(area.Vertex(1, area.Point(179.131, 104.9806), area.Point(180.0853579, 87.88241453)))
c.append(area.Vertex(1, area.Point(174.1235, 103.9733), area.Point(179.5922608, 89.73725824)))
c.append(area.Vertex(1, area.Point(172.1771, 102.7472), area.Point(176.1260286, 98.63636275)))
c.append(area.Vertex(1, area.Point(171.5019, 101.379), area.Point(173.5974488, 101.1955609)))
c.append(area.Vertex(0, area.Point(171.5, 101.2999), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.6452, 90.2172), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.6089, 92.9873), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.6971, 86.2581), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.666, 88.6327), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.6894, 86.8457), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.6452, 90.2172), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8333, 75.8655), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.749, 82.2991), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8528, 74.3809), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8398, 75.3706), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8852, 71.9062), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8547, 74.2325), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8551, 74.2065), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8528, 74.3809), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8852, 71.9062), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.8787, 72.398), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.9955, 63.49), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.9695, 65.4698), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.9922, 63.7375), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.9566, 66.4593), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(172.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(171.9047, 70.419), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(172.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-2.0b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(217.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(218.0931, 70.2566), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(218.0453, 66.6113), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(218.1531, 74.8342), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(218.1522, 74.7647), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(218.5, 101.2999), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(217.715, 102.853), area.Point(216.2998978, 101.1628142)))
c.append(area.Vertex(1, area.Point(215.2294, 104.2169), area.Point(213.2631912, 97.68678502)))
c.append(area.Vertex(1, area.Point(208.7879, 104.9621), area.Point(210.0496702, 87.65610198)))
c.append(area.Vertex(1, area.Point(204.7059, 104.1947), area.Point(209.6181792, 89.30531983)))
c.append(area.Vertex(1, area.Point(202.249, 102.8186), area.Point(206.6440266, 97.85301864)))
c.append(area.Vertex(1, area.Point(201.5224, 101.5686), area.Point(203.7449075, 101.1128799)))
c.append(area.Vertex(1, area.Point(201.5, 101.2999), area.Point(203.1185558, 101.3002538)))
c.append(area.Vertex(0, area.Point(201.8561, 74.1224), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(201.78, 79.9321), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(201.8402, 75.338), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(201.8243, 76.5536), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(201.8943, 71.2147), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(201.8942, 71.2163), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(201.9323, 68.3106), area.Point(312.7111752, 71.21625)))
c.append(area.Vertex(0, area.Point(201.8561, 74.1224), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(201.8942, 71.2162), area.Point(91.03908909, 71.21625)))
c.append(area.Vertex(0, area.Point(201.8943, 71.2147), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(201.9799, 64.6788), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(201.9323, 68.3106), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(202.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-2.5b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(247.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(248.0982, 70.6445), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(248.0715, 68.6073), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(248.0982, 70.6445), area.Point(325.7731283, 68.6077)))
c.append(area.Vertex(0, area.Point(248.0981, 70.6398), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(248.2583, 82.8583), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(248.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(248.3123, 86.9852), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(248.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(247.7723, 102.7978), area.Point(246.3969986, 101.2039404)))
c.append(area.Vertex(1, area.Point(245.2489, 104.2102), area.Point(243.3203992, 97.80437333)))
c.append(area.Vertex(1, area.Point(239.131, 104.9806), area.Point(240.085924, 87.88690971)))
c.append(area.Vertex(1, area.Point(234.1329, 103.9772), area.Point(239.5965858, 89.71156289)))
c.append(area.Vertex(1, area.Point(232.1771, 102.7472), area.Point(236.1337968, 98.62567091)))
c.append(area.Vertex(1, area.Point(231.5019, 101.379), area.Point(233.5991083, 101.1947419)))
c.append(area.Vertex(0, area.Point(231.5, 101.2999), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(231.6622, 88.919), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(231.6581, 89.2344), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(231.7813, 79.8304), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(231.775, 80.3137), area.Point(250.2356072, 80.31265)))
c.append(area.Vertex(0, area.Point(231.7813, 79.8304), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(231.7682, 80.8354), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(231.8817, 72.1712), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(231.848, 74.7401), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(232.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-3.0b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(261.8382, 75.4929), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(261.7531, 81.9872), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(261.8382, 75.4929), area.Point(144.9194894, 77.20852832)))
c.append(area.Vertex(0, area.Point(261.8808, 72.242), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(261.7531, 81.9872), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(261.8382, 75.4929), area.Point(144.9194894, 77.20852832)))
a.append(c)
c = area.Curve()
c.append(area.Vertex(0, area.Point(277.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.0707, 68.5499), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(278.0836, 69.5329), area.Point(315.4959212, 68.55035)))
c.append(area.Vertex(0, area.Point(278.0443, 66.5337), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.1236, 72.5816), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.0575, 67.5403), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.0971, 70.5658), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.0978, 70.6188), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.0971, 70.5658), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.15, 74.601), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(277.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.2557, 82.6665), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.2029, 78.6338), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(278.1069, 102.4121), area.Point(276.5672833, 101.2423578)))
c.append(area.Vertex(1, area.Point(276.5961, 103.6336), area.Point(274.5350786, 99.53938752)))
c.append(area.Vertex(1, area.Point(273.7407, 104.6224), area.Point(271.4933725, 93.51546596)))
c.append(area.Vertex(1, area.Point(265.8115, 104.5196), area.Point(270.0108532, 86.46394757)))
c.append(area.Vertex(1, area.Point(263.223, 103.5333), area.Point(267.9979401, 94.89153523)))
c.append(area.Vertex(1, area.Point(262.159, 102.7285), area.Point(265.542501, 99.361023)))
c.append(area.Vertex(1, area.Point(261.5396, 101.6569), area.Point(263.6830271, 101.1327797)))
c.append(area.Vertex(1, area.Point(261.5, 101.2999), area.Point(263.1263601, 101.3001933)))
c.append(area.Vertex(0, area.Point(261.6904, 86.7675), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(261.668, 88.4815), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(262.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(277.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(277.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Tenor-3.5b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(307.9914, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(308.3057, 86.4756), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(308.2167, 79.6889), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(308.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(308.4104, 94.467), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(308.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(307.7723, 102.7978), area.Point(306.3969986, 101.2039404)))
c.append(area.Vertex(1, area.Point(305.2489, 104.2102), area.Point(303.3203992, 97.80437333)))
c.append(area.Vertex(1, area.Point(299.131, 104.9806), area.Point(300.0853226, 87.88213432)))
c.append(area.Vertex(1, area.Point(294.1256, 103.9742), area.Point(299.5934462, 89.73004019)))
c.append(area.Vertex(1, area.Point(292.1771, 102.7472), area.Point(296.1287019, 98.63260702)))
c.append(area.Vertex(1, area.Point(291.5019, 101.379), area.Point(293.5973892, 101.1955903)))
c.append(area.Vertex(0, area.Point(291.5, 101.3), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.8513, 74.4894), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.8317, 75.9876), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(292.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.9037, 70.4914), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.9561, 66.4965), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.8776, 72.4885), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.9561, 66.4965), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.9299, 68.495), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(292.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.9823, 64.4982), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(292.0085, 62.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(291.9921, 63.7488), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(292.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.5, 25), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.9914, 62.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 270,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-3.5b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(307.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.6506, 188.2662), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.6075, 185.3997), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.6936, 191.1249), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.6506, 188.2662), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.8165, 199.2979), area.Point(0, 0)))
c.append(area.Vertex(-1, area.Point(307.8028, 198.3897), area.Point(277.7594997, 199.2971)))
c.append(area.Vertex(0, area.Point(308, 211.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.8711, 202.9305), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.9082, 205.3981), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.8711, 202.9305), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(308, 211.5), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(307.3539, 212.8779), area.Point(306.0295462, 211.4164791)))
c.append(area.Vertex(1, area.Point(305.2907, 214.1252), area.Point(303.3333445, 208.5574202)))
c.append(area.Vertex(1, area.Point(301.0155, 214.9716), area.Point(300.3651236, 200.4662207)))
c.append(area.Vertex(1, area.Point(295.7974, 214.4781), area.Point(299.9624065, 198.2726992)))
c.append(area.Vertex(1, area.Point(293.3109, 213.4198), area.Point(297.7654906, 206.403832)))
c.append(area.Vertex(1, area.Point(292.1435, 212.16), area.Point(294.8543061, 210.8188064)))
c.append(area.Vertex(1, area.Point(292, 211.5), area.Point(293.6205825, 211.4932463)))
c.append(area.Vertex(0, area.Point(292.1339, 202.5902), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(292.1057, 204.47), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(292.3226, 190.0418), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(292.1868, 199.0767), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(293, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(307.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-3.0b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(277.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(278, 211.5), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(277.3434, 212.8886), area.Point(276.0221345, 211.4143024)))
c.append(area.Vertex(1, area.Point(275.291, 214.1251), area.Point(273.3136148, 208.5213601)))
c.append(area.Vertex(1, area.Point(270, 215), area.Point(270.2278253, 199.9415452)))
c.append(area.Vertex(1, area.Point(265.5905, 214.4203), area.Point(269.8839974, 198.8220495)))
c.append(area.Vertex(1, area.Point(263.0527, 213.2354), area.Point(267.4404386, 207.1479711)))
c.append(area.Vertex(1, area.Point(262.1448, 212.1629), area.Point(264.6985258, 210.9216335)))
c.append(area.Vertex(1, area.Point(262, 211.4999), area.Point(263.6211538, 211.4931503)))
c.append(area.Vertex(0, area.Point(262.3462, 188.4748), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(262.2637, 193.9601), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(262.4287, 182.9867), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(262.3462, 188.4748), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(262.4629, 180.711), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(262.4493, 181.6149), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(263, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(277, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(277.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-2.5b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(247.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.5304, 180.2765), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.5582, 182.1258), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.5443, 181.201), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.5718, 183.0283), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.5583, 182.1275), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.5583, 182.1275), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.6512, 188.3089), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.6278, 186.7526), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(248, 211.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.8948, 204.5083), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.934, 207.1144), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.8226, 199.7104), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.9922, 211.6542), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(247.2661, 212.9643), area.Point(245.9028262, 211.3524652)))
c.append(area.Vertex(1, area.Point(244.7955, 214.3014), area.Point(242.9496044, 207.939632)))
c.append(area.Vertex(1, area.Point(237.7988, 214.8649), area.Point(239.9818817, 198.2521154)))
c.append(area.Vertex(1, area.Point(233.8203, 213.7227), area.Point(238.9798394, 203.2510786)))
c.append(area.Vertex(1, area.Point(232.299, 212.448), area.Point(235.4756983, 210.2018995)))
c.append(area.Vertex(1, area.Point(232, 211.4999), area.Point(233.7137215, 211.4806452)))
c.append(area.Vertex(0, area.Point(232.2025, 198.0285), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(232.1966, 198.4267), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(232.2329, 196.0089), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(232.2005, 198.166), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(232.4416, 182.1277), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(232.4277, 183.0533), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(233, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(247.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-2.0b')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(217.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.5449, 181.2368), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.5449, 181.2378), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.6292, 186.8422), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.8259, 199.9258), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.8145, 199.1677), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(218, 211.5), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(217.353, 212.8787), area.Point(216.0292183, 211.4163093)))
c.append(area.Vertex(1, area.Point(215.297, 214.1228), area.Point(213.3352541, 208.5598952)))
c.append(area.Vertex(1, area.Point(211.0109, 214.9719), area.Point(210.3640808, 200.4646056)))
c.append(area.Vertex(1, area.Point(205.6152, 214.4274), area.Point(209.9491509, 198.4867763)))
c.append(area.Vertex(1, area.Point(203.1367, 213.2983), area.Point(207.5086461, 206.9862338)))
c.append(area.Vertex(1, area.Point(202.1504, 212.1756), area.Point(204.7656687, 210.8726535)))
c.append(area.Vertex(1, area.Point(202, 211.4999), area.Point(203.6166539, 211.494647)))
c.append(area.Vertex(0, area.Point(202.0468, 208.3822), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(202, 211.4999), area.Point(98.34655145, 208.38475)))
c.append(area.Vertex(-1, area.Point(202.0468, 208.3822), area.Point(98.35987502, 208.38495)))
c.append(area.Vertex(0, area.Point(202.0469, 208.3808), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(202.0937, 205.2649), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(202.0469, 208.3809), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(202.0468, 208.3822), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(203, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(217.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-4.0')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(187.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187.7725, 196.3746), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187.7586, 195.4487), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188, 211.4999), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187.8796, 203.4992), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(188, 211.4999), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(187.3503, 212.8815), area.Point(186.0274528, 211.4158673)))
c.append(area.Vertex(1, area.Point(185.2863, 214.1269), area.Point(183.3261751, 208.5453548)))
c.append(area.Vertex(1, area.Point(180, 215), area.Point(180.2340292, 199.9771082)))
c.append(area.Vertex(1, area.Point(175.6082, 214.4254), area.Point(179.8858082, 198.8017254)))
c.append(area.Vertex(1, area.Point(173.3011, 213.4132), area.Point(177.6873243, 206.5510893)))
c.append(area.Vertex(1, area.Point(172.1423, 212.1574), area.Point(174.8419917, 210.828783)))
c.append(area.Vertex(1, area.Point(172, 211.5), area.Point(173.6217748, 211.4930536)))
c.append(area.Vertex(0, area.Point(172.0541, 207.8974), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(172, 211.5), area.Point(52.12572936, 207.89815)))
c.append(area.Vertex(0, area.Point(173, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(187.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-3.5')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(157.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.5433, 181.1324), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.5901, 184.2436), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.557, 182.0421), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.6506, 188.2662), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.6075, 185.3997), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.6936, 191.1249), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.6506, 188.2662), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158, 211.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.8711, 202.9305), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.9082, 205.3981), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.8711, 202.9305), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(158, 211.5), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(157.3539, 212.8779), area.Point(156.0295462, 211.4164791)))
c.append(area.Vertex(1, area.Point(155.2907, 214.1252), area.Point(153.3333445, 208.5574202)))
c.append(area.Vertex(1, area.Point(151.0155, 214.9716), area.Point(150.3651236, 200.4662207)))
c.append(area.Vertex(1, area.Point(145.7974, 214.4781), area.Point(149.9624065, 198.2726992)))
c.append(area.Vertex(1, area.Point(143.3109, 213.4198), area.Point(147.7654906, 206.403832)))
c.append(area.Vertex(1, area.Point(142.1435, 212.16), area.Point(144.8543061, 210.8188064)))
c.append(area.Vertex(1, area.Point(142, 211.5), area.Point(143.6205825, 211.4932463)))
c.append(area.Vertex(0, area.Point(142.1339, 202.5902), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.1057, 204.47), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.1868, 199.0767), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.1339, 202.5902), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.3226, 190.0418), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.2679, 193.6838), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.3896, 185.5905), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.3312, 189.4685), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.3358, 189.1663), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(142.3226, 190.0418), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(143, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(157.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-3.0')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(127.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(128, 211.5), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(127.3434, 212.8886), area.Point(126.0221345, 211.4143024)))
c.append(area.Vertex(1, area.Point(125.291, 214.1251), area.Point(123.3136148, 208.5213601)))
c.append(area.Vertex(1, area.Point(120, 215), area.Point(120.2278253, 199.9415452)))
c.append(area.Vertex(1, area.Point(115.5905, 214.4203), area.Point(119.8839974, 198.8220495)))
c.append(area.Vertex(1, area.Point(113.0527, 213.2354), area.Point(117.4404386, 207.1479711)))
c.append(area.Vertex(1, area.Point(112.1448, 212.1629), area.Point(114.6985258, 210.9216335)))
c.append(area.Vertex(1, area.Point(112, 211.4999), area.Point(113.6211538, 211.4931503)))
c.append(area.Vertex(0, area.Point(112.3462, 188.4748), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(112.2637, 193.9601), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(112.5112, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(112.47, 180.2432), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(113, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(127, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(127.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-2.5')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(97.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5443, 181.2021), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5443, 181.201), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5698, 182.8915), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5583, 182.1277), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5718, 183.0283), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5583, 182.1275), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.5583, 182.1275), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98, 211.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.934, 207.1144), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(98, 211.4999), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(97.4882, 212.7317), area.Point(96.13667953, 211.4479336)))
c.append(area.Vertex(1, area.Point(95.7018, 213.955), area.Point(93.75771059, 209.2000215)))
c.append(area.Vertex(1, area.Point(90.8436, 214.9804), area.Point(90.45760026, 201.130156)))
c.append(area.Vertex(1, area.Point(84.8638, 214.1834), area.Point(89.90986039, 199.1547634)))
c.append(area.Vertex(1, area.Point(82.7253, 212.9562), area.Point(86.68295926, 208.5365021)))
c.append(area.Vertex(1, area.Point(82.0052, 211.6265), area.Point(84.0576311, 211.3748398)))
c.append(area.Vertex(1, area.Point(82, 211.4999), area.Point(83.43466451, 211.504379)))
c.append(area.Vertex(0, area.Point(82.1164, 203.7531), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.1051, 204.5083), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.3487, 188.3089), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.3303, 189.5315), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.3999, 184.9048), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.3651, 187.2181), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.386, 185.8301), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(82.3721, 186.7526), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(83, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(97.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-2.0')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(67.4887, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.5449, 181.2368), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.5449, 181.2378), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.6573, 188.7137), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.6011, 184.9764), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.7135, 192.451), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.6573, 188.7137), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.7697, 196.1883), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.7135, 192.451), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.8848, 203.8428), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.8145, 199.1677), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.8821, 203.6637), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.8145, 199.1677), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(68, 211.5), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(67.353, 212.8787), area.Point(66.0292183, 211.4163093)))
c.append(area.Vertex(1, area.Point(65.297, 214.1228), area.Point(63.33525413, 208.5598952)))
c.append(area.Vertex(1, area.Point(61.0109, 214.9719), area.Point(60.36408082, 200.4646056)))
c.append(area.Vertex(1, area.Point(55.6152, 214.4274), area.Point(59.94915092, 198.4867763)))
c.append(area.Vertex(1, area.Point(53.1367, 213.2983), area.Point(57.50864613, 206.9862338)))
c.append(area.Vertex(1, area.Point(52.1504, 212.1756), area.Point(54.76566867, 210.8726535)))
c.append(area.Vertex(1, area.Point(52, 211.5), area.Point(53.62531747, 211.4927176)))
c.append(area.Vertex(0, area.Point(52.0468, 208.3822), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(52.0469, 208.3807), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(52.5112, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(52.4486, 181.6646), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(53, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(67.4887, 177.5), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
attach.units = 1
attach.attach_begin()
nc.creator.stl = stl1
nc.creator.minz = -10000.0
nc.creator.material_allowance = 0
comment('Alto-1.5')
nc.creator.set_ocl_cutter(ocl.BallCutter(float(8), 1000)
)
spindle(8000)
feedrate_hv(2000, 200)
flush_nc()
depthparams = depth_params(float(15), float(4), float(4), float(4), float(0), float(0), float(0.1), None)
tool_diameter = float(8)
cutting_edge_angle = float(0)
a = area.Area()
entry_moves = []
c = area.Curve()
c.append(area.Vertex(0, area.Point(37.5738, 183.1615), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.6292, 186.8413), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.6154, 185.9245), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.7725, 196.3732), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.7406, 194.2523), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.9896, 211.6782), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(37.4585, 212.7657), area.Point(36.03572251, 211.3974252)))
c.append(area.Vertex(1, area.Point(36.1801, 213.7224), area.Point(34.0166443, 209.4989731)))
c.append(area.Vertex(1, area.Point(32.0555, 214.8824), area.Point(30.88204092, 202.7970449)))
c.append(area.Vertex(1, area.Point(25.1812, 214.2938), area.Point(30.0206446, 198.2106046)))
c.append(area.Vertex(1, area.Point(23.241, 213.3723), area.Point(27.31311839, 207.3018117)))
c.append(area.Vertex(1, area.Point(22.1207, 212.1058), area.Point(24.80400475, 210.8609843)))
c.append(area.Vertex(1, area.Point(22, 211.4999), area.Point(23.59281647, 211.4975707)))
c.append(area.Vertex(0, area.Point(22.1384, 202.2905), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(22.1065, 204.415), area.Point(-48.5254999, 202.29195)))
c.append(area.Vertex(1, area.Point(22.1385, 202.2866), area.Point(122.3141982, 204.8571589)))
c.append(area.Vertex(0, area.Point(22.1438, 201.9353), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(22.1385, 202.2866), area.Point(0, 0)))
c.append(area.Vertex(1, area.Point(22.1849, 199.2041), area.Point(124.5352453, 202.28635)))
c.append(area.Vertex(1, area.Point(22.1384, 202.2905), area.Point(-123.640259, 198.5506344)))
c.append(area.Vertex(0, area.Point(22.2875, 192.3747), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(22.3276, 189.7143), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(22.2875, 192.3747), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(22.5112, 177.5), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(22.474, 179.9789), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(23, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37, 145), area.Point(0, 0)))
c.append(area.Vertex(0, area.Point(37.5738, 183.1615), area.Point(0, 0)))
a.append(c)

a.Reorder()
entry_style = 1
area_funcs.pocket(a, tool_diameter/2, -4, 0.5, depthparams, 0, True, True, 90,False, None,'conventional')
rapid(z = depthparams.clearance_height)
attach.attach_end()
program_end()
HeeksCNC-Script-2.txt (59,994 bytes)

Kunda1

2017-05-08 04:31

administrator   ~0008910

Ping @sliptonic

Kunda1

2017-09-22 19:43

administrator   ~0010155

@mlampert do you mind weighing in?

mlampert

2017-09-23 00:00

developer   ~0010159

There has been no progress on the 3d surfacing front and I doubt that's gonna change any time soon - not in 0.17.

luispa

2017-11-28 21:20

reporter   ~0010497

OK. Is there any chance to use 3D pocket instead?

russ4262

2019-06-20 05:48

developer   ~0013275

Major improvements have been made to 3D Surface lately. Unfortunately, not all the parameters desired or mentioned here are available yet in the current version. The current version does, however, have other features not available in HeeksCNC.

It is my goal to continue improvement on the 3D Surface op. Goals include limiting scans to selected surfaces, improving the current Waste feature, adding additional cut patterns, and maybe more. Not sure I can "fit the kitchen sink," but I just might 'surface' it. @sliptonic.

If I think of it, I'll glance at the included script with this bug report and look into the features it contains and how they might be implemented in the FC version of the tool.

Issue History

Date Modified Username Field Change
2016-08-05 02:37 luispa New Issue
2016-08-05 02:37 luispa File Added: HeeksCNC-Script.txt
2016-08-05 02:38 luispa File Added: Freecad-Path.png
2016-08-05 02:39 luispa File Added: Heekscad.png
2016-08-05 02:39 luispa File Added: HeeksCNC-pocket.png
2016-08-05 02:43 luispa Note Added: 0007239
2017-05-07 14:53 Kunda1 Project FreeCAD => Path
2017-05-07 14:57 Kunda1 Note Added: 0008904
2017-05-07 14:57 Kunda1 Status new => feedback
2017-05-08 01:51 luispa File Added: Freecad-Path-2.png
2017-05-08 01:51 luispa File Added: Heekscad-2.png
2017-05-08 01:51 luispa File Added: HeeksCNC-pocket-2.png
2017-05-08 01:51 luispa File Added: HeeksCNC-Script-2.txt
2017-05-08 01:51 luispa Note Added: 0008909
2017-05-08 01:51 luispa Status feedback => new
2017-05-08 04:31 Kunda1 Note Added: 0008910
2017-09-22 19:43 Kunda1 Note Added: 0010155
2017-09-23 00:00 mlampert Note Added: 0010159
2017-11-28 21:20 luispa Note Added: 0010497
2017-11-28 22:20 Kunda1 File Deleted: HeeksCNC-pocket.png
2017-11-28 22:20 Kunda1 File Deleted: Heekscad.png
2017-11-28 22:20 Kunda1 File Deleted: Freecad-Path.png
2017-11-28 22:20 Kunda1 File Deleted: HeeksCNC-Script.txt
2019-01-23 00:48 sliptonic Status new => acknowledged
2019-01-23 00:48 sliptonic Product Version => 0.19
2019-01-23 00:48 sliptonic Target Version => 0.19
2019-06-20 05:48 russ4262 Note Added: 0013275