home *** CD-ROM | disk | FTP | other *** search
- /* CMD: ½Information */
- /* By Brett Evan Hester 13032 Copenhill Rd. Dallas, Tx. 75240-5302 */
- MacrosName = "Information"
- /* Macro Type: */
- /* INFORMATION * SELECTED */
- /* Description: */
-
- Info1A = "!Information © Information 1 of 2"
- Info1B = ""
- Info1C = "@This macro will provide information about the "
- Info1D = "@currently selected points, in the form of, "
- Info1E = "@measurements and distances. "
- Info1F = ""
- Info1G = "þ CENTER and SIZE of the selected. "
- Info1H = ""
- Info1I = "þ SHORTEST and LONGEST distance between any two "
- Info1J = " points. Distance provided on every axis and "
- Info1K = " distance regardless of axis. "
- Info1L = ""
- Info1M = ""
- Info1N = ""
-
- Info2A = "!Information © 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"
- /* Add Math Functions */
- MATHLIB="rexxmathlib.library"
- IF POS(MATHLIB , SHOW('L')) = 0 THEN
- IF ~ADDLIB(MATHLIB , 0 , -30 , 0) THEN DO
- CALL Notify(1,"!Can't find "MATHLIB)
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
- END
-
- /* -------------------------------------------------------------------- */
-
- LongestWidth = 0
- ShortestWidth = 9999999999999999
- LongestHeight = 0
- ShortestHeight = 9999999999999999
- LongestDepth = 0
- ShortestDepth = 9999999999999999
- Longest = 0
- Shortest = 9999999999999999
-
- /* -------------------------------------------------------------------- */
-
- CALL SEL_MODE(USER)
-
- NumberOfPnts = XFrm_Begin()
-
- BaseVector = XFrm_GetPos(1)
- PARSE var BaseVector X1 Y1 Z1
-
- LeftEdge = X1
- RightEdge = X1
-
- UpperEdge = Y1
- LowerEdge = Y1
-
- FrontEdge = Z1
- BackEdge = Z1
-
- CALL XFrm_End
-
-
- CALL Meter_Begin(NumberOfPnts, "Information © by Brett Hester","Scanning...")
-
- DO ia = 1 to NumberOfPnts
-
- NumberOfPnts = XFrm_Begin()
-
- VectorA = XFrm_GetPos(ia)
-
- PARSE var VectorA X1 Y1 Z1
-
- IF X1 < LeftEdge THEN LeftEdge = X1
- IF Y1 < LowerEdge THEN LowerEdge = Y1
- IF Z1 < FrontEdge THEN FrontEdge = Z1
-
- IF X1 > RightEdge THEN RightEdge = X1
- IF Y1 > UpperEdge THEN UpperEdge = Y1
- IF Z1 > BackEdge THEN BackEdge = Z1
-
- CALL Meter_Step()
-
- DO ib = 1 to NumberOfPnts
-
- VectorB = XFrm_GetPos(ib)
-
- PARSE var VectorB X2 Y2 Z2
-
- If X2 > X1 THEN Width = X2 - X1
- If X2 < X1 THEN Width = X1 - X2
- If X2 = X1 THEN Width = 0
- Width = ABS(Width)
-
- If Y2 > Y1 THEN Height = Y2 - Y1
- If Y2 < Y1 THEN Height = Y1 - Y2
- If Y2 = Y1 THEN Height = 0
- Height = ABS(Height)
-
- If Z2 > Z1 THEN Depth = Z2 - Z1
- If Z2 < Z1 THEN Depth = Z1 - Z2
- If Z2 = Z1 THEN Depth = 0
- Depth = ABS(Depth)
-
- Skew = Sqrt((Width * Width) + (Depth * Depth))
-
- Total = Sqrt((Skew * Skew) + (Height * Height))
-
- IF Width > LongestWidth THEN DO
- LongestWidth = Width
- END
- IF Width ~= 0 THEN DO
- IF Width < ShortestWidth THEN DO
- ShortestWidth = Width
- END
- END
-
- IF Height > LongestHeight THEN DO
- LongestHeight = Height
- END
- IF Height ~= 0 THEN DO
- IF Height < ShortestHeight THEN DO
- ShortestHeight = Height
- END
- END
-
- IF Depth > LongestDepth THEN DO
- LongestDepth = Depth
- END
- IF Depth ~= 0 THEN DO
- IF Depth < ShortestDepth THEN DO
- ShortestDepth = Depth
- END
- END
-
- IF Total > Longest THEN DO
- Longest = Total
- END
- IF Total ~= 0 THEN DO
- IF Total < Shortest THEN DO
- Shortest = Total
- END
- END
-
- END
- CALL XFrm_End
- END
- CALL Meter_End()
-
- /* -------------------------------------------------------------------- */
-
- IF LongestWidth = 9999999999999999 THEN LongestWidth = 0
- IF ShortestWidth = 9999999999999999 THEN ShortestWidth = 0
- IF LongestHeight = 9999999999999999 THEN LongestHeight = 0
- IF ShortestHeight = 9999999999999999 THEN ShortestHeight = 0
- IF LongestDepth = 9999999999999999 THEN LongestDepth = 0
- IF ShortestDepth = 9999999999999999 THEN ShortestDepth = 0
- IF Longest = 9999999999999999 THEN Longest = 0
- IF Shortest = 9999999999999999 THEN Shortest = 0
-
- /* -------------------------------------------------------------------- */
-
- Width = RightEdge - LeftEdge
- Height = UpperEdge - LowerEdge
- Depth = BackEdge - FrontEdge
-
- /* -------------------------------------------------------------------- */
- /* For Information Window */
- BEHInfo = 1
- /* For Coming Back to Main Menu after Info Window */
- DO WHILE BEHInfo
- /* -------------------------------------------------------------------- */
- /* User Interface */
- CALL Req_Begin("Information © by Brett Hester")
- /* Adding Requesters */
- ReqA = Req_AddControl("þ Center",'V', '1')
- ReqB = Req_AddControl("þ Size",'V', '1')
- CALL Req_AddControl("",'T', " Width Height Depth")
- ReqC = Req_AddControl("þ Shortest",'V', '1')
- ReqD = Req_AddControl("¤ Overall",'N', '1')
- ReqE = Req_AddControl("þ Longest",'V', '1')
- ReqF = Req_AddControl("¤ Overall",'N', '1')
- ReqG = Req_AddControl("",'CH', "Information")
- /* Setting Requesters */
- CALL Req_SetVal(ReqA, 0)
- CALL Req_SetVal(ReqB, Width Height Depth)
- CALL Req_SetVal(ReqC, ShortestWidth ShortestHeight ShortestDepth)
- CALL Req_SetVal(ReqD, Shortest)
- CALL Req_SetVal(ReqE, LongestWidth LongestHeight LongestDepth)
- CALL Req_SetVal(ReqF, Longest)
- CALL Req_SetVal(ReqG, 0)
- /* OK or Cancel? */
- OKorCancel = Req_Post()
- IF OKorCancel = 0 THEN DO
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
- END
- /* Retrieving User's Input */
- Req = Req_GetVal(ReqA)
- Req = Req_GetVal(ReqB)
- Req = Req_GetVal(ReqC)
- Req = Req_GetVal(ReqD)
- Req = Req_GetVal(ReqE)
- Req = Req_GetVal(ReqF)
- BEHInfo = Req_GetVal(ReqG)
-
- CALL Req_End()
-
- IF BEHInfo = 1 THEN CALL InformationWindows
-
- END
-
- /* -------------------------------------------------------------------- */
- /* Ending */
- IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
- EXIT
-
- /* -------------------------------------------------------------------- */
- /* 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)
-
- 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
-