/* Allow commands to return results */ options results /* On error, goto ERROR:. Comment out this line if you wish to */ /* perform your own error checking. */ signal on error 'PROJECT_LOCK' /* BEGIN PROGRAM *************************************************/ /* PROGRAM: ShadowHard.dsdr DESCRIPTION: Draws a hard shadow for the selected object(s). The shadow is offset by some amount, which may be re-positioned later. Change the "Offset" value below to change the default shadow offset. DATE: 02/11/96 AUTHOR: Andy Dean */ Offset = '0.25in' Opacity = 50 REDRAW_OFF /* Get info on the selected object(s) */ OBJECT_SPECS_GET stem 'srcobj.' /* If there's more than 1 object, group them */ /* and store their name */ if srcobj.numselected > 1 then do OBJECT_GROUP stem 'srcgrp.' srcname = srcgrp.name end else do srcname = srcobj.name end /* Clone the object, offsetting 0.25in */ OBJECT_CLONE Offset Offset /* Fill the object to transparent black */ ATTRS_FILLCOLOUR_SET 0 0 0 Opacity ATTRS_PENFILL_SET None None /* Bring original object to front */ OBJECT_DESELECT OBJECT_SELECT '"'srcname'"' OBJECT_TOFRONT /* If it was grouped, ungroup */ if srcobj.numselected > 1 then OBJECT_UNGROUP REDRAW_ON /* END PROGRAM ***************************************************/ 'PROJECT_UNLOCK' exit /* On ERROR */ ERROR: 'PROJECT_UNLOCK' /* If we get here, either an error occurred with the command's */ /* execution or there was an error with the command itself. */ /* In the former case, rc2 contains the error message and in */ /* the latter, rc2 contains an error number. SIGL contains */ /* the line number of the command which caused the jump */ /* to ERROR: */ if datatype(rc2,'NUMERIC') == 1 then do /* See if we can describe the error with a string */ select when rc2 == 103 then err_string = "ERROR 103, "||, "out of memory at line "||SIGL when rc2 == 114 then err_string = "ERROR 114, "||, "bad command template at line "||SIGL when rc2 == 115 then err_string = "ERROR 115, "||, "bad number for /N argument at line "||SIGL when rc2 == 116 then err_string = "ERROR 116, "||, "required argument missing at line "||SIGL when rc2 == 117 then err_string = "ERROR 117, "||, "value after keywork missing at line "||SIGL when rc2 == 118 then err_string = "ERROR 118, "||, "wrong number of arguments at line "||SIGL when rc2 == 119 then err_string = "ERROR 119, "||, "unmatched quotes at line "||SIGL when rc2 == 120 then err_string = "ERROR 120, "||, "line too long at line "||SIGL when rc2 == 236 then err_string = "ERROR 236, "||, "unknown command at line "||SIGL otherwise err_string = "ERROR "||rc2||", at line "||SIGL end end else if rc2 == 'RC2' then do err_string = "ERROR in command at line "||SIGL end else do err_string = rc2||", line "||SIGL end req_message TEXT '"'err_string'"' exit