Michael,
I looked at the corner thing and wasn't sure if you wanted the empty corners. If you do, then here is a modification to do that. Also moved the color command to the very first line, just to execute it only once.
attr pipeThickness = 1.5
attr colorer = "#ffffff"
attr cornerScale = 1 # Make this higher number to handle sharp corners.
@StartRule
Boundary -->
color(colorer)
offset(-pipeThickness) comp(f) {inside: Inside}
Inside -->
extrude(pipeThickness) comp(f) {side: Pipeline}
Pipeline -->
extrude(pipeThickness)
s('20,'1,'1) # Added this for automatic trim.
center(x)
t(0,'0.5,0)
i("pipe.obj")
split(x) {
~(pipeThickness * cornerScale) : PipeCorner. | # Longer to handle corners.
{~(pipeThickness * 2/3) : NIL | ~(pipeThickness * 0.5) : PipeDash. }* |
~(pipeThickness * 2/3) : NIL |
~(pipeThickness * cornerScale) : PipeCorner. # Longer to handle corners.
}