#################################################################### # # Name: doors-windows.scl # Author: Tim Jacobs # July 26, 1996 # Description: Door and window prototypes for caboose # #################################################################### { windowwidth = 0.7; doorwidth = 0.9; windowheight1 = 0.7; doorheight1 = 1.7; framewidth = 0.1; # anchor for topleft of window with z pointing out window # anchor should be aligned with outside surface windowanchor = anchor( pt( 0, 0, 0 ), xdir, ydir, zdir ); } # make windows for top of caboose # add to model by adding outside and subtracting inside { window1out = boxFromAnchor( offsetAnchor( windowanchor, 0, -windowheight1, -0.05 ), windowheight1, windowwidth, 0.1 ); window1in = boxFromAnchor( offsetAnchor( windowanchor, framewidth, - windowheight1 + framewidth, - 1.0 ), windowheight1 - 2 * framewidth, windowwidth - 2 * framewidth, 2.0 ); setColor( window1out, "DimGray" ); } # make doors for top of caboose # add to model by adding outside and subtracting inside { door1out = boxFromAnchor( offsetAnchor( windowanchor, 0, - doorheight1, -0.05 ), doorheight1, doorwidth, 0.1 ); door1in = boxFromAnchor( offsetAnchor( windowanchor, framewidth, - doorheight1, - 1.0 ), doorheight1 - framewidth, doorwidth - 2 * framewidth, 2.0 ); setColor( door1out, "DimGray" ); } # make windows for main body of caboose # add to model by adding outside and subtracting inside1 then inside2 { windowoutheight2 = 1.2; windowinheight2 = 0.4; innerframewidth = 0.03; } { window2out = boxFromAnchor( offsetAnchor( windowanchor, 0, -windowoutheight2, -0.06 ), windowoutheight2, windowwidth, 0.08 ); # this is the actual hole for the window window2in1a = boxFromAnchor( offsetAnchor( windowanchor, framewidth + innerframewidth, - windowinheight2 - framewidth - innerframewidth, - 1.0 ), windowinheight2, windowwidth - 2 * ( framewidth + innerframewidth ), 2.0 ); window2in1b = boxFromAnchor( offsetAnchor( windowanchor, framewidth + innerframewidth, - windowoutheight2 + framewidth + innerframewidth, - 1.0 ), windowinheight2, windowwidth - 2 * ( framewidth + innerframewidth ), 2.0 ); window2in2 = boxFromAnchor( offsetAnchor( windowanchor, framewidth, - windowoutheight2 + framewidth, - 0.03 ), windowoutheight2 - 2 * framewidth, windowwidth - 2 * framewidth, 0.9 ); window2in1 = group( window2in1a, window2in1b ); #window2out = combineShells( window2out1,window2in2, "-" ); setColor( window2out, "DimGray" ); } # make doors for main body of caboose # add to model by adding outside and subtracting inside1 then inside2 { dooroutheight2 = 3.4; doorinheight2 = 0.8; innerframewidth = 0.06; } { door2out = boxFromAnchor( offsetAnchor( windowanchor, 0, -dooroutheight2, -0.06 ), dooroutheight2, doorwidth, 0.08 ); # this is the actual hole for the door door2in1 = boxFromAnchor( offsetAnchor( windowanchor, framewidth + innerframewidth, - doorinheight2 - framewidth - innerframewidth, - 1.0 ), doorinheight2, doorwidth - 2 * ( framewidth + innerframewidth ), 2.0 ); door2in2 = boxFromAnchor( offsetAnchor( windowanchor, framewidth, - ( dooroutheight2 - innerframewidth ) , - 0.03 ), dooroutheight2 - framewidth - innerframewidth, doorwidth - 2 * framewidth, 0.9 ); #door2out = combineShells( door2out1, door2in2, "-" ); setColor( door2out, "DimGray" ); }