Syntax
- shapeL(frontWidth, leftWidth) { selector operator operations | ... }
 - shapeU(frontWidth, rightWidth, leftWidth) { selector operator operations | ... }
 - shapeO(frontWidth, rightWidth, backWidth, leftWidth ) { selector operator operations | ... }
 
Parameters
- frontWidth—floatDepth of front wing.
 - leftWidth—floatWidth of left wing.
 - rightWidth—floatWidth of right wing.
 - backWidth—floatDepth of rear wing.
 - selector—selector
- shape—The setback polygon(i.e the L,U, or O shape).
 - remainder—Selects the remainder of the polygon.
 
 - operator—floatThe operator defines how the setback polygons are used to generate successor shapes. This also applies to shapes with more than one faces. Valid operators are:
- ":" each polygon is put into a new shape.
 - "=" all polygons corresponding to the selector are combined into one new shape.
 
 - operations—floatA sequence of shape operations to execute on the newly created shape.
 
Description
The shapeL, shapeU, shapeO operations select a number of edges, depending on predefined spatial selectors, and set them back by a user-defined distance.
Note:
This operation is another way of applying setbacks. For example
shapeL(frontWidth, leftWidth) { selector operator operations | ... }
can also be achieved with the setback operation and the comp function:
setback( comp(fe) { front=frontWidth | left=leftWidth } ) { selector operator operations | ... }
Geometry tags
The operations automatically apply semantic component tags to the resulting edge components. Refer to the setback operation for more details.
Related
Examples
L-Shapes

attr myFrontDepth = 5
attr myLeftWidth = 11
LotInner -->
   Lot
		
Lot -->
   offset(-3,inside)
   shapeL(myFrontDepth,myLeftWidth) { shape : Footprint | remainder : NIL }
	
Footprint -->
   extrude(rand(10,20)) 
   color(1,0,0)
U-Shapes

attr myFrontDepth = 5
attr myRightWidth = 3
attr myLeftWidth  = 11
LotInner -->
   Lot
		
Lot -->
   offset(-3, inside)
   shapeU(myFrontDepth,myRightWidth,myLeftWidth) { shape     : Footprint 
                                                 | remainder : NIL }
	
Footprint -->
   extrude(rand(10,20)) 
   color(1,0,0)
O-Shapes

attr myFrontDepth = 5
attr myRightWidth = 3
attr myBackDepth  = 2
attr myLeftWidth  = 11
LotInner -->
   Lot
        
Lot -->
   offset( -3, inside)
   shapeO( myFrontDepth, myRightWidth, myBackDepth, myLeftWidth ) 
         { shape : Footprint | remainder : NIL }
Footprint -->
   extrude(rand(10,20)) 
   color(1,0,0)