|
- include <export.scad>
-
- // dependency: https://github.com/revarbat/BOSL
- include <BOSL/constants.scad>
- use <BOSL/transforms.scad>
- use <BOSL/shapes.scad>
- use <BOSL/masks.scad>
- use <BOSL/sliders.scad>
-
- use <specs_platform.scad>
- use <specs_strap.scad>
-
- use <strap_common.scad>
-
- // DEBUG:
- //validation = 1;
- //xray = 1;
-
- // PROP >>
- module prop_arm() {
- $fn=$preview ? 10 : 30;
- arm_size=[200, 55, 40];
- color("gray")
- down(arm_size.z/2) {
- cuboid(arm_size, fillet=16, edges=EDGES_X_ALL);
- left(arm_size.x*0.6) scale([1, 1, 0.8]) yrot(90) cylinder(d1=arm_size.y*1.4, d2=arm_size.y*0.95, h=arm_size.x/2);
- }
- }
- module model_prop_arm() {
- if (is_not_export()) down(3) prop_arm();
- }
- // <<<
-
- // Blocks:
- module platform(base) {
- size=get_platform_size();
- top=!base;
- up(top?size.z:0)
- color(top?"Olive":"YellowGreen")
- cube(size, center=true);
-
- module strap_connectors() {
- down(size.z/2) {
- for (i=[0:3]) {
- left((i%2*(-2)+1) * (size.x/2 - get_link_segment_size().y/2))
- fwd((round(i/2)%2*(-2)+1) * size.y/2)
- down(get_link_segment_size().z/2)
- zrot(90 + (round(i/2)%2*180)) link_connector_pin();
- }
- }
- }
-
- if (base) {
- strap_connectors();
- }
- }
-
- // Models:
- module model_platform_harness() {
- platform(base=false);
- }
-
- module model_platform_strap() {
- platform(base=true);
- }
-
- // Export:
- if (is_model(MODEL_PLATFORM_HARNESS)) model_platform_harness();
- if (is_model(MODEL_PLATFORM_STRAP)) model_platform_strap();
- if (is_model(MODEL_DEMO)) model_prop_arm();
|