Here's a shape script (5-10 minutes work) that replicates the visual options of a boundary on any object using tagged values. (but only up to 3 lanes in each dimension)
It even avoids some of the weirdness in options that exist for legacy reasons and allows you to customize it further.
shape main
{
noshadow=true;
if(HasTag("border","dot")) {
SetLineStyle("dot");
}
else if(HasTag("border","dash")) {
SetLineStyle("dash");
}
else {
SetLineStyle("solid");
}
StartPath();
if(HasTag("shape", "circle")) {
Ellipse(0,0,100,100);
}
else if(HasTag("shape", "round")) {
RoundRect(0,0,100,100,20,20);
}
else {
Rectangle(0,0,100,100);
}
EndPath();
if(hastag("filled","true")) {
FillAndStrokePath();
}
else {
StrokePath();
}
if(hasTag("hlanes",2)) {
moveto(0,50);
lineto(100,50);
}
else if(hasTag("hlanes",3)){
moveto(0,33);
lineto(100,33);
moveto(0,66);
lineto(100,66);
}
if(hasTag("vlanes",2)) {
moveto(50,0);
lineto(50,100);
}
else if(hasTag("vlanes",3)){
moveto(33,0);
lineto(33,100);
moveto(66,0);
lineto(66,100);
}
strokepath();
}