)‘X'tl?¢g" 1 INF 1 9‘: Q r ' . nu}. 1:! 1:. “.0”. ". . . 1;. ‘-‘ '. .‘5. . In: _ . l I ‘ -‘ . I I- ‘ whfllr. all Is I! - O- ' ‘0‘ . I Q r . Wu . ' ' I a I .I C a b D '1... I! I! ‘- 0... ..o I: In. . ‘ O i I. - to . v. .‘I I. C, . I ‘ I (If: ‘ -AI 0 J 1.! I ‘E ‘! I-.I ‘tu‘l 1H. .I!‘\ ‘I‘II‘IIIH -0” III‘II'..I‘I|.I‘II.I. TH'ESTS This is to certify that the thesis entitled COMPUTER-AIDED DESIGN OF PLANAR MECHANICAL SYSTEMS presented by John Douglas Reid has been accepted towards fulfillment of the requirements for Master' 5 degree m Mechanical Eng1neering flower Major professor Date IOMOVWW/qyg 0.7639 MS U is an Affirmative Action/Equal Opportunity Institution MSU LIBRARIES “ ‘— RETURNING MATERIALS: Place in book drop to remove this checkout from your record. FINES will be charged if book is returned after the date stamped below. .t ¢t~ l“ “a. (1-fo 5n :1- .g -l .‘ m !_ -.1 -'l .-'\ F i .. I t ‘l 1 J fl. \ . ' .2 ‘ .4 ‘ . ‘1? . ‘r.-.’ Iv‘r’ir'. "'n' i 3v: COMPUTER-AIDED DESIGN OF PLANAR MECHANICAL SYSTEMS By John Douglas Reid A THESIS Submitted to Michigan State University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE Department of Mechanical Engineering 1983 ti ABSTRACT COMPUTER-AIDED DESIGN OF PLANAR DECEANICAL srsmus By John D. Reid The designing of mechanical systems has been a problem addressed by many great engineers. In the past few decades the problem has been approached by a method known as computer-aided design (CAD). This thesis presents an interactive, bond graph based approach to the computer-aided design of planar mechanisms, from schematic diagram to system animation. The mechanisms are composed of typical mechanical elements (e.g. springs, masses and dampers). The graphical input of the mechanical system is performed on an Evans and Sutherland P8300 with a PRIME 750 as the host computer. The system is modeled mathematically by a nonlinear Lagrangian bond graph. The model is formulated for simulation of its dynamic response by a bond graph processor. The dynamic response could then be used to animate the system. in order to complete the design process. ACKNOWLEDGMENTS I would like to thank my major professor. Dr. Ronald Rosenberg. His knowledge. guidance and friendship has made this research possible. A special thanks goes to the DeVlieg Foundation for providing the fellowship that enabled me to attend Michigan State University as a graduate student. Finally, for her endless love and understanding I would like to thank my best friend and wife. Monica. ii TIBLE OF CONTENTS LISTOFTABIES............... LIST OF FIGURES . . . . . . . . . . . . . . Chapter 1. INTRODUCTION . . . . . . . . . . . . . 2. GRAPHIC DESIGN DEVELOPMENT . . . . . . 2.1 Program Design . . . . . . . . . 2.1.1 The Master Menu . . . . . 2.1.2 The Medify Menu . . . . . 2.1.3 The Drawing Menu . . . . . 2.2 Data Base Design . . . . . . . . 2.3 Program Implementation . . . . . 3. BOND GRAPH DEVELOPMENT . . . . . . . . 3.1 Procedure Design . . . . . . . . 3.1.1 The prology of the System 3.1.2 The Bond Graph Model . . . 3.1.3 The Simplified Bond Graph 3.2 Data Base Design . . . . . . . . 3.2 PrOgram Implementation . . . . . 4. EXAMPLES . . . . . . . . . . . . . . . 4.1 Spring-mass-damper System . . . . 4.2 lass-spring Pendulum . . . . . . iii Page vi 12 12 15 15 22 29 34 4O 4O 46 Page Chapter 4.3 Vehicle Suspension . . . . . . . . . . . . . . . . . . 52 5.SUMMARYANDCONCLUSIONS .................. 55 LIST OF REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . 56 APPENDICES A. SOURCE CODE FOR DESIGN . . . . . . . . . . . . . . . . . . A1 B. TRANSFORMER FUNCTIONS . . . . . . . . . . . . . . . . . . . B1 C. SOURCE CODE FOR BILDBG . . . . . . . . . . . . . . . . . . C1 D. SPRING-MASS-DAMPER RESULTS . . . . . . . . . . . . . . . . D1 E. MASS-SPRING PENDULUM RESULTS . . . . . . . . . . . . . . . E1 F. VEHICLE SUSPENSION RESULTS . . . . . . . . . . . . . . . . F1 iv LIST OF TIBLES Page T‘blo 1. “tion WPO‘ O O O O O O O O O O O O O O O O O O O O O O 22 T.b1 o 2 0 End P01 at “p. ‘ O O O O O O O O O O O O C O O O O O O O 27 Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. LIST OF FIGURES The Graphic Design Menus The Master Menu . . . . . The Modify Menu . . . . . The Drawing Menu . . . . Graphic Design Flowchart Graphic Design Calling Tree Structure Lagrangian Bond Graph . . . . . . . . A General Connector . . . Bond Graph Between a Connector and its End Points A Connector Attached to a Mass Bond Graph Between a Connector EP A Connector Attached to a Bar . Bond Graph Between a Connector EP The Bond Graph Bond Graph for Bond Graph for Bond Graph for Bond Graph for Bond Graph for Bond Graph for Bond Graph for for a Connector Motion Type Motion Type Motion Type Motion Type Motion Type Motion Type Motion Type vi 0 1 and Mass MP . Joint MP Page 10 11 13 16 17 19 19 20 21 23 24 24 25 25 25 26 26 Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Bond Graph for End Point Type 1 . . . . Bond Graph for End Point Types 2 and 3 Bond Graph for End Point Types 4. 5, 6 and 7 . Bond Graph for End Point Types 8. 9. 10 and 11 layout of Transformer Data (MTFDAT) . . BILDBG Flowchart . . . . . . . . . . . Calling Tree Structure of BILDBG . . . BG Flowchart . . . . . . . . . . . . . Calling Tree Structure of BG . . . . . Spring-mass-damper System . . . . . . . Bond Graph for Spring-mass-damper System Mass-spring Pendulum . . . Bond Graph for the Motion Points . . . Inertia-elements Added to the Bond Graph Connector 81 Added to the Bond Graph . Nodes and Bonds Between 81 and M1 Added The Completed Bond Graph From BILDBG . Planar Vehicle Suspension . . . The Vehicle Suspension Drawn By DESIGN Lagrangian Bond Graph for the Vehicle Suspension vii Page 28 28 28 29 32 35 36 38 39 41 45 47 48 49 49 5O 51 52 53 54 idil Lug: test car; ‘3'! nh‘ Chapter 1 INTRODUCTION The mathematical modeling of mechanical systems has been a problem addressed by many great scientists. including Newton. Hamilton and Lagrange. With the advances in computer technology in the past few decades the problem has been approached by a method known as computer-aided design (CAD). This thesis presents an interactive approach to the computer-aided design of planar mechanical systems. from schematic diagram to system animation. The crux of the problem consists of modeling the system and studying the dynamic response of the system. One distinction among types of problems depends upon the inertia characteristics: (1) Rigid body inertias and (2) Mass point inertias. Spatially. the range of mechanical design problems extends from simple 1-dimensional systems to generally complex 3-dimensiona1 systems. Systems containing both rigid bodies and mass points have been studied from two viewpoints. planar (2-D) and 3-dimensional systems. MAP [1]. DRAM [2] and VEONIET [3] are computer programs that simulate planar mechanisms. while IMP [4] and ADAMS [5] are programs that take the 3-D approach. 2 - Mass point and rigid body systems may be studied by the use of bond graphs [6]. [7]. [8]. Bond graphs have generally been classified for processing into two types. linear and nonlinear. There exist today programs to handle both types of bond graphs. ENFORT [9] is a mature program for simulating linear systems. while recently POLSYAS [10]. GEM [11]. and CAMP [12] have been developed to handle nonlinear bond graphs. Computer-aided design of mechanical systems consists of combining computer-aided drafting and mechanical problem simulation software into a complete mechanical design station. The design process starts with a schematic representation and the required geometry and parameters of the system to be designed. From there it is a five step process to design the mechanism in a CAD environment: namely. 1. Draw the design on the computer using an interactive program. 2. Model the system internally in some pre-determined way. 3. Calculate the dynamic response of the system. 4. Animate the graphic display according to the results from 3. 5. Change desired values and repeat the process until the design objectives are satisfied. In this work the first step was performed on an Evans and Sutherland P8300 computer using a PRIME 750 as the host computer. The work has been carried out in the A. H. Case Center for Computer-Aided Design. a facility of the College of Engineering. 3 The system is modeled by a nonlinear bond graph. Specifically. the Lagrangian bond graph approach [13]. [14] is applied to formulate the desired model. One of the advantages of using bond graphs is that they can handle problems involving several energy types. e.g. mechanical. electrical. hydraulic and so on. Bond graphs also allow one to study the dynamic structure of a problem by using causality. which can be a very useful aid to orginizing equations in nonlinear mechanisms. It is intended that the dynamic response will be calculated from the bond graph models by a nonlinear bond graph processor. Or the models could be expressed in a form suitable for processing by another simulation program. The work described in this thesis covers the graphic design portion and the internal modeling of the system such that it will be compatible with a nonlinear bond graph processor. Additional work will be required to use the dynamic response to animate the system. in order to complete the design process. Chapter 2 describes the interactive program that is used for the graphical input of the mechanical system. Then in Chapter 3 we discuss the bond graph formulation program used to model the mechanical system. Chapter 4 illustrates the use and capabilities of the graphic design program (DESIGN) and the bond graph formulation program (BILDBG). Finally. a summary and some conclusions are discussed in Chapter 5. Chapter 2 GRAPHIC DESIGN DEVELOPMENT The objective of this section is to describe in detail an interactive program that can draw a desired mechanism on the computer using a set of standard mechanical elements. For an illustration of its use see Chapter 4. which can be read before this Chapter. The program is menu driven such that satisfactory drawings can be created easily. saved. restored and modified. Items are added to the drawing one at a time. Each item can be translated. rotated and scaled to achieve its desired orientation. A label is added to each item for ease of identification. Each item. once added to the design. can be re-oriented. deleted or replaced by another item. 2.1 Program Design The graphics program consists of three menus: 1. The Master Menu. 2. The Modify Menu and 3. The Drawing Menu. The three menus appear on the right hand side of the screen as shown in Figure 1. The menu that is in use at any particular time is high-lighted by a surrounding box. The function of each menu will now be examined. 5 CREATE NEW FILE RESTORE OLD FILE MODIFY FILE SAVE FILE EXIT PROGRAM ADD NEW ITEM CHANGE ITEM LOCK IN ITEM DELETE ITEM P REPLACE ITEM RETURN WW5FO> museum 3 % E:;—————::j o-/\/\/\r-° n o—EF’O r VR A M [:3 EXIT E Figure 1. The Graphic Design Menus 2.1.1 The Master Menu The Master Menu controls the main flow of the graphic design program. There are five Options available within this menu (see Figure 2). The options perform the following tasks: a. Create a new file. b. Restore an old file. c. Modify the current file in memory. This option causes the program control to go to the Modify Menu. d. Save the current file. e. Exit the program. Note: Unless specified otherwise. the control of the program stays in the current menu after performing the desired option. 2.1 In N. I H 6 C CREATE NEW FILE R RESTORE OLD FILE M MODIFY FILE S SAVE FILE E EXIT PROGRAM Figure 2. The Master Menu 2.1.2 The Modify Menu The modify menu controls the six modification options that are available for a given design (see Figure 3). These options are: a. Add a new item to the design. This option causes the program control to go to the Drawing Menu. b. Change the orientation of an item. c. Lockin the current item to its current orientation. 6. Delete an item from the design. e. Replace an item by another type of item. f. Return to the Master Menu. A ADD NEW ITEM C CHANGE ITEM L LOCK IN ITEM D DELETE ITEM RP REPLACE ITEM R RETURN Figure 3. The Modify Menu 2.1.3 The Drawing Menu The drawing menu consists of the 11 items that are used to make a design (see Figure 4). Upon entering the Drawing Menu the user is asked which item he/she desires to add to the design. Acting upon this input. the chosen item is added and control of the program goes back to the modification menu (Modify). If no item is to be added there is an exit option that returns the program to the modification menu. I" J 525i \ A! G /}VITV/’/JI /\/\A¢N/\/\ R B If 1 g J S O--’VNPv—-43 .::::%> p DO—CE—o y" VR p A 6—; VL u [:3 EXIT E Figure 4. The Drawing Menu The elements on the left side of Figure 4 consists of a ground (6). a bar (B). a spring (8). a damper (D). a pin (P). and a mass (M). The right side consists of'a friction (R). a joint (J). a force (F). and a right (VR) and left (VL) velocity. 2.2 Data Base Design The data base design incorporates the variable naming conventions and the storage requirements that handle the graphical representation of the _design. Each drawing is composed of numerous items. Each item has: 1. An individual name. 2. A standard element type associated with it (e.g. spring. mass). 3. An orientation definition consisting of: x-translation x-scaling y-translation y-scaling z-rotation overall scaling 4. A label and its corresponding x and y position. The naming conventions and storage requirements will be discussed next. The I of :1: previc to sit tires: 1nd tl TASS4 Ihtrc to th. Each Vizh 0‘ Ba; 8 The individual name given to each item is stored in the array ITMLST. The name of each item is composed of the first few characters of the type of element it is. followed by the number of that type of element previously added to the drawing plus one. For example: suppose you want to add a mass to the drawing and there have been three masses added already. Then. the name of the new item is made by concatenating 'MASS' and the number of masses previously added plus one (i.e. NUMM+1). Thus. MASS4 is the name of the new item and will be stored in ITEST( ITEMN ). where ITEMN is the number given to each item relative to when it is added to the drawing. NUMM stands for the NUMber of Masses added to the design. Each element has its own numbering system starting with NUM and ending with the first character of that type of element (e.g. hUlB is the NUMber of Bars added to the drawing). The element type of each item is stored in ITMTYP. (e.g. Suppose the fourth item added is a spring. Then. ITEMN=4 and ITMTYP( ITEMN )= SPRING.) The orientation of an item is given by: x-translation = TRANSX ( ITEMN ) y-translation = TRANSY ( ITEMN ) z-rotation = ROTZ ( ITEBN ) x-scaling = SCLX ( ITEMN ) y-scaling = SCLY ( ITEMN ) overall scale = SCL ( ITEMN ) The label of an item begins with the first letter of She type of element it is. followed by a user specified number (between 1 and 20). This allows the user freedom in the labelling convention and also provides an easy way to identify each item. No two labels can be identical. The 9 label name is stored in ITMLBL. The label position is stored in LBLPOS. The x-position is stored in LBIPOS( ITEMN.1 ). while the y-position is stored in LBLPOS( ITEMN.2 ). The origin. which is supplied on all drawings. is stored as item number 39. This allows the user to re-orient the origin to his/her specifications. 2.3 Program Implementation Because the design program is menu-driven the programming code consists of an initialization section and the three menu handling sections discussed in 2.1. Figure 5 is a general flow chart of the design program. On the left side are the user inputs required by the program. On the right side is the computer output of the program. User input and computer output depend upon the user menu option selection. The main subroutine calling tree structure is depicted in Figure 6. 10 USER INPUT COMPUTER OUTPUT PROGRAM INITIALIZATION Menu Option MASTER MENU File Handling 4%>Data File Saved Filename \ Options 7%:Restored Design >:Exit Program Menu Option—————————>~ MODIFY MENU Label Nameee —————————>.Re-oriented Item Dial Network :1 Modifications Deleted. Changed or Input Replaced Item Menu Option 5;; DRAWING MENU Element Option Item Added to the Design Figure 5. Graphic Design Flowchart DESIGN CMINIT MENU MASTER CREATE RESTOR MODIFY SAVE DRAWNG 11 DESIGN CMIN IT MASTER MW // \\ CREATE RESTOR MODIFY SAVE DRAWNG Figure 6. Graphic Design Calling Tree Structure These main subroutines perform the following functions: - Acts like a driver program. - Initializes the variables. - Sets up the required Evans and Sutherland menus. objects and networks. - Controls the Master Menu. - Creates a new file. - Restores an old file. - Controls the Modify Menu. - Saves the current file. — Controls the Drawing Menu. There are 15 utility subroutines that are called from a number of locations. LABELS POSLBL UNLOCK LOCKIN HLIGHT These subroutines are named: ADITEM GETDAT REJNIT GETITM DISFIL INCREM CONECT INPUT D IS (IN RESET The source code and descriptions of all the graphic design subroutines can be found in Appendix A. Chapter 3 BOND GRAPH DEVELOPMENT Once the graphic design is complete. the next step is to construct a bond graph. The objective of this chapter is to describe in detail how this task is accomplished. The program developed for this task will be referred to as BILDBG. An illustration of its use is given in Chapter 4, which can be read before this Chapter. 3.1 Procedure Design The Lagrangian bond graph concept is used to develOp the bond graph. The general Lagrangian bond graph is shown in Figure 7. The bond graph is develOped by starting with the generalized coordinate velocities and building out towards the Compliance-field, Inertia-field. Resistive-field and Source-field through multi-port transformers (MTF's). The procedure used by BILDBG employs this concept with the exception that instead of generalized coordinate velocities. BILDBG uses what are to be known as motion point velocities. Motion points are the elements that describe the motion of the system. The motion point elements are: masses. bars. joints. pins (fulcrums) and grounds. The allowable motions for each motion point 12 13 describe the system motion point velocities. The allowable motions for the motion points are: Masses - x. y (translational) and theta (angular) motion. Bars - x. y (translational) and theta (angular) motion. Joints - x and y (translational) motion. Pins - No motion. Grounds - No motion. as...“ c ¢::::::::1 4::::::::MTF.¢E:::::: 1 :::=:£:; MTF :::::f:>.l :::::=:> I gm<;::+a<;::g¥;::: Figure 7. Lagrangian Bond Graph Note. Nodes are sets of elements. Bonds are vector bonds. In order for the motion points to be a complete description of the system motion. a design requirement must be imposed upon the drawing: All elements that are not motion points must be connected to motion points. For example. a spring and damper in series must be connected through a joint. This will not effect the system solutions. create this i is I] coord tort: for: (232' r The A] 14 When motion points are connected to other motion points. BILDBG creates an internal rigid connector between the two motion points. If this occurs some of the motion points become dependent. This dependency is the difference between using motion point velocities and generalized coordinate velocities. However. the system results are still equivalent. All elements that are not motion points are referred to as connectors. The connector elements are: springs. dampers. frictions. forces. velocities and rigid connectors. These elements define the compliance. resistive and source fields in the following way: Compliance-field : Springs and rigid connectors. Resistive-field : Dampers and frictions. Source-field : Forces and velocities. Therefore. each connector has an element type that it is associated with. These types are referred to as connector types. The connector types are: Springs : C-elements. Dampers : R-elements. Frictions : R-elements. Forces : SE-elements. Velocities : SF-elements. Although the rigid connector has its own unique definition. the rigid connector will be treated like a stiff spring. The Inertia-field is made by appending I-elements to the apprOpriate mass motion point velocities. In order to construct the bond graph the topology of the system must first be known. 15 3.1.1 The Topology of the System There are two methods of obtaining the tepology of the system: 1. Inspect the geometric description of each item and check to see if it is within a specified distance from another. 2. Ask the user for the connection network (i.e. topology). Due to the complexity of implementing the first method. method two is used in this work. By asking the user which items are connected to each motion point the connection network is obtained in a systematic way. If the user states that a motion point is connected to another motion point a rigid connector is created internally between the two motion points at that time. 3.1.2 The Bond Graph Model BILDBG develops the bond graph in three steps. they are: 1. Create a 1-Junction for each motion point velocity. 2. Append I-elements to the mass motion l-Junctions and create the bonds between. 3. For each connector. create a node corresponding to the connector type. Then build the bond graph from the connector to the motion point velocities that the connector is attached to. For step 1. the number of motion point velocities is equal to the sum of the number of allowable motions for each motion point. There are three allowable motions for each mass and bar (x.y and theta). There are two allowable motions for each joint (x and y). Therefore. the number of motion point velocities (NMPVEL) is given by the expression 16 NMPVEL = 3‘NUMM + 3‘NUMB + 2‘NUMJ (3.1) Step 2 consists of appending I-elements to each mass motion point velocity. Therefore. there are three times the number of masses I-elements added to the bond graph. A bond is then created between each I-element and its corresponding mass motion point velocity. The third step starts by creating a node corresponding to each connector. In general. each connector has two end points (EPl and EP2). and each end point (EP) has an associated x and y motion. See Figure 8. CONNECTOR ’1. x b EP: Figure 8. A General Connector The relative displacement of a connector (L) is given by L = [ (3a"b)2 + (yry'b)2 11/2 (3.2) where a and b correspond to end points 1 and 2 respectively. The relative velocity is found by differentiating equation (3.2). This is found to be 17 L = r1.£. + ”2.55 + 1‘3.£. + £4.51, (3.3) where 11 = A’(x.-xb) (3.3a) r2 = A‘(y‘-yb) (3.3b) r3 = -A‘(x‘-xb) (3.3s) 1f4 = ’A‘(y.-yb) (3.3a) A = [ (x._xb)2 + (ya-Yb)2 III-1,2 (3.30) Note. A super-dot indicates a time-derivative. A general bond graph can now be constructed between a connector and its associated end points (see Figure 9). Special cases of connector types will be discussed in section 3.1.3 of this chapter. These special cases will allow the bond graph to be simplified in certain systems. C-TYPE a 1‘1 r3 xb MTF-—-—-——-—-I _m\o/ s..- Figure 9. Bond Graph Between a Connector and its End Points 18 Each connector end point is connected to a motion point. Tb complete the bond graph. the relationship between the connector end point velocities and the motion point velocities that the connector is connected to. must be determined. This relationship depends upon the type of motion point in question. Figure 10 shows a connector attached to a mass. In general. the mass motion point has x. y and theta motion. The mass motion point is considered the center of the mass. The connector end point has only x and y motion. The relation between the two is given by xEP = xMP + 8.008(9MP) - b‘sin(9up) (3.4) YEP = yMp + l‘sin(9MP) + b'cos(OMp) (3.5) where a and b are the x and y distances between the mass motion point and the connector end point respectively. Differentiating equations (3.4) and (3.5) gives us the desired velocity relationships: namely. 35p = yup + rz‘é (3.7) where r1 = -[ a‘sin(9up) + b’cos(GMp) ] (3-5‘) 1.2 3 8.008(9Mp) ' b‘sin(OMp) (3.73) 19 MASS Y 9 MP x I l b I a RP -— —--- h!) CONNECTOR Figure 10. A Connector Attached to a Mass The bond graph is now defined between a connector end point and a mass motion point (see Figure 11). 0 We 1 Figure 11. Bond Graph Between a Connector EP and a Mass MP 20 The bar (massless rod) is similar in motion to the mass element. The difference between the two elements is that the bar has no moment of inertia. Figure 12 shows the required geometry in order to define the relationship between a connector end point and a bar motion point. The bar motion point is defined as the point on the bar that is considered its rotation point. u ’l y U I ' X9 1’55 m ——~ ‘ x CONNECTOR Figure 12. A Connector Attached to a Bar The corresponding equations between a bar and a connector end point are 15p = xMP + a‘cos(OMp) (3.3) YEP yMp + l‘:in(9Mp) (3.9) Differentiating gives ‘59 = in? + ri‘é (3.10) 9s? = imp + rz‘é (3.11) where 21 -a‘sin(9up) (3.10s) a‘cos(OMp) (3.11s) The bond graph between a connector end point and a bar motion point is equivalent to the bond graph used for a mass motion point with equations (3.9a) and (3.10s) used in the multi-port transformer equations. (See Figure 11). When a connector end point is attached to a joint motion point. the end point is considered to move the same as the joint. Figure 13 depicts the required bond graph for this case. However. in general. the bond graph of Figure 13 is equivalent to the bond graph of Figure 11 with the transformer moduli (r1 and r2) equal to zero. ‘EP 1MP 1 1 l l YEP YMP 1 1 Figure 13. Bond Graph Between a Connector EP and a Joint MP A connector end point attached to a pin or ground requires no nodes or bonds attached to that particular end point. However. in general. the bond graph is the same as shown in Figure 11. The fact that there is no motion at that particular end point will become apparent because the motion points for pins and grounds have no displacements and zero velocities. 22 The general bond graph for each connector has now been defined (see Figure 14). It is easy to see from Figure 14 that even the simplest systems would be modelled by a large number of nodes and bonds. The next section of this chapter will discuss some of the reduction techniques available to simplify this general bond graph. 3.1.3 The Simplified Bond Graph In a given system each motion point has an associated motion type. The motion type defines the allowable motions for a given motion point. There are eight different motion types. see Table 1. Table 1. Motion Types MOTION TYPE ALLOWABLE MOTION REQUIRED BOND GRAPH O No Motion Figure 15 1 X only Figure 16 2 Y only Figure 17 3 ‘X and Y Figure 18 4 Theta only Figure 19 5 X and Theta Figure 20 6 Y and Theta Figure 21 7 X. Y and Theta Figure 11 Specifically. the ground and pin motion points have motion type 0. Joints can have motion types 0, 1. 2 or 3. Bars and masses can have any 0f the eight types. 23 I 0 J‘um éum Yum C-TYPE 1 1 1 0 é 0 1:MP2 MP2 mm Figure 14. The Bond Graph for a Connector poi not dtv 101 gm pn 24 The bond graph between a motion point and an attached connector end point is constructed in BILDBG according to the motion type for that motion point. Figures 15 through 21 show the bond graphs that are developed for motion types 0 through 6 respectively. The bond graph for motion type 7 is the same as Figure 11. It is noted that the bond graphs for motion types 0 through 6 are simplifications of motion type 7. The motion types for each motion point are obtained by asking the prOgram operator for the information. 0 *EP IMP 1 1 0 I yEP yup 1 1 Figure 15. Bond Graph for Motion Type O xEP xMP 1 1 O §EP yup 1 1 Figure 16. Bond Graph for Motion Type 1 25 1‘EP 1MP 1 1 D O YEP YMP 1 1 Figure 17. Bond Graph for Motion Type 2 ‘EP xMP 1 1 YEP YMP 1 11 1 Figure 18. Bond Graph for Motion Type 3 iEP 1 4— MTF \\\\\\\\\\\\‘éup 1 YEP ’/////////’/’ l MTF Figure 19. Bond Graph for Motion Type 4 9 YEP \ MTF/ 1 Figure 20. Bond Graph for Motion Type 5 1 0/ 1 Figure 21. Bond Graph for Motion Type 6 It is apparent from Figures 15 through 21 that certain end point l-Junctions are not required. (i.e. the end points that do not extend to the motion point l-Junctions). This further simplification is performed by studying each connector. In general. each connector is attached to two motion points. Each of these two motion points has an associated motion type. Because of this, there are twelve different types of bond graphs from the connector 27 node to the connector end point l-Junctions. These different types are referred to as end point types. Table 2 describes each of these end point types. Note that only five bond graphs are required to demonstrate the end point types. but these five bond graphs actually represent twelve different bond graphs when implemented in BILDBG. Table 2. End Point Types END POINT MOTTON POINT 1 MOTTON POINT 2 REQUIRED BOND TYPE MOTION TYPE MOTTON TYPE GRAPH 1 1 or 2 0 Figure 22 OR 1 O 1 or 2 2 3. 4. 5. 6 or 7 0 Figure 23 3 O 3. 4. 5. 6 or 7 Figure 23 4 1 1 Figure 24 5 l 2 Figure 24 6 2 1 Figure 24 7 1 2 Figure 24 8 3. 4. 5. 6 or 7 1 Figure 25 9 3. 4. 5. 6 or 7 2 Figure 25 10 l 3. 4. 5. 6 or 7 Figure 25 11 2 3. 4. 5. 6 or 7 Figure 25 12 3. 4. 5. 6 or 7 3, 4. 5. 6 or 7 Figure 9 Thus. the bond graph between a connector and the motion points that it is connected to is generated in the following way: 1. Create a node according to the connector type. 2. Determine the end point type of the connector. 3. Develop a portion of the bond graph according to Table 2. 4. Determine the motion type of the motion points attached. 5. Finish the bond graph for this connector according to Table 1. Examples of this process will be given in Chapter 4. Certain connectors are shown as having only one end point. Inputs of force and velocity. However. these connectors can be treated as if 28 they did have two end points with the second end point having motion type 0. EP MP C-TYPE 1 1 Figure 22. Bond Graph for End Point Type 1 ‘EP MTF .1 C-TYPE 0 0 YEP MTF 7 1 Figure 23. Bond Graph for End Point Types 2 and 3 C-TYPE EP2 r/////’///’MTF 1 0 ‘\\\\\\\\\\ EPl MTF 1 Figure 24. Bond Graph for End Point Types 4. 5. 6 and 7 C-TYPE————0 / \\\\\\\\\\ ‘ YEP MTF 1 EP MTF 1 Figure 25. Bond Graph for End Point Types 8. 9. 10 and 11 3.2 Data Base Design The data base consists of four sections: namely. 1. The item lists. 2. The topology of the system. 3. The geometry of the system. 4. The bond graph. The item lists separate the motion points and connectors and also store the type of each. The motion points are stored in MPNAM in the following order: masses. bars, joints. grounds and pins. The number of motion points is NMP. The motion type associated with each motion point is stored in MOTTYP. The number of allowable motions for each motion point is stored in NLDT( MOTIYP ). The connectors are stored in CNNAM in the following order: springs. dampers. frictions. forces. velocities and rigid connectors. The number of connectors is NCN. The end point type associated with each connector is stored in IEPTYP. 30 The topology of the design is stored in two ways. The first way is a list of motion points on a given connector (MPONCN). The motion point attached to end point 1 of connector NOV is stored in MPONCN( NCN.1 ). while the motion point attached to end point 2 is stored in MPONCN( NCN.2 ). The second method of storing the tapology is by a list of connectors incident on a given motion point (CNONMP). CPTR is the pointer that identifies which connectors in CNONMP are attached to a given motion point. For example. the connectors attached to motion point NMP are found in CNONMP( CPTR( NMP ) ) through CNONMP( CPTR( NMP+1 ) - 1 ). The required geometry of the system is stored in GEOMAS and GEDBAR. GEOMAS stores the local geometry between a mass center and an attached connector. For example. let connector NCN be attached to the mass NMASS. Then the x-distance from the mass center to the connector end point is stored in GEOMAS( NMASS.NCN.1 ). while the y-distance is stored in GEOMAS( NMASS.NCN.2 ). GEOBAR stores the local geometry between a bar (point of rotation) and an attached connector. For example. let connector NCN be attached to the bar NBAR. Then the distance between the two is stored in GEOBAR( NBAR.NCN ). The bond graph is stored in two parts. First. the actual bond graph. consisting of nodes and bonds. is stored in the same manner as in ENFORT: namely. IELLST - List of nodes by type number. NBIMX - Bonds incident on a given node. 31 IBMX Nodes adjacent to a given bond. NPTR — Pointer to start of bonds in NBIMX for node I. NEL - NUmber of nodes. NBD NUmber of bonds. Second. the transformers and the relationship between the bond graph and the graphic design must be maintained. The relationship between the bond graph and the graphic design consists of maintaining the position and velocity of the motion points. connectors and connector and points. The position and velocity for the motion points are stored in XMP and VMP respectively. Each motion point is considered to have three positions and velocities. namely. x. y and theta. Thus. the position and velocity of motion point NMP is found in: x-position - XMP( NMP‘3-2 ) y-position - XMP( NMP‘3-1 ) O-position - XMP( NMP‘3 ) x-velocity - VMP( NMP‘3-2 ) y-velocity - VMP( NMP*3-l ) O-velocity - VMP( NMP‘B ) IXMPPT points to the location in XMP and VMP for a given node. The position and velocity of a connector end point are stored in XEP and VEP respectively. Each connector has two end points and each end point has an x and y description. Therefore. each connector requires four locations in XEP and VEP for their end point values. For example. the position and velocity of connector NCN end points are found in: x-position of EPl - XEP( NCN‘4-3 ) y-position of EPl - XEP( NCN‘4-2 ) x-position of EP2 - XEP( NCN‘4-1 ) y-position of EP2 - XEP( NCNs4 ) x-velocity of EPl - VEP( NCNs4-3 ) 32 y-velocity of EPl - VEP( NCN‘4-1 ) x-velocity of EP2 - VEP( NCN‘4-2 ) y-velocity of EP2 — VEP( NCN‘4 ) IXEPPT points to the associated node number of a given and point. For example. the node corresponding to the x-displacement of end point 2 of connector NON! is IXEPPT( NCN‘4-1 ). The connectors require a relative displacement and velocity. These values are stored in XCN and VCN. IXCNPT points to the node corresponding to a given connector. The values for a connector are calculated by Function 5. Function 5 is described later in this section. The transformers are stored in sequential order in MTF. For example. MTF( NTF ) is the node number of transformer NTF. The required information pertaining to a given transformer is stored in MTFDAT. Figure 26 depicts the general layout of MTFDAT. The value of a transformer is stored in MTFVAL. MTF MODULATED NUMBER 1 FUNCTION CON STAN TS ARGUMENTS FU NCT ION OF PO INTERS NUMBER NUMBER POINTERS 2 3 NTF Figure 26. layout of Transformer Data (MTFDAT) 33 Five function types are required to handle the transformers. Function types 1 through 4 handle the transformers between a connector end point and a motion point theta l-Junction. These functions correspond to the following transformers: Function 1 - Transformer between a connector i l—Junction and a mass motion point 6 l-Junction. Transformer between a connector y l-Junction and a mass motion point G 1-Junction. Transformer between a connector i l-Junction and a bar motion point G l-Junction. Function 4 - Transformer between a connector i 1-Junction and a bar motion point O 1-Junction. Function 2 Function 3 These four functions require a function number. 1 or 2 constants and 1 argument. The constant(s) is the local geometry between the motion point and the attached connector end point. The argument is a pointer to the location of the value of theta of the motion point involved. This value is stored in XMP( argument ). as mentioned previously. Function type 5 handles the transformers between a connector and its end point 1-Junctions. There are no constants required. There are four arguments required. These arguments are the pointers to the x and y positions of each end point in XEP. The modulated function number is the number corresponding to the MTF in question of Figure 9. For example. let the modulated function number he 2. Then. from Figure 9 we know the MTF in question is the MTF between the O-Junction and the ya l-Junction. This number is used to identify which expression in Function 5 that gives the value for this transformer. Note. Function 5 evaluates multiple expressions. Some of these expressions are the desired values for the other transformers associated with the connector that is associated with this transformer. Next. in MTFDAT. is the 34 number of pointers that follow. These pointers are used to identify the .other transformers in MTF that have been satisfied due to this transformer calling Function 5. The transformer functions and descriptions can be found in Appendix 3.3 Program Implementation The flow of BILDBG is depicted in Figure 27. The calling tree structure of BILDBG is shown in Figure 28. The main subroutines of BILDBG perform the following functions: BILDBG RESTOR REORDR INITBG CONECT GETMOT GETGEM BG RESULT The driver of the program. Restores the graphical data of the system. Re-orders the items into motion points and connectors. Initializes the required variables. Determines the tOpology of the system. Gets the allowable motion for each motion point. Gets the required local geometry between the mass and bar motion points and there attached connector and points. Builds the bond graph. Writes all pertinent information to a file. Note: BILDBG calls the above subroutines in the same order as they are listed. 35 USER INPUT Filename PROGRAM INTTTIALIZATION Connectors attached Determine the Topology to motion points of the system. l Allowable motions Determine the allowable for motion points 35F motions for each motion point. Local geometry Determine the local geometry between the motion points and attached connectors. l CREATE THE BOND GRAPH Figure 27. BILDBG Flowchart 36 RESTOR REORDR INITBG CONECT \\ BILDBG -~\\---\~\~\~\\acETMOT ETGEM BG RESULT Figure 28. Calling Tree Structure of BILDBG 37 Subroutine 86 is the subroutine that actually builds the bond graph. The flow of BG is depicted in Figure 29. Figure 30 depicts BG's calling tree structure. The main subroutines of 86 perform the following functions: 86 - The driver for deve10ping the actual bond graph. GETEPS - Gets the end point type of a specified connector. (NTFEP - Stores the transformer data between a connector and its end points. CNMP3 - Creates the bond graph from a connector O-Junction to the specified motion point 1-Junction for motion types 1. 2 or 3. CNMP4 - Creates the bond graph from a connector O-Junction to the specified motion point l-Junctions for motion type 4. CNMPS - Creates the bond graph from a connector O-Junction to the specified motion point 1-Junctions for motion type 5. CNMP6 - Creates the bond graph from a connector O-Junction to the specified motion point l-Junctions for motion type 6. CNMP7 - Creates the bond graph from a connector O-Junction to the specified motion point 1-Junctions for motion type 7. Builds the bond graph from a connector O-Junction to the specified end point 1-Junction through a transformer. BGEPTT ‘- Builds the bond graph from an end point l-Junction to a motion point theta 1-Junction through a transformer. BGOTFl BGEPMP - Builds the bond graph from an end point 1-Junction to a motion point x or y. and theta l-Junctions. BNDNOD - Creates the bonds incident on a given node array. The source code and descriptions of all the bond graph subroutines can be found in Appendix C. 38 Subroutine BG Create a l-Junction for each motion point according to the motion type. Append Inertia-elements to each mass motion point 1-Junctions. For each connector build the bond graph according to the connector end point type and the motion type of the attached motion points. Find the bonds that are incident on a given node (NBIMX). Return to BILDBG Figure 29. BO Flowchart 39 ETEPS CNT'FEP CNMP3 BGOTFI CNMP4 1 n BGOTFI BGEPTT BG‘\\\\\\\\\\\\\\\ CNMPS ] ‘ I BGOTFI BGEPTT BGEPMP CNMP6 l I 1 BGOTFI BGEPTT BGEPMP CNMP7 ) l BGEPTT BGEPMP BNDNOD Figure 30. Calling Tree Structure of HG Chapter 4 EXAMPLES This chapter illustrates the use and capabilities of the two programs described in Chapters 2 and 3. namely. the graphic design pregram (DESIGN) and the bond graph formulation program (BILDBG). Tb run these programs one must be logged into an Evans and Sutherland P8300 terminal. The procedure to accomplish this task is located at the P8300 terminal. 4.1 Spring-mass-damper System The spring-mass-damper system of Figure 31 was drawn on the P8300 using the program DESIGN. The following is an example run on how this system was created. Please note that a description of each command is given in parentheses. 4O 41 FILE : SPRING-MASS Figure 31. Spring-mass-damper System 42 OK. SH} DESIGN .OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO as as as as " EVANS AND SU'IHERLAND P8300 ‘9 as as “ GRAPHIC DESIGN ROGRAM ‘9 as as as as as DEVELOPED BY as as as “ JIBN REID ‘9 as as as FALL 1983 ‘9 as as as as OOOOOOOOOOOOOOOOOOOOOOCOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOCOOOOOOOOOOOOO‘OOOOOOOOOOOOOOOOOOOO INPUT DESIRED OPTION : C (Create a new file.) INPUT NADE OF NEW FILE : SPRING-MASS INPUT DESIRED OPTION : M (Modify the current file.) INPUT DESIRED OPTION : A (Add an item to the design.) INHIT DESIR- OPTION : M (A mass is chosen.) (Position and scale the mass to the desired orientation by using the dial network.) INHJT DESIRED OPTION : L (Lock in the mass to its current position.) INHIT INDEX NUDBER FOR LABEL (1-20) : 1 USING THE DIALS. POSITION HE CROSS-HAIRS IN THE DESIRED LOCATION FOR THE LABEL. TYPE OR TO CONTINUE: OK (The label M1 has now been placed at the specified position.) (Continue adding items one at a time in the above manner until the design is complete.) 43 INPUT DESIRED OPTION : C (Change the position of an item.) INHIT LABEL NAIE : O (The origin is chosen.) (Position and scale the origin with the dial network.) INPUT DESIRED OPTION : L (Lock in the origin to its current position.) INHIT DESIRED OPTION : R (Return to the Master Menu.) INPUT DESIRED OPTION : S (Save the current design.) FILE SPRING-MASS HAS BEEN] SAVED. INPUT DESIRED OPTION : E (Exit program.) “"9 YOU ARE NO! LEAVING DESIGN. ‘9‘" Once the system description is completed by using DESIGN a bond graph can be develOped by running BILDBG. A sample run of BILDBG for our example follows. OK, sac BILDBG OOOOOOOOOOOOOOOOOOOCOCO0.0000000000COOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOC0.00000000000000000000 so as so as ea EVANS AND SUTHERLAND P8300 ‘9 es cs as BQID GRAPH PRNRAM ‘9 as as as ea 9‘ DEVEOPED BY ‘9 as ea ‘9 JwN REID “ cc so as FALL 1983 ‘0 as ea as as OOOOOOOOOOOOO00.00000000000000000COOOOOOOOOOOOOOOO 0.0000000000000000000000000000000000000000COOOOOOO 44 INPUT THE NATE OF THE GRAPHIC FILE TO BE PROCESSED : SPRING-MASS WHICH ITEMS ARE CONNECTED TO M1 7 : Sl.D1.F1 AS I UNDERSTAND IT. THE FOLLOWING ITEMS ARE (DNNECTED TO M1 . 81 D1 F1 IS THIS comer? (Y OR N) : Y WHICH ITEMS ARE CONNECTED TO B1 7 : S1.D1.V1 AS I UNDERSTAND IT. THE FOLLOWING ITEMS ARE CONNECTED TO Bl . 81 D1 V1 IS THIS CORRECT? (Y OR N) : Y WHICH IJTIONS ARE ALLOWABLE FOR M1 -- X. Y AND/OR THETA : X WHICH DTIONS ARE ALLOWABLE FOR B1 -- X. Y AND/OR mETA : X LET THE (ENTER OF M1 BE THE POINT 0.0. FROM THIS REFERDJCE MINT WHAT IS THE X.Y DISTANCE BETWEEN M1 AND THE BID POINT OF S1 : ~1.1 LET THE CENTER OF M1 BE THE POINT 0.0. FROM THIS REFERE‘JCE POINT WHAT IS THE X.Y DISTANCE BETWEEN M1 AND THE EJD POINT OF D1 : -1.'1 LET THE CEQTER OF M1 BE THE POINT 0.0. FROM THIS REFEREJCE POINT WHAT IS THE LY DISTANCE BETWEE‘J M1 AND THE END POINT OF F1 : 1.0 ASSUIB B1 IS PARALLEL TO THE X-AXIS. LET THE POINT WHERE B1 ROTATES ABWT BE 0.0. FROM THIS REFEREJCE POINT. WHAT IS THE DISTANCE TO THE WDPOINT OF 81 . (INCLUDE-POR- SIGN) :1 45 ASSUIE B1 IS PARALLE. TO THE X-AXIS. LET THE MINT WHERE B1 ROTATES ABWT BE 0.0. FROM THIS REFERWCE MINT. WHAT IS THE DISTANCE TO THE EIDPOINT OF D1 . (INCLUDE + OR -- SIGN) : -1 ASSUIB B1 IS PARALLEL TO THE X-AXIS. LET THE MINT WHERE B1 ROTATES ABWT BE 0.0. FROM THIS REFERE‘JCE MINT. WHAT IS THE DISTANCE TO THE EJDMINT OF V1 . (INCLUDE+OR- SIGN) :2 INSERT NATE OF FILE FOR STORAGE : SPRING.RUN eases YOU ARE NW LEAVING BILDBG. “"‘ Figure 32 shows a simplified Lagrangian bond graph for the spring-mass-damper system crested by BILDBG. The actual bond graph and the data base results from BILDBG can he found in Appendix D for this system. I\:l/sn c m/ \m R Figure 32. Bond Graph for Spring-mass-damper System Note. MTF nodes are sets of elements. 46 4.2 Mass-spring Pendulum A nonlinear mass-spring pendulum is shown in Figure 33. This example demonstrates the internal procedure of how BILDBG creates the nonlinear bond graph of this system. Interactively. the following information is obtained by BILDBG from DESIGN. as illustrated in example 1 of this chapter: Motion Points: MPNAM(1) = M1 MOTTYP(1) = 3 MPNAM(2) = G1 MOTTYP(2) = O MPNAM(3) = P1 MOTTYP(3) = 0 Connectors: CNNAM(1) = $1 CNTYP(1) = 1 IEPTYP(1) = 2 CNNAM(2) = F1 CNTYP(2) = 4 IEPTYP(2) = 2 CNNAM(3) = 11 CNTYP(3) = 1 IEPTYP(3) = 0 Topology: Motion Point Attached Connectors M1 81. F1 61 X1 P1 81. 11 Connector Attached to Motion Point(s) 81 M1 . P1 F1 M1 X1 P1. 61 Local Geometry: On M1: 81 is located at the center (0.0). F1 is located at the center (0.0). 47 Figure 33. Mass-spring Pendulum 48 The first step in building the bond graph is to create l-Junctions for each allowable motion for each motion point. For motion point 1 (mass - M1). the number of allowable motions is given by NMDT( MOTTYP(1) ), which is equal to two (i.e. MDTTYP(1) = 3. this means x and y motion only. which is two allowable motions). Thus. two l-Junctions are created for motion point 1 as in Figure 34. MOtion points 2 and 3. ground - G1 and pin - P1 respectively. have motion types of zero. Thus. no l-Junctions are required for their motions. I 37:11 1 Figure 34. Bond Graph for the Motion Points The next step is to append Inertia-elements to all mass motion point 1-Junctions as shown in Figure 35. Next. each connector is studied individually. The first connector is a spring (SI). The connector type for 81 is one (i.e. (NTYPU) = 1). this corresponds to a C-element. Thus. the connector type. O-Junction and the bond between are now added to the bond graph. See Figure 36. 49 I Figure 35. Inertia-elements Added to the Bond Graph ‘I1 I Figure 36. Connector 81 Added to the Bond Graph 50 The end point type of S1 is noted to be two (i.e. IEPTYP(1) = 2). Referring to Table 2. this end point type corresponds to Figure 23. Next. from the topolozY. we note that the end points of 81 are attached to M1 and P1. P1 has motion type 0. thus. no bonds or nodes are required for the end point attached to motion point P1. M1 has motion type 3. this corresponds to Figure 18 (see Thble 1). Combining this information about the end points of 81. the bond graph is now represented in Figure 37. I Figure 37. Nodes and Bonds Between 81 and M1 Added The second connector is a force (F1). F1 has connector type 4. which corresponds to s SE-element. The remaining portion of the bond graph for F1 is deve10ped in the same way as 81 was. described above. The resultant bond graph is shown in Figure 38. 51 Finally. the remaining connector. rigid connector X1. has an end point type of 0. This means no nodes or bonds are required for connector X1. Thus. the bond graph deve10ped by BILDBG for the mass-spring pendulum of Figure 33 is depicted in Figure 38. The data base results for this system can be found in Appendix E. ‘Iu __1/1\1_m _1\lyl__m 0 SE 0 //////MTF \ MTF \ / I Figure 38. The Completed Bond Graph From BILDBG 52 4.3 Vehicle Suspension Consider the planar vehicle suspension of Figure 39. The figure depicts a flatbed trailer traveling along a surface at a constant velocity. The trailer has a mass and a moment of inertia about its center. A load is placed upon the trailer bed. .1. Figure 39. Planar Vehicle Suspension The flatbed trailer system is drawn on the P8300 as shown in Figure 40 using DESIGN. BILDBG is used to create a nonlinear bond graph for this system. A Lagrangian bond graph for this system is shown in Figure 41. The data base results from BILDBG can be found in Appendix F. 53 Figure 40. The Vehicle Suspension Drawn By DESIGN 54 33m 35m “11 SFJZ C1‘¢___\\\\ v//> 1 \.I O / 1“; \mg/ R1 R2 R3. Figure 41. Lagrangian Bond Graph for the Vehicle Suspension Chapter 5 SUMMARY AND CONCLUSIONS A five step process to designing a mechanical system in a computer-aided design environment was described in this thesis: namely. Draw the design on the computer using an interactive program. Medal the system internally in some pre-determined way. Calculate the dynamic response of the system. Animate the graphic display according to the dynamic response. Change desired values and repeat the process until the design objectives are satisfied. M‘WNH a a a A first pass at accomplishing the first two steps was made. A graphic design pregram was described that interactively draws a mechanical system on an Evans and Sutherland P8300 computer. A modeling program was also described that mathematically models the completed graphic design by a nonlinear bond graph. Future work will be required to calculate the dynamic response by a bond graph processor. The dynamic response could then be used to animate the system. in order to complete the design process. 55 LIST OF REFERENCES 10. 11. 12. LIST'OF REFERENCES Fallahi. B.. 'A New Approach Tb Planar Analysis of Mechanisms.’ Thesis for Doctor of Philosophy. Purdue University. August 1982. Chace. M. A. and Angell. J. C.. 'User's Guide to DRAM.’ Department of Mechanical Engineering. University of Michigan. Ann Arbor. 1973. Andrews. G. C. and Kesavau. H. K.. 'The Vector-Network Model: A New Approach to Vector Dynamics.’ Mechanisms and Machine Theory. Volume 10. 1975. pp 57-75. Sheth. P. N. and Uicker. Jr.. J. J.. 'IMP (Integrated Mechanisms Program). A Computer Aided Design Analysis System for Mechanisms and Linksges.’ Journal of Engineering Industry. Trans. ASME. Volume 94. Series B. No. 2. May 1972. pp. 454-464 Orlandea. N.. Chace. M. A. and Calahan. D. A.. 'A Sparsity-Oriented Approach to the Dynamic Analysis and Design of Mechanical System - Part 1.’ ASME paper no. 76-DETL19. 1976. IarnOpp. D. C. and Rosenberg. R. C.. SYSTEM’DWNAMICS: A UNIFIED APPROACH. Wiley. New York. 1975. Rosenberg. R. C.. 'Multiport Models in Mechanics.' Journal of DSMS. Trans. ASME. Series G. No. 3. Sept. 1972. pp. 206-212. Iarnopp. D. C.. 'Alternative Bond Graph Causal Patterns and Equation Formulations for Dynamic Systems.’ Journal of DSMC. Trans. ASME. Volume 105. June 1983. pp. 58-63. Rosenberg. R. C.. 'ENPORT‘S User's Manual.' A. H. Case Center. College of Engineering. Michigan State University. 1981. Grabowiecki. K.. Zalewski. Z. and Zgorzelski. M.. 'General Machine Dynamics Simulation System With Finite Elements Capabilities.’ Bumar Union. Warsaw. Poland. Stepniewski. W. and Grabowieeki. X.. 'A.Bond Graph Approach to the Automated Generation of Equations of Motion of Lumped Parameter Systems.’ Nerth-Holland Publishing Company. 1978. Grands. J. J.. 'Computer Aided Modeling Program (CAMP).' Dissertation for Doctor of PhilosOphy. University of California Davis. 1983. 56 57 13. Rosenberg. R. C. and Zhang. S. C.. 'Modelling of Nonlinear Mechanics Problems Using Lagrangian Bondgraph.’ Michigan State University. 1982. 14. KarnOpp. D. C.. 'Lagrange's Equations for Complex Bond Graph Systems.’ Journal of DSMC. Trans. ASME. Series G. No. 1. Dec. 1977. pp. 300-306. APPENDI CES APPENDIX A SOURCE CODE FOR DESIGN APPENDIX A SOURCE CODE FOR DESIGN Subroutines in this appendix appear in the following sequence: 1. DESIGN 9. mum; 17. CONECT 2. cmmrr 1o. INPUT 1s. DISOON 3. MENU 11. HLIGHT 19. REINIT 4. MASTER 12. LOCKIN 20. DISFIL s. CREATE 13. UNLOCK 21. GETITM 6. 1115st 14. GETDAT 22. ADITEM 7. SAVE 15. RESET 23. LABELS s. MODIFY 16. INCREM 24. POSLBL Common files in this appendix appear in the following sequence: 1. COMFIL 2. COMBG 3. SYBGBK P8300 files in this appendix appear in the following sequence: 1. MENUS 3. OBJECTS 5. (RITPUT.NETWORK 2. VIEW.OBJECT 4. DIAL.NETWORK A 1 A 2 PROGRAM DESIGN C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC PROGRAM DESCR IPT ION CCCCC C C C--- THIS PRWRAM IS USED TO DRAW A 2-DIMENSIONAL MECHANICAL C C MECHANISM USING THE STANDARD ELEMENTS. (cg. SPRINGS. C C DAMPERS. ) C C C C--- TO BE RUN (N NE EVANS AND SUTHERLAND P8300. C C C C--- PROGRAMMER: JGIN D. REID DATE: FALL 1983 C C C C--- SUBROUTINES CALLED: CMIN IT MENU MASTER C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COMFIL C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK OCCC C C C-- INITIALIZE DATA IN COMLDN BLOCK C CALL CMINIT C C--- INITIALIZE GRAPHICS C CALL PSGRAF CALL PSINIT( 'ALL') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BIDCK OCCC C C C-- SUPPRESS WARNINGS. C PRINT ‘. 'SEND FALSE TO <1)WARNING; ' CALL PSTERM C C--- SET UP P8300 VIEWS. STRUCTURES AND NETWORKS. C CALL MENU C C--- TALK TO USER. C WRIT'E(‘.900) WRITE(‘.910) WRITE(“.920) C C--- CALL MASTER SUBROUTINE THAT RUNS THE SHOW A3 C CALL MASTER C C WRITE ( ‘ s 93 0) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT(///.2(/.6X.50("')).2(/.6X."".46X."")) 91o F0RMAT(6x.'ts',1ox,'ENANS.AND SUTEERLAND pssoo'.1ox.'**'./. + 6X."".46X."”./.6X.'*".12X.'GRAPHIC DESIGN PROGRAM'. + 12x.'*s',2(/.6x.'sa',46x,'¢t')) 920 E0RMAT(6X.'ts'.17x,'oEVELopEo Ey',1yx,o..v,/, 6x.'tt',46x.'ss',/. 6x, 'u'.1sx. 'JOHN REID'.19X. maul , 6X.’**'.46X."*'./. 6X."".18X.'FALL l983'.19X.'**'. 2(/.6x.'¢s',46x,'ss'). 2(/.6X.50("'))) 930 FORMA'I‘(////."‘”u YOU ARE NOW LEAVING'. + + + + + + + ' DESIGN. "“".l///) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CALL EXIT END SUBROUTINE CMINIT C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE INITIALIZES THE COMMON BLOCK COMFIL. C C C C-- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C C--- CALLED FROM: DESIGN REINIT C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT MMF IL C C C FOR A DESCRIPTION OF THE VARIABLES IN THIS PRUSRAM SE C C THE COMMON FILE COMFIL. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C NUm=O A 4 NUMB=0 NUMS=O NUMD=0 NUMM=0 NUMJ=0 NUMF=0 NUMP=0 NUMV=0 NUML=0 NUMR=O NITEM=O NDEL=0 DO 100 I=1.40 TRANSX(I)=O TRANSY(I)=0 ROTZ(I)=O SCLX(I)=1 SCLY(I)=1 8CL(I)=1 LBLPOS(I.1)=0 LBLPOS(I.2)=O 100 CONTINUE LOCKED=.TRUE. FILE:.FALSE. OLDFIL=.FALSE. NWITEM=.FALSE. C C-- ORIGIN DATA C ITMLST(39)='ORGIN' SCL(39)=.75 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBROUTINE MENU C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE SETS UP THE REQUIRED EVANS AND SUTHERLAND C C VIEWS. STRUCTURES AND NETWORKS. C C C C--- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C C--- CALLED FROM DESIGN. C C C C-- FILES ACCESSED: MENUS OBJECTS DIAL.NETWORK C C VIEW.OBJECT OUTPUT.NETWORK C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC A5 C C CALL PSGRAF C C--- SET UP MASTER. MDIFY AND DRAWING MEVU C CALL PSFILE( ' ID60)SU08>ES.DIR>LIB.DIR>MENUS') C--- DEFINE THE INDIVIDUAL OBJECTS (SPRING.BAR.ETC.) C CALL PSFILE( 'ID60>SU08>ES.DIR)LIB.DIR>OBJECTS') C C--- SET UP “15 RANSe a ROTe a SCL. NETWORK. C CALL PSFILE( ' ID60) SUO 8)ES . DIR )LIB . DIR )DIAL. NETWORK ') C C--- SET UP THE MAIN VIEW (VIEW) C CALL PSFILE( ' ID60) SU08>ES . DIR)LIB . DIR )VIEW . OBJECT ') C C--- CREATE AN OUTPUT NETWORK C CALL PSFILE( ' ID60>SU08 )ES . DIR >LIB . DIR )OUTWT. NETWORK ' ) PRINT *. 'DISPLAY VIEW; ' CALL PSTERM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN IND *w A6 SUB ROUTINE MASTER C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE CONTROLS THE MASTER MENU. 'C C C C-- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C C--- CALLED FROM DESGIN. C C C C-- SUBROUTINES QLLED: HLIGHT INMT SAVE C C CREATE RESTOR MODIFY C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COMF IL C C HLITE='MST' C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C-- HIGHLIGHT'THE MENU THAT IS UNDER CONTROL (MASTER). C CALL HLIGHT C-- READ OPTION T00 CALL INPUT C--- CREATE NEW FILE C IF(WORD.EQ.'C') THEN CALL CREATE C--- RESTORE OLD FILE C ELSEIF(WORD.EQ.'R') THEN CALL RESTOR C--- MODIFY CURRENT'FILE C ELSEIF(WORD.EQ.'M') THEN CALL MODIFY C--- SAVE CURRENT FILE C ELSEIF(WORD.EQ.'S') THEN CALL SAVE A7 C--- EXIT PROGRAM C ELSEIF(WORD.m. 'E') THE] RETURN C C--- BAD OPTION C ELSE WRITE(‘.910) ENDIF GOT’O 100 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 910 FORMAT” . 'BAD OPTION --- TRY AGAIN. ' ./) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C END SUBROUTINE CREATE C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C—- THIS SUBROUTINE CREATES A NEW FILE. C C C C-- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C C-- CALLED FROM: MASTER SAVE C C C C-- SUBROUTINES CALLED: REINIT DISFIL C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDEJTIFICATION CCCCCCCC C C INSERT COMFIL C C EXTERNAL NCHARS C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C-- IF FILE IS TRUE THEN mama IS ALREADY A C FILE UNDER CONSIDERATION. MIST RE-INITIALIZE. C IF(FILE) THIN 100 WRITE(‘.900) READ(‘.910) IANS IF(IANS.m.'Y') THE“ CALL REINIT A8 ELSEIF(IANS.EQ.'N') THEN RETURN ELSE GOTO 100 ENDIF ENDIF C C-- INSERT NEW FILENAME AND CHECK TO SEE IF IT C ALREADY EXISTS. C 200 WRITE(‘.920) READ(‘.930) FNAME CALL DISFIL OPEN(UNIT=12.FILE=FNAME.STATUS='NEW'.ERR=800) CLOSE(UNIT=12) OLDFIL=.FALSE. FILE;.TRUE. GOT‘O 999 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CERCCCCCCC ERROR HANDLING BLOCK 0800 C C 800 CALL DBLANK(FNAME) WRITE(‘.940) FNAME(1:NCHARS(FNAME)) GOTO 200 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT('FINISHED WITH CURRENT FILE? (Y OR N) : '. ) 910 FORMAT(A2) 920 FORMAT('INPUT NAME OF NEW FILE : '. ) 930 FORMAT(A12) 940 FORMAT(A.' ALREADY EXISTS. TRY AGAIN.'./) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C 999 RETURN END SUBROUTTNE RESTOR C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE RESTORES GRAPHICAL DATA FROM THE C C SPECIFIED FILE. C C C C-- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C C-- CALLED FROM MASTER. C C C C--- SUBROUTINES CALLED: REINIT DISFIL ADITEM C A9 C RESET CONECT INCREM C C DISCON C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COMFIL C C EXTERNAL NCHARS C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C-- IF FILE IS TRUE THEN! THERE IS ALREADY A C FILE UNDER CONSIDERATION. MUST RE-INITIALIZE. C IF(FILE) THEN 100 WRITE(".900) READ(‘.910) IANS IF(IANS.m.'Y') THEN CALL REINIT ELSEIF(IANS.m.'N') THEN RETURN ELSE GOTD 100 ENDIF ENDIF C C--- INPUT OLD FILE‘IAME. C WRITE(‘.920) READ(‘,930) FNAME CALL DISFIL C C--- OPEN OLD FILENIAME C OPEN(UNIT=12 ,FILE=FNAME. STATUS= 'OLD' , ERR=800) C C--- READ IN NUIBER OF ITEMS C READ(12.” NITEM C C-- READ IN THE NITEM' 8 AND ADD THEM TO m1: GRAPHICS. C D0 200 NCIT‘EM=1 .NITEM READ( 12 . 940) ITDLST(NCITEM) READ(12.950) ITMTYP(NCITEM) READ(12 . ‘) TRMSX(NCITEM) .TRANSY(NCITEM) .ROTZ(NCITEM) . + SCL(NCITEM) . SCLX(NCITEM) . SCLY(NCITEM) READ(12 .955) ITMLBL(NCITEM) , LBLPOS(NCIT'EM. 1) . + IBLPOS(NCITEM.2) CITEM= ITMLST(NCIT'EM) ITEM= ITMTYP(NCITEM) A10 CALL ADITEM CALL PSGRAF C C-- ADD LABE. C WRITE( ‘ . 957) ITMLBL( NCITEM) . IBLPOS ( NCITEM. 1) . + LBLPOS( NCITEM.2) . ITMLBL( NCITEM) WRITE( ‘ . 95 8) ITMLBL( NCITEM) . CITEM C C-- HANDLE SCALING IN X AND Y DIRECTION DIFFERDJTLY. C IF(SCLX(NCIT'EM).NE.1.0) THEN WRITE(‘.960) CITEM WRITE(‘.961) SCLX(NCITEM) WRITE(‘.962) ENDIF IF(SCLY(NCIT‘EM) .NE.1 .0) THEN WRITE(‘.964) CITEM WRITE(‘.965) SCLY(NCITEM) WRITE(‘.966) ENDIF C C-- DISWNNEC’T SCALING DIALS. THE DIALS ARE C DISCONNECTED DOWN HERE BECAUSE THERE MUST C BE A DELAY FOR THE ABOVE TO BE EFFECTIVE. C IF(SCLX(NCIT‘EM).NE.1.0 .OR. SQY(NCITEM).NE.1.0) THEN DO 150 IJK=1.400000 150 CONTINUE WRIT'E(‘.963) CITEM WRITE(‘.967) CITEM CALL RESET ENDIF CALL PSTERM 200 CONTINUE C C--~ READ IN ORIGIN TRANSFORMATIONS C READ(12.” TRANSX(39) .TRANSY(39) .SCL(39) CITEM='ORGIN' CALL PSGRAF CALL CONECT WRITE('.980) TRANSX(39) WRITE(‘.985) TRANSY(39) WRITE(’.990) SCL(39) CALL INCREM D0 300 IJK=1.300000 300 CONTINUE CALL RESET CALL DISCON CALL PSTERM C C--- READ IN NUBBER OF EACH ITEM (i0. SPRINGSJIASSES...) C READ(12.” NUBB,NUIB,NUMS.NUMD A 11 “EULHNWEWWMWKWW READ(12.‘) NUMF,NUML,NUMV CLOSE(UNIT%12) OLDFIL=.TRUE. FILE:.TRUE. GOTO 999 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CERCCCCCCC ERROR HANDLING BLOCK 0800 C C C--- FILE DOES NOT EXIST. C C C 800 CALL DBLANK(FNAME) WRITE(‘.995) FNAME(1:NCHARS(FNAME)) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT('FINISHED WITH CURRENT FILE? (Y OR N) : '. ) 910 FORMAT(A2) 920 FORMAT('INPUT NAME OF OLD FILE : '. ) 930 FORMAT(A12) 940 FORMAT(A5) 950 FORMAT(A6) 955 FORMAT(3X,A4,4X,F7.3,4X,F7.3) 957 FORMAT(A3,':=CHARACTERS ',F7.3.'.'.F7.3,' "'.A3."';') 958 FORMAT('INCLUDE ',A3.' IN ',A5.';') 960 FORMAT('CONN SCXMAT<1>:(1>'.A5.'.SCLX;') 961 FORMAT('SEND '.F7.3.' TO <2)SCALEX;') 962 FORMAT('SEND .00001 TO (1)8CALLX3') 963 FORMAT('DISC SCXMAT<1>:(1>'.A5.'.SCLX;') 964 FORMAT('CONN SCYMAT<1):<1)'.A5.'.SCLY:') 965 FORMAT('SEND '.F7.3.' TO <2>SCALEY;') 966 FORMAT('SEND .00001 TO (1)8CALEY3') 967 FORMAT('DISC SCYMAT<1>=<1>',A5.'.SCLY;') 980 FORMAT('SEND ',F7.3.' TO <2>XVALUE;') 985 FORMAT('SEND '.F7.3.' T0 <2>YVALUE;') 990 FORMAT('SEND ',F7.3.' TO (2)8CLVAL3') 995 FORMAT(A.' DOES NOT EXIST. CAN NOT’RESTORE.'./) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C 999 RETURN END SUBROUTINE SAVE C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUB ROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE SAVES THE CURRENT WORKFILE. C C C C--- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C A 12 C C C-- CALLED FROM MASTER. C C C C-- SUBROUTINES CALLED: CREATE DISFIL C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COMF IL C C EXTERNAL NCHARS C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C--- CHECK TO SEE IF FTLENAME HAS BEEN SPECIFIED. C IF(.NOT.FILE) THEN WRITE(‘.900) CALL CREATE ENDIF C C--- IF FILE TO BE SAVED IS OLD ASK USER IF IT IS C OK T0 OVERWRITE. C IF(OLDFIL) THEN 50 WRITE(‘.905) FNAME(1:NCHARS(FNAME)) READ(‘.910) IANS IF(IANS.EQ.'OK') GOTO 60 WRITE(*.920) READ(‘.930) FNAME CALL DISFIL OPEN(UNIT=12.FILE:FNAME.STATUS='NEW'.ERR=50) CLOSE(UNIT=12) ENDIF 60 OLDFIL=.TRUE. C C--- OPEN THE STORAGE FILE C 0PEN(UNIT=12.FILE=FNAME) C C--~ LOAD THE NUMBER OF ITEMS THAT ARE.TO BE SAVED. ITOTAL=NITEM—NDEL WRITE(12.‘) ITOTAL g--- LOAD EACH ITEM INTO THE FILE. C D0 100 I=1,NITEM g-- DO NOT ADD DELETED ITEMS. C IF(ITMLST(I).EQ.'DELETE') GOTD 100 A13 WRITE(12.940) ITMLST(I) WRITE(12.950) ITM’I’YP(I) WRITE(12.960) TRANSX(I).TRANSY(I).ROTZ(I).SCL(I). + SCLX(I).SCLY(I) WRITE(12.965) ITMLBL(I).IBLPOS(I.1).LBLPOS(I.2) 100 CONTINUE C C-- LOAD THE ORIGIN TRANSFORMATIONS C WRITE(12.970) TRANSX(39) .TRANSY(39).SCL(39) C C--- LOAD THE COUNTS OF EACH ITEM (ie. SPRINGS.MASSES...) C WRITE(12,") NUBB,NULB,NUMS,NUMD WRITE(12,*) NUMP,NUMM,NUMR.NUMJ WRITE(12.‘) NUMF.NULL.NUMV CLOSE(UNIT=12) WRITE(‘.980) FNAME(1:NCHARS(FNAME)) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT(I. 'NO FILE IN BEBDRY. PLEASE') 905 FORMAT(A. ' ALREADY EXISTS. ' ./ . + 'TYPE OK TO OVERWRITE : ' , ) 910 FORMAT(AZ) 920 FORMAT(I.’INPUT FILBVAME TO BE STORED IN : '. ) 93 0 FORMAT ( A1 2) 940 FORMAT(AS) 950 FORMAT(A6) 960 FORMAT(3X.F7 .3 .4X.F7 .3 .4X.F8 .3 .4X.F7 .3 .4X.F7 .3 .4X. F7 .3) 965 FORMAT(3X.A4.4X.F7.3 .4X.F7 .3) 970 FORMAT(3X.F7 .3 .4X.F7 .3.4X.F7.3) 980 FORMAT(I . 'FILE ' .A. ' HAS BEEN SAVED. ' .I) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBROUTINE mDIFY C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE CONTROLS THE DDDIFY MENU. C C C C--- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C C-- CALLED FROM MASTER. C C C C--- SUBROUTINES CALLED: HLIGHT INPUT LOCKIN C C LABELS DRAWN? GETITM C C UNLOCK C A14 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDDJTIFICATION CCCCCCCC C C INSERT COMFIL C HLITE='mD' C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BIOCK OCCC C C C--- HIGHLIGHT THE FDDIFY MENU C CALL HLIGHT C C--- READ OPTION C 100 CALL DJPUT C C--- ADD TO CURRENT FILE C IF(WORD.ED.'A') THE] C C--- CHECK TO SEE IF PREVIOUS ITEM IS LOCKED IN. C IF( .NOT.LOCKED) THE! CALL LOCKIN CALL LABELS EVDIF CALL DRAWING C C--- CHANGE CURRENT FILE C ELSEIF(WORD.m. 'C') THE“ IF(NITEM.m.0) GOT!) 200 IF( .NOT.LOCKED) THIN CALL LOCKIN CALL LABRS ENDIF C C--- GET THE ITEM (CITEM) AND THE NUBBER OF THE C ITEM (NCITEM) TO BE CHANGED. C CALL GETITM IF(NCITEM.F0.0) THE! C C-- PICKED ITEM DOES NOT EXIST IN IEIDRY. C WRITE(’.910) GOTD 100 WDIF CALL UNLOCK A15 C--- LOCKIN CIJRREVIT ITEM (DISABLE TRANS.,ROT. .80.) C ELSEIF(WORD.m.'L') THEN IF(.NOT.IOCKED) THE! CALL LOCKIN CALL LABELS ENDIF C C--- DELETE AN ITEM FROM THE OBJECT C ELSEIF(WORD.m.'D') THEN IF( .NOT.LOCKED) THEN CALL LOCKIN CALL LABES DIDIF C C--- GET THE ITEM (CITEM) AND THE NUBBER OF THE C ITEM (NCITEM) TO BE DELETED. C CALL GETITM IF(NCITEM.m.0) THEN C C--- PICKED ITEM DOES NOT EXIST IN MELDRY. C WRITE(".910) ELSEIF(NCITEM.m.39) THEN C C--- DO NOT DELETE ORIGIN C WRITE(".920) ELSE ITMLST( NCITEM) = ' DELETE ' ITMLBL( NCITEM) = ' NCN ' CALL PSGRAF WRITE(‘.9000) CITEM CALL PST'ERM C C--- INCREMENT THE NUBBER OF DELETED ITEMS COUNT C AND STORE THE NAME OF THE DELETED ITEM. C NDEIFNDEL-I-l ITMDEL( NDEL) =CITEM ENDIF C C--- REPLACE AN ITEM IN THE OBJECT WITH ANOTHER C ELSEIF(WORD.m. 'RP') THEN IF( .NOT. LOCKED) THIN CALL LOCKIN EVDIF WRITE(".900) C C--- RETURN AND HLIGHT MASTER MENU. C ELSEIF(WORD. m. 'R') THEN A16 IF ( .NOT. LOCKED) THEN! CALL LOCKIN CALL LABELS ENDIF HLITE= ' MST' CALL HLIGHT RETURN C C-- BAD OPTION C ELSE WRITE(‘.910) ENDIF 200 GOTO 100 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT(H . 'OPTION NOT AVAILABLE AT THIS TIME. ' .l/) 910 FORMAT(I/ . 'BAD OPTION --- TRY AGAIN. ' .II) 920 FORMAT(I/ . 'CAN NOT DELETE ORIGIN. ' .//) 9000 FORMAT( 'DELETE ' ,A5 . ': ') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C END SUBROUTINE DRAWN} C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE CONTROLS THE DRAWING MENU WHICH IS C C USED TO ADD ITEMS TO THE DESIGN. C C C C--- PRMRAMMER: JGIN D. REID DATE: FALL 1983 C C C C--- CALLED FROM DDDIFY. C C C C--- SUBROUTINES CALLED: HLIGHT INPUT ADITEM C C UNLOCK C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COMF IL C CHARACTER‘l NUM CHARACTER‘Z NUM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC A17 C C--- HIGHLIGHT THE DRAWING MENU C HLITE= 'DRW ' CALL HLIGHT C C--- READ OPTION C 100 CALL INPUT C C--- GROUND C IF(WORD.m. '6') THEN ITEM= 'GROUND' NUBB=NUDB+1 IF(NUm . LT.10) THE! WRITE(NUM, '(Il) ') NUM} CITEM= ' GRND ' I / NUM ELSE WRITE(NUIQ , '(12)') NH“? CITEM= 'GRN'l/NUMZ EIDIF C C--- BAR C ELSEIF(WORD. m. 'B') THE\' ITEM= 'BAR' NUMB=NUBB+1 IF(NUMB. LT.10) THEJ WRITE(NUM, ' (I1) ') NUMB CITEM= ' BARR' / INUM ELSE WRITE(NUBQ , ' (12) ') NUBB CITEM= 'BAR'/lNUM‘Z EIDIF C C--- SPRING C ELSEIF(WORD.m. ' 8') THE] ITEM= ' SPRING ' NUMS=NUMS+1 IF(NUMS.LT.10) THE! WRITE(NUM. ' (II) ') NUMS CITElh ' SPRG ' / INUM ELSE WRITE(NUIQ , ' (I2) ') NUMS CITEM= ' SPR' //NULQ ENDIF C C-- DAMPER C ELSEIF(WORD.m. 'D') THEN ITEM!= 'DAMPER' NUMD=NUMD+1 IF(NUMD. LT.10) THE! A18 WRITE(NUM,'(II)') NUMD CI'I‘ELh'DAMP'I/NUM ELSE warmmumnuzr) NUM!) CITEM='DAM'/INUMZ ENDIF c c--- PIN c ELSEIF=<1>DATA3 ' PRINT ‘, 'CONN YVALUE<1>=<2>DATA3 ' A25 PRINT ‘, 'CONN ZDIAL(2): (3)DATA: ' PRINT ‘, 'CONN SCLVAL<2>: <4>DATA3 ' PRINT ‘. 'CONN SCALEX<1): (5)DATA; ' PRINT ’. 'CONN SCALEY<1): <6>DATA3 ' C-- INCREMENT THE I AND Y TRANSLATIONS. Z ROTATION AND C THE SCALING FACTORS BY A NWLIGABLE VALUE. C CALL INCREM C C--- TRIGGER SYNCRAN IZED DATA FOR (MITPUTS. C PRINT ‘. ' 384D 1 TO <7)DATA3 ' C C-- READ IN FACTORS. C CALL PST'ERM READ". ‘) TRANSX(NCITEM) READ". ‘) TRANSY(NCITEM) READ". ‘) ROTZ(NCITEM) READ(“.‘) SCL(NCITEM) READ" . ‘) SCLX(NCIT'EM) READ( ‘ . ‘) SCLY (NCITEM) CALL PSGRAF C C-- DISCONNECT TRANSFORMATION DATA NETWORK. C PRINT ‘. 'DISC XVALUE<1>:(1)DATA3 ' PRINT ‘. 'DISC YVALUE(1): (2)DATA3 ' PRINT ‘. 'DISC ZDIAL<2> : (3)DATA3 ' PRINT ‘. 'DISC SCLVAL<2>: (4>DATA3 ' PRINT ‘. 'DISC SCALEX<1>:(5>DATA3 ' PRINT ‘. 'DISC SCALEY(1):(6)DATA3 ' CALL PST'ERM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBROUTINE RESET C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- RESET ACCUMULATORS (N TRANS. . ROT. AND SCALING C C FUNCTIONS (N THE P8300. C C C C--- PRCXIRAMIER: JGIN D. REID DATE: FALL 1983 C C C C-- CALLED FROM: RESTOR LOCKIN C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC A26 PRINT ‘,'SEQD 0 TD <2>ZDIAL3' PRINT ‘.'SEJD 0 TD (2)KVALUE3 ' PRINT ‘,'SE€D 0 T0 <2>YVALUE3 ' PRINT ‘,'SEVD 1 T0 <2>SCLVAL3 ' PRINT ‘,'SmD 1 TD <2>SCALEX3' PRINT ‘,'SE4D 1 TO (2)8CALEY3' C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBROUTINE INCREM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- INCREMENT THE X AND Y TRANSLATIONS. Z ROTATION AND C C THE SCALING FACTORS BY A NWLIGABLE VALUE. C C C C--- PRMRAMMER: JmN D. REID DATE: FALL 1983 C C C C-- CALLED FROM: RESTOR UNLOCK GETDAT C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C PRINT S'st .00001 TO (DIVALUEz' PRINT ‘.'SEWD .00001 ID <1)YVALUE3' PRINT ‘.'SE4D .0000001 TD <1)ZDIAL3' PRINT fl'SEID .00001 ID (1)SCLVAL;' PRINT ’.'SEID .0000] TO <1)SCALEXS' PRINT ‘.'SE€D .00001 TO <1)SCALEY3' C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBROUTINE CONECT C - C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE CONNECTS THE DIAL NETWORK C C TO THE CURREQT ITEM (CITEM). C C C C--- PRWRAMMER: JmN D. REID DATE: FALL 1983 C C C C--- CALLED FROM: RESTDR UNLOCK C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C A27 CVCCCCCCCC VARIABLE IDENITIFICATION CCCCCCCC C C INSERT mMFIL C C ' CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C WRITE(“.900) CITEM WRITE(‘.910) CITEM WRITE(‘.920) CITEM WRIT'E(“.930) CITEM WRIT‘E(‘.940) CITEM WRIT'E(‘.950) CITEM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STAT‘EIENTS BLOCK 9000 C C 900 FORMAT( 'CONN XVECT<1): (1) '.A5. ' .TRANSX; ') 910 FORMAT( 'CONN YVECT<1>=<1> '.A5. ' .TRANSY; ') 920 FORMAT(‘CONN ZDIAL<1):<1)'.AS.'.ROTZ;') 930 FORMAT(‘CONN SCLVAL<1>:(1)'.A5.'.S(1.; ') 940 FORMAT( 'CONN SCXMAT<1> : (1) '.A5 . ' .SCLX; ') 950 FORMAT( 'CONN SCYMAT<1): (1) '.A5 . ' .SC'LY; ') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN DID SUBROUTINE DISCON C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBRGJTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE DISCONNECTS THE DIAL NETWORK C C FROM THE CURRENT ITEM (CITEM). C C C C--- PRWRAMMER: JmN D. REID DATE: FALL 1983 C C C C--- CALLED FROM: RESTUR LOCKIN C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDEJTIFICATION CCCCCCCC C C INSERT COMFIL C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C WRIT'E(‘.900) CITEM WRIT'E(“.910) CITEM A28 WRIT‘E(‘.920) CITEM WRITE(“.930) CITEM WRITE(“.940) CITEM WRITE(‘.950) CITEM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT('DISC KVECT<1>:<1>'.A5.'.TRANSX;') 910 FORMAT('DISC YVECT<1>=<1>'.A5.'.TRANSY3') 920 FORMAT('DISC ZDIAL<1>:<1)'.AS.'.ROTZ;') 930 FORMAT('DISC SCLVAL(1):(1)'.A5.'.SCL;') 940 FORMAT('DISC SCXMAT<1):(1>'.A5.'.SCLX;') 950 FORMAT('DISC SCYMAT(1):(I>'.A5.'.SCLY3') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN HID SUBROUTINE REINIT C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE RE-INITIALIZES GRAPHICS C C AND REQUIRED VARIABLES. C C C C--- PRWRAMMER: JmN D. REID DATE: FALL 1983 C C C C-- CALLED FROM: CREATE RESTOR C C C C-- SUBROUTINES CALLED: CMINIT C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CV CCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COMFIL C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BIDCK OCCC C C C-- REDDVE OBJECTS FROM P8300 MEIDRY. C CALL PSGRAF DO 100 I=1.NITEM WRIT'E(‘.900) ITMLST(I) WRIT'E(‘.910) ITILBLU) 100 CONTINUE CALL PSTERM C C-- RE-INIT‘ VARIABLES. A29 C CALL CMINIT C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT('DELETE '.A5.';') 910 FORMAT('DELET‘E '. .';') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN ETD SUBROUTINE DISFIL C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBRWTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE DISPLAYS THE FILENAME ON THE P8300. C C C C—- PROGRAMER: JCBN D. REID DATE: FALL 1983 C C C C-- CALLED FROM: CREATE RESTOR SAVE C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDEQTIFICATION CCCCCCCC C C INSERT COMFIL C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C CALL PSGRAF WRITE(‘.900) FNAIE CALL PST'ERM 900 FORMAT( 'SMD ' 'FILE : ',A12. ' ' ' TD (1>VIEW.ID; ') RETURN ETD SUBROUTINE GETITM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBWTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE DOES THE FOLLWING: C C ASKS THE USER FOR A LABEL NAME. C C FINDS THE STORAGE LOCATION NUIBR OF THE LABH... C C (10. GIVEJ LABEL AND ITIBL(NCITEM)=LABH.. C C FIND NCIT'EM.) C C FINDS THE ITEM ASSOCIATED WITH THAT NUIBER. C C C A30 c—- PROGRAMMER: mm D. REIO' BATE: FALL 1983 c c c c-- CALLED FROM IDDIFY. c c c CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC c C cvcccccccc VARIABLE IDENTIFICATION cccccccc c c INSERT OOMFIL c C CHARACTER-4 LABEL c c cccccccccccccccccccccccccccccccccCCCCCCCccccccccccccccccccccccccccc c c CPCCCCCCCC Pnowss BLOCK BLOCK OCCC c c C--- INPUT LABEL. c CALL PROMPTUINPUT LABEL NAME : ') READ(‘.900) LABEL C c-- IF LABEL CAN NOT BE FOUND NCITEu Is RETURNED O. c NCITEM=O D0 100 I=1.NITEu IF(ITmBL(I).EO.LABEL) TEEN NCITEM=I CIIEualrmSTmCITEu) C C-- IF HE): HAS BEEN DELETED BEFORE mm LET c NCITEM=0. C IF(CIT‘EM.m. 'DELETE') NCITEu=O com 999 ENDIF 100 CONTINUE C C-—- CHECK FOR ORIGIN c IF(LABEL.EO.'O') TEEN NCITEu=39 CITEDF'ORGIN' ENDIF c c ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c C CFCCCCCCCC FORMAT STATEIENTS BLOCK 9000 c C 900 FORMAT(M) c c CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C c 999 RETURN mo SUBROUTINE ADITEM A31 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUB ROUTINE DESCRIPTION CCCCC C C C-- THIS SUBROUTINE CREATES A STRUCTURE (CITEM) C C THAT CONSISTS OF THE DESIRED OBJECT (ITEM) . C C THE STRUCTURE IS ADDED TO THE MAIN PICTURE. C C C C-- PRWRAMMER: J (EN D . REID DATE: FALL 1 983 C C C C-- CALLED FROM: RESTOR DRAWN} C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CV CCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COMFIL C C CALL PSGRAF C C-- CREATE THE DES IRED STRUCTURE C WRITE( " . 900) CITEM WRITE(‘.920) TRANSX(NCITEM) WRITE" . 93 O) TRANSY(NCITEM) WRITE( ‘ , 940) ROTZ ( NCITEM) WRITE ( " . 9 5 0) WRITE ( ’ . 96 0) WRITE( ‘ . 970) 8CL(NCITEM) WRITE". 980) ITEM PRINT ‘ . ' BIDS; ' C C—- ADD STRUCTURE TO MAIN OBJECT C WRITE( ‘ . 990) CITEM CALL PST'ERM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT(AS. ' :sBEGINS') 920 FORMAT('MSX:=TRANS.ATE BY ',F8.4.'.0.0:') 930 FORMAT('RANSY:=TRANSLATE BY 0,',F8.4.'.0:') 940 FORMAT( 'ROTZ:=ROT Z ' .F9.4. '3 ') 950 FORMAT( 'SCLX:=8CALE BY 1: ') 960 FORMAT( 'SCLY:=SCALE BY 1; ') 970 FORMAT( 'SCL:=8CALE BY ' ,F7.4. '3 ') 980 FORMAT( 'INSTANCE 0F ' .A6. '3 ' 990 FORMAT('INCLUDE '.AS, ' IN VIEW.(BJECT: ') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN A32 ED SUBRWTINE LABEL8 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C-- THIS SECTION LABELS A NEWLY ADDED ITEM. C C AND ALSO UPDATES A CHANGED ITEM'S LABH. POSITION. C C C C-- PRMRAMMER: JEN D. REID DATE: FALL 1983 C C C C--- CALLED FROM IDDIFY. C C C C--- SUBROUTINES CALLED: POSLBL C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDETIFICATION CCCCCCCC C C INSET (XJMFIL INSET INPT'BK C C--- LOCAL VARIABLES C WICAL NEWLIN.EDLIN CHARACTER‘I INTEMP CHARACTER‘Z INTMPZ C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK OCCC C C MARGIN=80 ILO=1 mI=20 IVAL=0 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C--- DO NOT LABEL ORIGIN C IF(NCITEM.m.39) THE RETURN EDIF C C-- IF THIS IS A NEW ITEM A LABH. HIST BE CREATED. C IF(NWITEM) THE C C-- CONSTRUCT THE LABEL C 50 CALL PROMPT('INPUT INDEX NUIBER FOR LABEL (1-20) : ') A33 NEWLIN=.TRUE. CALL GETIN(IVAL. ILO. IHI.NEWL1N.EDLIN) IF(IVAL.E.0) GOTO 50 IF(IVAL.LT.10) THE WRITE(INTEMP. '(Il) ') IVAL ITMI..BL(NCITEM)=ITEM(1:1)/IINTEMP ELSE WRITE(INTMPZ. ' (I2) ') IVAL ITMTBL(NCITEM)=ITEM(1 : 1) I/INTMP2 EDIF C C-- CHECK TO SEE IF NEW LABH. ALREADY EXISTS . C ITMPIBNITEM-l IF(ITMP1.E.O) GOTU 70 DO 60 J =1 . ITMPI IF(ITMLBL( J) . EQ. ITllBL(NCITEM)) THE WRITE ( ' . 910) GOTO 50 EDIF 60 CONTINUE 7 0 EDIF C C--- GET THE X AND Y POSTION OF THE LABEL C CALL POSLBL C C-- ADD THE LABEL TO THE ITEM IT REPRESETS . C CALL PSGRAF WRITE". 920) ITMLBL(NCITEM) .TBLPOS(NCITEM,1) . + TBLP08(NCITEM.2) . ITILBMNCITEM) WRITE( ‘ . 93 0) ITILBL( NCITEM) . CITEM CALL ROMP“ 'REDDVE CROSS; ') CALL PSTERM NW ITEM= .FALSE. C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 910 FORMAT(//.'LABEL ALREADY EXISTS. TRY AGAIN.'.//) 920 FORMAT(A3,’:-(BARACTERS '.F7.3.'.'.F7.3.' "'.A3."';') 930 FORMAT('INCLUDE '.A3.' IN '.A5.';') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN ED SUBROUTINE POSLBL C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBRWTINE DESCRIPTION CCCCC C C A34 C-- THIS SUB. FINDS A DESIRED X AND Y POSITION C C USING THE DIAL NETWORK WITH CROSS-HATES E THE SCREE. C C C C-- PRTISRAMIBR: JEN D. REID DATE: FALL 1983 C C C C-- CALLED FROM LABEL8. C C C C-- SUBROUTINES CALLED: UNLOCK LOCKIN C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDETIFICATION CCCCCCCC C C INSET COMFIL C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK OCCC C C CITEM=‘CR088' NTEMPbNCITEM NCITEM=40 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C--- DISPLAY CROSS-HAIRS AND ALLOW FOR I AND Y TRANEATION C CALL PSGRAF CALL PROMPT('DISPLAY CROSS; ') CALL PSTERM CALL UNLOCK C C--- ASK USE TO TYPE OK AFTER HE POSITIONS THE C CROSS-HAIRS. C WRITE(‘.900) 100 CALL PROMPT('TYPE OK TO CONTINUE : ') READ(‘.920) IANS IF(IANS.NE.'OK') GOTO 100 C C--- LOCKIN AND GET POSITION OF mE CROSS-HATES. C CALL LOCKIN LBLPOS(NTEMP.1)=TRAN8X(40) LBLPOS(NTEMP.2)=TRANSY(40) C C-- RESET VARIABLES C NCITEMBNTEMP CITEMBITLSTTNCITEM) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C A35 CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 900 FORMAT(/l .'USING THE DIALS. POSITION THE CROSS-HAIRS IN THE' + ,I, 'DESIRED LOCATION FOR THE LABR. './) 920 FORMAT(A2) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN ED C C C COMIDN FILE COMFIL C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC COMIDN FILE DESCRIPTION CCCCC C C C—- COMUN FILE FOR THE GRATHIC DESIGN PRERAM. C C C C-- PRERAMMER: JEN D. REID DATE: FALL 1983 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDETIFICATION CCCCCCCC THE FOLLOWING VARIABLES THAT BEOIN WITH 'NUM' REPRESET THE NUDBER OF THAT SPECIFIC ITEM ADDED (AT ANYTIME) TO THE DESIGN. FOR EXAMPLE: IF NU|B=2 . THE 2 SPRINGS HAVE BEE ADDED TO THE DESIGN AT SOME TIDE DURING ITS DEVELOPMEWT. NOTE: THESE NUIBERS DO NOT TAKE INTO ACCOUNT ITEIB THAT HAVE BEE DELETED. THEY ARE A RUNNING TOTAL. NUTS - GROUNDS NUIB - BARS - SPRINGS NUMD - DAMPERS NUMM - MASSES NUIU - JOINTS NUMF - FORCES NUMP - PINS NUMV - RIGHT VELOCITIES NUML - LEFT VELOCITIES NUMR - ROUGH (FRICTION) OTHER VARIABLES NITEM - TOTAL NUDBER OF ITEMS ADDED OOOGOOOOOOOOOOGOOOOOOOOOOO GOOOOOOOGOOGCOOOOOOOOGOOOO ' OOOOOOOOGOOOGOOOOOO : 000006000 OOOOOOOGOOOOOOOOO A36 NDEL - NUIBER OF ITEMS DELETED -- WICAL VARIABLES LOCKED - TRUE: N0 TRANSLATION.ROTATIONS OR SCALING CAPABILITIES (N ANY ITEM. FALSE: TRANS..ROT.. AND SCALING CAPABILITIES ON THE CURRET ITEM (CITEM). FILE - FALSE: N0 FILE NAME HAS BEE SPECIFIED AS OF YET. OLDFIL - TRUE: THE FILE THAT IS BEING WORKED (N IS OLD. (IT WOULD HAVE TO BE OVERWRITTE TO BE SAVED) NWITEM - TRUE: A NEW ITEM HAS BEE ADDED AND DOES NOT HAVE A LABEL AS OF YET. FALSE: ITEM UNDER CONSIDERATION ALREADY HAS BEE LABRLED. ARRAYS ITMLSTHO) - THE P8300 STRUCTURE NAME OF EACH ITEM IN THE DESIGN. ITMI‘YP(i) - THE TYPE OF ELEMENT ITILSTH) IS. (SPRING.BAR.ETC.) ITMLBL(i) - THE LABEL NATE ASSOCIATED WITH ITMLSTU) . LBLPOS(i.2) - THE X AND Y POSITION OF ITDLBLU). WORK VARIABLES CITEM - CURRET ITEM NAME UNDER CONSIDERATION. (CITEM= IMST(NCITEM) ) NCITEM - THE NUIBER OF THE CURRET ITEM BEING WORKED ON. ITEM - TYPE OF CURRET ITEM UNDER CONSIDERATION. (ITEM-=ITM1'YP(NCITEM) ) CHARACTER‘SZ WORD CHARACTER‘lZ FNAIE CHARACTER‘G CITEM. ITEM. IT‘MLSTMO) . ITDDELUO) . ITMTYPHO) CHARACTER‘4 ELITE. ITILBL( 40) CHARACTER'Z IAN S LWICAL LOCKED. F ILE, (LDFIL, NWIT'EM REAL IBLPOS(40.2) COMIDN/ BKI/ NUDE. NUDE. NUIB , NUMM. NUDE, NUMP. + NUML.NUMV.NUMF,NUIU.NUMD 06006000OOOOOOOOOOOOOOOOOOOOCOOOGGGOOOOOOOOOO A37 COMIDN/ BK2/ WORD. CITEM. ITEM. HLITE. ITMTYP. ITDLBL. + NITEM. ITMLST. NDEL. ITMDEL.NCITEM. EAIE OOMIDN/BK3/TRANSXUO) .TRANSY(40) . ROTZ(40) . SCL(40) n + SCLX(40).SCLY(40).LBLPOS COMIDN/ BK4/ LOCKED. F ILE, (LDFIL. NW ITEM. IAN S C C C ED OF COMFIL CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C COMDDN FILE COMBG C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC COMIDN FILE DESCRIPTION CCCCC C C C—- COMDDN FILE FOR THE BOND GRAPH PRMRAM (BILDBG) . C C C C-- PRCERAMMER: JCBN D. REID DATE: FALL 1983 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDETIFICATION CCCCCCCC C C C-- CHARACTERS C C CNNAM - THE (DNNECI‘OR NATE LIST. ( S. D. F. V. R. X ) C MEAM - THE IDTION POINT NAME LIST. ( M. B. I. G, P ) C NEWLBL - THE RE-ORDERED ITEM LIST. THE NEW ORDER IS: C M.B. J.G.P. S.D.F.V,R C C— INICAL VARIABLES C C NEWLIN. EDLIN - USED TO HELP READ INPUT IN SUBROUTINES C GETWD. GETRL AND GETIN. C C-- REAL AND INTEGER VARIABLES. MOTTYP - THE TYPE OF ALLOWABLE IDTION FOR THE SPECIFIED IDTION POINT. UTTYPOIP I) ' 0 NO IDTION MOTTYP(MP I) = 1 X IDTION IDTTYP(MP I) l 2 Y IDTION MOTTYP(MP I) 8 3 I AND Y mTION WTTYPUIP I) = 4 THETA IDTION IDTTYPOIP I) = 5 I AND THETA WTION IDTTYP(MP I) = 6 Y AND THETA DTION IDTTYPUIP I) = 7 X. Y AND THETA UTION NIDT - THE NUDBER OF ETIONS FOR BAG mm. 0:. MPICANUVEINXANDTHETA. THE 00000006000000 OOGOOOOGGOOOOOOOOCOOOOOOGOOOOOOO ' X A38 NIDT(MOTTYP(MP I))=NK)T(5) = 2. MP I HAS 2 WAYS IT CAN IDVE. XMP.VMP - THE POSITION AND VELOCITY VECTOR FOR THE IDTION POINTS. IXMPPT - NODE POINTER LIST TO ITS XMP OR VMP. XEP.VEP - THE POSITIN AND VEOCITY VECTOR FOR THE ED POINTS. IXEPPT - NODE POINTER LIST TO ITS XEP OR VEP. CN,V(N - THE POSITION AND VELOCITY VECTOR FOR CONNECTORS. IXCNPT - NODE POINTER LIST TO ITS XCN OR VCN. MTF - TRANSFORMER LIST MTFDAT - DATA FOR MTF : FUNCTION. CONSTANTS. ARGUDETS. G G G + + + + + EOMAS(i.j.1) - THE X-DISTANCE FROM THE CENTER OF MASS 1 TO THE ATTACHED ED POINT OF CONNECTOR j. EOMAS(i.j,2) - THE Y-DISTANCE FROM THE CENTER OF MASS 1 TO THE ATTACHED ED POINT OF CONNECTOR j. EOBAR(i.j) - THE DISTANCE FROM THE ROTATION POINT ON BAR TO THE ATTACHED ED POINT OF CONNECTOR j. PARADETER (MAXNCN=20) PARADET‘ER (MAXNMP=20) PARAMETER (MAXNMS=10) PARAMETER (MAXNBEIO) PARAMETER (MAXNTF=MAXNMP‘4) CHARACTER‘I ANS CHARACTERNI CNNAM(MAXNCN) . MPNAMUIAXNMP) .NEWIBL(40) CHARACTER‘32 WRD LMICAL NEWLIN,EDLIN INTFBER EEMPWAXNE‘Z) .CP'I'R(MAXNMP+1) .ETYPO‘AEE) . PNTLBLHO) REAL MTFDAT(MAXNTF.11) COMIDN/ BKBGI/ ANS. CNNAM. MPNAM. NEWLBL. WRD COMIDN/ BKBGZ/ NEWLIN . EDLIN COMIDN/ BKBG3/MPONE(MAINE.2) . CNCNMP. CPTR. IDTI'YP(MAINMP) . ETYP.NWT(O: 7) .MPlPTR(MAXNMP) .PNTLBL. IEPTYP(MAXN(N) .MTF(MAXNTF) COMIDN/ BRBG4/GEMAS(MAXNMS. MAINE.” . GEOBAR(MAXNBR. MAINE) .M'TFDAT COMIflN/ BKBGS/NMP.NMPWM.N(N, NMS, NBR. NTF. I, J.NODEO , IXORY. NTFEL. ITFELH) A39 COMIflN/ BKBG6/XMP(MAXNMP‘3) .VMP(MAXNMP‘3) . + XEP(MAXNCN*4) .VEPUMXNEM) . + XCN(MAXNCN).VE(MAXNE) COMIDN/ BKBG’I/ IXMPPT(MAXNMP‘3) . IXEPPT(MAXNE‘4) . + IXCNPT ( MAINE ) C C C ED OF COLBG CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C C C COMIDN FILE SYBGBK C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC COMIDN FILE DESCRIPTION CCCCC C C C—- COMIDN FILE SYBCK: SYSTEM BEMRATH BLOCK C C C C-- SUPPORTS GRAPDR. BOND GRAPH DATA STRUCTURE C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC _ VARIABLE IDETIFICATION CCCCCCCC C C C--- VARIABLES: C IELLST LIST OF NODES BY TYPE NUDBER C NBIMX BEDS INCIDET ON A GIVE NODE C IBMX NODES ADJACENT TO A GIVE BED C NPTR POINTER TO START OF BEDS IN NBIMX FOR NODE I C IELNAM NADES OF NODES C IBNAM NADES OF BEDS C C--- NOTE. THIS BLOCK SHELD BE COORDINATED WITH GREDBK. SINCE C THE ARRAYS MATCH AND THE DIMSIONS SET BY PARAIETER C DECLARATIONS SHOULD TOO. C C PARAIETER (MNEIFIIO) PARADETER (MNBD=120) C CHARACTER'M NTYP(9) CHARACTER'32 IELNAMOINEL) . IBNAMUNBD) C C OOMIDN /SYBG’BI/ NELJBD. IELLSTUNEL) .NBIMXUINBD‘Z) . + IBMX(MNBD.2) .NPTR(MNE.+1) .NMCR COMWN / SYBGBZ/ IELNAM, IBNAM. NTYP C C C ED OF SYBGBK CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C A 40 I P8300 FILE: MENUS ) { THIS FILE DOES THE FOLLWING: } I 1. DEFINES THE 3 ms: MASTER. IDDIFY AND DRAWN}. ( 2. POSITIONS THEM TO THE DESIRED LOCATION E THE SCREE. I 3. DISPLAYS THE IEUS E THE P8300. IASTER:=BBGINS CONTRAST:=SET CONTRAST .5: GARACTER SCALE .024: TRANSLATE BY .55..9.0: GAR 0.0 'C CREATE NEW FILE': GAR 0.-.1 'R RESTORE OLD FILE': GAR 0,-.2 'Il mDIFY FILE': GAR 0.-.3 'S SAVE FILE': GAR O.-.4 'E EXIT PROGRAH': ENDS: DISPLAY MASTER: mDIFY:=BmINS OON'IRAST:=SET CONTRAST .5; CHARACTER SCALE .024; TRANSLATE BY .55..2.0: CHAR 0,0 'A ADD NEW ITEM': CHAR 0.-.1 'C CHANGE ITEM': CHAR 0.-.2 'L LOCK IN ITEM': CHAR 0.-.3 'D DELETE ITEM'; CHAR 0.-.4 'RP REPLACE ITEM': CHAR 0.-.5 'R RETURN': EDS; DISPLAY IDDIFY: DRAWMVBBEINS SET CONTRAST TO .13 CHAR SCALE .063 SCALE BY .43 MSLATE BY 05250-07103 MSIJATE BY 0743-0530; GAR 0,-.03 'G': CHAR O.-.28 'B'; EAR O.-.53 'S'; CHAR O.-.78 'D'; GAR 0,-1. 'P': EAR O.-1.21 'M'; TRANSLATE BY .08.0.03 INSTANCE GROUND; THANSLATE BY .2 .-.25.03 INSTANCE BARB TRANSLATE BY -02 9-02590; INSTANCE STRINGS TRANSLATE BY O.'.25.0S INSTANCE DAME; I l l A41 MflaAm BY .15 9.025003 INSTANCE PINS TRANSLATE BY .05.’.1375.03 INSTANCE “ASS; TRANSLATE BY .8475.1.1775.03 CHARACTER O,-.03 'R'; CHARACTER 0.-.25 'J'; CHARACTER 0.-.53 'F'S CHAR 0.-.75 'VR'; CHAR 0,-1.0 'VL'; CHAR 0,-1.21 'E'; TRANSLATE BY -.46..03 INSTANCE ROUGH; TRANSLATE BY .2,-.225,0; INSTANCE JOINT; TRANSLATE BY -.1.’.275.03 INSTANCE FORCE; TRANSLAIE BY .05.’.25.03 INSTANCE VRIGHTB TRANSLAIE BY .1.‘.25.03 INSTANCE VLEFTS CHARACTER ‘.17.’.21 'ERIT'S BIDS: DISPLAY DRA'NGB I P8300 FILE: VIEW.OBJECI‘ } I THIS FILE DOES THE FOLLOWING: } I 1. DEFINES THE,IAIN GRAPHICS VIEW. I 2. DEFINES THE ORIGIN COORDINATE SYSTEII. I 3. DEFINES THE CROSS-HAIRS USED TO POSITION LABELS. VIEW:=BEGINS CONTRAST:=SET CONTRAST .5: CHAR SCALE .05; ID:=CHAR -1.,.9 'FILE : '3 CHAR SCALE .6; OBJECT:= INSTANCE 0F ORGIN; ENDS: ORGIN:=BEGINS I} I ALLOW FOR TRANSLATION AND SCALING. } I} TRANSR:=TRANSLATE BY 0.0. TRANSY:=TRANSLAIE BY 0,0 SCL:=SCALE,BY .753 VEC SEPARATE Z80 N=12 0. .0: A 42 -.025.0 .2,0 0.-.025 0..2 0.0 .13..09 .115.0 .08..055 .08..055 .083..04 .08..055 .095..045: CHAR SCALE 1.333 CHAR .21.-.025 'X': CHAR -.025..2 'Y': CHAR .14..09 '0': CHAR .14..09 '-': CHAR -.04..01 '0': ENDS; CROSS:=BEGINS I] I ALLOW FOR X AND Y TRANSLATIONS. } I} TRANSX:-TRANSLATE BY 0.0.0; TRANSY:=TRANSLATE BY 0.0.0: VEC SEPARATE Z=0 N=2 -.05.0 .05.0 . .-.05 .0..05: ENDS: I P8300 FILE: OBJECTS 1 I THIS FILE DOES THE FOLLOWING: } I 1. DEFINES A CIRCLE TO BE USED AS AN 81D POINT FOR THE I CONECTORS. I 2. DEFINES THE INDIVIDUAL IT'EIB (03. SPRING, DAHPER) CIRCLE:=BEGINS RATI POLY .020,0.0.2 -.020.-.020.0,-2 0,.010,0.1 CHORDS=25: RATI POLY .020.0,0.-2 -.020.-.020.0,2 0..010.0.-1 CHORDS=25: ENDS: GROUND:=BEGINS VEC ITENIZED ZBO N=16 I } 5—0 A43 P 0.0 L .4.0 P .025.’.025 L .05.0 P .075.’.025 L .1.0 P .125.'.025 L .15.0 P .175.’.025 L .2.0 P 02253-0025 L .2500 P .275.‘.025 L .3.0 P .325.“.025 L .35.03 BIDS: BAR:=BECINS VEC Z=0 NI=5 .2. .00625 -.2 . .00625 -.2 #300625 .2.-.00625 .2..00625; BIDS; SPRINGt=BEGINS INSTANCE CIRCLE; VEC Z=O N=10 0.0 .0875.0 .10625:.05 .14375,-.05 .18125..05 .21875.’.05 .25625:.05 0293750-005 0312530 04 no; TRANSLATE BY .4.0.03 INSTANCE CIRCLE; ENDS; DAMPER:=BEGIN8 INSTANCE CIRCLE; VEC ITEMIZED Z=0 N=10 P 0.0 L .175.0 P .2375..0375 L .175..O375 L .175.-.0375 L .2375.*.0375 P 0290025 1: .20-0025 P .2,0 L .4.0: TRANSLATE BY .4.0.03 INSTANCE CIRCLE: BIDS; PIN:=BEGINS VEC Z=0 Nh4 0.0 .1.0 .05..07071 0.0: ENDS: IASS:=BEGINS VEC Z=0 Nbs .0625..O625 .0625.-.0625 -.0625.-.0625 -.0625..0625 .0625..0625; EWDS : ROUGH:=BEGINS VEC Z=O Nh18 0.0 .0125..0125 .0375.“.0125 .0625..0125 .0875.-.0125 .1125..0125 .1375.'.0125 .1625..0125 .1875.’.0125 .2125..0125 .2375.'.0125 .2625..0125 A44 .28751-00125 03125000125 033750-00125 03625300125 038.753-001.25 04,0; MUSE JOINT:=BFBINS VEC IT‘ENIZED Z=0 N=8 P -.025..025 L .025.-.025 P .025..025 L .025.-.025 L -.025.-.025 L -.025..025 L .025..025 L -.025.-.0253 BIDS: FORCE:=BEGINS VEC ITEM Z=0 N=1 P 0.0 L .175.0 P 0,.025 L .175..025 P .15..05 L .2..0125 L .15.-.025: TRANSLATE BY 0,.0125.0: INSTANCE CIRCLE; MOS: VRIGHT:=BEGINS INSTANCE CIRCLE; VEC ITEM Z-O N==6 P 0.0 L 0..05 L .1..05 P .075..0625 L .1..05 L .075..0375; MS: VLEFI‘:=BH§INS INSTANCE CIRCLE: VEC ITEM Z=0 N=6 P 0.0 L 0..05 L -.1..05 P -.075..0625 L -.1..05 L -.075..0375; BIDS: I P8300 FILE: DIAL.NETWORK I I THIS FILE CREATES A DIAL NETWORK THAT IS USED TO TRANSLAT'E. 1 I ROTATE AND SCALE THE ITEM THAT THE NETWORK IS ATTACHED TO. 1 I } I CREATE THE Z-ROTATION FUNCTION AND SEED OR (DNNECI‘ ITS 1 I INPUTS. I ZDIAL : =F :DZROTATE ; 8m 0 TO <2>ZDIAL3 SKID 32 TO (3>ZDIAL; CONN DIALS<7>=<1>ZDIAL3 I I I CREATE THE X-TRANSLATION FUNCTION AND 8WD OR CONNECT ITS I I INPUTS. } XVALUE:=F:ACCUIIULATE: 8m 0 TO <2>XVALUE3 A 45 SEND>1 TO <4)KVALUE3 CONN DIAL8(5):<1)KVALUE3 I l I CREATE THE Y-T‘RANSLATION FUNCTION AND SEJD OR CONNECT ITS } I INPUTS. } YVALUE: =F : ACCU WLATE: SEND 0 TO (2)YVALUE; SEND 1 TO <4>YVALUE3 CONN DIALS<6>:<1>YVALUE: I I I CREATE.THE SCALING FUNCTION AND SEND OR CONNECT ITS INPUTS. I I I SCLVAL:=F:DSCALE: SEND 1 TO <2>SCLVAL: SEND 1 TO (3)8CLVAL: SEND 0.1 T0 <5>SCLVAL3 CONN DIALS<8>:(1>SCLVAL: I l I CREATE THE,X.AND Y TRANSLATION VECTOR AND CONNECT ITS } I INPUTS. I XVECT:=F:XVECTOR; YVECT:=F:YVECTOR; CONN XVALUE<1>=<1>KVECT3 CONN YVALUE<1>:(1)YVECT: I} I CREATE THE XrSCALING NETWORK. I I} SCALEX:=F:ACCUHULATE; SEND 1 TO <2>SCALEXB SEND 1 TO <4>SCALE13 SEND .01 TO <6>SCALEX: SX2VEC:=F:VECC: SEND 1 TO (2)8X2VEC; SK3VEC:=F:VECC: SEND 1 TO <2>SXSVEC3 SCXMAT:#F:SCALE; CONN SX3VEC<1>=<1>SCXMAT§ CONN SX2VEC<1):(1)SX3VEC; CONN SCALEX<1):<1>SXZVEC; CONN DIALS<3>:<1>SCALEX3 I} I CREATE THE Y-SCALING NETWORK. I I} SCALEY:=F:ACCUMULATE: SEND 1 TO <2)SCALEY; SEND 1 TO <4>SCALEY; SEND .01 TO (6)8CALEY: SY2VEC:€F:CVEC; SEID 1 TO <1)SY2VEC3 SY3VEC:=F:VECC; SEND 1 TO (2)8Y3VEC3 A46 SCYHAT: =F : SCALE: CONN SY3VEC(1):(1)SCYIIAT: CONN 8Y2VEC<1):(1)SY3VEC3 CONN SCALEY(1):<2)SY2VEC3 CONN DIALS<4>=<1>SCALEY3 I l I SWD A LABEL TO THE APPROPRIATE DIAL. I } SKID 'SCALE X' TO (1)DLABEL3; SKID 'SCALE Y' ID (1)DLABEL43 SWD 'TRANS X' '10 <1)DLABE153 SWD 'TRANS Y' TO (1)DLABELG: SE‘ID 'ROTATE 2' TO <1)DLABEL73 SKID 'SCALE' T‘O <1)DLABEL8; I P8300 FILE: OUTPUT.NETWORK I I THIS FILE CREATES A NETWORK THAT WILL SEND P8300 WT'PUT I TO THE TERMINAL SCREEN! (HOSTOUT). OUTPUT:=F:PRINT; BLANKPAD:=F :CONCATHWATEC: SE‘JD ' ' TO (2)8LANKPAD; CONN WTPUT<1):<1>BLANKPAD3 T’OHOST: 8F : CON CATFNATEC ; SWD CHAR(141) TO <2)TOHOST; CONN MOST<1):<1>H08TWT; C(NN BLANKPAD<1>:<1>TOH08T; I l I DATA IS A FUNCTION mAT WILL SIWLTANEOUSLY SDID THE I SIX VALUES ST‘OR- IN IT TO THE TERMINAL SCREW. I } DATA:=F: SYNCI'I); CONN DATA<1>:(1)OUTPUT; CONN DATA<2):(1)OUTPUT; CONN DATA<3>:(1>OUTPUT; CONN DATA<4>=<1>OUTPUT3 CONN DATA<5>:<1>OUTPUT3 CONN DATA(6):(1>OUTPUT; APPENDIX B TRANSFORMER FUNCTIONS APPENDIX B TRANSFORMER FUNCTIONS The functions in this appendix appear in the following sequence: 1. FUNCTION 1 2. FUNCTION 2 3. FUNCTION 3 4. FUNCTION 4 5. FUNCTION 5 B1 B2 FUNCTION 1 C C CDCCCCC FUNCTION DESCRIPTION CCCCC C C C-- THIS FUNCTION EVALUATES HE TRANSFORMER BETWEENI A C C CONNECTOR BID POINT X-VELOCITY 1-JUNCI'ION AND THE C C THETA-VELOCITY 1-JUNCTION OF THE MASS ADTION POINT IT C C IS ATTACHED '10. C C C C--- PROGRAMMER: JCHN D. REID DATE: FALL 1983 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C C TFN - TRANSFORMER NUIBER C C C C 2 CONSTANTS: a - X-DISTANCE BETWEEN MASS CENTER AND HP. C C b - Y-DISTANCE BETWEBI MASS CENTER AND EP. C C C C 1 ARGUMENT: MPPT'R - POINTER TO THE mETA IDTION MINT C C VALUE IN XMP. C C C C MTFVALI T'FN ) - VALUE OF TRANSFORMER T'FN. C C ' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK CCCC C C a = MTFDATILZ) b = MTFDATI1.3) MPPT‘R = HTFDAT(1.4) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK CCCC C C NTFVALITFN) = -( a‘SINI XMPIMPPTR) ) 4' b‘COSI XMPIMPPTR) ) ) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C RETURN HID FUNCTION 2 C C CDCCCCC FUNCTION DESCRIPTION CCCCC C C C-- THIS FUNCTION EVALUATES THE TRANSFORMER 3mm A C C CONNECTOR BID POINT Y-VELOCITY 1-JUNCTION AND THE C C THETA-VELOCITY 1-JUNCTION OF THE MASS DDTION POINT IT C C IS ATTACHED TO. C C C C—- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC B3 C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C C TFN - TRANSFORMER NUIBER C C C C 2 CONSTANT‘S: a - X-DISTANCE BETWEEN MASS CENTER AND EP. C C b - Y-DISTANCE BETWEEN] MASS CENTER AN.) L}. C C C C 1 ARGUMENT: MPPTR - POINTER TO THE THETA IDTION POINT C C VALUE IN XMP. C C C C MTFVALI TFN ) - VALUE OF TRANSFORMER T'FN. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK CCCC C C a = MTFDATI1.2) b = MTFDATI1.3) MPPTR = MTFDATI1.4) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK CCCC C C MTFVALITFN) = a‘COSI XMPIMPPTR) ) ‘ b‘SINI XMPIMPPTR) ) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C RETURN DID FUNCTION 3 C . C CDCCCCC FUNCTION DESCRIPTION CCCCC C C C-- THIS FUNCTION EVALUATES THE TRANSFORMER BETWEEN A C C CONNECTOR BID POINT K-VELOCITY 1-JUNCT ION AND THE C C THETA-VELOCITY 1-JUNCTION OF THE BAR IDTION POINT IT C C IS ATTACHED TO. C C C C—- PROGRAMMER: JOIN D. REID DATE: FALL 1983 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENITIFICATION CCCCCCCC C C C TFN - TRANSFORMER NUABER C C C C 1 CONSTANTS: a - DISTANCE BETWEEI BAR ROTATION C C POINT AND THE CONNECTOR BID POINT. C C C C 1 ARGUMENT: MPPT'R - POINTER TO THE THETA IDTION MINT C C VALUE IN XMP. C C C C MTFVALI TFN ) - VALUE OF TRANSFORMER TFN. C B4 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK CCCC C C a = MTFDATII.2) MPPTR = MTFDATI1.3) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK CCCC C C MTFVALITFN) 8 - a ’ SINI XMPIMPPTR) ) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C RETURN DID FUNCTION 4 C C CDCCCCC FUNCTION DESCRIPTION CCCCC C C C-- THIS FUNCTION EVALUATES THE TRANSFORMER BETWEEN A C C CONNECTOR BID POINT Y-VEOCITY 1-JUNCTION AND THE C C THETA-VELOCITY l-JUNCTION OF THE BAR ID'TION POINT IT C C IS ATTACHED TO. C C C C--- PROGRAMMER: JIBN D. REID DATE: FALL 1983 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C C TFN - TRANSFORMER NUMBER C C C C 1 CONSTANTS: a - DISTANCE BETWEEN BAR ROTATION C C POINT AND THE CONNECTOR BID POINT. C C C C 1 ARGUMENT: MPPTR - POINTER TO THE THETA IDTION POINT C C VALUE IN KMP. C C C C MTFVAL( TFN ) - VALUE OF TRANSFORMER TFN. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK CCCC C C a = MTFDATI1.2) MPPTR = MTFDATILB) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BIDCK CCCC C C MTFVALITFN) = a ‘ COS( XMPIMPPTR) ) BS C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C RETURN ND FUNCTION 5 C C CDCCCCC FUNCTION DESCRIPTION CCCCC C C C-- THIS FUNCTION CALCULATES THE TRANSFORMERS BETWEEN A C C CONNECTOR AND ITS TWO ND PONT‘S. C C ALSO CALCULATED ARE THE CONNECTOR DISPLACEMENT AND C C VELOCITY VALUES. C C C C-- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CVCCCCCCCC VARIABLE IDNTIFICATION CCCCCCCC TFN - TRANSFORMER NUDBER THAT CALLED THIS FUNCTION. XCN - RELATIVE DISPLACEMENT OF THE CONNECTOR. VIN - RELATIVE VELOCITY OF THE CONNECTOR. RIl) - TRANSFORMER TOWARDS THE X-VEOCITY OF ND POINT 1. RI2) - TRANSFORMER TOWARDS THE Y-VEOCITY OF ND PONT 1. RI3) - TRANSFORMER TOWARDS THE K-VELOCITY OF ND PONT 2. RI4) - TRANSFORMER TOWARDS THE Y-VELOCIT'Y OF ND PONT 2 . 4 ARGUIENTS: Kl VALUE OF X-POSITION OF ND PONT 1. Y1 B VALUE OF Y-POSITION OF ND PONT 1. X2 = VALUE OF X-POSITION OF ND PONT 2. Y2 = VALUE OF Y-POSITION OF ND FONT 2. SIMILARLY. V11 THROUGH VY2 ARE WE VELOCITIES. 1 MODULATED FUNCTION NUDBER = MTFDATI TFN.6 ) THE NUIBN CORRESPONDING TO RIn) ABOVE THAT IS ASSOCIATED WITH TRANSFORMER TN. 1 PONTER = MTFDATI TFNJ ) - NUDBER OF PONTERS TO FOLLOW. CONNECTOR NUBBER = NTFDATI TFN.8 ) PONTERS - HIE TRANSFORMERS THAT ARE EVALUATED WHN THIS TRANSFORMER (TFN) IS CALCULATED. GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOGOOOCOOOOOOOOOOOOOO“06000060000000 BG C MFTVAL - THE VALUE OF THE TRANSFORMERS. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC NITIALIZATION BLOCK BLOCK CCCC C C X1 = KEPI MTFDATI TFN.2 ) ) Y1 = XEP( MTFDATI TFN.3 ) ) 12 = XEPI MTFDATI TFN.4 ) ) Y2 - KEPI MTFDATI TFN.5 ) ) VXl = VEP( MTFDATI TFN.2 ) ) VYl = VEP( MTFDATI TFN.3 ) ) VX2 = VEP( MTFDATI TFN.4 ) ) VY2 = VEP( MTFDATI TFN.5 ) ) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK CCCC C C C-- CONNECTOR DISPLACEMENT. C XCNI MTFDATI TFN.8 ) ) = SQRTI (X1-X2)“2 + (Y1-Y2)"2 ) C C-- TRANSFORMER DDDULI. C TMP = 1/ L RIl) 8 TMP‘IXl-X2) RI2) = TMP‘IYl-Y2) RI3) = -TMP‘(X1-K2) R(4) = -TMP‘(Y1-Y2) C C-- CONNECTOR VELOCITY. C VCNIM'TFDATITN.8)) =RI1)‘VXl + R(2)‘VY1 + RI3)‘VKZ + R(4)'VY2 C C--- STORE THE TRANSFORMER VALUES. C MTFVALI TN ) = R( MTFDATI TFN.6 )) C C-- STORE THE TRANSFORMERS BY PONTERS. C DO 100 I=1.MTFDAT(TFN.7)-1 C C- NTF - T'F NUDBER OF PONTER I. C NTF = MTFDATI TFN.I+8 ) MTFVALINTF) = R( M'TFDATI NTF.6 ) ) 100 CONTNUE C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C RETURN ND APPENDIX C SOURCE CODE FOR BILDBG APPENDIX C SOURCE CODE FOR BILDBG Subroutines in this appendix appear in the 1. BILDBG 2. RESTOR 3. REORDR 4. INITBG .5. RESULT 6. CONECT 7. GETMP 8. GETMOT 10. GETGEM 11. BC 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. C 1 following sequence: GETEPS CNTFEP BNDNOD CNMP3 CNMP4 CNMPS CNMP6 CNMP7 BGOTFI BGEPTT BGEPMP C 2 PRCBRAM BILDBG C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC PROGRAM DESCRIPTION CCCCC C C C--- THIS IRWRAM CREATES THE LAGRANGIAN BOND GRAPH C C OF A GRAPHICS FILE (REATED ON THE P8300 C C USNG THE GRAPHIC DESIGN PRIERAM. C C C C--- PROGRAMMER: JIHN D. REID DATE: FALL 1983 C C C C--- SUBROUTNES CALLED: RESTOR REORDR C C INITBG CONECT C C GETLDT GETGEM C C BG RESULT C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDNTIFICATION CCCCCCCC C C INSERT COMFIL INSERT NPTBK INSERT (DMBG INSERT SYBGBK C CH ARACTER‘ 6 METHOD MARG N= 80 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CICCCCCCCC INITIALIZATION BLOCK BLOCK OCCC C C C--- TALK TO THE USER. C WRITE( * . 900) WRITE( ‘ . 91 0) WRITE( " . 92 0) C C-- READ N THE GRAPH ICAL DATA. C CALL RESTORINIBO) C C--- IF NOGO=1 EXIT RIB RAM. C IF(NIEO. m. 1) GOTO 7 99 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C--- SORT THE ITEM LIST (ITML) INTO THE IDTION IONT LIST C IMPNAM) AND THE mNNECTOR LIST (CNNAM) . C CALL REORDR C3 C C--- INITIALIZE VARIABLES. THESE VARIABLES DEPEND UPON THE C NUMBN (F ITEIB FOUND N RESTOR AND REORDR ABOVE. C CALL INITBG C C--- GET THE CONNECTION NETWORK I MATRIX ) OF THE C SYSTEM. C C-- THERE ARE TWO EmODS: C C 1. SUBROUTINE CONALT - GETS THE DDTION mNTS C ATTAGE) TO THE CONNECTORS. C C THE IDNALT IETHOD IS NOT USED AT THIS TIME C BPIIAUSE IT IDES NOT HANDLE DDTION FONTS C C(NNI'IZTED TO IDTION FONTS. C C C 2 . SUBROUTNE CONECT - GETS THE mNNECTORS ATTACHED C TO THE DDTION FONTS. C METHOD='CONECT' CALL CONECT C C--- GET THE ALLOWABLE DDTION FOR EACH DDTION FONT. C CALL GETIDT C C--- GET THE LOCAL GEOMETRY FOR THE MASSES AND BARS. C (i.e. DISTANCE FROM MP TO THE ND PONT OF ITS CONNECTORS.) C CALL GETGEM C C--- BUILD THE BOND GRAPH. C CALL BG C C WRITE RESULTS TO A FILE. C CALL RESULT C C--- EXIT TRISRAM C I 799 WRITEI‘.930) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C C C 900 FORMAT(/ll.2(l.63.50("')).2(/.6x.'"'.46x.'"')) 910 FORMAT(“. '"'.1ox. 'EVANS AND summmn PS300',IOX, mm, + 6X. "'".4GX.'“'./.6X.'“'.12X,' noun GRAPH PROGRAM ', + 121. "" .2(/.6X. '"' .46X. ""H C4 920 FORMATI6X, "P' ,17X. 'DEVELOPED BY' .17X. "" ./ . + 6x, "".46X.'“'./. + 6X."".18X.'JIIIN REID'.19X,"".I. + 6X."'".46X.""./. + 6X, "".18X,'FALL 1983',19X."'", + 2(/.GX.'“'.46X.'”'). + 2I/.6X.50I"'))) 930 FORMAT(/Ill . "”” YOU ARE NOW IEAVNG ' , + ' BILDBG. ””".l///) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CALL EXIT END SUBROUTNE RESTOR C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUB ROUTNE DESCRIPTION CCCCC C C C--- THIS SUBROUTNE RESTORES THE GRAPHICAL DATA C C FROM THE FILE SPECIFIED. C C C C-- NOTE: NE FILE HIST FIRST BE (HEATED BY THE GRAPHIC C C DE IGN PROGRAM IN THE PS3 00. C C C C-- PRIXiRAMMER: JIHN D. REID DATE: FALL 1983 C C C C--- CALLED PROM BILDBG. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDNTIFICATION CCCCCCCC C C NSERT (EMF IL C C EXTERNAL NCHARS C C C--- IF NOGO = 1 EXIT PRIBRAM UPON RETURNNG TO BILDBG. C C C NIXiO=0 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C--—- INPUT OLD FILNAME. C 100 WRITEI‘.910) READI‘.920) FNAME C C--- OPN (LO FILNAME C OPENIUNIT=12.FILE=FNAME. STATUS= 'OLD' .ERR=800) C C5 C--- READ N NUIBER OF ITEBS C READ(12.‘) NITEM C C-- READ N THE NITEM'S C DO 200 NCITEM=1.NITEM READ(12.930) ITKSTINCITEM) READ(12.940) ITMTYPINCITEM) READ(12 .‘) TRANSX(NCITEM) .TRANSYINCITEM) .ROTZINCITEM) . + SQJNCITEM) . SCLXINCITEM) . SCLY(NCITEM) READ(12 .950) ITMLBLINCITEM) .IBLPOSINCITEM.1) . + LBLH) SI NCITEM. 2) 200 CONTNUE C C--- READ N ORIGN TRANSFORMATIONS C READ(12.” TRANSX(39).TRANSYI39).SCLI39) C C--- READ N NUIBER OF EACH ITEM Iie. SPRNGSJIASSES...) C READ(12.” NULB.NUMB.NUMS.NUMD READ(12.” NUMP.NUMM.NUBR.NUMC READ(12.‘) NUMF.NUML.NULN CLOSE I UNIT= 1 2 ) OLDFIL=.TRUE. FILkJRUE. GOTO 999 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CERCCCCCCC ERROR HANDLNG BIOCK 0800 C C C--- ERROR - OLDFILE DOES NOT EXIST. C C C 800 CALL DBLANKIFNAME) WRITE(‘.960) FNAMEIlzNIHARSIFNAMEH READI‘.970) IANS IFIIANS.m.'Y') THEN GOTO 100 ELSEIFIIANSJ‘O. 'N') THN NIBO=1 ELSE WRITE( ’ . 980) GOTO 800 NDIF C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEMENTS BLOCK 9000 C C 910 FORMAT(//.'INPUT 1m: NAME OF ma GRAPHIC FILE '. + '10 BE PROCESSED: '.)_ g_2__ FORuA'rgAuz 93 FORMATAS C6 94 FORMAT(A6) 9_9_ FORMAT(3X,A4,4x.F7,3.4x,E1,32 96 FORMAT A ' DOES 9191 EXIST, 953 M1 RESTORE, '. U. "THE FILE MUST FIRST BE CREATED USING _'D_I§ GRAPUIc', LJ'DESfiIGN PROGRAM (DESIGN).'.//J'WOU_I_.Q YOU LIKE TO'I LTRYAQAIN? QLRELLLJ 97o FORNATMl) 980 FORMAT(/l. '1 DO NOT UNDERSTAND. './/) |+l+l+ C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C 999 RETURN END SUBROUTINE REORDR C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE RE-ORDERS THE ITILBL LIST C C TO A DESIR. ORDER. WHICH IS: C C C C M. B. J. G. P. S. D. F. V. R C C C C PN'TLBL IS A PONTER BETWEEN THE NEW ORDER (NEWLBL) C C AND THE (LD ORDER (ITMLBL) . C C C C--- THE IDTION POINT VECTOR ( MPNAM ) AND THE C C C(NNECTION VECTOR ( CNNAM ) ARE ALSO POUND. C C C C MOTION POINTS ARE : M. B. J. 6 AND P C C C C C(NNECTORS ARE : S. D. F. V AND R C C C C--- PROGRAMMER: JOHN D. REID DATE: FALL 1983 C C C C--- CALLED FROM BILDBG. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT OOMFIL INSERT (D386 C C C--- LOCAL VARIABLES. C C C CHARACTER‘l IBLLET( 10) DATA 1311.317 0": . OB! ' 0J0 ' 'G' . 'P' ' vs: ' 'D' . oFo ' ovo . 'R'I ITEMP=0 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C7 C--- BEEN LOOP TO PUT N (RDER OF LBLLET. C DO 200 181.10 C C--- FND 'IBE NULBER OF mTION FONTS ( NMP ) C-- AND THE NUDBER OF M.P.'S WITH IDTION ( NMPWN ). C IF(I.m.6) THE! NMP=ITEIIP ELSEIF(I.m.4) THEN NMPWIFITEMP ENDIF C C--- INNER LOOP TO FIND THE ITDLBL'S THAT (DRRESPOND C TO LBLLET ( STORE N NEWIEL ). C DO 100 J=1.NITEM IF(ITKBMJ) (1:1).BQ.I.BLLET(I)) THEN ITEMP=ITEMP+1 NEVLBU ITEMP) =ITMBL( I) PNTLBUITEMP)=J C- GET THE (DNNECTOR TYPE. IF(I.m.6) TEEN NCN=NOJ+1 CNTYP(N(N)=1 ELSEIF(I.ED.7.OR.I.EO.10) THEN NCN=NCN+1 CNTYP(NCN)=3 ELSEIF(I.ED.8) THEN . NCN=Nm+1 CNTYP(NCN)=4 ELSEIF(I.ED.9) THEN NCN=NCN+1 CNTYP(N(N)=5 NDIF ENDIF 100 C(NTINUE zoo CONTINUE c C--- CALCULATE TEE NUMBER OF CONNECTIONS ( NCN ) C NCN=NITEM—NMP C C--- FIND TEE IDTION POINT VECTOR ( NPNAM ) AND TEE C CONNECTION VECTOR ( CNNAM ). C DO 250 I=1.NITEM C C--- DDTION FONTS. C IF( I. LE.NMP) TEN NINA!“ I ) =NEVLBL( I) C8 C--- CONNECTIONS. C ELSE J= I-NIIP CNNAM”) =NUIBL( I ) ENDIF 2 50 CONTNUE C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN 34D SUB Rw TN E N I'IBG C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUB ROUTNE DESCRIPTION CCCCC C C C C C--- THIS SUBROUTNE N ITIALIZES TUE VARIABLES FOR B ILDBG. C C C C--- PROGRAMMER: JmN D. REID DATE: FALL 1983 C C C C-- CALLED FROM BILDBG. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VAR IABLE IDENTIFICATION CCCCCCCC C C INSERT (DDBG NSERT SYBGBK C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCES S BLOCK BLOCK OCCC C C DO 100 I=1 . NMP MOTTYP ( I ) =0 HPIPTR( I ) =0 CPTR( I ) =0 1 00 CONTNUE IT1 =I+1 CPTR( IT1 )=0 DO 1 50 I=1 . NNP‘3 IKNPP'N I ) =0 KMP( I ) =0 VMP( I )=O 150 CONTNUE DO 200 I=1.IAXNCN IEPTYP(I)=0 MIDNCN(I.1)=0 III'ONCNU.2)=O KN(I)=0 VCN(I)=0 IXCNPT(I)=0 200 240 250 340 350 C C9 CONTINUE DO 250 I=1.MAXNCN'2 CNONMP(I)=0 DO 240 K=1.MAKNMS GEDMAS(K.I.1)=0 GEOMAS(K.I.2)=0 GEOBAR(K.I)=0 CONTINUE IT1=I‘2 IT2=IT1-1 IXEPPT(IT1)=0 IKEPPT(IT2)=0 KEP(IT1)=0 KEP(IT2)=0 VEP(IT1)=0 VEP(IT2)=0 CONTINUE DO 350 I=1.MAXNTF DO 340 K=1,11 MTFDAT(I.K)=0 CONTINUE CONTINUE C--- INITIALIZE THE NWT ARRAY. C 400 C NDDT(0)=0 NmT(1)=1 NMOT(2)=1 NDDT(3)=2 NmT(4)=1 NDDT( 5) =2 NIDT( 6) =2 NIDT(7)=3 DO 400 I=1.MNH.+1 NPTR(I)=I CONTNUE C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C RETURN ND C C10 SUB ROUTNE RESULT gCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC: CDCCCCC SUBROUTNE DESCRIPTION CCCCC C -- — WRITES RESULTS TO A FILE. (C 53-“ PROGRAMMER: IGN D. REID DATE: FALL 1983 C C--- CALLED FROM BILDBG. g CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC: (CIVCCCCCCCC VARIABLE IDNTIFICATION cmCCCCg CINSERT (3386 c INSERT (DEF IL INSERT SYBGBK C C CEARACTER‘ 1 5 F ILNAM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PRO (38 S BLOCK BLOCK OCCC C C WRITE". '(IX) ') CALL PROMP'N 'INSERT NAME OF FILE FOR STORAGE :') READ(‘.900) FILNAM WRITE”. '(1X) ') 0PEN( UNIT=12 .FILE=F ILNAM) WRITE(12. '(1X) ') WRITE(12.910) FNAME WRITE(IZ. '(ll) ') C C-- WRITE THE RE-ORDER LISTS (FROM SUB. REORDR) . C DO 50 I81.NITEM WRITE(12.920) ITILBUILNEWLBLU) 50 C(NTNUE C C--- THE MPNAM LIST C WRITE(lZ. '(ll) ') WRITE(IZ.‘) 'THE MPNAM LIST' WRITE(”. '(1X)') DO 100 I=l.NMP WRITE(12.930) I.NNAM(I).I.K)TTYP(I) 100 CONTNUE WRITE(12. '(ll) ') C C-- THE CNNAM LIST. C WRITE(12.‘) 'TBE (NNAM LIST' WRITE(12. '(1X) ') c11 DO 150 I=1.NCN WRITE(12.940) I.CNNAM(I).I.CNTYP(I).I.IEPTYP(I) 150 CONTNUE WRITE(12.'(//) ') C C--- WRITE OUT MPONCN. C WRITE(12.” 'NOTION FONTS (IN! (DNNECTORS :' WRITE(12. '(1X) ') DO 200 I=1.NCN WRITE(12.950) I.IIIONGN(I.1).I.IIPONN(I.2) 200 CONTNUE C C- WRITE (KIT CNONMP C WRITE(12. '(II) ') WRITE(12..) 'THE CPTR LIST' WRITE(12. '(IX) ') WRITE(12.990) (CPTR(I).I=1.NMP+1) WRITE(12. '(II) ') WRITE(12.” “THE (NMMP ARRAY' WRITE(12. '(1X) ') WRITE( 12 .990) (CNONMP(I) . I=1 .Z‘NCN) WRITE(12.'(II)') C C--- LOCAL GEOIETRY TOR TEE MASSES. C WRITE(12.'(//)') WRITE(12.” 'LOCAL GEODETRY FOR THE MASSES. ' DO 600 I=1.NMS IBEGIN=CPTR(I) IEND=CPTR( 1+1 )-1 WRITE(12.975) HPNAMU) DO 550 J=IBEGIN.IEND IMP-CNONMP(.” WRI'I'Euz .980) CNNAMITEMP) .GEOMAS( I. ITEMP. 1) . + GmMAS( I . ITEMP.2) 550 C(NTINUE 600 CONTINUE C C--- W GEOIE'IRY TOR TEE BARS. C WRITE(12. '(ll) ') WRITE(12.") 'LOCAL GEOMETRY FOR THE BARS. ' DO 700 I=1.NBR IBEGIN=CPTRU+NIIS) IEND=CPTR(I+NLS+1)-1 WRITE(12.975) umAmnNIs) D0 650 J=IBmIN.ImD ITEIIP=CNONMP(D WRITE( 12 . 985) CNNAM ITEMP) . GEOBAM I . ITEMP) 650 C(NTINUE 700 CONTINUE C C--- THE Bwn GRAPH C 12 WRITE(12.'(//)') WRITE(12.‘) 'TUE BOND GRAPE.’ WRITE(12.'(11)') DO 750 I=1.NBD WRITE(12.9000) I.IBMX(I.1).IBMX(I.2) 750 CONTINUE WRITE(12.'(IX)') DO 800 I=1.NEL WRITE(12.9010) I.IELLST(I) 800 C(NT‘NUE C C- WRITE OUT'NBIMX. C WRITE(12.'(//)') WRITE(12.') 'TEE NPTR LIST' WRITE(12.'(1X)') WRITE(12.990) (NPTR(I).I=1.NEL+1) WRITE(12.'(//)') WRITE(12..) 'TEE NBIMX ARRAY' WRITE(12.'(1X)') WRITE(12.990) (NBIMX(I).I=1.2‘NBD+1) C C--- POINTER LIST FROM MP l-JUNCTION NODES TO KMP. C WRITE(12.'(//)') WRITE(12.‘) 'POINTER FROM MP NODES TO KMP.’ WRITE(12.'(1X)') DO 810 I=1.100 IF(IKMPPT(I).EQ.0) GOTO 820 WRITE(12.9020) I.IXMPPT(I) 810 CONTINUE 820 CONTINUE C C--~ POINTER LIST EP l-JUNCTION'S TO XEP. C WRITE(12.'(//)') WRITE(12.‘) 'POINTER FROM EP XMP TO NODE NUMBER' WRITE(12.'(1X)') D0 830 I=1.NCN'4 WRITE(12.9030) I.I.IXEPPT(I) 830 CONTINUE C C--- POINTER LIST'FROM CONNECTOR TO ITS NODE. C WRITE(12.'(//)') WRITE(12.‘) 'POINTER FROM CONNECTOR TO ITS NODE NUMBER' WRITE(12.'(1X)') DO 840 I=1.NCN WRITE(12.9040) I.I.IKCNPT(I) 840 CONTINUE C C-- TRANSFORMERS AND DATA. C WRITE(12.'(//)') C13 WRITE(12.” 'TRANSFORMERS AND ASSOCIATED DATA. ' WRITE(12.'(1X) ') DO 850 I81.NTF WRITE(12.9050) I.MTF(I).MTFDAT(I.1) IF(MTFDAT(I.1).m.5) TEN WRITE(12.9052) MTFDAT(I.2).MTFDAT(I.3). + MTFDAT(I.4).MT'FDAT(I.5).MTFDAT(I.6) WRITE( 12 .9054) MT'FDAT(I.7) .M'TFDAT(I.8) .MTFDAT(I.9) . + MTFDAT(I.10).KTFDAT(I.11) ELSE IF(MTF’DAT(I.1).EQ.1.0R.MTFDAT(I.1).m.2) TEN WRITE( 12.9060) MTFDAT(I.2) .MT'FDAT(I.3) .MTFDAT(I.4) ELSE WRITE(12 .9062) MTFDAT( 1.2) . MTFDAT(I.3) ENDIF ENDIF 850 CONTNUE CLOSE( UNIT=12) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FOR MAT STATEIENTS BLOCK 9000 900 FORMAT(AIS) 910 FORMAT( 'FILE = '.A12) 920 FORMAT(' ITKBL : '.A6.’ NNLBL : '.A6) 930 FORMAT('MNAM('.I2.') = '.A3.6X. + 'ETTYP('.12.') = '.12) 940 FORMAT('CNNAM('.I2.') 8 '.A3.5X.'CNTYP(',I2.') = '.I2. 4' 5X.'IEPTYP('.I2.') = '.12) 950 FORMAT('MENCN('.12.'.1) 8 '.IZ.’ '. + 'MPONN('.I2.'.2) = '.IZ) 975 FORMAT(//.'MOTION ENT : '.A3) 980 FORMAT(/.' CONNECTOR : '.A3,3X.'X-DISTANCE 8 '.F6.2. + 4K.’Y—DISTANCE = '.F6.2) 985 FORMAT(/.' CONNECTOR : '.A3.31.'DISTANCE 8 '.F6.2) 990 FORMAT( 10 ( 4X. I3) ) 9000 FORMAT( 'NODES ATTACHED TO BOND '.IB.’ ARE '. + 3X.I3.51.I3) 9010 FORMAT('IELLST('.I3.') = '.13) 9020 ERMAT('IXMPFT('.IZ.') 3 '.I3) 9030 FORMAT('NODE ASSEIATED WITE EP '.I2.' = IXEPP'T('.I2. + ') = '.I3) 9040 FORMAT( 'NODE NUMBER FOR CONNECTOR '.12. + v = IXCNPT('.IZ.') - '.13) 9050 FORMAT(/.'M'TF('.I2.') I '.I3.6X. 'FUNCTION NUDBER = '.F2.0) 9052 FORMAT(' ARGUMENTS : '.F3.0.3X.F3.0.31.F3 .0.3X.F3.0./. + ' EDULAT‘OR FUNCTION : '.F2 .0) 9054 FORMAT(' HUBER OF ENTERS = '.F2 .0./. + 51. 'CONNECTOR ENTER 8 '.F3.0./. + 51. 'MT'F ENTERS : '.F4.0.31.F4.0.3X.F4.0) 9060 FORMAT(' CONSTANTS : '.F3.0.3X.F3.0. + 4X.'ARGUMENT : '.F3.0) 9062 FORMAT( ' CONSTNT : '.F3.0.4X. 'ARGUMENT : ' .F3 .0) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN ND C 14 SUB ROUTNE ENECT C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTNE DESCRIPTION CCCCC C C C--— THIS SUBROUTNE GETS TEE (DNNECT ION NETWORK OF TEE C C SYSTEM USNG TEE ENNECTORS (N IDTION ENT METHOD. C C C C—-- PRMRAMMER: CHEN D. REID DATE: FALL 1983 C C C C--- CALLED FROM BILDBG. C C C C-- SUBROUTNES CALLED: GETMP C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C NSERT COLBG C C C--- LOCAL VARIABLES C C C CEARACTER‘l TEMP CEARACTER‘4 TMNRD( 15) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C--- LOOP TEROUGE TEE LOTION FONTS ( NMP ) C TO FIND THE CONNECTORS THAT ARE ATTACHED TO HEM. C CPTR(1)=1 NRC=0 DO 300 I=1.NMP 50 NNPTS=0 NWRDS=0 II=I+1 C C-- ASK TEE USER FOR TEE ITEIB ATTACHED C-- TO THE ETION ENT MPNAM(I). C WRITE(‘.900) MPNAMU) NEWLN=.TRUE. 100 WE= ' DEFAULT' CALL GETWD(WRD.NEWLN.NDLN) C C- 8m TEE NPUT AND STORE N TMPWRD. C IF(WRD.EQ. 'DEFAULT') TEN C C- BAD NET. C WRITE('.910) C15 GOTO 50 ELSE INPUT IS READABLE. NW RDS=NWRDS+1 TMPW RD ( NWRDS ) =WRD END IF CHECK FOR ND OF NPUT FOR ETION ENT I. IF( .NOT.NDLN) TEN NNLN= .FALSE. GOT‘O 100 NDIF ASK USER IF THE NPUT IS (DERECT. WRITE(‘.915) MPNAM(I) WRITE(‘.916) (TMPWRD(JKL).J'KL=1.NWRDS) WRITE('.917) READ(‘.925) ANS IF(ANS.m. 'N') TEN GOTO 50 ELSEIF(ANS.NE. 'Y') TEN GOTO 110 ENDIF LCDP TEROUGE TMPWRD N ORDER TO CREATE MENCN AND CNONMP. DO 200 IWRDN=1.NWRDS DO 120 I=1.N(N IF(TMPWRD(IWRDN) .EQ.CNNAM(J)) TEN CNNAM”) IS CDNNECTED TU MPNAMU) ITEMP=CPTR( I ) +NNPTS CNONMP( ITEMP) =J FND TEE MENCN ARRAY AT THE SALE TIME. CALL GETMP(NNPTS.TMPWRD. IWRDN) GOTO 200 NDIF C(NTNUE TMPWRDHWRDN) IS NOT A CONNECTOR. PONT OR NOT AN ITEM AT ALL? IS IT A ETION DO 140 I=1.NMP NPUT IS A ETION ENT IF(TMPWRDUWRDN) .m. MNAMU'H TEN C16 C C- ITEM IS ENNECTED T’O ITSEF. C IF(TMWRDUWRDN) .EQ.MNAM(I)) TEN ELSE C C- A RIGID CONNECTOR IS REQUIRED BE‘NEN C MNAMU) AND MPNAMU) (= TMPWRDUWRDNH. C C- CHECK TO SEE IF A RIGID CONNECTOR HAS C ALREADY BEEN CREATED. C DO 130 K=1.NRC ITEMIENCN-I-K IF(MPONN(ITEMP.1).EQ. LAND. + MENCN(ITEMP.2).EO.J) TEN GOTO 135 NDIF 130 CONTNUE C C- CREATE A RIGID CONNECTOR. C NRC=NRC+1 ITEMF=NN+NRC WRITE(TEMP. ' (II) ') NRC CNNAM(ITEMP)='X'/ITEMP C C- STORE THE ENNECTOR AS A SPRNG TYPE EEMENT. C CNTYP(ITEMP)=1 C C- A RIGID CONNECTOR HAS NOW BEN MADE - CNNAM(IT'EMP) C TEL TEE USER ABGJT IT. C WRITE". 920) CNNAM(ITEMP) .MPNAM(I) .MNAMU) READ(‘.925) ANS C C- UPDATE MPONCN. C MPONCN( ITEMP. 1 ) =J MENCN( ITEMP. 2 )=I C C- UPDATE NNMP. C 135 ITEMP2=CPTR(I)+NNPTS CNONMP( ITEMP2 )8 ITEMP NNPTS=NNPTS+1 NDIF GOTO 200 NDIF 140 C(NTNUE C C-- INPUT IS NOT RECOGNIZED - IGNORE. C WRITE( ‘ . 93 0) TMPWRD( IWRDN) C 17 READ(‘.925) ANS 2:00 C(NTNUE $3.- FND CPTR ER THE NEXT IDTION ENT (MNAM(I)).. C CPTR(II)==CPTR(I)+N(NFTS g-.. LEP ER NEXT IDTION ENT. €00 CONTNUE C-- THE NUIBER OF ENNECTORS EAS NCREASE) BY NRC. C NCN=NCN+NRC C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FORMAT STATEDENTS BLOCK 9000 C C 900 FORMAT(l/.'WHICH ITEMS ARE CONNECTED ‘10 '.A3.'? : '. ) 910 FORMAT(/l."” BAD INPUT. TRY AGAIN. "") 915 FORMAT(/.‘AS I UNDERSTAND IT. THE FOLLOWING ITEMS ARE '. + 'CONNECTEDTO '.A3.'.'./) 916 FORMAT(5(4X.A3)) 917 FORMAT(/HIS THIS (DRRECT? (Y OR N) : '. ) 920 FORMA'T(//.'A RIGID CONNECTOR '.A2.’ HAS BEEN CREATED'J. + 'BETWEEN '.A3.’ AND '.A3./l.'HIT (RETURN) '. + "TO CONTINUE.'. ) 925 FORMAT(Al) 930 FORMAT(//.'I 11) NOT RECOGNIZE '.A32./. + ' IT WILL BE IBNORED. ' .// . 'EIT (RETURN) ' . + ' TO ENTNUE. ' . ) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN ND SUBROUTNE GETMP(NNPTS.TMNRD. IWRDN) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SIBROUTNE DESCRIPTION CCCCC C C C-- THIS SUBROUTNE IS US. TO FIND THE ETION ENTS C C ON CONNECTORS ARRAY ( MPONCN ). C C C C-- PROGRAMMER: IGN D. REID DATE: FALL 1983 C C C C-- CALLED FROM ENECT. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE ENTIFICATION CCCCCCCC C C C18 C AT THIS TOINTWE mm: C C C C 1 . NOTION POINT IS MPNAIMI) . C C 2 . C(NNECTOR IS (NNA’NJ) C C C INSERT (”BBC C C CHARACTER‘4 TMWRIH 15) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BIDCK OCCC C C C--- THIS IS THE FIRST "P (N THIS (DNNEC'I‘OR. C IF(MPONCN(J.1) .EQ.0) THEN NONPTS=NCNPTS+1 MPONCN(J.1)=I C C-- THIS IS THE SECOND MP ON THIS (DNNE'IDR. C ELSEIF(MNNCN(J.2 ) .BQ.O) THEN NWPTS=NWWS+1 C C--- THIS IS THE THIRD MP (N THIS mNNECl‘OR. C C- ‘ “ ERROR. CAN NOT HAVE DORE THAN 2 . “‘ C ELSE WRITE( ‘ . 900) TMWRIN IWRDN) READ( ‘. 910) ANS END IF C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FOR MAT STATEMENTS BLOCK 9000 C C 900 FORMAT(/I . 'ALREADY HAVE 2 mTION NINTS ATTACHED' . + ' TO '.A3,'.'. ,‘ITWILL BE IGNORE).'.//. + ' HIT (RETURN) TO (DNTINUE. ' o ) 910 FORMAT(” ) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN HID SUBROUTINE GEMT C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUB RWTINE DESCRIPT ION CCCCC C C C--- THIS SUBROUTINE GETS THE ALLOWABLE IOTIONS (X.Y. OR THETA) C C FOR EACH DDTION POINT. C C19 C C C--- PROGRAMMER: JGIN D. REID DATE: FALL 1983 C C C C--- CALLED FROM BILDBG. C C C C--- SUBROUTINES CALLED: GET'XYT C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION COCCCCCC C C INSERT COBBG C RLO=-1.E25 REF-1.1525 C ‘ C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C , C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C-- LOOP TBRWGH THE DDTION POINTS TO FIND IDTIONS. C DO 300 I=1.NMP“! C C-- MOTION POINT IS A MASS C IF(MmAM(I)(1:1).m.'H') THEN NMS=NLB+1 C C- GEI‘ X.Y AND/OR THETA ALLOWABLE IDTIONS. C CALL GETXYT C C-- MOTION POINT IS A BAR. C ELSEIF(MWAM(I)(1:1).EQ.'B') THEN NBkNBRH C C- GEI’ X.Y AND/OR THETA ALLOWABIE IDTIONS. C CALL GET‘XYT C C-— MOTION POINT IS A JOINT. C nsmp<1:1).m. '1') THEN CALL GET‘XYT‘ ENDIF 300 CONTINUE C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUB ROUTINE GET'XYT C20 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE FINDS GIT IF THERE IS IDTION C C IN THE LY AND/OR THETA DIRECTION FOR MPNAMU) . C C C C--- PROGRAMMER: JGIN D. REID DATE: FALL 1983 C C C C--- CALLED FROM GETmT. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COIBG C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C-- JOINTS CAN (NLY DOVE IN X AND Y. C 50 IF(MWAM(I)(1:1).EQ.'J') THEN WRITE(‘.905) MPNAMI) ELSE WRITE(‘.900) MPNAMU) ENDIF NWLIN=.TRUE. 1 00 WRD= ' DEFAULT' CALL GETWD(WRD.NEWLIN.ENDLIN) C C- X-mTION C IF(WRD.EQ. 'X') THEN MOTI'YP(I)=MOTTYP(I)+1 C C- Y-MOTION C ELSEIF(WRD.EQ. 'Y') THEN MOT'IYP(I)=MOTTYP(I)+2 C C- THETA-MOTION C ELSEIF(WRD.m. 'T' .OR.WRD.m. 'T'HET‘A') THEN C C- JOINTS CAN NOT TDVE IN THETA. C IF(MINAINI) (1:1) .39. '1') THEN WRITE". 910) GOTO 50 DIDIF MOTTYP(I)=MOTTYP(I)+4 C C- BAD INPUT C21 C ELSE WRITE". 910) GOTO 50 ENDIF C C-—- LOOK FOR END OF INPUT. C IF(.NOT.ENDLIN) TEEN NEWLIN=.FALSE. GOTO 100 NDIF C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FWMAT STATEMDJTS BLOCK 9000 C C 900 FORMAT(/I. 'WHICH IDTIONS ARE ALLOWABLE FOR '.A3 . + ' -X.YAND/OR THETA: '.) 905 FORMAT(/IRVING IDTIONS ARE ALLOWABLE FOR ' .A3. + '-XAND/0RY:'.) 910 FORMAT(//.'l!! BAD INPUT. TRY AGAIN 111') C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBROUTINE GETGEM C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE GETS THE LOCAL GEOMETRY C C BETWEEN IDTION POINTS (MASSES AND BARS (NLY) C C AND THE BID POINTS OF THE (DNNECTORS THAT C C ARE ATTAGIED TO THEM. C C C C--- PROGRAMMER: JGIN D. REID DATE: FALL 1983 C C C C--- CALLED FROM BILDBG. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COIBG C C RLO=-1.B$ RHI=1.E25 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C22 C-- LOCAL GEOMET‘RY FOR THE MASSES. C 50 100 200 300 C DO 300 I=1.NNS IBEGIN=CPI‘R(I) IEND=CPIR(I+1)-1 DO 200 J=IBH§IN.IEND ITEMPECNONMPLT) NINPUT=O WRITE(‘.900) MPNABKI) WRITE". 910) MPNAIMI) .CNNAIMIT'EMP) NEWLIN= .TRUE. RVAL=-1234 .5 CALL GETRL(RVAL. RLO. RBI. NEWLIN. ENDLIN) THERE ARE NO DEFAULT VALUES. IF(RVAL.EQ.-1234 .5) THEN WRITE". 920) GOTO 50 ENDIF INPUT IS GOOD. NINPUT=NINPUT+1 THERE MUST BE (NLY TWO INPUTS. IF(NINPUTJ‘D.3) THEN WRITE( ‘. 93 O) READ(‘.940) ANS GOTO 200 ENDIF STORE THE NPUT IN GEOMAS. GEOMAS( I . ITEMP, NINPUT) =RVAL CHECK FOR DID OF INPUT. IF( .NOT. WDLM) THE! NEWLIN= .FALSE. GOTO 100 ENDIF MUST HAVE TWO INPUTS. IF(NINPUT. LT.2) THE! WRITE(‘.9SO) GOTO 50 INDIE C(NTINUE CONTINUE C--- LOCAL GEOMETRY FOR THE BARS. C C23 DO 600 I=1.NBR IBEGIN=CPTR( I+N|B) IWD=CPTR( I+NBS+1 ) -1 DO 500 Jammm. TWO IT'EHP=CNONMP(J) 350 NINPUT=O WRITE(‘.960) MWAM(I+NBB) .MHNIAMI-l-NDB) WRITE(‘.970) CNNAM(ITEMP) NEWLIN=.T'RUE. RVAL=-1234 .5 CALL GETRL(RVAL.RLO.RBI.NEWLIN.ENDLIN) C C- THERE ARE NO DEFAULT VALUES . C IF (RVAL. m.-1234 .5) THEN WRITE( " . 92 O) GOTO 3 SO END IF C C- INPUT IS GOOD. C GECBAR ( I . ITEMP) =RVAL C C- ONLY (NE INPUT ALLOWED. C IF( .NOT. EDLIN) T384 WRITE( ‘ . 980) READ( ‘ . 940) ANS END IF 500 C (NTINUE 6 00 CONTINUE C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CFCCCCCCCC FOR MAT STATEMENTS BIDCK 9000 C C 900 FORMAT(////.'LET 'HIE CENTER OF '.A3.’ BE THE POINT 0.0.') 910 FORMAT”. 'FROM THIS REFERB‘JCE POINT WHAT IS THE '. 4' 'X,Y DISTANCE BETWEB‘I'./,A3.' AND THE BID POINT', + OOFI'AB'O:O.) 920 FORMAT(I I . ' THERE ARE NO DEFAULT VALUES. TRY AGAIN. ') 930 FORMAT(/I.'ONLY TWO INPUTS ALLOWED. THE FIRST TWO WILL'. + ' BE THE (NES USED.'.//.'HIT (RETURN) TO '. + 'CONTINUE. '. ) 940 FORMAT(Al) 950 FORMAT(//.'YOU HIST ENTER TWO VALUES -- LY. TRY AGAIN.” 960 FORMAT(////.'ASSUME '.A3.’ IS PARALLEL TO THE K-AKIS.'./. + 'LET THE POINT WHERE '.A3.’ ROTATES ABWT BE 0.0.') 970 FORMAT(/.'FROM TRIS REFERENICE POINT. WHAT IS THE '. + 'DISTANCE TO THE EVIDPOINT OF '.A3.'.'./. + '( INCLUDE+OR-SIGN) : '.) 980 FORMAT(//.'ONLY (NE INPUT ALLOWED. THE FIRST '. + ' 'INPUT WILL BE USE).'.//. 'HIT (RETURN) '. + 'TO CONTINUE. '. ) C 2 4 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN HID SUBROUTINE BG C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUBROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE BUILDS TEE BOND GRAPH. C C C C-- PROGRAMMER: JmN D. REID DATE: FALL 1983 C C C C--- CALLED FROM BILDBG. C C C C--- SUBROUTINES CALLED: GETEPS OJTFEP C C CNMPB CNNP4 C C CNMPS CNMP6 C C CNMP'I MONOD C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C INSERT COBBG INSERT SYBGBK C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C C-- CREATE NODES FOR EACH DDTION POINT WITH DDTION. C--- ( l-JUNCT IONS ) C MP1PTR(1)=1 DO 100 I=1.NMPWM DO 50 J=1.NDDT(MOTTYP(I)) NEL=NE+1 IELST(NEL)=7 ITEMP=I+1 NPlPT'R ( ITEMP) =NH.+1 50 C(NTINUE C C- FIND THE POINTER TO IMP AND VMP. C IELN=MP1PTR(I) IF(MOTTYP(I).m.1) TEEN IXMPPN IELN) =I‘3-2 H.8EIF(MOTI'YP(I).EQ.2) THEN IKMPPT(IELN)=I‘3-1 ELSEIF(MOTTYP(I).m.3) THIN IKMPPT( IELN) =I‘3-2 IELN=IEN+1 C25 IXMPPN IELN) =I‘3-1 ELSEIF(MOTTYP(I) .EQ.4) THEN IXMPPN IELN) =I‘3 ELSEIF(MOTTYP(I) .m.5) THEN IXMPPN IELN) =I'3-2 IELN= IELN+1 IXMPPNIELN) =I‘3 ELSEIF(MOTTYP(I) .EQ.6) THEN IXMPPNIELN) =1 ‘3-1 IELN=IELN+1 IXMPPNIELN) =I‘3 ELSEIFUIOTTYPH) .EQ.7) THEN IXMPPN IELN)=I‘3-2 IELN==IELN+1 IXMPPN IELN) =I‘3-1 IELN=IELN+1 IXMPPNIELN) =I‘3 EQDIF 100 CONTINUE C C--- ADD 111E INERTIA TO EACH MASS. C C- INRTPT = POINTER TO FIRST INERTIA NODE. C INRTPT=NEL+1 DO 200 I=1.NMS DO 150 I=1.NIDT(MOTI'YP(I)) NEL=NEL+1 NBD=NBD+1 IHLST(NE.)=2 IBMX(NBD.1)=MP1PTR(I)+J-1 IBMX(NBD.2)=NEL 150 C(NTINUE 200 CONTINUE C c- C--- LOOK AT EACH (DNNECTOR AND THE DDTION POINTS C--- THAT ARE ATTACHED TO THEM. c- C DO 500 I=1.NCN NTFEL=O C C- LCDK AT THE BID POINTS OF CNNAM“). C CALL GETEPS C C-- NOTE: IF THE CONNECTOR IS A RIGID CONNECTOR THE BG C-- C(lJLD BE SIMEIFIED FURTHER. KIT. FOR NW. C-- WE WILL TREAT THE RIGID CON. LIKE A SPRING. C IF(CNNAMI) (1:1) .m. 'X') THEN IF(IEPTYP(I).LE.3) THE! C C- NO NODES OR BmDS RMUIRED. II (PO GOO GOO C26 GOTO SOO EDIF ENDIF ONE EP IS FIXED AND THE OTHER EP CAN IDVE E THE X (R Y DIRECTION ELY. IF(IEPTYP(I).m.1) THE CREATE BG FROM (DNNECTOR TO MP. CENET‘OR NODE AND POETER. NEIFNE-fl IELLST(NH..) =CNTYP( I) IXCN PT ( I ) =NEL EP OF CONNECTOR l-JUNCTION AND POETER. NEL=NEL+1 IELLST(NEL)=7 IF(MOTTYP(MPONCN(I.1)).EQ.1) THEN IT1=I‘4-3 ELSEIF(MOTTYP(MPONCN(1.1)).EQ.2) THEN IT1=I‘4-2 ELSEIF(MOTTYP(MPONCN(1.2)).EQ.1) THEN IT1=I’4-1 ELSEIF(MOTTYP(MPONCN(1.2)).EQ.2) THEN IT1=I‘4 ENDIF IXEPPT(IT1)=NEL BED BETWEE THE (DNNECTOR AND ITS EP. NBD=NBD+1 IBMX(NBD.1)=NEL IBMX(NBD,2)=NEL-1 BED BETWEEN ED POET IND MP 1-JUNCTIONS. NBD=NBD+1 IF(MOTTYP(MPONCN( 1.1)) .NE.O) THE IBMX(NBD.1)=MP1PTR(MPONCN( I . 1)) ELSE IBMX(NBD. 1)=MP1PTR(MPONCN( 1.2 )) ENDIF IBMX(NBD.2)=NFL THE BG BETWEE CONNECTOR I AND ITS ATTACHED MOTIE POETS IS NOT SO SIMPLE. ELSE BUILD BG FROM E TO O-J'UNCTION. C 27 C(NNHITOR NODE AND POINTER. NELzNflrl'l IELLST(NEL) =CNTYP(I) IXCNPI‘(I)=NH. O-JUNCI‘ION NHFNEA-l Nmm=NEL IELST(NEL) =6 B(ND BETWEEN (N IND O-JUNCTION. NBD=NBD+1 IBMX(NBD, 1)=NH. IBMX(NBD.2)=NH.-1 BUILD BG FROM O-IUNCTION TO EACH MP. NEED TO IDOK AT EACH END POINT. DO 400 J=1 .2 IDTION=MOTTYP(MPONCN(I.J)) END IOINT FIXED. IF(MOTION.m.0) THE! MOTIQ‘I IN X.Y OR X ONLY OR Y ONLY. ELSEIF(HOTION.LE.3) THEN CALL CNMP3 MOTION] IN THETA DIRECTION (NLY. ELSEIFOIOTION . BOA) THEN CALL CNMP4 MOTICN IN X AND THETA DIRECTION (NLY. ELSEIFTMOTION. 511.5) THE“ CALL CNMPS IIOTIW IN I AND THETA DIRECTION (NLY. ELSEIF(MOTION.m.6) T'Hm CALL CNMP6 MOTICN IN X.Y AND THETA DIRECTION (NLY. ELSEIF(MOTION.EQ.7) THEN CALL CNMP'I ENDIF C(NTINUE STORE THE TRANSFORMER DATA BETWEEJ THE common AND ITS ETD POINTS. CALL (NTFEP C28 ENDIF 500 CONTINUE C C--- CREATE THE NBIMX AND NPTR ARRAYS. C CALL BNDNOD C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBRCXJTINE GET'EPS C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C , C CDCCCCC SUB ROUTINE DESCRIPTION CCCCC C C C--- THIS SUBROUTINE PRE-PROCESSES THE BID POINTS THAT C C ARE ASSOCIATED WITH (DNNECI‘OR CNNAM“) . C C C C--- PROGRAMMER: JCHN D. REID DATE: FALL 1983 C C C C--- CALLED FROM BG. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C C--- STORES THE END POINT TYPE IN IEPTYPU). C C C INSERT COMBG INSERT SYBGBK C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C MOTI=MOTTYP(MPONCN( 1.1)) MOTZ=MOTIYP(MPONCN( 1.2 )) C C--- MOTI = O - NO DDTION FOR ETD POINT 1. C IF(MOT‘l.m.O) THEN IF(MOT‘2.m.0) THIN IEPTYP(I)=0 ELSEIF(HOT2.EQ.1.0R.IDT2.EQ.2) THEN IEPTYP(I)=1 ELSE IEPTYP(I)=3 ENDIF C C--- MOTI = 1 - X-IDTION (NLY FOR EP 1. C ELSEIFHIOTI ..£:.1) THEN IF(HOT2 .m.0) THE! C29 IEPTYP(I)=1 ELSEIF(MOT2 .EQ.1) THEN IEPTYP(I)=4 ELSEIF(MOT2.m.2) THEN IEPTYP(I)=5 ELSE IEPTYP(I)=10 BJDIF C C-- MOTT = 2 - Y-MOTION ONLY FOR EP 1. C ELSEIF(MOT1.m.2) THEN IF(MOT2.m.O) THE! IEPTYP(I)=1 ELSEIF(MOT2.m.1) THEN IEPTYP(I)=6 ELSEIF(MOT2.m.2) THEN IEPTYP(I)=7 ELSE IEPTYP(I)=11 ENDIF C C--- MOT). = 3.4.5.6.7 - mTION FOR END POINT 1: X AND Y THETA X AND/OR Y. AND THETA GOOD ELSE IF(MOTZ .m.0) THEN IEPTYP ( I ) =2 ELSEIF(MOT2 .m.1) THEN IEPTYP( I ) =8 ELSEIFUIOTZ .m.2) THEN I EPTYP ( I ) =9 ELSE IEPTYP ( I )=12 WDIF ENDIF C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C RETURN END SUBRGJTINE (NTFEP C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CDCCCCC SUB ROUTINE DESCRIPTION CCCCC C C-- THIS SUBROUTINE STORES THE TRAN SFORIIER DATA C BETWEEN CONNECTOR I AND ITS ASSOCIATED END POINTS. C I EPTYP ( I ) DETERMINES THE TYPE OF DATA REQUIRED TO C BE STORD. C C--- THE VALUES FOR THE TRANSFORMERS AND CONNECTOR IN TH IS GOOOOOO C30 C SUBRGJTINE ARE CALCULATED BY FUNCTION 5. C C C C—-- PROGRAMMER: JOIN D. REID DATE: FALL 1983 C C C C--- CALLED FROM BG. C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CVCCCCCCCC VARIABLE IDENTIFICATION CCCCCCCC C C C NTFEL - NUMBER OF TRANSFORMER NODES TD HANDLE. C C ITFEL - THE TRANSFORMER NUMBER FOR EACH NODE. C INSERT CODBG C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CPCCCCCCCC PROCESS BLOCK BLOCK OCCC C C C C--- SET FUNCTION NUMBER. REQUIRED ARGUMENT‘S. NULBER C--- OF POINTERS TO FOLLOW. AND CONNECTOR POINTER. C DO 100 IF1.NTFEL MTFDAT(ITFEL(L) .1)=5 MTFDAT(ITFEL(L) .2 )=I‘4-3 MTFDAT(ITFEL(L) .3)=I‘4-2 KTFDAT(ITFEL(L) .4)=I‘4-1 MT'FDAT(IT'FEL(L) .5)=I‘4 MTFDAT(ITFEL(L) .7)=NTFEL MTFDAT( ITFEL(L) .8)=I 100 CONTINUE C C---—- THE STORAGE DEPENDS (N IEPTYP(I). C C C-- IEPTYP(I) = 2 C IF(IEPTYP(I).EQ.2) THEN C C- MWULATOR FUNCTION NUIBER. C HTFDAT(ITFEL(1).6)=1 NTFDAT(IT'FEL(2).6)=2 C C- POINTERS TO OTHER TRANSFORMERS. C HTFDAT(IT'FEL(1) .9)=ITFEL(2) HTFDAT( ITFEL(Z) .9)=ITFEL( 1) C C--- IEPTYP(I) = 3 C ELSEIF(IEP'TYP(I) .m.3) THEN C C31 C- MCDULAT‘OR FUNCTION NUIBER. C HTFDAT(IT'FEL(1).6)=3 lfTFDAT'(ITFEL(2).6)=4 C C- POINTERS TO OTHER TRANSFORMERS. C NTFDAT(ITFEL( 1) . 9) =IT'FEL(2) MTFDATUTFELQ) .9) =ITFEL( 1) g--- IEPTYP(I) = 4 C ELSEIF(IEPTYP(I).EQ.4) THEN g- ”(DULATOR FUNCTION NUBBER. C HTFDAT(IT'FEL(1).6)=1 MTFDAT(ITFEL(2).6)=3 (C:- POINTERS TO OTHER TRANSFORMERS. C UTFDAT(ITFEL(1).9)=ITFEL(2) MTFDAT(ITFEL(2).9)=ITFEL(1) g--- IEPTYP(I) = 5 C ELSEIF(IEPTYP(I).EQ.5) THEN g- MmULAT‘OR FUNCTION NULBER. C MTFDAT(IT'FEL(1).6)=1 WTFDAT(ITFEL(2).6)=4 g- POINTERS TO OTHER TRANSFORMERS. C MTFDAT(IT'FEL(1).9)=ITFEL(2) MTFDAT(IT'FEL(2).9)=ITFEL(1) g-—- IEPTYP(I) = 6 C ELSEIF(IEPTYP(I).m.6) THEN g- "momma FUNCTION NU DEER. C ITTFDAT(ITFEL(1).6)=2 HTFDAT( ITFEL(Z) .6)=3 (C- POINTERS TO OTHER TRANSFORMERS. C NTFDAT(ITFEL(1) .9)=ITFEL(2) IITFDAT(ITFEL(2) .9)=IT'FEL(1) g--- IEPTYP(I) = 7 C ELSEIF(IEPTYP(I) .mJ) THEN C32 C C- MWULATOR FUNCTION NUDBER. C WTFDAT(IT'FEL( 1) .6)=2 HTFDAT(IT'FEL(2).6)=4 C C- POINTERS TO OTHER TRANSFORMERS. C MTFDAT(ITFEL(1).9)=ITFEL(2) MTFDAT(ITFEL(2) .9)==ITFEL( 1) C C---- IEPTYP(I) = 8 C ELSEIF(IEPTYP(I).m.8) THE“ C C- MCDULAT‘OR FUNCTION NU DEER. C MTFDATUTFEIA 1) .6)=1 HTFDAT(ITFEL(2).6)=2 MTFDAT(ITFEL(3) .6)=3 C C- POINTERS TO OTHER TRANSFORMERS. C HTFDAT(ITFEL( 1) .9)=ITFEL(2) MTFDAT(ITFEL( 1) .10)=ITFEL( 3) MTFDAT(ITFEL(2).9)=ITFEL(1) MTFDATUT‘FELU) .10)=ITFEL( 3) MTFDATUTFELU) .9)=ITFEL(1) MTFDAT(ITFEL(3) .10)=ITFEL(2) C C--- IEPTYP(I) = 9 C ELSEIF(IEPTYP(I).EQ.9) THEN C C- MWULATOR FUNCTION NULBER. C MTFDAT(ITFEL(1).6)=1 WI'FDAT(ITFEL(2).6)=2 WTFDAT( ITFEL(3) .6)=4 C C- POINTERS TO OTHER TRANSFORMERS. C MTFDAT(ITFEL(1).9)=ITFEL(2) H'TFDAT(ITFEL( 1) .10) =ITFEL(3) MTFDAT(ITFEL(2).9)=ITFEL(1) MTFDAT( ITFEL(Z) .10) =ITFEL( 3) MTFDAT(ITFEL(3).9)=ITFEL(1) MTFDAT(IT‘FEL( 3) .10)=ITFEL(2) C C--- IEPTYP(I) = 10 C ELSEIF(IEP'TYP(I) .m.10) THEN C C- MODULATOR FUNCTION NUIBm. C C33 MTFDAT(ITFEL(1).6)=1 HTFDAT(ITFEL(2).6)=3 NTFDAT(ITFEL(3).6)=4 C C- POINTERS TO OTHER TRANSFORMERS. C MTFDAT(ITFEL(1).9)=ITFEL(2) MTFDAT(ITFEL(1).10)=ITFEL(3) MTFDAT(ITFEL(2).9)=ITFEL(1) MTFDAT(ITFEL(2).10)=ITFEL(3) MTFDAT(ITFEL(3).9)=ITFEL(1) MTFDAT(ITFEL(3).10)=ITFEL(2) C C--- IEPTYP(I) = 11 C ELSEIF(IEPTYP(I) .m.11) THEN C C- MODULATOR FUNCTION NUMBER. C MTFDAT(ITFEL(1).6)=2 HTFDAT(ITFEL(2).6)=3 HTFDAT(ITFEL(3).6)=4 C C- POINTERS TO OTHER TRANSFORMERS. C MTFDAT(ITFEL(1).9)=ITFEL(2) NTFDAT(ITFEL(1).10)=ITFEL(3) MTFDAT(ITFEL(2).9)=ITFEL(1) MTFDATw>ha¢n~aaxnapa Y-DISTANCE = Y-DISTANCE = 0.00 0.00 IELLST( 14) = 7 IELLST( 15) = 8 IELLST( 16) = 7 THE NPTR LIST THE NBIMX ARRAY 13 6 4 3 10 14 11 16 15 16 10 E3 NG‘O WINTER FROM MP NODES TO XMP. IIMPP'N 1) = 1 IXMPP'N 2) = 2 WINTER FROM EP IMP TO NODE NUIBER NODE NODE NODE NODE NODE NODE NODE NODE NODE NODE NODE NODE WINTER FROM CONNECTOR TO NODE NUDBER FOR CONNECTOR 1 -= IXCNP'N 1) = NODE NUDBER FOR CONNECTOR 2 = IICNPN 2) = NODE NUIBER FOR CONNECTOR 3 = IXCNI’N 3) = ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH 888888888888 HHH NHO‘OQQGM‘Q’NH IXEPPT ( IXEPPT ( IXEPPT ( IXEPI’N IXEPPT ( IXEPPN IXEPPN IXEPPT ( IXEPPN l) 2) 3) 4) 5) 6) 7) 8) 9) IXEPPTUO) IXEPPT ( 11 ) IXEPPN 12 ) 10 31 ITS NODE NUIBER H HH OOOOOOG‘OOOQ 5 11 0 13 33 H 15 17 19 E4 TRANSFORBERS AND ASSOCIATED DATA. MTF( 1) = 7 FUNCTION NUIBER 8 5. ARGUIENTS : 1. 2. 3. 4. IDDULATOR FUNCTION : 1. NUIBER OF WINTERS = 2. CONNECTOR WINTER = 1. MTF WINTERS : 2. 0. 0. MTF( 2) - 9 FUNCTION NUDBER = 5. ARGUMENTS : 1. 2. 3. 4. WDULATOR FUNCTION : 2. NUDBER 0F WINTERS = 2. CONNECTOR WINTER = 1. MTF WINTERS : 1. 0. O. MTF( 3) = 13 FUNCTION NUIBER = 5. ARGUMENTS : 5. 6. 7. 8. IDDULA'IOR FUNCTION : 1. NUIBER OF WINTERS = 2. CONNECTOR WINTER = 2. MTF WINTERS : 4. 0. 0. MTF( 4) = 15 FUNCTION NUDER = 5. ARGUMENTS : 5. 6. 7. 8. WDULAT‘OR FUNCTION : 2 . NUDBER 0F WINTERS = 2. CONNECTOR WINTER = 2. MTF WINTERS : 3. 0. 0. APPENDIX F VEH ICLE SU SPEN SION RESULTS The following is the dsts bsse results from BILDBG for the VEH ICLE SU SPEN SION RESULTS APPENDIX F suspension discussed in Chapter 4.3. HAMPLE: VEHICLE SUSPENSION ITMLBL : $2 ITDIBL : D2 ITILBL : J2 ITILBL : Sl ITMLBL : D1 ITMLBL : J1 IT'MLBL : M1 IT‘MLBL : S3 ITMLBL : D3 ITMLBL : V2 ITILBL : V1 ITILBL : F1 ITMLBL : IQ ITMLBL : F2 THE MPNAM LIST MPNAIN 1) = M1 MINA)“ 2) = m MINA!“ 3) = 12 MPNAM( 4) = 11 THE (NNAM LIST CNNAM 1) -= S2 CNNAM 2) '3 Sl CNNAM( 3) 8 S3 NEWIBL : NEWLBL : NEWIBL : NEWIBL : NEWIBL : NEWLBL : NEWIBL : NEWLBL : NEWIBL : NEWIBL : NEWIBL : NEWIBL : NEWIBL : NEWLBL : WTTYP( 1) IDTI'YN 2) IDTTYP( 3) IDTTYP( 4) M1 J2 J1 82 81 S3 D2 D1 D3 F1 F2 V2 V1 CNTYP( 1) = 1 CNTYP( 2) ‘3 WITH 3) = 1 1 NNGN IEPTYP( 1) = IEPTYP( 2) = IEPTYP( 3) = 11 F1 vehicle CNNAM( 4) = D2 CNTYP( 4) = 3 CNNAM( 5) = D1 CNTYP( 5) = 3 ONNAM( 6) = D3 CNTYP( 6) = 3 CNNAM( 7) ' F1 CNTYP( 7) ‘ 4 GINA“ 8) = F2 CNTYP( 8) '= 4 MAM 9)=V2 CNTYP( 9)= 5 CNNAM(10) = V1 CNTYP(10) = 5 MOTION WINTS (N CONNECTORS : MPONCN( 1.1) 3 2 MPONCN( MPONCN( 2.1) - 2 MPONCN( MPONCN( 3,1) = 1 MPONCN( MPONCN( 4.1) ' 2 MTONCN( MPONCN( 5.1) 3 2 MPONCN( MWNQN( 6.1) = 1 MWNCN( MPONCN( 7,1) = 1 MPONCN( MPONCN( 8.1) = 2 MPONCN( MWNGN( 9.1) = 3 MWNCN( MPONCN(10.1) = 4 MPONCN( THE CPTR LIST 1 4 11 14 1 THE CNONMP ARRAY 3 6 7 2 1 4 9 2 LOCAL GEOMETRY FOR.THE MASSES. IDTION WINT : M1 CONNECTOR : S3 X-DISTANCE = CONNECTOR : D3 X-DISTANCE = CONNECTOR : F1 X-DISTANCE = MOTION POINT : M2 CONNECTOR : $1 X-DISTANCE = CONNECTOR : D1 X-DISTANCE = F 2 1.2) 2,2) 3,2) 4.2) 5.2) 6.2) 7.2) 8,2) 9.2) 10.2) 7 MM 0.00 0.00 0.00 -3 .00 -3.00 IEPTYP( IEPTYP( IEPTYP( IEPTYP( IEPTYP( IEPTYP( 4) 5) 6) 7) 8) 9) IEPTYP(IO) OOOON&¢»N&N p Hl-INHI-Iub Y-DISTANCE Y-DISTANCE Y-DISTANCE Y-DISTANCE Y-DISTANCE OG -O.50 .0050 0.00 o .00 0.00 CONNECTOR : F2 CONNECTOR : S3 CONNECTOR : D3 CONNECTOR : S2 CONNECTOR : D2 THE BOND GRAPH. NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED .ATTACHED .NTTACHED ATTACHED .ATTACHED ATTACHED ‘ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED .ETTACHED ATTACHED ATTACHED ATTACHED .ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED 88838888888888888888888338888838883888 X-DISTANCE X-DISTANCE X-DISTANCE X-DISTANCE X-DISTANCE BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND p O‘OQQGUOAWNH a.a-usuau:ususususus«sushimisshahanahanauahahnbah-hardrdlanald hIC>liui~lO\UIJ-ushihiC>m>aD~IO\UI¢-UDh)h|C>E§OD~IO\UI¥~U’N3h‘ ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE F 3 0.00 1.00 1.00 3.00 3.00 10 11 12 13 14 15 16 17 10 18 19 21 22 23 24 25 26 27 28 21 29 30 32 33 34 32 35 36 37 32 38 Y-DISTANCE Y-DISTANCE Y-DISTANCE Y-DISTANCE Y-DISTANCE 0.00 0.00 0.00 0.00 0.00 NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES NODES ATTACHED ATTACHED ATTACHED ATTACHED ATTACH ED ATTACHED ATTACH ED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACH ED ATTACHED ATTACHED ATTACHED ATTACH ED ATTACHED ATTACHED ATTACH ED ATTACHED ATTACH ED ATTACHED ATTACHED ATTACH ED ATTACHED ATTACHED ATTACHED ATTACH ED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED ATTACHED 888888883883883888888833883888888888383838888888888888 BCND BOND BOND BOND BCND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BCND BCND BOND BOND BOND BOND BCND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BOND BCND BOND BOND BOND BOND BOND BOND BOND BOND BCND ATTACHED TO BOND 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 6O 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE ARE F4 39 4o 40 41 43 44 4s 46 47 48 49 50 43 51 52 54 55 56 57 58 59 6O 61 54 62 63 65 66 67 65 68 69 70 65 71 72 73 73 74 76 78 79 80 81 82 83 40 41 42 43 44 4s 46 43 47 4s 49 49 so 51 52 53 54 55 56 57 54 58 59 60 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 78 82 NODES NODES NODES NODES NODES NODES NODES NODES ATTACHED TO BOND 97 ATTACHED TO BOND 98 ATTACHED TO BOND 99 ATTACHED TO BCND 100 ‘ATTACHED TO BOND 101 .ATTACHED TO BOND 102 ATTACHED TO BOND 103 ATTACHED TO BOND 104 IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) 18) 19) 20) 21) 22) 23) 24) 25) 26) 27) 28) 29) 30) 31) 32) 33) 34) 35) 36) 37) 38) 39) 40) 41) 42) 43) 44) 45) 46) N4“«WOGQQQ4“Q”GHQGOGQWNQGGHQWWGQNQQNGHNNNQQQQQ ARE ARE ARE ARE ARE ARE ARE F 5 84 85 87 89 83 84 84 85 86 87 88 89 IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( IELLST( 47) 48) 49) 50) 51) 52) 53) 54) 55) 56) 57) 58) 59) 60) 61) 62) 63) 64) 65) 66) 67) 68) 69) 70) 71) 72) 73) 74) 75) 76) 77) 78) 79) 81) 82) 83) 85) 86) 87) 88) 89) THE NPTR LIST 1 42 62 85 107 129 151 s 44 66 86 109 131 153 QMQMQGQQQQQG-fidfiflmdQOQGQWGWQQ”Qdflfldflaudflflfidfl 13 46 68 90 110 133 155 28 48 7O 92 114 134 157 31 50 72 94 116 138 158 F 6 34 52 74 96 118 140 162 35 55 76 98 120 142 164 36 57 79 100 122 144 166 37 59 81 102 124 146 168 38 61 104 127 148 170 172 174 176 192 194 196 THE NBIMX ARRAY 89 77 35 12 2 100 45 39 28 104 73 31 4 6 5 10 13 12 18 29 23 21 24 23 30 29 31 33 35 34 40 42 41 51 47 46 51 53 52 59 58 60 62 64 63 70 69 72 74 76 75 80 83 82 88 89 88 92 94 93 100 99 101 179 198 94 22 11 19 25 30 37 44 48 55 71 66 71 77 84 90 96 102 F 7 181 201 98 87 14 14 18 24 32 36 43 47 54 65 65 73 76 83 95 95 101 POINTER FROM MP NODES T0 XMP. IXMPPT( 1) = 2 IXMPPT( 2) = 5 IXMPPTC 3) = 6 IXMPPT( 4) = 8 IXMPPTC 5) = 11 POINTER FROM EP XMP TO NODE NUMBER NODE NODE NODE NODE NODE NODE NODE NODE NODE NODE NODE NODE ASSOCIATED‘WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH ASSOCIATED WITH 888888888888 HHH ”Hawada‘ubunu IXEPPTC IXEPPTC IXEPPTC IXEPPTC IXEPPTC IXEPPTC IXEPPTC IXEPPTC IXEPPTC 1) 2) 3) 4) 5) 6) 7) 8) 9) IXEPPT(10) IXEPPTCll) IXEPPTC12) 182 203 85 81 13 20 27 4O 38 42 49 53 61 67 72 79 86 91 97 103 12 15 19 23 26 30 34 36 39 184 204 68 70 16 19 26 36 37 45 48 56 6O 66 74 78 85 90 96 104 185 206 54 64 102 15 1o 15 21 25 33 39 44 so 55 62 69 82 so 84 92 99 103 188 207 43 56 59 17 20 28 32 '38 46 49 58 61 68 78 79 87 91 98 190 209 26 50 17 11 16 22 27 34 41 57 52 57 63 67 75 81 86 93 97 F8 NODE ASSOCIATED WITH EP 13 8 IXEPPTC13) 8 45 NODE ASSOCIATED WITH EP 14 8 IXEPPT(14) 8 48 NODE ASSOCIATED WITH EP 15 8 IXEPPTC15) 8 0 NODE ASSOCIATED WIN EP 16 8 IXEPPTC16) 8 52 NODE ASSOCIATED WITH EP 17 8 IXEPPTC17) 8 56 NODE ASSOCIATED WIN EP 18 8 IXEPPT(18) 8 59 NODE ASSOCIATED WIN EP 19 8 IXEPPT(19) 8 O NODE ASSOCIATED WITH EP 20 8 IXEPP'TCZO) 8 63 NODE ASSOCIATED WIN EP 21 8 IXEPFT(21) 8 0 NODE ASSOCIATED WIN EP 22 8 IXEPPT(22) 8 67 NODE ASSOCIATED WITH EP 23 8 IXEPPTC23) 8 69 NODE ASSOCIATED WITH EP 24 8 IXEPPTC24) 8 72 NODE ASSOCIATED WITH EP 25 8 IXEPPTC25) 8 0 NODE ASSOCIATED WITH EP 26 8 IXEPPTC26) 8 76 NODE ASSOCIATED WITH EP 27 8 IXEPP'TC27) 8 0 NODE ASSOCIATED WITH EP 28 8 IIEPPTC28) 8 O NODE ASSOCIATED WITH EP 29 8 IXEPPTC29) 8 80 NODE ASSOCIATED WITH EP 30 8 IXEPPTC30) 8 83 NODE ASSOCIATED WITH EP 31 8 IXEPPTC31) 8 0 NODE ASSOCIATED WITH EP 32 8 IXEPI’TC32) 8 0 NODE ASSOCIATED WIN EP 33 8 IXEPPTC33) 8 0 NODE ASSOCIATED WIN EP 34 8 IXEPPT(34) 8 87 NODE ASSOCIATED WIN EP 35 8 IXEPP'T(35) 8 0 NODE ASSOCIATED WIN EP 36 8 IXEPI’T(36) 8 0 NODE ASSOCIATED WIN EP 37 8 IXEPPT(37) 8 O NODE ASSOCIATED WIN EP 38 8 IXEPP'TC38) 8 89 NODE ASSOCIATED WIN EP 39 8 IXEPP'T(39) 8 0 NODE ASSOCIATED WIN EP 40 8 IXEPPTHO) 8 0 WINTER FROM CONNECTOR TO ITS NODE NUIBER NODE NUIBER FOR CONNECTOR 1 8 IXCNPTC 1) 8 NODE NUMBER FOR CONNECTOR 2 8 IXCNPTC 2) 8 NODE NUIBER FOR CONNECTOR 3 8 IXCNPTC 3) 8 NODE NUMBER FOR CONNECTOR 4 8 IXCNPTC 4) 8 NODE NUMBER FOR CONNECTOR 5 8 IXCNPTC 5) 8 NODE NUDBER FOR CONNECTOR 6 8 IXCNPTC 6) 8 NODE NUMBER FOR CONNECTOR 7 = IXCNPTC 7) 8 NODE NUDBER FOR CONNECTOR 8 8 IXCNPTC 8) 8 NODE NUIBER FOR CONNECTOR 9 8 IXCNPTC 9) 8 NODE NUIBER FOR CONNECTOR 10 8 IXCNPTCIO) 8 TRANSFORBERS AND ASSOCIATED DATA. MTF( 1) 8 11 FUNCTION NUDBER 8 5. ARGUIENTS : 1. 2. 3. 4. MODULATOR FUNCTION : 1. NUMBER OF WINTERS 8 3. OMNNECTOR WIINTER 8 1. MTF WINTERS : 3. 5. O. 20 31 42 53 64 75 77 86 88 F9 MTFC 2) 8 13 FUNCTION NOISE 8 1. CONSTANT‘S : 3. 0. “GMT : MTF( 3) 8 14 FUNCTION NONE 8 5. ARGODENTS : 1. 2. 3. 4. IDDOLATOR FUNCTION : 2. NOIBER OF WINTERS 8 3. CONNECTOR WINTE 8 1. MTF WINTERS : 1. 5. MTFC 4) 8 17 FUNCTION NODE 8 2. CONSTANTS : 3. O. ARGUDENT : MTFC 5) 8 18 FUNCTION NOISE 8 5. ARGOIENTS : 1. 2. 3. 4. WDOLATOR FUNCTION : 4. NOEER 0F WINTERS 8 3. WNNECTOR WINTER 8 1. MTF WINTERS : 1. 3. MTF( 6) 8 22 FUNCTION NODBER 8 5. ARGOIENTS : 5. 6. 7. 8. WDOLATOR FUNCTION : 1. NONE OF WINTERS 8 3. CONNECTOR WINTER 8 2. MTF WINTERS : 8. 10. MTF( 7) 8 24 FUNCTION NOISE 8 1. CONSTANTS : -3. 0. ARGUIENT : MTFC 8) 8 25 FUNCTION NOISE 8 5. ARGODENT‘S : 5. 6. 7. 8. IODOLATOR FUNCTION : 2. NUIBER OF WIINTERS 8 3. CONNECTOR WINTER 8 2. MTF WINTERS : 6. 10. MTFC 9) 8 28 FUNCTION NOISE 8 2. CONSTANTS : 83. 0. ARGOIENT : MTF(10) 8 29 FUNCTION NOISE 8 5. ARGOIENTS : 5. 6. 7. 8. WDOLATOR FUNCTION : 4 . ' NOISE OF WINTERS 8 3. CONNECTOR WINTER 8 2. MTF WINTERS : 6. 8. MTF(11) 8 33 FUNCTION NONE 8 5. ARGOIENTS : 9. 10. 11. 12. WDOLATOR FUNCTION : 2. NOIBER OF WINTERS 8 3. CONNECTOR WINTER 8 3. MTF WINTERS : 12. 14. F10 MTFC12) 8 35 FUNCTION NONE 8 ARGUMENTS : 9. 10. 11. 12. IODULATOR FUNCTION : 3 . NONE 0F WINTERS 8 3. WNNECTOR WIINTER 8 3. 5. MTFWINTERS : 11. 14. MTF(13) 8 37 FUNCTION NONE 8 CONSTANTS : 1. O. ARGOIENT : MTF(14) 8 38 FUNCTION NONE 8 ARGUIENTS : 9. 10. 11. 12. IIIDULATOR FUNCTION : 4. NONE OF WINTERS 8 3. CONNECTOR WINTER 8 3. MTF WINTERS : 11. 12. MTF(15) 8 41 FUNCTION NOISE 8 CONSTANTS : 1. O. ARGUISNT : MTFC16) 8 44 FUNCTION NOISE 8 ARGOMENT‘S : 13. 14. 15. 16. WDULATOR FUNCTION : 1. NONE 0F WINTES 8 3. WNNECTOR WINTER 8 4. MTF WINTERS : 18. 20. MTF(17) 8 46 FUNCTION NONE 8 CONSTANT‘S : 3. O. ARGUIENT‘ MTF(18) 8 47 FUNCTION NOISE 8 ARGUMFNTS : 13. 14. 15. 16. IDDOLATOR FUNCTION : 2. NONE 0F WINTERS 8 3. CONNECTOR WINTER 8 4. MTF WINTES : 16. 20. MTF(19) 8 50 FUNCTION NONE 8 CONSTANTS : 3. 0. ARGUISNT : MTF(20) 8 51 FUNCTION NOISE 8 ARGOIENTS : 13. 14. 15. 16. NDOLATOR FUNCTION : 4. NONE OF WINTERS 8 3. CONNECTOR WINTER 8 4. MTF WINTES : 16. 18. MTF(21) 8 55 FUNCTION NOISE 8 ARGONNTS : 17. 18. 19. 20. IODULATOR FUNCTION : 1. NONE 0F WINTERS 8 3. CONNECTOR WINTER 8 5. MTF WINTERS : 23. 25. MTFC22) 8 57 FUNCTION NONE 8 CONSTANTS : -3. 0. ARGUIBNT : F11 MTF(23) 8 58 FUNCTION NONE 8 5. ARGOIENTS : 17. 18. 19. 20. NDULATOR FUNCT ION : 2. NONE OF WINTERS 8 3. CONNECIOR WINTER 8 5. MTF WINTES : 21. 25. O. MTF(24) 8 61 FUNCTION NONE 8 2. CONSTANTS : -3. 0. ARGUIIZNT : 6. MTF(25) 8 62 FUNCTION NOISE 8 5. ARGUMENTS : 17. 18. 19. 20. NDOLA‘IOR FUNCTION : 4. NONE OF WINTES 8 3. CONNECTOR WINTER 8 5. MTF WINTERS : 21. 23. 0. MTF(26) 8 66 FUNCTION NONE 8 5. ARGUIENTS : 21. 22. 23. 24. NDULATOR FUNCTION : 2. NONE OF WINTERS 8 3. CONNECTOR WINTER 8 6. MTF WINTES : 27. 29. 0. MTF(27) 8 68 FUNCTION NOISE 8 5. ARGUIENTS : 21. 22. 23. 24. NDULA’TOR FUNCTION : 3. NONE OF WINTES 8 3. CONNECTOR WINTER 8 6. MTF WINTES : 26. 29. 0. MTF(28) 8 70 FUNCTION NONE 8 1. CONSTANTS: 1. 0. ARGUIENT: 6. MTF(29) 8 71 FUNCTION NONE 8 5. ARGUIENT‘S : 21. 22. 23. 24. NDOLATOR FUNCTION : 4. NONE OF WINTERS 8 3. CONNECTOR WINTER 8 6. MTF WINTERS : 26. 27. 0. MTF(30) 8 74 FUNCTION NONE 8 2. CONSTANTS: 1. 0. ARGONNT: 6. MTF(31) 8 79 FUNCTION NONE 8 5. ARGONNTS : 29. 30. 31. 32. NDOLATOR FUNCTION : 1. NONE 0F WINTERS 8 2. CONNECTOR WINTER 8 8. MTF WINTERS : 33. 0. 0. MTF(32) 8 81 FUNCTION NONE 8 1. CONSTANTS: 0. 0. ARGUIENT: 6. F12 MTF(33) 8 82 FUNCTION NONE 8 5. ARGOMENT'S : 29. 30. 31. 32. NDULATOR FUNCTION : 2. NONER OF WINTERS 8 2. CONNECTOR WINTE 8 8. MTF WINTERS : 31. 0. 0. MTF(34) 8 85 FUNCTION NONE 8 2. CONSTANT‘S: 0. 0. ARGUMENT: 6.