REPY-2.0 1.0
Mechanical module for modular robotics
Component REPY_module::upper_part ( ) [private]

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
}
 All Classes Functions Variables