Copyright 2011, TIG (c)
Permission to use, copy, modify, and distribute this software for any
purpose, and currently without fee, is hereby granted, provided that
this text and the above copyright (c) notice appear in all copies.
This software is provided "as is" and without any express or implied
warranties, including, without limitation, the implied warranties of
merchantability and fitness for a particular purpose.
###
Name: TIG-shadowProjector.rb
###
Activate:
Menu > 'Tools' > 'ShadowProjector'
###
Usage:
Select Face[s] - any other Objects in the Selection are ignored.
Run the tool.
Choose the 'Type' from the initial settings dialog's drop-down list.
- Lines
Edges
Faces
Faces[Edged]
Faces[Edged]%
Faces[Edged]%sq
'Lines' draws just the lines along each shadow's perimeter on the face.
'Edges' draws a looped line around each shadow's perimeter.
'Faces' draws each shadow as a 'gray' face, with hidden edges.
'Faces[Edged]' draws each shadow as a 'gray' face, with visible edges.
'Faces[Edged]%' draws each shadow as a 'gray' face, with visible edges,
it then adds a text-tag to the center of the 'Shadow' showing the % of
the Face in shade.
'Faces[Edged]%sq' is similar, but it also appends the shaded:total area
in sq' or sqm.
If you choose a 'Text' option a second dialog asks for the text height
[default is 2" or 50mm].
The last used 'Settings' are remembered during a session.
Faces that are oriented away from the sun are ignored if the 'Type' does
not include making a Face.
Unless are making 'Shadows' with Faces do not Select Faces oriented away
from the sun as they will be ignored anyway.
Qualifying Faces are now processed in turn.
All Faces are analyzed for shading, so it's much quicker to Select only
those Faces you know to be shaded [or you are interesting in]; as an
unshaded Face will take time to analyze and produce no 'Shadow' anyway.
'Shadows' are drawn over the Face showing the extent on any shadows cast
on it by other active Faces located between it and the sun [within 1km].
Note that a Surface's 'Shadows' are processed as separate facets, so
it's much quicker to have hidden geometry 'on' and then Select only
those Surface Faces that you know are shaded...
Faces within active Groups and Components will be included in any
shadow-casting analysis - but they slows down processing considerably.
Hidden Objects or those on 'off' Layers are ignored in the analysis;
BUT those with 'casts_shadows/receive_shadows' unchecked ARE still used.
Each 'Shadow-Group' is named after the ShadowTime and the Face's ID;
e.g. 'Shadows@Jun_21_12:00#0xc741eac'***
***A Face's ID changes with each session.
Those with % or %sq have the text-group similarly named but with those
values appended to the name;
e.g. 'Shadows@Jun_21_12:00#0xc741eac=67.1%'
The 'Shadow-Groups' are put on a Layer named 'SHAD'.
The 'Shadows' 'gray' material is named 'Shadows'; once it's been made
you can change its color/transparency etc as desired.
Any text is colored 'Black'.
The text-group can be moved within the shadow-group for clarity etc.
The tool beeps when it's finished processing.
The processing is one step undoable.
Note that if the 'Shadows' have Faces then the Shadow-Face is moved
0.1mm off the original Face to avoid 'z-fighting' between surfaces.
Similarly any text-group is slightly offset too.
It's best to process a few faces at a time because Sketchup slows up
almost 'exponentially' as it processes larger collections...
If you process a lot at once be prepared to have lunch and come back
when it's done !
Remember that although it might 'white-out' it is still processing.
It's recommended that you keep the Outliner window closed when using
this tool, although it can be useful for selecting shadow/text-groups
later on.
###
Donations: PayPal.com to info @ revitrev.org ###
Version:
1.0 20111210 First issue.
1.1 20111214 Addressed issues with tiny faces/holes and group/instance
sitting on face whilst casting a shadow.
1.2 20111215 Speed and error trapping improved.
###












