solid myObject float ringThickness = 3.0 open float innerDiam { name = "Diameter" descr = "Inner Diameter of Bangle" value = 70.0 min = 40.0 max = 90.0 } float torusTubeRad = 0.5 * ringThickness float torusRad = 0.5 * innerDiam + torusTubeRad solid baseRing = torus(torusRad, torusTubeRad) open int nRings { name = "Rings" descr = "Number of Rings" value = 2 min = 1 max = 8 } float ringsDist = 2 * ringThickness for(int i = 0; i < nRings; i++) { myObject += translation(<[0,0, i * ringsDist]>) >> baseRing } float connectorLen = (nRings - 1) * ringsDist float connectorRad = torusTubeRad solid connector = cylinder(connectorLen, connectorRad) connector <<= translation(<[torusRad,0,0]>) open int nConnectors { name = "Connectors" descr = "Number of Connectors" value = 1 min = 1 max = 10 } float anglePerConnector = 2PI/nConnectors for(int i = 0; i < nConnectors; i++) { myObject += rotation(<[0,0,1]>, i * anglePerConnector) >> connector } open color myColor { name = "Color" descr = "Color of Bangle" value = rgb(255,255,0) } myObject <<= myColor make myObject