home *** CD-ROM | disk | FTP | other *** search
/ HTBasic 9.3 / HTBasic 9.3.iso / 93win / data1.cab / Basic_Plus_Examples / STRESVIB < prev    next >
Encoding:
Text File  |  2005-03-02  |  8.2 KB  |  183 lines

  1. 10    ! ************************************************
  2. 20    ! Example: Wing Stress/Vibration Analysis
  3. 30    !
  4. 40    ! This program displays a simulated aircraft
  5. 50    ! fuselage. When the user clicks one of the
  6. 60    ! four arrows displayed, the appropriate wing
  7. 70    ! stress/vibration analysis graph is displayed.
  8. 80    !
  9. 90    !                   NOTE
  10. 100   !
  11. 110   ! You may need to maximize the screen to see
  12. 120   ! the full picture.
  13. 130   !
  14. 140   ! ************************************************
  15. 150   !
  16. 160       INTEGER Num_points
  17. 170       ASSIGN @Panel TO WIDGET "PANEL"
  18. 180       CONTROL @Panel;SET ("WIDTH":650,"HEIGHT":600)
  19. 190       CONTROL @Panel;SET ("TITLE":" Example: Wing Stress/Vibration Analysis","SIZE CONTROL":"RESIZE CHILDREN")
  20. 200       CONTROL @Panel;SET ("SIZE CONTROL":"RESIZE CHILDREN")
  21. 210       CONTROL @Panel;SET ("SYSTEM MENU":"Quit")
  22. 220       ON EVENT @Panel,"SYSTEM MENU" GOTO Finis
  23. 230   !
  24. 240       ASSIGN @Label TO WIDGET "LABEL";SET ("X":100,"Y":5,"WIDTH":400),PARENT @Panel
  25. 250       CONTROL @Label;SET ("VALUE":"Click arrows to display results")
  26. 260   !
  27. 270       ASSIGN @Bitmap TO WIDGET "BITMAP";SET ("X":15,"Y":40,"BORDER":0,"RETAIN RASTER":1,"BITMAP FILE":"HELP_EX/WINGS.BMP","LABEL":"XRJ-711 Wind Tunnel Test"),PARENT @Panel
  28. 280   !
  29. 290       ON EVENT @Bitmap,"MOUSE CLICKED" GOSUB Mouse_click
  30. 300  Looping: GOTO Looping
  31. 310   !
  32. 320  Mouse_click:               !
  33. 330       INTEGER Mouse_pos(1:2),X,Y
  34. 340       STATUS @Bitmap;RETURN ("MOUSE CLICK":Mouse_pos(*))
  35. 350       X=Mouse_pos(1)
  36. 360       Y=Mouse_pos(2)
  37. 370       IF X>=194 AND X<=213 AND Y>=230 AND Y<=260 THEN
  38. 380           GOSUB Sbup_disp
  39. 390       ELSE
  40. 400           IF X>=194 AND X<=213 AND Y>=292 AND Y<=322 THEN
  41. 410               GOSUB Sbdn_disp
  42. 420           ELSE
  43. 430               IF X>=450 AND X<=470 AND Y>=230 AND Y<=260 THEN
  44. 440                   GOSUB Prup_disp
  45. 450               ELSE
  46. 460                   IF X>=450 AND X<=470 AND Y>=292 AND Y<=322 THEN
  47. 470                       GOSUB Prdn_disp
  48. 480                   ELSE
  49. 490                       DISP
  50. 500                   END IF
  51. 510               END IF
  52. 520           END IF
  53. 530       END IF
  54. 540       RETURN
  55. 550   !
  56. 560   ! Data Section
  57. 570   !
  58. 580  Sbup_num_points: DATA 9
  59. 590  Sbup_x_data: DATA 0, 50, 100, 150, 200, 250, 300, 350, 400
  60. 600  Sbup_y_data: DATA 0, 30, 400,  20, 300,   5,   7,   4,   1
  61. 610   !
  62. 620  Sbdn_num_points: DATA 9
  63. 630  Sbdn_x_data: DATA 0, 50, 100, 150, 200, 250, 300, 350, 400
  64. 640  Sbdn_y_data: DATA 0, 60, 300,  40, 250,   5,   7,   4,   1
  65. 650   !
  66. 660  Prup_num_points: DATA 9
  67. 670  Prup_x_data: DATA 0, 50, 100, 150, 200, 250, 300, 350, 400
  68. 680  Prup_y_data: DATA 0, 35, 450,  30, 200,   5,   7,   4,   1
  69. 690   !
  70. 700  Prdn_num_points: DATA 9
  71. 710  Prdn_x_data: DATA 0, 50, 100, 150, 200, 250, 300, 350, 400
  72. 720  Prdn_y_data: DATA 0, 40, 350,  35, 230,   5,   7,   4,   1
  73. 730   !
  74. 740   ! Display Section
  75. 750   !
  76. 760  Sbup_disp:!
  77. 770       ASSIGN @Sbup_panel TO WIDGET "PANEL";SET ("X":4,"Y":4,"WIDTH":485,"HEIGHT":345,"SIZE CONTROL":"RESIZE CHILDREN")
  78. 780       CONTROL @Sbup_panel;SET ("TITLE":"Starboard Wing: Upper Skin Strain")
  79. 790       ASSIGN @Sbup_xy TO WIDGET "XY GRAPH";SET ("X":10,"Y":10,"WIDTH":454,"HEIGHT":265,"VISIBLE":0),PARENT @Sbup_panel
  80. 800       CONTROL @Sbup_xy;SET ("CURRENT AXIS":"X","AUTOSCALE":1,"AXIS LABEL":"Vibration Frequency (Hz)")
  81. 810       CONTROL @Sbup_xy;SET ("CURRENT AXIS":"Y","AUTOSCALE":1,"AXIS LABEL":"Micro Strain")
  82. 820       RESTORE Sbup_num_points
  83. 830       READ Num_points
  84. 840       ON ERROR GOTO Sbup_alloc
  85. 850       DEALLOCATE Sbup_x(*),Sbup_y(*)
  86. 860   !
  87. 870  Sbup_alloc: OFF ERROR
  88. 880       ALLOCATE INTEGER Sbup_x(1:Num_points),Sbup_y(1:Num_points)
  89. 890       RESTORE Sbup_x_data
  90. 900       READ Sbup_x(*)
  91. 910       RESTORE Sbup_y_data
  92. 920       READ Sbup_y(*)
  93. 930       CONTROL @Sbup_xy;SET ("X DATA":Sbup_x(*),"Y DATA":Sbup_y(*),"VISIBLE":1)
  94. 940       ASSIGN @Sbup_button TO WIDGET "PUSHBUTTON";SET ("X":200,"Y":278,"HEIGHT":30,"LABEL":"DONE"),PARENT @Sbup_panel
  95. 950       ON EVENT @Sbup_button,"ACTIVATED" GOSUB Sbup_done
  96. 960       RETURN !sbup_disp
  97. 970   !
  98. 980  Sbup_done: ASSIGN @Sbup_panel TO *
  99. 990       DEALLOCATE Sbup_x(*),Sbup_y(*)
  100. 1000       RETURN
  101. 1010  !
  102. 1020  Sbdn_disp:!
  103. 1030       ASSIGN @Sbdn_panel TO WIDGET "PANEL";SET ("X":4,"Y":420,"WIDTH":485,"HEIGHT":345,"SIZE CONTROL":"RESIZE CHILDREN")
  104. 1040       CONTROL @Sbdn_panel;SET ("TITLE":"Starboard Wing: Lower Skin Strain")
  105. 1050       ASSIGN @Sbdn_xy TO WIDGET "XY GRAPH";SET ("X":10,"Y":10,"WIDTH":450,"HEIGHT":265,"VISIBLE":0),PARENT @Sbdn_panel
  106. 1060       CONTROL @Sbdn_xy;SET ("CURRENT AXIS":"X","AUTOSCALE":1,"AXIS LABEL":"Vibration Frequency (Hz)")
  107. 1070       CONTROL @Sbdn_xy;SET ("CURRENT AXIS":"Y","AUTOSCALE":1,"AXIS LABEL":"Micro Strain")
  108. 1080       RESTORE Sbdn_num_points
  109. 1090       READ Num_points
  110. 1100       ON ERROR GOTO Sbdn_alloc
  111. 1110       DEALLOCATE Sbdn_x(*),Sbdn_y(*)
  112. 1120  !
  113. 1130  Sbdn_alloc: OFF ERROR
  114. 1140       ALLOCATE INTEGER Sbdn_x(1:Num_points),Sbdn_y(1:Num_points)
  115. 1150       RESTORE Sbdn_x_data
  116. 1160       READ Sbdn_x(*)
  117. 1170       RESTORE Sbdn_y_data
  118. 1180       READ Sbdn_y(*)
  119. 1190       CONTROL @Sbdn_xy;SET ("X DATA":Sbdn_x(*),"Y DATA":Sbdn_y(*),"VISIBLE":1)
  120. 1200       ASSIGN @Sbdn_button TO WIDGET "PUSHBUTTON";SET ("X":200,"Y":278,"HEIGHT":30,"LABEL":"DONE"),PARENT @Sbdn_panel
  121. 1210       ON EVENT @Sbdn_button,"ACTIVATED" GOSUB Sbdn_done
  122. 1220       RETURN
  123. 1230  !
  124. 1240  Sbdn_done: ASSIGN @Sbdn_panel TO *
  125. 1250       DEALLOCATE Sbdn_x(*),Sbdn_y(*)
  126. 1260       RETURN
  127. 1270  !
  128. 1280  Prup_disp:!
  129. 1290       ASSIGN @Prup_panel TO WIDGET "PANEL";SET ("X":535,"Y":4,"WIDTH":485,"HEIGHT":345,"SIZE CONTROL":"RESIZE CHILDREN")
  130. 1300       CONTROL @Prup_panel;SET ("TITLE":"Port Wing: Upper Skin Strain")
  131. 1310       ASSIGN @Prup_xy TO WIDGET "XY GRAPH";SET ("X":10,"Y":10,"WIDTH":454,"HEIGHT":265,"VISIBLE":0),PARENT @Prup_panel
  132. 1320       CONTROL @Prup_xy;SET ("CURRENT AXIS":"X","AUTOSCALE":1,"AXIS LABEL":"Vibration Frequency (Hz)")
  133. 1330       CONTROL @Prup_xy;SET ("CURRENT AXIS":"Y","AUTOSCALE":1,"AXIS LABEL":"Micro Strain")
  134. 1340       RESTORE Prup_num_points
  135. 1350       READ Num_points
  136. 1360       ON ERROR GOTO Prup_alloc
  137. 1370       DEALLOCATE Prup_x(*),Prup_y(*)
  138. 1380  !
  139. 1390  Prup_alloc: OFF ERROR
  140. 1400       ALLOCATE INTEGER Prup_x(1:Num_points),Prup_y(1:Num_points)
  141. 1410       RESTORE Prup_x_data
  142. 1420       READ Prup_x(*)
  143. 1430       RESTORE Prup_y_data
  144. 1440       READ Prup_y(*)
  145. 1450       CONTROL @Prup_xy;SET ("X DATA":Prup_x(*),"Y DATA":Prup_y(*),"VISIBLE":1)
  146. 1460       ASSIGN @Prup_button TO WIDGET "PUSHBUTTON";SET ("X":200,"Y":278,"HEIGHT":30,"LABEL":"DONE"),PARENT @Prup_panel
  147. 1470       ON EVENT @Prup_button,"ACTIVATED" GOSUB Prup_done
  148. 1480       RETURN
  149. 1490  !
  150. 1500  Prup_done: ASSIGN @Prup_panel TO *
  151. 1510       DEALLOCATE Prup_x(*),Prup_y(*)
  152. 1520       RETURN
  153. 1530  !
  154. 1540  Prdn_disp:!
  155. 1550       ASSIGN @Prdn_panel TO WIDGET "PANEL";SET ("X":535,"Y":420,"WIDTH":485,"HEIGHT":345,"SIZE CONTROL":"RESIZE CHILDREN")
  156. 1560       CONTROL @Prdn_panel;SET ("TITLE":"Port Wing: Lower Skin Strain")
  157. 1570       ASSIGN @Prdn_xy TO WIDGET "XY GRAPH";SET ("X":10,"Y":10,"WIDTH":450,"HEIGHT":265,"VISIBLE":0),PARENT @Prdn_panel
  158. 1580       CONTROL @Prdn_xy;SET ("CURRENT AXIS":"X","AUTOSCALE":1,"AXIS LABEL":"Vibration Frequency (Hz)")
  159. 1590       CONTROL @Prdn_xy;SET ("CURRENT AXIS":"Y","AUTOSCALE":1,"AXIS LABEL":"Micro Strain")
  160. 1600       RESTORE Prdn_num_points
  161. 1610       READ Num_points
  162. 1620       ON ERROR GOTO Prdn_alloc
  163. 1630       DEALLOCATE Prdn_x(*),Prdn_y(*)
  164. 1640  !
  165. 1650  Prdn_alloc: OFF ERROR
  166. 1660       ALLOCATE INTEGER Prdn_x(1:Num_points),Prdn_y(1:Num_points)
  167. 1670       RESTORE Prdn_x_data
  168. 1680       READ Prdn_x(*)
  169. 1690       RESTORE Prdn_y_data
  170. 1700       READ Prdn_y(*)
  171. 1710       CONTROL @Prdn_xy;SET ("X DATA":Prdn_x(*),"Y DATA":Prdn_y(*),"VISIBLE":1)
  172. 1720       ASSIGN @Prdn_button TO WIDGET "PUSHBUTTON";SET ("X":200,"Y":278,"HEIGHT":30,"LABEL":"DONE"),PARENT @Prdn_panel
  173. 1730       ON EVENT @Prdn_button,"ACTIVATED" GOSUB Prdn_done
  174. 1740       RETURN
  175. 1750  !
  176. 1760  Prdn_done: ASSIGN @Prdn_panel TO *
  177. 1770       DEALLOCATE Prdn_x(*),Prdn_y(*)
  178. 1780       RETURN
  179. 1790  !
  180. 1800  Finis:!
  181. 1810       ASSIGN @Panel TO *! Delete PANEL widget
  182. 1820       END
  183.