import static uk.co.nickthecoder.foocad.chamferedextrude.v1.ChamferedExtrude.* class AdjustableZStop : Model { @Piece fun knob() = Circle( 6 ).sides(6).roundAllCorners(1).chamferedExtrude( 16, 0, 1 ) - Cylinder.hole( 15, 3.5/2 ) @Piece fun lockNut() = Circle( 7 ).sides(6).roundAllCorners(1).extrude( 4 ) - Cylinder.hole( 20, 3.5/2 ).center() @Piece fun bracket() = Cube( 16, 12, 6 ).centerXY() - Cylinder.hole( 3, 8.4/2, 6 ).translateZ(-0.01).translateX(2) - Cylinder.hole( 30, 2.5 ).center().translateX(2) + Cube( 2, 12, 16 ).centerXY().translateX(-8) - Cylinder.hole( 20, 2.5 ).center().rotateY(90).translateZ(11) override fun build() : Shape3d { return knob() + bracket().rotateY(-90).toOriginZ().translateY( 14 ) + lockNut().translateX(-14) } }