home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Raytracing / Raytracer / LW5VT09.LHA / Toaster / Arexx_examples / PlugIns / QuickConvert.lwm < prev    next >
Encoding:
Text File  |  1996-06-10  |  7.1 KB  |  194 lines

  1. /* CMD: ½QuickConvert                                                   */
  2. /* By Brett Evan Hester      13032 Copenhill Rd. Dallas, Tx. 75240-5302 */
  3.     MacrosName = "QuickConvert"
  4. /* Macro Type:                                                          */
  5. /* MODIFIES    * OBJECTS   * LAYER        * REMEMBERS                   */
  6. /* Description:                                                         */
  7.  
  8. Info1A = "!Quick Convert ©               Information 1 of 2"
  9. Info1B = ""
  10. Info1C = "@This macro will resize the entire layer,        "
  11. Info1D = "@from one unit of measurement to another.        "
  12. Info1E = ""
  13. Info1F = "þ WHAT I CONSIDER ONE ... is the unit you want. "
  14. Info1G = "þ ... IS CURRENTLY ONE ... means displayed as.  "
  15. Info1H = ""
  16. Info1I = "Example:     When designing something small, one"
  17. Info1J = "option sometimes used, is to have one meter/unit"
  18. Info1K = "represent one inch. In larger designs, one meter"
  19. Info1L = "could represent one foot. This macro allows for "
  20. Info1M = "resizing the object to the proper scale.        "
  21. Info1N = "@All objs should be built to scale when possible."
  22.  
  23. Info2A = "!Quick Convert ©               Information 2 of 2"
  24. Info2B = "@               Plug-Ins and Go! ©               "
  25. Info2C = "                           Hester and associates"
  26. Info2D = "                           13032 Copenhill Road "
  27. Info2E = "                           Dallas, Texas 75240  "
  28. Info2F = "@Special Thanks to:                              "
  29. Info2G = "Arnie Cachelin  Henry Ribron    Mark J. Holland "
  30. Info2H = "J. Phil Kelso   Terry Wester    Steven K. Simms "
  31. Info2I = "Kevin DeRita    Greg Glaser     William S. Hawes"
  32. Info2J = "NewTek ©        Commodore ©     INOVAtronics ©  "
  33. Info2K = ""
  34. Info2L = "@This macro represents a lot of time & hard work."
  35. Info2M = "@Encourage people to create new ones and not kill"
  36. Info2N = "@that possibility by stealing those that are out."
  37.  
  38. /* -------------------------------------------------------------------- */
  39.                                      /* Start Error Detection (See End) */
  40. SIGNAL ON ERROR
  41. SIGNAL ON SYNTAX
  42.                                                    /* Address LightWave */
  43. VT3DLib = ADDLIB("LWModelerARexx.port",0)
  44. ADDRESS "LWModelerARexx.port"
  45.  
  46. /* -------------------------------------------------------------------- */
  47.                                     /* Reading Global Macro Preferences */
  48. BEHDefaultFilePath = "Sys:"
  49. BEHSettingsSavedTo = "T:"
  50. BEHSpeechAndSound = "1"
  51.  
  52. IF (EXISTS("S:PlugInPrefs")) THEN DO
  53.     IF (~OPEN(PlugInPrefs, "S:PlugInPrefs", 'R')) THEN BREAK
  54.     IF (READLN(PlugInPrefs) ~= "PlugInPrefs") THEN BREAK
  55.     BEHDefaultFilePath = READLN(PlugInPrefs)
  56.     BEHSettingsSavedTo = READLN(PlugInPrefs)
  57.     BEHSpeechAndSound = READLN(PlugInPrefs)
  58.     CALL CLOSE PlugInPrefs
  59. END
  60.  
  61. /* -------------------------------------------------------------------- */
  62.                                             /* Recalling Macro Settings */
  63. ReqFrom = "7" ; ReqTo = "7"
  64.  
  65. PrefsFileName = BEHSettingsSavedTo||MacrosName||".PLUG"
  66.  
  67. IF (EXISTS(PrefsFileName)) THEN DO
  68.     IF (~OPEN(PrefsFile, PrefsFileName, 'R')) THEN BREAK
  69.     IF (READLN(PrefsFile) ~= MacrosName) THEN BREAK
  70.  
  71.     ReqFrom = READLN(PrefsFile)
  72.     ReqTo = READLN(PrefsFile)
  73.  
  74.     CALL CLOSE PrefsFile
  75. END
  76.  
  77. /* -------------------------------------------------------------------- */
  78.                                               /* For Information Window */
  79. BEHInfo = 1
  80.                       /* For Coming Back to Main Menu after Info Window */
  81. DO WHILE BEHInfo
  82.  
  83. /* -------------------------------------------------------------------- */
  84.                                                       /* User Interface */
  85.     CALL Req_Begin("Quick Convert ©                                     by Brett Hester")
  86.  
  87.     CALL Req_AddControl("",'T',"                        Fill in the blanks:")
  88.     CALL Req_AddControl("",'T',"What I consider one ...")
  89.     ReqA = Req_AddControl("",'CH',"Inch Foot Yard Mile Millimeter Centimeter Meter Kilometer")
  90.     CALL Req_AddControl("",'T',"... is currently one ...")
  91.     ReqB = Req_AddControl("",'CH',"Inch Foot Yard Mile Millimeter Centimeter Meter Kilometer")
  92.     CALL Req_AddControl("",'T',"")
  93.     ReqC = Req_AddControl("",'CH',"Information")
  94.  
  95.     CALL Req_SetVal(ReqA, ReqFrom)
  96.     CALL Req_SetVal(ReqB, ReqTo)
  97.     CALL Req_SetVal(ReqC, 0)
  98.  
  99.     OKorCANCEL = Req_Post() ; IF OKorCANCEL = 0 THEN CALL Exiting
  100.  
  101.     ReqFrom = Req_GetVal(ReqA)
  102.     ReqTo = Req_GetVal(ReqB)
  103.     BEHInfo = Req_GetVal(ReqC)
  104.  
  105.     CALL Req_End()
  106.  
  107.     IF BEHInfo = 1 THEN CALL InformationWindows
  108.  
  109. END
  110.  
  111. /* -------------------------------------------------------------------- */
  112.                                                    /* Main Body Of Code */
  113. UnitVal.1 = 39370.0787400  /* Inches      */
  114. UnitVal.2 = 3280.83989500  /* Feet        */
  115. UnitVal.3 = 1093.61329800  /* Yards       */
  116. UnitVal.4 = 0.62137100000  /* Miles       */
  117. UnitVal.5 = 1000000.00000  /* Millimeters */
  118. UnitVal.6 = 100000.000000  /* Centimeters */
  119. UnitVal.7 = 1000.00000000  /* Meters      */
  120. UnitVal.8 = 1.00000000000  /* Kilometers  */
  121.  
  122. Difference = UnitVal.ReqTo / UnitVal.ReqFrom
  123.  
  124. CALL Scale(Difference, 0 0 0)
  125.  
  126. /* -------------------------------------------------------------------- */
  127.                                             /* Recording Macro Settings */
  128. IF (OPEN(PrefsFile, PrefsFileName, 'W')) THEN DO
  129.     CALL WRITELN(PrefsFile, MacrosName)
  130.  
  131.     CALL WRITELN(PrefsFile, ReqFrom)
  132.     CALL WRITELN(PrefsFile, ReqTo)
  133.  
  134.     CALL CLOSE PrefsFile
  135. END
  136.  
  137. CALL Exiting
  138.  
  139. /* -------------------------------------------------------------------- */
  140.                                                               /* Ending */
  141. Exiting:
  142.  
  143.     IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
  144.     EXIT
  145.  
  146. RETURN
  147.  
  148. /* -------------------------------------------------------------------- */
  149.                                                  /* Information Windows */
  150. InformationWindows:
  151.  
  152.     OKorCancel = Notify(2, Info1A, Info1B, Info1C, Info1D, Info1E, Info1F, Info1G, Info1H, Info1I, Info1J, Info1K, Info1L, Info1M, Info1N)
  153.     IF OKorCancel = 1 THEN OKorCancel = Notify(1, Info2A, Info2B, Info2C, Info2D, Info2E, Info2F, Info2G, Info2H, Info2I, Info2J, Info2K, Info2L, Info2M, Info2N)
  154.  
  155. RETURN
  156.  
  157. /* -------------------------------------------------------------------- */
  158.                                                       /* Error Handling */
  159. SYNTAX:
  160. ERROR:
  161.  
  162.     ErrCode = RC
  163.     ErrLine = SIGL
  164.     ErrInfo = ERRORTEXT(ErrCode)
  165.  
  166.     Err1 = "!Sorry!"
  167.     Err2 = "An Error has been detected"
  168.     Err3 = "@þ Macro -            "
  169.     Err4 = "@þ Line Number -      "
  170.     Err5 = "@þ Error Code -       "
  171.     Err6 = "@þ Error Description -"
  172.     Err7 = "@¤ Please Inform -    "
  173.     Err8 = '  "Error Notice"     '
  174.     Err9 = "  13032 Copenhill Rd."
  175.     Err10 = "  Dallas, TX. 75240  "
  176.  
  177.     Call Notify(1,Err1,Err2,Err3,MacrosName,Err4,ErrLine,Err5,ErrCode,Err6,ErrInfo,Err7,Err8,Err9,Err10)
  178.  
  179. /* -------------------------------------------------------------------- */
  180.                                              /* Advanced Error Handling */
  181.     CALL SETCLIP("ErrorMacro",MacrosName)
  182.     CALL SETCLIP("ErrorLine",ErrLine)
  183.     CALL SETCLIP("ErrorCode",ErrCode)
  184.     CALL SETCLIP("ErrorDesc",ErrInfo)
  185.  
  186.     PARSE SOURCE TempA TempB ErrFile TempC TempD TempE
  187.  
  188.     CALL SETCLIP("ErrorFile",ErrFile)
  189.  
  190. /* -------------------------------------------------------------------- */
  191.  
  192.     IF (VT3DLib) THEN CALL REMLIB("LWModelerARexx.port")
  193.     EXIT
  194.