# freecad-python generated by Parametrix
# run the script with:
# freecad.cmd myScript.py

import FreeCAD as App
import Part

#print(sys.argv)
outFileName = "pastePusher"
if (len(sys.argv) == 3):
    outFileName = sys.argv[2]
print(f"outFileName: {outFileName}")

def ctr_face_pastePusher_faceFace_Fa0_Ctr0():
	P000 = App.Vector(10.6000, 3.0000, 0)
	P001 = App.Vector(10.6000, 5.0000, 0)
	S000 = Part.LineSegment(P000, P001)
	P002 = App.Vector(7.6000, 5.0000, 0)
	S001 = Part.LineSegment(P001, P002)
	P003 = App.Vector(2.0000, 10.6000, 0)
	P004 = App.Vector(7.6000, 16.2000, 0)
	S002 = Part.Arc(P002, P003, P004)
	P005 = App.Vector(10.6000, 16.2000, 0)
	S003 = Part.LineSegment(P004, P005)
	P006 = App.Vector(10.6000, 18.2000, 0)
	S004 = Part.LineSegment(P005, P006)
	P007 = App.Vector(7.6000, 18.2000, 0)
	S005 = Part.LineSegment(P006, P007)
	P008 = App.Vector(0.0000, 10.6000, 0)
	P009 = App.Vector(7.6000, 3.0000, 0)
	S006 = Part.Arc(P007, P008, P009)
	P010 = App.Vector(10.6000, 3.0000, 0)
	S007 = Part.LineSegment(P009, P000)
	aShape = Part.Shape([S000, S001, S002, S003, S004, S005, S006, S007])
	aWire = Part.Wire(aShape.Edges)
	subFace = Part.Face(aWire)
	subFace.check()
	return subFace

def face_pastePusher_faceFace_Fa0():
	FC000 = ctr_face_pastePusher_faceFace_Fa0_Ctr0()
	rOneFace = FC000
	rOneFace.check()
	return rOneFace

def pastePusher_faceFace():
	FA000 = face_pastePusher_faceFace_Fa0()
	rOneFig = FA000
	rOneFig.check()
	return rOneFig

def ctr_face_pastePusher_faceMid_Fa0_Ctr0():
	P000 = App.Vector(0.0000, 3.0000, 0)
	P001 = App.Vector(4.0000, 0.0000, 0)
	P002 = App.Vector(8.0000, 3.0000, 0)
	S000 = Part.Arc(P000, P001, P002)
	P003 = App.Vector(8.0000, 6.0000, 0)
	S001 = Part.LineSegment(P002, P003)
	P004 = App.Vector(4.0000, 10.0000, 0)
	P005 = App.Vector(0.0000, 6.0000, 0)
	S002 = Part.Arc(P003, P004, P005)
	P006 = App.Vector(0.0000, 3.0000, 0)
	S003 = Part.LineSegment(P005, P000)
	aShape = Part.Shape([S000, S001, S002, S003])
	aWire = Part.Wire(aShape.Edges)
	subFace = Part.Face(aWire)
	subFace.check()
	return subFace

def face_pastePusher_faceMid_Fa0():
	FC000 = ctr_face_pastePusher_faceMid_Fa0_Ctr0()
	rOneFace = FC000
	rOneFace.check()
	return rOneFace

def ctr_face_pastePusher_faceMid_Fa1_Ctr0():
	P000 = App.Vector(0.0000, 18.2000, 0)
	P001 = App.Vector(4.0000, 21.2000, 0)
	P002 = App.Vector(8.0000, 18.2000, 0)
	S000 = Part.Arc(P000, P001, P002)
	P003 = App.Vector(8.0000, 15.2000, 0)
	S001 = Part.LineSegment(P002, P003)
	P004 = App.Vector(4.0000, 11.2000, 0)
	P005 = App.Vector(0.0000, 15.2000, 0)
	S002 = Part.Arc(P003, P004, P005)
	P006 = App.Vector(0.0000, 18.2000, 0)
	S003 = Part.LineSegment(P005, P000)
	aShape = Part.Shape([S000, S001, S002, S003])
	aWire = Part.Wire(aShape.Edges)
	subFace = Part.Face(aWire)
	subFace.check()
	return subFace

def face_pastePusher_faceMid_Fa1():
	FC000 = ctr_face_pastePusher_faceMid_Fa1_Ctr0()
	rOneFace = FC000
	rOneFace.check()
	return rOneFace

def pastePusher_faceMid():
	FA000 = face_pastePusher_faceMid_Fa0()
	FA001 = face_pastePusher_faceMid_Fa1()
	rOneFig = FA000.fuse([FA001])
	rOneFig.check()
	return rOneFig

def ctr_face_pastePusher_faceSide_Fa0_Ctr0():
	P000 = App.Vector(0.0000, 3.0000, 0)
	P001 = App.Vector(4.0000, 0.0000, 0)
	P002 = App.Vector(8.0000, 3.0000, 0)
	S000 = Part.Arc(P000, P001, P002)
	P003 = App.Vector(8.0000, 10.1000, 0)
	S001 = Part.LineSegment(P002, P003)
	P004 = App.Vector(7.0000, 10.1000, 0)
	S002 = Part.LineSegment(P003, P004)
	P005 = App.Vector(6.8410, 10.6301, 0)
	S003 = Part.LineSegment(P004, P005)
	P006 = App.Vector(5.5000, 11.6279, 0)
	P007 = App.Vector(4.1590, 10.6301, 0)
	S004 = Part.Arc(P005, P006, P007)
	P008 = App.Vector(3.4578, 8.2928, 0)
	S005 = Part.LineSegment(P007, P008)
	P009 = App.Vector(2.5000, 7.5801, 0)
	P010 = App.Vector(1.5422, 8.2928, 0)
	S006 = Part.Arc(P008, P009, P010)
	P011 = App.Vector(1.0000, 10.1000, 0)
	S007 = Part.LineSegment(P010, P011)
	P012 = App.Vector(0.0000, 10.1000, 0)
	S008 = Part.LineSegment(P011, P012)
	P013 = App.Vector(0.0000, 3.0000, 0)
	S009 = Part.LineSegment(P012, P000)
	aShape = Part.Shape([S000, S001, S002, S003, S004, S005, S006, S007, S008, S009])
	aWire = Part.Wire(aShape.Edges)
	subFace = Part.Face(aWire)
	subFace.check()
	return subFace

def face_pastePusher_faceSide_Fa0():
	FC000 = ctr_face_pastePusher_faceSide_Fa0_Ctr0()
	rOneFace = FC000
	rOneFace.check()
	return rOneFace

def ctr_face_pastePusher_faceSide_Fa1_Ctr0():
	P000 = App.Vector(0.0000, 18.2000, 0)
	P001 = App.Vector(4.0000, 21.2000, 0)
	P002 = App.Vector(8.0000, 18.2000, 0)
	S000 = Part.Arc(P000, P001, P002)
	P003 = App.Vector(8.0000, 11.1000, 0)
	S001 = Part.LineSegment(P002, P003)
	P004 = App.Vector(7.0000, 11.1000, 0)
	S002 = Part.LineSegment(P003, P004)
	P005 = App.Vector(6.4578, 12.9072, 0)
	S003 = Part.LineSegment(P004, P005)
	P006 = App.Vector(5.5000, 13.6199, 0)
	P007 = App.Vector(4.5422, 12.9072, 0)
	S004 = Part.Arc(P005, P006, P007)
	P008 = App.Vector(3.8410, 10.5699, 0)
	S005 = Part.LineSegment(P007, P008)
	P009 = App.Vector(2.5000, 9.5721, 0)
	P010 = App.Vector(1.1590, 10.5699, 0)
	S006 = Part.Arc(P008, P009, P010)
	P011 = App.Vector(1.0000, 11.1000, 0)
	S007 = Part.LineSegment(P010, P011)
	P012 = App.Vector(0.0000, 11.1000, 0)
	S008 = Part.LineSegment(P011, P012)
	P013 = App.Vector(0.0000, 18.2000, 0)
	S009 = Part.LineSegment(P012, P000)
	aShape = Part.Shape([S000, S001, S002, S003, S004, S005, S006, S007, S008, S009])
	aWire = Part.Wire(aShape.Edges)
	subFace = Part.Face(aWire)
	subFace.check()
	return subFace

def face_pastePusher_faceSide_Fa1():
	FC000 = ctr_face_pastePusher_faceSide_Fa1_Ctr0()
	rOneFace = FC000
	rOneFace.check()
	return rOneFace

def pastePusher_faceSide():
	FA000 = face_pastePusher_faceSide_Fa0()
	FA001 = face_pastePusher_faceSide_Fa1()
	rOneFig = FA000.fuse([FA001])
	rOneFig.check()
	return rOneFig

