UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Welding information system--design, operations, methods Latendresse, Vincent 1993

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-ubc_1993_fall_latendresse_vincent.pdf [ 4.75MB ]
Metadata
JSON: 831-1.0050506.json
JSON-LD: 831-1.0050506-ld.json
RDF/XML (Pretty): 831-1.0050506-rdf.xml
RDF/JSON: 831-1.0050506-rdf.json
Turtle: 831-1.0050506-turtle.txt
N-Triples: 831-1.0050506-rdf-ntriples.txt
Original Record: 831-1.0050506-source.json
Full Text
831-1.0050506-fulltext.txt
Citation
831-1.0050506.ris

Full Text

WELDING INFORMATION SYSTEM - DESIGN, OPERATIONS, METHODSbyVINCENT LATENDRESSEB.A.Sc. Universite de Sherbrooke 1992A THESIS SUBMITTED IN PARTIAL FULFILLMENT OFTHE REQUIREMENTS FOR THE DEGREE OFMASTER OF APPLIED SCIENCEinTHE FACULTY OF GRADUATE STUDIES(Civil Engineering)We accept this thesis as conformingto the required standardTHE UNIVERSITY OF BRITISH COLUMBIAOctober 1993© Vincent Latendresse, 1993In presenting this thesis in partial fulfilment of the requirements for an advanceddegree at the University of British Columbia, I agree that the Library shall make itfreely available for reference and study. I further agree that permission for extensivecopying of this thesis for scholarly purposes may be granted by the head of mydepartment or by his or her representatives. It is understood that copying orpublication of this thesis for financial gain shall not be allowed without my writtenpermission.(Signature)Department of  (...k^EN(7-C Itke The University of British ColumbiaVancouver, CanadaDate 11-11SPily^CA.:17.kei2 tcfqDE-6 (2/88)ABSTRACTAn innovative knowledge management system has been developed using the methods andtechniques available through micro-computers and WINDOWS 3.1: The WISDOM project aimsat research and development of an innovative and comprehensive information collection onwelding in close cooperation with industry utilizing modern micro-computer techniques ofinformation review, retrieval, storage, updating, and transfer. Emphasis is placed on new andmore efficient methods of knowledge communication, pursuing the idea of exploring knowledge(in contrast to rehearing recipes). The development of this project concentrates on the followingthree main topics.• Knowledge Base on Steel Metallurgy and Welding;• Analysis and Design Methods for Welded Steel Connections;• Design Requirements of Welds.This includes the considerations of different types of welds and joints and a thorough review ofwelding history and basic welding procedures.11Table of ContentAbstract^ iiTable of Content^ iiiList of Figures viAcknowledgments^ viii1.0 Introduction.^ 11.1 The Information Age^ 11.2 WISDOM Objectives. 21.3 Target Group and Benefits.^ 51.4 Description of the WISDOM Modules^ 62.0 Expert and Knowledge Base Systems^ 92.1 What Is An Expert ?^ 92.2 What Does An Expert Do? 102.3 Expert Systems As Systems Based On Knowledge.^ 113.0 Implementation of an Expert System^ 123.1 Anatomy Of An Expert System. 123.1.1 The Inferance Engine.^ 133.1.2 Interface.^ 143.1.3 Knowledge Base.^ 153.1.3.1 Design Template Knowledge Base.^ 153.1.3.2 Help System Kowledge Base. 161113.2 Hypertext Definition.^ 163.2.1 Hypertext System. 173.2.2 Hypertext Basics.^ 183.2.3 Advantages of Hypertext.^ 183.2.3.1 Rapid Browsing. 193.2.3.2 Non Linear Organization.^ 203.2.3.3 Promotes Associative Thinking. 203.2.3.4 Multi Media Capabilities.^ 203.2.4 Disadvantages of Hypertext. 213.2.4.1 Information Is Dificult to Find.^ 213.2.4.2 Lost in Hyperspace.^ 213.2.4.3 Dificulty in Maintaining. 224.0 The WISDOM Program^ 234.1 Wisdom Index.^ 234.2 The Design Module. 234.2.1 Elastic Design.^ 244.2.2 The Elastic Design Template.^ 284.2.3 Ultimate Capacity Analysis (Plastic). 314.2.4 The Plastic Design Module.^ 344.2.5 The Connection Design Module. 354.2.5.1 Tension Member and Double Bracket Connection.^354.2.5.2 Flexible Beam to Column Connection.^394.3 The Navigation Bar.^ 424.3.1 The Quit Button. 434.3.2 The Recall Button.^ 434.3.3 The Know Button. 43iv4.3.4 The Index Button.^ 454.3.5 The Back Button. 454.3.6 The Previous and Next Button.^ 454.4 The Knowledge Base.^ 454.4.1 Typical Knowledge Base Page.^ 464.4.2 The Knowledge Base Content. 474.3.3 The Knowledge Base Index and Tale of Content.^484.5 The Figure Library.^ 49SUMMARY^ 50Bibliography^ 52Appendices A WISDOM Scripts^ 53Appendices B Instantaneous Center Calculation Algorithms^114List of FiguresFig. 1.1 Schematic Description of WISDOM^ 8Fig.3.1 Schematic View of an Expert System.^ 12Fig 3.2 Inference Engine.^ 14Fig 3.3 Hypertext Representation. 18Fig. 4.1 Elastic Analysis^ 26Fig. 4.2 Elastic design template. 28Fig. 4.3 Electrode pop-up Window.^ 29Fig. 4.4 L Shaped weld.^ 30Fig. 4.5 Pop up to change the L shape geometry.^ 30Fig. 4.6 Ultimate Capacity Analysis^ 32Fig. 4.7 Tension member design template. 36Fig. 4.8 Commercial steel grade pop up window.^ 37Fig. 4.9 Resistance OK.^ 37Fig 4.10 Resistance not OK. 38Fig. 4.11 Flexible beam to column design template.^ 39Fig. 4.12 Analysis Page.^ 40Fig 4.13 Help cursor. 40Fig.4.14 Help pop up window.^ 41Fig. 4.15 Box cursor.^ 42Fig. 4.16 Typical Navigation Bar.^ 42Fig 4.17 Double angle connection template.^ 44viFig 4.18 Knowledge base page.^ 44Fig. 4.19 Hotwords.^ 46Fig. 4.20 Picture library. 46Fig. 4.21 Index of subjets.^ 48Fig. 4.22 Table of content. 49viiAcknowled2mentFirst, I would like to acknowledge the Canadian Welding Bureau who funded and believedin WISDOM. Their help was very much appreciated during all my post graduate studies.Also, I would like to thank all of the people who have helped bring this project to thispoint: Lilian Siu, Howard Nichol, Steve Yee, Jim Greig, Thomas Wong, and especiallyAndreas Felber.This undertaking would not have been possible without David Halliday, our industryadvisor. His work in the professional partnership program made this venture possible.I cannot go without saying that Dr. Siegfried F. Stiemer's help, supervision, and advice onthe project and many other things essential to the success of this endeavor. I'm gratefuland sometimes surprised at the patience he showed towards me.Finally, I would like to thank my girlfriend, Elise, for her support during the whole time ofmy studies at U.B.C..viii1.0 INTRODUCTIONIn this chapter, the basic objectives of the WISDOM program will be discussed. Thefundamental information that needed to be gathered and be put into an expert system issummarized. A close look is taken at the need in industry and the educational domain forsuch a software package. The technological explosion that lead to the "birth" of theapplication is also discussed.1.1 THE INFORMATION AGEThe term "information age" is well known to most of us, however, the sheer magnitude ofits nature is not easily understood. Only in moments when we are buried under a flood ofinformation, be it by periodical magazines or by large data-bases, such as the purchaseorders of the last ten years, do we envision what the information age really means.Information can be printed, spoken, and drawn. It can help us to understand a conceptfrom which we can create new methods which again may be put back into the informationchain. We definitely need the information and we need even more the skill to manipulatethat information.A word processing program is an important tool for converting information into tangibleform. A spreadsheet program is a more transitional tool. It allows one to transform data orformulae into figures or graphs, and permits the extrapolation of data to enable forecastingof events. A drawing program is a mere information handler which deals with the mostcompact form of information, the picture. An analysis program takes information from aninput file through an established calculation procedure to create a new set of information,the response of a structure or process.1Currently, all of these programs act as stand-alone devices and are limited in applicationand scope. Relational data base programs, on the other hand, exist on a slightly higherplane. They allow data blocks to interact with each other and, better still, permit "links"between individual files and file segments. This type of database management software hasbeen the cornerstone of information management on large computers and has morerecently been adapted for use on personal computers.The WISDOM project aims at research and development of an innovative andcomprehensive information collection on welding in close cooperation with industryutilizing modern micro-computer techniques of information review, retrieval, storage,updating, and transfer. Emphasis is placed on new and more efficient methods ofknowledge communication, pursuing the idea of exploring knowledge (in contrast torehearsing recipes). The development of this pilot project concentrates on the followingthree main topics:1. Background information on steel metallurgy and welding2. Analysis and design methods for welded connections3. Code Requirements of WeldsThis includes the consideration of different types of welds and joints and a thoroughreview of welding history and basic welding processes.1.2 WISDOM OBJECTIVESPreliminary research on the WISDOM project involved consultation with industry to2determine primary objectives. The need for an information system on welding wasunquestionably apparent. The content of the pilot project concentrates on basic weldinginformation combined with state of the art design principles and code requirements. Theknowledge base is supplemented with graphic images and analysis and design programs. Itis hoped that the information in this system will be delivered to the engineer in an efficientand useful manner, so that it might raise welding awareness while promoting efficientwelded design. In addition, it is hoped that the WISDOM system will close the everwidening gap between the design engineer and the fabricator.In the most general sense, the primary objective of the WISDOM project was to producean integrated self-paced teaching tool for both engineering professional and student alike.The versatility of the system is maintained by presenting the information in modular form.Screen graphics oriented learning modules encourage the user to become more involved inthe learning process than more conventional teaching methods allow. Analysis and designmodules promote rapid and efficient connection design in a more consistent andprofessional manner. A smooth transition from the learning environment to engineeringpractice is envisioned by providing realistic design tools with a transparent background. Inparticular, WISDOM focuses on three general educational aims which cannot be achievedby conventional textbook techniques:1. Relations. It is important to facilitate the observation and creation ofconnections and relationships among ideas, concepts, events, and facts.WISDOM provides the software tools that will permit the user to annotateexisting modules, create new information, and create new links between existingand upgraded information.2. Visualization. Wisdom enhances the users ability to visualize and perceive3complex and dynamic phenomena which might otherwise need extensiveanalytical calculations and graphical or motion picture representations. The fullimpact of this educational aim may not be realized until further additions aremade to the pilot project.3. Exploration. WISDOM encourages exploration of an information-richenvironment such that students may discover ideas, themes, and facts on theirown.The following module types are typical of the WISDOM pilot project:1. background welding information modules;2. specific welding design modules;3. design modules with code related requirements and design guides;4. hypertext module with background information.Besides the above stated educational objectives, WISDOM has several technologicalaims:1. Reusability. The software industry and the academic research communitytolerate by far too much wasteful reinvention of code. A large portion ofdevelopment time for each of the thousands of software products is spent writingcode that performs functions already implemented in many other packages. Whilethis competition is worthwhile for fine tuning special product areas, WISDOMuses large portions of commercially available code and remains accessible tofuture developers.42. Consistency. An important feature of the WISDOM shell is to provide aconsistent screen oriented user interface across modules, such that the selectionof choices and commands, and the creation and following of links operateidentically in all applications. This consistency is extended deep into the coding,such that even data structures and procedures can be easily understood by otherdevelopers.3. Modularity. If a program system like WISDOM is developed by more thanone person it is mandatory to be not only consistent, but modular. Themodularity facilitates partial development and further extensions. Modules haveto be created as stand-alone applications and one must by able to test themwithout interference with other developers. The modules must have the ability tobe integrated into the system with little effort.1.3 TARGET GROUP AND BENEFITSThe main target groups of WISDOM project are the practicing engineers and theuniversity students, who wish to specialize in this area. Using such a tool which is basedon explorational techniques of education does not require sitting in seminar sessions orattending rigidly scheduled classes.A survey of representative consulting engineers and fabricators indicated a definite needfor an up-to-date, self-paced, learning and application tool for welding. Trying to close theever widening gap between consultant and fabricator seems to be a timely task. Currentlynone of the Canadian universities offer an undergraduate civil engineering core coursewhich contains welding as a single specialized topic. It is not expected that this type ofmaterial will ever be given at this level, and very little chance exists for an extensive5coverage in the graduate curriculum. However, it would be an excellent opportunity tosupply interested students with such a tool for a self-driven exploratory type of studying.The accessibility and understanding of current knowledge and expertise on welding will begreatly improved by the WISDOM project and will lead to more frequent application ofwelds with a higher degree of confidence. Education and training will be improved, andwith this, the general quality of applications in welding. A higher level of confidence in theprofessional community will further the use of welding.New areas of research might be identified and intensified. A general raising of the image ofwelding can be expected. An improved educational preparation plus the continualupdating of knowledge for key persons in the decision making process will further theapplications of welding of steel structures, improve the quality of design, and increase theefficiency of application.1.4 DESCRIPTION OF THE WISDOM MODULESThe WISDOM system contains three important modules: WISDOM, workhelp, and thepicture library. They interrelate through hypermedia links. A user can jump from onecomponent of the software to the next with ease. Novice users will find the operation ofthe program is facilitated because standard Microsoft WINDOWS commands, buttons,and pull-down menus are used to activate the different functions. Fig 1.1 is a schematicview of how the elements of the system relate.At the center of the system is the WISDOM index. From this page a user has access toevery part of the program. This module is sub system of the main application that containsthe leaning modules, the design templates, the electrode list, and the base metal list. These6will be described in more detail further on in the text.The workhelp sub system divides into the table of content, the topic list, and the topics.These modules contain a large amount of information on welding fundamentals andprocedures. Some of the topics are directly linked to the design modules, others have tobe accessed with the use of the index or table of content.The picture library contains figures and diagrams related to the help topics. They illustratevaried information: standard detailing, residual stress diagrams, weld type, etc. This libraryis linked to the workhelp module and the WISDOM index.The quick tour guides a new user through the important parts of the software. Itdescribes the use of the basic commands. Also included are copies of the basic types ofdesign templates that have additional operational information attached. The user can startthis module from the main index.7Fig 1.1 Schematic description of WISDOM82.0 EXPERT AND KNOWLEDGE BASE SYSTEMSIn the following pages, the basic terms used in expert and knowledge base systemsdefinitions are described. The word expert and in its many meanings will be nailed down.The tasks that are to be accomplished by such systems are reviewed.2.1 WHAT IS AN EXPERTBluntly put, the definition of an expert system is a system that does the work of an expert.However, this simple definition brings about two new questions. What is an expert ?What does he do?Every day life gives us examples. What does an expert do? He takes facts and givenvalues, he analyses them, then he renders a verdict. A medical doctor examines hispatients and gives diagnostics. A mechanic listens to stories of how our car broke downand then finds (in principle) the troubles. These two types of experts offer diagnostic helpand propose a way to remedy the situation. Other experts, like engineers or lawyerspropose solutions to problems with given boundary conditions.We note from these simple examples the semantic change of the word expert to that ofspecialist. When we look at a welder or a machinist, we say that he performs specializedwork. We might not think of our mechanic as an expert although he is probably aspecialist in motor technology.So in the expression "expert system", the word "expert" has a very broad meaning.9This remark is very important because most people consider experts to be people with vastamounts of knowledge and years of experience in their fields. This definition of the worddoes not fit exactly in our context. It hides the true meaning of the expression expertsystem, which is: a program to reproduce the day to day activities of an army of specialistsin an organization.2.2 WHAT DOES AN EXPERT DO?The word expert is used for the remainder of the text, but it will be taken in the muchbroader sense as defined previously: that of a specialist or a person trained for a precisetask.What does a structural expert do? He asks you what type of building you want, what useit will have, what size and many other things. These are boundary conditions. From theselimits, he will emit judgments on the possibilities and the bounds of your project. Anengineer uses his knowledge and the limiting factors imposed on him to answer his client'squestions.Of course, it is impossible to know exactly what goes on in the specialist's head.However, we can deduce that with the help of certain facts and natural laws a system islimited to a certain set of solutions. We make the problem smaller by "weeding out" theimprobable or impractical answers. The expert uses his acquired experience to do this.This process continues as new facts and limiting factors comes into play, and eventually,and not necessarily in a linear fashion, the problem converges to a final solution.10The classic Newell and Simon artificial intelligence books (Ref.5) discuss this type ofreasoning. We refer to it as "If.. Then' type reasonings. If I see a certain condition then Itake this sort of action. Again, we have to take the words' condition and action in a verybroad sense. The action can be purely cerebral, like checking a hypothesis or memorizinga new fact.2.3 EXPERT SYSTEMS AS SYSTEMS BASED ON KNOWLEDGEIt does not matter if an expert is a lawyer or a machinist, he has acquired through his workan expertise (a specialization) which he stores in his head. As seen, looking from theexterior, one can represent information as a series of "If.. Then" rules. These rules alongwith situation cues (when to use what), combine to give him the knowledge of the subject.The sum total of this knowledge in computer language translation, stored on a magneticmedium, is called a knowledge base. An expert system is therefore a knowledge basesystem.One can argue that all computer systems use knowledge. Therefore using information isnot the defining characteristic of a knowledge base system. One can characterize thesesystems by their use of information that is grouped in modular form and quite distinct fromthe rest of the whole. In an expert system, there are two distinct types of knowledge, thebase information (computer language, infrastructure), and the information dealing with thetask at hand (the specialist's knowledge).113.0 IMPLEMENTATION OF AN EXPERT SYSTEMAlthough this thesis is not an extensive study of expert systems and their workings, a smalldiscussion of the different parts that make up this type of program will help inunderstanding the internal workings of WISDOM.To further this understanding, we will discuss the basic building blocks of expert systemsand their interactions. Also, the recent advances in technology have permitted theimplementation of new systems for information management. The hypertext dataarrangement technique is one of these methods and it was used to implement WISDOM'shelp system. This technique will be defined and discussed.3.1 ANATOMY OF AN EXPERT SYSTEMAn expert system has three different modules: an inference engine, a user interface, and adatabase or knowledge base (Fig. 3.1). Interface^ IKnowledge BaseInference Engine IFig. 3.1 Schematic View of an Expert System.123.1.1 THE INFERENCE ENGINEThis sub-system controls the access the user has to the knowledge stored in the program.It selects and applies the rules as the user navigates through the different parts of theprogram.The program user generates activities that have to be examined by the system, which inturn has to choose a course of action to take (i.e. do nothing, generate a certain message,etc.). It first decides what data is needed to solve the problem at hand. If the data set isincomplete, it goes back to the user or it's database base to complete it. After havingassembled the required information, it extracts the rules and restrictions attached to theparticular type of problem and executes them. One can implement many strategies ofsolution finding at this point: forward chaining, backward chaining, etc. Once theprogram assembles the solution set, it records its conclusion. This step also encompassesa large number of possibilities: printing a simple yes or no on a computer screen towriting a full situation report. (Fig. 3.2)13InferenceEngineDatabase11, Data AssemblySolutionFindingRule AssenblySystemStateKnowledgeBaseOUTPUTUser ActionFig 3.2 Inference Engine.3.12 INTERFACEThe term interface is used to describe the infrastructure that passes the data from the userto the inference engine. This part of the expert system is pivotal to its efficiency. If dataentry becomes hard and/or to confusing, a user might become discouraged and just giveup. If too much information or too many options are presented at once, the operatormight become overwhelmed which reduces his productivity. A good interface should givethe user quick access to the most frequently used functions of the program as well as asense of where he is in the system, and (or) what he is about to do.Recently, technology has given us a great number of tools to create efficient interfaces.Menu driven interfaces give quick access to functions that are available in the program as14well as laying out these functions in logical groupings so the user reduces his search time.A pointing device, such as a mouse, provides the possibility of making applications moreflexible and instinctive to use. Context sensitive help systems provide information on thecurrent system state: which functions can be used, and how to use them at this particularpoint in the program execution.Other methods can also help the efficiency of the system. Some examples: a good screenlayout will cluster the data at any given time in a small screen space so the user has quickaccess to it. Minimizing the number of screens that the user has to go through to get theresult he wants: this cut the overhead and quickens information access.3.1.3 KNOWLEDGE BASEThe knowledge base module of an expert system is the entity that contains all the data,facts, rules and constraints that are used to solve a certain problem. This was referred tothis as the specialist's knowledge earlier in the text.In the next sections two types of knowledge base as used in the WISDOM program willbe discussed. One is more of traditional nature: the design template knowledge base(KB). The other is more open ended: the hypertext knowledge base of the WISDOM helpsystem.3.1.3.1 DESIGN TEMPLATE KNOWLEDGE BASEIn the design templates, the KB replaces the repetitive effort of a specialist's weldedconnection design. The time it takes to calculate the strength of a connection diminishes15from minutes to seconds. This enables the user to try many options (different sizes ofweld beads, different lengths of weld) in a short time.The type of data, and rules stored in the system consist of "If.. Then" relations andboundary conditions. Any information retrieved by the inference engine from theknowledge base is usually not visible to the user, only the input values and the results.3.1.3.2 HELP SYSTEM KNOWLEDGE BASEThe knowledge base in this module uses a more open ended approach to pass on itsexpertise. The main reason for this change in approach is that the purpose of the helpsystem is quite different from the design template. Whereas the templates try to simulatethe repetitive nature of a specialist's work, the help module tries to convey basicinformation about welding practice and other general subjects. These two sets ofknowledge are very different: the former is based on "If.. Then" rules, the latter on textand picture information. It is evident that one has to use different infrastructures to conveythe information. The hypertext support system was chosen to implement the help system.3.2 HYPERTEXT DEFINITIONThe hypertext medium is a relatively novel way to store and manage information: it gives auser the possibility to retrieve data in a non-sequential fashion. The information that mostusers have experienced in their life is presented in a very linear way: open the book at thefirst page of chapter one and read on from there. This method has one drawback: Mostpeople don't assimilate information in the same way. An author's view of how to best16organize this document might not be the best solution for another person. If one wouldprovide ways for a user to control the information flow, the speed at which he learnswould increase. One of hypertext's great abilities is to provide a quick way to jump fromone place in the text to another, so that the reader controls the sequence of knowledgepresented to him.There are also other advantages in using this sort of medium. One can present informationin many forms: pictures, sound, video, etc. This multiple medium support system is calledmultimedia, or hypermedia. All of a sudden, information is not static anymore: the useraffects directly his learning path so he feels closely involved in this journey.In the following sections, the basic concepts of this new technology will be discussed inmore detail.3.2.1 HYPERTEXT SYSTEMThe concepts of hypertext (or hypermedia) where laid out as early as 1945 by researcherslike Vannevar Bush (Ref. 11). Bush, who was at that time director of the USGovernment's Office of Scientific Research and Development, wrote an article in theAtlantic Monthly in which he sketches his vision as a tool that will aid knowledge workers.It would retrieve and organize vast amounts of information and provide ways of retrievingselected parts of this "database" very quickly. He even proposed the concepts ofindividual links that transfer the user from one point to another in the database. Thisvision of information storage was not realized at this time because the microfilmtechnology was not efficient enough. Nevertheless, these ideas became the foundingconcepts of hypertext.173.2.2 HYPERTEXT BASICSThere are three basic features to a hypertext/hypermedia knowledge base:• A network of nodes,• Links between nodes,• Buttons.Nodes are the parts of the hypertext that contain the text and other kind of information(picture, sound, video). It's the information the user is interested in. The links connect thenodes together: they permit the user to jump from subject to subject. Some examples oflinks are tables of content, index to documents, etc. Finally buttons are specific locationsin the hypertext where a user can jump from one node to another via a link. Basically,these are the physical representations of the links in the hypertext. (Fig.3.3)Fig 3.3 Hypertext representation.183.2.3 ADVANTAGES OF HYPERTEXTAs we have said before, hypertext enables the reader to make decisions on how tosequence the available information. It does not restrict the user to some predeterminedpath to an answer because of the existence of multiple links to every node. These types oflinks between related topics help the user to learn by association. Parallels betweensubjects that were not obvious in a more traditional text become very apparent in this typeof structure. The knowledge is also stored in many formats so that the user has manyways of understanding the same idea.Some of the advantages of using a hypertext system can be listed as follows:• Rapid browsing,• Non-linear organization, multiple paths to information,• Promotes associative thinking,• Multi media capabilities.3.2.3.1 RAPID BROWSINGHypertext permits the user to rapidly switch from subject to subject. He/she can navigatethrough the knowledge base to get the data he/she needs in a very efficient manner. Also,the reader can switch from problem solving to information gathering in a fraction of asecond. Additionally, there is a possibility of context sensitive learning: if the user needsinformation on the specific problem he is dealing with, the hypertext system can bring himto the pertinent subject matter quickly.193.2.3.2 NON LINEAR ORGANIZATION, MULTIPLE PATHS TO INFORMATIONAs was discussed earlier, information in a hypertext system is not stored in apredetermined way. A user can access what he finds important in many different ways.The programmer can define a more predetermined structure in a table of content or anindex of topics. Also even "hard wired" training sessions can be implemented, but ingeneral, the user is quite free to do as he/she pleases with the information flow.3.2.3.3 PROMOTES ASSOCIATIVE THINKINGThe use of a hypertext system promotes associative thinking. The reader cannot gothrough the hypertext passively. When he finishes exploring the information at a node hehas to take action or go to another subject. By jumping from node to node, he createsassociations in his head that help him get a deeper sense of the subject matter. This isprobably due to the fact that the humain brain does not store information in a sequentialway but by associations of ideas. So hypertext provides a more natural way ofunderstanding, remembering, and learning concepts.3.2.3.4 MULTI MEDIA CAPABILITIESAs hypertext is not limited to textual information, it has the capability of informing theuser in many ways. Pictures, graphs, sound, video can all be used to illustrate principles.Thus, the user can grasp the concepts that are difficult to describe on paper by viewing ashort video clip, for example. The user has many chances of approaching the knowledge:he/she can choose the information delivery medium which works best for him/her.203.2.4 DISADVANTAGES OF HYPERTEXTThere are many reasons for using a hypertext system as noted earlier: rapid browsing,non linear organization, etc. However, there are some problems using ahypertext/hypermedia system:• Information can be difficult to find,• Users can become lost in hyperspace,• There can be difficulties in maintaining a hypertext system.3.2.4.1 INFORMATION IS DIFFICULT TO FINDUsually, most information stored in a hypertext system is easily accessible. Nevertheless,as the number of topics in the knowledge base grows, so does the number of links itcontains. There is a point where a user may reach a state of learner's block. It might bevery hard to decide where to go next because of the great number of possibilities offered.A programmer could choose to restrict and organize the information that is available to auser. Cues and signals to a user should follow a certain convention, so that no informationbecomes hidden or lost.3.2.4.2 LOST IN HYPERSPACEThe knowledge bases can become complex. A user can sometime become very confusedas to where he is in the system. Where did he come from? Where is he going? A numberof factors can contribute to this state of affairs: large number of links, uncertainty of thedestination, inexperience of the user, etc.21A programmer can implement a number of solutions to this problem: he/she can furnish amap of the system (links and nodes), make a list of the subjects the user consults so he canbacktrack with ease. These methods solve most of the ambiguities but they take time toimplement, thereby costing effort and money.3.2.4.3 DIFFICULTY IN MAINTAININGA significant amout of effort goes into creating a hypertext/hypermedia network and intomaintaining it. This stems from the fact that whenever we add links or nodes, existingones become more or less important or even obsolete. Much work has to go into pruningand upkeeping the network. One cannot do this haphazardly: specialists that are aware ofthe implication of their action have to work on the project. Needless to say, it takes muchenergy and time.224.0 THE WISDOM PROGRAMThe previous chapters reviewed basic techniques developed to manage information. Withtoday's high speed computers, the implementation of knowledge systems is now possible.The welding domain has been a very specialized area in which many engineers have onlylimited experience. For this reason, it was a very good candidate for casting as an expertsystem. The following pages describe the different modules of WISDOM, the weldingexpert system. At first, the main module is described, it contains all the design modules.The basic screen layouts, different analysis procedures and interactive navigationcommands are reviewed. The final part of this chapter looks at the knowledge basecomponents and the interactions between them and the main calculation module.4.1 WISDOM INDEXThe first screen, containing the index can be used to navigate to all the general modules ofthe WISDOM system. The user does this by clicking on the appropriate button.Currently, WISDOM contains three operating modules: the design modules, theknowledge base and the figure library. All of these are described in more detail in thefollowing text. An introductory tour and other sub programs loosely related to theWISDOM system are also accessible by the buttons on this page.4.2 THE DESIGN MODULESWhen one clicks the "to design module..." button, it branches to the template index. Thisscreen is divided into three main categories: the elastic and plastic weld group design andthe design of connections. Here again, the user can click on the appropriate button toaccess the template of his choice. The elastic and plastic weld group design templates and23its formulae replace the equivalent tables from the CISC "Handbook of SteelConstruction" (Ref.6). A short summary of these two types of design methods and a shortdescription of the use of the three types of design modules used in WISDOM follows.4.2.1 ELASTIC ANALYSISElastic analysis is a proven and safe way of calculating the strength of eccentrically weldedconnections. One has to break down the continuous beads, that make up the weld group,into many small elements of length DI for the analysis. All of these small pieces contributedifferently to the overall resistance of the weld group.For eccentrically loaded connections, it is easier to consider the factored shear per unitlength of weld; which is also called the factored shear flow (qf). It is the resultantproduced by the concentric shear load and the torsional moment acting on the connection.Four basic hypotheses are made in elastic analysis.a) The concentric shear load is equally distributed on all the weld line elements(elements of length Dl).b) A linear strain distribution is assumed, that is, the resulting force couple submits aunitary element to a force proportional to the radial distance of this element to thecenter of gravity of the group. The deformation occurs in a direction that isperpendicular to this radius line.24c) The shear flow developed in the weld group due to the concentric shear forceand the torsional moment at the centroid, sum vectorially to produce a resultingshear flow, which typically varies along the length of the weld.d) The factored resistance of the weld group is reached when the resultant shearflow in the most critical region reaches the factored critical shear flow of an unitaryelement.The following equations result from the preceding hypotheses:(1)qf = . ( P +  MX m 2) 41 H ±  Mym)2<Dqr0 R ) 1 R)1The nominal size of the fillet weld is given by:(2)Figure 4.1, taken from Picard & Beaulieu's "Calcul aux etats limite des charpentes d'acier"(Ref. 9), describes the terms used in the equation.25Fig 4.1 Elastic analysisIn equation (1), we use the following notation:1= total length of weld = f dl;xm= abscissa of the critical weld point taken from the center of gravity;Ym = ordinate of the critical weld point taken from the center of gravity;r = distance of any weld element from the center of gravity;R = Geometric Constant of the weld group = f r2d1.If a weld group has beads parallel to the X and Y axis, then we calculate the parameter Rwith this formula.26nR = E(Ki ± iyi)^(3)i=1The parameters are defined as:n = number of weld beads;hi = Second moment of inertia about the X axis of the weld group, per millimeter ofnominal thickness ( mm3 );Iyi = Second moment of inertia about the Y axis of the weld group, per millimeter ofnominal thickness (mm3 ).The elastic design templates of WISDOM use these basic principles. The most criticalarea for each of the weld group geometries is determined. These areas are found by takinginto consideration both their positions relative to the center of gravity and the orientationof the forces applied on the weld group. The maximum factored shear flow can be foundat these points. Thereafter, the factored shear resistance at that point is compared to theweld resistance to evaluate if the weld bead size is adequate.The WISDOM program contains a few elastic design templates for different design cases.They all support both horizontal and vertical loads or a combination of the two. Theelectrode type is also an input parameter. The following geometric layouts are available:• Box shaped weld group,• C shaped weld group,• L shaped weld group,27Es BeMIE1Welding hilurniotion Svsleirt '92Efle printknit Back914&4$05ticv1:31T§:Y#410.Vr 0.67X.0.67X11.707X480X10Ix 140.3/6^..457333 mm.3ly — 14016 • 1411 X902.2^—567023 mm.3lp 457333 • 567023^.1024356 mm.3Vx 1042 X 140)1^.41.036 kli/rnmVy— 120/9 )1 140):^-0.429 kN/mmVxb — I(10X0•120X-100)X(140/2)/1024356)I—0.820 kftrmmVyb (10X0•120X-100)X(90/2)/1024356):kti/rnmV^1(01336•11.g2flr 2•10.429.0.527).2).—1.283 kli/rere•^Two parallel vertical weld lines,•^Two parallel horizontal weld lines.4.2.2 THE ELASTIC DESIGN TEMPLATEThe screen of this type of module is separated into two main parts: the parameter inputregion and calculation region. (Fig 4.2)Fig. 4.2 Elastic design template.One can enter all the parameters needed to complete the calculations with the help of a"active drawing" describing the weld group geometry. Active drawings are figurescontaining alterable input fields. The physical dimensions like the length and size of theweld beads are needed, as well as the horizontal and vertical loads with their eccentricitiesfrom the weld group center of gravity. If there is no horizontal load, for example, oneneeds to enter "0" in the appropriate input location.28Page Elle Print ELECTRODES • •I Back IOrttl Nrr—Tc"."1-171, r17.77-ra .t1Weldin Information S tern 12 LI*RAmp.0444,..^P48181:0814814.-Affia'r:818r'.:'.:1009100.06W4.81Bk0 E480^ 411.47;450X15.441-400016..."Lwr:480<Fu<550^400W,400WT• E550^ 400A,400AT55000 MOftk9g.,:fl-23 idlimm7333 rnre37023 mre34356 nure3Mint m29 kN/mm356N0 Minim7 kWmmV*4ktikrunOne can change the electrode type by pressing the electrode button situated in the bottomleft corner of the screen. A small text field to the left of the button lists the current choiceof electrode. If the control activates, a small pop-up window appears, (Fig. 4.3). Itcontains a list of all the major types of electrodes. Other reference information included isthe ultimate weld strength in MPa and the associated base metal grade. The currentchoice in this window highlights in yellow; this highlight color will toggle as the usermakes new choices. When the changes are final, the user can press the OK button toreturn to the design module.Fig. 4.3 Electrode pop-up window.One enters the different values, the overall strength of the weld group is recalculatedautomatically in the right part of the screen. The user can force the recalculation of theequations by pressing the Recalc button on the navigation bar at the bottom of thetemplate. The overall resistance value (Vr) in Ith/mm uses a highlight color as well as theunit length shear flow value(V). When the highlighting color is blue the resistance of the29Angle Welds^*oi-p-a-Faili ",? 133 kti•mln=497109 mm^3=171696 mm"3—668805 mm^3—.14000kN-mm.41.174 kN/mm—0.522 kit/mm• ktilmm▪ kN/mm▪ kNimm—1.516 kN/mmmEr• ktPcumFte:Cdte 1":4;4;;41 ttml+V.t.group is sufficient. If the color is red, the resistance is smaller than the flow, which meansthat the design is not adequate.One of the templates has a special feature. The angle weld module has an extra buttonsituated next to the electrode button. It controls the change of geometry of the weld group(Fig. 4.4). The use of this control is quite similar to that of its neighbours. When pressed,a pop-up window containing the four available choices appears (Fig. 4.5). The user justhas to click on the options that suits him and press the OK button to return to the mainprogram. He/she should perform this operation before entering the weld groupdimensions since the four have independent calculation modules.Fig. 4.4 L shaped weld.Welding Information System '92 IHOEage Elle &intFig. 4.5 Pop up to change the L shape geometry.304.2.3 ULTIMATE CAPACITY ANALYSIS (PLASTIC)The elastic analysis assumes that the weld group will behave elastically until its ultimatecapacity is reached. This hypothesis is wrong. Firstly, the weld's force-deformation curveis not linear. Secondly, the welded material around the beads plastifies due to high localstresses, causing the connection as a whole to deform in a highly non-linear way even inlight loading conditions. Therefore, one assumes certain conservative hypotheses to usethis method of calculation. The full strength of the weld group is not taken into account,which in return reduces the efficiency of a weld analysed by this method.As in elastic analysis, the weld beads are subdivided into small elements of length Dl. Theanalysis procedure takes into account the angle between the direction of the force and theweld bead since the resistance of the weld elements varies with this angle 00. Thiselement then has his own load deformation curve characterized by the ultimate level (Au)from which one can calculate its critical shear flow (Fig. 4.6). To define these twoparameters, we use equations (4) and (5) are used which were developed by Butler et al.(Ref. 10). The resistance of the weld group is calculated by summing the individualelement's capacities.Au = 0.225 (0 i +5)-0.4710+ 00.92 + 0.06030Qu -31Fig. 4.6 Ultimate Capacity AnalysisThese two parameters only describe the last point on the load-deformation curve. It isobvious that not all the weld elements will reach ultimate deformation at the same time.So, an equation has to be defined to calculate the shear flow in an individual element (Qi)for a given deformation level (Ai) (equation 6).Qu = Qu(1- Cli A1)2'wherepi = 2.95 e0.0114 0 iand2i = 0,40 e0,0146 0 i32The prediction of the ultimate connection strength is based on the following assumptions:a) The weld group rotates around the instantaneous center of rotation. This centerof rotation is distinct from the center of gravity of the group. Its position isdetermined from equilibrium considerations instead of using geometry.b) The direction of the resulting force on a weld element is perpendicular to the linejoining the center of rotation and center of the element.c) The deformation of a weld element is directly proportional to the distancebetween that element and the center of rotation. This deformation occurs in adirection perpendicular to the radius line that connects the center of rotation and theweld element.d) The ultimate capacity of the connection is reached when the most solicited weldelement attains its ultimate deformation level.This method of calculation uses values that are presented in tables of the CISC's"Handbook of Steel Construction" (Ref. 6). If the specific geometry of the weld groupdoes not exactly fit table input parameters, interpolation was used between known valuesto calculate the "C" coefficient. This "C" coefficient multiplied with the nominal size ofthe beads and their total length, gives the ultimate strength of a weld group.The WISDOM program however uses an algorithm based on the equations of statics andthe non-linear load-deformation curve to calculate the "C" factor for a given geometry. Itdoes not interpolate between any table values. This method eliminates calculation errorsand makes the use of plastic design more versatile and generally easier.33The plastic calculation templates are limited to vertical loads and the moment only,although they support the use of all electrode types. The geometric layouts supported byWISDOM are the following:• Box shaped weld groups,• C shaped weld groups (loads on the open or closed sides),• L shaped weld groups (loads on the open or closed sides),• Two parallel horizontal weld lines,• Two parallel horizontal weld lines.4.2.4 THE PLASTIC DESIGN MODULESThe plastic design module screen is divided into three main parts: the graphic inputsection, the calculation section and result summary.The dimensions of the weld group and the applied loads are entered after which anexternal C language dynamic link library calculates the instantaneous center of rotationassociated with these input values. The library's output is the "C" coefficient: theequivalent of the variable of the same name used in the CISC design table (Ref. 6). Thenwe can calculate the associated values like the resistance are calculated using thisparameter.The output or calculation section lists all these values and their associated formulae. Thesoftware does not calculate the "C" value with the formula shown, the external program34does that with an iteration process. The formula is shown that way in order to ease theuser's comprehension.At the bottom of the screen, the result section shows graphically the relation between theresistance and the loads. Both color and symbols are used in this template to communicatethe adequacy of the strength of the weld group. If the color turns to red, the load is toohigh,but when it turns to blue, the resistance is adequate.4.2.5 THE CONNECTION DESIGN MODULESAt this point,the design of three types of basic steel connections has been implemented: asimple tension member, a double angle connection, and a flexible beam to column (B-C)connection. The tension member and double angle templates will be discussedsimultaneously because of their similar workings, the description of the flexible B-Cconnection will come last.4.2.5.1 TENSION MEMBER AND DOUBLE BRACKET CONNECTIONThe general format used in these templates is quite similar to the one described previously.The main screen is divided into two parts: input fields for the geometry and result area(Fig. 4.7).35Fig. 4.7 Tension member design template.The geometry of the whole assembly is entered in the appropriate fields situated in the topleft corner of the screen. The program executes the calculations every time the userchanges fields or presses the enter key. The electrode and base metal types are variablesin this problem; the user can change their values using the buttons situated just above thenavigation bar on the left side of the screen. Both buttons have small listings of the currentvalves used in the calculations. When the user clicks the base metal control, for example,a pop up window appears. It shows the most common steel grades (Fig. 4.8). Once theuser has chosen the appropriate type for his problem, he can click on the OK button toreturn to the main module.361.:•714Weldin Information System '92f3asc metal^04••••••^••••••••••^••••••^• ••^•••Eatie Elle print'MON:1004ftZINC:150VA; 350ka5BArmovioinwr ^400W. 400WT. 400A. 400AT4801K.4BOWT..4110X:4BOAT^0 FY The^71XM:700QT:1 . 0K^1VIM= Tr5 kNjest& MIVrbo FY 260o FY no0 PI 350o FY noOF). 40010 FY MN4524^"PRau 41c I, Back1...?T:1#i:t. •Fig. 4.8 Commercial steel grade pop up window.Another feature of these two modules is the graphical reprensentation of failure oradequacy: When the resistance of the overall arrangement is lower then the applied loadthe picture of the connection changes to show the failed state (Figs. 4.9 and 4.10).Fig. 4.9 Resistance OK.37Fig 4.10 Resistance not OK.It should be noted, that the program does not currently check the minimum and maximumpermissible weld bead sizes. The user should still refer to the proper tables in the CISC"Handbook of Steel Construction" (Ref. 6) or any other suitable text to check the weldbead size against the plate thicknesses.38Wetding Infortnetlen Systere 412irt0"° iithg it" 1 Back  Previous Littaigifage file Print:Flexible B-C ConnectionBEAM L Depth (elm): .31?Flange width peg :MIFlange thickness (mm: 1F2Web thicknese Imm):10.2k value (elm) :15Minimum ylehl etc. (Ws) • 1.1.30CO (material fader) :Beam end shear (kN):AMA :-Leg length: outstanding seat (ren)leg length: welded to column imm;Thickeess (norm B to 10 mm)Length of angle bearing against column (mm):Minimum yield strength (MPs): 11dLength of angle seat (elm): 211::ElearecleCOLUMNtinge width (mm) : 254F ange thickness (Mm): 14.2Minimum yield strength QAPtg4.2.5.2 FLEXIBLE BEAM TO COLUMN CONNECTIONThis design module can be used to replace a part of the "Seated Beam Shear Connections"tables used in the CISC "Handbook of Steel Construction" (Ref 6). This connectionconsist of a thick angle welded to column flange. Most of the load is transferred to thecolumn only in shear, transfer of moments to the support is neglected. For furtherinformation about this type of connection refer to Ref. 6. The plastic design approach hasbeen chosen for the analysis. Contrary to most other design templates, the results are notlisted on the same screen as the input parameters. This approach was used because thenumber of entries was too large to be contained in a small area. (Fig. 4.11 Fig.4.12)Fig. 4.11 Flexible beam to column design template.39Fig. 4.12 Analysis Page.The input values are separated into four distinct regions. Each section has been reservedfor one of the assembly's parts: the column, the beam, the angle, and weld. Most of theentries are self-explanatory and a small pictorial is provided in the help system. If the userplaces the cursor over any of the feature of the connection (column, beam or angle), themouse pointer changes to the help pointer (Fig. 4.13). Then if he clicks the right mousebutton, a small diagram appears. It shows the part of interest with its descriptive terms(Fig.4.14). Once the user finishes the query, he can click on the OK button to return.Fig 4.13 Help cursor.40Beam end Omar ottq :flange thicknessgage Elir envir nano inforo.tinn^"JZat (tom) :75umn (mm) 1EWm): Itgalest column (mm) ::1502113[Electrode OnZPOWIMMEMOttti^( Back 1 1221___.iotashiti.j022pgoivf...,NeasimmmetrammAtAmmimmiltw:Atvezastmov.:ama.;;I:vmk.mwte,m00;m2Aczturom flange widthFlange wiFlange thlMinimum yield strength (11Pa)xible13-C Curmedinn; 411Ith (nun) :1'31*nese (mm) : 16%2ass (mm) :WSeld ear. (110Pa) :facto'): 0,9Fig.4.14 Help pop up window.The type of electrode and base metal type is also of interest in this problem. One canchange the electrode type by using the same operating steps described previously: the userclicks on the button in the right corner of the screen, chooses the appropriate type andthen clicks on "OK." As for the base metal type, this template uses a slightly differententry method. The user has to place the mouse cursor over the words "minimum yieldstrength (MPa)" on the screen (the mouse cursor changes its shape (Fig. 4.15)) and thenpress the right mouse button to make the base metal window appear. The user can inputthe rest of the values directly through the use of the keyboard.41Fig. 4.15 Box cursor.Once the operator has replaced all the design parameters, he can click on the analysisbutton, situated in this module only next to the index button on the navigation bar, to getthe results. (Fig. 4.12) The program shows a number of intermediate values: this gives anindication of possible design improvements. Clicking on the back button returns the inputpage to permit corrections to be made.4.3 THE NAVIGATION BARA few "standard" buttons are used throughout the WISDOM system. The user will findthem at the bottom of the page for ease of access in the form of a typical navigation bar(Fig.4.16). The following text describes the most common buttons in detail.Fig. 4.16 Typical Navigation Bar.424.3.1 THE QUIT BUTTONThis button allows the user to quit the current module at any time. If the current moduleis the picture library, the knowledge base takes back the control. If the current module isthe knowledge base, the main design module takes the control.4.3.2 THE RECALL BUTTONThe recalculation button will initiate the recalculation of the current design module.Usually, the user lets the program do the recalculations automatically by changing theinput values or by pressing the enter key on the keyboard. However, this feature has a"fail-safe" way to ensure that the calculations on the screen represent the results calculatedfrom the current geometric parameters.4.3.3 THE KNOW BUTTONThe know button is the physical representation of one of the most important features of theWISDOM system. It provides a context sensitive link between the current module and theknowledge base. For example, if one clicks on the know button situated in the doubleangle connection module (Fig. 4.17) it will take you to the related topic of the knowledgebase (Fig. 4.18). (See the knowledge base section for more information). If no subjectlink exists, the know button will leave the user in the index part of hypertext system.43- 351Welding InforWiation S'yutern "32Ease file Printa-Ex/L^- 100 / 150 -0.67M2 X thick".cf. Exi -Xis 132 x 90^- 180.0 ram300 X 18 -6.00480 X 20jnetalPr•0.5 what  • 0.5 0.67 (300 180.0 150 / 0.67 IK^-506.25 Kna(CM2)r^ .1 #iiiiej....EITEME21Fig 4.17 Double Angle Connection Template.MSD0h4.92 KtkewleritteThe double angle connection Is one of the most commonly utilized framingsystems used to develop the required rotation capacity. Its symmehical.1 design combined with ease of fabrication provides for an efficient andeconomical flexible connection.The WISDOM system will only be considering weld fasteners connecting thedouble angles to the supporting and supported members. Typically, theseheader angles are shop welded to one of the adjoining members, with the final11 welding for the connection being completed in the field. Coping (lithe lowerbeam flange may be required for erection purposes. Figura t and trinrE. illustrate the4 typical double angle framed beam_columnconnection.:4 Double Angle connection ill  and Double Angle connection  gji provideA some basic considerations regarding this system.The ranur—aliiiaiii-Sh-War Conner-Alen Desion Milq permits theA design of weld fasteners used in this connection.Fig 4.18 Knowledge Base Page.444.3.4 THE INDEX BUTTONThis button will take the user to the WISDOM main index.4.3.5 THE BACK BUTTONThe WISDOM system automatically keeps track of the topic the user has visited. Clickingthe back button will take him to the previous topic he was exploring.4.3.6 THE PREVIOUS BUTTON AND NEXT BUTTONThese buttons take you to the next or previous topic in the program. The effect is likeflipping pages in a book. When the user has reached one of "the covers" and cannot gofarther, then the button's label turns white.4.4 THE KNOWLEDGE BASEAnother important part of the WISDOM system is the large knowledge base on weldingbasics, welding procedures, connections, etc. This feature is accessible through the use ofthe know button of the main program or the knowledge base button situated in the mainindex. With the help of a context sensitive link this sub program is activated. Theknowledge base will automatically jump to the topic of interest. If not, it will go to theknowledge base index.453 fiel-d. Coping of the lower.1s. 'Figure 111 and  iqure A mustViSThEZI a^CafChWIS1101,112 Knowled e BaseIMOliFootioolVThe double angsystems used todesign cambiaeconomical lieThe WISDOMdouble anglesheader angleswelding for thebeam flange to, typical doubleconnection.II some basic co.1: The =Indesign alah!r1,70:477.:V2Z%Z.\4.4.1 TYPICAL KNOWLEDGE BASE PAGEA typical example would be: a user who is working in the design template environmentcompleting the sizing of a double angle connection (Fig. 4.17). He wants to know moreabout this type of connection and presses the know button. This action will activate theknowledge base; it appears as a screen with three main parts: a title bar, main text fieldand standard navigation bar (Fig. 4.18). The title bar describes the subject content of themain text field that may or may not have a scroll bar. These text fields can contain"hotwords" (Fig.4.19). The user can navigate through the text and also show relatedfigures or diagrams by clicking on these (Fig. 4.20).Fig. 4.19 Hotwords.Fig. 4.20 Picture library.464.4.2 THE KNOWLEDGE BASE CONTENTThe WISDOM system contains a variety of information on welding and weldingprocesses. This knowledge base exists in a hypertext form, which does not have a veryrigid structure compared to more traditional texts. However, it contains several subjectblocks that interrelate by hypertext links. The subject matters will not all be dicussed indetail This can best be seen by browsing through the hypertext. A short description of themain blocks might be useful, however general welded construction are discussed in theone of the main blocks. The topics contain subject matter on the pros and cons of usingwelding in construction. Another part describes the more fundamental topics like "steel"and the many types of production methods used to fabricate it: blast furnaces, vacuumfurnaces, etc. Also, there are general notes on steel properties: phase diagrams,metallurgy, etc. Another block of topics encompasses welding basics. There is a shorthistorical background of welding processes, and a description of the main weld types:fillet, plug, etc. The next section gives short descriptions of welding defects, problems inwelding thick and thin plates. This section also contains topics on design considerations:steel grade choice, electrode choice, detailing practices. Descriptions of popularconnections are included with short texts on their advantages and limitation.A great number of topics are covered in the text. They provide an extensive reference on awide range of questions that a designer might encounter in his daily practice.474.4.3 THE KNOWLEDGE BASE INDEX AND TABLE OF CONTENTThe knowledge base index (Fig. 4.21) helps a user find a specific topic. It includes thecomplete list of titles in the top left corner of the screen. The use of this list is quitesimple: search out the topic of interest by using the scroll bar or the alphabetical search(the letter bar at the bottom). Double click on the choice and the display proceeds to thattopic of the knowledge base.Fig. 4.21 Index of subjets.WISDOM also furnishes an active table of content (Fig. 4.22). Its use is quite similar tothat of the index. The user can browse through all the subject matter of the knowledgebase, then go to a topic of interest by clicking on the "hotword" that describes it.48• • •; 4.!43A,-7,11atIP-ritrtFig. 4.22 Table of content.4.5 THE FIGURE LIBRARYThis library (Fig. 4.20) contains over 200 diagrams, graphs and connection details. Thesepictures are accessed through the hypertext of the knowledge base. When a user clicks onone of the hotwords related to a figure: a small windows containing the picture of interestoverlays the existing screens. A navigation buttons is located at the bottom of the page sothe user can flip through the diagrams. The user can exit this module by pressing the QUITbutton.49SUMMARYThe primary objective of the WISDOM is to promote welded design through weldingawareness. Many young engineers are coming out of their studies with only limitedknowledge of welding techniques. This in turn makes some uncomfortable about usingeven the most basic welding design. It was thought, that by using a program that facilitatescalculations and provides ways for a person to quickly learn more about the subject athand a greater general quality could be achieved in the industry. With the interactiveknowledge base the software achieves this objective. For example, a person can look forspecific piece of information or read about the whole iron making process.Another objective, visualization of the problem, was attained by using a MicrosoftWINDOWS based programming language. Because of this, the program's frameworkbecomes very graphical, and all of the commands are very simple to use. The complexinteractions between the modules are hidden in the background, thus enabling the user toconcentrate on the task at hand without worrying about the overhead. This gives him/hermore time to understand the different variables that make a good welded design. If adesigner wants to learn more about a problem, the information is at his fingertips.WISDOM was not meant to end at this stage. Because of its open structure, thisprogram can easily be expanded. A number of design aides can be added to the existingframework or other modules can be developed independently and "hooked-up" to theexisting program. Also, with the advancements in technology, one can foreseeenhancements in the existing structure that drives the software. CD-ROM with its massstorage capabilities will probably be used to store short video clips and sound effects torender subjects even more effectively. A student or professional will, for example, be able50to see on screen different welding machinery at work, short instructional clips, etc. Themore technology advances the more one needs tools to deal with the information that isgenerated by it.This pilot project was an attempt at using non-traditional information organization on aclassic textbook subject. Engineers are asked to know more and more, and learn it in ashorter period of time. They have to start at looking at different techniques of learning tohelp the traditional textbook approach, because they will probably have to deal withinformation overload sooner than later. The WISDOM project attempted to address thisproblem head on. Through new data structuring techniques and the use of the WINDOWSenvironment, the result of this work was a very graphical program with a large and easy touse knowledge base. The main conclusion of this work is that: more work has to be donein the field of knowledge organization, because the capacity of the system is growingfaster than the capabilities of humans to systematize it.51Bibliography1. SCHADER, M., GAUL, W., "Knowledge, Data and Computer-AssistedDecisions", NATO Advance Research Workshop on Data, Expert Judgment andDecision, Spinger-Verlag, Berlin New-York, viii, 1990.2. MUMPOWER et Al., "Expert Judgement and Expert Systems", NATO AdvanceResearch Workshop on Data, Expert Judgment and Decision, Springer-Verlag,viii, Berlin New-York, 1987.3. WATERWORTH, J., "Multimedia: Technology and Applications", Ellis Horwood,New York, 1991.4. COTTON, B., OLIVER, R., "Understanding Hypermedia: From Multimedia toVirtual Reality", Phaidon Press, London, 1993.5. NEWELL, A., SIIVION, H.A., "Human Problem Solving [by] Allen Newell [and]Herbert A. Simon", Prentice Hall Inc., Englewood Cliffs, N.J., 1972.6. Canadian Institute of Steel Constrution, "Hanbook of Steel Contruction",Willowdale, Ontario, october, 1991.7. Canadian Standards Association, "Limit States Design of Steel Structures",CAN/CSA-S16.1-M89, Rexdale, Ontario, 1989.8. Canadian Standards Association, "Welded Steel Construction (Metal ArcWelding)", CSA W59-M1989, Rexdale, Ontario, 1989.9. PICARD A., BEAULIEU D., "Calcul aux Etats Limites des Charpentes D'Acier",Institut Canadien de la Construction en Acier, Willowdale, Ontario, 1991.10.Butler, Lorne J.., Pal, Shudendu and Kulak, Geoffrey L., "Eccentrically LoadedWelded Connections", Journal of the Structural Division, Proceedings of ASCE,May, 197211. Bush, Vannevar," As We May Think",Atlantic Monthly, January, 194552Appendices AWISDOM Scripts53Wisdom.tbk book scriptto handle keyDown keyif key is keyF3send authorbreakendforwardend-- change default setting of text when entering bookto handle enterBookrestore systemgo page 1set sysFontFace to analset sysFontSize to 10set sysFontStyle to boldset sysCursor to 1set sysDecimal to "."set sysTabSpacing to 1584set syschangesdb to falsehide scrollbarlet's change the menurestore menuBar at bothremove menu "file" at readerremove menu "edit" at readerremove menu "text" at readerremove menu "help" at readeradd menu %File" at readeradd menultem %Compact Book" to menu %File" at readeradd menultem "&Quit" to menu %File" at readeradd menu "&Print" at readeradd menultem "&Print Page" alias "printPage" to menu "Print" at readeradd menultem "Print &Results" alias "printresults" to menu "print" at readerdeactivate menultem "printPage" at readerdeactivate menultem "printresults" at readerremove menuitem "NewPage" at readersend readerlinkDll "WISDOM.d11"long boxAlIC (double,double,double)long cweldcc (double,double,double)long cweldoc (double,double,double)long lweldcc (double,double,double)long lweldoc (double,double,double)long parhorc (double,double,double)long parverc (double,double,double)long outplaneverc (double,double,double,double,double)end linkdll54-- firstTime is a book property, if it set to true, the first time a-- user opens Wisdom he will be prompted to see if he wants to take-- the quick tour. Before sending out wisdom, the command window should-- be used to set the propertie to true.set firstTime of this book to trueget firstTime of this bookif it is truerequest "Do you want to take a quick tour of WISDOM'92 first ?" \with "OK" or "Cancel"if it is "OK"set the firstTime of this book to falsesend startExe "wistour"send savesend exitbreak to systemendendendto handle printPageget name of this backgroundif it is "normal"hide group "buttons" of this backgroundset printborder to falsestart spoolerprint 1end spoolershow group "buttons" of this backgroundend ifendto handle printResultsset printerFields to "view"set printerStyle to groupsset printerFieldNames to falseset printerFieldWidths to 9360set printerRightMargin to 1440start spoolerprint 1end spoolerendto handle dolnfo Conte)dInfo-- start workhelpsend startExe "workhelp"-- make workhelp find the topic55executeRemote "send doinfo "&&contextInfo \application toolbook topic "workhelp.tbk"set syssuspend to trueif item 1 of syserror is not "ok" thenrequest item 1 of syserrorbreakend ifset syscursor to defaultendto handle doFiguressend startExe "wpicture"set syssuspend to trueif item 1 of syserror is not "ok" thenrequest item 1 of syserrorbreakend ifset syscursor to defaultendto handle doProceduressend startExe "wform"set syssuspend to trueif item 1 of syserror is not "ok" thenrequest item 1 of syserrorbreakend ifset syscursor to defaultendto handle startExe ExeNameset syscursor to 4-- see if workhelp is runninggetRemote "sysWindowHandle" application "toolbook" topic \ExeName&".TBK"set hWnd to it-- if it is not then run itif hWnd is null--find ExeName.tbkclear sysErrorset syssuspend to falseget ExeName&".tbk"get book itset syssuspend to trueif syserror is not nullset syscursor to 1request strNoBook(ExeName)break to systemend--try running toolbook and the appset syssuspend to falseclear syserrorif sysruntime is trueset exe to "tbook.exe"run "tbook.exe"&& ExeName&".tbk"else56set exe to "toolbook.exe"run "toolbook.exe"&& ExeName&".tbk"endset syssuspend to trueif syserror is not nullset syscursor to 1request strExeNotInPath(exe)break to systemendelse-- maximize the windowlinkDLL "user"INT ShowWindow(WORD,INT)end linkDLLget ShowWindow(hWnd,3)unlinkDLL "user"end ifset syssuspend to falseclear syserrorset syscursor to defaultendto handle authorset sysChangesDB to trueshow menubarsend sizeToPageforwardendto handle readerset syschangesdb to falsesend sizeToPageforwardend--change default setting to system default when leavingto handle leaveBookset syslockscreen to trueunlinkDLL "WISDOM.DLL"restore systemendto handle quit-- send savesend exitendto handle GoToPage destgo to page destend-- Book strings57to get strExeNotInPath exereturn "The directory for" && exe && "is not in your current path. Change your path to include" && exe& "'s directory."endto get strNoBook ExeNamereturn "Can't find the book. Please copy"&& ExeName &".tbk into this directory."endto get strNumericValuereturn "Please enter a numeric value."endto get strCancelreturn "Cancel"endto get strOKreturn "OK"endto get strNotInPathreturn "Can't find Workhelp"endto get strGood r,creturn "Welded connection's resistance is enough ! "&c&"kN > "&R&"kN"endto get strNoGood r,creturn "Welded connection's resistance is not enough ! "&R&"kN > "&c&"kN"end--squeeze the hell out of a modified book--don't forget to change to the correct name of this book!to handle compactBookget name of this bookif it is nullrequest "Can't compact a untitled book."break to systemend ifclear sysErrorsave as "X.TBK",trueif sysError is not nullrequest "Save as X.TBK failed:"&&sysErrorbreak to systemend ifsave as it ,trueif sysError is not nullrequest "Save as original name failed:"&&sysErrorbreak to systemend ifend compactBook58Script of Page double Angle Connectionto handle leavefieldif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifput typeMet of button "metal" into fyput typeElec of button "electrode" into xuset qro to ((0.31737*xu)/1000)format number qro as "0" & sysdecimal & "000" from nulllocal Ig,ex,ep,gr,a,t,q,qualite1,qualite2,frput the text of field "Iongeur into Igput the text of field "excen" into exput the text of field "epais" into epput the text of field "grosseur" into grput the text of field "force" into frcalculation of basic values and formatingset a to (ex/Ig)format number a as "0" & sysDecimal & "00" from nullset t to (2*ep)format number t as "0" & sysDecimal & "0" from nullset q to round((fy1)/(xu*gr))format number q as "0" & sysDecimal & "00" from null-- put the entered values into the visible fieldsput the (text of field "excen"&" I "& text of field "Iongeur") into \text of field "champs1"put ("2 x "& text of field "epais") into the text of field "champs2"put (fy&&"X"&&t) into the text of field "champs3"put (xu&&"X"&&gr) into the text of field "champs4"put C="&&a) into the text of field "champs5"put ("="&&t&&"mm") into the text of field "champs6"put ("="&&q) into the text of field "champs7"-- control to see what equation template needs to be shownif a >= 0.4 thenset qualite1 to trueset qualite2 to falseelseset qualite1 to falseset qualite2 to trueend if59step i from 1 to 4set it to "equasup"&iput qualite1 into visible of field itend stepstep i from 5 to 14set it to "equasup"&iput qualite2 into visible of field itend stepif a >= 0.4 thenput ("0.5 "&" 0.67 ("&&fy&&t&&198," / "&a&&(q+2)&")") into the text of field equasup2set re1 to 00.5*0.67*((fylig)/(a*(q+2))))/1000)format number re1 as "0" & sysDecimal & "00" from nullput ("="&&re1&&"Kn") into text of field equasup3put re1 into itelseset re2 to ((0.5*0.67*((fylig)/(0.4*(q+2))))/1000)format number re2 as "0" & sysDecimal & "00" from nullset re3 to (2*qregr*Ig)format number re3 as "0" & sysDecimal & "00" from nullset re4 to (re3+((e2)*(re2-re3)/0.16))format number re4 as "0" & sysDecimal & "00" from nullput ("0.5X"&" 0.67 ("&&fy&"X"&t&"X"&lg&" / "&"0.4X"&&(q+2)&")") into the text of field "equasup8"put ("2 X"&qro&" X "&gr&" X "&lg) into the text of field "equasup9"put 0e2&" + ("&a&"2("&re2&" -"&re3&')/0.16") into the text of field "equasup10"put ("="&&re2&&"kN") into the text of field "equasup11"put ("="&&re3&&"kN") into the text of field "equasup12"put ("="&&re4&&"kN") into the text of field "equasup13"put re4 into itend ifif (it > fr ) thenhide paintObject "connec2"show paintobject "conned"elsehide paintobject "conned"show paintobject "connec2"end ifendto get strNumericValuereturn "Please enter a numeric value."endto get streancelreturn "Cancel"endto get strOKreturn "OK"endScript for Button Base Metalto handle buttonUpsend startExe "wbasemet"60put the name of this page into itset the prpage of button "ok" of page "tableau" of book "wbasemet.tbk" to itendto handle writeFieldget my typeMetput it into the text of field "typeMet" of this pageendScript for Button Electrodeto handle buttonUpsend startExe "welectro"put the name of this page into itset the prpage of button "ok" of page "tableau" of book "welectro.tbk" to itendto handle writeFieldget my typeElecput "E"&it into the text of field "typeElec" of this pageendScript for Tension Memberto handle leavefieldif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOKO or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend iflocal re1 ,xu,y1 ,y2,11,12,gro,gro61put typeElec of button "electrode" into xuput typemet of button "metal" into fyset qro to ((0.3535*xu)/1000)format number qro as "0" & sysdecimal & "000" from nullput ("0.3535 "&xu&&"=") into text of field "champs6"put (qro&&"kNimm^2") into the text of field "champs7"put the text of field "y1" into ylput the text of field "y2" into y2put the text of field "Iongl" into 11put the text of field "soul" into groput the text of field "force" into fr-- calculation of basic values and formatingset 12 to ((y1/y2)*11)format number 12 as "0" & sysDecimal & "0" from nullput 12 into the text of field "Iong2"-- put the entered values into the visible fieldsput (gro&" "&qro&&"&&I1&&"+"&&12&&") =") into the text of field "champs3"set rel to (groNro*(11+12))format number rel as "0" & sysdecimal & "00" from nullput (rel&&"kN") into the text of field "champs4"-- base metal resistanceset re2 to ((0.67*0.9*gro*(11+12)1y)/1000)format number re2 as "0" & sysdecimal & "00" from nullput ("0.67 0.9 "&gro&" ( "&11&&"+"&&12&&") "&&fy) into the text of field "champs5"put (re2&&"kN") into the text of field "re2"if ((rel < fr) or (re2 < fr)) thenshow paintobject "connec2"hide paintobject "conned"elseshow paintobject "conned"hide paintobject "connec2"end ifendScript Two Vetical Welds Plasticto handle leaveFieldlocal e,w,l,dif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreak62endbreak to systemendend ifforward leavefieldput the text of field "e" into eput the text of field "w" into wput the text of field "I" into Iput the text of field "d" into dcalculation of C by DLLset C to parverc(I,w,e)set c to (c/1000)set pr to (eel)format number C as "0" & sysDecimal & "000" from nullformat number pr as "0" & sysDecimal & "0" from nullput (c&&"X"&&d&&"X"&&I) into the text of field "Pr1"put ("="&&pr&&"kN") into the text of field "Pr"put (pr) into the text of field "Cr1"put (d&&"X"&&I) into the text of field "Cr2"put ("="&&c) into the text of field "Cr"put (pr) into the text of field "Dr1"put (c&&"X"&&I) into the text of field "Dr2"put ("="&&d&&"mm") into the text of field "Dr"put (pr) into the text of field "Lr1"put (c&&"X"&&d) into the text of field "Lr2"put ("="&&I&&"mm") into the text of field "Lr"result fieldput the text of field "p" into pset the text of field "PRV' to (pr&&"kN")set the text of field "PV" to (p&&"kN")if (pr>=p) thenset the text of field "signe" to ">"set fieldColor to "240,50,100"elseset the text of field "signe" to "<"set fieldColor to "0,50,100"endset list to objects of group "view"while list is not nullpop listset strokeColor of it to fieldColorendendScript For Two Vertical Welds Plasticto handle leavefieldif focus is not nullget text of target^--localize the text of the field63set syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1 --try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "vfx" into vfxput the text of field "vfy" into vfyput the text of field "Ix" into lxset lx to (-Ix)put the text of field "Iy" into lyset ly to (-Iy)put the text of field "I" into Iput the text of field "b" into bput the text of field "d" into dset xu to typeElec of button "electrode" of this pageset qr to ((0.67*0.67*0.707*xu)/1000)set vr to (qrAd)format number yr as "0" & sysdecimal & "000" from nullget ("0.67X0.67X0.707X"&xu&"X"&d)set text of field "VVR" to itset text of field "VR" to ("="&vr&&"kN/mm")set ix to ((IA3)/6)format number ix as "0" from nullget (1&"3/6")set text of field "vix" to itset text of field "ix" to ("="&ix&&"mmA3")set iy to ((1/6)+((1*(bA2))/2))format number iy as "0" from nullget (I&"/6 + "&l&" X "&b&"A2/2")set text of field "viy" to itset text of field "iy" to ("="&iy&&"mmA3")set ip to (ix+iy)format number ip as "0" from nullget (ix&&"+"&&iy)set the text of field "vip" to itset the text of field "ip" to ("="&ip&&"mmA3")set vx to abs(vfx/(21))format number vx as "0" & sysdecimal&"000" from nullget ("1"&vfx&"/(2 X "&l&"):")put it into the text of field "vvx"set the text of field "vx" to ("="&vx&&"kN/mm")set vy to abs(vfy/(21))format number vy as "0" & sysdecimal&"000" from nullget ("1"&vfy&"/(2 X "&l&"):")64put it into the text of field "vvy"set the text of field "vy" to ("="&vyearkNimm")set vxb to abs(avfx*Iy+vfy*Ix)*(1/2))/ip)format number vxb as "0"&sysdecimal&"000" from nullget C("&vfx&"X"&ly&"+"&vfy&"X"&lx&")X('&1&"/2)/"&ip&")1")put it into the text of field "vvxb"set the text of field "vxb" to ("="&vxbWkN/rnm")set vyb to abs(((vfxly+vfy*Ix)*(b/2))/ip)format number vyb as "0"&sysdecima184"000" from nullget (";("&vfx&"X"&ly&"+"&vfy&"X"&lx&")X("&b&"/2)/"&ip&"):")put it into the text of field "vvyb"set the text of field "vyb" to ("="&vybWkNimm")set v to sqrtavx+vxbr2+(vy+vyb)'2)format number v as "0"&sysdecimal&"000" from nullget ("(("&vx&"+"&vxb&")A2+("&vy&"+"&vyb&")^2)A1/2)")put it into the text of field "vv"set the text of field "v" to ("="&v8A"kNimm")set chob to objects of group "results"if (v>vr)while chob is not nullpop chobset strokecolor of it to redend whileelsewhile chob is not nullpop chobset strokecolor of it to blueend whileend ifendScript for Two Horizontal Welds Plasticto handle leavefieldif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemend65end ifforward leavefieldput the text of field "vfx" into vfxput the text of field "vfy" into vfyput the text of field "Ix" into lxset lx to (-Ix)put the text of field "Iy" into lyset ly to (-ly)put the text of field "I" into Iput the text of field "b" into bput the text of field "d" into dset xu to typeElec of button "electrode" of this pageset qr to ((0.67*0.67*0.707*xu)/1000)set vr to (qr*d)format number vr as "0" & sysdecimal & "000" from nullget ("0.67X0.67X0.707X"&xu&"X"&d)set text of field "VVR" to itset text of field "VR" to ("="&vr&&"kN/mm")set ix to ((1/6)+((I*(bA2))/2))format number ix as "0" from nullget (I&"16 + "&l&" X "&b&"^2/2")set text of field "vix" to itset text of field "ix" to ("="&ix&&"mm"3")set iy to ((l1%3)/6)format number iy as "0" from nullget (1&'1A3/6")set text of field "viy" to itset text of field "iy" to ("="&iy&&"nnm^3")set ip to (ix+iy)format number ip as "0" from nullget (ix&&"+"&&iy)set the text of field "vip" to itset the text of field "ip" toset vx to abs(vfx/(21))format number vx as "0" & sysdecimal&"000" from nullget ("1"&vfx&"/(2 X "&1&"):")put it into the text of field "vvx"set the text of field "vx" to ("="&vx&&"kN/mm")set vy to abs(vfy/(21))format number vy as "0" & sysdecimal&"000" from nullget ("1"&vfy&"/(2 X "&l&"):")put it into the text of field "vvy"set the text of field "vy" to ("="&vy&&"kNI/mm")set vxb to abs(((vfx*Iy+vfy*Ix)*(1/2))/ip)format number vxb as "0"&sysdecimal&"000" from nullget ("1("&vfx&"X"&ly&"+"&vfy&"X"&lx&")X("&I&"/2)/"&ip&H):")put it into the text of field "vvxb"set the text of field "vxb" to ("="&vxb&&"kN/mm")set vyb to abs(((vfx*Iy+vfylx)*(b/2))/ip)format number vyb as "0"&sysdecimal&"000" from nullget ("1("&vfx&"X"&ly&"+"&vfy&"X"&lx&")XC'&b&"/2)/"&ip&H):")put it into the text of field "vvyb"set the text of field "vyb" to ("="&vyb&&"kN/mm")set v to sqrt((vx+vxb)^2+(vy+vyb)A2)format number v as "0"&sysdecimal&"000" from null66get ("(("&vx&"+"&vxb&")^2+("&vy&"+"&vyb8,72)^1/2)")put it into the text of field "vv"set the text of field "v" to C'="&v&&"kNimm")set chob to objects of group "results"if (v>vr)while chob is not nullpop chobset strokecolor of it to redend whileelsewhile chob is not nullpop chobset strokecolor of it to blueend whileend ifendScript For Box Weld Elasticto handle leavefieldif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "vfx" into vfxput the text of field "vfy" into vfyput the text of field "Ix" into lxset lx to (-Ix)put the text of field "Iy" into lyset ly to (-Iy)put the text of field "I" into Iput the text of field "b" into bput the text of field "d" into dset xu to typeElec of button "electrode" of this page67set qr to ((0.67*0.67*0.707*Xu)/1000)set yr to (qr*d)format number vr as "0" & sysdecimal & "000" from nullget ("0.67X0.67X0.707X"&xu&"X"&d)set text of field "VVR" to itset text of field "VR" to ("="&vr&&"kNimm")set ix to ((l^3/6)+(b/6)+(b1^2/2))format number ix as "0" from nullget (I&""3/6 + "&b&"/6+"&b&"X"&1&"^2/2")set text of field "vix" to itset text of field "ix" to ("="&ix&&"mm^3")set iy to ((1/6)+(l*V2/2)+(bA3/6))format number iy as "0" from nullget (1&"/6+"&1&"X"&b&"^2/2+"&b&"^3/6")set text of field "viy" to itset text of field "iy" to ("="&iy&&"mm^3")set ip to (ix+iy)format number ip as "0" from nullget (ix&&"+"&&iy)set the text of field "vip" to itset the text of field "ip" to ("&ip&&"mm"3")set vx to abs(vfx/(2*(I+b)))format number vx as "0" & sysdecimal&"000" from nullget ("1"&vfx&"/(2 X("&1&"+"&b&"));")put it into the text of field "vvx"set the text of field "vx" to ('="&vx&&"kNI/mm")set vy to abs(vfy/(2*(1+b)))format number vy as "0" & sysdecimal&"000" from nullget (":"&vfy&"/(2 X("&1&"+"&b&"));")put it into the text of field "vvy"set the text of field "vy" to ("="&vy&&"kNimm")set vxb to absa(vfxly+vfy*Ix)*(112))/ip)format number vxb as "0"&sysdecimal&"000" from nullget (":("&vfx&"X"&ly&"+"&vfy&"X"&lx&")X("&1&"12)r&ip&"):")put it into the text of field "vvxb"set the text of field "vxb" to ("="&vxb&&"kNimm")set vyb to abs(((vfx*Iy+vfy*Ix)*(b12))/ip)format number vyb as "0"&sysdecimal&"000" from nullget ("1("&vfx&"X"&ly&"+"&vfy&"X"&lx&")X("&b&"12)/"&ip&"):")put it into the text of field "vvyb"set the text of field "vyb" to ("="&vyb&&"kNimm")set v to sqrt((vx+vxb)F2+(vy+vyb)^2)format number v as "0"&sysdecimal&"000" from nullget ("0"&vx&"+"&vxb&")^2+("&vy&"+"&vyb&")^2)^1/2)")put it into the text of field "vv"set the text of field "v" to ("="&v&&"kN/mm")set chob to objects of group "results"if (v>vr)while chob is not nullpop chobset strokecolor of it to redend whileelsewhile chob is not null68pop chobset strokecolor of it to blueend whileend ifendScript for C Weld Elasticto handle leavefieldif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null^--test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "vfx" into vfxput the text of field "vfy" into vfyput the text of field "Ix" into lxset lx to (-Ix)put the text of field "Iy" into lyset ly to (-Iy)put the text of field "I" into Iput the text of field "b" into bput the text of field "d" into dset xu to typeElec of button "electrode" of this pageset x to ((b^2)/(1+2*b))format number x as "0"&sysdecimal&"0" from nullset text of field "x" to xset qr to ((0.67*0.67*0.707*xu)/1000)set yr to (qr*d)format number vr as "0" & sysdecimal & "000" from nullget ("0.67X0.67X0.707X"&xu&"X"&d)set text of field "VVR" to itset text of field "VR" to ("="&vr&&"kNimm")set ix to ((1^3/12)+(b/6)+(b*IA2/2))format number ix as "0" from nullget (I&"3/12 +set text of field "vix" to it69set text of field "ix" to C'="&ix&&"mmA3")set iy to ((1/12)+(rx'12)+(2*((bA3/12)+(b*((b/2)-x)A2))))format number iy as "0" from nullget (1&"/12+"&1&"X"&x&"A2+2XC&b&"3/12+"&b&"X("&b&"/2-"&x&")^2)")set text of field "viy" to itset text of field "iy" to ('="&iy&&"mmA3")set ip to (ix+iy)format number ip as "0" from nullget (ix&&"+"&&iy)set the text of field "vip" to itset the text of field "ip" to ("="&ip&&"mmA3")set mf to (abs(vfx)*ly+abs(vfy)*Ix)format number mf as "0" from nullget Cr&vfx&"IX"&ly&"+"&":"&vfy&":X"&lx)set the text of field "vmf' to itset the text of field "ml" to ("="&mf&"kN-mm")set vx to abs(vfx/(I+2*b))format number vx as "0" & sysdecimal&"000" from nullget ("1"&vfx&"/('&I&"+2X"&b&"):")put it into the text of field "vvx"set the text of field "vx" to ("="&vx&&"kN/mm")set vy to abs(vfy/(I+2*b))format number vy as "0" & sysdecimal&"000" from nullget ("r&vfy&"/("&1&"+2X"&b&"):")put it into the text of field "vvy"set the text of field "vy" to ('="&vyWkN/mm")set vxb to (mr(1/2)/ip)format number vxb as "0"&sysdecimal&"000" from nullget (mf&"X("&1&"/2)/"&ip)put it into the text of field "vvxb"set the text of field "vxb" to ('="&vxbWkN/mm")set vyb1 to (mr(b-x)/ip)format number vyb1 as "0"&sysdecimal&"000" from nullget (mf&"XC'&b&"-"&x&")r&ip)put it into the text of field "vvyb1"set the text of field "vyb1" to ("="&vyb1WkN/mm")set vyb2 to (mf"x/ip)format number vyb2 as "0"&sysdecimal&"000" from nullget (mf&"X"&x&"P'&ip)put it into the text of field "vvyb2"set the text of field "vyb2" to ("="&vyb2WkN/mm")push sqrtavx+vxbrt2+(vy-vyb1)A2) onto vapush sqrtavx-vxbr2+(vy-vyb1)^2) onto vapush sqrt((vx-vxb)Ft2+(vy+vyb2)A2) onto vapush sqrt((vx+vxb)A2+(vy+vyb2)A2) onto vaset big to 0step i from 4 to 1 by -1pop vaif (it > big) thenset big to itset index to iend ifend stepconditionswhen (index = 1)70get C(("&vx&"+"&vxb&")^2+("&vy&"-"&vyb1&")^2)^1/2)")when (index=2)get ("((u&vx&"-"&vxb&")A2+("&vy&"-"&vyb1&")^2)^1/2)")when (index=3)get ("(Clivx&"-"&vxb&72+("&vy&"+"&vyb2&")^2)"1/2)")when (index=4)get ("(("&vx&"+"&vxb&")A2+("&vy&"+"&vyb2&")^2)^1/2)")end conditionsset v to bigformat number v as "0"&sysdecimal&"000" from nullput it into the text of field "vv"set the text of field "v" to C'="&v&&"kN/mm")set chob to objects of group "results"if (v>vr)while chob is not nullpop chobset strokecolor of it to redend whileelsewhile chob is not nullpop chobset strokecolor of it to blueend whileend ifendScript For Angle.tbkto handle buttonUpget book "wisdom.tbk"set a to itget my angletypeset the angletype of button "angle" of page "Iweld" of a to itget "send showangle to page "&quote&lweld"&quote&&"executeRemote it application "toolbook" topic "wisdom.tbk"set sysCursor to 4send savesend exitendto handle enterBookset sysLockScreen to truesend readerhide scrollbarsend sizeToPageset sysCursor to 1set sysfontface to analset sysfontstyle to boldset sysLockScreen to false71endto handle readerhide menuBarsend sizetopageforwardendto handle authorshow menuBarsend sizetopageforwardendto handle exitsend saveforwardendto handle buttonUpset butname to uniquename of targetset angletype of button "ok" to name of targetset checked of butname to trueset a to my objectswhile a is not nullpop aif (it is not butname) thenset checked of it to falseend ifend whileendScript for L Weldto handle enterpagesystem angleGroupset angleGroup to angleType of button "angle" of this pageendto handle showAnglesystem angleGroupset syslockscreen to trueget angleType of button "angle" of this pagehide group anglegroupshow group itset anglegroup to itset syslockscreen to falseend72to handle leavefield--check for a numeric valueif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1 --try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCance10set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldset angleType to angleType of button "angle" of this pageput the text of field "vfx" of group angletype into vfxput the text of field "vfy" of group angletype into vfyput the text of field "Ix" of group angletype into lxset lx to (-Ix)put the text of field "Iy" of group angletype into lyset ly to (-Iy)put the text of field "I" of group angletype into Iput the text of field "b" of group angletype into bput the text of field "d" of group angletype into dset xu to typeElec of button "electrode" of this pageset x to ((b^2)/((l+b))/2)format number x as "0"&sysdecimal&"0" from nullset text of field "x" of group angleType to xset y to ((1112)/((l+b))/2)format number y as "0"&sysdecimal&"0" from nullset text of field "y" of group angleType to yset qr to ((0.67*0.67*0.707*xu)/1000)set vr to (qr*d)format number yr as "0" & sysdecimal & "000" from nullget ("0.67X0.67X0.707X"&xu&"X"&d)set text of field "VVR" to itset text of field "VR" to ("="&vr&VkN/mm")set ix to ((b*y^2)+(b/12)+(l"3/12)+(1*((l/2)-y)^2))format number ix as "0" from nullget (b&"X"&y&"^2+"&b&"/12+"&l&"3/12+"&1&"X("&1&"/2-"&y&")^2")set text of field "vix" to itset text of field "ix" to ('="&ix&&"mm^3")set iy to al*x^2)+(1/12)+(b^3/12)+(b*((b/2)-x)^2))format number iy as "0" from nullget (1&"X"&x&"^2+"&1&"/12+"&b&"^3/12+"&b&"X("&b&"/2-"&x&")^2")73set text of field "viy" to itset text of field "iy" toset ip to (ix+iy)format number ip as "0" from nullget (ix&&"+"&&iy)set the text of field "vip" to itset the text of field "ip" to ("="&ip&&"mmA3")set mf to (abs(vfx)*Iy+abs(vfy)*Ix)format number mf as "0" from nullget (":"&vfx&":X"&ly&"+"&":"&vfy&":X"&lx)set the text of field "vmf' to itset the text of field "mf' to ("="&mfrkN-mm")set vx to (vfx/(1+b))format number vx as "0" & sysdecimal&"000" from nullget (vfx&"/C&I&"+"&b&")")put it into the text of field "vvx"set the text of field "vx" to ("="&vx&&"kN/mm")set vy to (vfy/(1+b))format number vy as "0" & sysdecimal&"000" from nullget (vfy&"/C&1&"+"&b&")")put it into the text of field "vvy"set the text of field "vy" to ('="&vy&&"kN/mm")if ((angleType is "u1") or (angleType is "ur")) thenset vxbl to (-mry/ip)get ("-"&mf&"X("&y&")/"&ip)elseset vxbl to (mry/ip)get (mf&"X("&y&")/"&ip)endformat number vxbi as "0"&sysdecimal&"000" from nullput it into the text of field "vvxbl"set the text of field "vxbl" to ("="&vxbl &&"1(11/mm")if ((angleType is "u1") or (angleType is "ur")) thenset vxb2 to (-mr(I-y)/ip)get ("-"&mf&"X("&1&"-"&y&")/"&ip)elseset vxb2 to (mr(I-y)/ip)get (mf&"X("&1&"-"&y&")/"&ip)endformat number vxb2 as "0"&sysdecimal&"000" from nullput it into the text of field "vvxb2"set the text of field "vxb2" to ("="&vxb2&&"kN/mm")if ((angleType is "u1") or (angleType is "II")) thenset vybl to (mrx/ip)get (mf&"X"&x&"r&ip)elseset vybl to (-mrx/ip)get (mf&"X"&x&")r&ip)endformat number vybl as "0"&sysdecimal&"000" from nullput it into the text of field "vvybl"set the text of field "vybl" to ("="&vybl &&"kN/rnm")if ((angleType is "u1") or (angleType is "II")) thenset vyb2 to (-mr(b-x)/ip)get ('-"&mf&"X("&b&"-"&x&")r&ip)else74set vyb2 to (mr(b-x)/ip)get (mf&"X("&b&"-"&b&")/"&ip)endformat number vyb2 as "0"&sysdecimal&"000" from nullput it into the text of field "vvyb2"set the text of field "vyb2" to ('="&vyb2WkNimm")push sqrt((vx+vxb1)^2+(vy+vyb1)A2) onto vapush sqrtavx+vxb1)A2+(vy+vyb2)^2) onto vapush sqrt((vx+vxb2)^2+(vy+vyb1)A2) onto vaset big to 0step i from 3101  by -1pop vaif (it > big) thenset big to itset index to iend ifend stepconditionswhen (index = 1)get e'(C&vx&"+("&vxb1&"))^2+("&vy&"+("&vyb1&"))A2)^1/2)")when (index=2)get ("(("&vx&"+("&vxb1&"))^2+("&vy&"+("&vyb2&"))^2)^1/2)")when (index=3)get ("(("&vx&"+("&vxb2&"))^2+("&vy&"+("&vyb1&"))^2)^1/2)")end conditionsset v to bigformat number v as "0"&sysdecimal&"000" from nullput it into the text of field "vv"set the text of field "v" to ('="&v&&"kNimm")set chob to objects of group "results"if (v>vr)while chob is not nullpop chobset strokecolor of it to redend whileelsewhile chob is not nullpop chobset strokecolor of it to blueend whileend ifendScript Two Horizontal Plasticto handle leaveFieldlocal e,w,l,dif focus is not null75get text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null^--test for an errorrequest strNumericValue() with strOKO or strCance10if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "e" into eput the text of field "w" into wput the text of field "I" into Iput the text of field "d" into dcalculation of C by DLLset C to parhorc(I,w,e)divive c by 1000 because the prvious function gives c*1000set c to (c/1000)set pr to (ed*I)format number C as "0" & sysDecimal & "000" from nullformat number pr as "0" & sysDecimal & "0" from nullput (c&&"X"&&d&&"X"&&I) into the text of field "Pr1"put ("="&&pr&&"kN") into the text of field "Pr"put (pr) into the text of field "Cr1"put (d&&"X"&&I) into the text of field "Cr2"put ("="&&c) into the text of field "Cr"put (pr) into the text of field "Dr1"put (c&&"X"&&I) into the text of field "Dr2"put ("="&&d&&"mm") into the text of field "Dr"put (pr) into the text of field "Lr1"put (c&&"X"&&d) into the text of field "Lr2"put C="&&1&&"mm") into the text of field "Lr"result fieldput the text of field "p" into pset the text of field "PRV" to (pr&&"kN")set the text of field "PV" to (p&&"kN")if (pr>=p) thenset the text of field "signe" to ">"set fieldColor to "240,50,100"elseset the text of field "signe" to "<"set fieldColor to "0,50,100"endset list to objects of group "view"while list is not nullpop listset strokeColor of it to fieldColorend76endScript for Box Weld Plasticto handle leaveFieldlocal e,w,l,dif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null --test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strcance10set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "e" into eput the text of field "w" into wput the text of field "I" into Iput the text of field "d" into dcalculation of C by DLLset C to boxAlIC (I,w,e)divive c by 1000 because the prvious function gives c*1000set C to (C/1000)set pr to (c*d*I)format number C as "0" & sysDecimal & "000" from nullformat number pr as "0" & sysDecimal & "00" from nullput (c&&"X"&&d&&"X"&&I) into the text of field "Pr1"put ("="&&pr&&"kN") into the text of field "Pr"put (pr) into the text of field "Cr1"put (d&&"X"&&I) into the text of field "Cr2"put ("="&&c) into the text of field "Cr"put (pr) into the text of field "Dr1"put (c&&"X"&&I) into the text of field "Dr2"put ("="&&d&&"mm") into the text of field "Dr"put (pr) into the text of field "Lr1"put (c&&"X"&&d) into the text of field "Lr2"put ("="&&I&&"mm") into the text of field "Lr"-- result fieldput the text of field "p" into pset the text of field "PRV" to (pr&&"kN")set the text of field "PV" to (p&&"kN")77if (pr>=p) thenset the text of field "signe" to ">"set fieldColor to "240,50,100"elseset the text of field "signe" to "<"set fieldColor to "0,50,100"endset list to objects of group "view"while list is not nullpop listset strokeColor of it to fieldColorendendC Weld Close Side Plasticto handle leaveFieldlocal e,w,l,dif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null^--test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "e" into eput the text of field "w" into wput the text of field "I" into Iput the text of field "d" into dset xl to (w^2/(1+2*w))format number xl as "0" & sysdecimal & "0" from nullput xl into the text of field "k"calculation of C by DLLset C to cweldcc (I,w,e)divive c by 1000 because the prvious function gives c*1000set C to (C/1000)set pr to (ed*I)format number C as "0" & sysDecimal & "000" from nullformat number pr as "0" & sysDecimal & "0" from nullput (c&&"X"&&d&&"X"&&I) into the text of field "Pr1"put ("="&&pr&&"kN") into the text of field "Pr"78put (pr) into the text of field "Cr1"put (d&&"X"&&1) into the text of field "Cr2"put ("="&&c) into the text of field "Cr"put (pr) into the text of field "Dr1"put (c&&"X"&&I) into the text of field "Dr2"put ('="&&d&&"mm") into the text of field "Dr"put (pr) into the text of field "Lr1"put (c&&"X"&&d) into the text of field "Lr2"put ("="841&&"mm") into the text of field "Lr"result fieldput the text of field "p" into pset the text of field "PRV" to (pr&&"kN")set the text of field "PV" to (p&&"kN")if (pr>=p) thenset the text of field "signe" to ">"set fieldColor to "240,50,100"elseset the text of field "signe" to "<"set fieldColor to "0,50,100"endset list to objects of group "view"while list is not nullpop listset strokeColor of it to fieldColorendendScript C Open Plasticto handle leaveFieldlocal e,w,l,dif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null^--test for an errorrequest strNumericValue() with strOK() or strCancel()if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefield79put the text of field "e" into eput the text of field "w" into wput the text of field "I" into Iput the text of field "d" into dset xl to (w^2/(1+2*w))format number xl as "0" & sysdecimal & "0" from nullput xl into the text of field "k"calculation of C by DLLset C to cweldoc (I,w,e)divive c by 1000 because the prvious function gives c*1000set C to (C/1000)set pr to (c*d*I)format number C as "0" & sysDecimal & "000" from nullformat number pr as "0" & sysDecimal & "0" from nullput (c&&"X"&&d&&"X"&&I) into the text of field "Pr1"put ("="&&pr&&"kN") into the text of field "Pr"put (pr) into the text of field "Cr1"put (d&&"X"&&I) into the text of field "Cr2"put ("="&&c) into the text of field "Cr"put (pr) into the text of field "Dr1"put (c&&"X"&&I) into the text of field "Dr2"put ("="&&d&&"mm") into the text of field "Dr"put (pr) into the text of field "Lr1"put (c&&"X"&&d) into the text of field "Lr2"put ("="&&I&&"mm") into the text of field "Lr"result fieldput the text of field "p" into pset the text of field "PRV" to (pr&&"kN")set the text of field "PV" to (p&&"kN")if (pr>=p) thenset the text of field "signe" to ">"set fieldColor to "240,50,100"elseset the text of field "signe" to "<"set fieldColor to "0,50,100"endset list to objects of group "view"while list is not nullpop listset strokeColor of it to fieldColorendendScript L Close Plasticto handle leaveFieldlocal e,w,l,dif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messages80set syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null^--test for an errorrequest strNumericValue() with strOKO or strCance10if it is strCancel()set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "e" into eput the text of field "w" into wput the text of field "I" into Iput the text of field "d" into dset x1 to ((0.5"WA2)/(1+w))set x2 to ((0.51A2)/(1+w))format number x1 as "0" & sysdecimal & "0" from nullformat number x2 as "0" & sysdecimal & "0" from nullput x1 into the text of field "kx"put x2 into the text of field "ky"calculation of C by DLLset C to lweldcc (I,w,e)divive c by 1000 because the prvious function gives c*1000set C to (C/1000)set pr to (eel)format number C as "0" & sysDecimal & "000" from nullformat number pr as "0" & sysDecimal & "0" from nullput (c&&"X"&&d&&"X"&&I) into the text of field "Pr1"put ("="&&pr&&"kN") into the text of field "Pr"put (pr) into the text of field "Cr1"put (d&&"X"&&I) into the text of field "Cr2"put ("="&&c) into the text of field "Cr"put (pr) into the text of field "Dr1"put (c&&"X"&&I) into the text of field "Dr2"put ("="&&d&&"mm") into the text of field "Dr"put (pr) into the text of field "Lr1"put (c&&"X"&&d) into the text of field "Lr2"put C'="&&I&&"mm") into the text of field "Lr"-- result fieldput the text of field "p" into pset the text of field "PRV" to (pr&&"kN")set the text of field "PV" to (p&&"kN")if (pr>=p) thenset the text of field "signe" to ">"set fieldColor to "240,50,100"elseset the text of field "signe" to "<"set fieldColor to "0,50,100"endset list to objects of group "view"81while list is not nullpop listset strokeColor of it to fieldColorendendScript L Weld Open Plasticto handle leaveFieldlocal e,w,l,dif focus is not nullget text of target^--localize the text of the fieldset syssuspend to false --turn this off so no error messagesset syserror to null^--initializeincrement it by 1^--try a numeric operation on the textset syssuspend to true^--don't forget to turn this on againif syserror is not null^--test for an errorrequest strNumericValue() with strOK() or strCance10if it is strCancel0set syssuspendmessages to trueset focus to nullset syssuspendmessages to falsebreakendbreak to systemendend ifforward leavefieldput the text of field "e" into eput the text of field "w" into wput the text of field "I" into Iput the text of field "d" into dset x1 to ((0.5*w^2)/(1+w))set x2 to ((0.51^2)/(1+w))format number x1 as "0" & sysdecimal & "0" from nullformat number x2 as "0" & sysdecimal & "0" from nullput x1 into the text of field "kx"put x2 into the text of field "ky"calculation of C by DLLset C to lweldoc (I,w,e)divive c by 1000 because the prvious function gives el 000set C to (C/1000)set pr to (ed*I)format number C as "0" & sysDecimal & "000" from nullformat number pr as "0" & sysDecimal & "0" from nullput (c&&"X"&&d&&"X"&&I) into the text of field "Pr1"put ("="&&pr&&"kN") into the text of field "Pr"put (pr) into the text of field "Cr1"put (d&&"X"&&I) into the text of field "Cr2"82put ("="&&c) into the text of field "Cr"put (pr) into the text of field "Dr1"put (c&&"X"&&I) into the text of field "Di2"put ("="&&d&&"mm') into the text of field "Dr"put (pr) into the text of field "Lr1"put (c&&"X"&&d) into the text of field "Lr2"put ("="&&I&&"mm") into the text of field "Li"result fieldput the text of field "p" into pset the text of field "PRV" to (pr&&"kN")set the text of field "PV" to (p&&"kN")if (pr>=p) thenset the text of field "signe" to ">"set fieldColor to "240,50,100"elseset the text of field "signe" to "<"set fieldColor to "0,50,100"endset list to objects of group "view"while list is not nullpop listset strokeColor of it to fieldColorendendScript Flexible Beam to Column Connectionto handle buttonDown-- this button's script controls the print in the record Field-- of the background resultslocal a,ptextset syscursor to 4get text of field "ptext1" of this pagepush it onto ptextpush "Beam end shear reaction:" onto ptextget text of field "reaction"set R to itget "R"&TAB&"= beam end shear force"&TAB&"="&TAB&it&"kN"&TAB&"<inputepush it onto ptextget text of field "bd"set bd to itget "bd"&TAB&"= beam depth^"&TAB&"="&TAB&it&nrnm"&TAB&"<input<"push it onto ptextget text of field "bfw"set bfw to itget "bfw"&TAB&"= beam flange width"&TAB&"="&TAB&M"mm"&TAB&"<input<"83push it onto ptextget text of field "bft"set bft to itget "bfr&TAB&"= beam flange thickness"&TAB&"="&TAB&M"mm"&TAB&"<input<"push it onto ptextget text of field "bwt"set bwt to itget "bwr&TAB&"= beam web thickness"&TAB&"="&TAB&M"mnn"&TAB&"<input<"push it onto ptextget text of field "bkv"set bkv to itget "k"&TAB&"= beam k value^"&TAB&"="&TAB&M"mm"&TAB&"<input<"push it onto ptextget text of field "bys"set bys to itget "Fyb"&TAB&"= beam minimum yield stress"&TAB&"="&TAB&M"MPa"&TAB&"<inputepush it onto ptextget text of field "bmf'set bmf to itget "phr&TAB&"= beam material resis. factor&TAB&"="&TAB&it&"&TAB&"<inputepush it onto ptextpush CRLF onto ptextpush "Column paramaters:" onto ptextget text of field "cfw"set cfw to itget "cfw"&TAB&"= column flange width"&TAB&"="&TAB&M"mm"&TAB&"<inputepush it onto ptextget text of field "cft"set cft to itget "cfr&TAB&"= column flange thickness"&TAB&"="&TAB&M"mm"&TAB&"<inputepush it onto ptextget text of field "cys"set cys to itget "Fycn&TAB&"= column minimum yield stress"&TAB&"="&TAB&M"MPa"&TAB&"<inputepush it onto ptextpush CRLF onto ptextpush "Electrode parameters:" onto ptextget typeElec of button "electrode" of this pageset xu to itget "Xun&TAB&"= elctrode ultimate strength"&TAB&"="&TAB&M"MPa"&TAB&"<inputepush it onto ptextpush CRLF onto ptextpush "Web crippling: Minimum length of bearing required" onto ptextset nn to (((R*1000)/(bys*1.1*bmf*bwt))-(2.5*bkv))format number NN as "0" & sysdecimal WO" from nullget "NN"&TAB&"= (R*1000)/(Fyb*1.1*phrbwt)-2.5*k"&TAB&"="&TAB & nn &"mm"&TAB&"<calc<"push it onto ptextpush CRLF onto ptextpush "Minimum width of seat for bearring:" onto ptextset nws to (nn+20)format number NWS as "0" & sysdecimal WO" from nullget "NWS"&TAB&"= NN+20^"&TAB&"="&TAB & NWS &"mm"&TAB&"<calc<"push it onto ptextpush CRLF onto ptextpush "Angle parameters:" onto ptextget text of field "ays"84set ays to itget "Fya"&TAB&"= angle minimum yield stress"&TAB&"="&TAB&WMPa"&TAB&"<input<"push it onto ptextget text of field "alos"set alos to itget "als"&TAB&"= leg length: outstanding sear&TAB&"="84TAB&M"mm"&TAB&"<input<"push it onto ptextget text of field "alc"set alc to itget "all"&TAB&"= leg length: welded to column"&TAB&"="&TAB&it&"mm"&TAB&"<input<"push it onto ptextget text of field "ath"set ath to itget "ath"&TAB&"= angle thickness "&TAB&"="&TAB&it&"mm"&TAB&"<input<"push it onto ptextpush CRLF onto ptextpush "Weld fastening parameters:" onto ptextget text of field "fsb"set fsb to itget "fsb"&TAB&"= fillet size: beam to angle"&TAB&"="&TAB&M"mm"&TAB&"<input<"push it onto ptextconditionswhen (bft>20)set it to 8when ((bft<=20) and (bft>=12))set it to 6when (bft<12)set it to 5end conditionsif (fsb>=it) thenset it to "ok"elseset it to "too small"endpush CRLF onto ptextget TAB&"Check minimum size fillet on "&quote&"bft"&quote&""&TAB&it&" W59 4.3.4.2"push it onto ptextif (bft<6) thenset it to bftelseset it to (bft-2)endif (fsb<=it) thenset it to "ok"elseset it to "too big"endget TAB&"Check maximum size fillet on "&quote&"bft"&quote&"&TAB&it&" W59 4.4.1.2"push it onto ptextpush CRLF onto ptextget text of field "fsc"set fsc to itget "fsc"&TAB&"= fillet size: column to angle"&TAB&"="8,TAB&M"mm"&TAB&"<input<"push it onto ptextconditionswhen (ath>20)85set it to 8when ((ath<=20) and (ath>=12))set it to 6when (ath<12)set it to 5end conditionsif (fsc>=it) thenset it to "ok"elseset it to "too small"endpush CRLF onto ptextget TAB&"Check minimum size fillet on "&quoterath"&quote&"&TAB&M" W59 4.3.4.2"push it onto ptextif (ath<6) thenset it to athelseset it to (ath-2)endif (fsc<=it) thenset it to "ok"elseset it to "too big"endget TAB&"Check maximum size fillet on "&quote&"ath"&quote&"&TAB&it&" W59 4.4.1.2"push it onto ptextpush CRLF onto ptextget text of field "ptext2" of this pagepush it onto ptextpush CRLF onto ptextpush "Determine eccentricty of reaction to critical angle x-section" onto ptextset eccen to ((alos-20)/2+10-ath)get "eccen"&TAB&"= ((als-20)/2+10-ath)"&TAB&"="&TAB & eccen &"mm"&TAB&"<calc<"push it onto ptextpush "Determine minimum angle length: based on full yield in angle leg x-sect." onto ptextset MINI to ((R*1000*4*eccen)/(bmrays*(ath^2)))format number mini as "0" & sysdecimal &"0" from nullget "MINV&TAB&(R*4000*eccen/bmrays*(ath^2))"&TAB&"="&TAB & MINI &"mm"&TAB&"<calc<"push it onto ptextpush "Mimimun recommended edge distance for fillet welds on column flange:" onto ptextset edcf to ((7*fsc)/6+7)format number edcf as "0" from nullget "edcf&TAB&"= ((7*fsc)16+7) "&TAB&"="&TAB & edcf &"mm"&TAB&"<calc<"push it onto ptextpush "Maximum length of seat angle to still permit welding to column" onto ptextset maxl to (cfw-2*edcf)get "max1"&TAB&"= (cfw-2*edcf)^"&TAB&"="&TAB & maxl &"mm"&TAB&"<calc<"push it onto ptextpush "Mimimun recommended edge distance for fillet welds on seat angle:" onto ptextset edsa to ((7*fsb)/6+7)format number edsa as "0" from nullget "edsan&TAB&"= ((7*fsb)16+7)^"&TAB&"="&TAB & edsa &"mm"&TAB&"<calc<"push it onto ptextpush "Minimum length of seat angle to still permit welding to beam flange" onto ptextset MIN2 to (bfw+2*edsa)get "MIN2"&TAB&"= (bfw+2*edsa)^"&TAB&"="&TAB & MIN2 &"mm"&TAB&"<calc<"86push it onto ptextpush CRLF onto ptextget text of field "ptext3"push it onto ptextpush CRLF onto ptextpush "Chosen length of angle seat:" onto ptextget text of field "alas"set alas to itget "alas"&TAB&"= angle length H&TAB&"="&TAB&it&"nnm"&TAB&"<inputepush it onto ptextpush CRLF onto ptextpush text of field "ptext4" onto ptextpush CRLF onto ptextpush "Factored resistance of angle to column welds per mm of weld length:" onto ptextpush "base metal..." onto ptextget min(cys,ays)set fy to itget "Fy"&TAB&"= min yield stress"&TAB&"="&TAB&it&"MPa"&TAB&"<calcepush it onto ptextset V1r to ((0.67*0.9*frisc)/1000)format number V1r as "0" & sysdecimal &"000" from nullget "V1r&TAB&"= ((0.67*0.9*fy*fsc)/1000)"&TAB&"="&TAB&V1r&"kN/m m"&TAB&"<cal cepush it onto ptextpush "weld metal..." onto ptextset V2r to (0.67*0.67*(fsc/(2^0.5))*Xu/1000)format number V2r as "0" & sysdecimal &"000" from nullget "V2r&TAB&"= 0.67*0.67*(fsc/(2^0.5))*Xu/1000"&TAB&"="&TAB&V2WkNimm"&TAB&"<calc<"push it onto ptextpush CRLF onto ptextpush "Minimum resistance..." onto ptextget nnin(V1r,V2r)set Vr to itget "Vr&TAB&"= minimum resistance"&TAB&"="&TAB&VM"kNimm"&TAB&"<calcepush it onto ptextpush "Minimum column flange thickness: "onto ptextset mcft to wri000)/(0.66*0.9*cys))format number mcft as "0" & sysdecimal WO" from nullget "mcfr&TAB&"= aVr*1000)/(0.66*0.9*cys))"&TAB&"="&TAB&mcft&"mm"&TAB&"<calcepush it onto ptextpush CRLF onto ptextpush text of field "ptext5" onto ptextpush CRLF onto ptextpush "instantaneous center coefficient data "&CRLF onto ptextget "Angle to column weld:"&CRLF&"Weld geometry..."push it onto ptextget "II"&TAB&"= vert. length of column welds"&TAB&"="&TAB & alc &"mm"&TAB&"<calc<"push it onto ptextset ee to (eccen+ath+10)format number ee as "0" from nullget nee"&TAB&"= (eccen+ath+10) "&TAB&"="&TAB & ee &"mm"&TAB&"<calc<"push it onto ptextget "Fy"&TAB&"= Min. yield stress"&TAB&"="&TAB & fy WMPa"&TAB&"<calc<"push it onto ptextset abl to text of field "abl"get "abl"&TAB&"= Angle bearing length"&TAB&"="&TAB & abl &"mm"&TAB&"<calc<"push it onto ptext87get "fsc"&TAB&"= Fillet weld size "&TAB&"="&TAB & fsc &"mm"&TAB&"<calc<"push it onto ptextpush CRLF onto ptextget outplaneverc(alas,ee,fy,abl,fsc)set C to it-- divide c by 1000 because function returns c*1000set c to (c/1000)format number C as "0" & sysDecimal & "000" from nullget "C"&TAB&"= Coefficient^"&TAB&"="&TAB & C &"kN/mmA2"&TAB&"<calc<"push it onto ptextpush CRLF onto itpush "Factored capacity of column flange welds:" onto ptextset fccf to (alc*C)format number fccf as "0" & sysdecimal & "0" from nullget "fccf'&TAB&"= (II *C)^"&TAB&"="&TAB & fccf WkN"&TAB&"<calc<"push it onto ptextpush "Connection reduction factor due to column flange thickness..." onto ptextif (cft<mcft) thenset crfc to (cft/mcft)format number crfc as "0" & sysdecimal & "00" from nullelseset crfc to 1endget "crfc"&TAB&"= reduction factor^"&TAB&"="&TAB & crfc &"&TAB&"<calc<"push it onto ptextpush "Reduce double angle to column flange capacity..." onto ptextset cap to (fccrcrfc)format number ee as "0"&sysdecimal&"0" from nullget "cap"&TAB&"= (fccrcrfc)^"&TAB&"="&TAB & cap &"kN"&TAB&"<calc<"push it onto ptextpush CRLF onto ptextpush CRLF onto ptextif (cap>R) thenpush ("Welded connection's capacity is sufficiant:"&&cap&"kN >"&&R&&"kN") onto ptextelsepush ("Welded connection's capacity is not sufficiant:"&&cap&"kN <"&&R&&"kN") onto ptextendset a to reverseList (ptext)set the text of recordfield "viewR" of page "results" to nullwhile a is not nullpop aput it after the text of recordfield "viewR" of page "results"put CRLF after the text of recordfield "viewR" of page "results"endgo to page "results"set syscursor to defaultend88to get reverseList stacklocal tempStackput null into tempStackwhile stack <> nullpop stackpush it onto tempStackend whilereturn tempStackendScript For Plate Distrotion Pageto handle enterpagelocal istep i from Ito 14set it to ("paintobject pl"&i&&"of page plate_distortion")hide itend stepshow paintobject "p11" of page plate_distortionstep i from 1 to 3set it to "field champs"&i&&" of page plate_distortion"set activated of it to truehide itend step-- can't go to next pagesend disable to button "next" of this backgroundendto handle leavePagesend enable to button "next" of this backgroundendScript Apply Weld Buttonto handle buttonUphide paintobject "p114" of page plate_distortionhide paintobject "p113" of page plate_distortionhide paintobject "p112" of page plate_distortionshow field champs1 of page plate_distortionshow paintobject "p11" of page plate_distortionshow paintobject "soudeur" of page plate_distortionstep i from 2 to 12set it to" paintobject pl"&i&&"of page plate_distortion"show itmove paintobject "soudeur" of page plate_distortion to (1720+r250),(1600-1001)pause 10 ticksend step-- step i from 1 to 11-- set it to "p1"&i-- hide paintobject it89-- end stephide paintobject "soudeur" of page plate_distortionend buttonUpScript for Cool Down Buttonto handle buttonupstep i from Ito 12set it to "p1"8,1hide paintobject itend stepshow paintobject "p113"hide field "champs1"show field "champs2"endScript for Cold Buttonto handle buttonUPhide paintobject "p113"show paintobject "p114"hide field "champs2"show field "champs3"end90Konwledge Baseto get helpVersionreturn "WISDOM 92r Info"endto handle quitsend savesend exitendto get FailGo what, whereset sysSuspend to falseset sysError to nullset sysCursor to 4if where contains "Dergo page (characters 1 to 32 of (what && "(Def.)") )elsego page (characters Ito 32 of what)endget sysErrorset sysSuspend to trueset sysCursor to defaultreturn it <> nullendto get searchBackground bkgnd, startpreturn searchBackground(bkgnd, startp) of page 2endto handle KeyChar xsystem FixRefif FixRef <> null and x = chartoansi("#") thenset pN to name of this pagego page (word 1 of FixRef)clear word 1 of FixRefset isText to not (pN contains "(Def.)")if text of recordfield "Hotwords" <> null thenput CRLF after text of recordfield "Hotwords"end ifif isText thenput FixRef & "—@" & pN after text of recordfield "Hotwords"elseclear last word of pNput FixRef & "—" & pN after text of recordfield "Hotwords"end ifset FixRef to nullelseforward to systemend ifend keyChar91to handle EnterBooksystem FixRef, Testing, windowSized, s_authorOKset syslockscreen to truerestore menuBar at bothremove menu "file" at readerremove menu "edit" at readerremove menu "text" at readerremove menu "help" at readeradd menu %File" at readeradd menultem %Compact Book" to menu %File" at readeradd menultem %Quit" to menu %File" at readerremove menu "page" at readerset sysSuspend to trueset syscursor to 4send readerset sysFontFace to analset sysFontSize to 10set sysFontStyle to boldset sysDecimal to "."set sysDateFormat to "mid/y"set s_authorOK to falsehide scrollbarforwardset Testing to falseset sysChangesDB to falseset FixRef to nullif windowSized is null thensend sizeToPageset windowSized to trueend ifset syslockscreen to falsesend setHelpMenus to page 1send fixHotWordMenusend setSuffixessend setPrefixesset syscursor to 1endto handle dolnfo contextInfoset syscoursor to 4if argcount = 0 thensend IndexofTopicsset syscursor to defaultbreak doinfoend ifset HIpTopic to trim (item 1 of contextlnfo)while HIpTopic is not nullif not (failGO(HIpTopic) and FailGo(HIpTopic, "der))-- found the pagebreak while92endset wList to text of field "context" of page 2set L to 0set wL to nullstep L from 1 to textlineCount(wlist)set wL to textLine L of wListif offset (HIpTopic,wL)=1 thenif not failGo( trim (item 2 of WI))break whileendendend step--c'ant identifysend IndexofTopicsbreak whileend whilesend showmywindowset syscursor to defaultendto handle setSuffixessystem s_suffixesclear s_suffixesget "s"while it is not nullpop it after s_suffixesput CRLF after s_suffixesendendto handle setprefixessystem s_prefixesclear s_prefixesgetwhile it is not nullpop it after s_prefixesput CRLF after s_prefixesendendto handle fixHotWordMenusend fixHotWordMenu to page 2endto handle testHotWords pStart, pEndsend testHotWords pStart, pEnd to page 1endto handle LeaveBookrestore menubar at bothrestore system93endto handle showMyWindowsend showmywindow to page 2endto handle authorsend author to page 1endto handle readerif sysLevel is "Author"set sysLevel to readersend sizeToPageforwardendendto handle helpget group "help" of this backgroundshow itset focus to button "OK" of itend-- Handle F3 key at Reader level (Author not in menu)to handle keyDown xif x = keyF3send Authorelseforwardendendto handle buttonUpif word 1 of target is "hotword" thenget text of targetsend doHotWord (it)end ifendto get HotL whatset wList to text of recordfield "Hotwords"set L to 0set wL to nullset wrd to what & "—"while L < textlinecount(wList) and wL is nullincrement Lif offset(wrd, textline L of wList) = 1 thenset wL to textline L of wList94end ifend whilereturn wLendto handle seekTopic whatsend seekTopic what to page 2endto handle doHotWord whatsend doHotWord what to page 2endto handle fix WrdTxtsend fix WrdTxt,(pageNumber of this page) to page 1endto get trim xset trimSet to " " & quote & tabwhile x<> null and first char of x is in trimSetclear first char of xendwhile x <> null and last char of x is in trimSetclear last char of xendreturn xendto handle IndexofTopicsgo to first page of background "topic index"endto handle searchAllTextsend searchBook to page 1endto handle SearchIndexOfTopicssend SearchIndexOfTopics to background "Topic Index"endto handle AlwaysShownset my HotWordShow to "Show"send FixHotwordMenuendto handle AlwaysHiddenset my HotWordShow to "Hide"send FixHotwordMenuend95to handle ShowWhenMouselsInWindowset my HotWordShow to nullsend FixHotwordMenuendto handle idleif my HotWordShow is null thenget sysMousePositionset hws to (item 1 of it >= 0 \and item 1 of it <= item 1 of my size \and item 2 of it >= 0 \and item 2 of it <= item 2 of my size)if hws <> sysHotwordsShownset sysHotwordsShown to hwsendendforwardendto handle HotwordListsend HotwordList to page 1end-- Filters each char in c from string xto get filter c, xstep i from 1 to charCount(c)get char i of cdoset p to offset (it, x)if p> 0clear char p of xenduntil p <= 0endreturn xend-- Names the current pageto handle namePage xget filter (quote & leftQuote & rightQuote, x)set name of this page to chars 1 to 32 of itend-- functions-- strip a CRLF from a stringto get stripCRLF strget offset(CRLF, str)if it <> 0 thenclear chars it to it + 1 of strendreturn strendto handle sortrecord1set a to text of recordfield "topics"96set b to 1set it to insertionsort (a,b)put it into text of recordfield "topics"endto get INSERTIONSORT fTable, fKeyNumlocal vLineCount, --the number of lines in fTable \vRecordNumber, --the line number being inserted \vCurKey,^--the current key value \vSortedCount, --the number of records already sorted \vTemp^--holder for the line being inserted during its deletionset vLineCount to textlinecount(fTable)conditionswhen vLineCount = 0set sysError to "Empty table"return nullwhen vLineCount = 1return fTable --it's already sorted!elsestep vRecordNumber from 2 to vLineCountif fKeyNum > itemcount (textline vRecordNumber of fTable)set sysError to "Key number greater than number of elements"return fTableendset vCurKey to item fKeyNum of textline vRecordNumber of fTableset vSortedCount to vRecordNumber-1while vSortedCount > 0 and \vCurKey < item fKeyNum of textline vSortedCount \of fTable as textdecrement vSortedCountendset vTemp to textline vRecortNumber of fTableclear textline vRecordNumber of fTableif vSortedCount<>vLineCount-1put vTemp & CRLF before textline vSortedCount+1 of fTableelseput vTemp into textline vSortedCount+1 of fT'ableendendreturn fTableendend-- strings for messagesto get strValidDate97return "Please enter a valid date."endto get strCancelreturn "Cancel"endto get strOKreturn "OK"endto get strExeNotInPath exereturn "The directory for' && exe && "is not in your current path. Change your path to include" && exe& "S directory."endto get strNoPicturereturn "Can't find the Figures. Please copy WPICTURE.TBK into this directory."endto get strNoWisdomreturn "Can't find Wisdom'92 . Please copy WISDOM.TBK into this directory."endto get strCantFind filenamereturn "Can't find "&&filename&&"."end--squeeze the hell out of a modified book--don't forget to change to the correct name of this book!to handle compactBookget name of this bookif it is nullrequest "Can't compact a untitled book."break to systemend ifclear sysErrorsave as "X.TBK",trueif sysError is not nullrequest "Save as X.TBK failed:"&&sysErrorbreak to systemend ifsave as it ,trueif sysError is not nullrequest "Save as original name failed:"&&sysErrorbreak to systemend ifend compactBook98Script For Page 1 of Knowledge Base-- script for page 1to handle buttonUpgo next pageend buttonUpto handle keyChargo next pageend keyCharto handle enterpageset sysTimeFormat to "seconds"set my startT to sysTime-- if syslevel is reader--^show field "Credits"-- endendto handle leavePageset sysLockScreen to true-- hide field "Credits"endto handle idle-- don't go to main menu immediately, in case DDE command comingset sysTimeFormat to "seconds"if sysTime - my startT > 3 thengo page "cover page"endforwardend idleto handle authorsystem s_authorOK-- If this isn't the first time to author level this sessionif not s_authorOKrequest "Even minor changes at Author level may keep this book from" && "working correctly. Goto author level anyway?" with \"No" or "Yes"if it is "No"break to systemelseset s_authorOK to trueendendset sysLevel to authorset sysChangesDB to trueshow commandWindowsend sizeToPageforward to systemend99to handle setHelpMenusadd menu %Search" at bothadd menultem "Search &Index of Topics..." alias "SearchIndexOfTopics" \to menu "Search" at bothadd menultem "Search AU Text..." alias "SearchAllText" \to menu "Search" at bothadd menu "Hotwor&ds" at bothadd menultem "Show When &Mouse Is In Window" alias "ShowWhenMouselsInWindow" \to menu "Hotwords" at bothadd menultem "Always &Shown" alias "AlwaysShown" to menu "Hotwords" at bothadd menultem "Always &Hidden" alias "AlwaysHidden" to menu "Hotwords" at bothendto handle fix WrdTxt, pageN --system FixRefrequest "No match for" && quote & WrdTxt & quote\& ". Redirect to another topic?" with "Yes" or "Cancel"if it is "Cancel" thenbreak fixendrequest "Go to the topic. When ready, press" && quote \& "#" & quoteset FixRef to (pageN && WrdTxt)endto handle TestHotWords pStart, pEnd -- Test hotwords --**system Testing, HotCount, BadCount, lastTPage, bFNset oldTimeFormat to sysTimeFormatset sysTimeFormat to "h:min:sec AMPM"set Testing to trueset HotCount to 0set BadCount to 0set lastTPage to nullset syslockscreen to trueset bFN to "BADWORDS.LST"createfile bFNwritefile helpVersion() & CRLF to bFNwritefile "Test started on" && sysDate && "at" && systime & CRLF to bFNset sysSuspendMessages to trueif pStart is nullset pStart to 18set pEnd to pageCount of this bookelseif pEnd is nullset pEnd to pStartendendstep i from pStart to pEndput "Checking page" && i && "of" && pEnd \&"; found" && HotCount && "hotwords so far;"\&& BadCount && "bad."go page iget objects of parent of this pageset rFields to nullwhile it <> null100pop it into objif object of obj is recordfield thenpush "recordfield id" && idNumber of obj onto rFieldselseif object of obj is "group" thenset objs to objects of objwhile objs <> nullpop objs into subObjif object of subObj is recordfield thenpush "recordfield id" \&& idNumber of subObj onto rFieldsend ifendend ifendendget objects of page iwhile it <> nullpop it into objif obj contains "field" thenpush obj onto rFieldsendendwhile rFields <> nullpop rFields into thisFieldget objects of thisFieldwhile it <> nullpop it into hWrdincrement HotCountset oldp to this pagesend buttonUp to hWrdgo oldpendendendset sysSuspendMessages to falsewritefile "---End of list:" && HotCount && "hotwords tested,"\&& BadCount && "bad." & CRLF & sysTime & CRLF to bFNclosefile bFNput "Done:" && HotCount && "hotwords tested:" && Badcount && "bad."set HotCount to nullset BadCount to nullset testing to falseset sysTimeFormat to oldTimeFormatendto handle logBad Word what --**system lastTPage, BadCount, bFNif lastTPage <> (this page) thenwriteFile "^ " \& CRLF & "Page" && pagenumber of this page \& ":" && name of this page & CRLF to bFNend ifwriteFile "[" & what & "1" & CRLF to bFNput whatset lastTPage to (this page)101increment BadCountendto handle HotwordListget recordfield "hotwords"set visible of it to not visible of itif visible of recordfield "hotwords" thencheck menultem "HotwordList" at authorelseuncheck menultem "HotwordList" at authorend ifend Hotwordlistto handle trimEndsget this backgroundset pCount to pagecount of itstep i from 1 to pCountset f to recordfield "extra" of page i of itwhile chartoansi(last character of text of 0 <33\and text of f <> nullclear last character of text of fendput pCount - iendendto handle SearchBooksystem SearchString, FoundFocus, FoundPageif arglist is null and sysLevel is reader thenset sysError to nullask "Search all book pages for:" with SearchStringif sysError is cancel or it is null thenbreak to systemendset SearchString to itset oldP to this pageset syslockscreen to truego next pagesearch for itif selectedTe)dState is nullset msg1 to "Cannot find" && quote & it & quoteif pageNumber of oldP > 1request msg1 \&& "Continue search from the beginning of the book?"\with "Yes" or "No"if it is "Yes"go page 2search for itif selectedTextState is nullrequest msg1go oldPendelsego oldPendelse102go oldPendendelseforwardendendScript For Page 2 Of Knowledge Base-- script for page 2to handle enterpageadd menu "&Context" at authoradd menultem "Context Info Table..." alias "ContextInfoTable" \to menu "&Context" at authorforwardendto handle leavepageset sysSuspend to falseremove menu "&Context" at authorhide field "Context"set sysSuspend to trueforwardendto handle ContextInfoTableget the visible of field "Context"set the visible of field "Context" to not itendto handle ShowMyWindowlinkDLL userint Islconic(word)int ShowWindow(VVord, int)int SetActiveWindow(Word)end linkDLLif islconic(sysWindowHandle) > 0 thenget showWindow(sysWindowHandle, 1)end ifget SetActiveWindow(sysWindowHandle)unlinkDLL "user"endto handle fixHotWordMenuuncheck menultem "Always Shown"uncheck menultem "Always Hidden"uncheck menultem "Show When Mouse Is In Window"conditionswhen HotWordShow of this book is "Show"check menultem "AlwaysShown"set sysHotwordsShown to truewhen HotWordShow of this book is "Hide"103check menultem "AlwaysHidden"set sysHotwordsShown to falseelsecheck menultem "Show When Mouse Is In Window"endendto handle doHotWord whatsystem FixRef, testing, s_suffixes, s_prefixesset sysCursor to 4set WrdTxt to whatset oldPage to (this page)set wL to HotL(what)if wL is null thendoif FailGo(what, "Der)if FailGo(what,"")set wLen to charCount(what)step i from 1 to textLineCount(s_suffixes)set hotW to whatget textLine i of s_suffixesset sLen to charCount(it)if wLen > sLen+1 thenif chars wLen-sLen+1 to wLen of hotW is itclear chars wLen-sLen+1 to wLen of hotWif FailGo(hotW, "Del")if FailGo(hotW,")continue stependendbreak doHotWordendendend-- Prefixesstep i from 1 to textLineCount(s_prefixes)get textLine i of s_prefixesset hotW to it & whatif FailGo(hotW, "Der)if FailGo(hotW,")continue stependendbreak doHotWordendbreak doendendbreak doHotWorduntil false-- Failed to find hot wordsend failFind WrdTxtbreak doHotWord104end ifset Dest to nullset p1 to offsetC'—©", wL)if p1 > 0 thenif last character of wL is "©" thenset Dest to characters Ito p1-1 of wLelseset Dest to characters p1 + 2 to charcount(wL) of wLendelseset p1 to offset("—$", wL)if p1 > 0 thenif last character of wl is "$" thenset dest to characters 1 to p1-1 of wlelseset dest to characters p1+2 to charcount(w1) of wlendsend doPicture destbreak doHotWordelseset p110 offset'—!", wL)if p1 >0 thenif last character of wl is "I" thenset dest to characters 1 to p1-1 of wlelseset dest to characters p1+2 to charcount(w1) of wlendsend GoToPageWisdom destbreak doHotWordelseset p1 to offset("—", wL)if last character of wL is "—" thenset Dest to characters 1 to p1-1 of wLelseset Dest to characters p1 + 1 to charcount(wL) of wLendput space & "(Def.)" after Destendendendif FailGo(Dest,")send FailFind WrdTxtend ifendto handle FailFind WrdTxtsystem testing, s_authorOKif testingsend logBadWord WrdTxt to page 1elseif s_authorOKsend fix WrdTxtelse105request "Sorry, hot word not hooked up yet."endendendto handle SeekTopic whatset failed to falseset wL to HotL(what)if wL <> null thenset Dest to characters (offset("—",wL) + 1) to 255 of wLset failed to FailGo(Dest, ")elseif FailGo (what, ")set failed to FailGo(what, "Der)endendif failedrequest "Sorry, this topic is not available yet."endendto get SearchBackground bkgndName, startPagesystem SearchStringset syslockscreen to trueset syscursor to 4set sysHistoryRecord to false-- determine page range and get to first pageset firstPage to first page of background bkgndNameset lastPage to last page of background bkgndNameif startPage is null or name of parent of startPage is not bkgndNameset startPage to firstPageendif startPage is not this pagego startPageend-- if text is selected (from a previous search) make sure we don't-- find something above it on the same pageget selectedTextStateif it <> nullset p to item 2 of it + 1elseset p to 0endclear focus-- starting with the current page search record fields for the-- search stringset isFound to falsedoclear sysErrorsearch page records for searchStringwhile selectedTextState <> null and sysError = nullif item 2 of selectedTextState > p106set isFound to truebreak doelsesearch againendendset p to 0go next page of this backgrounduntil this page is firstPageset sysHistoryRecord to trueif this page is not first item of sysHistorypush this page onto sysHistoryendset sysCursor to defaultreturn isFoundendto handle doPicture Destset syscursor to 4-- see if wpicture is runninggetRemote "sysWindowHandle" application toolbook topic \"wpicture.tbk"set hWnd to itif it is null--find wbasemet.tbkclear sysErrorset syssuspend to falseget book "wpicture.tbk"set syssuspend to trueif syserror is not nullset syscursor to 1request strNoPicture()breakend--try running toolbook and the appset syssuspend to falseclear syserrorif sysruntime is trueset exe to lbook.exe"run "tbook.exe wpicture.tbk"elseset exe to "toolbook.exe"run "toolbook.exe wpicture.tbk"endset syscursor to 1set syssuspend to trueif syserror is not nullrequest strExeNotInPath(exe)breakendset syssuspend to falseclear syserror107keepRemote application "toolbook" topic "wpicture.tbk"elselinkDLL userint ShowWindow(VVord, int)end linkDLLget ShowWindow(hWnd,l)end ifclear syserrorexecuteRemote "send dolmage"&&dest application toolbook topic "wpicture.tbk"set syssuspend to trueif item 1 of syserror is not "ok" thenrequest item 1 of syserrorbreakend ifset syscursor to defaultendto handle goToPageWisdom Destset syscursor to 4-- see if wpicture is runninggetRemote "sysWindowHandle" application toolbook topic \"wisdom.tbk"set hWnd to itif it is null--find wbasemet.tbkclear sysErrorset syssuspend to falseget book "wisdom.tbk"set syssuspend to trueif syserror is not nullset syscursor to 1request strNowisdom0breakend--try running toolbook and the appset syssuspend to falseclear syserrorif sysruntime is trueset exe to "tbook.exe"run "tbook.exe wisdom.tbk"elseset exe to "toolbook.exe"run loolbook.exe wisdom.tbk"endset syscursor to 1set syssuspend to trueif syserror is not nullrequest strExeNotInPath(exe)breakendset syssuspend to falseclear syserrorkeepRemote application "toolbook" topic "wisdom.tbk"108elselinkDLL userint ShowWindow(VVord, int)word setActiveWindow(Word)end linkDLLget ShowWindow(hWnd,l)get setactiveWindow(hWnd)unlinkDLL userend ifclear syserrorexecuteRemote " send goToPage"&&dest application toolbook topic "wisdom.tbk"set syssuspend to trueif item 1 of syserror is not "ok" thenrequest item 1 of syserrorbreakend ifset syscursor to defaultendScript for Index Pageto handle buttonUpset L to item 1 of textFromPoint(argument 1)set P to 1 + item 2 of textFromPoint(argument 1)if L> 0 and P> 0 thenset Lin to textline L of text of selfset c to character p of Linif c = "I" or c = " " thenif P= 1 thenset P to P + 1elseset P to P - 1end ifend if--set focus to selfset c to character P of Linset text of field "letter' of this background to c--search page for cif alphalndex of this page <> null thenset selectedTextLines of recordField "Topics" to\(item (chartoansi(c) - 64) of alpha Index of this page)elseif c = "A" thenset focus to nullsearch page records for "A"elsedoset focus to nullset selection to nullsearch page records for (LF & c)if selectedTextState <> null thenget recordfield "topics"if charcount(text of it) - textoverflow of it \< item 2 of selectedTextState109increment scroll of itendbreak doelseset c to ansiToChar(charToAnsi(c)-1)end ifuntil c = "C"end ifend ifend ifend buttonUpto handle buttonUp--set c to textline selectedTextLines of my textset L to first item of textFromPoint(argument 1)if L> 0 thenset c to textLine L of my textendif FailGo(c, ") and c contains ","-- inverted entry, maybe with lopped off article?set p to offset(",", c)set t1 to characters 1 to p - 1 of cset t2 to characters p + 2 to 1000 of cif FailGo (t2 && t1,")if FailGo(t2 && "a" && 11, ")if FailGo(t2 && "an" && t1, "")if FailGo(t2 && "the" && t1,")request "Sorry, can't find" && cendendendendendend buttonUp1 1 0Script for Picture Libraryto handle EnterBooksystem windowSizedset syslockscreen to trueset sysSuspend to trueset syscursor to 4set sysLevel to readerhide scrollBarrestore menuBar at bothremove menu "file" at readerremove menu "edit" at readerremove menu "text" at readerremove menu "help" at readerremove menuitem "NewPage" at readeradd menu "&File" at readeradd menultem %Compact Book" to menu %File" at readeradd menultem %Quit" to menu %File" at readerset sysFontFace to analset sysFontSize to 10set sysFontStyle to boldset sysCursor to 1set sysDecimal to "."set sysDateFormat to "mid/y"forwardset sysChangesDB to falseif windowSized is null thensend sizeToPageset windowSized to trueend ifset syslockscreen to falseset syscursor to defaultendto handle LeaveBookset pageDest of self to nullrestore systemendto handle quit-- send savesend exitendto handle authorif syslevel is "reader"set syslevel to authorshow menubarsend sizetopageset sysChangesDB to trueforward111endendto handle readerif sysLevel is "Author'set sysLevel to readersend sizeToPageforwardendend-- Handle F3 key at Reader level (Author not in menu)to handle keyDown xif x = keyF3send Authorelseforwardendendto handle dolmage destset syscursor to 4set sysSuspend to falseset sysError to nullset it to destif it is not nullgo page (characters 1 to 32 of it)endget sysErrorset sysSuspend to trueset sysCursor to defaultif sysError is not nullrequest syserrorbreak to systemendsend showMyWindowset syscursor to defaultendto handle ShowMyWindowlinkDLL userint Islconic(word)int ShowWindow(Word, int)int SetActiveWindow(Word)end linkDLLif islconic(sysWindowHandle) > 0 thenget showWindow(sysWindowHandle, 1)end ifget SetActiveWindow(sysWindowHandle)unlinkDLL userend112--squeeze the hell out of a modified book--don't forget to change to the correct name of this book!to handle compactBookget name of this bookif it is nullrequest "Can't compact a untitled book."break to systemend ifclear sysErrorsave as "X.TBK",trueif sysError is not nullrequest "Save as X.TBK failed:"&&sysErrorbreak to systemend ifsave as it ,trueif sysError is not nullrequest "Save as original name failed:"&&sysErrorbreak to systemend ifend compactBookScript for Page 1 of Picture Libraryto handle buttonUpgo next pageend buttonUpto handle keyChargo next pageend keyCharto handle enterpageset sysTimeFornnat to "seconds"set my startT to sysTime-- if syslevel is reader--^show field "Credits"-- endendto handle leavePageset sysLockScreen to true-- hide field "Credits"endto handle idle-- don't go to main menu immediately, in case DDE command comingset sysTimeFormat to "seconds"if sysTime - my startT > 1 thengo page "cover page"endforwardend idle113APPENDICES BInstantaneous Center Calculation Algorithms114Instantaneous Center calculation for a Box shaped weld group/*^ *//* This program determines the ultimate resistance of a box shaped weld * 1/* group with a vertical load applied eccentrically in plane. A trial and *//* error procedure using instantaneous centers and emperically determined *1/* load deformation responses of weld elements is utilized./*^ *1/* The following variables are used in this program ^*/*1/* *//*/*/*1^= vertical length of box weld.^*1b^= horizontal width of box weld. *1e^= eccentricity of load from c.g. of weld group.^*1/*/*ro = distance between i.c. and left side web of weld group.ri^= distance from i.c. to weld element.^*/*1/*/*/*rr = distance to critical weld element (re: see variable delm)sum = sum of vertical reactions on weld group.^*/sum! = sum of moment reaction about i.c. */*//* cc = value of coefficient as used in handbook (table 3-27, 1986) *//*/*delm = maximum deflection of critical weld group element.deln = deflection of the n(th) weld group element.^*/*//* xl^= distance from i.c. to the right side web of weld group. *1/*/*/*/*/*/*thn = angle theta associated with the n(th) weld group element.rm = ultimate strength of weld group element.^*1rn = resistance of weld group element.^*1mu = regression coefficient.^*1lam = regression coefficient. */dpi = value of pi.^ */*//* */#include <math.h>#include <stdio.h>double calc(double , double, double ); /* function calc *1double sum, sum!;^/* external variables */main (int numb, char *geomn){double 1,b,e,cc,ro,rold,rnew,frold,frnew,secslp;extern double sum, sum 1;^/* external variables^*/FILE *out, *fopen(); /* pointer to output file *//* convert input parameters (length, width, eccentricity) to float^*1I = atof(geom[1]);b = atof(geom[2]);e = atof(geom[3]);printf(nn 1: %f b: Vof e: (Yof',1,b,e);printf(" ");printf(nn Program working .... Please wait!");115/* scale weld to let 1 dimension equal to 200 mm.^*1b=b*200.0/1;e=e*200.0/1+b/2.0;1=200.0;ro = 0.0;^/* start with i.c. at left side web of weld group */sum = 0.0; /* initialize counter */sum! = 0.0; /* initialize counter */calc(1,b,ro);^/* call to function calc */frold = (e+ro)*sutn - sum 1;^/* function of ro ; should be zero */mew = 10; /* place i.c. at new location */while (fabs(frold) > 1000) {^/** Continuously calculate **/rold = ro;^/** new values of the fns. **/ro = mew; /** frold and frnew until **/calc(1,b,ro); /** the error is within **/frnew = (e+ro)*sum - sum 1;^/** the specified amount. **/secslp = (frnew - frold)/(rnew - rold);^/** The secant slope^**/mew = rold - frold/secslp;^/** (secslp) is used to **/frold = frnew;^/** get new values of ro. **/)out = fopen("temp_c.out","w");cc = sum1/(e+ro)*4.448*70/6016.35/1*0.67*0.67; /* calculate coefficient *1fprintf(out,"%lr,cc);printf("%lf",cc);fclose(out);^ /* close output file */}/* calc: function to test accuracy of guessed i.c. location^*1double calc(double 1, double b, double ro)(double delm,deln,x1,thn,rm,mu,lam,m,dpi,r13,r2,rr,ri,delml,delm2,delm3,i,j;extern double sum, suml;^/* external variables */dpi = 3.141592653589793;^/* specify value of pi */xl = ro + b;^/* horizontal distance from i.c. to right side web *//* check which weld element is critical: hor. weld (1) or ver. weld (2,3) */r2 = sqrt(pow(1/2.0,2)+pow(ro,2));^/* radial distance from i.c. */r13 = sqrt(pow(112.0,2)+pow(x1,2));^/* radial distance from i.c. */delml = 0.225*pow((atan2(2.0*x1,1)*180.0/dpi+5.0),-0.47); /* max defln. */delm2 = 0.225*powaatan2(1,2.0*ro)*180.0/dpi+5.0),-0.47); /* max defln. */delm3 = 0.225*powaatan2(1,2.0*x1)*180.0/dpi+5.0),-0.47); /* max defln. */if (delml/r13 < delm2/r2) {^/* horizontal weld is critical .... */ff = r13;delm = delml;}else {^/* left vertical weld is critical ... */ff = r2;delm = dehn2;}116if (delm3/r13 < delm/rr) {^/* right vertical weld is critical ... */ff = r13;delm = delm3;}sum = 0.0;^/* initialize counter */suml = 0.0; /* initialize counter *//* sum of moments about i.c. and vertical forces for the horizontal welds */for (i = ro+0.5 ; i <= x1+0.5 ; i-f-F)(ri = sqrt(pow(1/2.0,2)+pow(i,2));^/* distance from i.c. to element */dein = rikr*delm;^/* deflection of n(th) element */thn = fabs(atan2(2.0*i,1)*180.0/dpi);^/* angle for n(th) element */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */m = rm*pow(1-exp(_mu*deln),Iam);^/* n(th) element strength */sum = sum + 2.0*m*i/ri;^/* add vertical force component */suml = sum! + 2.0*m*ri; /* add moment component */1/* sum of moments about i.c. and vertical forces for the left vertical weld */for (j = 0.5 ; j <= 1/2+0.5 ;j-H-)(ri = sqrt(pow(ro,2)+pow(j,2));^/* distance from i.c. to element */dein = ri/redelm;^/* deflection of n(th) element */thn = fabs(atan2(j,ro)*180.0/dpi);^/* angle for n(th) element */if (thn > 90.0)thn = 180.0 - thn;^/* angle must be less than 90 degrees */nn = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */m = rm*pow(1.0-exp(..mu*deln),lam);^/* n(th) element strength */sum = sum + 2.0*m*ro/ri;^/* add vertical force component */sum! = sum! + 2.0*m*ri; /* add moment component */}/* stun of moments about i.c. and vertical forces for the right vertical weld*/for (j = 0.5 ; j <= 1/2+0.5 ;j++){ri = sqrt(pow(x1,2)+pow(j,2));^/* distance from i.c. to element */dein = ri/redelm;^/* deflection of n(th) element */thn = fabs(atan2(j,x1)*180.0/dpi);^/* angle for n(th) element */if (thn > 90.0)thn = 180.0 - tlm;^/* angle must be less than 90 degrees */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */m = rm*pow(1.0-exp(-mu*deln),Iam);^/* n(th) element strength */sum = sum + 2.0*m*xl/ri;^/* add vertical force component */117sum! = sum 1 + 2.0*rn*ri;^/* add moment component */return 0;^/* return 0 for the value of function calc */Instantaneous Center calculation for a C shaped weld group/*/* This program determines the ultimate resistance of a C_shaped weld group *//* with a vertical load applied in plane on the closed side. A trial and *//* error procedure using instantaneous centers and emperically determined *//* load deformation responses of weld elements is utilized.^*//*^ *1/* The following variables are used in this program ^*1/* *1/* 1 = length of web of weld group (ie: vertical length).^*1/* b = width of horizontal portion of weld group.^*1/* e = eccentricity of load from web of weld group. *//* ro = horizontal distance between i.c. and web of weld group.^*1/* ri = distance from i.c. to weld element.^*1/* rr = distance to critical weld element (re: see variable delm)^*//* sum = sum of vertical reactions on weld group.^*//* suml = sum of moment reaction about i.e. *1/* cc = value of coefficient as used in handbook (table 3-27, 1986) *//* delm = maximum deflection of critical weld group element.^*//* dein = deflection of the n(th) weld group element.^*//* x 1 = horizontal distance from i.c. to weld group tips.^*1/* thn = angle theta associated with the n(th) weld group element.^*//* rm = ultimate strength of weld group element.^*1/* rn = resistance of weld group element.^*//* mu = regression coefficient.^*1/* lam = regression coefficient. *//* dpi = value of pi.^ *1/*^ */#include <stdio.h>#include <math.h>#include <stdlib.h>#include <owl.h>#include "windows.h"#include "wisdom.h"long FAR PASCAL _export CweldCC (double 1, double b, double e)double cc,ro,rold,rnew,frold,frnew,secslp,up;extern double sum, sinnl ;^/* external variables */b=b*200.0/1;e=e*200.0/1;1=200;ro=b;sum = 0.0;/* scale weld to let 1 = 200 *//* start with i.e. in line with tips of weld group *//* initialize counter */118suml = 0.0;^/* initialize counter */calcCloseC(1,b,ro); /* call to function calc */frold = (e+ro)*sum - suml;^/* function of ro ; should be zero */mew = b/2.0;^/* place i.c. at new location */while (fabs(frold) > 1000) (^/** Continuously calculate **/Told = ro;^/** new values of the fns. **/ro = mew; /** frold and frnew until **/calcCloseC(1,b,ro);^/** the error is within **/frnew = (e+ro)*sum - stunl;^/** the specified amount. **/secslp = (fmew - frold)/(rnew - rold);^/** The secant slope^**/mew = rold - frold/secslp;^/** (secslp) is used to **/fold = frnew;^/** get new values of ro. **/cc = suml/(e+ro)*4.448*70/60/6.35/1*0.67*0.67; /* calculate coefficient */cc = cc * 1000;up = ceil(cc);return ((long) up);/* calcCloseC: function to test accuracy of guessed i.c. locationdouble FAR PASCAL calcCloseC(double 1, double b, double ro)double delm,deln,x1,t1m,rm,mujam,rn,dpi,rr,ri,delml,delin2,i,j;extent double sum, sum 1;^/* external variables */dpi = 3.141592653589793;^/* specify value of pi */xl = ro - b;^/* horizontal distance from i.c. to weld group tips *//* check which weld element is critical: vett. weld (1) or hor. weld (2) */ff = sqrt(pow(112.0,2)+pow(ro,2));^/* radial distance from i.c. */delml = 0.225*powaatan2(1,2.0*ro)*180.0/dpi+5.0),-0.47); /* max defln.delm2 = 0.225*powaatan2(2.0*ro,1)*180.0/dpi+5.0),-0.47); /* max defln.if (delm2 < delml) /* horizontal weld governs ultimate deflection.... */delm = delm2;else^/* vertical weld governs ultimate deflection.... */delm = delml;sum = 0.0; /* initialize counter */stunl = 0.0;^/* initialize counter *//* sum of moments about i.c. and vertical forces for the horizontal welds */for (i = x1+0.5 ; <= ro+0.5 ; i++)ri = sqrt(pow(112.0,2)+pow(i,2));^/* distance from i.c. to element */deln = rikr*delm;^/* deflection of n(th) element */tlut = fabs(atan2(2.0*i,1)*180.0/dpi);^/* angle for n(th) element */119nn = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */ni = rm*pow(1-exp(-mu*deln),lam);sum = sum + 2.0*rn*i/ri;sum! = sum! + 2.0*rn*ri;}/* n(th) element strength *//* add vertical force component *//* add moment component *//* sum of moments about i.c. and vertical forces for the vertical weld *1for (j = 0.5 ; j <= 1/2+0.5 ; j++){ri = sqrt(pow(ro,2)+pow(j,2));^/* distance from i.c. to element */dein = ri/ff*delm;^/* deflection of n(th) element */thn = atan2(j,ro)*180.0/dpi;^/* angle for n(th) element */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*t1m);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */ni = rm*pow(1.0-exp(-mu*deln),lam);^/* n(th) element strength */sum = sum + 2.0*ni*ro/ri;^/* add vertical force component */suml = suml + 2.0*rn*ri; /* add moment component */}return 0;^/* return 0 for the value of function calc */}120Instantaneous Center calculation for a C shaped weld group/*^ *1/* This program determines the ultimate resistance of a C_shaped weld group *//* with a vertical load applied in plane on the open side. A trial and *//* error procedure using instantaneous centers and emperically determined *//* load deformation responses of weld elements is utilized.^4.//*^ *1/* The following variables are used in this program ^*//* *//* 1 = length of web of weld group (ie: vertical length).^*//* b = width of horizontal portion of weld group.^*//* e = eccentricity of load from web of weld group. *//* ro = distance between i.c. and web of weld group.^*//* ri = distance from i.c. to weld element.^*//* rr = distance to critical weld element (re: see variable delm)^*//* sum = sum of vertical reactions on weld group.^*//* suml = sum of moment reaction about i.c. *//* cc = value of coefficient as used in handbook (table 3-27, 1986) *//* delm = maximum deflection of critical weld group element.^*1/* deln = deflection of the n(th) weld group element.^*//* xl = horizontal distance from i.c. to the weld element tip.^*//* thn = angle theta associated with the n(th) weld group element.^*//* nn = ultimate strength of weld group element.^*1/* rn = resistance of weld group element.^*1/* mu = regression coefficient.^*//* lain = regression coefficient. *//* dpi = value of pi.^ *//*^ */#include <stdio.h>#include <math.h>#include <stdlib.h>#include <owl.h>#include "windows.h"#include "wisdom.h"long FAR PASCAL _export Cweld0C (double 1, double b, double e){double cc, ro, rold, niew,frold,frnew, secslp,up;extern double sum, stunl;^/* external variables */b=b *200 .0/1;e=e*200.0/1;1=200;ro = 0.0;sum = 0.0;/* scale weld to let 1 = 200 *//* start with i.c. at web of weld group *//* initialize counter */121sum! = 0.0;^/* initialize counter */calcOpenC(1,b,ro); /* call to function calc */frold = (e+ro)*sum - sum!;^/* function of ro ; should be zero */mew= 10;^/* place i.c. at new location */while (fabs(frold) > 1000) {^/** Continuously calculate **/rold = ro;^/** new values of the fns. **/ro = mew; /** frold and frnew until **/calcOpenC(1,b,ro);^/** the error is within **/frnew = (e+ro)*stun - suml;^/** the specified amount. **/secslp = (frnew - frold)/(rnew - rold);^/** The secant slope^**/mew = rold - frold/secslp;^/** (secslp) is used to **/frold = frnew;^/** get new values of ro. **/}cc = stunl/(e+ro)*4.448*70/60/6.35/1*0.67*0.67; /* calculate coefficient */cc = (cc*1000);up = ceil(cc);return ((long) up);}/* calcOpenC: function to test accuracy of guessed i.c. location^*1double calcOpenC (double 1, double b, double ro){double delm,deln,x1,thrt,rm,mu,lam,rn,dpi,r1,r2,rr,ri,delml,delin2,i,j;extern double sum, suml;^/* external variables */dpi = 3.141592653589793;^/* specify value of pi */xl = ro + b;^/* horizontal distance from i.c. to weld group tips *//* check which weld element is critical: vert. weld (1) or hor. weld (2) */rl = sqrt(pow(1/2.0,2)+pow(ro,2));^/* radial distance from i.c. */r2 = sqrt(pow(1/2.0,2)+pow(x1,2));^/* radial distance from i.c. */delml = 0.225*pow((atan2(1,2.0*ro)*180.0/dpi+5.0),-0.47); /* max defln. */delm2 = 0.225*pow((atan2(2.0*x1,1)*180.0/dpi+5.0),-0.47); /* max defln. */if (delm2/r2 < delml/rl) { /* horiz. weld governs ultimate deflection */ff = r2;delm = delm2;}else {^/* vertical weld governs ultimate deflection */IT = rl;delm = delml;}sum = 0.0;^/* initialize counter */stunl = 0.0; /* initialize counter *//* sum of moments about i.c. and vertical forces for the horizontal welds */122for (i = ro+0.5 ; i <= x1+0.5 ; i++)(ii = sqrt(pow(112.0,2)+pow(i,2));^/* distance from i.c. to element */dein = rihr*delm;^/* deflection of n(th) element */thn = fabs(atan2(2.0*i,1)*180.0/dpi); /* angle for n(th) element */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4; /* ultimate strength */mu = 75.0*exp(0.0114*thn); /* regression coefficient */lam = 0.4*exp(0.0146*flui);^/* regression coefficient */m = rm*pow(1-exp(..mu*deln),lam);^/* n(th) element strength */sum = sum + 2.0*m*i/ri;^/* add vertical force component */suml = suml + 2.0*m*ri; /* add moment component */}/* sum of moments about i.c. and vertical forces for the vertical weld */for (j = 0.5 ; j <= 1/2+0.5 ;j-4-+)(ri = sqrt(pow(ro,2)+pow(j,2));^/* distance from i.c. to element */dein = ri/redelm;^/* deflection of n(th) element */am = fabs(atan2(j,ro)* 180.0/dpi);^/* angle for n(th) element */if (thn > 90.0)tlui = 180.0 - tlui;^/* angle must be less than 90 degrees */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */m = rm*pow(1.0-exp(..mu*deln),1am);^/* n(th) element strength */sum = sum + 2.0*m*ro/ri;^/* add vertical force component */suml = suml + 2.0*m*ri; /* add moment component */}return 0;^/* return 0 for the value of function calc */}123Instantaneous Center calculation for a L shaped weld group/*^ *1/* This program determines the ultimate resistance of an Lshaped weld *//* group with a vertical load applied in plane on the closed side. A trial *//* and error procedure using instantaneous centers and emperically^*1/* determined load deformation responses of weld elements is utilized.^*//*^ *//* The following variables are used in this program^/* *//* 1 = length of web of weld group (ie: vertical length).^*//* b = width of horizontal portion of weld group.^*1/* e = eccentricity of load from web of weld group. *1/* ro = distance between i.c. and web of weld group.^*1/* ri = distance from i.c. to weld element.^4.//* rr = distance to critical weld element (re: see variable delm)^*//* sum = sum of vertical reactions on weld group.^*//* sum! = sum of moment reaction about i.c. *1/* cc = value of coefficient as used in handbook (table 3-27, 1986) *//* delm = maximum deflection of critical weld group element.^*//* deln = deflection of the n(th) weld group element.^*1/* xl = distance from i.c. to horizontal weld tip. *1/* thn = angle theta associated with the n(th) weld group element.^*//* rm = ultimate strength of weld group element.^*1/* rn = resistance of weld group element.^*//* mu = regression coefficient.^*1/* lam = regression coefficient. *//* dpi = value of pi.^ *//*^ */#include <stdio.h>#include <math.h>#include <stdlib.h>#include <owl.h>iiinclude "windows.h"#include "wisdom.h"long FAR PASCAL export LweldCC (double 1, double b,double e)(double cc,ro,rold,rnew,frold,fniew,secslp,up;extern double sum, sum!;^/* external variables */1y=b*200.0/I;e=e*200.0/1;1=200;ro = b;sum = 0.0;/* scale weld to let 1 = 200 *//* start with i.c. on the open side of the weld group *//* initialize counter */*1124suml = 0.0;^/* initialize counter */calcCloseL(1,b,ro); /* call to function calc */frold = (e+ro)*sum - sum!;^/* function of ro ; should be zero */mew = b/2.0;^/* place i.c. at new location */while (fabs(frold) > 1000) {^/** Continuously calculate **/rold = ro;^/** new values of the fns. **/ro = mew; /** frold and frnew until **/calcCloseL(1,b,ro);^/** the error is within **/frnew = (e+ro)*stim - sum!;^/** the specified amount. **/secslp = (frnew - frold)/(rnew - rold);^/** The secant slope^**/mew = rold - frold/secslp;^/** (secslp) is used to **/frold = frnew;^/** get new values of ro. **/cc = suml/(e+ro)*4.448*70/60/6.35/1*0.67*0.67; /* calculate coefficientcc = (cc* 1000);up = ceil(cc);return ((long)up);/* calcCloseL: function to test accuracy of guessed i.c. locationdouble FAR PASCAL calcCloseL(double 1, double b, double ro)double xl,y1,thn,rm,mu,lam,m,dpi,r1,r2,r3,n,ri,ij;double delm,delml,delm2,delm3.deln;extern double sum, suml;^/* external variablesdpi = 3.141592653589793;^/* specify value of pi */xl = ro - b;^/* horizontal distance from i.c. to weld group tips */yl = pow(1,2)/2/(1+b);/* check which weld element is critical: vert. weld (1) or hor. weld (2) */rl = sqrt(pow(1-y1,2)+pow(ro,2));^/* radial distance from i.c. */r2 = sqrt(pow(y1,2)+pow(x1,2));^/* radial distance from i.c. */r3 = sqrt(pow(y1,2)+pow(ro,2));^/* radial distance from i.c. */delml = 0.225*powaatan2(1-y1,ro)*180.0/dpi+5.0),-0.47); /* max defin. */delm2 = 0.225*pow(fabs(atan2(xl,y1)*180.0/dpi+5.0),-0.47); /* max defln. */delm3 = 0.225*pow((atan2(ro,y1)*180.0/dpi+5.0),-0.47); /* max defln. */if (delm2/r2 < delml/rl) { /* horiz. weld (left side) governs deflection */ff = r2;delm = delm2;else {^/* vertical weld governs ultimate deflection */r r = r1;delm = delml;if (delm3/r3 < delm/n) { /* hor. weld (right side) governs deflection */ff r3;delm = delm3;125sum = 0.0;^ /* initialize counter */stunl = 0.0; /* initialize counter *//* sum of moments about i.c. and vertical forces for the horizontal welds */for (i = x1+0.5 ; i <= ro+0.5 ; i++){ri = sqrt(pow(y1,2)+pow(i,2));dein = ri/redelm;thn = fabs(atan2(i,y1)*180.0/dpi);/* distance from i.c. to element *//* deflection of n(th) element *//* angle for n(th) element */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*t1m);^/* regression coefficient */m = rm*pow(1-exp(-mu*deln),Iam);^/* n(th) element strength */sum = sum + m*i/ri;^/* add vertical force component */sum! = sum! + reri; /* add moment component */1/* sum of moments about i.c. and vertical forces for the vertical weld */for (j = y1-1+0.5 ; j <= y1+0.5 ; j++){ri = sqrt(pow(ro,2)+pow(j,2));^/* distance from i.c. to element */deln = ri/redelm;^/* deflection of n(th) element */dm = fabs(atan2(j,ro)* 180.0/dpi);^/* angle for n(th) element */if (thn > 90.0)thn = 180.0 - thn;^/* angle must be less than 90 degrees */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */m = rm*pow(1.0-exp(..mu*deln),lam);^/* n(th) element strength */sum = sum + rero/ri;^/* add vertical force component */suml = suml + m*ri; /* add moment component */1return 0;^/* return 0 for the value of function calc */1126Instantaneous Center calculation for a L shaped weld group/*/* This program determines the ultimate resistance of an L_shaped weld *//* group with a vertical load applied in plane on the open side. A trial *//* and error procedure using instantaneous centers and emperically^*1/* determined load deformation responses of weld elements is utilized.^*//*/* The following variables are used in this program ^*1/*^ *1/* 1 = length of web of weld group (ie: vertical length).^*1/* b = width of horizontal portion of weld group.^*1/* e = eccentricity of load from web of weld group. *1/* ro = distance between i.c. and web of weld group.^*//* ri = distance from i.c. to weld element.^*11* ff = distance to critical weld element (re: see variable delm)^*//* sum = sum of vertical reactions on weld group.^*1/* sum 1 = sum of moment reaction about i.c. *//* cc = value of coefficient as used in handbook (table 3-27, 1986) *//* delm = maximum deflection of critical weld group element.^*//* deln = deflection of the n(th) weld group element.^*//* xl = horizontal distance from i.c. to horizontal weld tip.^*//* thn = angle theta associated with the n(th) weld group element.^*//* rm = ultimate strength of weld group element.^*//* rn = resistance of weld group element.^*1/* mu = regression coefficient.^*1/* lam = regression coefficient. *1/* dpi = value of pi.^ *1/*^ */#include <stdio.h>#include <math.h>include <stdlib.h>#include <owl.h>#include "windows.h"#include "wisdom.h"long FAR PASCAL _export Lweld0C (double 1, double b, double e)double cc, ro, rold, niew,frold,frnew, secslp,up;extern double sum, suml;^/* external variables */b=b*200.0/1;^/* scale weld to let 1 = 200 */e=e*200.0/1;1=200;127ro = 0.0;sum = 0.0;suml = 0.0;calcOpenL(1,b,ro);frold = (e+ro)*sum - suml;mew= 10;/* start with i.c. at web of weld group *//* initialize counter *//* initialize counter *//* call to function calc *//* function of ro ; should be zero *//* place i.e. at new location */while (fabs(frold) > 1000) {rold = ro;ro = mew;calcOpenL(1,b,ro);fmew = (e+ro)*sum - sum!;secslp = (frnew - frold)/(rnew -mew = Told - frold/secslp;frold = frnew;1/** Continuously calculate1** new values of the fns. **//** frold and frnew until **//** the error is within **//** the specified amount. **/rold);^/** The secant slope^**//** (secslp) is used to **//** get new values of ro. **/cc = suml/(e+ro)*4.448*70/60/6.35/1*0.67*0.67; /* calculate coefficient */cc = (cc* 1000);up = ceil(cc);return ((long) up);}/* calcOpenL: function to test accuracy of guessed i.e. location^*1double FAR PASCAL calcOpenL(double 1, double b, double ro){double delm,deln,x1,y1,thn,rm,mu,lam,m,dpi,r1,r2,rr,ri,delml,delm2,i,j;extern double sum, suml;^/* external variables */dpi = 3.141592653589793;^/* specify value of pi */xl = ro + b;^/* horizontal distance from i.c. to weld group tips */yl = pow(1,2)12/(1+b);/* check which weld element is critical: vert. weld (1) or hor. weld (2) */rl = sqrt(pow(1-y1,2)+pow(ro,2));^/* radial distance from i.e. */r2 = sqrt(pow(y1,2)+pow(x1,2));^/* radial distance from i.c. */delml = 0.225*powaatan2(1-y1,ro)*180.0/dpi+5.0),-0.47); /* max defln. */delm2 = 0.225*pow((atan2(x1,y1)*180.0/dpi+5.0),-0.47);^/* max defln. */if (delm2/r2 < delml/rl) { /* horiz. weld governs ultimate deflection *1ff = r2;delm = delm2;}else {^/* vertical weld governs ultimate deflection */rr = rl;delm = delml;}sum = 0.0;^ /* initialize counter */siunl = 0.0; /* initialize counter */128/* sum of moments about i.c. and vertical forces for the horizontal welds */for (i = ro+0.5 ; i <= x1+0.5 ; i-H-){ri = sqrt(pow(y1,2)+pow(i,2));^/* distance from i.c. to element */dein = riiredelm;^/* deflection of n(th) element */thn = fabs(atan2(i,y1)*180.0/dpi);^/* angle for n(th) element */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lain = 0.4*exp(0.0146*thn);^/* regression coefficient */m = rm*pow(1-exp(..mu*deln),Iam);^/* n(th) element strength */sum = sum + rn*Yri;^/* add vertical force component */sum! = sum! + rn*ri; /* add moment component */}/* sum of moments about i.c. and vertical forces for the vertical weld */for (j = yl-l+0.5 ;j <= y1+0.5 ; j++)(ri = sqrt(pow(ro,2)+pow(12));^/* distance from i.c. to element */deln = ri/ff*delm;^/* deflection of n(th) element */thn = fabs(atan2(j,ro)*180.0/dpi);^/* angle for n(th) element */if (thn > 90.0)thn = 180.0 - thn;^/* angle must be less than 90 degrees */nn = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */rn = rm*pow(1.0-exp(.mu*deln),lam);^/* n(th) element strength */sum = sum + m*ro/ri;^/* add vertical force component */sum! = sum! + m*ri; /* add moment component */}return 0;^/* return 0 for the value of function calc */}129Instantaneous Center calculation for a 2 horizontal parallel weld group/*/* This program determines the ultimate resistance of 2 horizontal parallel *//* welds with a vertical load applied eccentrically in plane. A trial and *//* error procedure using instantaneous centers and emperically determined *//* load deformation responses of weld elements is utilized.^*1/*/* The following variables are used in this program ^*1/*^ *1/* 1 = length of horizontal weld line^*//* b = distance between horizontal weld lines.^*1/* e = eccentricity of load from c.g. of weld group.^*1/* ro = distance between i.c. and left edge of weld group.^*1/* ii = distance from i.c. to weld element.^*11* rr = distance to critical weld clement (re: see variable delm)^*//* sum = sum of vertical reactions on weld group.^*1/* suml = sum of moment reaction about i.c. *1/* cc = value of coefficient as used in handbook (table 3-25, 1986)/* delm = maximum deflection of critical weld group element./* deln = deflection of the n(th) weld group element.^*1/* xl = distance from i.c. to the right edge of weld group.^*//* thn = angle theta associated with the n(th) weld group element./* rm = ultimate strength of weld group element.^*//* m = resistance of weld group element.^*1/* mu = regression coefficient.^*//* lam = regression coefficient. *1/* dpi = value of pi.^ *//*^ */#include <stdio.h>#include <math.h>#include <stdlib.h>1/include <owl.h>#include "windows.h"#include "wisdom.h"long FAR PASCAL _export parHorC ( double 1, double b, double e)double cc, ro, rold,mew,frold,frnew, secslp,up;extern double sum, suml;^/* external variables */b=b*200.0/1;e=e*200. 0/1+100.0 ;1=200;ro = 0.0;sum = 0.0;suml = 0.0;/* scale weld to let 1 = 200 *//* start with i.c. at left side of weld group *//* initialize counter *//* initialize counter */*1*1130calcParHor(1,b,ro);^/* call to function calc */frold = (e+ro)*sum - suml;^/* function of ro ; should be zero */mew = 10;^/* place i.c. at new location */while (fabs(frold) > 1000) {^/** Continuously calculate **/rold = ro;^/** new values of the fns. **/ro = mew; /** frold and frnew until **/calcParHor(1,b,ro);^/** the error is within **/frnew = (e+ro)*sum - suml;^I** the specified amount. **/secslp = (frnew - frold)/(mew - rold);^/** The secant slope^**/mew = rold - frold/secslp;^/** (secslp) is used to **/frold = frnew;^/** get new values of ro. **/)cc = stunl/(e+ro)*4.448*70/60/6.35/1*0.67*0.67; /* calculate coefficient *1cc = (cc* 1000);up = ceil(cc);return ((long) up);}/* calcParHor: function to test accuracy of guessed i.c. location^*1double FAR PASCAL calcParHor(double 1, double b, double ro){double delm,deln,x1,thn,rm,mu,lam,m,dpi,n,ri,i;extern double sum, stunl;^/* external variables *1dpi = 3.141592653589793;^/* specify value of pi */xl = ro + 1;^/* horizontal distance from i.c. to right side */ff = sqrt(pow(b/2.0,2)+pow(x1,2));^/* radial distance from i.c. *1delm = 0.225*pow((atan2(2.0*x1,b)*180.0/dpi+5.0),-0.47); /* max defln. */sum = 0.0;^/* initialize counter */suml =0.0; /* initialize counter *//* sum of moments about i.c. and vertical forces for the horizontal welds */for (i = ro+0.5 ; i < xl ; i++){ri = sqrt(pow(b/2.0,2)+pow(i,2));^/* distance from i.c. to element */deln = ri/rr*delm;^/* deflection of n(th) element */dm = fabs(atan2(2.0*i,b)*180.0/dpi);^/* angle for n(th) element */nn = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */m = rm*pow(1-exp(-mu*deln),lam);^/* n(th) element strength */sum = sum + 2.0*m*i/ri;^/* add vertical force component */suml = suml + 2.0*m*ri; /* add moment component */}return 0;^/* return 0 for the value of function calc */}131Instantaneous Center calculation for a 2 parallel vertical weld group/*^ *1/* This program determines the ultimate resistance of two parallel vertical *//* welds with a vertical load applied eccentrically in plane. A trial and *//* error procedure using instantaneous centers and emperically determined *//* load deformation responses of weld elements is utilized.^*//*^ *//* The following variables are used in this program ^*1/* *//* 1 = length of vertical weld line.^*1/* b = horizontal spacing between weld lines.^*1/* e = eccentricity of load from center of gravity. *1/* ro = distance between i.c. and left side web of weld group.^*//* ri = distance from i.c. to weld element.^*1/* rr = distance to critical weld element (re: see variable delm)^*//* sum = sum of vertical reactions on weld group.^*1/* suml = sum of moment reaction about i.c. *1/* cc = value of coefficient as used in handbook (table 3-27, 1986) *//* delm = maximum deflection of critical weld group element.^*//* deln = deflection of the n(th) weld group element.^*//* xl = horizontal distance from i.c. to right side of weld group. *//* thn = angle theta associated with the n(th) weld group element.^*//* rm = ultimate strength of weld group element.^*1/* m = resistance of weld group element.^*1/* mu = regression coefficient.^*//* lain = regression coefficient. *1/* dpi = value of pi.^ *//*^ */#include <stdio.h>#include <math.h>#include <stdlib.h>#include <owl.h>#include "windows.h"#include "wisdom.h"long FAR PASCAL _export ParVerC ( double 1, double b, double e)(double cc,ro,rold,rnew,frold,frnew,secslp,up;extern double sum, sum 1;^/* external variables */b=b*200.0/1;^/* scale weld to let 1 = 200 */e=e*200.0/1+b/2.0;1=200;ro = 0.0;^/* start with i.c. at left side web of weld group */sum = 0.0; /* initialize counter */suml = 0.0; /* initialize counter */132calcParVer(1,b,ro);^/* call to function calc */frold = (e+ro)*stun - sum!;^/* function of ro ; should be zero */mew = 10; /* place i.c. at new location */while (fabs(frold) > 1000) {^/** Continuously calculate **/rold = ro;^/** new values of the fns. **/ro = mew; /** frold and frnew until **/calcParVer(1,b,ro);^/** the error is within **/frnew = (e+ro)*sum - suml;^/** the specified amount. **/secslp = (frnew - frold)/(mew - rold);^/** The secant slope^**/mew = rold - frold/secslp;^/** (secslp) is used to **/frold = frnew;^/** get new values of ro. **/cc = suml/(e+ro)*4.448*70/60/6.35/1*0.67*0.67; /* calculate coefficientcc = (cc*1000);up = ceil(cc);return ((long) up);/* calcParVer: function to test accuracy of guessed i.c. locationdouble FAR PASCAL calcParVer(double 1, double b, double ro)double delm,deln,x1,thn,m4mu,lam,m,dpi,rr,ri,j;extern double sum, suml;^/* external variablesdpi = 3.141592653589793;^/* specify value of pi */xl = ro + b;^/* horizontal distance from i.c. to right side web *//* check which weld element is critical: hor. weld (1) or ver. weld (2,3) */rr = sqrt(pow(V2.0,2)+pow(x1,2));^/* radial distance from i.c. */delm = 0.225*pow((atan2(1,2.0*x1)*180.0/dpi+5.0),-0.47); /* max defln. */sum = 0.0;^/* initialize counter */suml = 0.0; /* initialize counter *//* sum of moments about i.c. and vertical forces for the left vertical weld */for (j = 0.5 ; j <1/2 ;j++)ri = sqrt(pow(ro,2)+pow(j,2));^/* distance from i.c. to element */dein = ri/rr*delm;^/* deflection of n(th) element */thn = fabs(atan2(j,ro)*180.0/dpi);^/* angle for n(th) element */if (thn > 90.0)flint = 180.0 - dm;^/* angle must be less than 90 degrees */rm = (10.0 + thn)/(0.92 + 0.0603*thn)/25.4;^/* ultimate strength */mu = 75.0*exp(0.0114*flut);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */= rm*pow(1.0-exp(-mu*deln),lam);^/* n(th) element strength */sum = stun + 2.0*m*ro/ri;^/* add vertical force component */sum! = suml + 2.0*m*ri; /* add moment component */133/* sum of moments about i.c. and vertical forces for the right vertical weld*/for (j = 0.5 ; j <= 1/2+0.5 ;j++){ri = sqrt(pow(x1,2)+pow(j,2));^/* distance from i.c. to element */dein = ri/redelm;^/* deflection of n(th) element */thn = fabs(atan2(j,x1)*180.0/dpi);^/* angle for n(th) element */rm = (10.0 + thn)/(0.92 + 0.0603*thrt)125.4;^/* ultimate strength */mu = 75.0*exp(0.0114*thn);^/* regression coefficient */lam = 0.4*exp(0.0146*thn);^/* regression coefficient */rn = rm*pow(1.0-exp(mu*deln),lam);^/* n(th) element strength */sum = sum + 2.0*rn*xl/ri;^/* add vertical force component */sum! = suml + 2.0*rn*ri;^/* add moment component */}return 0;^/* return 0 for the value of function calc */1134

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0050506/manifest

Comment

Related Items