import sand3d as s3d
def towel_rail():
bar = s3d.at(round_bar(), y=-67.83, z=-5)
support = s3d.at(bent_support(), x=285.5, y=-42.915, z=-8)
image = s3d.transform(s3d.copy(support), mirror=class="tok-string">"x")
return s3d.assembly(class="tok-string">"towel_rail", bar, support, image)
def round_bar(w=540, d=10):
solid = s3d.at(s3d.cylinder(class="tok-string">"bar", d=d, h=w), x=-w/2, z=d/2, ry=90)
s3d.material(solid, class="tok-string">"brushed_steel", color=class="tok-string">"class="tok-comment">#a4a6a8")
return s3d.group(class="tok-string">"round_bar", solid)
def bent_support(w=43, d=65.83, h=16):
stem = s3d.at(s3d.box(class="tok-string">"stem", w=h, d=d, h=h), x=(w-h)/2)
turn = s3d.at(s3d.box(class="tok-string">"return", w=w, d=h, h=h), y=-(d-h)/2)
solid = s3d.join(stem, turn)
s3d.material(solid, class="tok-string">"brushed_steel", color=class="tok-string">"class="tok-comment">#a4a6a8")
plate = s3d.at(mounting_plate(), x=(w-h)/2, y=d/2+4.5, z=-18)
return s3d.group(class="tok-string">"bent_support", solid, plate)
def mounting_plate(w=52, d=11, h=52):
solid = s3d.box(class="tok-string">"plate", w=w, d=d, h=h)
s3d.material(solid, class="tok-string">"brushed_steel", color=class="tok-string">"class="tok-comment">#a4a6a8")
return s3d.group(class="tok-string">"mounting_plate", solid)