diff --git a/rocolib/builders/boat/BatteryStackHolderBuilder.py b/rocolib/builders/boat/BatteryStackHolderBuilder.py index 5bedcae931b7abd15bb5625ec5f72d6f9c2933ff..3bbd56d4bffdce0b4737f90365224de40eff2947 100644 --- a/rocolib/builders/boat/BatteryStackHolderBuilder.py +++ b/rocolib/builders/boat/BatteryStackHolderBuilder.py @@ -1,18 +1,24 @@ from rocolib.api.components.Component import Component from rocolib.api.Function import Function +#A 5-sided rectangular beam enclosure + c = Component() c.addParameter("numBatteries", 3, paramType="count", minValue=1, maxValue=10) +c.addParameter("batterylength", 60, paramType="length") +c.addParameter("batterywidth", 17, paramType="length") +c.addParameter("batterydepth", 9, paramType="length") + c.addSubcomponent("holder", "SimpleRectBeam", inherit=True, prefix=None) -c.addConstConstraint(("holder", "length"), 60) -c.addConstraint(("holder", "width"), "numBatteries", "9 * x") -c.addConstConstraint(("holder", "depth"), 17) +c.addConstraint(("holder", "length"), "batterylength") +c.addConstraint(("holder", "width"), ("numBatteries", "batterydepth"), "x[0] * x[1]") +c.addConstraint(("holder", "depth"), "batterywidth") c.addSubcomponent("bottom", "Rectangle", inherit=True) -c.addConstraint(("bottom", "l"), ("numBatteries"), "9 * x") -c.addConstConstraint(("bottom", "w"), 17) +c.addConstraint(("bottom", "l"), ("numBatteries", "batterydepth"), "x[0] * x[1]") +c.addConstraint(("bottom", "w"), "batterywidth") c.addConnection(("bottom", "t"), ("holder", "botedge0"), angle=90) c.addConnection(("bottom", "l"), ("holder", "botedge1"), tabWidth=5, angle=90) diff --git a/rocolib/builders/boat/BatteryStackMountBuilder.py b/rocolib/builders/boat/BatteryStackMountBuilder.py index 7757ba6e066239bf00bb7fec549be76d040a068d..98db012bfc74d8d2d24363890555f62f29c75d48 100644 --- a/rocolib/builders/boat/BatteryStackMountBuilder.py +++ b/rocolib/builders/boat/BatteryStackMountBuilder.py @@ -1,6 +1,8 @@ from rocolib.api.components.Component import Component from rocolib.api.Function import Function +#A 4-sided rectangular beam with a cutout for the battery terminals and wings for mounting + c = Component() c.addParameter("boatwidth", 90, paramType="length") diff --git a/rocolib/library/BatteryStackHolder.yaml b/rocolib/library/BatteryStackHolder.yaml index ae7b3d02b7f34ad18421873df222bc01c82b4259..dd4bc3add430a05357fcc507d085c096abba0637 100644 --- a/rocolib/library/BatteryStackHolder.yaml +++ b/rocolib/library/BatteryStackHolder.yaml @@ -74,6 +74,24 @@ parameters: defaultValue: true spec: valueType: bool + batterydepth: + defaultValue: 9 + spec: + minValue: 0 + units: mm + valueType: (float, int) + batterylength: + defaultValue: 60 + spec: + minValue: 0 + units: mm + valueType: (float, int) + batterywidth: + defaultValue: 17 + spec: + minValue: 0 + units: mm + valueType: (float, int) bottom._dx: defaultValue: 0 spec: @@ -140,7 +158,7 @@ parameters: minValue: 0 units: mm valueType: (float, int) -source: ../builders/boat/BatteryStackHolder.py +source: ../builders/boat/BatteryStackHolderBuilder.py subcomponents: bottom: classname: Rectangle @@ -161,9 +179,12 @@ subcomponents: _q_k: parameter: bottom._q_k l: - function: 9 * x - parameter: numBatteries - w: 17 + function: x[0] * x[1] + parameter: &id001 + - numBatteries + - batterydepth + w: + parameter: batterywidth holder: classname: SimpleRectBeam kwargs: {} @@ -184,8 +205,10 @@ subcomponents: parameter: _q_k addTabs: parameter: addTabs - depth: 17 - length: 60 + depth: + parameter: batterywidth + length: + parameter: batterylength width: - function: 9 * x - parameter: numBatteries + function: x[0] * x[1] + parameter: *id001