|
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
}
|
1.7.4