Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Pigeon Deterrence System (PDS)
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Thu May 05 2022 07:28:01 GMT-0400 (Eastern Daylight Saving Time)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Pigeon Deterrence System (PDS)
Description:
Url: http://www.primordion.com/Xholon/gwt/
InternalName: 23e4749f7ea51d800e9a94a353892245
Keywords:
My Notes
--------
5 May 2022
Pigeons enjoy landing on the two balconies of our 17th floor condo.
We are designing and building a simple Pigeon Deterrence System (PDS) on the side balcony where they mostly land.
The PDS consists of segments of fishing line threaded through a set of upright metal pieces.
The uprights are constructed out of metal coat hanger wire.
In this Xholon workbook, I design the uprights.
Each upright has a small number of functional components and sub-components.
I also use this workbook to lay out a complete upright piece, using an Avatar moving in a grid.
The Avatar will turn left and right, and will move forward starting at one end of the upright.
TODO
- add a Xholon Grid
- use DefaultContent in CD
- use Avatar, with an Avatar behavior
]]></Notes>
<_-.XholonClass>
<!-- domain objects -->
<PigeonDeterrenceSystem/>
<CentUnit> <!-- The basic unit that all components are made out of; nominally = 1 centimeter -->
<Spacer/> <!-- a Spacer consists of 1 or more CentUnits -->
</CentUnit>
<FishingLineSegment/>
<PdsUpright/>
<PdsComponent>
<HorizontalStabilizer/> <!-- prevents the upright from rotating -->
<Vertical>
<VerticalAbove/>
<VerticalBelow/>
</Vertical>
<TopExtension/>
<Loop/> <!-- a circle with a circumference of about 5 centimeters -->
</PdsComponent>
<Fastener/> <!-- a screw or other thing that fastens an upright to the concrete balcony wall -->
</_-.XholonClass>
<xholonClassDetails>
<VerticalAbove><Color>red</Color></VerticalAbove>
<VerticalBelow><Color>orange</Color></VerticalBelow>
</xholonClassDetails>
<PigeonDeterrenceSystem>
<FishingLineSegment/>
<PdsUpright multiplicity="1">
<VerticalAbove>
<TopExtension>
<Loop/>
<Spacer/>
<Loop/>
<Spacer/>
</TopExtension>
<Spacer multiplicity="7"/>
</VerticalAbove>
<VerticalBelow>
<Spacer multiplicity="1"/>
<HorizontalStabilizer roleName="Left HS"/>
<Spacer multiplicity="1"/>
<HorizontalStabilizer roleName="Right HS"/>
<Spacer multiplicity="1"/>
</VerticalBelow>
</PdsUpright>
</PigeonDeterrenceSystem>
<PigeonDeterrenceSystembehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var a = 123;
var b = 456;
var c = a * b;
if (console) {
console.log(c);
}
//# sourceURL=PigeonDeterrenceSystembehavior.js
]]></PigeonDeterrenceSystembehavior>
<Loopbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var loop, testing;
var beh = {
postConfigure: function() {
testing = Math.floor(Math.random() * 10);
loop = this.cnode.parent();
},
act: function() {
loop.println(this.toString());
},
toString: function() {
return loop.name() + " testing:" + testing;
}
}
//# sourceURL=Loopbehavior.js
]]></Loopbehavior>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Pigeon Deterrence System (PDS)</title>
<rect id="PigeonDeterrenceSystem" fill="#98FB98" height="50" width="50" x="25" y="0"/>
<g>
<title>Height</title>
<rect id="PigeonDeterrenceSystem/PdsUpright" fill="#6AB06A" height="50" width="10" x="80" y="0"/>
</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