Feature-Based Machining and Tool Selection
Overview
A machining program is usually written around the features of a part: the holes get drilled, the pockets get cleared, the bosses get profiled. A person looks at a drawing and thinks “two 8 mm holes, one pocket, a fillet here” — then reaches for a drill of the right diameter and an end mill that fits the pocket. Feature-based machining automates exactly that: Rasmah reads the exact boundary representation (BRep) of the part, recognizes the machinable features (cylindrical holes and bosses, planar pockets, fillets, slots, cones), and turns each one into the tool and toolpath that make it.
The value is in the round trip from geometry to a ready-to-run program. The steps — recognize, choose a tool, generate the toolpath, compensate for a worn tool — are all closed-form and checkable: a hole’s radius is half its diameter, a pocket’s area is the product of its side lengths, and a worn cutter’s diameter is its nominal diameter minus twice the wear.
using Rasmah
using LinearAlgebra
# Geometry is stored in SI (metres); these helpers render millimetres.
mm(v) = round(uconvert(u"mm", v); digits = 1)
mm2(v) = round(uconvert(u"mm^2", v); digits = 0)
mm3(v) = round(uconvert(u"mm^3", v); digits = 0)mm3 (generic function with 1 method)
A part to recognize
Start with a part that has a recognizable feature set: the 80 × 60 × 20 mm adapter plate with four Ø6.8 mounting holes — the same part the Dexel stock simulation tutorial machines from a billet. brep builds the exact topological model, and difference subtracts each hole:
# 1. shape → 2. exact BRep
plate = box(0.080, 0.060, 0.020)
hole = cylinder(0.0034, 0.020) # Ø6.8, through the plate
model = difference(
difference(
difference(difference(plate, translate(hole, 0.032, 0.022, 0.0)),
translate(hole, -0.032, 0.022, 0.0)),
translate(hole, 0.032, -0.022, 0.0)),
translate(hole, -0.032, -0.022, 0.0))
part = brep(model)BRep{Vertex, Edge{CircleCurve{Float64}}, Loop, Face, Shell, Solid}(Vertex[], Edge{CircleCurve{Float64}}[Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0])), Edge{CircleCurve{Float64}}(0, 0, CircleCurve{Float64}(1.0, 0.0, 0.0, 0.0, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))], Loop[Loop([1]), Loop([2]), Loop([3]), Loop([4]), Loop([5]), Loop([6]), Loop([7]), Loop([8]), Loop([9]), Loop([10])], Face[Face{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.8813330792224763), (0.9368060796608388, 0.8949999999999999), (0.9300520382004283, 0.9067360509339042), (0.92125, 0.9157414395477849), (0.9109998094168571, 0.9214024634897139), (0.9, 0.9233333333333333), (0.8890001905831428, 0.9214024634897139), (0.87875, 0.9157414395477849), (0.8699479617995717, 0.9067360509339042) … (0.8631939203391614, 0.8383333333333334), (0.8699479617995717, 0.8265972823994291), (0.87875, 0.8175918937855485), (0.8890001905831428, 0.8119308698436195), (0.9, 0.8099999999999999), (0.9109998094168571, 0.8119308698436195), (0.92125, 0.8175918937855485), (0.9300520382004283, 0.8265972823994291), (0.9368060796608386, 0.8383333333333334), (0.9410518476172854, 0.852000254110857)])], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.8813330792224763), (0.9368060796608388, 0.8949999999999999), (0.9300520382004283, 0.9067360509339042), (0.92125, 0.9157414395477849), (0.9109998094168571, 0.9214024634897139), (0.9, 0.9233333333333333), (0.8890001905831428, 0.9214024634897139), (0.87875, 0.9157414395477849), (0.8699479617995717, 0.9067360509339042) … (0.8631939203391614, 0.8383333333333334), (0.8699479617995717, 0.8265972823994291), (0.87875, 0.8175918937855485), (0.8890001905831428, 0.8119308698436195), (0.9, 0.8099999999999999), (0.9109998094168571, 0.8119308698436195), (0.92125, 0.8175918937855485), (0.9300520382004283, 0.8265972823994291), (0.9368060796608386, 0.8383333333333334), (0.9410518476172854, 0.852000254110857)])], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), false, 0.0, 1.0, 0.0, 1.0))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.8813330792224763), (0.9368060796608388, 0.8949999999999999), (0.9300520382004283, 0.9067360509339042), (0.92125, 0.9157414395477849), (0.9109998094168571, 0.9214024634897139), (0.9, 0.9233333333333333), (0.8890001905831428, 0.9214024634897139), (0.87875, 0.9157414395477849), (0.8699479617995717, 0.9067360509339042) … (0.8631939203391614, 0.8383333333333334), (0.8699479617995717, 0.8265972823994291), (0.87875, 0.8175918937855485), (0.8890001905831428, 0.8119308698436195), (0.9, 0.8099999999999999), (0.9109998094168571, 0.8119308698436195), (0.92125, 0.8175918937855485), (0.9300520382004283, 0.8265972823994291), (0.9368060796608386, 0.8383333333333334), (0.9410518476172854, 0.852000254110857)])], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.8813330792224763), (0.9368060796608388, 0.8949999999999999), (0.9300520382004283, 0.9067360509339042), (0.92125, 0.9157414395477849), (0.9109998094168571, 0.9214024634897139), (0.9, 0.9233333333333333), (0.8890001905831428, 0.9214024634897139), (0.87875, 0.9157414395477849), (0.8699479617995717, 0.9067360509339042) … (0.8631939203391614, 0.8383333333333334), (0.8699479617995717, 0.8265972823994291), (0.87875, 0.8175918937855485), (0.8890001905831428, 0.8119308698436195), (0.9, 0.8099999999999999), (0.9109998094168571, 0.8119308698436195), (0.92125, 0.8175918937855485), (0.9300520382004283, 0.8265972823994291), (0.9368060796608386, 0.8383333333333334), (0.9410518476172854, 0.852000254110857)])], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), false, 0.0, 1.0, 0.0, 1.0))), false, 0.0, 1.0, 0.0, 1.0))), false, 0.0, 1.0, 0.0, 1.0), [1]), Face{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.852000254110857), (0.9368060796608388, 0.8383333333333334), (0.9300520382004283, 0.8265972823994291), (0.92125, 0.8175918937855485), (0.9109998094168571, 0.8119308698436195), (0.9, 0.8099999999999999), (0.8890001905831428, 0.8119308698436195), (0.87875, 0.8175918937855485), (0.8699479617995717, 0.8265972823994291) … (0.8631939203391614, 0.8949999999999999), (0.8699479617995717, 0.9067360509339042), (0.87875, 0.9157414395477849), (0.8890001905831428, 0.9214024634897139), (0.9, 0.9233333333333333), (0.9109998094168571, 0.9214024634897139), (0.92125, 0.9157414395477849), (0.9300520382004283, 0.9067360509339042), (0.9368060796608386, 0.8949999999999999), (0.9410518476172854, 0.8813330792224763)])], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.852000254110857), (0.9368060796608388, 0.8383333333333334), (0.9300520382004283, 0.8265972823994291), (0.92125, 0.8175918937855485), (0.9109998094168571, 0.8119308698436195), (0.9, 0.8099999999999999), (0.8890001905831428, 0.8119308698436195), (0.87875, 0.8175918937855485), (0.8699479617995717, 0.8265972823994291) … (0.8631939203391614, 0.8949999999999999), (0.8699479617995717, 0.9067360509339042), (0.87875, 0.9157414395477849), (0.8890001905831428, 0.9214024634897139), (0.9, 0.9233333333333333), (0.9109998094168571, 0.9214024634897139), (0.92125, 0.9157414395477849), (0.9300520382004283, 0.9067360509339042), (0.9368060796608386, 0.8949999999999999), (0.9410518476172854, 0.8813330792224763)])], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), true, 0.0, 1.0, 0.0, 1.0))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.852000254110857), (0.9368060796608388, 0.8383333333333334), (0.9300520382004283, 0.8265972823994291), (0.92125, 0.8175918937855485), (0.9109998094168571, 0.8119308698436195), (0.9, 0.8099999999999999), (0.8890001905831428, 0.8119308698436195), (0.87875, 0.8175918937855485), (0.8699479617995717, 0.8265972823994291) … (0.8631939203391614, 0.8949999999999999), (0.8699479617995717, 0.9067360509339042), (0.87875, 0.9157414395477849), (0.8890001905831428, 0.9214024634897139), (0.9, 0.9233333333333333), (0.9109998094168571, 0.9214024634897139), (0.92125, 0.9157414395477849), (0.9300520382004283, 0.9067360509339042), (0.9368060796608386, 0.8949999999999999), (0.9410518476172854, 0.8813330792224763)])], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[ParamLoop{Float64}([(0.9424999999999999, 0.8666666666666667), (0.9410518476172854, 0.852000254110857), (0.9368060796608388, 0.8383333333333334), (0.9300520382004283, 0.8265972823994291), (0.92125, 0.8175918937855485), (0.9109998094168571, 0.8119308698436195), (0.9, 0.8099999999999999), (0.8890001905831428, 0.8119308698436195), (0.87875, 0.8175918937855485), (0.8699479617995717, 0.8265972823994291) … (0.8631939203391614, 0.8949999999999999), (0.8699479617995717, 0.9067360509339042), (0.87875, 0.9157414395477849), (0.8890001905831428, 0.9214024634897139), (0.9, 0.9233333333333333), (0.9109998094168571, 0.9214024634897139), (0.92125, 0.9157414395477849), (0.9300520382004283, 0.9067360509339042), (0.9368060796608386, 0.8949999999999999), (0.9410518476172854, 0.8813330792224763)])], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, 0.01], [0.08, 0.0, 0.0], [0.0, 0.06, 0.0]))), true, 0.0, 1.0, 0.0, 1.0))), true, 0.0, 1.0, 0.0, 1.0))), true, 0.0, 1.0, 0.0, 1.0), [1]), Face{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), true, 0.0, 1.0, 0.0, 1.0))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), true, 0.0, 1.0, 0.0, 1.0))), true, 0.0, 1.0, 0.0, 1.0))), true, 0.0, 1.0, 0.0, 1.0), [1]), Face{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), false, 0.0, 1.0, 0.0, 1.0))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(1.0, 0.0), (0.0, 0.0), (0.0, 1.0), (1.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, 0.03, -0.01], [0.08, 0.0, 0.0], [0.0, 0.0, 0.02]))), false, 0.0, 1.0, 0.0, 1.0))), false, 0.0, 1.0, 0.0, 1.0))), false, 0.0, 1.0, 0.0, 1.0), [1]), Face{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), false, 0.0, 1.0, 0.0, 1.0))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([-0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), false, 0.0, 1.0, 0.0, 1.0))), false, 0.0, 1.0, 0.0, 1.0))), false, 0.0, 1.0, 0.0, 1.0), [1]), Face{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), true, 0.0, 1.0, 0.0, 1.0))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}}(TrimmedParametricSurface{PlaneSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}, Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##6#_face_param##7"{Vector{ParamLoop{Float64}}, ParamLoop{Float64}}(ParamLoop{Float64}[], ParamLoop{Float64}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)])), Rasmah.var"#_face_param##10#_face_param##11"{PlaneSurface{Float64}}(PlaneSurface{Float64}([0.04, -0.03, -0.01], [0.0, 0.06, 0.0], [0.0, 0.0, 0.02]))), true, 0.0, 1.0, 0.0, 1.0))), true, 0.0, 1.0, 0.0, 1.0))), true, 0.0, 1.0, 0.0, 1.0), [1]), Face{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), true, 0.0, 6.283185307179586, -0.01, 0.01))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, 0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), true, 0.0, 6.283185307179586, -0.01, 0.01))), true, 0.0, 6.283185307179586, -0.01, 0.01))), true, 0.0, 6.283185307179586, -0.01, 0.01), [1]), Face{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}(DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(BoxSDF{Float64, Float64, Float64}(0.04, 0.03, 0.01), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, 0.022, 0.0]))), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}(DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(BoxSDF{Float64, Float64, Float64}(0.04, 0.03, 0.01), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, 0.022, 0.0]))), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), true, 0.0, 6.283185307179586, -0.01, 0.01))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}(DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(BoxSDF{Float64, Float64, Float64}(0.04, 0.03, 0.01), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, 0.022, 0.0]))), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2055#2056"{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}(DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(BoxSDF{Float64, Float64, Float64}(0.04, 0.03, 0.01), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, 0.022, 0.0]))), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, -0.032, 0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), true, 0.0, 6.283185307179586, -0.01, 0.01))), true, 0.0, 6.283185307179586, -0.01, 0.01))), true, 0.0, 6.283185307179586, -0.01, 0.01), [1]), Face{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}}(CylinderSurface{Float64}(0.0034, 0.032, -0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}, Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}}(Rasmah.var"#2053#2054"{TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, -0.022, 0.0])), Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}(DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(BoxSDF{Float64, Float64, Float64}(0.04, 0.03, 0.01), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, 0.022, 0.0])), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0]))), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, 0.032, -0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), Rasmah.var"#_face_param##24#_face_param##25"{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}(CylinderSurface{Float64}(0.0034, 0.032, -0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}(DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(BoxSDF{Float64, Float64, Float64}(0.04, 0.03, 0.01), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, 0.022, 0.0])), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0]))), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, 0.032, -0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), true, 0.0, 6.283185307179586, -0.01, 0.01))), true, 0.0, 6.283185307179586, -0.01, 0.01), [1]), Face{TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}}(TrimmedParametricSurface{CylinderSurface{Float64}, Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}}(CylinderSurface{Float64}(0.0034, -0.032, -0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]), Rasmah.var"#2061#2062"{Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}, Rasmah.var"#_face_param##18#_face_param##19", Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}}(Rasmah.var"#2055#2056"{DifferenceSDF{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}}(DifferenceSDF{DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(DifferenceSDF{DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(DifferenceSDF{BoxSDF{Float64, Float64, Float64}, TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}}(BoxSDF{Float64, Float64, Float64}(0.04, 0.03, 0.01), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, 0.022, 0.0])), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [-0.032, 0.022, 0.0])), TranslateSDF{CylinderSDF{Float64, Float64}, Vector{Float64}}(CylinderSDF{Float64, Float64}(0.0034, 0.02), [0.032, -0.022, 0.0]))), Rasmah.var"#_face_param##18#_face_param##19"(), Rasmah.var"#_face_param##16#_face_param##17"{CylinderSurface{Float64}}(CylinderSurface{Float64}(0.0034, -0.032, -0.022, 0.0, 0.01, [0.0, 0.0, 1.0], [1.0, 0.0, 0.0]))), true, 0.0, 6.283185307179586, -0.01, 0.01), [1])], Shell[Shell([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])], Solid[Solid([1])])
The four holes sit on a 64 × 44 mm bolt pattern in the plate corners. The finished plate’s material is exact arithmetic, and surface_mesh displays it:
println("plate mass (aluminum): ",
round(uconvert(u"kg", 2700u"kg/m^3" * (80 * 60 * 20 - 4 * π * 3.4^2 * 20) * 1e-9); digits = 3), " kg")plate mass (aluminum): 0.251 kg
vtk(surface_mesh(model; n=48))Recognize holes
detect_holes finds every cylindrical face whose material lies outside the cylinder — a void, not a boss. Each hole reports its centre, axis, radius, and depth:
holes = detect_holes(part)
h = holes[1]
println("holes: ", length(holes))
println("radius: ", mm(h.radius), " mm (expect 3.4)")
println("depth: ", mm(h.depth), " mm (expect 20)")holes: 4
radius: 3.4 mm (expect 3.4)
depth: 20.0 mm (expect 20)
Both numbers are exact because they come straight from the analytic cylinder, not a mesh estimate.
Generate the machining plan
auto_machining_plan turns each recognized feature into a MachiningOperation — a feature, a tool, and a toolpath. Each hole becomes a drill operation with a drill whose diameter matches the hole:
ops = auto_machining_plan(part; mill_diameter=0.008)
for op in ops
println(op.kind, " with ", typeof(op.tool).name.name,
" (d=", mm(tool_diameter(op.tool)), " mm), ",
num_motions(op.toolpath), " motions")
enddrill with Drill (d=6.8 mm), 3 motions
drill with Drill (d=6.8 mm), 3 motions
drill with Drill (d=6.8 mm), 3 motions
drill with Drill (d=6.8 mm), 3 motions
The drill is chosen to be 2 × radius, so it finishes the hole to size.
Recognize and clear pockets
A pocket is an upward-facing horizontal floor below the top surface. The machined face of a valve cover — a 100 × 60 × 20 mm plate with a 60 × 40 × 10 mm pocket subtracted from its top:
cover = difference(box(0.100, 0.060, 0.020),
translate(box(0.060, 0.040, 0.012), 0.0, 0.0, 0.006))
pockets = detect_pockets(brep(cover))
p = pockets[1]
println("depth: ", mm(p.depth), " mm (expect 10)")
println("area: ", mm2(p.area), " mm² (expect 2400 = 60 mm × 40 mm)")depth: 10.0 mm (expect 10)
area: 2400.0 mm² (expect 2400 = 60 mm × 40 mm)
The pocket area is the closed-form product of its side lengths. auto_machining_plan pockets it with the largest end mill that fits the footprint:
vtk(surface_mesh(cover; n=48))ops2 = auto_machining_plan(brep(cover); mill_diameter=0.008)
for op in ops2
println(op.kind, ": ", num_motions(op.toolpath), " motions")
endpocket: 49 motions
The clearing strategy is chosen from the pocket geometry, not hard-coded. A shallow wide pocket is rastered (:zigzag); a deep narrow one is cleared with constant-engagement :trochoidal moves that keep the tool from stalling; a pocket with islands is cut contour-parallel (:offset). select_pocket_strategy makes that choice from the depth-to-width aspect ratio:
for p in detect_pockets(brep(cover))
s = select_pocket_strategy(p)
println("aspect=", round(s.aspect; digits=3), " -> ", s.kind)
endaspect=0.204 -> zigzag
Choose tools from a catalog
select_tools does the “reach for the right tool” step for you: it recognizes the features and picks a matching cutter from the catalog — a drill per hole, an end mill per pocket, a ball-nose per fillet, an end mill per slot or cone:
sel = select_tools(part)
for s in sel
println(s.feature, " → ", typeof(s.tool).name.name,
" d=", mm(tool_diameter(s.tool)), " mm")
endhole → Drill d=6.0 mm
hole → Drill d=6.0 mm
hole → Drill d=6.0 mm
hole → Drill d=6.0 mm
The drill diameter is snapped to the nearest catalog entry, so the tool is always one the shop actually stocks.
Compensate for a worn tool
A cutter wears down with use: its radius shrinks by a radial wear and its flute by an axial wear, so it cuts undersize. ToolWear records both, and worn_tool returns the effective cutter geometry:
wear = ToolWear(radial=0.0001, axial=0.0002) # 0.1 mm radial, 0.2 mm axial
worn = worn_tool(EndMill(0.004), wear)
println("nominal diameter: ", mm(0.004), " mm")
println("worn diameter: ", mm(worn.diameter), " mm (expect 3.8)")nominal diameter: 4.0 mm
worn diameter: 3.8 mm (expect 3.8)
The worn diameter is the nominal diameter minus twice the radial wear. To bring the cut surface back to size you can either re-generate the toolpath with the worn tool, or offset the contour outward by the same amount. wear_offset_contour offsets a planar contour along its angle bisectors, so a 10 mm square offset by 1 mm becomes a 12 mm square:
sq = [[0.0, 0.0, 0.0], [0.01, 0.0, 0.0], [0.01, 0.01, 0.0], [0.0, 0.01, 0.0]]
off = wear_offset_contour(sq, 0.001)
println("offset side: ", mm(norm(off[2] .- off[1])), " mm (expect 12)")offset side: 12.0 mm (expect 12)
The controller can also apply the offset itself: gcode(; comp=:left) emits a G41 (or G42 with :right) cutter-compensation block and closes it with G40, so the machine’s wear/radius register does the offsetting:
tp = ToolPath(EndMill(0.004); feedrate=0.05)
push_rapid!(tp, [0.0, 0.0, 0.01]); push_cut!(tp, [0.005, 0.0, -0.002])
g = gcode(tp; dialect=:iso, comp=:left, comp_register=1)
println(occursin("G41 D1", g), " (left comp), ", occursin("G40", g), " (cancelled)")true (left comp), true (cancelled)
A one-click machining plan
The whole loop — recognize, choose tools, machine, and order the operations — is plan_machining: it recognizes the features, generates the toolpaths, and reorders them so the connecting rapid moves are short. optimize_operation_order is a travelling-salesperson pass (nearest-neighbour + 2-opt) over the operation end/start points. On the four-hole plate it shortens the connecting travel:
ord3 = optimize_operation_order(ops)
println("before: ", round(operation_travel(ops) * 1000; digits=1), " mm")
println("after: ", round(operation_travel(ord3) * 1000; digits=1), " mm")before: 205.7 mm
after: 152.0 mm
The ordered plan travels no farther than the unordered one — and usually less.
Auto setup and fixtures
A setup binds a part to its stock and a work offset. For an exact BRep, setup tessellates the part and sizes the stock from its bounding box plus a clearance:
st = setup(part; clearance=0.005)
lo, hi = bounds(to_sdf(st.stock.mesh))
println("stock: ", mm.(lo), " .. ", mm.(hi), " mm")stock: [-45.0, -35.0, -15.0] .. [45.0, 35.0, 15.0] mm
stock_from_part is the box from bounds(part) ± clearance, so the stock bounds are closed-form. Finally, suggest_fixtures proposes n clamping points spread around the base (lowest-Z) face, left unmachined:
fx = suggest_fixtures(st.part; n=4)
println(length(fx), " clamps, all on z = ", fx[1][3])4 clamps, all on z = -0.01
Slots, cones, and rest machining
The auto plan also covers the remaining feature types: a rounded-end slot is cleared trochoidally, and a conical bore is ramped with a helix of tapering circles. Both come straight from the recognized feature geometry:
# a Ø8 rounded-end slot along a 40 × 40 × 20 mm block (a keyway-style groove)
slotted = brep(difference(box(0.040, 0.040, 0.020),
translate(rotate(cylinder(0.004, 0.040), rotation_y(π / 2)), 0.0, 0.0, 0.007)))
# a Ø12 countersink, 6 mm deep, in a 40 × 40 × 10 mm plate
coned = brep(difference(box(0.040, 0.040, 0.010), cone(0.006, 0.006)))
println("slot ops: ", [o.kind for o in auto_machining_plan(slotted; mill_diameter=0.008)])
println("cone ops: ", [o.kind for o in auto_machining_plan(coned; mill_diameter=0.002)])slot ops: [:slot]
cone ops: [:pocket, :cone]
The conical bore produces a :cone operation (the helix of tapering circles) alongside the :pocket that its mouth forms.
Rest machining is driven by the concave corner radius — the radius a tool must fit to reach the tightest inner corner. part_min_concave_radius reports only concave curved features (their centre lies in the void); a convex rounding does not constrain the tool, so part_min_fillet_radius (which counts both) is the conservative bound and the concave one is the semantic bound:
rounded = brep(fillet(box(0.020, 0.020, 0.020), 0.0005)) # 0.5 mm corner radius
cavity = brep(difference(box(0.020, 0.020, 0.020), translate(sphere(0.0005), 0.0, 0.0, 0.012)))
println("rounded: concave=", part_min_concave_radius(rounded), " (convex only -> nothing)")
println("cavity: concave=", part_min_concave_radius(cavity), " (0.0005)")rounded: concave=nothing (convex only -> nothing)
cavity: concave=nothing (0.0005)
Summary
- Feature recognition (
detect_holes,detect_pockets,detect_bosses,detect_fillets,detect_slots,detect_cones) reads the exact BRep and reports each machinable feature with its closed-form dimensions. - Auto-machining (
auto_machining_plan) turns each feature into the matching tool and toolpath; tool selection (select_tools) picks a catalog cutter for every feature. - Tool wear (
ToolWear,worn_tool,wear_offset_contour) models a worn cutter and compensates either geometrically or in the post (gcode(; comp=…)). - Automation (
plan_machining,optimize_operation_order,setup,suggest_fixtures) turns a BRep into an ordered plan on a sized stock with clamping points.
Next steps
- Dexel stock simulation — cut the same adapter plate from a billet and watch the dexel track what each toolpath removes.
- Boundary Representation (BRep) — the exact topological model behind feature recognition.
- CNC Toolpaths and 3D-Print Slicing — the strategies that produce the
ToolPaths. - 5-Axis Tool Orientation and Gouge Avoidance — orientation for curved and tilted surfaces.
