shapeL, shapeU, shapeO operations

Syntax

  • shapeL(frontWidth, leftWidth) { selector operator operations | ... }
  • shapeU(frontWidth, rightWidth, leftWidth) { selector operator operations | ... }
  • shapeO(frontWidth, rightWidth, backWidth, leftWidth ) { selector operator operations | ... }

Parameters

  1. frontWidthfloat
    Depth of front wing.
  2. leftWidthfloat
    Width of left wing.
  3. rightWidthfloat
    Width of right wing.
  4. backWidthfloat
    Depth of rear wing.
  5. selectorselector
    • shape—The setback polygon(i.e the L,U, or O shape).
    • remainder—Selects the remainder of the polygon.
  6. operatorfloat
    The 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.
  7. operationsfloat
    A 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

Block filled with L-shapes

A block filled with 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

Block filled with U-shapes

A block filled with 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

Block filled with O-shapes

A block filled with 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)