#! hsmkernel
# This is a generated file - do NOT edit
#
# Generator:  HSMWorks 2023 R0.44039
# Date:       18-7-2023 12:30:14
# Host:       DESKTOP-AHHEV4G
# Document:   table-y-support-plate.SLDASM
# Operation:  2D Contour1

import hsmkernel as kernel
from hsmkernel import Arc

class Job(kernel.Operation):

	def onRun(self):

		contour2D1 = kernel.Contour2DOp(self, "contour2D1")
		# tool definition
		contour2D1.setParameter("cutterDiameter", 20.0)
		contour2D1.setParameter("cornerRadius", 0.0)
		contour2D1.setParameter("taperAngle", 0.0)
		contour2D1.setParameter("fluteLength", 25.0)
		contour2D1.setParameter("shoulderLength", 25.0)
		contour2D1.setParameter("bodyLength", 27.5)
		contour2D1.setParameter("shaftDiameter", 20.0)
		contour2D1.setParameter("shaft", '[[0, 10], [2.5, 10]]')
		contour2D1.setParameter("holder", '[[0, 19.05], [3.7592, 25.019], [24.9936, 25.019], [24.9936, 19.939], [29.464, 19.939], [31.75, 22.225], [42.545, 22.225], [43.815, 23.495], [43.815, 31.0134], [44.577, 31.7754], [48.26, 31.7754], [50.2666, 28.1305], [53.2638, 28.1305], [55.2704, 31.7754], [58.9026, 31.7754], [59.6646, 31.0134], [59.6646, 22.225], [62.8396, 22.225]]')
		# general
		contour2D1.setParameter("tolerance", 0.01)
		contour2D1.setParameter("smoothTransitions", True)
		contour2D1.setParameter("machiningBoundaryOffset", 0.0)
		contour2D1.setParameter("contourZ", -30.0)
		# contour offset
		contour2D1.setParameter("applyFinalSmoothingDeviation", False)
		contour2D1.setParameter("maximumFinishingSteps", 1)
		contour2D1.setParameter("finishingSmoothingDeviation", 0.0)
		contour2D1.setParameter("maximumFinishingStepover", 2.0)
		contour2D1.setParameter("minimumFinishingStepover", 0.5)
		contour2D1.setParameter("roughingSmoothingDeviation", 0.1)
		contour2D1.setParameter("maximumRoughingSteps", 0)
		contour2D1.setParameter("maximumRoughingStepover", 19.0)
		contour2D1.setParameter("minimumRoughingStepover", 1.9)
		contour2D1.setParameter("ensureCutRadius", 9.75)
		contour2D1.setParameter("approachMode", 0)
		contour2D1.setParameter("spiralCircularPockets", True)
		# finishing passes
		contour2D1.setParameter("repeatPass", False)
		contour2D1.setParameter("finishingOverlap", 0.0)
		# compensation
		contour2D1.setParameter("rightCompensation", False)
		contour2D1.setParameter("bothWays", False)
		contour2D1.setParameter("finishingCompensationType", 0)
		contour2D1.setParameter("compensationDeltaRadius", 0.0)
		contour2D1.setParameter("stockHeightAbsolute", True)
		contour2D1.setParameter("stockHeight", 0.0)
		contour2D1.setParameter("depthAbsolute", True)
		contour2D1.setParameter("depth", -31.0)
		# multiple depths
		contour2D1.setParameter("maximumStepdown", 0.0)
		contour2D1.setParameter("finishLevels", 0)
		contour2D1.setParameter("finishZStepdown", 0.0)
		contour2D1.setParameter("onlyFinishFinal", False)
		contour2D1.setParameter("evenZSteps", False)
		contour2D1.setParameter("wallTaperAngle", 0.0)
		contour2D1.setParameter("orderByStep", False)
		contour2D1.setParameter("preserveOrder", False)
		contour2D1.setParameter("backoffDistance", 0.0)
		contour2D1.setParameter("cornerMode", 0)
		# leads
		contour2D1.setParameter("leadInRadius", 2.0)
		contour2D1.setParameter("leadOutRadius", 2.0)
		contour2D1.setParameter("leadInVerticalRadius", 2.0)
		contour2D1.setParameter("leadOutVerticalRadius", 2.0)
		contour2D1.setParameter("leadInSweep", 90.0)
		contour2D1.setParameter("leadOutSweep", 90.0)
		contour2D1.setParameter("leadInDistance", 2.0)
		contour2D1.setParameter("leadOutDistance", 2.0)
		contour2D1.setParameter("leadInPerpendicular", False)
		contour2D1.setParameter("leadOutPerpendicular", False)
		# global stock to leave
		contour2D1.setParameter("radialStockToLeave", 0.0)
		contour2D1.setParameter("axialStockToLeave", 0.0)
		# fragments
		contour2D1.setParameter("minimumFragmentLength", 0.0)
		contour2D1.setParameter("fragmentExtensionDistance", 0.0)
		# ordering
		contour2D1.setParameter("linkByZLevel", False)
		contour2D1.setParameter("linkDirection", 0)
		contour2D1.setParameter("orderByIslands", True)
		# linking
		contour2D1.setParameter("zClearance", 60.0)
		contour2D1.setParameter("zClearanceAbsolute", True)
		contour2D1.setParameter("zRetract", 50.0)
		contour2D1.setParameter("zRetractAbsolute", True)
		contour2D1.setParameter("useZFeed", True)
		contour2D1.setParameter("zFeed", 5.0)
		contour2D1.setParameter("zFeedAbsolute", True)
		contour2D1.setParameter("retractStrategy", 0)
		contour2D1.setParameter("allowRapidRetract", True)
		contour2D1.setParameter("safeDistance", 2.0)
		contour2D1.setParameter("stayDownDistance", 50.0)
		contour2D1.setParameter("liftHeight", 0.0)
		contour2D1.setParameter("thinningTolerance", 0.0001)
		# ramping
		contour2D1.setParameter("rampZClearance", 0.0)
		contour2D1.setParameter("maximumRampZStepdown", 25.0)
		contour2D1.setParameter("helicalRampDiameter", 0.0)
		contour2D1.setParameter("maximumRampAngle", 2.0)
		contour2D1.setParameter("minimumRampDiameter", 0.0)
		contour2D1.setParameter("allowPlunging", True)
		contour2D1.setParameter("allowHelicalRamps", False)
		contour2D1.setParameter("allowNonSmoothContourRamps", False)
		contour2D1.setParameter("allowContourRamps", False)
		contour2D1.setParameter("allowZigZagRamps", False)
		contour2D1.setParameter("smoothRamp", False)
		contour2D1.setParameter("leadEndDistance", 0.0)
		contour2D1.setParameter("alwaysMakeContourRamp", False)

		contour2 = [
			(0.80000000000006821, -500.79999999999995),
			(0.80000000000006821, -0.79999999999995453),
			(600.80000000000007, -0.79999999999995453),
			(600.79999999999995, -500.79999999999995),
			(0.80000000000006821, -500.79999999999995),
		]
		contour2D1.addContour(contour2)
		contour2D1.setParameter("passesGUID", "'{25d0178c-3b27-49ae-96fe-2c149b7808a5}'")
		contour2D1.run()

if __name__ == '__main__':
	job = Job()
	job.run()
