home *** CD-ROM | disk | FTP | other *** search
- /* CMD: ½ModifyAlign */
- /* By Brett Evan Hester 13032 Copenhill Rd. Dallas, Tx. 75240-5302 */
- MacrosName = "ModifyAlign"
- /* Macro Type: */
- /* MODIFIES * OBJECTS * BKG NEEDED * SELECTED * REMEMBERS */
- /* Description: */
-
- Info1A = "!Modify Alignment © Information 1 of 2"
- Info1B = ""
- Info1C = "@This macro moves the current layer, in reference"
- Info1D = "@to a background layer. If a background is not "
- Info1E = "@available, coords. 0, 0, 0 are used as a base. "
- Info1F = ""
- Info1G = "þ ... EDGE: aligns that edge of the object with "
- Info1H = " the selected counterpart in the background. "
- Info1I = "þ CENTER: aligns the center point of the object "
- Info1J = " to the position selected in the background. "
- Info1K = 'þ "X" is for no movement on the selected axis. '
- Info1L = ""
- Info1M = "þ DISPLAY RESULTS will show the amount the obj. "
- Info1N = " was moved in accordance with the selected. "
-
- Info2A = "!Modify Alignment © Information 2 of 2"
- Info2B = "@ Plug-Ins and Go! © "
- Info2C = " Hester and associates"
- Info2D = " 13032 Copenhill Road "
- Info2E = " Dallas, Texas 75240 "
- Info2F = "@Special Thanks to: "
- Info2G = "Arnie Cachelin Henry Ribron Mark J. Holland "
- Info2H = "J. Phil Kelso Terry Wester Steven K. Simms "
- Info2I = "Kevin DeRita Greg Glaser William S. Hawes"
- Info2J = "NewTek © Commodore © INOVAtronics © "
- Info2K = ""
- Info2L = "@This macro represents a lot of time & hard work."
- Info2M = "@Encourage people to create new ones and not kill"
- Info2N = "@that possibility by stealing those that are out."
-
- /* -------------------------------------------------------------------- */
- /* Start Error Detection (See End) */
- SIGNAL ON ERROR
- SIGNAL ON SYNTAX
- /* Address LightWave */
- VT3DLib = ADDLIB("LWModelerARexx.port",0)
- ADDRESS "LWModelerARexx.port"
-
- /* -------------------------------------------------------------------- */
- /* Reading Global Macro Preferences */
- BEHDefaultFilePath = "Sys:"
- BEHSettingsSavedTo = "T:"
- BEHSpeechAndSound = "1"
-
- IF (EXISTS("S:PlugInPrefs")) THEN DO
- IF (~OPEN(PlugInPrefs, "S:PlugInPrefs", 'R')) THEN BREAK
- IF (READLN(PlugInPrefs) ~= "PlugInPrefs") THEN BREAK
- BEHDefaultFilePath = READLN(PlugInPrefs)
- BEHSettingsSavedTo = READLN(PlugInPrefs)
- BEHSpeechAndSound = READLN(PlugInPrefs)
- CALL CLOSE PlugInPrefs
- END
-
- /* -------------------------------------------------------------------- */
- /* Recalling Macro Settings */
- ReqCLX = 2 ; ReqCLY = 2 ; ReqCLZ = 2
- ReqBLX = 2 ; ReqBLY = 2 ; ReqBLZ = 2
-
- PrefsFileName = BEHSettingsSavedTo||MacrosName||".PLUG"
-
- IF (EXISTS(PrefsFileName)) THEN DO
- IF (~OPEN(PrefsFile, PrefsFileName, 'R')) THEN BREAK
- IF (READLN(PrefsFile) ~= MacrosName) THEN BREAK
-
- PARSE value READLN(PrefsFile) with ReqCLX ReqCLY ReqCLZ .
- PARSE value READLN(PrefsFile) with ReqBLX ReqBLY ReqBLZ .
-
- CALL CLOSE PrefsFile
- END
-
- /* -------------------------------------------------------------------- */
- /* Info on Current Layer(s) */
- CL = CurLayer()
- CLBox = BoundingBox(CL)
- PARSE var CLBox CLN CLX1 CLX2 CLY1 CLY2 CLZ1 CLZ2
- /* Current Layer Center Point */
- CLCX = (CLX1 / 2) + (CLX2 / 2)
- CLCY = (CLY1 / 2) + (CLY2 / 2)
- CLCZ = (CLZ1 / 2) + (CLZ2 / 2)
- /* Current Layer Total Size */
- CLTX = CLX2 - CLX1
- CLTY = CLY2 - CLY1
- CLTZ = CLZ2 - CLZ1
-
- /* -------------------------------------------------------------------- */
- /* Info on Background Layer(s) */
- BL = CurBLayer()
- BLBox = BoundingBox(BL)
- PARSE var BLBox BLN BLX1 BLX2 BLY1 BLY2 BLZ1 BLZ2
- /* Current Layer Center Point */
- BLCX = (BLX1 / 2) + (BLX2 / 2)
- BLCY = (BLY1 / 2) + (BLY2 / 2)
- BLCZ = (BLZ1 / 2) + (BLZ2 / 2)
- /* Current Layer Total Size */
- BLTX = BLX2 - BLX1
- BLTY = BLY2 - BLY1
- BLTZ = BLZ2 - BLZ1
-
- /* ******************************************************************** */
- /* Main Body of Code */
- CALL MenuRequester
- CALL SaveSettings
- CALL Calculations
- IF BEHInfo = 2 THEN CALL DisplayResults
- CALL Move(PosX PosY PosZ)
- CALL Exiting
-
- /* ******************************************************************** */
- /* User Interface */
- MenuRequester:
-
- CALL Req_Begin("Modify Alignment © by Brett Hester")
-
- CALL Req_AddControl("þ","T","Align Current Layer's:")
- ReqA = Req_AddControl("X","CH","Left Edge Center RightEdge X")
- ReqB = Req_AddControl("Y","CH","LowerEdge Center UpperEdge X")
- ReqC = Req_AddControl("Z","CH","FrontEdge Center Back Edge X")
- CALL Req_AddControl("þ","T","With Background Layer's:")
- ReqD = Req_AddControl("X","CH","Left Edge Center RightEdge")
- ReqE = Req_AddControl("Y","CH","LowerEdge Center UpperEdge")
- ReqF = Req_AddControl("Z","CH","FrontEdge Center Back Edge")
- CALL Req_AddControl("","T","|¼ Negative - + Positive ½|","")
- BEHInfo = Req_AddControl("",'CH',"Information Display Results")
-
- CALL Req_SetVal(ReqA, ReqCLX)
- CALL Req_SetVal(ReqB, ReqCLY)
- CALL Req_SetVal(ReqC, ReqCLZ)
- CALL Req_SetVal(ReqD, ReqBLX)
- CALL Req_SetVal(ReqE, ReqBLY)
- CALL Req_SetVal(ReqF, ReqBLZ)
- CALL Req_SetVal(BEHInfo, 0)
-
- OKorCancel = Req_Post() ; IF OKorCancel = 0 THEN CALL Exiting
-
- ReqCLX = Req_GetVal(ReqA)
- ReqCLY = Req_GetVal(ReqB)
- ReqCLZ = Req_GetVal(ReqC)
- ReqBLX = Req_GetVal(ReqD)
- ReqBLY = Req_GetVal(ReqE)
- ReqBLZ = Req_GetVal(ReqF)
- BEHInfo = Req_GetVal(BEHInfo)
-
- CALL Req_End()
-
- IF BEHInfo = 1 THEN CALL InformationWindows
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Calculations */
- Calculations:
-
- IF ReqBLX = 1 THEN XOffset = BLX1
- IF ReqBLX = 2 THEN XOffset = BLCX
- IF ReqBLX = 3 THEN XOffset = BLX2
-
- IF ReqBLY = 1 THEN YOffset = BLY1
- IF ReqBLY = 2 THEN YOffset = BLCY
- IF ReqBLY = 3 THEN YOffset = BLY2
-
- IF ReqBLZ = 1 THEN ZOffset = BLZ1
- IF ReqBLZ = 2 THEN ZOffset = BLCZ
- IF ReqBLZ = 3 THEN ZOffset = BLZ2
-
- IF ReqCLX = 1 THEN PosX = XOffset - CLX1
- IF ReqCLX = 2 THEN PosX = XOffset - CLCX
- IF ReqCLX = 3 THEN PosX = XOffset - CLX2
- IF ReqCLX = 4 THEN PosX = 0
-
- IF ReqCLY = 1 THEN PosY = YOffset - CLY1
- IF ReqCLY = 2 THEN PosY = YOffset - CLCY
- IF ReqCLY = 3 THEN PosY = YOffset - CLY2
- IF ReqCLY = 4 THEN PosY = 0
-
- IF ReqCLZ = 1 THEN PosZ = ZOffset - CLZ1
- IF ReqCLZ = 2 THEN PosZ = ZOffset - CLCZ
- IF ReqCLZ = 3 THEN PosZ = ZOffset - CLZ2
- IF ReqCLZ = 4 THEN PosZ = 0
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Display Results */
- DisplayResults:
-
- Length = 0
- IF LENGTH(PosX) > Length THEN Length = LENGTH(PosX)
- IF LENGTH(PosY) > Length THEN Length = LENGTH(PosY)
- IF LENGTH(PosZ) > Length THEN Length = LENGTH(PosZ)
- PosX = LEFT(PosX,LENGTH)
- PosY = LEFT(PosY,LENGTH)
- PosZ = LEFT(PosZ,LENGTH)
- Spacer = LEFT("",LENGTH)
-
- IF ReqCLX = 1 THEN DisplayCLX = "LEFT EDGE"
- IF ReqCLX = 2 THEN DisplayCLX = " CENTER "
- IF ReqCLX = 3 THEN DisplayCLX = "RIGHT EDGE"
- IF ReqBLX = 1 THEN DisplayBLX = "LEFT EDGE"
- IF ReqBLX = 2 THEN DisplayBLX = " CENTER "
- IF ReqBLX = 3 THEN DisplayBLX = "RIGHT EDGE"
-
- IF ReqCLY = 1 THEN DisplayCLY = "LOWER EDGE"
- IF ReqCLY = 2 THEN DisplayCLY = " CENTER "
- IF ReqCLY = 3 THEN DisplayCLY = "UPPER EDGE"
- IF ReqBLY = 1 THEN DisplayBLY = "LOWER EDGE"
- IF ReqBLY = 2 THEN DisplayBLY = " CENTER "
- IF ReqBLY = 3 THEN DisplayBLY = "UPPER EDGE"
-
- IF ReqCLZ = 1 THEN DisplayCLZ = "FRONT EDGE"
- IF ReqCLZ = 2 THEN DisplayCLZ = " CENTER "
- IF ReqCLZ = 3 THEN DisplayCLZ = "BACK EDGE"
- IF ReqBLZ = 1 THEN DisplayBLZ = "FRONT EDGE"
- IF ReqBLZ = 2 THEN DisplayBLZ = " CENTER "
- IF ReqBLZ = 3 THEN DisplayBLZ = "BACK EDGE"
-
- ReqC = ""; ReqD = ""; ReqE = ""; ReqF = ""; ReqG = ""; ReqH = ""
-
- ReqA = "!Modify Alignment © by Brett Evan Hester 214-233-5493"
- ReqB = ""
- IF ReqCLX ~= 4 THEN DO
- ReqC = "Aligning the w/BKG's ; Move X ="||Spacer
- ReqD = "@ "||DisplayCLX||" "||DisplayBLX||" "||PosX
- END
- IF ReqCLY ~= 4 THEN DO
- ReqE = "Aligning the w/BKG's ; Move Y ="||Spacer
- ReqF = "@ "||DisplayCLY||" "||DisplayBLY||" "||PosY
- END
- IF ReqCLZ ~= 4 THEN DO
- ReqG = "Aligning the w/BKG's ; Move Z ="||Spacer
- ReqH = "@ "||DisplayCLZ||" "||DisplayBLZ||" "||PosZ
- END
- ReqI = ""
-
- OKorCancel = Notify(2, ReqA, ReqB, ReqC, ReqD, ReqE, ReqF, ReqG, ReqH, ReqI)
- IF OKorCancel = 0 THEN CALL Exiting
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Recording Macro Settings */
- SaveSettings:
-
- IF (OPEN(PrefsFile, PrefsFileName, 'W')) THEN DO
- CALL WRITELN(PrefsFile, MacrosName)
-
- CALL WRITELN(PrefsFile, ReqCLX ReqCLY ReqCLZ)
- CALL WRITELN(PrefsFile, ReqBLX ReqBLY ReqBLZ)
-
- CALL CLOSE PrefsFile
- END
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Ending */
- Exiting:
-
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Information Windows */
- InformationWindows:
-
- OKorCancel = Notify(2, Info1A, Info1B, Info1C, Info1D, Info1E, Info1F, Info1G, Info1H, Info1I, Info1J, Info1K, Info1L, Info1M, Info1N)
- IF OKorCancel = 1 THEN CALL Notify(1, Info2A, Info2B, Info2C, Info2D, Info2E, Info2F, Info2G, Info2H, Info2I, Info2J, Info2K, Info2L, Info2M, Info2N)
- CALL MenuRequester
-
- RETURN
-
- /* -------------------------------------------------------------------- */
- /* Error Handling */
- SYNTAX:
- ERROR:
-
- ErrCode = RC
- ErrLine = SIGL
- ErrInfo = ERRORTEXT(ErrCode)
-
- Err1 = "!Sorry!"
- Err2 = "An Error has been detected"
- Err3 = "@þ Macro - "
- Err4 = "@þ Line Number - "
- Err5 = "@þ Error Code - "
- Err6 = "@þ Error Description -"
- Err7 = "@¤ Please Inform - "
- Err8 = ' "Error Notice" '
- Err9 = " 13032 Copenhill Rd."
- Err10 = " Dallas, TX. 75240 "
-
- Call Notify(1,Err1,Err2,Err3,MacrosName,Err4,ErrLine,Err5,ErrCode,Err6,ErrInfo,Err7,Err8,Err9,Err10)
-
- /* -------------------------------------------------------------------- */
- /* Advanced Error Handling */
- CALL SETCLIP("ErrorMacro",MacrosName)
- CALL SETCLIP("ErrorLine",ErrLine)
- CALL SETCLIP("ErrorCode",ErrCode)
- CALL SETCLIP("ErrorDesc",ErrInfo)
-
- PARSE SOURCE TempA TempB ErrFile TempC TempD TempE
-
- CALL SETCLIP("ErrorFile",ErrFile)
-
- /* -------------------------------------------------------------------- */
-
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
-