def ctr_face_pastePusher_faceSideB_Fa0_Ctr0():
	P000 = App.Vector(0.0000, 3.0000, 0)
	P001 = App.Vector(4.0000, 0.0000, 0)
	P002 = App.Vector(8.0000, 3.0000, 0)
	S000 = Part.Arc(P000, P001, P002)
	P003 = App.Vector(8.0000, 10.1000, 0)
	S001 = Part.LineSegment(P002, P003)
	P004 = App.Vector(4.0000, 10.1000, 0)
	S002 = Part.LineSegment(P003, P004)
	P005 = App.Vector(3.4578, 8.2928, 0)
	S003 = Part.LineSegment(P004, P005)
	P006 = App.Vector(2.5000, 7.5801, 0)
	P007 = App.Vector(1.5422, 8.2928, 0)
	S004 = Part.Arc(P005, P006, P007)
	P008 = App.Vector(1.0000, 10.1000, 0)
	S005 = Part.LineSegment(P007, P008)
	P009 = App.Vector(0.0000, 10.1000, 0)
	S006 = Part.LineSegment(P008, P009)
	P010 = App.Vector(0.0000, 3.0000, 0)
	S007 = Part.LineSegment(P009, P000)
	aShape = Part.Shape([S000, S001, S002, S003, S004, S005, S006, S007])
	aWire = Part.Wire(aShape.Edges)
	subFace = Part.Face(aWire)
	subFace.check()
	return subFace

def face_pastePusher_faceSideB_Fa0():
	FC000 = ctr_face_pastePusher_faceSideB_Fa0_Ctr0()
	rOneFace = FC000
	rOneFace.check()
	return rOneFace

def ctr_face_pastePusher_faceSideB_Fa1_Ctr0():
	P000 = App.Vector(0.0000, 18.2000, 0)
	P001 = App.Vector(4.0000, 21.2000, 0)
	P002 = App.Vector(8.0000, 18.2000, 0)
	S000 = Part.Arc(P000, P001, P002)
	P003 = App.Vector(8.0000, 11.1000, 0)
	S001 = Part.LineSegment(P002, P003)
	P004 = App.Vector(7.0000, 11.1000, 0)
	S002 = Part.LineSegment(P003, P004)
	P005 = App.Vector(6.4578, 12.9072, 0)
	S003 = Part.LineSegment(P004, P005)
	P006 = App.Vector(5.5000, 13.6199, 0)
	P007 = App.Vector(4.5422, 12.9072, 0)
	S004 = Part.Arc(P005, P006, P007)
	P008 = App.Vector(4.0000, 11.1000, 0)
	S005 = Part.LineSegment(P007, P008)
	P009 = App.Vector(0.0000, 11.1000, 0)
	S006 = Part.LineSegment(P008, P009)
	P010 = App.Vector(0.0000, 18.2000, 0)
	S007 = Part.LineSegment(P009, P000)
	aShape = Part.Shape([S000, S001, S002, S003, S004, S005, S006, S007])
	aWire = Part.Wire(aShape.Edges)
	subFace = Part.Face(aWire)
	subFace.check()
	return subFace

def face_pastePusher_faceSideB_Fa1():
	FC000 = ctr_face_pastePusher_faceSideB_Fa1_Ctr0()
	rOneFace = FC000
	rOneFace.check()
	return rOneFace

def pastePusher_faceSideB():
	FA000 = face_pastePusher_faceSideB_Fa0()
	FA001 = face_pastePusher_faceSideB_Fa1()
	rOneFig = FA000.fuse([FA001])
	rOneFig.check()
	return rOneFig

def fex_subpax_pastePusher_face():
	FIG = pastePusher_faceFace()
	VEX = FIG.extrude(App.Vector(0, 0, 8))
	VR1 = VEX.rotate(App.Vector(0, 0, 0), App.Vector(1, 0, 0), 0.0000)
	VR2 = VR1.rotate(App.Vector(0, 0, 0), App.Vector(0, 1, 0), 0.0000)
	VR3 = VR2.rotate(App.Vector(0, 0, 0), App.Vector(0, 0, 1), 0.0000)
	VFP = VR3.translate(App.Vector(0.0000, 0.0000, 0.0000))
	return VFP
subpax_pastePusher_face = fex_subpax_pastePusher_face()

