RasmahRasmah

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")
end
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
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")
end
pocket: 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)
end
aspect=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")
end
hole → 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