IMPROVEMENT IN COMPUTERIZED MECHANICAL SYNTHESIS
PROGRAMS SUCH AS CAD
FIELD OF THE INVENTION
The present invention relates generally to computer synthesis and modeling of mechanisms, and more specifically to an improvement in computerized mechanism synthesis applications such as Computer Aided Design(CAD).
BACKGROUND
Designers and engineers alike, are constantly challenged to design, build, and implement new constructs to meet various needs of the ever-changing marketplace. From the most complicated robotic systems to the simplest of toys, lies a commonality of basic design components and engineering fundamentals. Building on such simple principles, designers and engineers develop and create complex mechanisms. A mechanism is generally a combination of geometric bodies which constitute a machine or part of a machine. As such they may contain rigid or resistant bodies formed and connected so that they move with definite relative motions with respect to one another. These mechanisms require various calculations for proper implementation and use. These calculations can completely engross the most proficient and left to manual acumen, such task is daunting. With the proliferation of computing technologies, computing applications have been and are being developed to assist designers and engineers to undertake calculations required for the synthesization and analysis of mechanisms. The most commonly used computing application for design is Computer Aided Design (CAD). CAD is considered the modeling of physical systems on computers, allowing both interactive and automatic analysis of design variants, and the expression of designs in a form suitable for manufacturing. Accordingly, this computing application provides a designer or engineer the ability to create, model, and analyze desired physical systems in a computerized realm. The functionality offered in such an application is generally directed towards the creation and manipulation of graphic representations of a desired construct.
A common characteristic of graphics synthesis and analysis applications is that parts, whether mechanical, electronic or of whatever kind, are designed in interactive mode. That is, the part—as far as already designed~is displayed on a display device (e.g.
as two-dimensional, or as perspective view) such as a CRT (cathode ray tube) or an LCD (liquid crystal display). The user enters commands via appropriate input means, preferably a computer mouse, a graphics tablet or a light pen in order to complement or modify the existing structure. When the editing process is finished, i.e., the part is defined, it may be plotted or otherwise be reproduced. Further, it is also possible to generate and communicate CAD information to an interface which can directly control a numerically controlled machine tool, in order to manufacture a physical representation of the object.
Typically, CAD provides a designer tools to facilitate the drawing, rotating, scaling, or moving of a desired construct. These functions are accomplished by selecting the items to be manipulated and then entering a suitable command through a user interface such as a keyboard or mouse to apply the sought after function. In addition, some CAD applications may provide additional functionality in the form of analysis tools to assist a designer in modeling the behavior of a desired construct.
Similar to CAD, development has been made in the computing industry to provide computing applications that have the ability to perform complex modeling and analysis of mechanisms. These programs allow engineers to model mechanisms and their corresponding linkages by specifying linkage lengths and the joints between links. Once the links and joints are defined, specialized inputs are added to the model to define the input motion of the mechanism. This process has significantly reduced the time to analyze mechanisms as compared to traditional ruler and compass calculation methods. However, the existing programs are concentrated on analyzing already synthesized mechanisms. When a modification is required of an existing mechanism, the application is required to iterate from a previously constructed mechanism to the desired modified mechanism. Iteration tends to be an extremely inefficient use of computing processing resources and a designer's time.
It would thus be advantageous to provide a computing application that focuses instead on the actual synthesization of mechanisms. Therefore, a computing application that allows designers and engineers to model mechanisms of varying complexity, while providing the freedom to add, delete, and modify various elements of a mechanism, instantaneously updating the mechanism and its associated variables, is highly desirable.
SUMMARY OF THE INVENTION
Accordingly the present invention provides an apparatus and methods for the computerized graphic synthesis of mechanisms allowing for instantaneous calculation, regeneration, and display of a mechanism and a mechanism's parameters. In a computing system capable of running a computer graphics and synthesis application such as computer aided design (CAD), the computing system having at least one user interface and a display device, a mechanism or mechanism elements may be created or retrieved on a computer graphics synthesis and analysis application through operator input. The present invention instantaneously tracks operator input, processes the input to generate first mechanism parameters, stores the first parameters, and displays the input and processed parameters as graphic representations in accordance with the computer graphics synthesis and analysis application. Upon operator modification of the created or retrieved mechanism, the present invention instantaneously tracks operator modifications, uses the stored first parameters to process modifications to generate second mechanism parameters, stores the second parameters, and displays the modifications and second parameters in accordance with the computer graphics synthesis and analysis application.
BRIEF DESCRIPTION OF THE FIGURES
The objects and advantages of the invention will become more apparent and more readily appreciated from the following detailed description of presently preferred exemplary embodiments of the invention taken in conjunction with the accompanying drawings of which:
Figure 1 shows a computer system running in accordance with the present invention; Figure 2 is a representation of a mechanism created and modified in accordance with the present invention;
Figure 3 is a flowchart of the processing performed by the present invention; Figure 4 is a vector representation of the mechanism depicted in FIGURE 2; and Figure 5 is a representation of an alternative mechanism created in accordance with the present invention;
DESCRIPTION OF A PREFERRED EMBODIMENT
Overview:
Computer graphics are used today in many different areas of industry, business, government, education, entertainment, and in the home. In computer-aided design (CAD), interactive graphics are used to design components and systems of mechanical, electrical, electro-mechanical and electronic devices. To name a few, these systems include structures (such as buildings, chemical and power plants, automobile bodies, airplane and ship hulls and their contents), machines of varying complexity, optical systems and computer networks. The emphasis is sometimes only on producing precise drawings of components and (sub)assemblies, as in online drafting and architectural rendering. More frequently, however, the emphasis is on interacting with a computer-based model of the component or system being designed in order to test, for example, its mechanical, electrical or thermal properties. Often the model is interpreted by a simulator (an additional computing application interacting with the CAD application) which feeds back the behavior of the system to the display console operator for further interactive design and test cycles.
In general, a computer graphics systems comprise an input unit (e.g. keyboard, mouse, graphics tablet, or stylus pen), a processing unit (CPU), a display device (e.g. CRT or LCD), and an output unit (e.g. plotter and printer). In use, the designer enters specific instructions into the processing unit through the input unit to prepare an intended design item (drawing). During the design process or upon completion thereof, the processing unit causes the display unit to display a design image, or causes the output unit to make a printout.
A design item may be assembled from line segments, circles and arcs for example. Each of the line segments can be defined by the coordinates, in an
XYZ-coordinate system, of the respective ends of the line segment. Each of the circles can be defined by the XYZ-coordinates of the circle center point as well as the radius of the circle. Each of the arcs can be defined by the XYZ-coordinates of the respective ends of the arc as well as the radius of the arc. Further, either of the above-described design elements can also be defined by polar coordinates combined with radius values (where applicable). However, XYZ-coordinates and polar coordinates are mutually convertible, so that the difference between the two methods of performing element definition is
insignificant. It should be appreciated that the element definition data may additionally include pieces of information relating the kinds of lines (e.g. thick lines, thin lines, broken lines, chain lines, and so forth) and/or the colors of lines. Moreover, sophisticated applications may contain rendering functionality which applies textured surfaces to created structures indicating shadows and light reflections.
Further, a design item is formed by entering definition data for various design elements through the keyboard or by plotting the end points for a line segment on the display device. The designed image is stored in the memory not as image data but as a combination of the definition data for the various elements. Thus, the element definition data stored in the memory can be conveniently used for analyzing the formed design item. In the context of synthesizing mechanisms, CAD applications provide a useful tool in creating computer graphic representations of mechanisms which can be stored electronically for future modification and use. Additionally, computer synthesis applications such as CAD can perform limited analysis on the created structures. Such analysis may include dimensioning and animation. However, analysis functionality maintained by existing computer synthesis applications do not provide instantaneous calculations of various variables, such as coupler point position, mechanical advantage, velocity, acceleration and force, upon the modification of a structure.
The present invention provides an improvement on computer synthesis applications. This improvement is such that when a structure is created or a created structure is updated, modified or changed through operator input, the graphic representation of the structure is instantaneously regenerated concurrent with the operator input. The improvement not only modifies the structure but also calculates, updates, and displays associated structure parameters. As will be described below with respect to Figures 1-5, the present invention is directed to a system and methods that enable the instantaneous regeneration and update of graphic representations of computer synthesized mechanisms. In accordance with a preferred embodiment thereof, the present invention comprises a system and method that couples an operator with the graphic representation of a given mechanism, allowing instantaneous manipulation, parameter calculation, and regeneration of a given mechanism.
In one embodiment, described more fully hereinafter, the methods and apparatus of the present invention may be implemented as part of a desktop computer system having a graphic synthesis and analysis computing application, such as computer aided design (CAD), having at least one input interface device, a microprocessor, memory, and a display device. Although the depicted embodiment provides a CAD computer synthesis and analysis computing application running on a desktop computer system having one computer processing unit, a mouse, a keyboard, and a cathode ray tube (CRT) display device, those skilled in the art will appreciate that the inventive concepts described herein extend to various types computer graphics synthesis and analysis computing applications running on various types of computer systems having different computing interfaces running different computing operating systems and having varying hardware configurations.
System Description and Processing:
Figure 1 shows computer system 100 having a computer processing unit 110, an operator input interface keyboard device 120, an operator input interface pointer device 130, and display device 140. Computer processing unit 110 contains a microprocessor or another central processing unit (CPU), memories, and all associated electronics to run various computing applications. The computing system 100 runs a computer graphics synthesis and analysis application 142 (e.g. such as CAD) on computer processing unit 110. In an effort to synthesize a mechanism 150, an operator (not shown) inputs instructions to computer graphics synthesis and analysis application 142 through operator input interface keyboard device 120 or operator input interface pointer device 130. Operator inputs are processed by computer graphics synthesis and analysis application 142 on computer processing unit 110 to create data sets. Additionally, the operator inputs are used by computer graphics synthesis and analysis application to calculate parameters 150(a) specific to mechanism 150. The data sets and parameters correlate to graphic representations within computer graphics synthesis and analysis application 142 which can be displayed to an operator on display 140.
Furthermore, computer graphics and synthesis application 142 provides the operator the ability to modify synthesized mechanism 150. This operation is achieved by first selecting the portion of the graphic representation of synthesized mechanisml50 to be
modified. The selection process is achieved through the use of operator input interface keyboard device 120 or operator input interface pointer device 130. When modifying mechanism 150, an operator inputs instructions to computer graphics synthesis and analysis application 142 through operator input interface devices 120 and 130. Operator interfaces 120 and 130 act to control graphic pointer 144 of computer graphic synthesis and analysis application 142. Pointer 144 has freedom of movement within computer graphic synthesis and analysis application 142 such that it can move over the desired portion of the synthesized mechanism 150.
Once selected, the operator inputs further commands through operator input interfaces 120 and 130 to manipulate the selected portion(s) of mechanism 150. The modification operation results in the creation of modified mechanism 152. During modification processing, computer graphics synthesis and analysis application calculates new parameters 152(a) for modified mechanism 152. A graphic representation of modified mechanism 152 along with its newly calculated parameters 152(a) are then instantaneously displayed on display 140.
Figure 2 shows original computer synthesized mechanism 150 and modified synthesized mechanism 152 of Figure 1 in more detail. Although, the depicted embodiment provides a four-bar linkage planar mechanism, those skilled in the art will appreciate that the inventive concepts described herein extend to computerized synthesis of planar and non-planar multiple link mechanisms.
Mechanism 150 is shown having four links, 210, 220, 230, and 240. Link 210 serves as ground for mechanism 150. As a ground, this link is stationary and does not have translational or rotational freedom. Ground 210 has two linkage points 250 and 260 which are coupled to links 220 and 240, respectively. Linkage point 250 allows link 220 to move about the ground link 210. Similarly, linkage point 260 allows link 240 to move about ground link 210. Link 230 constitutes the coupler link of mechanism 150. As such it has three linkage points 252, 256, and 258. Linkage points 252 and 258 act to couple link 230 to links 220 and 240, respectively, and link 230. In addition linkage points 252 and 258 allow coupler link 230 to move about links 220 and 240. In the four-bar linkage configuration of planar mechanism 150, one of the mechanism links, such as 220 or 240 may serve as an input link which can be placed in motion. When in motion the input link 220 or 240 rotates about ground link 210 through
ground linkage points 250 or 260 respectively. If link 220 serves as the input link, link 240 becomes a follower link since its rotation merely follows the motion determined by the input link 220 and coupler link 230. Correspondingly, if link 240 serves as the input link, link 220 becomes the follower link since its rotation merely follows the motion determined by the input link 240 and the coupler link 230. Accordingly, when links 220 or 240 are put into motion, linkage point 256 of link 230 traces out coupler curve 270. Coupler curve 270 serves to indicate to a designer or engineer motion parameters for a mechanism having the described configuration.
Figure 2 further shows modified mechanism 152. Mechanism 152 is a modified computer regenerated four-bar linkage planar mechanism of mechanism 150, modified by an operator. Accordingly, mechanism 152 maintains elements common to mechanism 150. Mechanism 152 has ground link 210 connected to linkage points 250 and 260 respectively. Linkage point 250 mechanically couples modified link 220(a) to ground link 210. Similarly, linkage point 260 mechanically couples modified link 240(a) to ground link 210. Coupler link 230(a) is mechanically coupled to modified links 220(a) and 240(a) via modified linkage points 252(a) and 258(a) respectively. Similar to links 220 and 240 of mechanism 150, modified link 220(a) or 240(a) can act as an input link to place modified coupler link 230(a) into motion. When in motion, modified linkage point 256(a) traces out modified coupler curve 280. Figure 3, with reference to Figure 1 and Figure 2 illustrates the processing undertaken by graphic manipulation and analysis program 142 to modify synthesized mechanism 150 to produce modified mechanism 152, in accordance with the present invention.
Although Figure 3 is described using a mouse (operator input interface device) to control the graphic synthesis and analysis program, the present invention is not limited to this one example, as it contemplates the use of various user input interfaces including but not limited to a keyboard, a drawing tablet, a stylus pen or voice input interfaces.
Graphic synthesis and analysis application 142 begins application start-up at block 300. Operator (not shown) inputs commands via input interfaces devices 120 and 130 to draw or retrieve stored links and linkage points at block 305 to be displayed on display
140. The inputs are processed by computer graphics synthesis and analysis application 142 at block 307 to generate parameters for corresponding links and linkage points. The
parameters of the links and linkage points are then stored in the application memory at block 310 to be used for graphical display at block 315 and subsequent modified mechanism parameter calculation at block 365. Application 142 then proceeds to display the links and linkage points using the generated parameters of block 307 at block 315. Once the links and linkage points are generated, application 142 monitors the user input interface, a mouse for example, at block 320 to determine if there has been a "capture" input. A "capture" input is one in which the operator selects a created mechanism element through operator input interfaces 120 or 130 for modification.
If a there is no "capture" input from the input interface at block 320, the application continues to display the generated links and linkage points, and continues to monitor for user input. However, if there is a "capture" input at block 320, the application will then determine at block 325 if graphic pointer 144 is proximate to one of the generated links or linkage points. For example an operator may use mouse 130 to move over the mechanism element that is desired to be changed. The operator may then depress the left button 132 of a mouse 130 to select the desired mechanism element.
Correspondingly if the left button 132 of mouse 130 is depressed, application 142 will determine if this "capture" input places the pointer 144 proximate to a generated link or linkage point. If the "capture" input does not result in a proximate position to a generated link or linkage point, the application proceeds to block 320 where computer graphics synthesis and analysis application checks for further user input. If, however, proximate positioning is realized, the targeted link or linkage point is "captured" at block 330. Application 142 proceeds to set application variables at block 330 to indicate the link or linkage point that has been captured. Once captured, operator inputs are monitored at block 340 to determine if the captured link or linkage point has been moved from its original position. If there is no further user input at block 340, the application variables are reset at block 350 to indicate that the positioning of the targeted link or linkage point has not been changed and the application returns to step 320 and continues processing therefrom.
However if the computer graphics synthesis and analysis application 142 determines that there the operator has provided further input subsequent to the "capture" input at step 340, application 142 tracks the additional operator input at block 345 and updates the "captured" link or linkage point at block 355. This update includes application
142 generating new positional parameters for the modified link or linkage point at block 355. The new parameters calculated at block 355 include positional coordinates for the modified links and linkage points. Accordingly, the new positions are stored at block 360 and subsequently used to calculate the modified mechanism parameters at block 365. Once processed and calculated, the modified links, modified linkage points, and parameters (including a coupler curve) are regenerated and displayed on display 140 at step 370. Once displayed, application 142 reverts to step 320 to once again perform a check for "captured" elements.
Although the calculations performed by computer graphics synthesis and analysis application at block 355 and 365 are directed to positional coordinates of the links and linkage points and the calculation of a coupler curve, those skilled in the art will appreciate that the inventive concepts described herein can be extended to calculations of various parameters including but not limited to mechanical advantage, velocity, acceleration, force and mechanical advantage. By way of example, the processing described in Figure 3 is applied to Figure 2 with reference made to Figure 1. If it is desired to change the position of linkage point 252 to that of modified linkage point 252(a), an operator would position a graphic pointer 144 controlled by a mouse 130 proximate to linkage point 252. Once proximate to the targeted linkage point, the operator would then depress the left mouse button 132 to capture the targeted linkage point according to steps to 320 and 325 of Figure 3. The desired link or linkage point having been captured, the operator would move the mouse to reflect a movement of linkage point 252 to the position of modified linkage point 252(a). Correspondingly, application 142 would undertake processing according to steps 340, 345, 355, 360, 365, and 370 of Figure 3. The modified linkage point 252(a) is displayed along with the newly calculated parameters of the modified element and the mechanism on the whole. As part of the calculations, link length 220 is modified to modified link length 220(a). If the operator continues to capture the targeted element in accordance with step 320 of Figure 3, the mechanism continues to be instantaneously updated and displayed in accordance with operator mouse moves. Such processing is once again realized in steps 320 - 370 of Figure 3. Similar steps would be performed preformed to change linkage point 258 to modified linkage point 258(a). Correspondingly, this change would result in modified link length 240(a).
Figure 4 illustrates calculations performed at blocks 355-370 of Figure 3 to obtain new parameters for modified mechanism 152 of Figure 2. These parameters are calculated from the parameters of the originally synthesized mechanism 150 of Figure 2 and new operator inputs. Once again, the depicted embodiment describes a four-bar linkage planar mechanism, but those skilled in the art will appreciate that the inventive concepts described herein extend to computer synthesis of mechanisms having multiple links, and linkage points, both in-plane and out-of plane. Figure 4 shows mechanism 150 and modified mechanism 152 of Figure 2 in a vector coordinate system 401. Vector coordinate system is made up of a horizontal x axis 402 and a vertical vector axis iy 403. When generating the elements of mechanisms 150 and 152 respectively, computing application 142 (not shown) recognizes and stores the initial position of the mechanism determined by vector RAφ 404. Using initial position RAφ 404, application 142 can calculate and store various positions and angles relative to vector Raφ 404 for links and linkage points created or retrieved by an operator. As is described below, the stored positions are used by application 142 in computations to calculate various parameters for mechanism 150.
One of the parameters calculated by application 142 are mechanism 150 coupler curve 270 and modified mechanism 152 coupler curve 280. As shown in Figure 4, mechanisml50 has links described by vectors rl - r6. Further, mechanism 150 has linkage points A-E. As described above, mechanism 150 may be placed into motion if an input link (r2 or r4) is rotated about a linkage point (A or D). When placed into motion, linkage point E of mechanism 150 traces a motion path. This motion path is coupler curve 270 of mechanism 150. Coupler curves may be important to designers working with mechanisms because they describe the many possible paths motion that a mechanism may encounter. Accordingly, coupler curves may be calculated by application 142 according to the following.
Computing application will first determine if the input link, represented by vector R2, will behave as a crank or a rocker. Generally, when solving for the coupler curve, the four links can be classified as the shortest(s), longest(l) and the intermediate links(p and q). Accordingly for a four-bar linkage mechanism, if:
s + 1 < p +q and, if r3 = s, the range of motion for r2 will be rocker, if r4 = s, the range of motion for r2 will be a rocker, if r2 = s, the range of motion for r2 will be a crank, if rl = s, the range of motion for r2 will be a crank, however if, s + 1 > p +q
the range of motion for R2 will be a rocker, and lastly if,
s + l = p + q the range of motion will be a rocker.
Using the information stored about the created links and linkage points of mechanism 150, application 142 performs the above calculations to determine if the input link r2 will behave like a crank or a rocker. It is assumed for the purposes of this example that the input link is link r2 and it will behave like a crank. Having determined that input link r2 is a crank, the coupler curve may be calculated. Accordingly, to solve for the coupler curve, point E must be determined for every possible place link r2 can rotate. Therefore a discrete number of positions for link r2 is determined. For the example provided, it is assumed that application 142 will undertake computations for 360 positions, corresponding to one position for each degree of rotation of link r2 of Figure 4.
In the example provided, application 142 may calculate coupler curve 270 of mechanism 150 by incrementing angle θ2(the angle of r2) by a single degree from 0 to 360. Coupler curve 270 is solved by calculating point E using the equations below. For each computation, application 142 stores the resulting information. Application 142 proceeds to graphically represent the stored positions as a path intersecting with linkage point E.
Figure 4 further shows various variables used in calculations performed by application 142 to determine coupler curve 270 for mechanism 150. Turning to Figure 4, vector rl describes ground link of mechanism 150. Correspondingly vectors r2 and r4 describe input links of mechanism 150. Vectors r3, r5, and r6 in combination describe the
coupler link (output link) of mechanism 150. Accordingly, the ground link, input links, and coupler link are coupled through linkage points A, B, C, D, and E. Vector r7 is used for calculation purposes to provide the difference in position between linkage point B and D. In addition to the listed vectors, application 142 calculates, tracks and uses various angle positions in the calculation of coupler curve 270. Angle θl describes the position of ground link vector rl in relation to x axis 402. Similarly, θ4 describes the position of vector r4 in relation to the x axis. As described above θ2 is used to track the position of input link vector r2. Angle φ describes the position of vector r3 (and correspondingly the coupler link) to vector r7. Further, Figure 4 shows angle θ5 which describes the position of vector r5 in relation to the x axis 402. Angle λ describes the relative position of vector r5 to vector r3 of the coupler link of mechanism 150. Having calculated and stored these vectors and angles for created mechanism 150, application 142 can perform calculations according to the equations below (such equations being a part of application 142 or application 142 receiving such equations through operator input) to determine the instantaneous position of linkage point E.
In the calculations described below, capital letters represent the vector, lowercase letters represent the magnitude of the vector and theta represents the angle of the vector. Given that, R2 = r2eiθ2
R = ] - R2 θ7 = ZR7 r7 = I R7 1
Θ3= φ+ θl r3 = r3eiθ3 r4 = r2 + r3 - r, θ4 ="* ZR4
R5 = r5elθ5
the position of E is, RE = RA0 + R2 + R5 By incrementally increasing the value of the input link angle (theta 2 in this example), application 142 may compute a continuous coupler curve 270 for mechanism 150.
When an operator of application 142 inputs instructions to modify mechanism 150 to create modified mechanism 152, application 142 tracks the changes made to mechanism 150 that created mechanism 152 and store information related to such changes. These changes may result in different vector lengths, different vector positions, and different angle positions for mechanism 150. These changes become the basis for the information that define mechanism 152. Accordingly, parameter information (such as coupler curve, mechanical advantage, force, or acceleration values) change with operator modifications. Application 142 defines, tracks, stores, and uses new vector positions and angles to calculate new parameter information for modified mechanism 152.
Figure 4 further shows mechanism 150 having been modified to create modified mechanism 152 (shown in hash marks). Once again, for the purpose of this example of modified mechanism 152, it is assumed that link r2' acts as an input link having a crank behavior. In Figure 4 mechanism 152 is defined by vectors rl, r2', r3', r4', r5', r6' and linkage points A, B', C',D, and E'. Additionally, vector r7' is used to define the difference in position between B' and D.
As described above, when calculating the various parameters for a mechanism 150, application 142 creates several angle positions. The same holds true in calculating the various parameters for modified mechanisml52. Angle θ, describes the position of ground link vector rl in relation to a first determined normalized vector position.
Similarly, θ4' describes the position of vector r4' in relation to the a second determined normalized vector position. Angle θ2' is used to track the position of input link vector r2'. Angle φ' describes the position of vector r3' (and correspondingly the coupler link) to vector r7'. Further, Figure 4 shows angle θ5' which describes the position of vector r5' (and correspondingly the coupler link) in relation to x axis 402. Further angle λ' is used in the calculations as it describes the relative position of vector r5' to vector r3' of the coupler
link of modified mechanism 152. Having calculated and stored these vectors and angles for created mechanism 152, application 142 can perform calculations according to the above equations (such equations being a part of application 142 or application 142 receiving such equations as part of a user input) above to determine the position of linkage point E'. By incrementally increasing the value of the input link angle (Θ2 T in this example), application 142 may compute a continuous coupler curve 280 for modified mechanism 150.
Although the present invention had been described as utilizing equations and computations to calculate a coupler curve for a four-bar linkage planar mechanism, those skilled in the art will appreciate that the inventive concepts described herein extend to utilizing various equations and computations for various parameter calculations for planar and non-planar mechanisms having single or multiple linkages including but not limited to a mechanism's mechanical advantage, forces applied to a mechanism, acceleration of the mechanism and/or its elemental components, and velocity of the mechanism and/or its components.
Figure 5 shows an alternative example of a mechanism in accordance with the present invention. Figure 5 shows a multi-link out-of plane mechanism 510 in an x-y-z cartesean coordinate system 500. Mechanism 510 has a ground link 520 mechanically coupled to link 530 at linkage point 525. Link 530 is further mechanically coupled to link 540 at linkage point 545. Correspondingly link 540 is mechanically coupled to link 550 a linkage point 555. Further, link 550 is mechanically coupled to ground link 565 at linkage point 560. Link 530 may act as the input link as it can rotate at linkage point 525, around the x coordinate of coordinate system 500. The motion of link 530 results in links 540 and 550 traveling in their respective paths of motion 570 and 580. However, paths 570 and 580 would be changed if a given link or linkage point is modified. If, for example, it is desired to move linkage point 525 to modified linkage point 525(a), the operator would capture linkage point 525 and move it to modified linkage point 525(a). In accordance with the present invention, a resulting modified mechanism would be calculated and regenerated in response to the operator "capture" and move of linkage from point 525 to linkage point 525(a).
Conclusion:
In sum, the present invention provides a system and process for the computerized synthesis of mechanisms, preferably using a computer aided design (CAD) computing application providing modeling and analysis tools for the synthesis of mechanisms. It is understood, however, that the invention is susceptible to various modifications and alternative constructions. There is no intention to limit the invention to the specific constructions described herein. On the contrary, the invention is intended to cover all modifications, alternative constructions, and equivalents falling within the scope and spirit of the invention. It should also be noted that the present invention may be implemented in a variety of computer graphics applications. The various techniques described herein may be implemented in hardware or software, or a combination of both. Preferably, the techniques are implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non- volatile memory and/or storage elements), at least one input device, and at least one output device. Program code is applied to data entered using the input device to perform the functions described above and to generate output information. The output information is applied to one or more output devices. Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language. Each such computer program is preferably stored on a storage medium or device (e.g., ROM or magnetic disk) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform the procedures described above. The system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.
Although an exemplary embodiment of the invention has been described in detail above, those skilled in the art will readily appreciate that many additional modifications are possible in the exemplary embodiment without materially departing from the novel teachings and advantages of the invention. Accordingly, these and all such modifications
are intended to be included within the scope of this invention as defined in the following claims.