From b02615a973ac202a83d2772f5a63ed2154557253 Mon Sep 17 00:00:00 2001 From: pjil27 <jillpantigcs@gmail.com> Date: Thu, 5 Aug 2021 17:30:48 -0700 Subject: [PATCH] ESP32STACK for boat --- rocolib/builders/ESP32StackBoatBuilder.py | 37 +++++++- rocolib/library/ESP32StackBoat.yaml | 106 +++++++++++++++++++--- 2 files changed, 127 insertions(+), 16 deletions(-) diff --git a/rocolib/builders/ESP32StackBoatBuilder.py b/rocolib/builders/ESP32StackBoatBuilder.py index 4d06716..f4c36a1 100644 --- a/rocolib/builders/ESP32StackBoatBuilder.py +++ b/rocolib/builders/ESP32StackBoatBuilder.py @@ -3,26 +3,53 @@ from rocolib.api.components.Component import Component #ESP3 STACK WITH PWM SERVO FEATHERWING c = Component() -c.addSubcomponent("stack", "SubESP32Stack") +c.addSubcomponent("boat", "BoatBase") +#the length of the both should always be a multiple of the width of the motor +#as of now i will be setting the length to 117 (so that means 9 * width of the motor which is 13) +c.addParameter("length", 130, paramType="length") +c.addParameter("width", 50, paramType="length") +c.addParameter("depth", 40, paramType="length") c.addParameter("brains", "esp32stack", paramType="dimension") -c.addParameter("boat.depth", 20, paramType="length") + +c.addConstraint(("boat", "boat.length"), "length") +c.addConstraint(("boat", "boat.width"), "width") +c.addConstraint(("boat", "boat.depth"), "depth") + + +for i in range(2): + c.addSubcomponent("splitside%d" %i, "SplitEdge") + c.addConstraint(("splitside%d" %i, "toplength"), "length", "(x,)") + c.addConstraint(("splitside%d" %i, "botlength"), ("length", "brains"), + '(getDim(x[1], "width")/2., getDim(x[1], "width")/2., ' + 'getDim(x[1], "width")/2., getDim(x[1], "width")/2., getDim(x[1], "width")/2., getDim(x[1], "width")/2. ,getDim(x[1], "width")/2., x[0] - 7 * (getDim(x[1], "width")/2))') + +c.addSubcomponent("stack", "SubESP32Stack") + for i in range(4): c.addSubcomponent("support%d" %i, "Rectangle") c.addConstraint(("support%d" %i, "w"), "brains", "getDim(x, 'width')/2.") - c.addConstraint(("support%d" %i, "l"), "boat.depth") + c.addConstraint(("support%d" %i, "l"), "depth") for i in range(2): c.addSubcomponent("split%d" %i, "SplitEdge") c.addConstraint(("split%d" %i, "toplength"), "brains", '(getDim(x, "width"),)') c.addConstraint(("split%d" % i, "botlength"), "brains", '(getDim(x, "width")/2.,getDim(x, "width")/2.)') -c.addConnection(("stack", "topedge2"), ("split0", "topedge0")) -c.addConnection(("stack", "botedge2"), ("split1", "topedge0")) +c.addConnection(("stack", "topedge0"), ("split0", "topedge0")) +c.addConnection(("stack", "botedge0"), ("split1", "topedge0")) c.addConnection(("split0", "botedge0"), ("support0", "l"), angle=90) c.addConnection(("split0", "botedge1"), ("support1", "l"), angle=90) c.addConnection(("split1", "botedge0"), ("support2", "l"), angle=90) c.addConnection(("split1", "botedge1"), ("support3", "l"), angle=90) +c.addConnection(("splitside0", "topedge0"), ("boat", "staredge")) +c.addConnection(("splitside1", "topedge0"), ("boat", "portedge")) +c.addConnection(("support0", "r"), ("splitside0", "botedge4"), tabWidth=5) +c.addConnection(("support1", "r"), ("splitside0", "botedge5"), tabWidth=5) +c.addConnection(("support2", "r"), ("splitside1", "botedge5"), tabWidth=5) +c.addConnection(("support3", "r"), ("splitside1", "botedge6"), tabWidth=5) + + c.toLibrary("ESP32StackBoat") \ No newline at end of file diff --git a/rocolib/library/ESP32StackBoat.yaml b/rocolib/library/ESP32StackBoat.yaml index 34de9b3..5005c16 100644 --- a/rocolib/library/ESP32StackBoat.yaml +++ b/rocolib/library/ESP32StackBoat.yaml @@ -1,16 +1,28 @@ connections: connection0: - - stack - - topedge2 + - topedge0 - - split0 - topedge0 - {} connection1: - - stack - - botedge2 + - botedge0 - - split1 - topedge0 - {} + connection10: + - - support2 + - r + - - splitside1 + - botedge5 + - tabWidth: 5 + connection11: + - - support3 + - r + - - splitside1 + - botedge6 + - tabWidth: 5 connection2: - - split0 - botedge0 @@ -35,20 +47,66 @@ connections: - - support3 - l - angle: 90 + connection6: + - - splitside0 + - topedge0 + - - boat + - staredge + - {} + connection7: + - - splitside1 + - topedge0 + - - boat + - portedge + - {} + connection8: + - - support0 + - r + - - splitside0 + - botedge4 + - tabWidth: 5 + connection9: + - - support1 + - r + - - splitside0 + - botedge5 + - tabWidth: 5 interfaces: {} parameters: - boat.depth: - defaultValue: 20 + brains: + defaultValue: esp32stack + spec: + valueType: str + depth: + defaultValue: 40 spec: minValue: 0 units: mm valueType: (float, int) - brains: - defaultValue: esp32stack + length: + defaultValue: 130 spec: - valueType: str + minValue: 0 + units: mm + valueType: (float, int) + width: + defaultValue: 50 + spec: + minValue: 0 + units: mm + valueType: (float, int) source: ..\builders\ESP32StackBoatBuilder.py subcomponents: + boat: + classname: BoatBase + kwargs: {} + parameters: + boat.depth: + parameter: depth + boat.length: + parameter: length + boat.width: + parameter: width split0: classname: SplitEdge kwargs: {} @@ -69,6 +127,32 @@ subcomponents: toplength: function: (getDim(x, "width"),) parameter: brains + splitside0: + classname: SplitEdge + kwargs: {} + parameters: + botlength: + function: (getDim(x[1], "width")/2., getDim(x[1], "width")/2., getDim(x[1], + "width")/2., getDim(x[1], "width")/2., getDim(x[1], "width")/2., getDim(x[1], + "width")/2. ,getDim(x[1], "width")/2., x[0] - 7 * (getDim(x[1], "width")/2)) + parameter: &id001 + - length + - brains + toplength: + function: (x,) + parameter: length + splitside1: + classname: SplitEdge + kwargs: {} + parameters: + botlength: + function: (getDim(x[1], "width")/2., getDim(x[1], "width")/2., getDim(x[1], + "width")/2., getDim(x[1], "width")/2., getDim(x[1], "width")/2., getDim(x[1], + "width")/2. ,getDim(x[1], "width")/2., x[0] - 7 * (getDim(x[1], "width")/2)) + parameter: *id001 + toplength: + function: (x,) + parameter: length stack: classname: SubESP32Stack kwargs: {} @@ -78,7 +162,7 @@ subcomponents: kwargs: {} parameters: l: - parameter: boat.depth + parameter: depth w: function: getDim(x, 'width')/2. parameter: brains @@ -87,7 +171,7 @@ subcomponents: kwargs: {} parameters: l: - parameter: boat.depth + parameter: depth w: function: getDim(x, 'width')/2. parameter: brains @@ -96,7 +180,7 @@ subcomponents: kwargs: {} parameters: l: - parameter: boat.depth + parameter: depth w: function: getDim(x, 'width')/2. parameter: brains @@ -105,7 +189,7 @@ subcomponents: kwargs: {} parameters: l: - parameter: boat.depth + parameter: depth w: function: getDim(x, 'width')/2. parameter: brains -- GitLab