REPY-2.0 1.0
Mechanical module for modular robotics
|
Generates the upper part of the module. { //-- Base: Component base = RoundedTablet( side, side, upper_base_thickness, board_safe); //-- Drills of the base: Component base_drill = Cylinder( pcb->get_drill_diam()/2.0, upper_base_thickness + 0.2, 6, true); Component base_drill01 = base_drill.translatedCopy( pcb->get_drill_x()/2.0, pcb->get_drill_y()/2.0, 0); Component base_drill02 = base_drill.translatedCopy( -pcb->get_drill_x()/2.0, pcb->get_drill_y()/2.0, 0); Component base_drill03 = base_drill.translatedCopy( pcb->get_drill_x()/2.0, -pcb->get_drill_y()/2.0, 0); Component base_drill04 = base_drill.translatedCopy( -pcb->get_drill_x()/2.0, -pcb->get_drill_y()/2.0, 0); //-- Make a cross-shaped hole for the wiring, etc: Component cross = RoundedTablet( pcb->get_drill_y() - 2* upper_screw_safe - pcb->get_drill_diam(), side-2*upper_border_safe, upper_base_thickness+0.2, upper_border_safe /2.5) + RoundedTablet( side-2*upper_border_safe, pcb->get_drill_x() - 2* upper_screw_safe - pcb->get_drill_diam(), upper_base_thickness+0.2, upper_border_safe /2.5 ); //-- Make base: base = base - base_drill01 - base_drill02 - base_drill03 - base_drill04 - cross; base.translate(0, 0, lower_base_thickness/2.0); //-- Make ears: Component front_ear = make_ear( side, servo->get_axis_y()+servo->get_leg_y(), upper_front_ear_thickness, upper_ear_shift, upper_ear_radius); front_ear.relRotate( 90, 0 , 0); front_ear.translate(0, (central_part - upper_front_ear_thickness )/2.0, upper_base_thickness); Component back_ear = make_ear( side, servo->get_axis_y()+servo->get_leg_y(), upper_back_ear_thickness, upper_ear_shift, upper_ear_radius); back_ear.relRotate( 90, 0 , 0); back_ear.translate( 0, (-central_part + upper_back_ear_thickness)/2.0, upper_back_ear_thickness); //-- Construct upper part: upper = base + front_ear + back_ear - *servo - fake_axis; //-- Add links to the holes of the base: upper.addLink( RefSys( pcb->get_drill_x()/2.0, pcb->get_drill_y()/2.0, 0)); upper.addLink( RefSys( -pcb->get_drill_x()/2.0, pcb->get_drill_y()/2.0, 0)); upper.addLink( RefSys( pcb->get_drill_x()/2.0, -pcb->get_drill_y()/2.0, 0)); upper.addLink( RefSys( -pcb->get_drill_x()/2.0, -pcb->get_drill_y()/2.0, 0)); return upper - base_drill01 - base_drill02 - base_drill03 - base_drill04; //-- Temporal fix } |