def fex_subpax_pastePusher_b1():
	FIG = pastePusher_faceSide()
	VEX = FIG.extrude(App.Vector(0, 0, 6))
	VR1 = VEX.rotate(App.Vector(0, 0, 0), App.Vector(1, 0, 0), 0.0000)
	VR2 = VR1.rotate(App.Vector(0, 0, 0), App.Vector(0, 1, 0), 90.0000)
	VR3 = VR2.rotate(App.Vector(0, 0, 0), App.Vector(0, 0, 1), 0.0000)
	VFP = VR3.translate(App.Vector(10.6000, 0.0000, 8.0000))
	return VFP
subpax_pastePusher_b1 = fex_subpax_pastePusher_b1()

def fex_subpax_pastePusher_b2():
	FIG = pastePusher_faceSideB()
	VEX = FIG.extrude(App.Vector(0, 0, 1))
	VR1 = VEX.rotate(App.Vector(0, 0, 0), App.Vector(1, 0, 0), 0.0000)
	VR2 = VR1.rotate(App.Vector(0, 0, 0), App.Vector(0, 1, 0), 90.0000)
	VR3 = VR2.rotate(App.Vector(0, 0, 0), App.Vector(0, 0, 1), 0.0000)
	VFP = VR3.translate(App.Vector(16.6000, 0.0000, 8.0000))
	return VFP
subpax_pastePusher_b2 = fex_subpax_pastePusher_b2()

def fex_subpax_pastePusher_b3():
	FIG = pastePusher_faceMid()
	VEX = FIG.extrude(App.Vector(0, 0, 40))
	VR1 = VEX.rotate(App.Vector(0, 0, 0), App.Vector(1, 0, 0), 0.0000)
	VR2 = VR1.rotate(App.Vector(0, 0, 0), App.Vector(0, 1, 0), 90.0000)
	VR3 = VR2.rotate(App.Vector(0, 0, 0), App.Vector(0, 0, 1), 0.0000)
	VFP = VR3.translate(App.Vector(17.6000, 0.0000, 8.0000))
	return VFP
subpax_pastePusher_b3 = fex_subpax_pastePusher_b3()

def fex_subpax_pastePusher_b4():
	FIG = pastePusher_faceSideB()
	VEX = FIG.extrude(App.Vector(0, 0, 1))
	VR1 = VEX.rotate(App.Vector(0, 0, 0), App.Vector(1, 0, 0), 0.0000)
	VR2 = VR1.rotate(App.Vector(0, 0, 0), App.Vector(0, 1, 0), 90.0000)
	VR3 = VR2.rotate(App.Vector(0, 0, 0), App.Vector(0, 0, 1), 0.0000)
	VFP = VR3.translate(App.Vector(57.6000, 0.0000, 8.0000))
	return VFP
subpax_pastePusher_b4 = fex_subpax_pastePusher_b4()

def fex_subpax_pastePusher_b5():
	FIG = pastePusher_faceSide()
	VEX = FIG.extrude(App.Vector(0, 0, 6))
	VR1 = VEX.rotate(App.Vector(0, 0, 0), App.Vector(1, 0, 0), 0.0000)
	VR2 = VR1.rotate(App.Vector(0, 0, 0), App.Vector(0, 1, 0), 90.0000)
	VR3 = VR2.rotate(App.Vector(0, 0, 0), App.Vector(0, 0, 1), 0.0000)
	VFP = VR3.translate(App.Vector(58.6000, 0.0000, 8.0000))
	return VFP
subpax_pastePusher_b5 = fex_subpax_pastePusher_b5()

def fvol_pax_pastePusher():
	V000 = subpax_pastePusher_face
	V001 = V000.fuse(subpax_pastePusher_b1)
	V002 = V001.fuse(subpax_pastePusher_b2)
	V003 = V002.fuse(subpax_pastePusher_b3)
	V004 = V003.fuse(subpax_pastePusher_b4)
	V005 = V004.fuse(subpax_pastePusher_b5)
	VFC = V005.removeSplitter()
	return VFC
pax_pastePusher = fvol_pax_pastePusher()


pax_pastePusher.check()
#pax_pastePusher.exportBrep(f"{outFileName}.brep")
#pax_pastePusher.exportIges(f"{outFileName}.igs")
#pax_pastePusher.exportStep(f"{outFileName}.stp")
pax_pastePusher.exportStl(f"{outFileName}.stl")

