Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Last active December 6, 2023 14:34
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save kenwebb/c150691c7c630d9405d2f14391ce4149 to your computer and use it in GitHub Desktop.
Gum-Jar Solar Light - Recipe
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Wed Dec 06 2023 09:33:40 GMT-0500 (Eastern Standard Time)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Gum-Jar Solar Light - Recipe
Description:
Url: http://www.primordion.com/Xholon/gwt/
InternalName: c150691c7c630d9405d2f14391ce4149
Keywords:
My Notes
--------
5 Dec 2023
Ken Webb
4 Dec 2023
Kenz Jar Light - next version - the process
TODO implement this in a Xholon workbook, as a recipe
Gum-Jar Solar Light - Recipe
BOM
---
TODO add these
The Process
-----------
Obtain components (see BOM)
Organize components into an icecube tray
Drill hole in clear lid for solar cell wires
Drill two holes in lid for 2 nylon standoffs
Solar Cell
----------
Solder red and black wires to center pads of solar cell
Cut these red and black wires to correct length (both the same)
xx mm ?
Push these red and black wires through the drilled hole
Attach standoffs
----------------
Drill two holes in the clear lid, one for each standoff
Attach wires from solar cell to a JST 2 2-pin connector
-------------------------------------------------------
Strip the two wires (3 or 4mm)
Crimp the wires onto the JST metal inserts
Push each insert into the JST plastic piece
Attach battery
--------------
Hot-glue plastic battery holder to inside of lid
Cut these red and black wires to correct length (each a different length)
xx mm ?
yy mm ?
Crimp the wires onto the JST metal inserts
Push each insert into the JST plastic piece
Add components to PCB
---------------------
Solder x to PCB
...
Recipe
======
Lid, Cut Hole, Cut Hole, Cut Hole
Solar Cell, Solder Red Wire, Solder Black Wire
Hot Glue
TODO turn above recipe into a Xholon recipe as in Food Recipes workbook
5 Dec 2023
Functional Approach
===================
cuthole(lid) is a function
cuthole(cuthole(cuthole(lid)))
functions can be composed
const cuthole = (lid) => lid
const cuthole = (lid) => {console.log("Cut a hole in the " + lid); return lid;}
compose(cuthole, cuthole, cuthole)(lid)
cuthole should have an additional parameter/argument
- a description of the hole; where, diameter
- maybe a JSO, or JSON, or array, or just two items
compose(cuthole(arg), cuthole(arg), cuthole(arg))(lid)
As Xholon CSH XML
=================
<Cuthole where="13,15" diam="3">
<Cuthole where="21,17" diam="2">
<Cuthole where="33,17" diam="2">
<Lid/>
</Cuthole>
</Cuthole>
</Cuthole>
OR
<Cuthole x="13" y="15" r="3"/>
Note:
- the standard way of nesting functions in Math, follows the same convention as the Xholon XML nesting
- which also matches the right-to-left order of compose()
- which is opposite to the left-to-right order of pipe()
TODO:
- maybe use "lidtop" rather than "lid" to mean the clear plastic circular and openable/hinged area at the top of the lid
- a lid consists of a lidtop, a threaded section, a hinged front door, and an angled section
- the lidtop has two surfaces, an outer-facig surface, and an inner-facing surface
6 Dec 2023
How I generated the SVG image in this workbook
----------------------------------------------
- In Xholon, export the <Recipe roleName="Lidtop Holes test"/> subtree as a mind map
Export > MindMap
shouldShowClouds NO
position left
- save the result as a .mm file
- using a file viewer, in the FreePlane folder, double-click freeplanelauncher.jar
- in FreePlane, open the .mm file
File > Open mind map...
select all nodes (Ctrl-A)
Format > Node core > Node shape > Bubble
- in FreePlane, export the mind map as an SVG file
File > Export map...
How to interpret the Mind Map (.mm) and SVG (.svg) content
----------------------------------------------------------
ex: Lidtop--Drillhole--Drillhole--Drillhole
can be read as:
Take the lid top
Drill a hole in it
Take the resulting lid top with one hole
Drill a hole in it
etc.
The result is the original lid top, with three holes drilled in it
### References
() https://www.primordion.com/Xholon/gwt/wb/editwb.html?app=9858622&src=gist
Food Recipes
]]></Notes>
<_-.XholonClass>
<SolarLightSystem/>
<Recipe/>
<!-- Electronic Components -->
<EComponent superClass="Quantity">
<Capacitor>
<CeramicCapacitor/>
</Capacitor>
<Diode/>
<Inductor/>
</EComponent>
<Pcb/> <!-- OpenGreenEnergy, from PcbWay -->
<SolarCell/>
<Battery>
<Battery_AAA_NiMH/> <!-- a rechargeable 1.2v battery; I use 850 mAh -->
<Battery_AA_NiMH/>
</Battery>
<BatteryHolder/>
<Controller/>
<Led>
<LedWhite/>
<LedWarmWhite/>
<LedRGB/>
</Led>
<Switch>
<SlidingSwitch/>
</Switch>
<Wire/> <!-- lengths of red and black 26 guage/AWG stranded wire -->
<JstConnector>
<Jst2_2pin_female/> <!-- right-angle -->
<Jst2_2pin_male/>
<Jst_Metal_Insert/>
</JstConnector>
<Circuit/>
<Container/>
<Jar/>
<Lid/>
<Lidtop/> <!-- inside surface of the plastic lidtop -->
<LidtopOut/> <!-- outside surface of the plastic lidtop -->
<Standoff/> <!-- 2 nylon standoff sets, to connect Pcb to lidtop; each set has 1 standoff + 2 nylon screws -->
<Glue/>
<Solder/>
<!-- Tools -->
<SolderingIron/>
<Jst_Crimper/>
<WireStripper/>
<Nipper/>
<Drill/> <!-- to drill holes in plastic lid top -->
<HotGlueGun/>
<!-- Processes; steps in the recipe -->
<Drillhole/>
</_-.XholonClass>
<xholonClassDetails>
</xholonClassDetails>
<SolarLightSystem>
<Container>
<Lid>
<LidtopOut>
<SolarCell/> <!-- 2v, AK50X50 -->
</LidtopOut>
<Lidtop>
<BatteryHolder>
<Battery_AAA_NiMH/>
</BatteryHolder>
<Standoff/>
<Standoff/>
<Pcb>
<Circuit>
<!-- the rolenames are the names written on the PCB -->
<Controller roleName="QX5252F"/>
<Inductor roleName="L1">47 uH</Inductor> <!-- 47 or 33 uH -->
<LedRGB roleName="LED"/>
<SlidingSwitch roleName="SWITCH"/>
<Diode roleName="D1">1 1N5818</Diode> <!-- 1N4148 or 1N5818 or 1N5819 -->
<CeramicCapacitor roleName="C1">0.1 uF</CeramicCapacitor>
<Jst2_2pin_female roleName="SOL"/>
<Jst2_2pin_female roleName="BAT"/>
</Circuit>
</Pcb>
</Lidtop></Lid>
<Jar/>
<!-- TODO add wires -->
</Container>
<!-- Recipe for building a Solar Light OLD -->
<!--<Cuthole where="13,15" diam="3">
<Cuthole where="21,17" diam="2">
<Cuthole where="33,17" diam="2">
<Lid/>
</Cuthole>
</Cuthole>
</Cuthole>-->
<!--<Cuthole x="13" y="15" r="3"/>-->
<!-- Recipe for building a Solar Light - v2 - sizes and positions in mm (millimeters)
The end result here is a lidtop with a 3mm hole + a 2mm hole + a 2mm hole.
-->
<Recipe roleName="Lidtop Holes test">
<Drillhole x="27.5" y="15" r="2">
<Drillhole x="27.5" y="42" r="2">
<Drillhole x="27.5" y="27.5" r="3"> <!-- for wires from solar cell; use 7/64 drill bit -->
<Lidtop width="55" height="55"/>
</Drillhole>
</Drillhole>
</Drillhole>
</Recipe>
</SolarLightSystem>
<Recipebehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var me, beh = {
postConfigure: function() {
me = this.cnode.parent();
console.log(me);
const compose = (...fns) => x => fns.reduceRight((y, f) => f(y), x)
const drillHole = lidTop => {me.println(`Drill a hole in ${lidTop.name()} at x,y with radius r.`); return lidTop;}
//const drillHole = lidTop => dh => {me.println(`Drill a hole in ${lidTop.name()} at x,y with radius r.`); return lidTop;} // NO
//const drillHole = dh => lidTop => {me.println(`Drill a hole in ${lidTop.name()} at x,y with radius r.`); return lidTop;} // NO
const lidTopA = me.first().first().first().first()
//const funk = lidTop => compose(drillHole("zero"), drillHole("one")); //(lidTopA)
//funk(lidTopA);
compose(drillHole, drillHole)(lidTopA)
}
}
//# sourceURL=Recipebehavior.js
]]></Recipebehavior>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Circuit</title>
<rect id="SolarLightSystem/Circuit" fill="#98FB98" height="50" width="50" x="25" y="0"/>
<g>
<title>Diode</title>
<rect id="SolarLightSystem/Circuit/Diode" fill="#6AB06A" height="50" width="10" x="80" y="0"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg fill-opacity="1" xmlns:xlink="http://www.w3.org/1999/xlink" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="354" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="123" xmlns="http://www.w3.org/2000/svg" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
/><g
><defs id="defs1"
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
><path d="M0 0 L3268 0 L3268 1461 L0 1461 L0 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2"
><path d="M0 0 L0 123 L354 123 L354 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath3"
><path d="M0 0 L0 123 L278 123 L278 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath4"
><path d="M0 0 L0 123 L202 123 L202 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath5"
><path d="M0 0 L0 123 L126 123 L126 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath6"
><path d="M0 0 L0 23 L57 23 L57 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath7"
><path d="M-0 -0.355669766665 L-0 23.355669021606 L58.762886047363 23.355669021606 L58.762886047363 -0.355669766665 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath8"
><path d="M0 -0.355669766665 L0 23.355669021606 L58.762886047363 23.355669021606 L58.762886047363 -0.355669766665 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath9"
><path d="M0 0 L0 23 L26 23 L26 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath10"
><path d="M-0 -0.355669766665 L-0 23.355669021606 L26.804122924805 23.355669021606 L26.804122924805 -0.355669766665 Z"
/></clipPath
><font horiz-adv-x="60.009766" id="font1"
><font-face ascent="92.822266" font-style="normal" descent="23.583984" units-per-em="100" font-family="sans-serif" font-weight="normal"
/><missing-glyph horiz-adv-x="60.009766" d="M4.984375 -17.671875 L4.984375 70.515625 L54.984375 70.515625 L54.984375 -17.671875 L4.984375 -17.671875 ZM10.59375 -12.109375 L49.421875 -12.109375 L49.421875 64.890625 L10.59375 64.890625 L10.59375 -12.109375 Z"
/><glyph unicode="e" horiz-adv-x="61.523438" d="M56.203125 29.59375 L56.203125 25.203125 L14.890625 25.203125 Q15.484375 15.921875 20.484375 11.0625 Q25.484375 6.203125 34.421875 6.203125 Q39.59375 6.203125 44.453125 7.46875 Q49.3125 8.734375 54.109375 11.28125 L54.109375 2.78125 Q49.265625 0.734375 44.1875 -0.34375 Q39.109375 -1.421875 33.890625 -1.421875 Q20.796875 -1.421875 13.15625 6.1875 Q5.515625 13.8125 5.515625 26.8125 Q5.515625 40.234375 12.765625 48.109375 Q20.015625 56 32.328125 56 Q43.359375 56 49.78125 48.890625 Q56.203125 41.796875 56.203125 29.59375 ZM47.21875 32.234375 Q47.125 39.59375 43.09375 43.984375 Q39.0625 48.390625 32.421875 48.390625 Q24.90625 48.390625 20.390625 44.140625 Q15.875 39.890625 15.1875 32.171875 L47.21875 32.234375 Z"
/><glyph unicode="l" horiz-adv-x="27.783203" d="M9.421875 75.984375 L18.40625 75.984375 L18.40625 0 L9.421875 0 L9.421875 75.984375 Z"
/><glyph unicode="o" horiz-adv-x="61.18164" d="M30.609375 48.390625 Q23.390625 48.390625 19.1875 42.75 Q14.984375 37.109375 14.984375 27.296875 Q14.984375 17.484375 19.15625 11.84375 Q23.34375 6.203125 30.609375 6.203125 Q37.796875 6.203125 41.984375 11.859375 Q46.1875 17.53125 46.1875 27.296875 Q46.1875 37.015625 41.984375 42.703125 Q37.796875 48.390625 30.609375 48.390625 ZM30.609375 56 Q42.328125 56 49.015625 48.375 Q55.71875 40.765625 55.71875 27.296875 Q55.71875 13.875 49.015625 6.21875 Q42.328125 -1.421875 30.609375 -1.421875 Q18.84375 -1.421875 12.171875 6.21875 Q5.515625 13.875 5.515625 27.296875 Q5.515625 40.765625 12.171875 48.375 Q18.84375 56 30.609375 56 Z"
/><glyph unicode="h" horiz-adv-x="63.378906" d="M54.890625 33.015625 L54.890625 0 L45.90625 0 L45.90625 32.71875 Q45.90625 40.484375 42.875 44.328125 Q39.84375 48.1875 33.796875 48.1875 Q26.515625 48.1875 22.3125 43.546875 Q18.109375 38.921875 18.109375 30.90625 L18.109375 0 L9.078125 0 L9.078125 75.984375 L18.109375 75.984375 L18.109375 46.1875 Q21.34375 51.125 25.703125 53.5625 Q30.078125 56 35.796875 56 Q45.21875 56 50.046875 50.171875 Q54.890625 44.34375 54.890625 33.015625 Z"
/><glyph unicode="t" horiz-adv-x="39.208984" d="M18.3125 70.21875 L18.3125 54.6875 L36.8125 54.6875 L36.8125 47.703125 L18.3125 47.703125 L18.3125 18.015625 Q18.3125 11.328125 20.140625 9.421875 Q21.96875 7.515625 27.59375 7.515625 L36.8125 7.515625 L36.8125 0 L27.59375 0 Q17.1875 0 13.234375 3.875 Q9.28125 7.765625 9.28125 18.015625 L9.28125 47.703125 L2.6875 47.703125 L2.6875 54.6875 L9.28125 54.6875 L9.28125 70.21875 L18.3125 70.21875 Z"
/><glyph unicode="u" horiz-adv-x="63.378906" d="M8.5 21.578125 L8.5 54.6875 L17.484375 54.6875 L17.484375 21.921875 Q17.484375 14.15625 20.5 10.265625 Q23.53125 6.390625 29.59375 6.390625 Q36.859375 6.390625 41.078125 11.03125 Q45.3125 15.671875 45.3125 23.6875 L45.3125 54.6875 L54.296875 54.6875 L54.296875 0 L45.3125 0 L45.3125 8.40625 Q42.046875 3.421875 37.71875 1 Q33.40625 -1.421875 27.6875 -1.421875 Q18.265625 -1.421875 13.375 4.4375 Q8.5 10.296875 8.5 21.578125 ZM31.109375 56 L31.109375 56 Z"
/><glyph unicode="C" horiz-adv-x="69.82422" d="M64.40625 67.28125 L64.40625 56.890625 Q59.421875 61.53125 53.78125 63.8125 Q48.140625 66.109375 41.796875 66.109375 Q29.296875 66.109375 22.65625 58.46875 Q16.015625 50.828125 16.015625 36.375 Q16.015625 21.96875 22.65625 14.328125 Q29.296875 6.6875 41.796875 6.6875 Q48.140625 6.6875 53.78125 8.984375 Q59.421875 11.28125 64.40625 15.921875 L64.40625 5.609375 Q59.234375 2.09375 53.4375 0.328125 Q47.65625 -1.421875 41.21875 -1.421875 Q24.65625 -1.421875 15.125 8.703125 Q5.609375 18.84375 5.609375 36.375 Q5.609375 53.953125 15.125 64.078125 Q24.65625 74.21875 41.21875 74.21875 Q47.75 74.21875 53.53125 72.484375 Q59.328125 70.75 64.40625 67.28125 Z"
/><glyph unicode="d" horiz-adv-x="63.476562" d="M45.40625 46.390625 L45.40625 75.984375 L54.390625 75.984375 L54.390625 0 L45.40625 0 L45.40625 8.203125 Q42.578125 3.328125 38.25 0.953125 Q33.9375 -1.421875 27.875 -1.421875 Q17.96875 -1.421875 11.734375 6.484375 Q5.515625 14.40625 5.515625 27.296875 Q5.515625 40.1875 11.734375 48.09375 Q17.96875 56 27.875 56 Q33.9375 56 38.25 53.625 Q42.578125 51.265625 45.40625 46.390625 ZM14.796875 27.296875 Q14.796875 17.390625 18.875 11.75 Q22.953125 6.109375 30.078125 6.109375 Q37.203125 6.109375 41.296875 11.75 Q45.40625 17.390625 45.40625 27.296875 Q45.40625 37.203125 41.296875 42.84375 Q37.203125 48.484375 30.078125 48.484375 Q22.953125 48.484375 18.875 42.84375 Q14.796875 37.203125 14.796875 27.296875 Z"
/><glyph unicode="i" horiz-adv-x="27.783203" d="M9.421875 54.6875 L18.40625 54.6875 L18.40625 0 L9.421875 0 L9.421875 54.6875 ZM9.421875 75.984375 L18.40625 75.984375 L18.40625 64.59375 L9.421875 64.59375 L9.421875 75.984375 Z"
/><glyph unicode="L" horiz-adv-x="55.71289" d="M9.8125 72.90625 L19.671875 72.90625 L19.671875 8.296875 L55.171875 8.296875 L55.171875 0 L9.8125 0 L9.8125 72.90625 Z"
/></font
></defs
><g font-size="13px" transform="translate(-1461,-669)" fill="white" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="crispEdges" stroke="white"
><rect x="0" width="3268" height="1461" y="0" clip-path="url(#clipPath1)" stroke="none"
/></g
><g stroke-linecap="butt" font-size="13px" fill="gray" text-rendering="geometricPrecision" font-family="sans-serif" stroke-linejoin="round" stroke="gray" stroke-miterlimit="1"
><path fill="none" d="M247 61 C235 61 247 61 227 61" clip-path="url(#clipPath2)"
/></g
><g fill="white" text-rendering="geometricPrecision" font-size="13.333333969116px" font-family="sans-serif" transform="translate(247,50)" stroke="white"
><rect x="0" y="0" clip-path="url(#clipPath6)" width="57" rx="5" ry="5" height="23" stroke="none"
/></g
><g font-size="13.333333969116px" stroke-linecap="butt" transform="translate(247,50)" fill="gray" text-rendering="geometricPrecision" font-family="sans-serif" stroke="gray" stroke-miterlimit="1"
><rect x="0" y="0" clip-path="url(#clipPath6)" fill="none" width="56" rx="5" ry="5" height="22"
/></g
><g text-rendering="geometricPrecision" font-size="13.333333969116px" shape-rendering="crispEdges" font-family="sans-serif" transform="translate(247,50.344999670982) scale(0.97000002861,0.97000002861)"
><text x="3" xml:space="preserve" y="16" clip-path="url(#clipPath7)" stroke="none"
>Cuthole</text
></g
><g stroke-linecap="butt" font-size="13px" fill="gray" text-rendering="geometricPrecision" font-family="sans-serif" stroke-linejoin="round" stroke="gray" stroke-miterlimit="1"
><path fill="none" d="M171 61 C159 61 171 61 151 61" clip-path="url(#clipPath3)"
/></g
><g fill="white" text-rendering="geometricPrecision" font-size="13.333333969116px" font-family="sans-serif" transform="translate(171,50)" stroke="white"
><rect x="0" y="0" clip-path="url(#clipPath6)" width="57" rx="5" ry="5" height="23" stroke="none"
/></g
><g font-size="13.333333969116px" stroke-linecap="butt" transform="translate(171,50)" fill="gray" text-rendering="geometricPrecision" font-family="sans-serif" stroke="gray" stroke-miterlimit="1"
><rect x="0" y="0" clip-path="url(#clipPath6)" fill="none" width="56" rx="5" ry="5" height="22"
/></g
><g text-rendering="geometricPrecision" font-size="13.333333969116px" shape-rendering="crispEdges" font-family="sans-serif" transform="translate(171,50.344999670982) scale(0.97000002861,0.97000002861)"
><text x="3" xml:space="preserve" y="16" clip-path="url(#clipPath7)" stroke="none"
>Cuthole</text
></g
><g stroke-linecap="butt" font-size="13px" fill="gray" text-rendering="geometricPrecision" font-family="sans-serif" stroke-linejoin="round" stroke="gray" stroke-miterlimit="1"
><path fill="none" d="M95 61 C83 61 95 61 75 61" clip-path="url(#clipPath4)"
/></g
><g fill="white" text-rendering="geometricPrecision" font-size="13.333333969116px" font-family="sans-serif" transform="translate(95,50)" stroke="white"
><rect x="0" y="0" clip-path="url(#clipPath6)" width="57" rx="5" ry="5" height="23" stroke="none"
/></g
><g font-size="13.333333969116px" stroke-linecap="butt" transform="translate(95,50)" fill="gray" text-rendering="geometricPrecision" font-family="sans-serif" stroke="gray" stroke-miterlimit="1"
><rect x="0" y="0" clip-path="url(#clipPath6)" fill="none" width="56" rx="5" ry="5" height="22"
/></g
><g text-rendering="geometricPrecision" font-size="13.333333969116px" shape-rendering="crispEdges" font-family="sans-serif" transform="translate(95,50.344999670982) scale(0.97000002861,0.97000002861)"
><text x="3" xml:space="preserve" y="16" clip-path="url(#clipPath8)" stroke="none"
>Cuthole</text
></g
><g fill="white" text-rendering="geometricPrecision" font-size="13.333333969116px" font-family="sans-serif" transform="translate(50,50)" stroke="white"
><rect x="0" y="0" clip-path="url(#clipPath9)" width="26" rx="5" ry="5" height="23" stroke="none"
/></g
><g font-size="13.333333969116px" stroke-linecap="butt" transform="translate(50,50)" fill="gray" text-rendering="geometricPrecision" font-family="sans-serif" stroke="gray" stroke-miterlimit="1"
><rect x="0" y="0" clip-path="url(#clipPath9)" fill="none" width="25" rx="5" ry="5" height="22"
/></g
><g text-rendering="geometricPrecision" font-size="13.333333969116px" shape-rendering="crispEdges" font-family="sans-serif" transform="translate(50,50.344999670982) scale(0.97000002861,0.97000002861)"
><text x="3" xml:space="preserve" y="16" clip-path="url(#clipPath10)" stroke="none"
>Lid</text
></g
></g
></svg
>
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient>
</XholonWorkbook>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment