In order to address the complexity and time-consuming method of manual designing of wave springs, a design platform is developed and presented here. This method enables to design uniform, functional gradient and hybrid wave springs by keying in all the parameters through a GUI. A code using Python programming language (Python Software Foundation, US) [37] is developed in which all parameters and their relations with each other are defined. This code is directly fed and runs in Fusion 360 (Autodesk, US) [38] which is a modeling software through Visual Studio Code (Microsoft, US) [39]. After insertion of all the parameters, point data is generated as per the selected cross-sectional area of each coil which is either rectangular or circular. An automatic sweep command gives 3D form to these points and a complete body of designed spring has appeared which can be printed directly.
The presented method is able to control all parameters e.g., strip width, thickness, coil diameter, number of waves per coil, wave height and overlap between the coils as shown in Fig. 2 which resulted in three different types of wave springs which are uniform, functional gradient, and hybrid.
The profile of each coil is defined by the following three equation
\(X=A*sin\left(t\right)\) (1)
\(Y=A*cos\left(t\right)\) (2)
\(Z=B*sin\left(C*t\right)+E \left(t\right)\) (3)
A = Outer radius of the spring
C = Number of waves
B = Amplitude/pitch/wave height
E = Offset
For
rectangular cross-section
\(\text{E} = \text{B} + \text{s}\text{t}\text{r}\text{i}\text{p} \text{t}\text{h}\text{i}\text{c}\text{k}\text{n}\text{e}\text{s}\text{s}/2 - \text{O}\text{v}\text{e}\text{r}\text{l}\text{a}\text{p}\) (4)
circular cross-section
\(\text{E} = \text{B} + \text{r}\text{a}\text{d}\text{i}\text{u}\text{s} \text{o}\text{f} \text{w}\text{i}\text{r}\text{e} – \text{O}\text{v}\text{e}\text{r}\text{l}\text{a}\text{p}\) (5)
Uniform wave springs in which all coils have uniform dimensions as well as cross-sectional area which can be either rectangular or circular, functional gradient which can have variable dimensions i.e., width, thickness of strip, diameter of coil, etc. while the third type is hybrid/composite which can have the combination of rectangular and circular cross-sectional coils within a single spring body. All three types of wave springs design are shown in Fig. 3.
Python language [37] is easy to learn and use, having different complex industrial/research applications to build control/automate the process, development of GUI, etc. Similarly, the other application i.e., Visual Studio Code., are cloud-based free code editor redefined, optimized for debugging and building modern web applications.
2.1. Development of WSdesign Platform
The methodology used for this research was to devise a GUI based on Python coding, in which all the parameters along with the variables were defined. The flowchart for the methodology is presented in Fig. 4.
The mathematical equations (1), (2), (3), (4) and (5) presented in section 2 were implemented in WSdesign and their relationships with each other which have a direct effect on the performance of wave spring and were investigated by the same researchers [36] e.g., number of coils, wire/strip cross-section, wave height, coil diameter, number of waves, strip width/thickness and overlap between two consecutive coils (Investigating the effect of design parameters on the mechanical performance of contact wave springs designed for additive manufacturing, accepted for publication). The main window of GUI is shown in Fig. 5.
The start window of GUI shows the nomenclature of each parameter of wave spring which needs to be keyed in, has two main sections; in the 1st section, the user needs to select the type of spring which can be uniform or functional gradient/hybrid. By selecting the uniform type, the parameters need to be entered once which will be implemented to all coils simultaneously as shown in Fig. 6 (a), while in the selection of functional gradient/hybrid, parameters of each coil need to be entered. The input parameters i.e., the cross-section of each coil need to be selected as either rectangular or circular as illustrated in Fig. 6 (b), the number of coils determines the height of the wave spring which can be calculated by the addition of thickness of the strip/diameter of wire and wave height of each coil. Wave height same as the pitch of a helical spring has a direct effect on compressibility as well as load-bearing capacity, coil radius which can be considered as the spring radius is variable as per geometric variation of coils. Similarly, number of waves in each coil, strip width along with thickness in case of rectangular cross-section while the wire radius in case of circular cross-sectional of the coil needs to be inserted in the numerical form. To make this process more user-friendly, it is automated in such a way that upon selection of rectangular cross-section of a coil, strip thickness and width will appear (needs input only) while the radius of wire option will hide because this variable (wire radius) is associated with circular cross-section of each coil only and vice versa. The numeric value of coil overlap is also inserted which is the overlapping distance of two consecutive coils at the points of merge/joining.
The second section of GUI calculates the polar coordinates of each point of the profile of each coil. The number of points is set in such a way that speed and computational power will not cause any delay which can make the process slow, as more points will increase the efficiency but there would be more delay due to more computation of coordinates. These points are joined with spline or curve fitting and the sweep area is defined as per cross-section of the coil automatically. All the steps of generating a model of uniform and hybrid wave spring are shown in Fig. 6.
The sequence of modeling steps is the same for all except for functional gradient/hybrid wave spring in which dimensional as well as geometric variations of each coil need to be keyed in separately as shown in Fig. 6 (c).
After defining all the necessary details, a few wave springs utilizing simple and complex variation were successfully designed as presented in Fig. 7
The above illustration is evident that WSdesign can incorporate every variation of each parameter of wave spring as cross-sectional change along with variation in diameter of the coil is presented in Fig. 7 (a) for rectangular cross-sectional coil while Fig. 7 (b) showed circular cross-sectional coil. Similarly, the variation in thickness in each coil, as well as variation in wire diameter for circular cross-sectional coils, are shown in Fig. 7 (c)(i) and (ii) respectively. Finally, complex designs such as taper (variation of diameter in each coil) and hybrid (variable morphology of cross-section of each coil) wave springs i.e., were also successfully designed and presented in Fig. 7 (d)(i) and (ii), highlighting the flexibility of WSdesign tool.
The number of variations along with different combinations of rectangular and circular cross-sectional waves can be generated/selected by using this GUI which also enables to design the customized wave spring as per its intended use/applications. Few of the designed wave springs were shown in Fig. 8 (a). The enlarged views of contact points, as well as the profile of the coil of designs, showed no error as coils are properly attached with each other as shown in Fig. 8 (b).