include ; include ; /* The DD play: common configuration constants and modules @author Perrier Stéphanie, Le Coultre Régis, Borgognon Nathalie @date 15 dec. 2015 @licence CC BY-NC-SA 4.0 */ // Base dimensions $BASE_DIMENSION = 32; $BASE_DOBLO_DIMENSION = $BASE_DIMENSION / 8; $BASE_DOBLO_HEIGHT = 12; // TV dimensions $TV_DOBLO_WIDTH = $BASE_DIMENSION / 16; $TV_DOBLO_LENGTH = $BASE_DIMENSION / 8; $TV_DOBLO_HEIGHT = $BASE_DOBLO_HEIGHT / 2; // Tel-fix dimensions $TELFIX_DOBLO_DIMENSION = $BASE_DIMENSION / 16; $TELFIX_DOBLO_HEIGHT = $BASE_DOBLO_HEIGHT / 2; // N-tel dimensions $NTEL_DOBLO_DIMENSION = $BASE_DIMENSION / 16; $NTEL_DOBLO_HEIGHT = $BASE_DOBLO_HEIGHT / 2; // Dots dimension and floor positions $DOTS_DIAMETER = $BASE_DIMENSION / 7; $TOP_LEFT_DOT = 0; $TOP_RIGHT_DOT = 1; $MIDDLE_LEFT_DOT = 2; $MIDDLE_CENTER_DOT = 3; $MIDDLE_RIGHT_DOT = 4; $BOTTOM_LEFT_DOT = 5; $BOTTOM_RIGHT_DOT = 6; centerOffset = $BASE_DIMENSION / 2; leftOffset = centerOffset / 2; rightOffset = leftOffset * 3; topOffset = rightOffset * -1; middleOffset = ($BASE_DIMENSION / 2) * -1; bottomOffset = topOffset / 3; $DOTS_POSITION = [[leftOffset, topOffset,0], [rightOffset, topOffset,0], [leftOffset, middleOffset,0], [centerOffset, middleOffset,0], [rightOffset, middleOffset,0], [leftOffset,bottomOffset,0], [rightOffset,bottomOffset,0]]; // Number of fragments for dots $fn = 40; module dotsFactory ( topLeftDot, topRightDot, middleLeftDot, middleCenterDot, middleRightDot, bottomLeftDot, bottomRightDot ) { isDotsVisible = [topLeftDot, topRightDot, middleLeftDot, middleCenterDot, middleRightDot, bottomLeftDot, bottomRightDot]; for (i = [$TOP_LEFT_DOT : $BOTTOM_RIGHT_DOT]) { if (isDotsVisible[i] == true) { translate($DOTS_POSITION[i]) { sphere(d=$DOTS_DIAMETER); } } } }