, +, +, + the "0" value reference line of the diagrams may be changed. The 'P' letter is connected to the distributed force and stands for 'problem'. The letter 'T' is connected to the shear force whose symbol is ‘TZ’, 'O' is connected to the bending moment and 'D' stands for 'deflection'. In the same way, figure 4.07 presents the hot keys employed to modify the zoom scale of the diagrams. The according commands are +
, +, +, +, the meaning of the letters being previously mentioned.
56
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Figure 4.15 – Modification of the ‘zero-line reference’ facility
Figure 4.16 – Modification of the scale of the diagrams, in comparison with the previous figure
DESIGN OF THE SOFTWARE
57 The initial scale factors with respect to the area of the screen dedicated to its representation are: 60% for the shear force, 50% for the bending moment and 25% for the deflection (figure 4.15). The final scale of the shear force is 95% in figure 4.16. The modification of the scale is done by pressing arrows for 1% increment or decrement and PageUp or PageDown keys for a 5% modification. If this ‘zoom’ facility is not enough, the user is allowed to display only some parts of the drawing.
Figure 4.17 – Presentation of the problem to be solved, for which the drawing mode is 0 According to figure 4.7 different elements of the general drawing presented in figure 4.16 may be separately presented by pressing certain keys, like: 0 - draw the structure and the distributed loads, namely the problem, figure 4.17; 1 - draw the problem, the shear force diagram, the bending moment diagram and the deflected shape of the equivalent beam; this is the implicit drawing mode and it is used in figures 4.15 and 4.16; 2 - draw the problem, the shear force diagram and the bending moment diagram, figure 4.14; 3 - draw the problem and the deflected shape of the equivalent beam, figure 4.18.
58
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Once a new drawing mode (0, 1, 2 or 3) is selected there are considered the scales specific to this current type of representation. If the scales are modified, these values become implicit for this drawing mode, so they will be reused when the user returns to this mode.
Figure 4.18 – Presentation of the deflection, for which the drawing mode is 3 Another facility is about the suggestive representation of the stresses using colors (assigned to different scales) which are used to draw the deflected shape of the beam.
Figure 4.19 – Stresses are not presented
DESIGN OF THE SOFTWARE
59 According to figure 4.07 which presents the hot keys of the application, the user may change the way how the equivalent stresses are drawn, by pressing the “S” key.
Figure 4.20 – Maximum value in the scale of the stresses is the maximum effective stress
Figure 4.21 – Maximum value in the scale of the stresses is the admissible stress There must be noticed that the maximum equivalent stresses can be displayed only if the color mode is active and the deflected shape is presented. The colors are chosen
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES 60 with respect to a certain range of values of the maximum equivalent stresses. There were considered three modes. First mode is used in figure 4.19, where a unique color is assigned to the stresses, so it can be considered that the stresses are not presented. The other two presentation modes use 10 intervals assigned to a given range of stresses. A unique color is dedicated for a given interval. Being equivalent von Mises stresses, (3.34), the minimum stress is zero. The second mode to present the stresses is used in figure 4.20. The range of stresses assigned to the 10 intervals is from 0 up to the maximum effective stress. The advantage of this presentation mode is the fine resolution of the colors, being used all the 10 intervals dedicated to this purpose. The disadvantage is that the effective stresses along the deflected beam cannot be easily compared, at a glance, with the admissible stress. The third mode to present the stresses is used in figure 4.21. The range of stresses assigned to the 10 intervals is from 0 up to the admissible stress. The advantage of this presentation mode is the easy way to compare the field of stresses with the admissible stress and consequently to decide if the structure withstands the loads. The disadvantage is the coarse resolution of the colors of the stresses along the deflected equivalent beam. The user is allowed to cycle between these presentation modes in order to take full advantage of the strong points of each presentation mode.
Figure 4.22 – Presentation without the extreme values (button ‘E’ was pressed) Another hotkey presented in figure 4.7 is ‘E’ and it is used to show and to hide the information regarding the extreme values of that given problem. Figure 4.22 presents the drawing, without the extreme values.
DESIGN OF THE SOFTWARE
61
Another interesting aspect is about the correspondence between the code presented in the appendices and the aspect of the graphical interface.
a) Detail 1
b) Detail 2 c) Detail 3 Figure 4.23 – Details of the free body diagrams
d) Detail 4
Regarding the graphical interface, some of the problems had to be solved repeatedly for several times, so the solution was to create some procedures which solve a more general problem and to use that procedure to solve the particular cases. Appendix 3 presents the procedures and functions employed to design the graphical user interface and to draw the free body diagrams. The details presented in figure 4.23 were solved by the use of the following procedures: ● MIPVES03 Library → Procedure Caracter_Incercuit → Detail 1; ● MIPVES03 Library → Procedure Draw_Diagram_Symbol → Detail 2; ● MIPVES03 Library → Procedure Draw_Diagram_Unit → Detail 3; ● MIPVES03 Library → Procedure Draw_Arrow → Detail 4. The input and output parameters of these procedures may be found in appendix 3, which presents the MIPVES03 library, figure 4.3.
Figure 4.24 – Standard presentation of another case-study
62
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
In order to offer more information regarding the application, figure 4.24 presents another case-study regarding and educational model of a hull. Comparing figures 4.21 and 4.24, one can notice that the same graphical user interface may be used for both cases: ship loaded with cargo (figure 4.21) and ship with no cargo (figure 4.24). It means that the algorithm employed to automatically compute the parameters of the graphical user interface has an appropriate degree of generality.
4.6
Structure of the data in the input file text The input data are read from an input text file, which has the ‘.INP’ extension. The
contents of such input text file are presented in figure 4.25. MIPVES00 4 0.000 10000.0 -600.0 210000.0 3354294130000.000 10000.0 400.0 210000.0 3354294130000.000 10000.0 1000.0 210000.0 3354294130000.000 10000.0 -800.0 210000.0 3354294130000.000 120.0 2 0.0 -1000.0000000000000 40000.0 -1015.0000000000000 G C 200 1
8250003380000.000 8250003380000.000 8250003380000.000 8250003380000.000
3238.100 3238.100 3238.100 3238.100
5000.000 5000.000 5000.000 5000.000
5643546.871 5643546.871 5643546.871 5643546.871
10125000.000 10125000.000 10125000.000 10125000.000
45.000 45.000 45.000 45.000
30.000 30.000 30.000 30.000
Figure 4.25 – Contents of the input text file for the problem presented in figure 3.13 The input file is a text file and it can be created from any programming language and in any operating system. It includes all the technical information to solve the problem and in the following section is presented the way how data is organized in this file: 1. Designation of the problem 2. Number of intervals of the equivalent beam, ‘NINT’ 3. Angle of side inclination, ‘Alfa’, in sexagesimal angles; positive values are for the counter clockwise rotation, to the port side of the transverse section of the hull; 4. Data for each interval: 4.01 Length of the interval in mm, 7 characters, from 001 to 007 4.02 Equally distributed force in KN/m or N/mm; if the force is downwards the values is negative; if the value is upwards, the value is positive; 9 characters, from 008 to 016; 4.03 Young’s elastic modulus in MPa; 9 characters, from 017 to 025; 4.04 IY second moment of area in mm4; 19 characters, from 026 to 044; 4.05 IZ second moment of area in mm4; 19 characters, from 045 to 063; 4.06 Maximum ‘z_max’ distance, employed to compute the ‘WY’ elastic section modulus; 10 characters, from 064 to 073;
DESIGN OF THE SOFTWARE
63 4.07 Maximum ‘y_max’ distance, employed to compute the ‘WZ’ elastic section modulus; 10 characters, from 074 to 083; 4.08 First moment of area, ‘SY’, in mm3; 16 characters, from 084 to 099; 4.09 First moment of area, ‘SZ’, in mm3; 16 characters, from 100 to 115; 4.10 Width of the filled areas of the cross-section along the Z axis, ‘bZ’; 09 characters from 116 to 124; 4.11 Width of the filled areas of the cross-section along the Y axis, ‘bY’; 09 characters from 125 to 133; 5. Admissible stress, in MPA; 6. Flag according to which the boundary conditions are read: ● if it equals 1, the following two lines are dedicated to the following data: 6.1.1 The X coordinate with respect to the leftmost end of the equivalent beam where the rotation is measured; First line: 9 characters, from 001 to 009; 6.1.2 Rotation measured in the section defined by 6.1.1; First line: 20 characters, from 010 to 029; 6.1.3 The X coordinate with respect to the leftmost end of the equivalent beam where the deflection is measured; Second line: 9 characters, from 001 to 009; 6.1.4 Deflection measured in the section defined by 6.1.3; Second line: 20 characters, from 010 to 029; ● if it equals 2, the following two lines are dedicated to the following data: 6.2.1 The X coordinate with respect to the leftmost end of the equivalent beam where the first level is measured; By level I mean the distance from the sea surface to a reference line of the hull considered the initial straight non-deformed axis; First line: 9 characters, from 001 to 009; 6.2.2 Value of the first level measured in the section defined by 6.2.1; First line: 20 characters from 010 to 029; 6.2.3 The X coordinate with respect to the leftmost end of the equivalent beam where the first level is measured; Second line: 9 characters, from 001 to 009; 6.2.4 Value of the second level measured in the section defined by 6.2.3; Second line: 20 characters from 010 to 029; ● if it equals 3, the following line is dedicated to the following data: 6.3.1 The value of the rotation in the leftmost end of the equivalent beam; 20 characters, from 001 to 020; 6.3.2 The value of the deflection in the leftmost end of the equivalent beam; 20 characters, from 021 to 040; 7. Flag which is considered the option for the representation of the free body diagrams; it is ‘G’ if free body diagrams are needed; it is ‘A’ for automatic calculus, where the software is working as a solver which reads the data from an input text file and writes the results in an output text file; 8. Flag which is considered the option for the type of colors to be used for the graphical representation of the free body diagrams; it is ‘C’ for color graphics; it is ‘M’ for monochrome graphics (black on a light gray background);
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES 64 9. Minimum number of points across the beam where are computed the following technical values: shear force, bending moment, deflection; apart from these points, there will be added the sections where TZ=0 (in the section where the shear force is zero, the bending moment has an extreme value), MY=0 and Fi=0 (in the section where the rotation is zero, the deflection has an extreme value). The application has an internal data generator which creates the input file for a set of 24 educational problems presented appendix 5.
4.7
Comparison with other case studies
The application is used for educational problems as well as for more complex studies and models. Figure 4.26 presents the case of o heavy lift vessel. In order to be more accurate, the model has several intervals.
Figure 4.26 – Results for a heavy-lift ship Being a model of a real structure, not an educational model, the exact equilibrium conditions (3.7) and (3.8) were replace by (3.9) which are conditions to minimize the error. The admissible error was fair small in order to have an accurate model, which was proved by the shear force diagram and by the bending moment diagram which, both of them, starts from 0 and ends in 0. The next study is dedicated to the graphical results of a liquid cargo handling simulator.
Figure 4.27 – Screen shot of the liquid cargo handling simulator – the hull deflection screen
DESIGN OF THE SOFTWARE
65
Figure 4.28 – Screen shot of the liquid cargo handling simulator – the shear force diagram
66 RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Figure 4.29 – Screen shot of the liquid cargo handling simulator – the bending moment diagram
DESIGN OF THE SOFTWARE
67
Figure 4.30 – Screen shot of the liquid cargo handling simulator – the hull stability screen
68 RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
DESIGN OF THE SOFTWARE
69 Figures 4.27, 4.28, 4.29 and 4.30 are screen shots of a liquid cargo handling simulator employed for training in loading and discharging operations of a given type of ship. Figure 4.27 presents the hull deflection, problem also solved by the MIPVES software. Figures 4.28 and 4.29 present the shear force and the bending moments diagrams, also solved by MIPVES. It must be noticed the similarity between the diagrams drawn by the MIPVES software and the free body diagrams presented in figures 4.28 and 4.29. Moreover, there must be also noticed the relations between the shear force diagram and the bending moment diagram which are presented fin figures 4.28 and 4.29. The red and the yellow lines represent the boundaries of the so-called ‘safe area’ of operations and the diagrams should not exceed these lines in any case, otherwise there might be compromised the strength of the hull or the stability of the ship. The red line is for the open sea where the loads are greater than the harbor conditions represented by the yellow line. One can notice the friendly way to present the technical information offered by figures 4.28 and 4.29, together with the easy way to check if the critical conditions are respected. The simulator also presents the hull stability screen, which is not presented by MIPVES, because this was not an objective of the software. However, the facilities offered by the simulator may be considered an inspiring environment in the design of some extensions of the MIPVES software, or in the creation of a more complex application. The technical data presented in figures 4.27, 4.28, 4.29 and 4.30 are for a hull with no cargo, loaded only by the ballast water. Similar remarks as before may be done for the hull with various loading cases.
4.8
Conclusion
The application consists of more than 11000 computer code lines and it was designed to be used as an educational support instrument and an investigation tool.
Figure 4.31 – Aspect of the main module of the application and the total number of computer code lines of the software
70
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
The application may be included in an upper-level system of applications which are solving different separate problems. According to figure 3.1 there should be also developed a software application dedicated to the calculus of the geometrical characteristics. Another module should be dedicated to the automatic computation of the loads using some signals produced by strain gages bonded to the structure of the ship. In this way the overview information is computed starting with the data offered by the analytic model and from the ‘in situ’ experimental data, figure 2.1. The design of the MIPVES software is flexible and it was subjected to several upgrades in order to use the actual facilities and to meet the nowadays requirements. The ‘color changing’ facilities are not yet assimilated in the final version of the software, the attention being focused on other functionalities, far more important. In order to be a useful educational instrument an internal data generator was added for a set of 24 problems used during the classes, appendix 5. In this way there are automatic solutions for all the problems to be used during the educational activity. The application was tested for several datasets and its results have a high degree of confidence.
Concluding remarks Maritime structures must withstand various loads for a long period of service. Because the structural phenomena are complex, standalone analytic models, numeric models and experimental studies cannot offer an accurate response. The most appropriate strategy to approach new and complex problems is to create computer based hybrid models which employ modern algorithms. The role of the computer in this new strategy is to integrate the information resulted from the various studies employed to solve the problem. Moreover, actual graphical facilities can be used to bring more relevancy to the information which must be processed in order to draw pertinent conclusions. Besides, a friendly graphical user interface increases the effectiveness of the analyst. Another remark is about the limits of the pre-defined solutions and of the software solutions which solve a given set of problems, but it cannot be applied in new special cases which require original software instruments. From this standpoint, the software developed in the framework of this project is a demonstrator of the basic concepts promoted by this study: original computer aided instruments are useful for various activities, such as: education, concept, design and research. Important aspects were learnt regarding the best practices to design original software instruments for engineering studies: ● structure of the application to be developed; ● data model of the software; ● methods to communicate the data between the modules of the application; ● methods to interface this program with other applications; ● method to design an effective system of interactions of the program; ● method to create the graphical presentation of the results, in this case the free body diagrams and the deflected shape of the equivalent beam; ● method to present the results not only as numbers and diagrams, but also as laws of variation of the shear force, bending moment and deflection along the hull. The results of the software were verified using: ● the model of a heavy vessel ship created by the use of this original software; ● the results of a liquid cargo handling simulator for an oil carrier ship. An important aspect is about the profound transformation in approaching new problems when the computer and programming languages are the basic instruments of investigation. Based on the experience acquired in this project, several directions of research might be identified, such as: ● creation of analytic models implemented as original computer aided engineering software based on concepts from strength of materials and on the theory of elasticity, [61], [62], [65], [66], [83], [84], [85], [86]; ● development of general approaches based on computer solutions to be used in engineering and in other fields of science, [58], [59], [67], [71], [73], [77], [79];
72
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
● development of computer based solutions in the maritime field [57], [69], [70], [74], [76], [81] which use different models from engineering; ● development of graphical applications [68], [72], [75], [78]. Regarding the application developed in the framework of the project, there are other facilities which can be also integrated in this basic solution. From an educational point of view, the computer based models which use the basic topics of the faculty studies, fill the educational gap between the theory and the simulators employed to accustom the students with the onboard equipment. To conclude, interdisciplinary and inter-domain approaches may be effective only if computer based solutions are designed, this means to develop intelligent and original software instruments.
References 6.1
Books
[1]
BAKHVALOV, N., Methode numeriques, Moscou, Editions Mir, 1976
[2]
VIOREL BARBU, Probleme la limită pentru ecuaţii cu derivate parţiale, Editura Academiei Române, Bucureşti, 1993
[3]
BEBEA NICOLAE, Metode pentru rezolvarea problemelor de optimizare – Aplicaţii, Editura didactică şi pedagogică, Bucureşti, 1978
[4]
C. BERBENTE, S. ZANCU, C. TĂTĂRANU, S. MITRAN, Metode numerice de calcul pentru aviaţie, Litografia Institutului Politehnic Bucureşti, 1988
[5]
JOSHUA BLOCH, Java – Ghid practic pentru programatori avansaţi, Editura Teora, Bucureşti, 2002, ISBN 973-20-0406-1
[6]
GHEORGHE BORDEA, Modelarea relaţională a sistemelor cu evenimente discrete, Editura Leda & Muntenia, Constanţa, 2000
[7]
MARK CHAN, STEVEN GRIFFITH, ANTHONY IASI, Java – 1001 Secrete pentru programatori, Editura Teora, Bucureşti, 2001, 2002, ISBN 973-20-00169-0
[8]
PAUL COCÂRLAN, MARCEL ROŞCULEŢ, Serii trigonometrice şi aplicaţii, Editura Academiei Române, 1991
[9]
IOAN CONSTANTINESCU, DAN GOLUMBOVICI, CONSTANTIN MILITARU, Prelucrarea datelor experimentale cu calculatoarele numerice. Aplicaţii din construcţia de maşini, Editura Tehnică, Bucureşti, 1980
[10]
FRANCIS COTTET, OCTAVIAN CIOBANU, Bazele programării în LABVIEW, Editura MATRIX ROM, Bucureşti, 1998
[11]
VALENTIN CRISTEA, IRINA ATHANASIU, EUGENIA KALISZ, VALERIU IORGA, Tehnici de programare, Editura Teora, Bucureşti, 1993
[12]
V. CRISTEA, A. Păunoiu, E. KALISZ, I. ATHANASIU, L. Negreanu, S. CĂLINOIU, F. BABOESCU, UNIX, Editura Teora, Bucureşti, 1993
[13]
GEORGE B. DANTZIG, M.A.H. DEMPSTER, MARKKU KALLIO (coordonatori), Programarea liniară a sistemelor mari, Vol. 1, Concepte, metode, experienţă de calcul; Lucrări ale Institutului IIASA (International Institute for Applied Systems Analysis), Traducere din limba engleză, Editura Tehnică, Bucureşti, 1990
74 [14]
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
GEORGE B. DANTZIG, M.A.H. DEMPSTER, MARKKU KALLIO (coordonatori), Programarea liniară a sistemelor mari, Vol. 2, Implementări, experimente, aplicaţii; Lucrări ale Institutului IIASA (International Institute for Applied Systems Analysis), Traducere din limba engleză, Editura Tehnică, Bucureşti, 1990
[15]
RICK DARNELL, Totul despre HTML4, Editura Teora, Bucureşti, 2000, 2002, ISBN 973-20-0427-4
[16]
B. DEMIDOVITCH, I. MARON, Elements de calcul numerique, Moscou, Editions Mir, 1979
[17]
C. DINESCU, B. SĂVULESCU, D. VASILIU, Metode matematice pentru fundamentarea deciziilor în producţie, Editura Tehnică, Bucureşti, 1987
[18]
W. S. DORN, D. D. MCCRACKEN, Metode numerice cu programare în FORTRAN, Traducere din limba engleză, Editura Tehnică, Bucureşti, 1976
[19]
BOGDAN DUMITRESCU, CORNELIA POPEEA, BORIS JORA, Metode de calcul numeric matriceal. Algoritmi fundamentali, Editura ALL EDUCATIONAL, ISBN 973-9392-07-5, Bucureşti, 1998
[20]
RICHARD FAIRLEY, Software Engineering Concepts, McGraw-Hill International Editions, 1985, Computer Science Series, McGraw-Hill series in software engineering and technology
[21]
JAY W. FORRESTER, Principiile sistemelor. Teorie şi autoinstruire programată, Editura Tehnică, Bucureşti, 1979
[22]
JAY W. FORRESTER, Dinamica industrială, Traducere din literatura americană, după ediţia a 8-a, Editura Tehnică, Bucureşti, 1981
[23]
HORIA GEORGESCU, CRISTINA VERTAN, Curs de calcul paralel, 169 pagini, OVIDIUS UNIVERSITY PRESS, Universitatea “Ovidius”, Constanţa, 1998, ISBN 973-9367-41-0
[24]
HORIA GEORGESCU, Introducere în universul Java, Editura Tehnică, Bucureşti, 2002, ISBN 973-31-2095-2
[25]
MARIN GHINEA, VIRGILIU FIREŢEANU, MATHLAB – Calcul numeric, Grafică, Aplicaţii, Editura Teora, Bucureşti, 2003
[26]
R. W. HOCKNEY, C. R. JESSHOPE, Calculatoare paralele – Arhitectură, programare şi algoritmi, ediţia a II-a, Editura Tehnică, Bucureşti, 1991
[27]
LAURENŢIU HOMENTCOVSCHI, Geometrie computaţională, 189 pagini, Editura Ex Ponto, Constanţa, 2002, ISBN 973-644-021-4
[28]
VALERIU IORGA, BORIS JORA, CRISTINA NICOLESCU, IONUŢ LOPĂTAN, ION FĂTU, Programare numerică, Editura Teora, Bucureşti, 1996
[29]
LIVIU GR. IXARU, Metode numerice pentru ecuaţii diferenţiale cu aplicaţii, Editura Academiei RSR, Bucureşti, 1979
REFERENCES
[30]
75 GHEORGHE JUNCU, CONSTANTIN POPA, Introducere în metoda multigrid, Editura Tehnică, 1991
[31]
IOAN JURCĂ, Programarea orientată pe obiecte în limbajul C++, Editura EUROBIT, Timişoara, 1992
[32]
WINFRIED KASSERA, VOLKER KASSERA, Turbo Pascal 6.0, Editura Micro ATCI, Tîrgu-Mureş, 1992
[33]
DONALD KNUTH, Arta programării calculatoarelor, Volumul 1 – Algoritmi fundamentali, Volumul 2 – Algoritmi seminumerici, Volumul 3 – Sortare şi căutare, Ediţia a III-a, Editura Teora, 2000
[34]
ACAD. GH. MARINESCU, IRINA RIZZOLI, ILEANA POPESCU, CRISTINA ŞTEFAN, Probleme de analiză numerică rezolvate cu calculatorul, Editura Academiei RSR, Bucureşti, 1987
[35]
EMIL OANŢĂ, Basic theoretical knowledge in programming the computer aided mechanical engineering software, Editura Fundaţiei “Andrei Şaguna”, Constanţa, 2000, ISBN 973-8146-04-6
[36]
EMIL OANŢĂ, Basic notions of programming in VISUAL FOXPRO, Editura Fundaţiei “Andrei Şaguna”, Constanţa, 2001, 322 pg., ISBN 973-8146-27-5
[37]
EMIL OANŢĂ, Strength of materials – course and applications, Editura Fundaţiei “Andrei Şaguna”, Constanţa, 2004, 422 pg., ISBN 973-8146-38-0
[38]
ION ODĂGESCU, Optimizarea algoritmilor, Editura Militară, 1991
[39]
ION ODĂGESCU, I. SMEUREANU, I. ROXIN, Viruşi informatici şi bombe logice, Editura ALDO, Bucureşti, 1991
[40]
ODĂGESCU IOAN, SMEUREANU ION, ŞTEFĂNESCU IRINA, Programarea avansată a calculatoarelor personale, Editura Militară, Bucureşti, 1993
[41]
ODOBLEJA ŞTEFAN, Introducere în logica rezonanţei, Editura Scrisul Românesc, Craiova, 1984
[42]
BAZIL PÂRV, ALEXANDRU VANCEA, Fundamentele programare, Editura Albastră, Cluj-Napoca, 1996
[43]
EMILIA PETRIŞOR, Modelare geometrică algoritmică, 366 pagini, Editura Tehnică, Bucureşti, 2001, ISBN 973-31-2034-0
[44]
POPA AUREL, VRACIU GEORGE, Metode numerice cu aplicaţii în tehnica de calcul, Editura Scrisul Românesc, Craiova, 1982
[45]
WILLIAM H. PRESS, SAUL A. TEUKOLSKY, WILLIAM T. VETTERLING, BRIAN P. FLANNERY – Numerical Recipies in C, CAMBRIDGE UNIVERSITY PRESS, 1997
[46]
WALKER ROYCE, Software Project Management: a unified framework, Addison Wesley Longman, Inc., 1998
limbajelor
de
76
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
[47]
ERNEST SCHEIBER, DORIN LIXĂNDROIU, MathCAD - Prezentare şi probleme rezolvate, Editura Tehnică, Bucureşti, 1994
[48]
ION SMEUREANU, MARIAN DÂRDALĂ, Programarea în limbajul C / C++, Editura CISON, Bucureşti, 2001
[49]
ION SMEUREANU, MARIAN DÂRDALĂ, Programarea orientată obiect în limbajul C++, Editura CISON, Bucureşti, 2002
[50]
B.T. SMITH, J.M. BOYLE, B.S. GARBOW, Y. IKEBE, V.C. KLEMA, C.B. MOLER, Matrix Eigensystem Routines - EISPACK Guide, Lecture Notes in Computer Science, Springer-Verlag Berlin Heidelberg New York,1973
[51]
TAMAŞ ILIE, ALI EDEN, NĂSTASE PAVEL, IONESCU BOGDAN, BERBEC FLORENTINA, COSĂCESCU LUANA, IONESCU IULIANA, OANCEA MIRELA, Bazele Informaticii, Editura SOFITECH, Bucureşti, 1999
[52]
TAMAŞ ILIE, POPA GHEORGHE, BERBEC FLORENTINA, VRÎNCIANU MARINELA, GLĂVAN NICOLAE, Sisteme de gestiune a bazelor de date. Visual FoxPro, Editura CISON, Bucureşti, 2000
[53]
ŞTEFAN TANASĂ, CRISTIAN OLARU, ŞTEFAN ANDREI, Java de la 0 la expert, Editura POLIROM, Iaşi, 2003, ISBN 973-681-201-4
[54]
THEOCARIS P. S., BUGA M., BURADA C., BĂLTĂNOIU M., CONSTANTINESCU I., HORBANIUC D., ILIESCU N., MOCANU D. R., MODIGA M., NĂILESCU L., PASCARIU I., POPOVICI VL., TRIPA M., COORDONATOR D. R. MOCANU, Analiza experimentală a tensiunilor – Bazele teoretice ale metodelor tensometrice şi indicaţii practice privind utilizarea acestora, Volumul II, Editura Tehnică, Bucureşti, 1977
[55]
TOMA MARIN, ODĂGESCU ION, Metode numerice şi subrutine, Editura Tehnică, Bucureşti, 1980
[56]
RICHARD WAGNER, ALLEN WYKE, JavaScript, Editura Teora, Bucureşti, 2001, 2002, ISBN 973-20-0-0127-5
6.2
Scientific papers
[57]
EMIL OANŢĂ, Expert system for book-keeping activities of a survey maritime company, The 8th INTERNATIONAL CONGRESS OF I.M.A.M., IMAM '97, Istanbul, Turkey, November 2-9, 1997, pag. 16.4.11-16.4.20, ISBN 975-561-114-2
[58]
EMIL OANŢĂ, BOGDAN NICOLESCU, DETC/CIE59: A versatile PC-based method for the processing of the large matrices, 1999 ASME Design Engineering Technical Conference, September 12-15, 1999, Las Vegas, Nevada, USA
REFERENCES
[59]
77 EMIL OANŢĂ, A database approach in computer aided engineering, Annual scientific journal of ‘Ovidius’ University - Mechanical engineering series, volume I, nr. 1, pag. 253-260, ISSN 1223-7221, Constanţa, 1999
[60]
EMIL OANŢĂ, PAUL BOCĂNETE, Basic Elements of Computer Aided Elasticity, Proceedings of the IMAM 2000, IX Congress, International Maritime Association of Mediterranean, 2-6 April 2000, Ischia - Napoli, Italy, Session F, pag. 40-47, ISBN 88-87951-00-4
[61]
EMIL OANŢĂ, FEM Study of the Stresses and Strains in the Block Cylinder of the Internal Combustion Engines, 2001, 442 pages, PhD Thesis, ‘Cum Laude’, ‘Politehnica’ University of Bucharest, The Faculty of Mechanical Engineering, Promoter: Prof. Dr. H. C. Eng. Constantin Arama, Member of the Romanian Science Academy
[62]
EMIL OANŢĂ, Considerations Regarding the Use of the Method of Initial Parameters for Curved Beams, Annals of Constanta Maritime University, Constanta, Romania, 2002, Year III, Vol. 3, pg. 173-178, ISSN 1582-3601
[63]
EMIL OANŢĂ, Comparison Between the ‘By-Hand’ Calculus and the Automatic Computing for the Method of Initial Parameters Applied for Hulls, Annals of Constanta Maritime University, Constanta, Romania, 2002, Year III, Vol. 3, pg. 167-172, ISSN 1582-3601
[64]
EMIL OANŢĂ, et all, ESDA2002/APM024: MIPVES - Software which employs the method of initial parameters applied for vessels, ESDA 2002: 6th Biennial Conference on Engineering Systems Design and Analysis, Istanbul, Turkey, July 08-11, 2002, Co-chairman of the APM S23 section
[65]
EMIL OANŢĂ, BOGDAN NICOLESCU, An original approach in the computer aided calculus of the large deflections, Annals of Constanta Maritime University, Constanta, Romania, 2003, Year IV, Vol. 5, pag. 53-58, ISSN 15823601
[66]
EMIL OANŢĂ, BOGDAN NICOLESCU, Comparative study of the ring elements belonging to an anchor chain, 4th international conference on PhD students, ISBN 963-661-585-3-0, ISBN 963-661-591-8, University of Miskolc, Hungary, 1117 August 2003, pag. 181-187
[67]
EMIL OANŢĂ, BOGDAN NICOLESCU, Computer-aided approaches – a path to the information of synthesis in engineering, Proceedings of the 5th International Conference on Quality, Reliability and Maintenance – QRM2004, ISBN 1-86058-440-3, University of Oxford, UK, 1-2 April 2004, pag. 265-268
[68]
DEAN VUCINIC, EMIL OANŢĂ, DANNY DEEN, ZVONIMIR BATARILO, ITEA (Information Technology for European Advancement) Research Project: LASCOT (LArge Scale COllaborative decision support Technology) – Final Report, Vrije Universiteit Brussels, Belgium, June 2004 - June 2005, http://lascot.vub.ac.be/vubteam.html, http://members.fortunecity.com/eoanta/20050629Research-VUB-1.gif, http://members.fortunecity.com/eoanta/20050629Research-VUB-2.gif
78 [69]
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
EMIL OANŢĂ, Methods to Generate Random Numbers Employed in the Probabilistic Approaches, Annals of Constanta Maritime University, ISSN 15823601, Constanta, Romania, 2006, pg. 175-180
[70]
EMIL OANŢĂ, Methods to Test the Random Number Generators Employed in Probabilistic Approaches, Annals of Constanta Maritime University, ISSN 15823601, Constanta, 2006, Pag. 181-186
[71]
EMIL OANŢĂ, IOAN ODĂGESCU, ILIE TAMAŞ, An Original Data Processing Method for the Cross Domain Software Applications, Scientific Bulletin of “Transilvania” University of Brasov, Published by “Transilvania” University Press, Series B3 – 'Economic Sciences', Brasov, 2006, Pag. 343-353, http://but.unitbv.ro/BU2008/Arhiva/BU2006/Seria_B.htm
[72]
DEAN VUCINIC, DANNY DEEN, EMIL OANŢĂ, ZVONIMIR BATARILO, CHRIS LACOR, Distributed 3D Information Visualization Towards Integration of the Dynamic 3D Graphics and Web Services, International Conference on Computer Graphics Theory and Applications, February 25-28 2006, Setubal, Portugal, Organised by the Institute for Systems and Technologies of Information, Control and Communication (WITRC – Wireless Information Technology Research Centre, IT – Instituto de Telecomunicacoes, Staffordshire University, Westminster University, Reading University AIS Lab – Applied Informatics with Semiotics Laboratory)
[73]
EMIL OANŢĂ, IOAN ODĂGESCU, ILIE TAMAŞ, An original data processing method for cross-domain software applications, Scientific Bulletin of “Transilvania” University of Braşov, Series B3 – Economic Sciences 2006, http://but.unitbv.ro/bu2008/arhiva/bu2006/seria_b.htm, http://but.unitbv.ro/bu2008/arhiva/bu2006/buletin%20b%20pdf/054-b-oanta_06.pdf
[74]
EMIL OANŢĂ, Numerical Methods and Models in Economy, 2007, 468 pages, PhD Thesis, The Bucharest Academy of Economic Studies, The Faculty of Economic Cybernetics, Statistics and Informatics, The Department of Economic Informatics, Promoter: Prof. Dr. Ec. Mat. Ioan Odagescu
[75]
EMIL OANŢĂ, VR GUI, Analele Universităţii Maritime din Constanţa, Editura Nautica, ISSN 1582-3601, Constanta, 2007, pag. 179-184
[76]
EMIL OANŢĂ, IOAN ODĂGESCU, ILIE TAMAŞ, Management Instruments which Use Probabilistic Approaches. Case studies,The 11th World MultiConference on Systemics, Cybernetics and Informatics: WMSCI2007 - The 3rd International Symposium on Management, Engineering and Informatics: MEI2007, Organised by the International Institute of Informatics and Systemics, July 8-11, 2007, Orlando, Florida, USA
[77]
EMIL OANŢĂ, SIMONA DINU, Knowledge management in interdisciplinary scientific research, Review of management and economic engineering/revista de management şi inginerie economică, B+, ISSN 1453-1305, EISSN 1842-8088, volume VIII / no. 1 / 2008, http://revistaie.ase.ro/content/en8/oanta%20emil%20sa.pdf, http://revistaie.ase.ro/en8.html
REFERENCES
[78]
79 EMIL OANŢĂ, Virtual Reality Original Instrument Employed in Crises Management, Proceedings of the 12th International Congress of the International Maritime Association of the Mediterranean (IMAM2007), Varna, Bulgaria, 2-6 September 2007, Maritime Industry, Ocean Engineering and Costal Resources – Editors: Guedes Soares & Kolev, 2008 Taylor & Francis Group, London, ISBN 978-0-415-45523-7, pag. 1095-1102
[79]
EMIL OANTA, SIMONA DINU, Computer Based Models in Education and Research, Proceedings of The 13th International Congress of the International Maritime Association of the Mediterranean - IMAM2009, Section 5-1 Marine Transportation - Simulation, 12-15 Oct 2009, Istanbul, Turkey, ISBN (Set) 978975-561-355-0, ISBN Vol. III 978-975-561-358-1, Editors: Omer Goren, Barbaros Okan, Safak C. Karakas, Istanbul: ITU Faculty and Naval Architecture and Ocean Engineering, 2009, pp. 941-946
[80]
EMIL OANTA, ALEXANDRA NITA, An Original Method to Compute the Stresses in Applied Elasticity, Journal of Optoelectronics and Advanced Materials - Rapid Communications (OAM-RC), Editor in-chief: Prof. Dr. Mihai A. Popescu, ISSN: Print: 1842-6573, Impact factor 0.224, Vol. 3, No. 11, November 2009, pp. 1226-1230
[81]
EMIL OANTA, SIMONA DINU, ILIE TAMAS, IOAN ODAGESCU, Innovative Engineering Based On Visual Information, Proceedings of the Balkan Region Conference on Engineering and Business Education, Section: Innovative New Methods for Engineering and Business Education, Volume I, Organized by Lucian Blaga University of Sibiu & Hochschule Wismar - University of Applied Sciences Technology, Business and Design, 15-17 October 2009, Sibiu, Editors: Constantin Oprean, Norbert Grunwald, Claudiu Vasile Kifor, ISBN 978-973-739-848-1, ISSN 1834-6730, pp. 174-177
[82]
EMIL OANTA, ILIE TAMAS, IOAN ODAGESCU, A Proposal for a Knowledge Management System for Emergency Situations, Proceedings of the 4th International Conference on Knowledge Management: Projects, Systems and Technologies, Section III. KM Projects, Organized by Project Management Association, “Carol I” National Defense University, Academy of Economic Studies, November 6-7, 2009, Bucharest, Romania, Editors: Toma Plesanu, Luiza Kraft, ISBN DVD 978-973-663-784-1, ISBN hardcopy: 978-973-663-783-4, pp. 143-145
[83]
EMIL OANTA, Computer Based Instruments in Teaching Strength of Materials, Proceedings of the 6th international seminar on ‘Quality Management in the Higher Education’, Organized by: Ministry of Education, Research, Youth and Sports, 'Gheorghe Asachi' Technical University of Iasi, CETEX - Center of Continuing Education and Training, 8-9 July 2010, Tulcea, Romania, Editor: Costache Rusu, ISBN 978-973-662-566-4, ISBN (Volume 1): 978-973-662-567-1, pp. 579-582
[84]
EMIL OANTA, CORNEL PANAIT, GHIORGHE BATRÎNCA, ALEXANDRU PESCARU, Basic Concepts to Design the Software Application of a Computer Based Mechanical Engineering Model, Annals of DAAAM for 2011 & Proceedings of the 22nd International DAAAM Symposium, ISBN 978-3-90150983-4, ISSN 1726-9679, pp 0505-0506, Editor Branko Katalinic, Published by DAAAM International, Vienna, Austria 2011
80 [85]
[86]
6.3
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
EMIL OANTA, CORNEL PANAIT, GHIORGHE BATRÎNCA, ALEXANDRU PESCARU, Computer based educational model of the bent hull in the context of the maritime education, Annals of DAAAM for 2011 & Proceedings of the 22nd International DAAAM Symposium, ISBN 978-3-901509-83-4, ISSN 17269679, pp 0503-0504, Editor Branko Katalinic, Published by DAAAM International, Vienna, Austria 2011 Emil Oanta, Cornel Panait, Vasile Marina, Viorica Marina, Leonard Lepadatu, Eliodor Constantinescu, Mihaela Barhalescu, Adrian Sabau, & Constantin Dumitrache, Mathematical Composite Models, a Path to Solve Research Complex Problems, Annals of DAAAM for 2011 & Proceedings of the 22 nd International DAAAM Symposium, ISBN 978-3-901509-83-4, ISSN 1726-9679, pp 0501-0502, Editor B[ranko] Katalinic, Published by DAAAM International, Vienna, Austria 2011
Documentations, on-line documentations
[87]
Yumetech, Inc., The Xj3D Toolkit, http://www.yumetech.com
[88]
http://eoanta.fortunecity.com/20050629Research-VUB-1.gif
[89]
http://eoanta.fortunecity.com/20050629Research-VUB-2.gif
[90]
CAREY R., BELL G., The Annotated VRML97 http://www.jwave.vt.edu/~engineer/vrml97book/
[91]
DAN GÂLEA, FLORIN LEON, Curs on-line de Inteligenţă Artificială, Universitatea Tehnică “Gh. Asachi” Iaşi, Facultatea de Automatică şi Calculatoare, http://eureka.cs.tuiasi.ro/~fleon/curs_ia.htm
[92]
MICHAEL MORRISON, et al., Java Unleashed, Chapter 34 – VRML and Java, http://docs.rinet.ru/Junleashed/ch41.htm
Reference
Manual,
Appendices The first appendices are dedicated to the presentation of some programming aspects like: structure of the software application, relevant modules of programs, etc. Some other appendices present the educational problems solved by the use of this software application.
Appendix 1.
MIPVES01 Library – Aspects regarding the code
{$N+$E+$F+$O+$G+$R+$S+$V+$Q+$X+} Unit MIPVes01; { Definition of the data types and codes of the basic procedures and functions. } Interface Uses WinGraph, WinCrt, WinMouse; Const Dim = 25; OperatingSystem='W'; Type Matrix_Value Integer_Value Integer_Vector Word_Vector Matrix_Vector Matrix_Integer Matrix_Char Matrix_String Matrix_Word String_Vector STR1 MPO_Record
= = = = = = = = = = = =
NrPct TotalPct X_Coord X_Info Interval Total_Intervale FiY_Ini UZ_Ini FiZ_Ini UY_Ini PY_DL PZ_DL TY_SF TZ_SF MY_BM MZ_BM FIY_R FIZ_R UZ_D UY_D IY_MI IZ_MI Z_Max Y_Max SY_SM SZ_SM
Double; Integer; Array [1..Dim] Of Integer; Array [1..Dim] Of Word; Array [1..Dim] Of Matrix_Value; Array [1..Dim,1..Dim] Of Integer; Array [1..Dim,1..Dim] Of Char; Array [1..Dim,1..Dim] Of String; Array [1..Dim,1..Dim] Of Word; Array [1..Dim] Of String; String[1]; Record : : : : : : : : : : : : : : : : : : : : : : : : : :
Integer; Integer; Matrix_Value; String; Integer; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value;
{ { { { { { { { { { { { { { { { { { { { { { { { { {
Index of the current point Total number of points X coordinate in the global system of axis Info string about the location of the point Interval where the current point belongs Total number of intervals Initial Fi, axis Y, in the leftmost point Initial U, axis Z, in the leftmost point Initial Fi, axis Z, in the leftmost point Initial U, axis Y, in the leftmost point Distributed load, axis Y, on the current interval Distributed load, axis Z, on the current interval Shear force, axis Y Shear force, axis Z Bending moment, axis Y Bending moment, axis Z Current Fi rotation, axis Y Current Fi rotation, axis Z Current U displacement, axis Z Current U displacement, axis Y Moment of inertia, axis Y Moment of inertia, axis Z Greatest length with respect to Z axis of a point Greatest length with respect to Y axis of a point Statical moment in the center of gravity, axis Y Statical moment in the center of gravity, axis Z
} } } } } } } } } } } } } } } } } } } } } } } } } }
82
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES BY_SW BZ_SW Sigma_My Tau_Tz Sigma_Mz Tau_Ty Ech_Stress_My_Ty Ech_Stress_Mz_Tz Line_of_Report
: : : : : : : : :
Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; String;
{ { { { { { { {
Width of the overall section along the Y axis } Width of the overall section along the Z axis } Normal stress created by the My bending moment } Tangential stress created by the Tz shear force } Normal stress created by the Mz bending moment } Tangential stress created by the Ty shear force } Equivalent stress, Sigma_My & Tau_Ty in 12 o'clock & 6 o'clock } Equivalent stress, Sigma_Mz & Tau_Tz in 3 o'clock & 9 o'clock }
End; MPO_File = File of MPO_Record; Function Trim(S : String) : String; Function LTrim(S : String): String; Function AllTrim(S : String): String; Procedure
Fill(Var S C Position Len ErrFill
: : : : :
String; Str1; Char; Integer; Integer);
Function Real2String ( Numar Tot_Dig Deg_Dig Leading_String
: : : :
Matrix_Value; Integer; Integer; STR1) : String;
Function Integer2String ( Numar : Integer; Tot_Dig : Integer; Leading_String : STR1) : String; Procedure BubbleSort_MPO_File ( Sort_Flag I_Start I_Stop MPO_FileName
: : : :
Char; Integer; Integer; String);
Procedure Creare_si_Initializare_Fisier_De_Date ( Var MPO_Filename : String; Var Nr_Recs : Integer); Procedure Delete_If_Exist ( MPO_FileName : String); Procedure Actualizare_Fisier_De_Date ( MPO_FileName _NrPct _TotalPct _X_Coord _X_Info _Interval _Total_Intervale _FiY_Ini _UZ_Ini _FiZ_Ini _UY_Ini _PY_DL _PZ_DL _TY_SF _TZ_SF _MY_BM _MZ_BM _FIY_R _FIZ_R _UZ_D _UY_D _IY_MI _IZ_MI _Z_Max _Y_Max _SY_SM _SZ_SM
: : : : : : : : : : : : : : : : : : : : : : : : : : :
String; Integer; Integer; Matrix_Value; String; Integer; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value;
{ { { { { { { { { { { { { { { { { { { { { { { { { {
Index of the current point Total number of points X coordinate in the global system of axis Info string about the location of the point Interval where the current point belongs Total number of intervals Initial Fi, axis Y, in the leftmost point Initial U, axis Z, in the leftmost point Initial Fi, axis Z, in the leftmost point Initial U, axis Y, in the leftmost point Distributed load, axis Y, on the current interval Distributed load, axis Z, on the current interval Shear force, axis Y Shear force, axis Z Bending moment, axis Y Bending moment, axis Z Current Fi rotation, axis Y Current Fi rotation, axis Z Current U displacement, axis Z Current U displacement, axis Y Moment of inertia, axis Y Moment of inertia, axis Z Greatest length with respect to Z axis of a point Greatest length with respect to Y axis of a point Statical moment in the center of gravity, axis Y Statical moment in the center of gravity, axis Z
} } } } } } } } } } } } } } } } } } } } } } } } } }
APPENDICES _BY_SW _BZ_SW _Sigma_My _Tau_Tz _Sigma_Mz _Tau_Ty _Ech_Stress_My_Ty _Ech_Stress_Mz_Tz _Line_of_Report
: : : : : : : : :
Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; String);
{ { { { { { { {
83
Width of the overall section Width of the overall section Normal stress created by the Tangential stress created by Normal stress created by the Tangential stress created by
along the Y axis along the Z axis My bending moment the Tz shear force Mz bending moment the Ty shear force
} } } } } }
Equivalent stress created by Sigma_My & Tau_Ty in 6 & 12 o'clock } Equivalent stress created by Sigma_Mz & Tau_Tz in 3 & 9 o'clock }
Procedure Extragere_Informatii_Din_Fisier_De_Date ( { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { {
Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output
} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
MPO_FileName _NrPct _TotalPct _X_Coord _X_Info _Interval _Total_Intervale _FiY_Ini _UZ_Ini _FiZ_Ini _UY_Ini _PY_DL _PZ_DL _TY_SF _TZ_SF _MY_BM _MZ_BM _FIY_R _FIZ_R _UZ_D _UY_D _IY_MI _IZ_MI _Z_Max _Y_Max _SY_SM _SZ_SM _BY_SW _BZ_SW _Sigma_My _Tau_Tz _Sigma_Mz _Tau_Ty _Ech_Stress_My_Ty _Ech_Stress_Mz_Tz _Line_of_Report
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
String; Integer; Integer; Matrix_Value; String; Integer; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; String);
Procedure Append_MPO_Rec ( Var Var Var Var
{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { {
Index of the current point Total number of points X coordinate in the global system of axis Info string about the location of the point Interval where the current point belongs Total number of intervals Initial Fi, axis Y, in the leftmost point Initial U, axis Z, in the leftmost point Initial Fi, axis Z, in the leftmost point Initial U, axis Y, in the leftmost point Distributed load, axis Y, on the current interval Distributed load, axis Z, on the current interval Shear force, axis Y Shear force, axis Z Bending moment, axis Y Bending moment, axis Z Current Fi rotation, axis Y Current Fi rotation, axis Z Current U displacement, axis Z Current U displacement, axis Y Moment of inertia, axis Y Moment of inertia, axis Z Greatest length with respect to Z axis of a point Greatest length with respect to Y axis of a point Statical moment in the center of gravity, axis Y Statical moment in the center of gravity, axis Z Width of the overall section along the Y axis Width of the overall section along the Z axis Normal stress created by the My bending moment Tangential stress created by the Tz shear force Normal stress created by the Mz bending moment Tangential stress created by the Ty shear force Equivalent stress created by Sigma_My & Tau_Ty in 6 & 12 o'clock Equivalent stress created by Sigma_Mz & Tau_Tz in 3 & 9 o'clock
MPO_FileName I_Position X X_Information
: : : :
} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
String; Integer; Matrix_Value; String);
Function Number_Of_MPO_Records (Var MPO_Filename : String) : Integer; Function X_Do_Not_Exist_In_MPO_File (
Procedure Citeste_Date ( Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
Var X : Matrix_Value; Eps : Matrix_Value; Var MPO_FileName : String) : Boolean;
NFT_In Nume_Problema Numar_Intervale Alfa Lung_Int_Vect F_Dist_Int_Vect Young_Vect IY_Vect IZ_Vect ZMax_Vect YMax_Vect SY_Vect SZ_Vect Bz_Vect By_Vect Sigma_Adm Flag_Conditii
: : : : : : : : : : : : : : : : :
String; String; Integer; Matrix_Value; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Value; Integer;
84
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Procedure Scrie_Date
(
Var Var Var Var Var Var Var Var Var Var Var Var Var Var
X_Fi_Masurat Fi_Masurat X_U_Masurat U_Masurat X_Uz1_Masurat Uz1_Masurat X_Uz2_Masurat Uz2_Masurat Fi_Initial Uz_Initial Flag_Grafica Flag_Color Nr_Minim_Puncte Tip_Diagrame
: : : : : : : : : : : : : :
Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Str1; Str1; Integer; Integer);
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
NFT_Input Nume_Problema Numar_Intervale Alfa Lung_Int_Vect F_Dist_Int_Vect Young_Vect IY_Vect IZ_Vect ZMax_Vect YMax_Vect SY_Vect SZ_Vect Bz_Vect By_Vect Sigma_Adm Flag_Conditii X_Fi_Masurat Fi_Masurat X_U_Masurat U_Masurat X_Uz1_Masurat Uz1_Masurat X_Uz2_Masurat Uz2_Masurat Fi_Initial Uz_Initial Flag_Grafica Flag_Color Nr_Minim_Puncte Tip_Diagrame
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
String; String; Integer; Matrix_Value; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Str1; Str1; Integer; Integer);
Function File_Exists ( FileName : String): Boolean; Function Delete_File ( File_Name : String) : Boolean; Procedure ClearMouseEventsQueue; Procedure ClearKeyboardEventsQueue;
APPENDICES
Procedure Repeat_Until_KeyPressed; Function InRange( CurrentX CurrentY MinX MaxX MinY MaxY
: : : : : :
Word; Word; Word; Word; Word; Word) : Boolean;
Procedure Repeat_Until_Event ( { Out } Var Flag : Word; { Out } Var Z1 : Integer; { Out } Var Z2 : Integer; { Out } Var C1 : Char; { Out } Var C2 : Char; { Out } Var mouseEvent : MouseEventType); Implementation . . . End.
85
86
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Appendix 2.
MIPVES02 Library – Aspects regarding the code
{$N+$E+$F+$O+$G+$R+$S+$V+$Q+$X+} Unit MIPVes02; { Structura datelor din fisierul de intrare in programul MIPVES. Fisierul de intrare are extensia implicita INP si este un fisier text. Informatiile citite din fisierul de intrare. 1. Denumirea problemei 2. Numar de intervale - NINT [-] 3. Unghi de inclinare laterala Alfa [grd sexagesimale]; valorile pozitive corespund sensului trigonometric, spre babord; contine 8 caractere, din 064 in 071; 4. Informatii despre fiecare interval: 4.01 lungimea intervalului [mm], 7 caractere, din 001 in 007 4.02 forta distribuita [KN/m] sau [N/mm] conventie: p < 0 ==> este in jos p > 0 ==> este in sus contine 9 caractere, din 008 in 016 4.03 modul de elasticitate longitudinala [MPa] contine 9 caractere, din 017 in 025 4.04 moment de inertie Iy [mm^4], 19 caractere, din 026 in 044 4.05 moment de inertie Iz [mm^4], 19 caractere, din 045 in 063 4.06 distanta z_max folosita pentru definirea modulului de rezistenta Wy, contine 10 caractere, din 064 in 073 4.07 distanta y_max folosita pentru definirea modulului de rezistanta Wz, contine 10 caractere, din 074 in 083 4.08 moment static Sy [mm^3], 16 caractere, din 084 in 099 4.09 moment static Sz [mm^3], 16 caractere, din 100 in 115 4.10 latimea sectiunii in lungul axei z, bz, 09 caractere, din 116 in 124 4.11 latimea sectiunii in lugul axei y, by, 09 caractere, din 125 in 133 5. Tensiunea admisibila in MPa 6. Numar care indica modul de introducere a conditiilor la limita din care se calculeaza rotirea initiala. Astfel, * daca este 1 urmeaza doua linii care contin: 6.1 coordonata X masurata de la extremitatea din stanga a grindei nava in care se masoara rotirea, 9 caractere din 001 in 009 6.2 rotirea masurata in sectiunea de la 6.1, 20 de caractere din 010 in 029 6.3 coordonata X masurata de la extremitatea din stanga a grindei nava in care se masoara deplasarea, 9 caractere din 001 in 009 6.4 deplasarea masurata in sectiunea de la 6.3, 20 de caractere din 010 in 029 * daca este 2 urmeaza doua linii care contin: 6.5 coordonata X masurata de la extremitatea din stanga a grinzii-nava pana la sectiunea in care se masoara distanta de la o linie de referinta considerata 'de zero', sau nedeformata, pana la nivelul marii, 9 caractere din 001 in 009 6.6 valoarea acestei distante masurata in sectiunea de la 6.5, 20 de caractere din 010 in 029 * daca este 3 urmeaza o linie care contine rotirea in extremitatea din stanga (Fi1), 20 de caractere din 001 in 020 si deplasarea
APPENDICES
87
in aceeasi sectiune, 20 de caractere din 021 in 040 7. Flag care reprezinta optiunea explicita pentru grafica: 'G' ---> cu grafica (diagrame de eforturi, deformata navei) 'A' ---> automat, tip fisier de intrare, fisier de iesire 8. Flag care reprezinta tip tipul de culori folosite pentru trasarea diagramelor: 'C' ---> color; 'M' ---> monocrom. 9. Numar minim de puncte in care se calculeaza eforturile si deplasarea. In plus apar sectiunile caracteristice, sectiunile in care T=0 (M=max.), M=0, Fi=0 (Uz=max.).
} Interface Uses WinGraph, WinCrt, WinMouse, MIPVES01; Procedure Calcul (
{ Output } { Output } { Output } Procedure Raport_MPO
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
NFT_In : String; Nume_Problema : String; Numar_Intervale : Integer; Alfa : Matrix_Value; Lung_Int_Vect : Matrix_Vector; F_Dist_Int_Vect : Matrix_Vector; Young_Vect : Matrix_Vector; IY_Vect : Matrix_Vector; IZ_Vect : Matrix_Vector; ZMax_Vect : Matrix_Vector; YMax_Vect : Matrix_Vector; SY_Vect : Matrix_Vector; SZ_Vect : Matrix_Vector; Bz_Vect : Matrix_Vector; By_Vect : Matrix_Vector; Sigma_Adm : Matrix_Value; Flag_Conditii : Integer; X_Fi_Masurat : Matrix_Value; Fi_Masurat : Matrix_Value; X_U_Masurat : Matrix_Value; U_Masurat : Matrix_Value; X_Uz1_Masurat : Matrix_Value; Uz1_Masurat : Matrix_Value; X_Uz2_Masurat : Matrix_Value; Uz2_Masurat : Matrix_Value; FiY_Ini : Matrix_Value; Uz_Ini : Matrix_Value; Flag_Grafica : Str1; Flag_Color : Str1; Nr_Minim_Puncte : Integer; Data_FileName : String; Nr_Total_Puncte : Integer; Rotire_Initiala : Matrix_Value; Deplasare_Initiala : Matrix_Value);
( Var NFT_In Var Var Var Var Var Var
MPO_FileName Nume_Problema Numar_Intervale Alfa Lung_Int_Vect F_Dist_Int_Vect
: : : : : : :
String; String; String; Integer; Matrix_Value; Matrix_Vector; Matrix_Vector;
88
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
Procedure Out_FileReport (
Young_Vect : Matrix_Vector; IY_Vect : Matrix_Vector; IZ_Vect : Matrix_Vector; ZMax_Vect : Matrix_Vector; YMax_Vect : Matrix_Vector; SY_Vect : Matrix_Vector; SZ_Vect : Matrix_Vector; Bz_Vect : Matrix_Vector; By_Vect : Matrix_Vector; Sigma_Adm : Matrix_Value; Flag_Conditii : Integer; X_Fi_Masurat : Matrix_Value; Fi_Masurat : Matrix_Value; X_U_Masurat : Matrix_Value; U_Masurat : Matrix_Value; X_Uz1_Masurat : Matrix_Value; Uz1_Masurat : Matrix_Value; X_Uz2_Masurat : Matrix_Value; Uz2_Masurat : Matrix_Value; Fi_Initial : Matrix_Value; Uz_Initial : Matrix_Value; Flag_Grafica : Str1; Flag_Color : Str1; Nr_Minim_Puncte : Integer; Nr_Total_Puncte : Integer; Rotire_Initiala : Matrix_Value; Deplasare_Initiala : Matrix_Value);
Section NFT_Input MPO_DataFile
: Integer; { 0-All; 1-Input; 2-Output } : String; { Nume fisier date de intrare } : String); { Nume fisier de date }
Procedure Verificare_Echilibru (Var Numar_Intervale Var Var Var Var
Procedure Text_Problema ( Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
: : : : :
Lung_Int_Vect PZ_Vect Err MsgErr
NFT_In Nume_Problema Flag_Conditii X_Fi_Masurat Fi_Masurat X_U_Masurat U_Masurat X_Uz1_Masurat Uz1_Masurat X_Uz2_Masurat Uz2_Masurat FiY_Ini Uz_Ini Rotire_Initiala Deplasare_Initiala
: : : : : : : : : : : : : : :
Integer; Matrix_Vector; Matrix_Vector; Integer; String);
String; String; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value);
Implementation Function
H ( Var X Var A
Var . . . End; {of H}
: Matrix_Value; : Matrix_Value ) : Matrix_Value;
APPENDICES
89
Function Integrale_H ( Var Ordin : Integer; Var X : Matrix_Value; Var A : Matrix_Value ) : Matrix_Value; Var . . . End; {of Integrale_H} Procedure Marimi_Interval_Forte_Z ( Semn_Plan_Forte : Matrix_Value; Var FTaietoare_Stanga : Matrix_Value; Var Moment_Stanga : Matrix_Value; Var Rotire_Stanga : Matrix_Value; Var Sageata_Stanga : Matrix_Value; Var F_Distribuita : Matrix_Value; Var Lung_Interval : Matrix_Value; Var E_Young : Matrix_Value; Var I_Mom_Inertie : Matrix_Value; Var X : Matrix_Value; Var KErr : Integer; Var MsgErr : String; Var FTaietoare_X : Matrix_Value; Var Moment_X : Matrix_Value; Var Rotire_X : Matrix_Value; Var Sageata_X : Matrix_Value); { { { {
Pe un interval dat am marimile la capatul din stanga si calculez valorile acestor marimi intr-o sectiune data, identificata prin coordonata X, masurata la nivel de interval. Deci pentru X exista conditiile X > 0 si X < Lung_Interval
} } } }
Begin . . . End; { of Marimi_Interval_Forte_Z } Procedure Identificare_Interval ( Var Numar_Intervale : Integer; Var Lung_Int : Matrix_Vector; Var X_Global : Matrix_Value; Var Index_Interval : Integer; Var X_Global_Stanga : Matrix_Value); { { { { {
Identifica intervalul curent in functie de coordonata X masurata de la extremitatea din stanga a barei si in functie de marimile intervalelor.
Var End; { of Identificare_Interval } Procedure Calcul_Marimi ( Ecou UpLevelColor Semn_Plan_Forte Var Numar_Intervale
: : : :
Boolean; LongWord; Matrix_Value; Integer;
} } } } }
90
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Var Var Var Var Var Var Var Var Var Var Var { { { { {
Lung_Int F_Dist_Int Modul_Young Moment_Inertie Rotire_Initiala Sageata_Initiala X_Global Forta_Taietoare Moment_Incovoietor Rotire Sageata
: : : : : : : : : : :
Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value);
} Calculeaza marimile: forta taietoare, moment incovoietor, rotire } in functie de coordonata X masurata de la extremitatea din stanga } a barei. } }
Var . . . End; { of Calcul_Marimi } Procedure Conditii_Initiale_Din_Rotire_Masurata ( Semn_Plan_Forte : Matrix_Value; Var Numar_Intervale : Integer; Var Lung_Int : Matrix_Vector; Var F_Dist_Int : Matrix_Vector; Var Modul_Young : Matrix_Vector; Var Moment_Inertie : Matrix_Vector; Var X_Fi_Masurat : Matrix_Value; Var Fi_Masurat : Matrix_Value; Var X_U_Masurat : Matrix_Value; Var U_Masurat : Matrix_Value; Var Eps : Matrix_Value; Var KErr : Integer; Var Fi_Initial : Matrix_Value; Var U_Initial : Matrix_Value); { { { { { { { { {
Se considera ca in sectiunea X_FI_MASURAT, raportata in functie de extremitatea din stanga a barei, se masoara rotirea FI_MASURAT. De exemplu, se identifica sectiunea in care rotirea este nula folosind o nivela cu apa. Procedura calculeaza rotirea initiala FI_INITIAL folosind metoda injumatatirii intervalului. EPS reprezinta precizia cu care se obtine solutia.
Var . . . End; { of Conditii_Initiale_Din_Rotire_Masurata } Procedure Conditii_Initiale_Din_Nivele_Masurate ( Semn_Plan_Forte : Matrix_Value; Var Numar_Intervale : Integer; Var Lung_Int : Matrix_Vector; Var F_Dist_Int : Matrix_Vector; Var Modul_Young : Matrix_Vector; Var Moment_Inertie : Matrix_Vector; Var X_Nivel1_Masurat : Matrix_Value;
} } } } } } } } }
APPENDICES
Var Var Var Var Var Var Var { { { { { { { { { { {
Nivel1 X_Nivel2_Masurat Nivel2 Eps KErr Fi_Initial U_Initial
: : : : : : :
91
Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Integer; Matrix_Value; Matrix_Value);
Se considera ca se masoara doua nivele: NIVEL1 si NIVEL2 in doua sectiuni X_NIVEL1_MASURAT, respectiv X_NIVEL2_MASURAT. De exemplu, se masoara distanta de la nivelul apei marii pana la doua repere care initial erau orizontale. Diferenta dintre aceste nivele reprezinta sageata rezultata ca efect al rotirii initiale, deoarece prin diferenta se anuleaza efectul sagetii initiale. Procedura calculeaza rotirea initiala FI_INITIAL folosind metoda injumatatirii intervalului. EPS reprezinta precizia cu care se obtine solutia.
} } } } } } } } } } }
Var . . . End; { of Conditii_Initiale_Din_Nivele_Masurate } Procedure Identificare_Sectiuni_T_Nul ( Semn_Plan_Forte : Matrix_Value; Var Numar_Intervale : Integer; Var Lung_Int : Matrix_Vector; Var F_Dist_Int : Matrix_Vector; Var Modul_Young : Matrix_Vector; Var Moment_Inertie : Matrix_Vector; Var Rotire_Initiala : Matrix_Value; Var Sageata_Initiala : Matrix_Value; Var Eps : Matrix_Value; Var Numar_Sectiuni_T_Nul : Integer; Var X_Sectiuni_T_Nul : Matrix_Vector; Var Moment_Maxim_Sectiuni : Matrix_Vector); { { { { { { { { { { { { { { { { { { { {
} Identifica sectiunile in care se anuleaza forta taietoare si } calculeaza momentele extreme corespunzatoare. } Procedura se apeleaza cand se doreste identificarea sectiunilor } semnificative dintr-o grinda nava: } 1. sectiunile in care se anuleaza forta taietoare; } 2. sectiunile in care se anuleaza momentul incovoietor; } 3. sectiunile in care se anuleaza rotirea; } 4. sectiunile in care se anuleaza sageata. } Calculul marimilor Tz, My, Fi_y, W_z este dezvoltat intr-o serie de } puncte printre care se afla si sectiunile specificate anterior. } Aceste valori pot fi folosite pentru diferite studii, trasari de } diagrame diverse, etc. } } Date de iesire: } Numar_Sectiuni_T_Nul - numar de sectiuni in care Tz = 0 } X_Sectiuni_T_Nul - coordonata X in care Tz = 0, masurata de la } extremitatea din stanga a grinzii-nava } Moment_Maxim_Sectiuni- valorile momentului My in sectiunile Tz = 0 } }
Var . . . End; { of Identificare_Sectiuni_T_Nul }
92
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Procedure Identificare_Sectiuni_M_Nul ( Semn_Plan_Forte : Matrix_Value; Var Numar_Intervale : Integer; Var Lung_Int : Matrix_Vector; Var F_Dist_Int : Matrix_Vector; Var Modul_Young : Matrix_Vector; Var Moment_Inertie : Matrix_Vector; Var Rotire_Initiala : Matrix_Value; Var Sageata_Initiala : Matrix_Value; Var Eps : Matrix_Value; Var Numar_Sectiuni_M_Nul : Integer; Var X_Sectiuni_M_Nul : Matrix_Vector; Var Rotire_Maxima_Sectiuni : Matrix_Vector); { { { { { { { { { { { { { { { { { { { {
} } } } } } } } } } } } } } Date de iesire: } Numar_Sectiuni_M_Nul - numar de sectiuni in care My = 0 } X_Sectiuni_M_Nul - coordonata X in care My = 0, masurata de } la extremitatea din stanga a grinzii-nava } Rotire_Maxima_Sectiuni - valorile rotirii in sectiunile My = 0 } } Identifica sectiunile in care se anuleaza momentul incovoietor si calculeaza rotirea extrema corespunzatoare. Procedura se apeleaza cand se doreste identificarea sectiunilor semnificative dintr-o grinda nava: 1. sectiunile in care se anuleaza forta taietoare; 2. sectiunile in care se anuleaza momentul incovoietor; 3. sectiunile in care se anuleaza rotirea; 4. sectiunile in care se anuleaza sageata. Calculul marimilor Tz, My, Fi_y, W_z este dezvoltat intr-o serie de puncte printre care se afla si sectiunile specificate anterior. Aceste valori pot fi folosite pentru diferite studii, trasari de diagrame diverse, etc.
Var . . . End; { of Identificare_Sectiuni_M_Nul } Procedure Identificare_Sectiuni_Rot_Nul ( Semn_Plan_Forte : Matrix_Value; Var Numar_Intervale : Integer; Var Lung_Int : Matrix_Vector; Var F_Dist_Int : Matrix_Vector; Var Modul_Young : Matrix_Vector; Var Moment_Inertie : Matrix_Vector; Var Rotire_Initiala : Matrix_Value; Var Sageata_Initiala : Matrix_Value; Var Eps : Matrix_Value; Var Numar_Sectiuni_Rot_Nul : Integer; Var X_Sectiuni_Rot_Nul : Matrix_Vector; Var Sageata_Maxima_Sectiuni : Matrix_Vector); { { { { { { {
Identifica sectiunile in care se anuleaza rotirea si calculeaza sageata extrema corespunzatoare. Procedura se apeleaza cand se doreste identificarea sectiunilor semnificative dintr-o grinda nava: 1. sectiunile in care se anuleaza forta taietoare; 2. sectiunile in care se anuleaza momentul incovoietor;
} } } } } } }
APPENDICES
{ { { { { { { { { { { { {
93
3. sectiunile in care se anuleaza rotirea; 4. sectiunile in care se anuleaza sageata. Calculul marimilor Tz, My, Fi_y, W_z este dezvoltat intr-o serie de puncte printre care se afla si sectiunile specificate anterior. Aceste valori pot fi folosite pentru diferite studii, trasari de diagrame diverse, etc.
} } } } } } } Date de iesire: } Numar_Sectiuni_M_Nul - numar de sectiuni in care My = 0 } X_Sectiuni_M_Nul - coordonata X in care My = 0, masurata de } la extremitatea din stanga a grinzii-nava } Rotire_Maxima_Sectiuni - valorile rotirii in sectiunile My = 0 } }
Var . . . End; { of Identificare_Sectiuni_Rot_Nul } Procedure Identificare_Sectiuni_Sag_Nul ( Semn_Plan_Forte : Matrix_Value; Var Numar_Intervale : Integer; Var Lung_Int : Matrix_Vector; Var F_Dist_Int : Matrix_Vector; Var Modul_Young : Matrix_Vector; Var Moment_Inertie : Matrix_Vector; Var Rotire_Initiala : Matrix_Value; Var Sageata_Initiala : Matrix_Value; Var Eps : Matrix_Value; Var Numar_Sectiuni_Sag_Nul : Integer; Var X_Sectiuni_Sag_Nul : Matrix_Vector); { { { { { { { { { { { { { { { { { {
} } } } } } } } } } } } } Date de iesire: } Numar_Sectiuni_Sag_Nul - numar de sectiuni in care Wz = 0 } X_Sectiuni_Sag_Nul - coordonata X in care Wz = 0, masurata de } la extremitatea din stanga a grinzii-nava } } Identifica sectiunile in care se anuleaza sageata. Procedura se apeleaza cand se doreste identificarea sectiunilor semnificative dintr-o grinda nava: 1. sectiunile in care se anuleaza forta taietoare; 2. sectiunile in care se anuleaza momentul incovoietor; 3. sectiunile in care se anuleaza rotirea; 4. sectiunile in care se anuleaza sageata. Calculul marimilor Tz, My, Fi_y, W_z este dezvoltat intr-o serie de puncte printre care se afla si sectiunile specificate anterior. Aceste valori pot fi folosite pentru diferite studii, trasari de diagrame diverse, etc.
Var . . . End; { of Identificare_Sectiuni_Sag_Nul } Procedure Raport_MPO ( Var NFT_In Var MPO_FileName Var Nume_Problema Var Numar_Intervale Var Alfa Var Lung_Int_Vect Var F_Dist_Int_Vect
: : : : : : :
String; String; String; Integer; Matrix_Value; Matrix_Vector; Matrix_Vector;
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
94
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
Young_Vect : Matrix_Vector; IY_Vect : Matrix_Vector; IZ_Vect : Matrix_Vector; ZMax_Vect : Matrix_Vector; YMax_Vect : Matrix_Vector; SY_Vect : Matrix_Vector; SZ_Vect : Matrix_Vector; Bz_Vect : Matrix_Vector; By_Vect : Matrix_Vector; Sigma_Adm : Matrix_Value; Flag_Conditii : Integer; X_Fi_Masurat : Matrix_Value; Fi_Masurat : Matrix_Value; X_U_Masurat : Matrix_Value; U_Masurat : Matrix_Value; X_Uz1_Masurat : Matrix_Value; Uz1_Masurat : Matrix_Value; X_Uz2_Masurat : Matrix_Value; Uz2_Masurat : Matrix_Value; Fi_Initial : Matrix_Value; Uz_Initial : Matrix_Value; Flag_Grafica : Str1; Flag_Color : Str1; Nr_Minim_Puncte : Integer; Nr_Total_Puncte : Integer; Rotire_Initiala : Matrix_Value; Deplasare_Initiala : Matrix_Value);
Var FT_Rap I_Section, I, L Rep_FileName Zero_Nr_Total_Puncte Zero_SX_Info, Zero_Overall_Info Zero_SX_Vector, S_Info_Vect Zero_Index_Interval, Zero_Numar_Intervale Zero_FiY_Ini, Zero_UZ_Ini, Zero_FiZ_Ini, Zero_UY_Ini Zero_PY_DL, Zero_PZ_DL Zero_Ty, Zero_Tz, Zero_MY, Zero_MZ Zero_FiY, Zero_FiZ, Zero_UZ, Zero_UY Zero_IY, Zero_IZ, Zero_ZMax, Zero_YMax Zero_SY, Zero_SZ, Zero_BY, Zero_BZ Zero_Sig_My, Zero_Tau_Tz, Zero_Sig_Mz, Zero_Tau_Ty Zero_Sig_Ech_1, Zero_Sig_Ech_2, Zero_X_Global
: : : : : : : : : : : : : : :
Text; Integer; String; Integer; String; String; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value;
Begin { Stabilesc denumirea fisierului text de iesire } L:=Pos('.',NFT_In)-1; Rep_FileName:=Copy(NFT_In,1,L)+'.REP'; { Deschid un fisier text care contine explicarea datelor de intrare } Assign (FT_Rap,Rep_FileName); ReWrite(FT_Rap); { Initializez contorul de sectiuni de date din program } I_Section:=0; WriteLn(FT_Rap,''); WriteLn(FT_Rap,' DETERMINAREA FORMEI DEFORMATE A STRUCTURILOR DE TIP GRINDA-NAVA PRIN M.P.O.'); WriteLn(FT_Rap,' ==========================================================================='); WriteLn(FT_Rap,''); WriteLn(FT_Rap,'DATE DE INTRARE'); WriteLn(FT_Rap,'---------------');
APPENDICES
95
WriteLn(FT_Rap,''); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Nume fisier de intrare: "',NFT_In,'"'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Nume problema: "',Nume_Problema,'"'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Numar de intervale: ',Numar_Intervale:2); Inc(I_Section); Write (FT_Rap,I_Section:2,'. Unghi inclinare a sectiunii transversale: ',Alfa:8:4); If (Alfa > 0) Then WriteLn(FT_Rap,' (spre babord, sens trigonometric)') Else If (Alfa < 0) Then WriteLn(FT_Rap,' (spre tribord, sens orar)') Else WriteLn(FT_Rap,''); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Date despre intervalele de calcul'); For I:=1 To Numar_Intervale Do Begin WriteLn(FT_Rap,' Interval ',I:2); WriteLn(FT_Rap,' a) Lungime interval: ',Lung_Int_Vect[I] :11:03,' mm'); WriteLn(FT_Rap,' b) Forta distribuita: ',F_Dist_Int_Vect[I]:08:03,' N/mm'); WriteLn(FT_Rap,' c) Modulul lui Young: ',Young_Vect[I]:09:03,' MPa'); WriteLn(FT_Rap,' d) Moment de inertie axial IY: ',(IY_Vect[I]/1e8):09:03,' 10^8 mm^4'); WriteLn(FT_Rap,' e) Moment de inertie axial IZ: ',(IZ_Vect[I]/1e8):09:03,' 10^8 mm^4'); WriteLn(FT_Rap,' f) Distanta Z_Max: ',ZMax_Vect[I]:09:03,' mm (Wy=Iy/Z_Max)'); WriteLn(FT_Rap,' g) Distanta Y_Max: ',YMax_Vect[I]:09:03,' mm (Wz=Iz/Y_Max)'); WriteLn(FT_Rap,' h) Moment static SY: ',(SY_Vect[I]/1e6):09:03,' 10^6 mm^3'); WriteLn(FT_Rap,' i) Moment static SZ: ',(SZ_Vect[I]/1e6):09:03,' 10^6 mm^3'); WriteLn(FT_Rap,' j) Distanta BZ: ',Bz_Vect[I]:09:03,' mm'); WriteLn(FT_Rap,' k) Distanta BY: ',By_Vect[I]:09:03,' mm'); End; Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Sigma admisibil: ',Sigma_Adm:7:3,' MPa'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Flag conditii la limita: ',Flag_Conditii:1); WriteLn(FT_Rap,' In functie de valoarea acestui flag urmeaza o succesiune de linii, dupa'); WriteLn(FT_Rap,' cum urmeaza:'); WriteLn(FT_Rap,' Flag=1 => 1-1. Coordonata X a sectiunii in care se da valoarea rotirii FI'); WriteLn(FT_Rap,' 1-2. Valoarea rotirii FI'); WriteLn(FT_Rap,' 2-3. Coordonata X a sectiunii in care se da valoarea deplasarii U'); WriteLn(FT_Rap,' 2-4. Valoarea deplasarii U'); WriteLn(FT_Rap,' Flag=2 => 1-1. Coordonata X a sectiunii in care se da valoarea deplasarii UZa'); WriteLn(FT_Rap,' 1-2. Valoarea deplasarii UZa'); WriteLn(FT_Rap,' 2-3. Coordonata X a sectiunii in care se da valoarea deplasarii UZb'); WriteLn(FT_Rap,' 2-4. Valoarea deplasarii UZb'); WriteLn(FT_Rap,' Flag=3 => 1-1. Rotirea FI1 in sectiunea de la extremitatea din stanga'); WriteLn(FT_Rap,' 1-2. Deplasarea Uz1 in sectiunea de la extremitatea din stanga'); WriteLn(FT_Rap,' In acest caz (Flag conditii = ',Flag_Conditii:1,')'); If (Flag_Conditii = 1) Then Begin WriteLn(FT_Rap,' X_FI=',X_Fi_Masurat:09:03,' mm, FI=',Fi_Masurat:20:15,' [-]'); WriteLn(FT_Rap,' X_U =',X_U_Masurat :09:03,' mm, U=', U_Masurat :20:15,' mm'); End; If (Flag_Conditii = 2) Then Begin WriteLn(FT_Rap,' X_UZ_a=',X_Uz1_Masurat:09:03,' mm, UZ_a=',Uz1_Masurat:20:15,' mm'); WriteLn(FT_Rap,' X_UZ_b=',X_Uz2_Masurat:09:03,' mm, UZ_b=',Uz2_Masurat:20:15,' mm'); End; If (Flag_Conditii = 3) Then
96
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Begin WriteLn(FT_Rap,' FI_1=',FI_Initial:20:15,' [-], UZ_1=',UZ_Initial:20:15,' mm'); End; Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Flag rulare automatica sau cu reprezentare grafica: "',Flag_Grafica,'"'); WriteLn(FT_Rap,' "A" --> rulare in mod automat (Fisier INP --> Program --> Fisier OUT)'); WriteLn(FT_Rap,' "G" --> rulare in mod grafic;'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Flag mod de prezentare grafica, color sau monocrom: "',Flag_Color,'"'); WriteLn(FT_Rap,' "C" --> sunt folosite culori'); WriteLn(FT_Rap,' "M" --> sunt folosite nuante de gri, alb si negru'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Numar minim de puncte in folosite pentru trasarea de diagrame: ',Nr_Minim_Puncte:4); WriteLn(FT_Rap,''); WriteLn(FT_Rap,''); WriteLn(FT_Rap,'DATE DE IESIRE '); WriteLn(FT_Rap,'--------------'); WriteLn(FT_Rap,''); WriteLn(FT_Rap,' Rotire initiala = ',(Rotire_Initiala*1e4):9:4,' * 10^4 [-]'); WriteLn(FT_Rap,' Deplasare initiala = ',Deplasare_Initiala:13:6,' mm'); WriteLn(FT_Rap,''); For I:=1 To Nr_Total_Puncte Do Begin Extragere_Informatii_Din_Fisier_De_Date ( MPO_FileName, I, Zero_Nr_Total_Puncte, Zero_X_Global, Zero_SX_Vector, Zero_Index_Interval, Zero_Numar_Intervale, Zero_FiY_Ini, Zero_UZ_Ini, Zero_FiZ_Ini, Zero_UY_Ini, Zero_PY_DL, Zero_PZ_DL, Zero_Ty, Zero_Tz, Zero_MY, Zero_MZ, Zero_FiY, Zero_FiZ, Zero_UZ, Zero_UY, Zero_IY, Zero_IZ, Zero_ZMax, Zero_YMax, Zero_SY, Zero_SZ, Zero_BY, Zero_BZ, Zero_Sig_My, Zero_Tau_Tz, Zero_Sig_Mz, Zero_Tau_Ty, Zero_Sig_Ech_1, Zero_Sig_Ech_2, S_Info_Vect);
{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { {
Index of the current point Total number of points X coordinate in the global system of axis Info string about the location of the point Interval where the current point belongs Total number of intervals Initial Fi, axis Y, in the leftmost point Initial U, axis Z, in the leftmost point Initial Fi, axis Z, in the leftmost point Initial U, axis Y, in the leftmost point Distributed load, axis Y, on the current interval Distributed load, axis Z, on the current interval Shear force, axis Y Shear force, axis Z Bending moment, axis Y Bending moment, axis Z Current Fi rotation, axis Y Current Fi rotation, axis Z Current U displacement, axis Z Current U displacement, axis Y Moment of inertia, axis Y Moment of inertia, axis Z Greatest length with respect to Z axis of a point Greatest length with respect to Y axis of a point Statical moment in the center of gravity, axis Y Statical moment in the center of gravity, axis Z Width of the overall section along the Y axis Width of the overall section along the Z axis Normal stress created by the My bending moment Tangential stress created by the Tz shear force Normal stress created by the Mz bending moment Tangential stress created by the Ty shear force Equivalent stress created by Sigma_My & Tau_Ty in 6 & 12 o'clock Equivalent stress created by Sigma_Mz & Tau_Tz in 3 & 9 o'clock
WriteLn(FT_Rap,S_Info_Vect); End;
WriteLn(FT_Rap,''); Close(FT_Rap); End; { of Raport_MPO }
} } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
APPENDICES
Procedure Raport_Date_De_Intrare ( Var NFT_In : String; Var Nume_Problema : String; Var Numar_Intervale : Integer; Var Alfa : Matrix_Value; Var Lung_Int_Vect : Matrix_Vector; Var F_Dist_Int_Vect : Matrix_Vector; Var Young_Vect : Matrix_Vector; Var IY_Vect : Matrix_Vector; Var IZ_Vect : Matrix_Vector; Var ZMax_Vect : Matrix_Vector; Var YMax_Vect : Matrix_Vector; Var SY_Vect : Matrix_Vector; Var SZ_Vect : Matrix_Vector; Var Bz_Vect : Matrix_Vector; Var By_Vect : Matrix_Vector; Var Sigma_Adm : Matrix_Value; Var Flag_Conditii : Integer; Var X_Fi_Masurat : Matrix_Value; Var Fi_Masurat : Matrix_Value; Var X_U_Masurat : Matrix_Value; Var U_Masurat : Matrix_Value; Var X_Uz1_Masurat : Matrix_Value; Var Uz1_Masurat : Matrix_Value; Var X_Uz2_Masurat : Matrix_Value; Var Uz2_Masurat : Matrix_Value; Var Fi_Initial : Matrix_Value; Var Uz_Initial : Matrix_Value; Var Flag_Grafica : Str1; Var Flag_Color : Str1; Var Nr_Minim_Puncte : Integer); Var FT_Rap I_Section, I Begin
97
: Text; : Integer;
{ Deschid un fisier text care contine explicarea datelor de intrare } Assign (FT_Rap,'MIPV_INP.DTA'); ReWrite(FT_Rap); { Initializez contorul de sectiuni de date din program } I_Section:=0; WriteLn(FT_Rap,''); WriteLn(FT_Rap,' Imagine fisier de intrare in MPO pentru structuri tip grinda-nava'); WriteLn(FT_Rap,' ================================================================='); WriteLn(FT_Rap,''); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Nume fisier de intrare: "',NFT_In,'"'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Nume problema: "',Nume_Problema,'"'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Numar de intervale: ',Numar_Intervale:2); Inc(I_Section); Write (FT_Rap,I_Section:2,'. Unghi inclinare a sectiunii transversale: ',Alfa:8:4); If (Alfa > 0) Then WriteLn(FT_Rap,' (spre babord, sens trigonometric)') Else If (Alfa < 0) Then WriteLn(FT_Rap,' (spre tribord, sens orar)') Else WriteLn(FT_Rap,''); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Date despre intervalele de calcul'); For I:=1 To Numar_Intervale Do Begin WriteLn(FT_Rap,' Interval ',I:2); WriteLn(FT_Rap,' a) Lungime interval: ',Lung_Int_Vect[I] :11:03,' mm'); WriteLn(FT_Rap,' b) Forta distribuita: ',F_Dist_Int_Vect[I]:08:03,' N/mm'); WriteLn(FT_Rap,' c) Modulul lui Young: ',Young_Vect[I]:09:03,' MPa'); WriteLn(FT_Rap,' d) Moment de inertie axial IY: ',(IY_Vect[I]/1e8):09:03,' 10^8 mm^4');
98
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES WriteLn(FT_Rap,' e) Moment de inertie axial IZ: ',(IZ_Vect[I]/1e8):09:03,' 10^8 mm^4'); WriteLn(FT_Rap,' f) Distanta Z_Max: ',ZMax_Vect[I]:09:03,' mm (Wy=Iy/Z_Max)'); WriteLn(FT_Rap,' g) Distanta Y_Max: ',YMax_Vect[I]:09:03,' mm (Wz=Iz/Y_Max)'); WriteLn(FT_Rap,' h) Moment static SY: ',(SY_Vect[I]/1e6):09:03,' 10^6 mm^3'); WriteLn(FT_Rap,' i) Moment static SZ: ',(SZ_Vect[I]/1e6):09:03,' 10^6 mm^3'); WriteLn(FT_Rap,' j) Distanta BZ: ',Bz_Vect[I]:09:03,' mm'); WriteLn(FT_Rap,' k) Distanta BY: ',By_Vect[I]:09:03,' mm'); End; Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Sigma admisibil: ',Sigma_Adm:7:3,' MPa'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Flag conditii la limita: ',Flag_Conditii:1); WriteLn(FT_Rap,' In functie de valoarea acestui flag urmeaza o succesiune de linii, dupa'); WriteLn(FT_Rap,' cum urmeaza:'); WriteLn(FT_Rap,' Flag=1 => 1-1. Coordonata X a sectiunii in care se da valoarea rotirii FI'); WriteLn(FT_Rap,' 1-2. Valoarea rotirii FI'); WriteLn(FT_Rap,' 2-3. Coordonata X a sectiunii in care se da valoarea deplasarii U'); WriteLn(FT_Rap,' 2-4. Valoarea deplasarii U'); WriteLn(FT_Rap,' Flag=2 => 1-1. Coordonata X a sectiunii in care se da valoarea deplasarii UZa'); WriteLn(FT_Rap,' 1-2. Valoarea deplasarii UZa'); WriteLn(FT_Rap,' 2-3. Coordonata X a sectiunii in care se da valoarea deplasarii UZb'); WriteLn(FT_Rap,' 2-4. Valoarea deplasarii UZb'); WriteLn(FT_Rap,' Flag=3 => 1-1. Rotirea FI1 in sectiunea de la extremitatea din stanga'); WriteLn(FT_Rap,' 1-2. Deplasarea Uz1 in sectiunea de la extremitatea din stanga'); WriteLn(FT_Rap,' In acest caz (Flag conditii = ',Flag_Conditii:1,')'); If (Flag_Conditii = 1) Then Begin WriteLn(FT_Rap,' X_FI=',X_Fi_Masurat:09:03,' mm, FI=',Fi_Masurat:20:15,' [-]'); WriteLn(FT_Rap,' X_U =',X_U_Masurat :09:03,' mm, U=', U_Masurat :20:15,' mm'); End; If (Flag_Conditii = 2) Then Begin WriteLn(FT_Rap,' X_UZ_a=',X_Uz1_Masurat:09:03,' mm, UZ_a=',Uz1_Masurat:20:15,' mm'); WriteLn(FT_Rap,' X_UZ_b=',X_Uz2_Masurat:09:03,' mm, UZ_b=',Uz2_Masurat:20:15,' mm'); End; If (Flag_Conditii = 3) Then Begin WriteLn(FT_Rap,' FI_1=',FI_Initial:20:15,' [-], UZ_1=',UZ_Initial:20:15,' mm'); End; Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Flag rulare automatica sau cu reprezentare grafica: "',Flag_Grafica,'"'); WriteLn(FT_Rap,' "A" --> rulare in mod automat (Fisier INP --> Program --> Fisier OUT)'); WriteLn(FT_Rap,' "G" --> rulare in mod grafic;'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Flag mod de prezentare grafica, color sau monocrom: "',Flag_Color,'"'); WriteLn(FT_Rap,' "C" --> sunt folosite culori'); WriteLn(FT_Rap,' "M" --> sunt folosite nuante de gri, alb si negru'); Inc(I_Section); WriteLn(FT_Rap,I_Section:2,'. Numar minim de puncte in folosite pentru trasarea de diagrame: ',Nr_Minim_Puncte:4); WriteLn(FT_Rap,''); WriteLn(FT_Rap,''); Close(FT_Rap);
End; { of Raport_Date_De_Intrare } Procedure Var Var Var Var Var Var . . . End; { of
Separare_in_Plane_de_Lucru ( Numar_Intervale : Integer; Alfa : Matrix_Value; F_Dist_Int_Vect : Matrix_Vector; PZ_Vect : Matrix_Vector; PY_Vect : Matrix_Vector); Separare_in_Plane_de_Lucru }
Procedure Determinare_Fi1_U1 ( Semn_Plan_Forte Eps Var NFT_In Var Nume_Problema Var Numar_Intervale Var Alfa
: : : : : :
Matrix_Value; Matrix_Value; String; String; Integer; Matrix_Value;
APPENDICES
{ OutPut } { Output } { Output }
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
Lung_Int_Vect PZ_Vect PY_Vect Young_Vect IY_Vect IZ_Vect ZMax_Vect YMax_Vect SY_Vect SZ_Vect Bz_Vect By_Vect Sigma_Adm Flag_Conditii X_Fi_Masurat Fi_Masurat X_U_Masurat U_Masurat X_Uz1_Masurat Uz1_Masurat X_Uz2_Masurat Uz2_Masurat FiY_Initial Uz_Initial Flag_Grafica Flag_Color KErr Fi_Stg_Initial U_Stg_Initial
: : : : : : : : : : : : : : : : : : : : : : : : : : : : :
99 Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Str1; Str1; Integer; Matrix_Value; Matrix_Value);
Var . . . End; { of Determinare_Fi1_U1 } Procedure Out_FileReport ( Section : Integer; { 0-All; 1-Input; 2-Output } NFT_Input : String; { Nume fisier date de intrare } MPO_DataFile : String); { Nume fisier de date } Var . . . End; { of Out_FileReport } Procedure Verificare_Echilibru ( Var Numar_Intervale : Integer; Var Lung_Int_Vect : Matrix_Vector; Var PZ_Vect : Matrix_Vector; Var Err : Integer; Var MsgErr : String); Var . . . End; { of Verificare_Echilibru } Procedure Puncte_De_Calcul ( Eps : Matrix_Value; Var Rotire_Initiala : Matrix_Value; Var Deplasare_Initiala : Matrix_Value; Var Numar_Intervale : Integer;
100
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
{ Output } { Output }
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
Alfa Lung_Int_Vect PZ_Vect PY_Vect Young_Vect IY_Vect IZ_Vect ZMax_Vect YMax_Vect SY_Vect SZ_Vect Bz_Vect By_Vect Sigma_Adm Flag_Conditii X_Fi_Masurat Fi_Masurat X_U_Masurat U_Masurat X_Uz1_Masurat Uz1_Masurat X_Uz2_Masurat Uz2_Masurat Fi_Initial Uz_Initial Flag_Grafica Flag_Color Nr_Minim_Puncte Nr_Total_Puncte MPO_FileName
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Matrix_Value; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Vector; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Str1; Str1; Integer; Integer; String);
Var . . . End; { of Puncte_De_Calcul } Function Sigma_Navier ( Var Moment_Incovoietor : Matrix_Value; Var Moment_de_Inertie : Matrix_Value; Var Coordonata : Matrix_Value) : Matrix_Value; Begin Sigma_Navier:=Moment_Incovoietor/Moment_de_Inertie*Coordonata; End; { of Sigma_Navier } Function Var Var Var Var Begin
Tau_Juravschi ( Forta_Taietoare Moment_de_Inertie Moment_Static Latime_Sectiune
: : : :
Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value) : Matrix_Value;
Tau_Juravschi:=Forta_Taietoare/Moment_de_Inertie*Moment_Static/Latime_Sectiune;
End; { of Tau_Juravschi } Function Var Var Var Var
Sigma_Echivalent ( Teorie_de_rezistenta Sigma Tau Sigma_Echivalent_Var
: : : :
Integer; Matrix_Value; Matrix_Value; Matrix_Value) : Matrix_Value;
APPENDICES
Begin Case Teorie_de_rezistenta Of 1 : Begin Sigma_Echivalent:=0.50*Sigma+0.50*SQRT(Sigma*Sigma+4.0*Tau*Tau);
End; 2 : Begin Sigma_Echivalent:=0.35*Sigma+0.65*SQRT(Sigma*Sigma+4.0*Tau*Tau);
End; 3 : Begin Sigma_Echivalent:=SQRT(Sigma*Sigma+4.0*Tau*Tau); End; 4 : Begin Sigma_Echivalent:=SQRT(Sigma*Sigma+2.6*Tau*Tau); End; 5 : Begin Sigma_Echivalent:=SQRT(Sigma*Sigma+3.0*Tau*Tau); End; End; Sigma_Echivalent_Var:=Sigma_Echivalent; End; { of Sigma_Echivalent } Procedure Calcul (
{ Output } { Output } { Output } Var
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
NFT_In : String; Nume_Problema : String; Numar_Intervale : Integer; Alfa : Matrix_Value; Lung_Int_Vect : Matrix_Vector; F_Dist_Int_Vect : Matrix_Vector; Young_Vect : Matrix_Vector; IY_Vect : Matrix_Vector; IZ_Vect : Matrix_Vector; ZMax_Vect : Matrix_Vector; YMax_Vect : Matrix_Vector; SY_Vect : Matrix_Vector; SZ_Vect : Matrix_Vector; Bz_Vect : Matrix_Vector; By_Vect : Matrix_Vector; Sigma_Adm : Matrix_Value; Flag_Conditii : Integer; X_Fi_Masurat : Matrix_Value; Fi_Masurat : Matrix_Value; X_U_Masurat : Matrix_Value; U_Masurat : Matrix_Value; X_Uz1_Masurat : Matrix_Value; Uz1_Masurat : Matrix_Value; X_Uz2_Masurat : Matrix_Value; Uz2_Masurat : Matrix_Value; FiY_Ini : Matrix_Value; Uz_Ini : Matrix_Value; Flag_Grafica : Str1; Flag_Color : Str1; Nr_Minim_Puncte : Integer; Data_FileName : String; Nr_Total_Puncte : Integer; Rotire_Initiala : Matrix_Value; Deplasare_Initiala : Matrix_Value);
101
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES 102 . . . End; { of Calcul }
Procedure Text_Problema ( Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var . . . End; { of Text_Problema } . . . End.
NFT_In Nume_Problema Flag_Conditii X_Fi_Masurat Fi_Masurat X_U_Masurat U_Masurat X_Uz1_Masurat Uz1_Masurat X_Uz2_Masurat Uz2_Masurat FiY_Ini Uz_Ini Rotire_Initiala Deplasare_Initiala
: : : : : : : : : : : : : : :
String; String; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value);
APPENDICES
Appendix 3.
103
MIPVES03 Library – Aspects regarding the code
{$N+$E+$F+$O+$G+$R+$S+$V+$Q+$X+} Unit MIPVes03; { Library of procedures and functions dedicated to the solve the graphical problems related to this problem like: ● user graphics interface, ● presentation of the free body diagrams, ● presentation of the results, ● help, etc. } Interface Uses WinGraph, WinCrt, WinMouse, MIPVES01; Type Colors_Vector = Array [1..Dim] Of LongWord; Procedure Play_Display_Diagrams (Var Var Var Var Var Var Var Var Var
Flag_Color Tip_Diagrame NFT_Input MPO_FileName Initial_Displacement Admissible_Stress Numar_Intervale Lung_Int_Vect F_Dist_Int_Vect
: : : : : : : : :
Str1; Integer; String; String; Matrix_Value; Matrix_Value; Integer; Matrix_Vector; Matrix_Vector);
Procedure InstallSystemFont ( fontName : String; fontSize : Integer); Procedure Initializeaza_Mod_Grafic ( HorizontalPixels : Integer; VerticalPixels : Integer); Function InputTextXY XScreen YScreen InpMsg OutTextLength
( : : : :
Integer; Integer; String; Integer) : String;
Procedure SaveScreen2Bmp (BMP_FileName : String); Procedure Load_BMP_and_Display ( BMP_FileName : String; X_Screen : Integer; Y_Screen : Integer); Function Select_Color ( Flag_Foreground_Color Initial_Color Background_Color X_Stg_Sus Y_Stg_Sus Latura Titlu
: : : : : : :
Boolean; LongWord; LongWord; Integer; Integer; Integer; String;
104
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Mesaj_Culoare_Veche : String; Mesaj_Culoare_Noua : String) : LongWord;
Procedure Caracter_Incercuit ( X_Centru Y_Centru Raza FontName FontDirection FontSize BackGroundColor FontColor Caracter Procedure Draw_Arrow (
X_Peak Y_Peak UpWard Current_Value Overall_Ratio Arrow_Color Var Y_Extremitate
Procedure Draw_Aligned_Buttons Align_Type X_Left Y_Left Button_Height Button_Width X_Offset Y_Offset No_of_Buttons Flag_Text_In_Buttons Culoare Var X_Left_Vector Var Y_Left_Vector Var return_flag_Vector Var Z1_Vector Var Z2_Vector
( : : : : : : : : : : : : : : :
: : : : : : :
: : : : : : : : :
Integer; Integer; Word; Word; Word; Word; LongWord; LongWord; Str1);
Integer; Integer; Boolean; Matrix_Value; Matrix_Value; LongWord; Integer);
Char; Integer; Integer; Integer; Integer; Integer; Integer; Integer; Integer; LongWord; Integer_Vector; Integer_Vector; Word_Vector; Integer_Vector; Integer_Vector);
Implementation Function Semn_Marime ( Marime : Matrix_Value) : Integer; Var . . . End; { of Semn_Marime } Function Load_Initial_Color (Var Interval : Integer; Var Load : Matrix_Value) : LongWord; Var . . . End; { of Load_Initial_Color } Function Stress_Color
(
Tip_Scalare
Var Current_Stress Var Admissible_Stress Var Minimum_Stress
: : : :
Integer; Matrix_Value; Matrix_Value; Matrix_Value;
Var
APPENDICES 105 Maximum_Stress : Matrix_Value; Number_Of_Intervals : Integer) : LongWord;
Type Set_Culori = Array [1..10] Of LongWord; Var Flag_Ciclare_Stress_Color : I_Color_Index : Stress_Increment, Stress_Scale, Low, High, Stress : Culoare :
Char; Integer; Matrix_Value; Set_Culori;
Begin { Verification if Number_Of_Intervals is in a valid range of values } . . . End; { of Stress_Color } Procedure Display_Range_Of_Stresses (
X_Left_StressesRange : Integer; Y_Left_StressesRange : Integer; Color_StressesRange
: LongWord;
BackGround_Color
: LongWord;
Number_Of_Intervals
: Integer;
Tip_Scalare_Tensiuni : Integer; Minimum_Stress
: Matrix_Value;
Maximum_Stress
: Matrix_Value;
Admissible_Stress
: Matrix_Value);
Var . . . End; { of Display_Range_Of_Stresses } Procedure Min_Max_Values ( Var Var Var Var Var Var Var Var Var Var Var Var Var Var . . . End; { of Min_Max_Values }
MPO_FileName Minimun_Load Maximum_Load Minimum_Tz Maximum_Tz Minimum_My Maximum_My Minimum_U Maximum_U Minimum_Ech_Stress Maximum_Ech_Stress X_Max_Ech_Stress Maximum_X
Procedure Initializeaza_Mod_Grafic ( HorizontalPixels : Integer; VerticalPixels : Integer); Var . . . End; { of Initializeaza_Mod_Grafic } Function InputTextXY XScreen YScreen InpMsg OutTextLength {
( : : : :
Integer; Integer; String; Integer) : String;
: : : : : : : : : : : : :
String; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value);
106
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
If
OutTextLength is set to 0, max 255 characters will be read!
} Var . . . End; { of InputTextXY } Procedure Load_BMP_and_Display ( BMP_FileName : String; X_Screen : Integer; Y_Screen : Integer); Var . . . End; { of Load_BMP_and_Display } Procedure Caracter_Incercuit ( X_Centru Y_Centru Raza FontName FontDirection FontSize BackGroundColor FontColor Caracter Var . . . End; { of Caracter_Incercuit }
: : : : : : : : :
Integer; Integer; Word; Word; Word; Word; LongWord; LongWord; Str1);
Function Select_Color ( Flag_Foreground_Color : Boolean; Initial_Color : LongWord; Background_Color : LongWord; X_Stg_Sus : Integer; Y_Stg_Sus : Integer; Latura : Integer; Titlu : String; Mesaj_Culoare_Veche : String; Mesaj_Culoare_Noua : String) : LongWord; { It selects a color to be used for the drawing. } Var . . . End; { of Select_Color } Procedure Draw_Arrow (
X_Peak Y_Peak UpWard Current_Value Overall_Ratio Arrow_Color Var Y_Extremitate
Var . . . End; { of Draw_Arrow } Procedure Draw_Diagram_Symbol ( Litera_Mare : STR1; Indice : STR1;
: : : : : : :
Integer; Integer; Boolean; Matrix_Value; Matrix_Value; LongWord; Integer);
APPENDICES
X Y
107
: Integer; : Integer);
Var . . . End; { of Draw_Diagram_Symbol } Procedure Draw_Diagram_Unit ( Unit_Text : String; X : Integer; Y : Integer); Var . . . End; { of Draw_Diagram_Unit } Procedure Display_Diagrams ( Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
Var
Flag_Color Tip_Diagrame MPO_FileName Initial_Displacement Numar_Intervale Lung_Int_Vect F_Dist_Int_Vect Leftmost_Percentage Rightmost_Percentage Upmost_Pergentage Downmost_Percentage Vertical_Structure_Perentage Vertical_ShearForce_Percentage Vertical_BendingMoment_Percentage Vertical_Displacements_Percentage Maximum_X_Screen Maximum_Y_Screen X_Leftmost X_Rightmost Distances_Scale Y_0_Structure DistrLoads_Scale DistrLoads_ZoomScale ShearForce_Scale ShearForce_ZoomScale Y_0_ShearForce BendingMoment_Scale BendingMoment_ZoomScale Y_0_BendingMoment Displacements_Scale Displacements_ZoomScale Y_0_Displacements BackGround_Color Structure_Color Loads_Color_Vector ShearForce_Color BendingMoment_Color Displacements_Color Tip_Scalare_Tensiuni Intervale_Scalare_Tensiune Admissible_Stress Minimum_Stress Maximum_Stress Flag_Extremum
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Str1; Integer; String; Matrix_Value; Integer; Matrix_Vector; Matrix_Vector; Matrix_Value; { Matrix_Value; { Matrix_Value; { Matrix_Value; { Matrix_Value; { Matrix_Value; { Matrix_Value; { Matrix_Value; { Integer; Integer; Integer; Integer; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Integer; LongWord; LongWord; Colors_Vector; LongWord; LongWord; LongWord; Integer; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Integer);
10.0% 10.0% 10.0%
}
03.0% 03.0% 03.0%
}
02.0% 02.0% 02.0%
}
02.0% 02.0% 02.0%
}
15.5% 31.5% 47.5%
}
15.5% 31.5% 00.0%
}
15.5% 31.5% 00.0%
}
15.5% 00.0% 47.5%
}
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES 108 . . . End; { of Display_Diagrams }
Procedure Scenario
{ { { { { { { { { { { { { {
Output Output Output Output Output Output Output Output Output Output Output Output Output Output
} } } } } } } } } } } } } }
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
(
MPO_FileName Initial_Displacement Leftmost_Percentage Rightmost_Percentage Upmost_Pergentage Downmost_Percentage Vertical_Structure_Perentage Vertical_ShearForce_Percentage Vertical_BendingMoment_Percentage Vertical_Displacements_Percentage Maximum_X_Screen Maximum_Y_Screen X_Leftmost X_Rightmost Distances_Scale Y_0_Structure DistrLoads_Scale ShearForce_Scale Y_0_ShearForce BendingMoment_Scale Y_0_BendingMoment Displacements_Scale Y_0_Displacements Minimum_Ech_Stress Maximum_Ech_Stress X_Max_Ech_Stress
: : : : : : : : : : : : : : : : : : : : : : : : : :
String; Matrix_Value; Matrix_Value { Matrix_Value { Matrix_Value { Matrix_Value { Matrix_Value { Matrix_Value { Matrix_Value { Matrix_Value { Integer; Integer; Integer; Integer; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Integer; Matrix_Value; Integer; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Matrix_Value);
10.0% 03.0% 02.0% 02.0% 15.5% 15.5% 15.5% 15.5%
10.0% 03.0% 02.0% 02.0% 31.5% 31.5% 31.5% 00.0%
10.0% 03.0% 02.0% 02.0% 47.5% 00.0% 00.0% 47.5%
}; }; }; }; }; }; }; };
{ This procedure is dedicated to the calculus of a series of scales for the diagrams and a series of screen coordinates where some graphical elements will be displayed. 01. X_Leftmost
- The X screen coordinate of the leftmost pixel to be used for the drawing 02. X_Rightmost - The X screen coordinate of the rightmost pixel to be used for the drawing 03. Distances_Scale - Global scale of the geometry of the structure, in this case the hull 04. Y_0_Structure - The Y screen coordinate for the 0-value reference line of the drawing of the structure, in this case the equivalent beam loaded with uniformly distributed forces 05. DistrLoads_Scale - Global scale of the uniformly distributed forces along the equivalent beam 06. ShearForce_Scale - Global scale of the shear forces diagram 07. Y_0_ShearForce - The Y screen coordinate for the 0-value reference line of the drawing of the shear forces diagram 08. BendingMoment_Scale - Global scale of the bending moments diagram 09. Y_0_BendingMoment - The Y screen coordinate for the 0-value reference line of the drawing of the bending moment diagram 10. Displacements_Scale – Global scale of the deflections 11. Y_0_Displacements - The Y screen coordinate for the 0-value reference line of the drawing of the diagram of deflections Remark: The coordinates of the distributed forces, shear forces, bending moments and deflections will be computed using the value resulted from the multiplication of the global scale of the geometry and the so-called ‘Drawing Percentage’ (about 70%) which reserves the rest of the space (1-Drawing_Percentage)% to write the other information like: the values of the
APPENDICES
109
uniformly distributed forces for each interval, or in each important section for the shear force, bending moment and deflection
} Var . . . End; { of Scenario } Procedure Help (Var Flag_Color : Str1; Text_Color : LongWord; Background_Color : LongWord); Var . . . End; { of Help } Procedure Modifica_Linia_De_Zero ( Var Var Var Var
X_Leftmost X_Rightmost Y Y_Calculat_Axa Y_Axis_Color Background_Color X_Left Y_Left Mesaj
Var . . . End; { of Modifica_Linia_De_Zero } Procedure Define_Button_in_View_Values_Mode ( X_Left : Integer; Y_Left : Integer; Button_Height : Integer; Button_Width : Integer; I_Button : Integer; Culoare : LongWord; Var f : Word; Var Z1 : Integer; Var Z2 : Integer); Var . . . End; { of Define_Button_in_View_Values_Mode } Procedure Draw_Aligned_Buttons Align_Type X_Left Y_Left Button_Height Button_Width X_Offset Y_Offset No_of_Buttons Flag_Text_In_Buttons Culoare Var X_Left_Vector Var Y_Left_Vector Var return_flag_Vector Var Z1_Vector
( : : : : : : : : : : : : : :
Char; Integer; Integer; Integer; Integer; Integer; Integer; Integer; Integer; LongWord; Integer_Vector; Integer_Vector; Word_Vector; Integer_Vector;
: : : : : : : : :
Integer; Integer; Integer; Integer; LongWord; LongWord; Integer; Integer; String);
110
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Var Z2_Vector
: Integer_Vector);
{ In In In In In In In In In In OUT OUT
Align_Type X_Left
: 'V' - vertical; 'H' - horizontal; : X coordinate of the left up corner of the button; Y_Left : Y coordinate of the left up corner of the button; Button_Height : height of the button (along the Y axis); Button_Width : width of the button (along the X axis); X_Offset : distance between the buttons along the X axis; Y_Offset : distance between the buttons along the Y axis; No_of_Buttons : number of buttons; Flag_Text_In_Buttons : index of the set of strings to be written inside the buttons; Culoare : color of the button and of the text; X_Left_Vector : vector of the x coordinates of the left-upper corner of the button; Y_Left_Vector : vector of the x coordinates of the left-upper corner of the button;
} Var . . . End; { of Draw_Aligned_Buttons } Procedure Process_Events_in_View_Values_Mode ( X_Left : Integer; Y_Left : Integer; Button_Color : LongWord; Var Flag : Word; Var Z1 : Integer; Var Z2 : Integer); Var . . . End; { of Process_Events_in_View_Values_Mode } Procedure Browse_MPO_File ( Var MPO_FileName Var I_Punct_Start X_Leftmost Y_0_Structure Var Structure_Scale Ruler_Color Var Background_Color Var ShearForce_Color Var BendingMoment_Color Var Displacements_Color Var Loads_Color_Vector Var Tip_Diagrame Var Tip_Scalare_Tensiuni
: : : : : : : : : : : : :
String; Integer; Integer; Integer; Matrix_Value; LongWord; LongWord; LongWord; LongWord; LongWord; Colors_Vector; Integer; Integer;
APPENDICES
Var Var Var Var
Intervale_Scalare_Tensiune Admissible_Stress Minimum_Stress Maximum_Stress X_Left Y_Left
: : : : : :
111 Integer; Matrix_Value; Matrix_Value; Matrix_Value; Integer; Integer);
Var . . . End; { of Browse_MPO_File } Procedure Press_Any_Key_To_Continue (Color : LongWord); Var . . . End; { of Press_Any_Key_To_Continue } Procedure Report ( Flag_Color Text_Color Background_Color Section NFT_Input MPO_DataFile Var . . . End; { of Report }
: : : : : :
Str1; LongWord; LongWord; Integer; { 0-All; 1-Input; 2-Output } String; { Nume fisier date de intrare } String); { Nume fisier de date }
Function Zoom_Scale ( Title X_Left Y_Left Culoare Fond Var Old_Scale Var . . . End; { of Zoom_Scale }
: : : : : :
String; Integer; Integer; LongWord; LongWord; Matrix_Value ) : Matrix_Value;
Procedure Identify_Mouse_Get_Command ( mouseEvent : MouseEventType; X_Left : Word; Y_Left : Word; X_Button_Length : Word; Y_Button_Length : Word; Y_Step : Word; { out } Var idButtonNo : Word; { out } Var idButtonName : String; { out } Var Flag : Word; { out } Var Z1 : Integer; { out } Var Z2 : Integer); Var . . . End; { of Identify_Mouse_Get_Command } Procedure Get_Command ( Var Flag_Color Var Numar_Intervale Var Flag_Ciclare_Grafica
: Str1; : Integer; : Char;
112
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var Var
Tip_Diagrame Tip_Scalare_Tensiuni Tip_Scalare_Tensiuni_Old BackGround_Old_Color Structure_Old_Color ShearForce_Old_Color BendingMoment_Old_Color Displacements_Old_Color Loads_Old_Color_Vector BackGround_Color Structure_Color ShearForce_Color BendingMoment_Color Displacements_Color Loads_Color_Vector DistrLoad_ZoomScale ShearForce_ZoomScale BendingMoment_ZoomScale Deflections_ZoomScale I_Punct_Start X_Leftmost X_Rightmost Y_0_Structure Y_User_Structure Y_0_ShearForce Y_User_ShearForce Y_0_BendingMoment Y_User_BendingMoment Y_0_Displacements Y_User_Displacements Structure_Scale Intervale_Scalare_Tensiune Admissible_Stress Minimum_Stress Maximum_Stress Flag_Extreme NFT_Input MPO_DataFile
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Integer; Integer; Integer; LongWord; LongWord; LongWord; LongWord; LongWord; Colors_Vector; LongWord; LongWord; LongWord; LongWord; LongWord; Colors_Vector; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Integer; Integer; Integer; Integer; Integer; Integer; Integer; Integer; Integer; Integer; Integer; Matrix_Value; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Integer; String; { Name of String);{ Name of
: : : :
Integer; Integer; Integer; LongWord);
Var . . . End; { of Get_Command } Procedure Afisare_Buton ( X_Left Y_Left I_Button Culoare Var . . . End; { of Afisare_Buton } Procedure About ( X_Left Y_Left Flag_Color Culoare
: : : :
Integer; Integer; Str1; LongWord);
the input data file } the data file
}
APPENDICES
113
Var . . . End; { of About } Procedure Display_License (Culoare : LongWord); Var . . . End; { of Display_License } Procedure Var Var Var Var Var Var Var Var Var
Play_Display_Diagrams ( Flag_Color : Str1; Tip_Diagrame : Integer; NFT_Input : String; MPO_FileName : String; Initial_Displacement : Matrix_Value; Admissible_Stress : Matrix_Value; Numar_Intervale : Integer; Lung_Int_Vect : Matrix_Vector; F_Dist_Int_Vect : Matrix_Vector);
Var Y_0_Structure, Y_0_ShearForce, Y_0_BendingMoment X_Leftmost, X_Rightmost, Y_0_Displacements Y_User_Structure, Y_User_ShearForce, Y_User_BendingMoment Y_User_Displacements Y_Final_Structure, Y_Final_ShearForce Y_Final_BendingMoment, Y_Final_Displacements Maximum_X_Screen, Maximum_Y_Screen Leftmost_Percentage, Rightmost_Percentage Upmost_Pergentage, Downmost_Percentage Vertical_Structure_Perentage Vertical_ShearForce_Percentage Vertical_BendingMoment_Percentage, Drawing_Percentage Vertical_Displacements_Percentage BackGround_Color, Structure_Color, ShearForce_Color BendingMoment_Color, Displacements_Color Loads_Color_Vector BackGround_Old_Color, Structure_Old_Color ShearForce_Old_Color BendingMoment_Old_Color, Displacements_Old_Color Loads_Old_Color_Vector Tip_Scalare_Tensiuni, Tip_Diagrame_Old Tip_Scalare_Tensiuni_Old, Y_Stress Intervale_Scalare_Tensiune Minimum_Stress, Maximum_Stress Flag_Ciclare_Grafica I, I1 P, X_Maximum_Stress Structure_Scale DistrLoads_Scale, DistrLoads_ZoomScale ShearForce_Scale, ShearForce_ZoomScale BendingMoment_Scale, BendingMoment_ZoomScale Displacements_Scale, Displacements_ZoomScale DistrLoads_ZoomScale_0, DistrLoads_ZoomScale_1 ShearForce_ZoomScale_0, ShearForce_ZoomScale_1 BendingMoment_ZoomScale_0, BendingMoment_ZoomScale_1 Displacements_ZoomScale_0, Displacements_ZoomScale_1 DistrLoads_ZoomScale_2, DistrLoads_ZoomScale_3 ShearForce_ZoomScale_2, ShearForce_ZoomScale_3 BendingMoment_ZoomScale_2, BendingMoment_ZoomScale_3 Displacements_ZoomScale_2, Displacements_ZoomScale_3 I_Punct_Start, Flag_Extreme
Begin { SECTIUNEA 00. - Stabilirea culorilor graficelor BackGround_Old_Color :=Blue;
}
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Integer; Integer; Integer; Integer; Integer; Integer; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; LongWord; LongWord; Colors_Vector; LongWord; LongWord; LongWord; Colors_Vector; Integer; Integer; Integer; Matrix_Value; Char; Integer; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Integer;
114
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
Structure_Old_Color :=Yellow; ShearForce_Old_Color :=LightBlue; BendingMoment_Old_Color:=LightGreen; Displacements_Old_Color:=LightRed; { Este initializat Loads_Color_Vector } For I:=1 To Numar_Intervale Do Begin I1:=I; P:=F_Dist_Int_Vect[I]; Loads_Old_Color_Vector[I]:=Load_Initial_Color(I1,P); End; If (Flag_Color 'C') Then Begin { Se folosesc nuante de gri, alb si negru } BackGround_Color :=White; Structure_Color :=DarkGray; ShearForce_Color :=DarkGray; BendingMoment_Color:=DarkGray; Displacements_Color:=DarkGray; { Se folosesc nuante de gri, alb si negru } For I:=1 To Numar_Intervale Do Begin Loads_Color_Vector[I]:=DarkGray; End; End Else Begin { Se folosesc culori } BackGround_Color :=BackGround_Old_Color; Structure_Color :=Structure_Old_Color; ShearForce_Color :=ShearForce_Old_Color; BendingMoment_Color:=BendingMoment_Old_Color; Displacements_Color:=Displacements_Old_Color; For I:=1 To Numar_Intervale Do Begin Loads_Color_Vector[I]:=Loads_Old_Color_Vector[I]; End; End; SetBkColor(Background_Color); SetColor(Structure_Color); ClearDevice; { SECTIUNEA 00. - Stabilirea tipului de trasare a deformatei } If (Flag_Color='C') Then Begin Tip_Scalare_Tensiuni :=2; Tip_Scalare_Tensiuni_Old:=Tip_Scalare_Tensiuni; End Else Begin Tip_Scalare_Tensiuni :=0; Tip_Scalare_Tensiuni_Old:=2; End; { SECTIUNEA 00. - Flag pentru prezentarea sectiunilor de extremum { 0 - nu se prezinta nimic { 1 - se prezinta numai liniile verticale si { semnificatiile lor { 2 - a fel ca 1, plus vaorile extreme din diagrame Flag_Extreme:=2; { SECTIUNEA 00. - Numar de culori pentru tensiuni } Intervale_Scalare_Tensiune:=10; { 01 .. 10 } { SECTIUNEA 00. - Ajustari ale liniilor de zero } Y_User_Structure :=0; Y_User_ShearForce :=0; Y_User_BendingMoment:=0; Y_User_Displacements:=0; { SECTIUNEA 00. - Stabilirea tipului de diagrame } If (Tip_Diagrame < 0) Or (Tip_Diagrame > 3) Then Tip_Diagrame:=1;
{ Tip_Diagrame:=0; } { SECTIUNEA 00. - Stabilirea procentelor pentru incadrarea } { graficelor din ecran } { Setez scara de zoom pentru fiecare tip de prezentare } DistrLoads_ZoomScale_0 :=0.75; ShearForce_ZoomScale_0 :=0.00; BendingMoment_ZoomScale_0:=0.00; Displacements_ZoomScale_0:=0.00; DistrLoads_ZoomScale_1 :=0.50; ShearForce_ZoomScale_1 :=0.60; BendingMoment_ZoomScale_1:=0.50; Displacements_ZoomScale_1:=0.25; DistrLoads_ZoomScale_2 :=0.50;
} } } } }
APPENDICES ShearForce_ZoomScale_2 :=0.75; BendingMoment_ZoomScale_2:=0.70; Displacements_ZoomScale_2:=0.00; DistrLoads_ZoomScale_3 :=0.60; ShearForce_ZoomScale_3 :=0.00; BendingMoment_ZoomScale_3:=0.00; Displacements_ZoomScale_3:=0.60; { Stabilesc punctul de la care incepe studiul (pozitie ruler vertical) } I_Punct_Start:=1; { Ciclu de prezentare a graficii } Flag_Ciclare_Grafica:=' '; While (Flag_Ciclare_Grafica = ' ') Do Begin Maximum_X_Screen:=GetMaxX; Maximum_Y_Screen:=GetMaxY; { SECTIUNEA 00. - Stabilirea procentelor pentru incadrarea } { graficelor din ecran } Case Tip_Diagrame Of 0 : Begin { Se deseneaza numai structura } Leftmost_Percentage := 0.050; { 20.0% 20.0% 20.0% } Rightmost_Percentage := 0.350; { 20.0% 20.0% 20.0% } Upmost_Pergentage := 0.070; { 02.0% 02.0% 02.0% } Downmost_Percentage := 0.070; { 02.0% 02.0% 02.0% } Vertical_Structure_Perentage := 0.500; { 23.5% 31.5% 47.5% } Vertical_ShearForce_Percentage := 0.000; { 23.5% 31.5% 00.0% } Vertical_BendingMoment_Percentage:= 0.000; { 23.5% 31.5% 00.0% } Vertical_Displacements_Percentage:= 0.000; { 23.5% 00.0% 47.5% } DistrLoads_ZoomScale :=DistrLoads_ZoomScale_0; ShearForce_ZoomScale :=ShearForce_ZoomScale_0; BendingMoment_ZoomScale:=BendingMoment_ZoomScale_0; Displacements_ZoomScale:=Displacements_ZoomScale_0; End; 1 : Begin { Se deseneaza structura, toate diagramele si } { deformata } Leftmost_Percentage := 0.050; { 20.0% 20.0% 20.0% } Rightmost_Percentage := 0.350; { 20.0% 20.0% 20.0% } Upmost_Pergentage := 0.050; { 02.0% 02.0% 02.0% } Downmost_Percentage := 0.120; { 02.0% 02.0% 02.0% } Vertical_Structure_Perentage := 0.200; { 23.5% 31.5% 47.5% } Vertical_ShearForce_Percentage := 0.200; { 23.5% 31.5% 00.0% } Vertical_BendingMoment_Percentage:= 0.200; { 23.5% 31.5% 00.0% } Vertical_Displacements_Percentage:= 0.230; { 23.5% 00.0% 47.5% } DistrLoads_ZoomScale :=DistrLoads_ZoomScale_1; ShearForce_ZoomScale :=ShearForce_ZoomScale_1; BendingMoment_ZoomScale:=BendingMoment_ZoomScale_1; Displacements_ZoomScale:=Displacements_ZoomScale_1; End; 2 : Begin { Se deseneaza structura si toate diagramele } Leftmost_Percentage := 0.050; { 20.0% 20.0% 20.0% } Rightmost_Percentage := 0.350; { 20.0% 20.0% 20.0% } Upmost_Pergentage := 0.050; { 02.0% 02.0% 02.0% } Downmost_Percentage := 0.100; { 02.0% 02.0% 02.0% } Vertical_Structure_Perentage := 0.250; { 23.5% 31.5% 47.5% } Vertical_ShearForce_Percentage := 0.300; { 23.5% 31.5% 00.0% } Vertical_BendingMoment_Percentage:= 0.300; { 23.5% 31.5% 00.0% } Vertical_Displacements_Percentage:= 0.000; { 23.5% 00.0% 47.5% } DistrLoads_ZoomScale :=DistrLoads_ZoomScale_2; ShearForce_ZoomScale :=ShearForce_ZoomScale_2; BendingMoment_ZoomScale:=BendingMoment_ZoomScale_2; Displacements_ZoomScale:=Displacements_ZoomScale_2; End; 3 : Begin { Se deseneaza structura si deformata } Leftmost_Percentage := 0.050; { 20.0% 20.0% 20.0% } Rightmost_Percentage := 0.350; { 20.0% 20.0% 20.0% } Upmost_Pergentage := 0.050; { 02.0% 02.0% 02.0% } Downmost_Percentage := 0.150; { 02.0% 02.0% 02.0% } Vertical_Structure_Perentage := 0.400; { 23.5% 31.5% 47.5% } Vertical_ShearForce_Percentage := 0.000; { 23.5% 31.5% 00.0% } Vertical_BendingMoment_Percentage:= 0.000; { 23.5% 31.5% 00.0% } Vertical_Displacements_Percentage:= 0.400; { 23.5% 00.0% 47.5% } DistrLoads_ZoomScale :=DistrLoads_ZoomScale_3; ShearForce_ZoomScale :=ShearForce_ZoomScale_3; BendingMoment_ZoomScale:=BendingMoment_ZoomScale_3; Displacements_ZoomScale:=Displacements_ZoomScale_3; End; End; If (DistrLoads_ZoomScale < 0.005) Then Vertical_Structure_Perentage :=0.0; If (ShearForce_ZoomScale < 0.005) Then Vertical_ShearForce_Percentage :=0.0; If (BendingMoment_ZoomScale < 0.005) Then Vertical_BendingMoment_Percentage:=0.0; If (Displacements_ZoomScale < 0.005) Then Vertical_Displacements_Percentage:=0.0; { SECTIUNEA 00. - Caculul parametrilor ecran pentru trasarea }
115
116
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES { Scenario
graficelor } ( MPO_FileName, { Denumirea fisierului random care contine rezultatele } Initial_Displacement, Leftmost_Percentage, Rightmost_Percentage, Upmost_Pergentage, Downmost_Percentage, Vertical_Structure_Perentage, Vertical_ShearForce_Percentage, Vertical_BendingMoment_Percentage, Vertical_Displacements_Percentage, Maximum_X_Screen, Maximum_Y_Screen, { Output } X_Leftmost, { Output } X_Rightmost, { Output } Structure_Scale, { Output } Y_0_Structure, { Output } DistrLoads_Scale, { Output } ShearForce_Scale, { Output } Y_0_ShearForce, { Output } BendingMoment_Scale, { Output } Y_0_BendingMoment, { Output } Displacements_Scale, { Output } Y_0_Displacements, { Output } Minimum_Stress, { Output } Maximum_Stress, { Output } X_Maximum_Stress); { SECTIUNEA 00. - Salvez tipul curent de diagrame } Tip_Diagrame_Old:=Tip_Diagrame; ClearDevice; { SECTIUNEA 00. - Afisare denumire program si autor } About ( X_Rightmost+40,10,Flag_Color,Structure_Color); { SECTIUNEA 00. - Afisare licenta } Display_License (Structure_Color); { SECTIUNEA 00. - Ajustare linii de zero } Y_Final_Structure :=Y_0_Structure +Y_User_Structure; Y_Final_ShearForce :=Y_0_ShearForce +Y_User_ShearForce; Y_Final_BendingMoment:=Y_0_BendingMoment+Y_User_BendingMoment; Y_Final_Displacements:=Y_0_Displacements+Y_User_Displacements; { SECTIUNEA 00. - Prezentare diagrama } Display_Diagrams ( Flag_Color, Tip_Diagrame, MPO_FileName, Initial_Displacement, Numar_Intervale, Lung_Int_Vect, F_Dist_Int_Vect, Leftmost_Percentage, Rightmost_Percentage, Upmost_Pergentage, Downmost_Percentage, Vertical_Structure_Perentage, Vertical_ShearForce_Percentage, Vertical_BendingMoment_Percentage, Vertical_Displacements_Percentage, Maximum_X_Screen, Maximum_Y_Screen, X_Leftmost, X_Rightmost, Structure_Scale, Y_Final_Structure, DistrLoads_Scale, DistrLoads_ZoomScale, ShearForce_Scale, ShearForce_ZoomScale, Y_Final_ShearForce, BendingMoment_Scale, BendingMoment_ZoomScale, Y_Final_BendingMoment, Displacements_Scale, Displacements_ZoomScale, Y_Final_Displacements, BackGround_Color, Structure_Color, Loads_Color_Vector, ShearForce_Color, BendingMoment_Color, Displacements_Color, Tip_Scalare_Tensiuni, Intervale_Scalare_Tensiune, Admissible_Stress, Minimum_Stress, Maximum_Stress, Flag_Extreme); { SECTIUNEA 00. - Afisare butoane principale } { Afisare_Butoane_Principale(X_Rightmost+65,80,Structure_Color); } Afisare_Buton ( X_Rightmost+40, 80, 1, Structure_Color); Afisare_Buton ( X_Rightmost+40, 105, 2, Structure_Color); Afisare_Buton ( X_Rightmost+40, 130, 3, Structure_Color); Afisare_Buton ( X_Rightmost+40, 155, 4, Structure_Color); Afisare_Buton ( X_Rightmost+40, 180, 5, Structure_Color); Afisare_Buton ( X_Rightmost+40, 205, 6, Structure_Color); Afisare_Buton ( X_Rightmost+40, 230, 7, Structure_Color); { SECTIUNEA 00. - Afisare gama de tensiuni } If Tip_Diagrame = 3 Then Y_Stress:=Y_0_Structure+150 Else Y_Stress:=Y_0_ShearForce+10; If ((Tip_Diagrame 2) And (Tip_Diagrame 0)) Then Display_Range_Of_Stresses ( X_Rightmost+75, Y_Stress, Structure_Color, BackGround_Color, Intervale_Scalare_Tensiune, Tip_Scalare_Tensiuni, Minimum_Stress, Maximum_Stress,
APPENDICES Admissible_Stress); { SECTIUNEA 00. - Stabilirea tastelor apasate } Get_Command ( Flag_Color, Numar_Intervale, Flag_Ciclare_Grafica, Tip_Diagrame, Tip_Scalare_Tensiuni, Tip_Scalare_Tensiuni_Old, BackGround_Old_Color, Structure_Old_Color, ShearForce_Old_Color, BendingMoment_Old_Color, Displacements_Old_Color, Loads_Old_Color_Vector, BackGround_Color, Structure_Color, ShearForce_Color, BendingMoment_Color, Displacements_Color, Loads_Color_Vector, DistrLoads_ZoomScale, ShearForce_ZoomScale, BendingMoment_ZoomScale, Displacements_ZoomScale, I_Punct_Start, X_Leftmost, X_Rightmost, Y_0_Structure, Y_User_Structure, Y_0_ShearForce, Y_User_ShearForce, Y_0_BendingMoment, Y_User_BendingMoment, Y_0_Displacements, Y_User_Displacements, Structure_Scale, Intervale_Scalare_Tensiune, Admissible_Stress, Minimum_Stress, Maximum_Stress, Flag_Extreme, NFT_Input, { Nume fisier date de intrare } MPO_FileName); { Nume fisier de date } { SECTIUNEA 00. - Actualizez proportiile corespunzatoare } { tipului de diagrame activ } If (Tip_Diagrame = Tip_Diagrame_Old) Then Begin Case Tip_Diagrame Of 0 : Begin DistrLoads_ZoomScale_0 :=DistrLoads_ZoomScale; ShearForce_ZoomScale_0 :=ShearForce_ZoomScale; BendingMoment_ZoomScale_0:=BendingMoment_ZoomScale; Displacements_ZoomScale_0:=Displacements_ZoomScale; End; 1 : Begin DistrLoads_ZoomScale_1 :=DistrLoads_ZoomScale; ShearForce_ZoomScale_1 :=ShearForce_ZoomScale; BendingMoment_ZoomScale_1:=BendingMoment_ZoomScale; Displacements_ZoomScale_1:=Displacements_ZoomScale; End; 2 : Begin DistrLoads_ZoomScale_2 :=DistrLoads_ZoomScale; ShearForce_ZoomScale_2 :=ShearForce_ZoomScale; BendingMoment_ZoomScale_2:=BendingMoment_ZoomScale; Displacements_ZoomScale_2:=Displacements_ZoomScale; End; 3 : Begin DistrLoads_ZoomScale_3 :=DistrLoads_ZoomScale; ShearForce_ZoomScale_3 :=ShearForce_ZoomScale; BendingMoment_ZoomScale_3:=BendingMoment_ZoomScale; Displacements_ZoomScale_3:=Displacements_ZoomScale; End; End; End; End;
End; { of Play_Display_Diagrams } End.
117
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
118
Appendix 4.
MIPVES04 Library – Aspects regarding the code
{$N+$E+$F+$O+$G+$R+$S+$V+$Q+$X+} Unit MIPVes04; Interface Uses WinGraph, WinCrt, WinMouse, MIPVES01, MIPVES02, MIPVES03; Procedure Main; Procedure Generare_Date (
Cod_Problema : Integer; Var NFT_Input : String);
Procedure Procesare_Date ( NFT_Input
: String);
Implementation Procedure Generare_Date_Sectiune ( Var Var Var Var Var Var Var Var Var
Cod_Sectiune Identificator IY IZ ZMax YMax SY SZ BY BZ
: : : : : : : : : :
Integer; String; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value);
{ Returneaza caracteristicile geometrice ale sectiunilor, momentele statice si latimile sectiunilor in punctul in care tensiunea tangentiala este maxima. } Begin { Verificare a codului sectiunii dorite } If ((Cod_Sectiune < 1) Or (Cod_Sectiune > 6)) Then Cod_Sectiune:=3; Case Cod_Sectiune Of 1 : Begin Identificator :='CG0302'; IY :=41175.1126e8; IZ :=96200.0394e8; ZMax :=3277.78; YMax :=5000.00; SY :=7639128.12963; SZ :=123e5; BY :=30.0; BZ :=45.0; End; 2 : Begin . . . End; { of Generare_Date_Sectiune }
APPENDICES
Procedure Generare_Date (
119
Cod_Problema : Integer; Var NFT_Input : String);
{ Genereaza date de intrare pentru problemele de diagrame si de determinare a formei fibrei neutre pentru nave. } Var E, L0, L08, L10, L12 Cod_Sectiune, I Numar_Intervale, Flag_Conditii, Nr_Minim_Puncte, Tip_Diagrame Identificator, S, Nume_Problema IY, IZ, ZMax, YMax, SY, SZ, BY, BZ, Semn, Uz_a, Uz_b
: : : : :
Matrix_Value; Integer; Integer; String; Matrix_Value;
Lung_Int_Vect, F_Dist_Int_Vect, Young_Vect IY_Vect, IZ_Vect, ZMax_Vect, YMax_Vect SY_Vect, SZ_Vect, Bz_Vect, By_Vect
: Matrix_Vector; : Matrix_Vector; : Matrix_Vector;
Alfa, Sigma_Adm X_Fi_Masurat, Fi_Masurat, X_U_Masurat, U_Masurat X_Uz1_Masurat, Uz1_Masurat, X_Uz2_Masurat, Uz2_Masurat Fi_Initial, Uz_Initial Flag_Grafica, Flag_Color
: : : : :
Matrix_Value; Matrix_Value; Matrix_Value; Matrix_Value; Str1;
Begin { Verificare a codului problemei } If ((Cod_Problema < 0) Or (Cod_Problema > 24)) Then Cod_Problema:=0; { Introducem datele care sunt identice pentru toate sectiunile. } { 01. Nume fisier text de intrare; urmeaza a fi adaugat codul { problemei si identificatorul
} }
Nume_Problema:='MIPVES'; S:=Integer2String(Cod_Problema,2,'0'); NFT_Input:=Nume_Problema+S+'.INP'; Nume_Problema:=Nume_Problema+S; { 02. Se considera ca numarul de intervale este 4 in toate cazurile }
Numar_Intervale:=4; { 03. Se considera ca unghiul de inclinare a navei este 0.0
}
Alfa:=0.0; { 04. Definesc o serie de lungimi standard
}
L08:= 8000.0; { mm } L10:=10000.0; { mm } L12:=12000.0; { mm } { 05. Modulul lui Young este 2.1 10^5 MPa pentru toate cazurile }
E:=2.1e5; { MPa } { 06. Tensiunea admisibila este 120 MPa pentru toate cazurile
}
Sigma_Adm:=120.0; { MPa } { 07. Acelasi flag pentru lansarea modulului de grafica
}
Flag_Grafica:='G'; { 08. Acelasi flag pentru modul Coor/Monocrom
}
Flag_Color:='C'; { 09. Numarul minim de puncte pentru toate cazurile este 200
}
Nr_Minim_Puncte:=200; { 10. Tipul diagramelor este 1, adica toate diagramele in acelasi ecran }
Tip_Diagrame:=1; { 11. Initializare valori numerice ale conditiilor la limita
X_Fi_Masurat :=0.0; Fi_Masurat :=0.0; X_U_Masurat :=0.0; U_Masurat :=0.0; X_Uz1_Masurat:=0.0; Uz1_Masurat :=0.0; X_Uz2_Masurat:=0.0; Uz2_Masurat :=0.0; Fi_Initial :=0.0;
}
RONOMAR PROJECT – DEVELOPMENT OF COMPUTER ASSISTED MARINE STRUCTURES
120
Uz_Initial
:=0.0;
{ 12. In continuare sunt introduse datele la nivel de interval
}
Case Cod_Problema Of 01 : Begin { 13. Sectiunea de date particulare
}
L0:=L08; F_Dist_Int_Vect[01]:=+450; F_Dist_Int_Vect[02]:=-600; F_Dist_Int_Vect[03]:=-150; F_Dist_Int_Vect[04]:=+300; End; 02 : Begin { 13. Sectiunea de date particulare
}
. . . End; { of Generare_Date } Procedure Main; Var Tot_Params NFT_Input, NFT_Output, Param_1 Optiunea1, Optiunea2, Optiunea3 Cod_Problema, I, ErrCode Begin
: : : :
Word; String; String; Integer;
{Window(5,5,75,12);} { TextColor(LightGray); ClrScr; WriteLn; WriteLn(' PROGRAM PENTRU CALCULUL STRUCTURILOR DE TIP GRINDA - NAVA'); WriteLn(' ========================================================='); WriteLn; } Tot_Params:=ParamCount; If (Tot_Params < 1) Then Begin WriteLn; WriteLn('Call sequence is:'); WriteLn(' MIPVES.EXE INP_FILE.TXT '); WriteLn; WriteLn(' INP_FILE.TXT is the input data file '); WriteLn; WriteLn('Parametri de apel lipsa...'); Repeat Until KeyPressed; Repeat Until KeyPressed; Halt(1); End; If (Tot_Params = 1) Then Begin Param_1:=ParamStr(1); For I:=1 To Length(Param_1) Do Begin Param_1[I]:=UpCase(Param_1[I]) End; Optiunea1:=Char(65)+Char(76)+Char(76); Optiunea2:=Char(68)+Char(69)+Char(77)+Char(79); If (Param_1 = Optiunea1) Then Begin For I:=1 To 24 Do
APPENDICES Begin Generare_Date (I,NFT_Input); Procesare_Date(NFT_Input); End;
121
End Else Begin If (Param_1 = Optiunea2) Or (Param_1 = Char(48)) Then { DEMO sau '0' } Begin Generare_Date (0,NFT_Input); Procesare_Date(NFT_Input); End Else Begin Val(Param_1,Cod_Problema,ErrCode); If (ErrCode = 0) Then { Daca este un cod de problema } Begin If ((Cod_Problema >= 0) And (Cod_Problema