Who can offer an overview of how to use trim?

4354
10
Jump to solution
06-23-2015 03:21 PM
NicolaiSteinø
Occasional Contributor

I have been struggling quite a bit to work out how to control trim planes and how and when they will work and on what.

In this example, I've been trying to write a script for an Utzon courtyard house (see pic). Basically, it's an L-shaped building on two sides of a courtyard with a shed roof raising outward from the courtyard. Now, the way I constructed the roof (see script), it requires a split to miter the two roof parts in order to avoid overlapping geometry where they meet. But I can't make it work.

Could someone please give an overview of how to use trim? Because I obviously either don't know, or I try to make it do stuff which it can't do. In the latter case, is there an alternative way for me to reach my goal?

CourtyardHouse.png

/**
 * File:    trimWalls.cga
 * Created: 23 Jun 2015 12:13:04 GMT
 * Author:  Nic
 */

version "2015.0"

attr floorH = 3
attr bldgW = 8
attr wallThickness = 0.35
attr roofAngle = 30

@Startrule
Lot --> RoofBase01 RoofBase02 shapeL(bldgW, bldgW) {shape : Footprint | remainder : rotateScope(0,180,0) Garden }

Garden--> shapeL(wallThickness, wallThickness) { shape : extrude(floorH*0.75) GardenWall | remainder : Ground }

Footprint --> extrude(floorH) Envelope

RoofBase01 --> t(0,floorH,0) rotateScope(0,90,0) split(x) { bldgW : set(trim.horizontal,true) set(trim.vertical,true) trim() roofShed(roofAngle, 2) Attic | ~1 : NIL }
RoofBase02 --> t(0,floorH,0) rotateScope(0,90,0) split(z) { bldgW : set(trim.horizontal,true) set(trim.vertical,true) trim() roofShed(roofAngle, 1) Attic | ~1 : NIL }

GardenWall --> comp(f) {side : Wall | top : Crown }
Envelope --> comp(f) {side : Wall }
Attic  --> comp(f) {vertical : Wall | top : Roof }

Wall --> color(0.9,0.8,0.6)
Crown --> color(0.7,0.7,0.7)
Roof --> color(0.9,0.7,0.6)
Ground --> color(0.2,0.6,0.2)
Tags (3)
10 Replies
by Anonymous User
Not applicable

Only slightly, and CGA cannot alter the start shape (add vertices).

0 Kudos