<<

GearTrain: Converting WinForms Gear Design Software to WPF

A Major Qualifying Project Submitted to the Faculty of Worcester Polytechnic Institute in fulfillment of the requirements for the degree in

Bachelor of Science in Computer Science

By Alan Curiel Kyle Smith

Advised by Professor David C. Brown (CS) Professor Pradeep Radhakrishnan (ME)

May 6, 2021

This report represents the work of WPI undergraduate students submitted to the faculty as evidence of a degree requirement. WPI routinely publishes these reports on its website without editorial or peer review. For information about the projects program WPI, see http://www.wpi.edu/Academics/Projects i

Copyright Information The work presented here is copyrighted by Alan Curiel, Kyle Smith, Professor David C. Brown, and Professor Pradeep Radhakrishnan. ii

Abstract

The goal of this project is to gear design software made in a previous MQP from the outdated graphics framework to the newer WPF frame- work, and improve it. Through many user studies, we were able to determine how users responded to the software to see what changes should be made. Users rec- ommended that a 3D representation of the gear train design be added, so that was included in the system. After many iterative refinement steps through the User Interface and program flow, our users generally agree that our new program, titled GearTrain, is a significant improvement over the previous system. GearTrain teaches Mechanical Engineering students about gear concepts and simplifies the designing of gear trains. iii

Acknowledgements

First and foremost, we would like to thank Professor David C. Brown and Professor Pradeep Radhakrishnan for providing guidance throughout this project. We would also like to thank Garrett Holman and Oluchukwu Okafor for their work on the original gear design program that this project is based on. Additionally, we would like to thank Elaine Perpetua for her work designing the many logos considered for the software, as well as the final one. Finally, we would like to thank all the students in the Mechanical Engineering department who participated in our user studies and helped us improve our program. iv

Authorship

1. Introduction ...... Smith 2. Research Statement and Goals ...... Smith 3. Literature Review ...... Smith 4. Methodology 4.1 A Term ...... Smith 4.2 B Term ...... Curiel 4.3 C Term ...... Curiel 4.4 D Term ...... Curiel 5. User Interface Design ...... Curiel 6. System Design ...... Smith 7. Data Analysis ...... Curiel, Smith 8. Evaluation ...... Curiel, Smith 9. Conclusion ...... Smith CONTENTS 1

Contents

List of Figures 4

List of Tables 6

1 Introduction 7

2 Research Statement and Goals 11

3 Literature Review 14 3.1 Computer Systems ...... 14 3.2 System Design ...... 16 3.2.1 UI Design and Evaluation ...... 17 3.2.2 Display of Gears in 3D ...... 20 3.3 Gear Concepts ...... 21

4 Methodology 23 4.1 A Term ...... 23 4.1.1 Gear Knowledge ...... 23 4.1.2 Planning ...... 24 4.1.3 Framework ...... 24 4.1.4 Study of the Old System ...... 25 4.2 B Term ...... 26 4.2.1 User Interface Mock-ups ...... 26 4.2.2 Importing Code from the Old System ...... 27 4.2.3 New Code and Interface ...... 28 4.3 C Term ...... 29 4.3.1 Application Features ...... 29 4.3.2 UI Revisions ...... 31 4.3.3 User Study ...... 32 4.4 D Term ...... 33 4.4.1 Writing ...... 33 4.4.2 Study ...... 33 4.4.3 Showcasing ...... 34 CONTENTS 2

5 User Interface Design 36 5.1 Main Menu ...... 36 5.1.1 File Drop-down ...... 37 5.1.2 Options Drop-down ...... 38 5.2 Top Bar ...... 39 5.3 Left Bar ...... 40 5.3.1 Screen ...... 40 5.3.2 Gear Sets Screen ...... 41 5.3.3 Edit Gear Set Screen ...... 41 5.4 3D View ...... 44 5.5 Other Interfaces ...... 45 5.5.1 Edit Shaft Window ...... 45 5.5.2 Gear Analysis ...... 46

6 System Design 47 6.1 Design Pattern ...... 47 6.1.1 Model ...... 49 6.2 Windows ...... 54 6.3 SolidWorks Macro ...... 57 6.4 Project File Structure ...... 57 6.5 Application Flow ...... 59

7 Data Analysis 61 7.1 Study of the Old System ...... 61 7.1.1 User Demographics for A20 Study ...... 62 7.1.2 Previous Experience ...... 64 7.1.3 User Feedback ...... 65 7.2 GearTrain Study ...... 69 7.2.1 C21 Study ...... 69 7.2.1.1 User Demographics for C21 Study ...... 70 7.2.1.2 Previous Experience ...... 72 7.2.1.3 User Feedback ...... 74 7.2.2 D21 Study ...... 78 7.2.2.1 User Demographics for D21 Study ...... 78 7.2.2.2 Previous Experience ...... 78 7.2.2.3 User Feedback ...... 81 CONTENTS 3

8 Evaluation 85 8.1 Study of the Old System (A20) ...... 85 8.1.1 User Demographics ...... 85 8.1.2 Previous Experience ...... 85 8.2 User Feedback ...... 86 8.3 GearTrain Study (C21 and D21) ...... 87 8.3.1 Previous Experience ...... 88 8.3.2 User Feedback ...... 89 8.3.3 Recommended Changes to the System ...... 91

9 Conclusion 94 9.1 Project Evaluation ...... 94 9.1.1 Heuristic Evaluation ...... 95 9.2 Project Experience ...... 97 9.2.1 Applied Skills ...... 97 9.2.2 Acquired Skills ...... 98 9.3 Future Work ...... 99 9.3.1 Unfinished Features ...... 100 9.3.2 New Features ...... 102

References 104

Appendices 107

A User Study Survey 107 A.1 Existing System ...... 107 A.1.1 Survey Questions ...... 107 A.1.2 Open Response Question Results ...... 108 A.2 New System (GearTrain) ...... 114 A.2.1 C21 Study ...... 114 A.2.1.1 Survey Questions ...... 114 A.2.1.2 Open Response Question Results ...... 115 A.2.2 D21 Study ...... 122 A.2.2.1 Open Response Question Results ...... 122

B User Study Tutorial Documents 136 B.1 A20 Study ...... 136 B.2 C21 and D21 study ...... 142 LIST OF FIGURES 4

List of Figures

1 Previous MQP gear design software...... 8 2 Interface when the application is first opened (start screen)...... 37 3 Menu - File drop down...... 38 4 Menu - Options drop down...... 39 5 App top bar...... 40 6 Left bar - Gear Sets screen...... 42 7 Left bar - Edit Gear Set screen...... 43 8 3D viewer displaying a static simple representation of a gear set. . . . 44 9 Edit Shaft window...... 45 10 Gear analysis screen...... 46 11 Representations of a cylinder (gear shaft) in three orientations (Z, X, Y, respectively)...... 52 12 Coordinate plane showing an example shaft with Orientation=±X, EndMin=-1, and EndMax=1. The length of this shaft is 2...... 54 13 UML class diagram...... 56 14 Functional diagram showing user and system actions...... 60 15 Year breakdown of study participants (A20, total=46)...... 62 16 Study participant majors (A20, total=46)...... 63 17 Study participant minors (A20, total=9)...... 63 18 User familiarity with gear design knowledge (A20)...... 64 19 User familiarity with gear design software (such as SolidWorks) (A20). 65 20 Task difficulty rating (A20)...... 66 21 Gear modification difficulty rating (A20)...... 67 22 Histogram of taken to complete the gear design task (A20). . . . 67 23 Year breakdown of study participants (C21, total=24)...... 71 24 Study participant majors (C21, total=24)...... 71 25 User familiarity with gear design knowledge (C21)...... 72 26 User familiarity with CAD (e.g., SolidWorks, AutoCAD) (C21). . . . 73 27 Histogram of time taken to complete the gear design task (C21). . . . 75 28 Tutorial difficulty rating (C21)...... 76 29 Year breakdown of study participants (D21, total=62)...... 79 30 Study participant majors (D21, total=74)...... 79 31 User familiarity with gear design knowledge (D21)...... 80 32 User familiarity with CAD (e.g., SolidWorks, AutoCAD) (D21). . . . 81 33 Histogram of time taken to complete the gear design task (D21). . . . 82 34 Tutorial difficulty rating (D21)...... 83 LIST OF FIGURES 5

35 Shaft generation error...... 102 LIST OF TABLES 6

List of Tables

1 The five Es of user experience (Stone et al., 2005) ...... 18 2 List of user interface heuristics (Nielsen, 1994)...... 19 3 GearBoxInfo properties...... 50 4 GearSet properties...... 51 5 Gear properties...... 53 6 Shaft properties...... 55 7 Project file structure...... 58 8 UI heuristic evaluation...... 96 1 INTRODUCTION 7

1 Introduction

A Computer Aided Design (CAD) program is a of computer software that aids in the design of mechanical systems. The CAD program that is used in this project is SolidWorks (Dassault Systemes, 2021). SolidWorks provides a graphical user in- terface (GUI) to assist in design, allowing its users to easily add and manipulate objects. Designs from SolidWorks can be exported to an stereolithography (STL) file which can later be 3D printed into real-life objects. Before CAD programs existed, engineers and designers would design systems by hand. For most basic things this is fine. However, when designing complex systems, such as gear trains, this can become unrealistic. It is hard to draw three-dimensional objects on paper, and there are many calculations required which a computer can do in a fraction of the time a human can. With the invention of CAD software, such as SolidWorks, this design time was significantly reduced, but designing a gear train can still take hours, even for simple trains. If a mistake is found at the beginning of a gear train, the entire train needs to be fixed, adding much more time to the design. This is the problem that a previous MQP team attempted to solve. They created a program with a simplified GUI which allows users to type in the gear information, then send it to SolidWorks to be generated automatically (Holman and Okafor, 2018). A screenshot of the program can be seen in Figure 1. This program greatly simplifies gear design. The users can create a design on paper, then enter the data points the program requires. Once they click ”Generate in SolidWorks”, the design is sent to SolidWorks and a CAD model is created automatically. This can save a designer many hours when they need to create a gear train. 1 INTRODUCTION 8

Figure 1: Previous MQP gear design software. 1 INTRODUCTION 9

This program has many shortcomings and many places where it can be improved, as described in more detail in Chapter 2. One of the main goals of this project is to convert the software to the Windows Presentation Foundation (WPF) framework from Windows Forms. Windows Forms was the main graphical framework for . languages in the past, but has ended support for it in favor of WPF (Allen, 2014). With many new developers learning WPF instead of Windows Forms, it is important that the software be scalable and maintainable in the future by new developers. Additionally, WPF continues to receive updates by Microsoft, so new features are always available to add to the software if needed. In addition to updating the framework, other changes needed to be made to the software, including bug and UI fixes (according to our user studies, see Chapter 8). After creating our program, GearTrain, based on comments about the old system, two more user studies were run on our system. In general, most participants found GearTrain easier to use than the old system, as explained in Chapter 8. The whole purpose of GearTrain is to make designing gear trains as easy as possible. By focusing on Human Computer Interaction (HCI) principles and user interaction, we were able to create a system that is very easy to use while still being able to create complex gear train designs. Chapter 2 describes the problem that this project will try to solve in more detail, as well as the requirements. Chapter 3 describes some of the related work to our project and the various resources we used. Chapter 4 describes the steps taken to complete the project and the methods used. Chapter 5 explains the design decisions made for the user interface design, while Chapter 6 discusses the design of the system 1 INTRODUCTION 10 internally and the rationale for some of these decisions. Chapter 7 contains the analysis of the data for our user studies, including some raw results. Chapter 8 discusses the significance and conclusions of the studies that were done and how the results were applied to our project. Finally, Chapter 9 concludes this project. 2 RESEARCH STATEMENT AND GOALS 11

2 Research Statement and Goals

Currently, there is a software application that generates models of gear boxes in SolidWorks using information entered by the user, including the number of gears, coordinates, and number of teeth (Holman and Okafor, 2018). One of the problems with the current application is that it was developed using an outdated graphics framework (a package of pre-written code which someone can use in their own code) called Windows Forms, released in 2002. Since Windows Forms is so outdated, and no new features are being added in the future (Allen, 2014), the application code is hard to extend when more functionality and complexity need to be added. Additionally, most new developers are learning WPF (Windows Presentation Foundation, a newer framework) instead of Windows Forms, so the system will be easier to maintain in the future by new developers who use C#. The current application is also not very user friendly since it is all text-based. The program does not provide enough feedback to the user, such as if SolidWorks is not open when they try to generate the model. The user may not know what their design will look like until the SolidWorks finishes the generation, which can take a long time depending on the user’s computer specifications and the complexity of their gearbox. This can cause a lot of wasted time for the user if mistakes were made, requiring them to run the generation again. To resolve these problems, we will rebuild the application in WPF, with a new design and with scalability in mind. Since we will not be the last group to work on this software, it is important to write code that other people can understand and extend. We will update the design, implement a new user interface, and add the 2 RESEARCH STATEMENT AND GOALS 12 ability to visualize the gearbox the user is creating. In summary, our goals are:

• Convert the existing gear generation system from Windows Forms to WPF.

• Create a 3D previewer of the user’s gear design.

• Run user studies before and after our improvement to gather user feedback about the systems (the old and new versions).

A new user interface (UI) will be created using WPF. This interface will be writ- ten in a new language, XAML (eXtensible Application Markup Language, Lee and Hogenson, 2020), and the backend code will use .NET Core instead of .NET Frame- work since .NET Framework is no longer being updated by Microsoft (Hunter, 2019). The UI must also be designed using the principles of human-computer interaction (HCI), such as efficiency and ease of use. A preview window will be created so the user can see their design before it is generated in SolidWorks. Since SolidWorks can take a relatively long time to generate, up to a few minutes sometimes, it can cause a lot of wasted time for the user if there is an error in their design. They would have to start the design over and wait for SolidWorks to generate the model again. However, a preview of their design could prevent this from happening. To see how the old system should be improved and to gather feedback about our new system, we will conduct user studies of the existing system and our new system. The study of the existing system will ask questions about user experience and what users would like to see improved, as well as what they think should not be changed. The study of our new system will also ask about their experience. That can be used 2 RESEARCH STATEMENT AND GOALS 13 to measure the relative improvement of the system versus the old system, as well as how it can be improved in the future. This section described the requirements and goals of this project in detail. The next section will discuss the background research that was done to understand the problem further and to plan our implementation. 3 LITERATURE REVIEW 14

3 Literature Review

As explained earlier, there are two main goals of this project: to convert the exist- ing gear train design system (Holman and Okafor, 2018) to Windows Presentation Foundation (WPF, a graphical user interface system made for Windows) and, in this new system, to provide a preview of the gear train that the software will generate in SolidWorks. The automated gear generation software developed by Holman and Okafor greatly simplified the process of designing a gear train. However, the soft- ware still left many things to be desired. Working on a large project such as this one requires a lot of planning and research. User interface (UI) design has many different aspects to be considered, such as ease of use and how aesthetically pleasing it is, and creating software for gears requires knowledge of gears and how gear trains are created. This section will briefly discuss the various parts of our project and the related work in each part that we will need to use.

3.1 Computer Systems

One of the main goals of this project is to convert the system made by Holman and Okafor to a WPF application. Their system was written in a framework called Win- dows Forms (WinForms), a platform for Windows computers for creating graphical user interfaces (GUIs) (Microsoft, 2003). Windows Forms was created in 2002 and is an event-driven system that provides a graphical user interface to the low-level Windows API. Windows Presentation Foundation (WPF) is another framework for creating GUIs for Windows that was created in 2006. WPF is desirable for a few 3 LITERATURE REVIEW 15 reasons. According to Microsoft in 2014, Windows Forms has entered “maintenance mode”, meaning no new updates will be released but bugs will still be fixed (Allen, 2014). As technology improves over time, we may want to include new features in the application that will not be available in Windows Forms. WPF has long term support and is continuously being updated with .NET Core so new features will always be added. In addition to choosing between Windows Forms and WPF, we also needed to choose a language runtime that would suit us. The system by Holman and Okafor was creating using .NET Framework, a runtime created in 2002 along with Windows Forms. Code written in the .NET Framework runs in a “virtual machine” called the Common Language Runtime (CLR). The CLR is responsible for application security, memory management, and exception handling, among other things (Wenzel and Jin, 2019). Similar to Windows Forms, no new updates will be released for .NET Framework, and new features may be desirable. .NET Core was designed as the successor to .NET Framework, with new releases planned through the end of 2023. At the time of writing this paper, a new framework has come out, .NET 5. .NET 5 is a continuation of .NET Core 3, but since it does not have long term support (other future versions of .NET will have long term support, such as .NET 6), we have decided to use .NET Core 3 (Lander, 2019). .NET Core has better performance than .NET Framework (Toub, 2017) and provides cross-platform support in case a future project group would like to add support for running the program on Mac or Linux. In terms of the programming languages we could use, we were limited to C# for a few reasons. The SolidWorks API that the program uses to generate the gear trains 3 LITERATURE REVIEW 16 is written in C#. The software is also made for Windows which is what C# was originally designed for. Finally, the old system was written in C# and we needed to reuse some of the old code. It is also a language that all team members are very familiar with, so there was no time needed to learn the language. C# is an object- oriented programming language created by Microsoft in 2002 as a “simple, modern, general-purpose object-oriented language” (Kulikov and Wagner, 2020). According to ECMA standard (ECMA-334) , the language is designed to support several soft- ware engineering principles, such as type checking and automatic garbage collection. It is also designed to run on any , from embedded systems to hosted systems, and is designed to be very economical with regard to memory (Ecma Inter- national, 2017). All these features help ensure a system implementation that is both free of errors and resource-conservative.

3.2 System Design

The first part of any large project is determining the problem you are trying to solve, what you need to solve it, and why you need to solve it. Fred Looft, a professor at Worcester Polytechnic Institute, states in his report, Systems Engineering for Capstone Projects, that “the problems being solved are rarely well defined” (Looft, 2018, p. 5). It is impossible to solve a problem unless you know what it is. In addition, you must also create a set of requirements that your system must have in order to solve the problem. In his experience, Professor Looft says that a main reason why projects fail is “poorly defined system requirements” (Looft, 2018, p. 24). Before attempting to solve the problem, or even researching how to solve it, we must 3 LITERATURE REVIEW 17

first have a concrete definition of the problem and the requirements that our system will have in order to solve it.

3.2.1 UI Design and Evaluation

Once you start developing your system, if it is to be used by users other than your- selves, it is important to keep the concepts of human-computer interaction (HCI) in mind. You should design for the users and their task, not yourself. There are also many “metrics” of human-computer interaction that are used to evaluate a piece of software. These include speed of performance, error rate, and time taken to learn. These metrics should be used to evaluate any user software to see whether some things about the application need to be changed to make it more user-friendly (Stone et al., 2005, p. 105-106). Stone, et al. also discusses “the five Es” of user experience. These are: effective, efficient, engaging, error tolerant, and easy to learn. Each is described in more detail in Table 1. 3 LITERATURE REVIEW 18

Table 1: The five Es of user experience (Stone et al., 2005) . Dimension Description Effective The completeness and accuracy with which users achieve their goals. Efficient The speed (and accuracy) with which users can complete their tasks. Engaging The degree to which the tone and style of the interface makes the product pleasant or satisfying to use. Error tolerant How well the design prevents errors or helps with recovery from those that do occur. Easy to learn How well the product supports both initial orientation and deepening understanding of its capabilities.

In addition to these metrics, there are also ten “heuristics” described by Nielsen (Nielsen, 1994). A description of each heuristic can be found in Table 2. These heuristics could be applied to the design after it is finished, or the design could be created with these heuristics in mind. They are mainly about ease of use, such as error recognition and prevention, consistency, and making the interface aesthetically pleasing and simple. In addition to a brief introduction to these points, Nielsen also provides short videos explaining them in further detail. When creating a user interface, all these points must be considered to ensure that the interface is as easy to use and understand as possible. 3 LITERATURE REVIEW 19

Table 2: List of user interface heuristics (Nielsen, 1994). Heuristic Description Visibility of system status The system should always keep the user aware of what is going on Match between system and the real The terms and phrases used should world use words that are familiar to the user, rather than system-oriented terms. User control and freedom User should have a way to “escape” their current state if they make an error, also the system should support undo and redo. Consistency and standards The user should not have to wonder whether different words, situations, or actions mean the same thing. Error prevention The system should be designed to prevent error conditions from happening. Recognition rather than recall Options should remain visible throughout the application to reduce the user’s need to memorize. Flexibility and efficiency of use The system should cater to both inexperienced and experienced users by using accelerators such as keyboard shortcuts. Aesthetic and minimalist design Dialogues should only contain useful information or information that is needed frequently. Help users recognize, diagnose, and The user should be provided with from errors error codes in easy-to-understand language, language that clearly indicates the problem, and a suggestion for a solution. Help and documentation Provide documentation that is easy to search, focused on the user’s task, lists concrete steps, and not too large. 3 LITERATURE REVIEW 20

3.2.2 Display of Gears in 3D

The actual process of generating the user’s design in SolidWorks can take a lot of time depending on the user’s computer specifications, meaning that if they make a mistake they are required to start over and wait for it to be generated again. To prevent this from happening, a sort of “preview” should be added to the program so that the users can see their gear train design before the design is sent to SolidWorks. There are many systems that implement a preview of the user design in real time, one of which being OpenJSCAD, a website which allows the writing of code to generate objects without requiring a large program to be installed such as SolidWorks (Mueller and Moissette, 2018). OpenJSCAD displays changes to the object in real time, a feature that we believe would make the gear train design system much easier to use. OpenJSCAD is made in Javascript, which we would not be able to use in our program because it is a different language, but there is a system called Edge which allows writing Javascript code inside of the C# programming language, the language our program is written in (Janczuk, 2017). If OpenJSCAD has code that could be useful to us, such as drawing the 3D image of a gear, we can use Edge to use the code within our program, otherwise we can try to adapt their code to ours. There is also a website called Gear Generator which also shows changes to the gear design in real time (Vincze, 2014). Other computer-aided design (CAD) programs also show changes to the design in real time, including SolidWorks, so having something like this is desirable. Designing anything using a computer without being able to quickly see the resulting design would be extremely difficult, and the whole point of CAD is to make design easier. 3 LITERATURE REVIEW 21

3.3 Gear Concepts

Gear design is very complicated. To start, there are lots of types of gears. The most common is the spur type, but there are 8 types in total, according to KHK Gears, a Japanese manufacturer of gears (Kohara Gear Industry, 2015). When an engineer designs a gear train (a “train” of gears, where the turning of one gear results in the turning of another gear down the train), they must choose the gear types that work best for their purpose. For example, helical gears are best used in high-speed applications, whereas miter gears are simply used to change the direction of rotation without changing the speed. There are also many equations used to create gears. Code Project, a website where users can write articles about code, features an article written by Lars Rasmussen about creating gears in code (Rasmussen, 2015). Looking through the code shows many equations that an engineer would need to use in order to draw a gear. We will most likely need to use these equations when creating our gears in code and displaying them for the user. In addition to designing, an engineer is also required to analyze and optimize the gear train. One type of analysis is analyzing all the forces acting on the gear (Radhakrishnan, 2020). A gear train can also be analyzed to determine the different stresses on the gears and if the gears can handle it, as there are some gears more suited to high-speed application. Including a feature for analyzing a gear train would be very helpful for a gear designer; to do this we will need to know all the forces that act on each gear type, as some forces do not act on certain types (e.g. helical gears have an axial force but spur gears do not). Gear trains can also be optimized 3 LITERATURE REVIEW 22 to minimize cost, weight, and power loss, while still keeping the main functionality (Swantner and Campbell, 2011). Optimizing can be a lengthy process, as each design candidate must be checked against a set of user-defined constraints and then checked against the other optimizations to select the best one. A gear train engineer may want the ability to automatically optimize their design, since a computer can perform the calculations much quicker than a human. This section has explained some of the related work to this project and how it could be used. In the next section, we will briefly describe the steps we took during the project, including design, implementation, and testing. 4 METHODOLOGY 23

4 Methodology

In order to meet all of our goals and satisfy our requirements, a lot of planning needed to be done. We had to learn about gears, perform user studies, and implement the software. This section will describe in detail the various steps taken in order to meet our goals.

4.1 A Term

4.1.1 Gear Knowledge

The first thing we did in our project was to learn about gears. Even though the existing gear train system (Holman and Okafor, 2018) includes all the necessary information and code about gears, we were still required to learn about gears. The old system does not provide a preview of the gears for the user, or perform any analysis of the gear train, so we needed to learn what equations and information were needed to draw a gear. Since the old system has support for different types of gears then the new system should too. We needed to learn distinguishing features about each type and how to draw them, since each gear type will have different equations and information required. We also needed to know general gear terminology such as “pitch circle” and “pressure angle” since the system includes these terms as user options, and some terms, such as “pitch circle”, are needed when drawing gears. More information about what we researched and learned about gears can be found in Chapter 3. 4 METHODOLOGY 24

4.1.2 Planning

After we learned about gears, we started planning the implementation of the project. Completing a large project such as this one requires planning. Before making any decisions about any aspect of the project, we needed to consider alternatives and justify the eventual decision. For more details about the design of the user interface and backend system, see Chapters 5 and 6, respectively.

4.1.3 Framework

The first major decision we made was which software framework to use. The main goal of the project was to convert the existing gear train system to the WPF (Win- dows Presentation Foundation) approach to developing user interfaces, which was determined before the project started. This required using the C# programming language since that is the language that WPF uses. There are two major C# frameworks: .NET Framework and .NET Core. Each is described in more detail in Chapter 3, but it will be summarized here. .NET Framework is a software framework created by Microsoft in 2002 for the C# programming language (but was later adapted for many other languages, see (Wenzel and Jin, 2019)). The .NET Framework is more widely used than .NET Core since it has been around for much longer, but it is no longer being updated and no new features will be added to it. .NET Core is another software framework created by Microsoft in 2016. It is designed to be the successor to .NET Framework and has much better performance, 4 METHODOLOGY 25 as well as having new features always being added. As of November 2020, Microsoft has created a “unified” .NET which will have long term support, with updates already planned through at least the end of 2023. Since WPF works with both .NET Framework and .NET Core we decided on .NET Core. In summary, .NET Core has better performance than .NET Framework, has future releases planned with new features. That will allow a future project group to convert the application to the Universal Windows Platform (UWP), the newest Windows desktop application framework.

4.1.4 Study of the Old System

Before designing our system, we first needed to determine what users did not like about the old system and what they would like to see added. A user study was conducted in an Introduction to CAD (ES 1310) class at Worcester Polytechnic Institute, with a total of 43 participants. Details about the study data can be found in Chapter 7. Each participant was given a survey before they began the given task. During the survey, the participants were asked about their major, year, and experience with gears. The participants were then asked to complete a short task using the software. In the tutorial document which explains the task and how to complete it, the user is given information about four gears that they need to create using the system. The full tutorial document, as well as answers to some short response questions, can be found in Appendix A. Once all the tasks were completed, the users were asked about the experience in another survey. This survey asked about their experience using the software, such as what was easy, what was hard, 4 METHODOLOGY 26 and what should be added in the future. An analysis of the study revealed a few things (see Chapter 7 and Chapter 8 for full study results). A majority of participants said that the old system was very easy to use and easy to input the data (although tedious), but many also had negative comments about the use of the program. There were some problems preventing them from completing the tutorial, lack of feedback from the program about the results of user interaction. Many participants stated that they wanted a preview of the resulting gear train, further justifying our need to add a preview window. Given these comments, we placed most of our focus on the user experience and interface so they users do not get “stuck” in one section of the program and are unable to continue. Some feedback from the system about certain things would be helpful to the user, such as popups appearing in the foreground rather than in the background, for example.

4.2 B Term

4.2.1 User Interface Mock-ups

Before creating hand-drawn mock-ups of the new UI, we created it in XAML using the Visual Studio Designer. The previous designs were not a good starting point because they made many assumptions and had too much influence from the previous WinForms design. We began to hand-draw a new set of mock-ups based on these XAML designs. Chapter 5 discusses these mock-ups and design decisions in more detail. Before creating any mock-ups, we created a chart showing user tasks (Chapter 6, 4 METHODOLOGY 27

Figure 14). These tasks are the specific actions a user might take in the application. For example, opening the application is a user task that would display the start screen on the left bar. The screens that were drawn included the start screen, gear sets screen, edit gear set screen, edit shaft screen, and the analyze shaft and gear screens. We kept the concept of a left bar, an interface where gear train attributes would be displayed and edited. We decided to keep this since it is a design pattern that is commonly used in other 3D applications such as SolidWorks. The content in the left bar was what had a significant change. It went from always displaying the gear train to allowing the user to edit and view the gear train through different left bar interfaces. The static top bar was also kept from the previous design since we knew that there were going to be actions that are required for the application to be complete and work at various times in the application. The most apparent and newest aspect from the drawn designs was the big 3D box that took a majority of the whole screen. The reason for its size was because being able to visualize the gear train design was a major requirement for GearTrain. Chapter 5 discusses all UI design decisions in more detail.

4.2.2 Importing Code from the Old System

In the previous application most of the code relating to the interface and the logic for generating the gear train in SolidWorks was in one file and making direct calls to the interface. So the first step in moving the code was to extract the the logic code into separate files. This included various model classes and the methods that depended 4 METHODOLOGY 28 on them. While we did this, the calls relating to interface code were removed and had to be rewritten to work in WPF. There was also code relating to a library, called GraphSynth, that was not in use. We did not transfer it to the new project as there were no plans to incorporate that functionality at this point.

4.2.3 New Code and Interface

We also added some new code that would help the new system be more modular and remember user settings. We made a function that would look for the SolidWorks application and, if not found, it would prompt the user for the location. Along with that we added a class that would allow for information to saved when the application is closed. This would allow for the SolidWorks path, download path, and user settings to be saved. The code for the user interface required a different strategy. Not only was re- designing the interface a main requirement, but the application also needed a new framework, WPF. This meant that we would not be able to just make edits on the previous design, but we would have to start from scratch. Luckily, we had preemp- tively created rough XAML mock-ups, so we could use those as starting point. We also used the drawn designs to then more quickly create the different screens and controls. After porting the existing code and minimally completing the interface, we began to start connecting them. This meant implementing user actions such as navigating to different screens and windows, clicking buttons, and inputting data into controls. We did this by adding code that was executed when certain events arose. These types 4 METHODOLOGY 29 of events were defined by the WPF framework and can include clicking, typing, and hovering. This allowed us define all the actions that happen when a user interacts with the interface.

4.3 C Term

4.3.1 Application Features

We started off C term by completing required features for the application. Those features included a working 3D representation of the gear train and a screen that allows editing of a shaft and its connecting components. A functioning 3D viewer was a requirement that we set at beginning of the project. The shaft editing screen was previously implemented in the WinForms version of the application, so we deemed it necessary to implement a screen that accomplished the same functionality. Before the 3D viewer was considered working, it showed a static gear set that could only be moved around. We wanted a dynamic 3D representation of the current gear train being designed in the application, which may include multiple gear sets. Thanks to the code previously worked on by a past team, we were able to use the code for generating the gear train in SolidWorks to also display the position and scale of the gear sets to a sufficient degree. For example, the code included coordinate positions that we could map to the 3D viewer coordinates. It also contained properties of the gear, such as the number of teeth, that allowed us to calculate the size of the gear and shaft. While we were able to represent the scale of the gear train components, we are were not able to get an accurate representation of the gear train that shows the true shape of the gears, shafts, and bearings. We opted to use a rudimentary 4 METHODOLOGY 30 shape, the cylinder, to represent gears and shafts. We thought that was acceptable since the purpose of the 3D viewer was to see how the users’ changes affected the design. Additionally, we had set a requirement to deliver a working 3D viewer rather than a complete one. A future MQP team may continue to refine the 3D viewer to make the representations more accurate. The previous team who worked on the WinForms version of the application had created a screen to edit the shaft and the alignment of the gears and bearings con- nected to it. It had a 2D top down representation on the alignment of all the com- ponents, also called the “Shaft Alignment” screen. The user could edit the position of the gears and bearings along the shaft, as well as the length of the shaft itself. We used this as a base since we thought it was a simple and quick solution to have the user understand the current state of the shaft. On the other hand, we wanted a more visual way of editing the positions and properties. We implemented a drag feature that allows the user to click and drag the gears or bearings along the shaft while automatically changing the position values for them. When changing gear or bearing position along a shaft, certain constraints need to be met. For example, gears and bearings cannot overlap on the shaft. We added a method to calculate many constraints and stop the user from implementing the design if these constraints are not met. A user might not be aware of the dragging feature, so we added text to the interface that explains how the user can utilize it. 4 METHODOLOGY 31

4.3.2 UI Revisions

Thanks to our weekly meetings with our advisors, we were able to get feedback on the user interface very frequently. One of the main issues we had was a lack of consistency. The color gray, which is typically meant to show something is disabled, was being overly used. We had gray on buttons, backgrounds, lists, and borders. To eliminate this, we changed the color of the different sections of the application. For example, the top bar is now black, while the left bar is gray and the 3D view background is white. Then we changed the colors of all buttons to a very light blue called “Alice Blue”. Along with the color of components, the default WPF buttons were similar to other UI components, so we also changed their border radius to have them be more identifiable and less confusing for the user. Changing the border radius makes it so the corners of buttons are not sharp and pointy but smooth and rounded to distinguish them from text fields the user can type in. We also changed many margins of the application so the components appear to be in a group, and follow good UI and HCI practices (as described in Chapters 3 and 5). Often the user might select a button to do a task or navigate somewhere in the application. The user might not actually want to do it, instead wanting to save their gear train design so it is not lost, or cancel the current design and start over. In the application, the left bar contains various screens, depending on the state of the application (i.e., main menu, editing a gear, or viewing all the gear sets). When the user is on one screen and wants to navigate back, the application will prompt the user if they want to save before leaving or cancel to stay in the same screen. We used the word “Back” to imply that the screen can navigate to the previous one shown. 4 METHODOLOGY 32

Previously, when a user wanted to delete a gear set, they would just press “Delete” and the gear set would be gone without warning. In case the user did this by mistake or changed their mind, we added a confirmation message to make sure they really want to do an action that cannot be undone. Another example was when we added confirmation messages after a user exports an image or 3D model file to make them aware that the export was completed. Before this addition, the user would just press the button and there would be no indication of how long it took or if the export was successful. All these user messages and confirmations have been added throughout the application to help the user.

4.3.3 User Study

To prepare for the user study in C term, we not only wanted a working application from start to finish, but a help website as well. This website would contain informa- tion on how each part of the application functions and video tutorials for important tasks that users may need guidance for. These tutorials included opening and saving a design, using the 3D viewer, editing a shaft, and creating a gear train design from start to finish. We had done an earlier study on the previous team’s application with users who had little experience with gear train design or using SolidWorks. This time, the study was done in a 4000-level class, which is the highest level undergrad course at Worcester Polytechnic Institute. Because it is an advanced level Mechanical En- gineering class, most of the students are Mechanical Engineers, as opposed to the A term study where we had participants of many disciplines. The previous study 4 METHODOLOGY 33 was guided and gave the user very specific instructions, making it very difficult to not accomplish the task successfully. This time, in order to test the new interface and the users’ ability to learn the application, we created an additional unguided section to the study. The unguided section was completed after the guided section. We removed more explicit instructions to see if users could complete this unguided section using what they learned in the previous section. Instead of giving specific instructions to select a gear set, edit it, and fill in the given values, we now just give them the values and tell them to complete the design and generate it in SolidWorks without any instruction.

4.4 D Term

4.4.1 Writing

Most of the writing had been done or drafted by the start of the term. This meant that we had writing done for all of those chapters, however they could use 1-2 revi- sions to fix grammar and content issues. These chapters excluded methodology for C & D term, data analysis for C & D term, data evaluation for C & D term, and the conclusion. So this term we started by focusing on writing the parts that related to C-term. That way we could work on the D-term-related writing after we received the data from from the study.

4.4.2 Study

The D term study (referred to as the “D21 Study”) had the same tasks and tutorials as the C21 study since both were testing the same software, GearTrain. All that 4 METHODOLOGY 34 was needed was to make copies of the C21 surveys so the data can be kept separate. Then we sent it out for students to complete. The number of users in this study was going to be greater than any study we have done so far. This was due to there being two courses in which students/users were chosen from. This lead to there being more work involved filtering and analyzing the data. We had to separate users by skill level and categorize written responses. There were also some issues with the remote desktop and links not working. The WPI remote desktops that participants were using to complete the study stopped working for some participants, preventing them from opening SolidWorks at all. We were using tiny.cc, a website that shortens the number of characters a web link has. During the final day of submission for the study, tiny.cc went down, and our links did not work. The links had to be changed so users could continue.

4.4.3 Showcasing

WPI has a tradition of showing student work on MQP Project Presentation day. This year it was virtual, so it meant there were going to be more digital requirements. One being a 5 minute video presentation with a demonstration of the application and an explanation on what are project is, the motivation, and the accomplishments. To accomplish this, we created a slideshow and a demo video that we would talk over and send to the CS Department. The other requirement was to make a virtual poster in a PDF file. The poster would include general information about the project including abstract, goals, data analysis, and images. We did this by creating a slideshow, with more information than video slideshow, and exporting that into a PDF file that has 4 METHODOLOGY 35 the slides laid out 5 USER INTERFACE DESIGN 36

5 User Interface Design

For the user interface design shown in this chapter, we were influenced by the previous gear design application and SolidWorks. The point of having this new interface redesign was to have the user be able to visualize what they were creating and give them an organized interface that that allowed them to edit gear properties with ease. Some of the changes made in constructing this design were to have a 3D viewer, which gave the user a visualization, and to remove repeating inputs that led to a messy screen. The user interface of the gear box application is split into five major parts: the menu, the top bar, the left bar, the 3D view, and the other pop-up windows. The menu contains settings and toggles for certain options. The top bar is for important actions, such as generating the design in SolidWorks. The left bar is for navigating and editing the gear train and its properties. The 3D view is to visualize the gear train and the edits made. The rest of the pop-up screens are for analysis and detailed gear train editing.

5.1 Main Menu

The main menu consists of the application and two drop downs located at the top of the screen (see Figure 2). One drop down contains “File” and the other contains “Options”. File has content relating to the actions regarding the application files, such as opening or saving a gear train design (Figure 3). Options contains application settings (Figure 4). 5 USER INTERFACE DESIGN 37

Figure 2: Interface when the application is first opened (start screen).

5.1.1 File Drop-down

We added a File drop-down menu (as seen in Figure 3) to the main menu to access file-related actions. The first item, “Open”, is for opening an existing gear train. It is then followed by “New” which is for starting a new gear train design. The “Save” item is for saving the current gear train being worked on. There is also “Open Output Directory,” which will open the output directory in the file explorer. The output directory is where files that are created by SolidWorks are placed during the generation process. These files include SolidWorks part (SLDPRT) files for each gear train component, as well as the completed assembly (SLDASM). Finally, there is “,” which closes GearTrain and does not save (but prompts the user if they would like to save first). 5 USER INTERFACE DESIGN 38

Figure 3: Menu - File drop down.

5.1.2 Options Drop-down

The options drop-down contains settings for the application, as well as options for the SolidWorks generation (Figure 4). The drop-down splits into two other drop- downs and an action. The first one drop-down being “Units”, which shows two options. One of them is for metric and the other for imperial. The second drop- down, “Generation Settings”, contains toggles related to settings used when the user generates the gear train. This includes Creating Parts, Creating an Assembly, Creating Bearings, Generating in Background (creates a background task that is not visible to the user and may use less resources), and Auto Generating Shafts. These settings affect the design generated in SolidWorks. The last item, “Set Output Directory,” allows the user to choose where 3D files are put when the gear train is generated in SolidWorks. 5 USER INTERFACE DESIGN 39

Figure 4: Menu - Options drop down.

5.2 Top Bar

Figure 5 shows the top bar, which is located at the top of the application screen just under the main menu (see Figure 2). We decided to have it here since it would not get in the way of the other parts of the application such as the left bar and the 3D view. It contains a series of buttons from left to right in order of importance. We defined their order by how essential their actions are to the application and how often they might be pressed. These buttons contain actions that can be used when a gear train is being designed. The buttons contain the Auto Mesh function (which adjusts gear positions so they are touching properly), the Gear/Shaft Analysis windows, the Generation function (sends the design to SolidWorks to be generated), and the Help button (opens the help website in the user’s default browser. We selected these actions because they would have to be able to run at anytime a gear train is open. To make sure they are not used until a gear train design is open, the buttons are grayed-out and disabled when the application is first opened. 5 USER INTERFACE DESIGN 40

Figure 5: App top bar.

5.3 Left Bar

The left bar is at the left most side of the application. It contains various screens during different states of the application. For example, when the application is first opened the start screen is shown in the left bar. Then, depending on the user selection, the screens will change or be propagated with new data.

5.3.1 Start Screen

The left bar shows the start screen when the application first opens (Figure 2). This displays three especially big, stacked buttons for the user to start with. The buttons are “Use Existing Design” (opens an existing gear train from a file), “Make New Design” (creates a new gear train design), and “Tutorials” (opens the Help website in the user’s default browser). These highlight the main actions a user might do when they first open the application. We decided on having the help information outside the application since a user might want to look at help while they do not have the application open. The information could also contain videos, which are more easily implemented on a website. 5 USER INTERFACE DESIGN 41

5.3.2 Gear Sets Screen

Figure 6 shows the Gear Sets screen, which shows a list of all the gear sets in the current gear train. They are listed and numbered from top to bottom. There are also action buttons to be applied to the gear sets listed right above. These include a button for adding a new gear set, editing a gear set, and deleting a gear set. The “Edit” button navigates the left bar to the edit gear set screen, while the “Add” and “Delete” buttons simply change the contents of the list. At the bottom, there is a “Back” button. It will prompt the user to save their current design before returning to the start screen.

5.3.3 Edit Gear Set Screen

Figure 7 shows the edit gear screen. This screen allows editing the properties of a specific gear set in a gear train. The name of the gear set is displayed at the very top. It is then followed by a combo-box or a drop-down containing the different gear types that a user can choose. Below is the list of gears in the gear set and buttons with actions that can be applied to the list. One action is to add an idler gear and the other is to edit the shaft alignment in regards to a a gear. When a gear is selected from the list, a smaller area below appears with its respective properties. All of the properties can be edited under a combo-box or text-box. There are also back and revert buttons. All changes made in this screen are automatically saved. The user can choose to revert changes made to when the edit gear set screen first loaded. The back button will ask the user if they want to keep the changes they made before going back to the gear sets screen. 5 USER INTERFACE DESIGN 42

Figure 6: Left bar - Gear Sets screen. 5 USER INTERFACE DESIGN 43

Figure 7: Left bar - Edit Gear Set screen. 5 USER INTERFACE DESIGN 44

5.4 3D View

Figure 8 shows the 3D viewer, which is a screen where the 3D representation of the gear train is displayed. It is located on the bottom right of the screen, but takes up a majority of the window, using the same height as the left bar. The 3D view, as the name suggests, contains a 3D representation of the gear train that updates as the user makes changes to it. There is a coordinate system on the bottom right corner of the 3D viewer to let the user know the orientation of the 3D model. Below the viewer, there are controls to manipulate the camera, such as rotate, pan, and zoom. There are two export buttons that allow the user to save the contents of the 3D viewer as a PNG or STL file.

Figure 8: 3D viewer displaying a static simple representation of a gear set. 5 USER INTERFACE DESIGN 45

5.5 Other Interfaces

5.5.1 Edit Shaft Window

Figure 9 shows the edit shaft window, which can be navigated to from the edit gear set screen by clicking on the “Edit Shaft Alignment” button as seen in Figure 7. The Edit Shaft screen has a 2D representation of a shaft and the gears and bearings connected to it. There is also a bar on the side to edit alignment properties like the length of the shaft and the positions of the items on the shaft. The values will be editable through text boxes, but the gears and bearings on the shaft can also be dragged along the shaft by clicking and holding the mouse.

Figure 9: Edit Shaft window. 5 USER INTERFACE DESIGN 46

5.5.2 Gear Analysis

Figure 10 shows the gear analysis window. The interface for the Analyze Gear and Shaft windows are not final, and they may not be final for this iteration of the project since the gear analysis code has not been integrated (see Chapter 9). They are for making stress analyses on gears and shaft. There is an initial screen to input information relating to the gear or shaft. Once the user selects the analyze button, the application will navigate to a separate screen where the analyses that have been made are shown. The user is only shown some of the most commonly used analysis data points, but they are given the option to save the full analysis result to a CSV (comma-separated values) file.

Figure 10: Gear analysis screen. 6 SYSTEM DESIGN 47

6 System Design

In addition to designing a user interface that is easy to use and aesthetically pleasing (as described in Chapter 5), the backend code of the application needed its own design. The goal of the backend system was to extend the previous gearbox design software (Holman and Okafor, 2018) to allow new features to be added (especially a preview window), and to convert the existing Windows Forms codebase to WPF. This section will describe some of the system design decisions made.

6.1 Design Pattern

Before writing any code, we needed to determine a design pattern. A design pattern describes the different parts of an application and the relationship between them, while leaving the implementation up to the developer. Microsoft recommends using the Model-View-ViewModel (MVVM) architecture with WPF applications (Smith, 2009). The MVVM design pattern has three major parts:

• Model – Stores information about the application’s state, no UI components

• View – User interface definition

• ViewModel – Handles interactions between the model and the view

The Model of the application is represented by data classes – classes that store data and have methods to perform operations using this data. The Model classes must not have any UI interaction in them by design. 6 SYSTEM DESIGN 48

The View of the application is represented by XAML files. These files describe the location and behavior of every UI element. Each window and page is defined in its own XAML file. ViewModel elements may be defined inside the XAML files via data binding, but are also defined in a C# file. When a WPF window is created in code, a XAML

(.xaml) file and a C# (.xaml.cs) file are created. The XAML file is used for storing information about the view, such as placements of controls and event handlers, while the C# file is used for user interaction and ViewModel code. For example, you can specify a method that runs whenever a user clicks a button. This method can then interact with the Model classes. In addition to the MVVM design pattern, we also implemented the main Model class (GearBoxInfo) using the singleton design pattern. A singleton object is a single instance of an object that is shared among the entire application. Since the application must only have one GearBoxInfo class (since the user can only have one open at a time), the singleton pattern works perfectly. It simplifies the passing of data between classes since all classes access the same object. This helps reduce data inconsistency and simplifies the programming since the programmer does not need to worry about passing the object to other functions or classes that need it.

The two singleton objects, GearBoxInfo and GearBoxSettings were designed with thread-safety in mind (since these objects may be accessed from different threads). Considering this need, each singleton class is defined as seen in Listing 1. The lock object defined on line 16 guarantees thread-safety by ensuring that only one thread may access Instance at a time. 6 SYSTEM DESIGN 49

1 private static GearBoxSettings instance = null; 2 public static GearBoxSettings Instance 3 { 4 get 5 { 6 lock (statelock) 7 { 8 if (instance == null) 9 { 10 instance = new GearBoxSettings(); 11 } 12 return instance; 13 } 14 } private set{} 15 } 16 private static readonly object statelock = new object();

Listing 1: Singleton object definition of GearBoxSettings.

Since Instance is defined as a static variable, it can be accessed from any file in the code by calling GearBoxSettings.Instance. Without using a singleton object, in order to access GearBoxSettings, an instance of this object would need to be passed to every class via a function call. This can cause data integrity issues if the instance is not passed along properly. Using a singleton object simplifies the process and reduces the amount of possible errors significantly. It also makes the code easier to maintain and build upon in the future if needed since the code is more simple.

6.1.1 Model

As described before, the Model section of the application are those classes which describe the data of an application without having reference to any user interface components. With respect to our system, this is comprised of classes about gears, 6 SYSTEM DESIGN 50 gear sets, and shafts. It also contains internal application settings and user settings, as well as a function to export gear data to SolidWorks (SolidWorks API handler). Most of the model was taken directly from the previous gearbox application, with only minor additions or fixes. The model objects will be described below. All values relating to gear sets, gears, and shafts (in the tables below) are defined by the user using the application interface. The diagram shown in Figure 13 also shows the information in the tables, as well as the relationship between all four model classes. GearBoxInfo

The GearBoxInfo class is the singleton object which represents all the parts of a gearbox. It contains gearsets and shafts, as well as other information specific to the gearbox. See Table 3 for all the properties in this class.

Table 3: GearBoxInfo properties. Property Type Description Name String Name of the gearbox the user has open. GearSets List of GearSet All the gear sets contained in this gearbox Shafts List of Shaft All the shafts contained in this gearbox

GearSet

A GearSet is an object which contains the gears of the gearbox. In general, a gear set refers to a set of gears which are touching each other (not on the same shaft).

The GearSet class has a list of Gears, as well as some other properties specific to the gear set such as the material and gear type. See Table 4 for a list of properties 6 SYSTEM DESIGN 51 and descriptions.

Table 4: GearSet properties. Property Type Description Name String Name of the gear set (generally follows the “GearSet ” e.g. “GearSet 1”). Type String The type of the gears in this set (spur, bevel, or helical). IsMinimized Boolean (true or false) Whether this is a minimum gear set (see Chapter 3 for gear optimization). Pitch Number Pitch of the gears in this gear set. BevelAngle Number Angle of the gears if they are bevel type. HelicalAngle Number Angle of the gears if they are helical type. PressureAngle Number Pressure angle of the gears in this gear set. Material String Material the gears in this set are made of (e.g. plastic). Gears List of Gear The gears in this gear set.

Gear

The Gear class is the most widely used class since it contains all the information required of gears. Some examples are the number of teeth and the orientation. See

Table 5 for a list of properties and descriptions. The Orientation of a gear (and shaft) defines which dimension of a 3D coordinate plan the gear is on. See Figure 11 6 SYSTEM DESIGN 52 for a visual description. For example, the leftmost cylinder is defined along the Z axis (X and Y are constant), so the shaft and gear orientation would be ±Z. The gear is always perpendicular to the shaft that it is on (since the shaft must pass through the gear at a 90◦ angle).

z z z

y y y x x x

Figure 11: Representations of a cylinder (gear shaft) in three orientations (Z, X, Y, respectively).

Shaft

The last main model class is the Shaft. This class contains information relating to the shafts which are used to hold the gears. Some of the shaft data is based on the corresponding gear data, such as the orientation and position. See Table 6 for a de- scription of the shaft properties. Unlike other properties, the Orientation property of a shaft cannot be assigned by the user. It is always equal to the orientation of the gear that is on it. If the gear orientation changes, the shaft orientation automatically changes to match.

Two important shaft properties are EndMin and EndMax. These values represent the start and end locations of the shaft in the same orientation as the shaft itself

(e.g. if Orientation is Y, then EndMin=-3 means that y=-3). Figure 12 shows an example shaft in a two-dimensional coordinate plane. In this example, the shaft 6 SYSTEM DESIGN 53

Table 5: Gear properties. Property Type Description ShaftConnected String The name of the Shaft to which this gear is connected. GearNumber Number The placement of this gear in order (with respect to the input gear, e.g., if this gear is the input gear then GearNumber will be 1). GearMatingWithNumber Number The number of the gear with which this gear is mating. Name String Name of this gear (generally follows the format “Gear ” e.g., “Gear A”). NumberOfTeeth Number Number of teeth on this gear. IsIdler Boolean Whether this gear is an idler gear or not. IsBevelGear Boolean Whether this gear is a bevel gear or not. Orientation String The orientation of this gear in three-dimensional space (possibilities are ±X, ±Y, and ±Z). X,Y,Z Number The X, Y, and Z coordinates of this gear. FaceWidth Number The face width of this gear. BoreDiameter Number The bore diameter of this gear. 6 SYSTEM DESIGN 54 orientation is X, EndMin=-1, and EndMax=1. The length of the shaft is equal to EndMax-EndMin, the distance from the beginning of the shaft to the end, which is 2.

2 y

1

x −2 −1 1 2

−1

−2

Figure 12: Coordinate plane showing an example shaft with Orientation=±X, EndMin=-1, and EndMax=1. The length of this shaft is 2.

6.2 Windows

Each window and page (a “page” in WPF is a section of a window that contains its own controls) of the application has its own XAML/C# file as well as certain actions that the page does, such as window navigation or calling the backend model layer functions. The main window of the application (the window on which the user spends most of their time) is called MainWindow. From here, the user can access all other windows and pages of the application. Since WPF is event-based (the system reacts and responds to user events), most of the logic in these windows is provided by the event handlers. An event handler 6 SYSTEM DESIGN 55

Table 6: Shaft properties. Property Type Description Name String Name of the shaft (generally follows the format “Shaft ” e.g., “Shaft 1”). IsEdited Boolean Whether the shaft has been edited (if false then it has default values). Bearings List of numbers Positions of the shaft bearings. Orientation String Orientation of the shaft. This must be the same orientation of the connected gears (e.g., if a connected gear is +X, then the shaft orientation will be +X). Material String What the shaft is made of (e.g. stainless steel). Diameter Number The diameter of the shaft. Length Number The length of the shaft. IsInput, IsOutput Boolean Whether this shaft contains the input/output gear. X, Y, Z Number X, Y, and Z coordinates of the shaft, equal to the X, Y, and Z coordinates of the gear to which it is attached to. EndMin,EndMax Number The locations of the start and end points of the shaft, respectively. GearsAttached List of string All the gears (gear names) that are attached to this shaft. 6 SYSTEM DESIGN 56

Figure 13: UML class diagram. 6 SYSTEM DESIGN 57 is a function that is called by the system whenever a specific event is triggered. For example, when a button Button1 is clicked, the method Button1 Click is called. Every interactive element of the user interface has an event handler. The most common event is when a button is clicked, but there are other events that can be handled, such as when a user is typing into a text box.

6.3 SolidWorks Macro

The primary use of the application is to enter data for gear trains and have them be generated in SolidWorks. Using the SolidWorks API, this data can be sent to an existing SolidWorks process to be generated. The class SolidWorksMacro, which is used for sending a GearBoxInfo object to SolidWorks is being reused from the previous gear box system. This class did not need to be changed to work with our application, as the SolidWorks API has not changed.

The SolidWorks macro has its own definitions of the model classes (e.g. Gear in our model layer is equivalent to Gear info in the SolidWorks macro). When the button “Generate in SolidWorks” is pressed on the main window, the model classes are converted into SolidWorks macro classes. After this, the macro can call the SolidWorks API functions to have the gearbox generated in SolidWorks.

6.4 Project File Structure

In order to keep all code organized, a file system was designed which allows files to be organized and found much easier. Additionally, this helps us implement the MVVM architecture since each part of the application can be separated more easily. 6 SYSTEM DESIGN 58

In the old gear design system (Holman and Okafor, 2018), the interface and backend code were defined in the same files. The entire codebase for that system was only four files (each Windows Form window is divided into two or three files, here we are considering them to be as one file). Some of these files are thousands of lines of code long. Finding any code in a system like this is extremely difficult. Our project’s file system is described in Table 7.

Table 7: Project file structure. Folder Name Purpose Example Files Contained Within 3rd 3rd party libraries SldWorks.dll (including SolidWorks API) Resources Resources of the project gear v11.ico (e.g., icons) Controls Gearbox property GearPropControl.xaml.cs control windows Helpers Many helper classes and UnitConverters.cs methods Models MVVM model classes GearBoxSettings.cs (no gear objects) SolidWorks MVVM model classes Gear.cs (gear objects), SolidWorksMacro Templates Gear template files for Parametric Spur SolidWorks Template.SLDPRT Views The different EditGearSetView.xaml pages/windows of the application

In addition to these project subfolders, there are some files in the root directory of the project. Most of these are default files required by WPF that we will never modify. The one notable file is MainWindow.xaml (and MainWindow.xaml.cs) which 6 SYSTEM DESIGN 59 is the main window of the project. This is in the root folder (and not the Views folder) because it is the most important file of the project so it makes sense to put it in the project root.

6.5 Application Flow

With all parts of the application in place, including the model and system archi- tecture, the application flow can be constructed. This is a way of visualizing the different actions the user can take, the system’s response to them, and the next steps for the user and system. Figure 14 shows this in detail. This functional diagram was modified from the old gear design software (Holman and Okafor, 2018). The system exists as a mostly “modeless” design, meaning most user actions are available at all times (not dependent on system state). In Figure 14, the large box in the middle represents the main window of the application, where the user has many actions they can perform, regardless of system state. However, certain actions would not work as desired if the system state is not correct (e.g. “Generate in Solidworks” will not generate anything if there are no gear sets). 6 SYSTEM DESIGN 60 to the object Apply changes user. Shows Main GUI Display various controls in this GUI system is displayed to the user. Settings are also accessible to the All data and live preview for the gear The data is stored in multiple objects that the user can manipulate through Or display. Update gear-train object and preview Tell user it cannot be done if the solution would be invalid Adds two new gears and one new shaft to the gear train object and then the preview display Click Add New Gear Set

Figure 14: Functional diagram showing user and system actions. 7 DATA ANALYSIS 61

7 Data Analysis

During the course of this project, three user studies were carried out in order to receive feedback about the system. The first study was conducted using the gearbox design software made by Holman and Okafor (2018), referred to as the “old system”. This study will be referred to here as the A20 study since it was done during A term of 2020. The system that was developed for this project, named “GearTrain”, had a study done during C term and D term 2021, and are referred to as the C21 and D21 study, respectively. Since each study has different target audiences and each software has different features, the studies will be divided in this section. All survey questions and answers can be found in Appendix A, while all tutorial documents can be found in Appendix B. Data from each study can be compared to see differences in user feedback across systems and which system users seem to prefer.

7.1 Study of the Old System

The study of the old system (A20) was conducted in two Introduction to CAD (ES 1310) classes at Worcester Polytechnic Institute during A term (August-October) 2020. There were a total of forty-three participants for this study, which was largely focused on what users liked about the old system and what could be improved. Most of the students in the class were freshman (Figure 15). Full answers to some short response questions can be found in Appendix A, while this section will provide a summary of the data. 7 DATA ANALYSIS 62

Freshman

41.3%

37% 8.7% Senior 13% Sophomore Junior

Figure 15: Year breakdown of study participants (A20, total=46).

7.1.1 User Demographics for A20 Study

Each participant was asked to complete two surveys: one before they started the task and one after they completed the task. Fifty percent of participants majored in Mechanical Engineering, as CAD is something that mechanical engineers use a lot. See Figure 16 for a full breakdown of the majors in the study. “Other” are any other majors besides the ones listed where only one student has that as their major. For example, one student majors in Environmental Engineering, but they are placed in “other” since there is only one environmental engineering major. Of all forty-three participants, a total of nine students had a minor, but each minor was unique to that student except for Spanish and IMGD (Interactive Media and Game Design) which had two. See Figure 17 for a full breakdown. 7 DATA ANALYSIS 63

Mechanical Engineering

52.2%

4.3% Industrial Engineering 10.9% 13.0% Other 19.6% Computer Science

Biomedical Engineering

Figure 16: Study participant majors (A20, total=46).

Robotics Engineering Sustainability Engineering

11.1% 11.1% IMGD Computer Science 22.2% 11.1%

11.1% Environmental Engineering 22.2% 11.1%

Spanish Materials Engineering

Figure 17: Study participant minors (A20, total=9). 7 DATA ANALYSIS 64

20

15

10 Count

5

0 1 2 3 4 5 User Familiarity (1=least experience, 5=most experience)

Figure 18: User familiarity with gear design knowledge (A20).

7.1.2 Previous Experience

Since this Intro to CAD course is an introductory level course, we did not expect many participants to be very experienced in gears or design. This is ideal for our study since we are trying to determine how new, inexperienced users respond to the system. As discussed in Chapter 4, the system should be easy to use and should not require the users to consult a lot of documentation. In terms of experience with gears, 56.6% of users rated themselves completely inexperienced or slightly inexperienced, with a mean rating of 2.22 (Figure 18). For this study, users were not required to have knowledge of gears, since all the input data was given to them. However, a real engineer using this program would not be given this information and would need to determine that on their own. In terms of experience with gear design in CAD software, such as SolidWorks, 7 DATA ANALYSIS 65

20

15

10 Count

5

0 1 2 3 4 5 User Familiarity (1=least experience, 5=most experience)

Figure 19: User familiarity with gear design software (such as SolidWorks) (A20). the ratings were higher, with 74% of users rating themselves slightly experienced or moderately experienced (two or three rating), with a mean rating of 2.43 (Figure 19). Since this study was conducted with the class nearing completion, these ratings were expected to be higher than if we ran the study at the beginning of the class since this is the first class in which they would learn how to use SolidWorks.

7.1.3 User Feedback

Once the participants completed the task, they were given another survey to com- plete. While the initial survey was focused on gathering basic information about the participants, this latter survey was focused on their experience using the software. The data from this survey gave us information about what we should change (or keep the same) in the new GearTrain system. Before asking any feedback questions, we asked some basic information about the 7 DATA ANALYSIS 66 task itself, such as if they were able to complete it and how long it took. A histogram of the task duration can be found in Figure 22. The average time to complete the task was 8 minutes and 58 seconds and the standard deviation was 3.93. The average difficulty rating of the task was 1.76, and the average difficulty rating for modifying the gear data was 1.7 (Figures 20 and 21).

30

20 Count 10

0 1 2 3 4 5 Difficulty rating (1=least difficult, 5=most difficult)

Figure 20: Task difficulty rating (A20).

Since most of the responses are open response, where users could type anything they wanted, they needed to be categorized first before they were analyzed. There were a few categories of responses for each question, which will be detailed below. Note that the number of responses for each question does not match the total number of study participants since no open response questions were required, so some par- ticipants did not answer them. 37 participants (86%) answered the question asking about what they found easy, while only 22 participants (51%) answered the ques- tion asking what they found difficult. Finally, 37 participants (86%) answered the 7 DATA ANALYSIS 67

20

15

10 Count

5

0 1 2 3 4 5 Difficulty rating (1=least difficult, 5=most difficult)

Figure 21: Gear modification difficulty rating (A20).

25

20

15

10 Frequency

5

0 0 4 8 12 16 20 Time (minutes)

Figure 22: Histogram of time taken to complete the gear design task (A20). 7 DATA ANALYSIS 68 question asking for recommended changes in the system. What about the gear design software did you find easy, if anything?

• Ease of use: 18/37 (48.6%) of users said that tasks in the software were easy, including inputting gear data and generating in SolidWorks.

• User interface: 11/37 (29.7%) of users liked the interface and thought it was easy to understand and found everything they needed to complete the task.

• Program functionality: 8/37 (21.6%) of users thought the software in general was easy to use, especially when compared to designing gears by hand. What about the gear design software did you find difficult, if anything?

• Tutorial: 8/22 (36.4%) of users found the tutorial difficult or did not know enough about gears to know what they were doing. This is a problem with the tutorial, and not the program, however.

• Program issues: 12/22 (54.5%) of users had issues in the program that pre- venting them from completing the task properly. Some users also said that there was too much information to enter or that the program was not very user friendly.

• Installation: 2/22 (9.1%) of users had problems installing or downloading the software, mainly due to antivirus problems. What would you change in the current system to make it easier to use or more functional?

• Explanation of terms: 4/34 (11.8%) of users would have liked some basic help functions, like tooltips on hover or explanation of what certain gear terms mean, such as pitch angle.

• User interface: 9/34 (26.5%) of users would prefer updates to the user interface, including making the application more visual and less text-based.

• User experience: 17/34 (50%) of users wanted improvements to the user ex- perience, many of which said they would like some sort of preview of the gear train before it is generated in SolidWorks.

• Tutorial: 3/34 (8.8%) of users recommended some clarifications in the tutorial document to make the task easier to complete. 7 DATA ANALYSIS 69

Many users responded that there were problems with the tutorial document, which could have affected the study results. The document had a lot of steps for the user to complete and a lot of data to input (see Appendix B), but the users were able to ask questions at any time. There was also a live demo of the program where the tutorial was walked through. Many of the comments about the tutorial are not about the tutorial itself being confusing, but rather they are about not knowing where this data comes from in the first place or what it means. Because of this, we believe that the quality of the tutorial document itself did not negatively affect the study results.

7.2 GearTrain Study

Two separate studies were run using the system made for this project, named “GearTrain”. The first was run in the Modeling and Analysis of Mechatronic Sys- tems (ME 4322) class at Worcester Polytechnic Institute during the last week of C term (March 2021). The second was run in the Advanced Engineering Design (ME 4320) and the Introduction to Engineering Design (ME 2300) classes during the third week of D term (April 2021). These studies will be referred to in this section as the C21 and D21 studies, respectively. Since these studies have different population de- mographics, their data will be analyzed separately to see if the results are different based on the participant’s past experience.

7.2.1 C21 Study

This study was conducted in a Mechatronic Systems class as described above. A total of 25 students participated in the study. As in the A20 study, the participants 7 DATA ANALYSIS 70 were given a short task to complete using the software. In order to better gauge the learnability and ease of use of the system, the whole tutorial was modified from the A20 one. In this tutorial, the participant is given less guidance when completing the task to see if they can complete it without a lot of help. This was to test the learnability of the software, since we want the software to be intuitively easy to use. Additionally, a second task was added to be completed after the first. This task offered no guidance whatsoever, and the participant was required to use what they learned so far to complete the task on their own, using the help website if needed. The full tutorial document for this study can be found in Appendix B.

7.2.1.1 User Demographics for C21 Study

In contrast with the A20 study, most of the participants in this study were juniors and seniors, with no freshman (Figure 23). This is understandable since this is a more advanced Mechanical Engineering (ME) course so freshman do not have the prerequisite courses completed yet. Additionally, since this is a more advanced course, most of the students are mechanical engineering students (Figure 24). Note that many of the students are double-majors. Unlike the Introduction to CAD class used in the A20 study, non-ME majors would have no reason to take this course because it does not relate to their major study. An Introduction to CAD class could be taken by other majors since they may need to use CAD in their field of study. 7 DATA ANALYSIS 71

Junior

58.3% Sophomore 4.2%

37.5%

Senior

Figure 23: Year breakdown of study participants (C21, total=24).

Mechanical Engineering (ME)

70.8%

8.4% ME+Other 8.3% 12.5% ME+RBE

Robotics Engineering (RBE)

Figure 24: Study participant majors (C21, total=24). 7 DATA ANALYSIS 72

7.2.1.2 Previous Experience

Since Mechatronic Systems is a more advanced ME course, we expected many more participants to be familiar with gear design than the previous study (A20) since gears are used often by mechanical engineers. Similar to the previous system (A20), knowledge of gears is not required to use this program, but it may help the users understand the data they are entering for the tutorial. Several participants in the previous study mentioned that they did not understand the data they were entering. As seen in Figure 25, participants were generally more knowledgeable about gears than in the previous study (previous study is Figure 18).

10

8

6 Count 4

2

0 1 2 3 4 5 User Familiarity (1=least experience, 5=most experience)

Figure 25: User familiarity with gear design knowledge (C21).

The mean familiarity rating was 3.375 (standard deviation 0.875), much higher than the average of 2.22 in the previous study. This was expected to be higher since the study was run in an advanced ME course with students who most likely have 7 DATA ANALYSIS 73

20

15

10 Count

5

0 1 2 3 4 5 User Familiarity (1=least experience, 5=most experience)

Figure 26: User familiarity with CAD (e.g., SolidWorks, AutoCAD) (C21). used gears at some point in their studies. Additionally, since the study was run at the end of the course rather than the beginning, the results are expected to be higher since the students can use what they learned from the course to aid them in the task. Similarly, we expected that users are more experienced with CAD (Figure 26). Even though knowledge of CAD is not required for this program, users who have used CAD may be more familiar with manipulating the 3D viewer of our software since it has similar controls to SolidWorks. The mean familiarity with CAD was 3.95 (standard deviation 0.806), much higher than the previous study value of 2.43. Again, this is expected since this is an advanced ME course. The previous study was run in an introduction to CAD course, where students are expected to have little to no experience using CAD. 7 DATA ANALYSIS 74

7.2.1.3 User Feedback

Similar to the previous study (A20), after the task was complete, the participants were required to complete another survey. This survey asked questions about their use of the software, such as what they found easy, what they found hard, and any features they wanted added. Before those questions, we asked approximately how long it took to complete the task. This is important for our program because we do not want users spending too much time doing simple tasks, as the whole point of the software is to save time designing gear trains. Overall, this task took longer than in the previous study. However, this task was also much longer since they needed to create two gear train designs instead of one. Figure 27 shows a histogram of time taken to complete the task. Unlike the previous study, nobody was able to finish the task in less than five minutes. Some people also took more than 20 minutes to finish (some also took more than 30 minutes), unlike in the last study where the greatest amount of time was 20 minutes. The rightmost two bars in Figure 27 are wider than the rest of the bars in the graph. This is because the users were asked for a range of time (0-5 minutes, 10-15 minutes, etc.), but one of the ranges was 20-30 minutes (10 minute range instead of 5 minutes), so the bar will be wider. One of them was also “More than 30 minutes”, so this one is also wider. Most users found the tutorial easy to complete (Figure 28). All users except one said that they were able to complete the tutorial (one participant was having difficulties with the remote desktop that prevented SolidWorks from opening). Com- pared to the old system, our program seems to be easier to use. Most users reported that modifying the gear data was easy, while rating program navigation a little more 7 DATA ANALYSIS 75

10

8

6

4 Frequency

2

0 0 5 10 15 20 25 30 35 40 Time (minutes)

Figure 27: Histogram of time taken to complete the gear design task (C21). difficult. The average gear modification difficulty rating is 1.44 (standard deviation 0.51), while the average navigation difficulty rating is 1.8 (standard deviation 0.65). The old system’s (A20 study) average gear modification difficulty rating was 1.7, making it slightly more difficult than GearTrain. Most users reported that they were satisfied with the look and feel of the program (average satisfaction rating 3.8/5, standard deviation 1.08). Our development time was mainly focused on user interface design, so we would expect that users would be satisfied with the interface. A question was added to the survey asking whether the 3D viewer improved their experience with the software. Since many of the par- ticipants of the old study requested a 3D viewer, it was important to know whether this was actually helpful. One hundred percent of users reported that the 3D viewer improved their experience with the program. A help website was also created for this system in case the users needed help 7 DATA ANALYSIS 76

15

10 Count 5

0 1 2 3 4 5 Tutorial difficulty (1=least difficulty, 5=most difficult)

Figure 28: Tutorial difficulty rating (C21). with any features or want to see what the program is capable of. No users reported needing to consult the help website, and everyone was able to successfully complete the tutorial (except for one due to a technical problem on the computer they were using). This strongly indicates the learnability and ease of use of our program since all participants were able to complete each task without help. Study participants were also asked free response questions, where they were able to give their feedback. These answers cannot be analyzed simply. Similar to how it was done before, the written responses for each question were categorized so they can be analyzed based on common factors, such as ease of use. The analysis of these answers is below, while full question answers can be found in Appendix A. Similar to the A20 study, responses to the free response questions were not re- quired. In general, a higher percentage of participants responded to these questions compared to the A20 study. Twenty-four participants (96%) of participants an- 7 DATA ANALYSIS 77 swered the question asking what they found easy, and 25 participants (100%) of participants answered the question asking what they found difficult. Only 14 (56%) of the responding participants recommended changes to the software. What about the software did you find easy?

• Ease of use: 11/24 (45.8%) of users said that tasks in the software were easy, including inputting gear data and generating in SolidWorks.

• User interface: 7/24 (29.2%) of users liked the interface and found it easy to use.

• Program features: 6/24 (25%) of users liked the program features and found them easy to use, especially in regards to auto meshing.

What about the software did you find difficult?

• Nothing: 6/25 (24%) of users found nothing difficult with the program.

• Ease of use: 7/25 (28%) of users had trouble using the software, including issues with SolidWorks generation (known bug at the time of the study) and other miscellaneous issues.

• User interface: 7/25 (28%) of users found the interface difficult to use or were confused by certain parts of it.

• Program features: 5/25 (20%) of users had miscellaneous issues with the soft- ware, including the aforementioned SolidWorks issue

If you could change/add/remove anything in the software, what would it be?

• Interface changes: 7/14 (50%) of users recommended changes to the interface to make it easier to use or less confusing (discussed in Chapter 8)

• SolidWorks: 2/14 (14.3%) of users recommended bug fixes and changes to the SolidWorks generation part of the program

• Program features: 5/14 (35.7%) of users recommended features to the program to improve its use for gear designers and to make it easier to use in general 7 DATA ANALYSIS 78

7.2.2 D21 Study

This study was conducted in an Introduction and an Advanced Engineering Design class as described previously. A total of 62 students participated in the study. Similar to the C21 study, the participants were given two short tasks to complete using the software. The first one was guided by giving the user exact instructions, while the second one was unguided since the user was not given any help regarding completing the task. The full tutorial document for this study can be found in Appendix B.

7.2.2.1 User Demographics for D21 Study

The demographics for this study were similar to the C21 study, with no freshmen participating (Figure 29). In contrast to the C21 study, there was a more diverse group of upperclassmen major fields (Figure 30). This could be because one of the classes in this study, Introduction to Engineering Design, is a less advanced class, so it may have more non-Mechanical Engineering students taking it.

7.2.2.2 Previous Experience

Since the two courses overall had fewer seniors than the C21 study, we expected a smaller percentage of participants to be familiar with gear design since gear train design had not been taught yet in these courses. Similar to the previous studies (A20 and C21), knowledge of gears is not required to use the GearTrain program, but it may help the users understand the data they are entering for the tutorial. As seen in Figure 31, participants were generally less knowledgeable about gears compared to the previous study in C21 (previous study is Figure 25). 7 DATA ANALYSIS 79

Sophomore

35.6%

37.8%

Junior 26.6%

Senior

Figure 29: Year breakdown of study participants (D21, total=62).

Mechanical Engineering (ME)

90% 2% Other 8% Robotics Engineering (RBE)

Figure 30: Study participant majors (D21, total=74). 7 DATA ANALYSIS 80

The mean familiarity rating was 2.45 (standard deviation 1.077), much lower than the average of 3.375 in the previous study (C21). This was expected to be lower since the study was run in two varying levels of classes with fewer seniors.

30

20 Count 10

0 1 2 3 4 5 User Familiarity (1=least experience, 5=most experience)

Figure 31: User familiarity with gear design knowledge (D21).

Similarly, we expected that users were less experienced with CAD (Figure 32). While CAD knowledge is not required for this program, having it would make users be more familiar with manipulating the 3D viewer of our application. The mean familiarity with CAD was 3.42 (standard deviation 1.032), moderately lower than the previous study value of 3.95 Again, this is expected since there was an advanced and introductory course with varying degrees of knowledge and students. This meant there were more less-experienced students that could have brought the average down. 7 DATA ANALYSIS 81

40

30

20 Count

10

0 1 2 3 4 5 User Familiarity (1=least experience, 5=most experience)

Figure 32: User familiarity with CAD (e.g., SolidWorks, AutoCAD) (D21).

7.2.2.3 User Feedback

Similarly to the previous study (C21), after completing the tasks, the participants had to complete another survey. This survey asked questions about their use of the software, such as what they found easy, what they found hard, and any features they wanted added. Before those questions, we asked approximately how long it took to complete the task. Figure 33 shows a histogram of time taken to complete the task. In contrast to the previous study, participants took much longer to complete the tasks. More than half of them took 20 minutes or longer. The average time to complete the tasks in the D21 study is higher than the C21 study because the users were less experienced than the C21 participants Most users who completed the tutorial found it easy to complete (Figure 34). On the other hand, there were six participants who did not complete the study. This 7 DATA ANALYSIS 82

20

15

10 Frequency 5

0 0 5 10 15 20 25 30 35 40 Time (minutes)

Figure 33: Histogram of time taken to complete the gear design task (D21). could have been due to issues with the remote server and bugs in the program that did not allow them to continue. Most users reported that modifying the gear data was easy, while rating program navigation a little more difficult. The average gear modification difficulty rating is 1.54 (standard deviation 0.84), while the average navigation difficulty rating is 1.85 (standard deviation 0.89). Most users reported that they were satisfied with the look and feel of the program (average satisfaction rating 3.96, standard deviation 1.05). We also asked how satisfied users were with the 3D viewer, since many participants from the A21 study requested it. 94% percent found that the 3D viewer improved their experience with the software. A help website was also created for this system in case the users needed help with any features or want to see what the program is capable of. Unlike the previous study in C21, 21% consulted the help website at least once. This makes sense, since their were more participants this time and the users had less experience. 7 DATA ANALYSIS 83

30

20 Count 10

0 1 2 3 4 5 Tutorial difficulty (1=least difficulty, 5=most difficult)

Figure 34: Tutorial difficulty rating (D21).

Similar to the A20 and C21 study, responses to the free response questions were optional. In general, a lower percentage of participants responded to these questions compared to the C21 study. Fifty-eight participants (93%) of participants answered the question asking what they found easy, and 26 participants (41%) of participants answered the question asking what they found difficult. Only 11 (18%) of participants recommended changes to the software. As with the other studies, all short answer responses can be found in Appendix A. What about the software did you find easy?

• Ease of use: 24/59 (40.6%) of users said that tasks in the software were easy, including inputting gear data and generating in SolidWorks.

• User interface: 18/59 (30.5%) of users liked the interface and found it easy to use.

• Program features: 17/59 (28.8%) of users liked the program features and found them easy to use, especially in regards to auto meshing. 7 DATA ANALYSIS 84

What about the software did you find difficult?

• Nothing: 9/26 (34.6%) of users found nothing difficult with the program.

• Ease of use: 6/26 (23.1%) of users had trouble using the software, including issues with SolidWorks generation (known bug at the time of the study) and other miscellaneous issues.

• User interface: 7/26 (26.9%) of users found the interface difficult to use or were confused by when to save.

• Program features: 4/26 (15.3%) of users had miscellaneous issues with the software, or importing a file.

If you could change/add/remove anything in the software, what would it be?

• Interface changes: 5/11 (45.4%) of users recommended changes to the interface to make it easier to use or less confusing (discussed in Chapter 8)

• SolidWorks: 3/11 (27.2%) of users recommended bug fixes and changes to the SolidWorks generation part of the program

• Program features: 3/11 (27.2%) of users recommended features to the program to improve its use for gear designers and have more features in general 8 EVALUATION 85

8 Evaluation

After collecting data from our surveys, we can use the results to draw conclusions about the systems and how they can be improved. The study of the old system (Holman and Okafor, 2018) was used to determine what needs to be improved, and the study of our new system was used to determine how users responded, how the users responded to it compared to the old system, and what can be done in the future to improve it further. As with Chapter 7, each of the three studies will be referred to here as the A20 study, the C21 study, and the D21 study.

8.1 Study of the Old System (A20)

8.1.1 User Demographics

The section in the initial survey about demographic information indicated a few things. First, a majority of participants were mechanical engineering (ME) students. This was expected, as this class is taken by most ME students at Worcester Polytech- nic Institute, and will most likely be a majority of the users of the system. However, many other majors were also represented outside of ME. It is important in a user study to get participants of various backgrounds in order to get the most complete feedback possible.

8.1.2 Previous Experience

Since the classes that the study took place in were introductory-level classes, we were expecting many of the participants to have only a little to no knowledge about 8 EVALUATION 86

CAD, and even less about gears. According to the study, most of the participants were freshman, so this study would have been conducted during their first term in Worcester Polytechnic Institute where they may not have taken any classes related to gears yet. In terms of gear design principles, most users reported that they are not very experienced. This is fine for the purposes of this software since the whole point of the program is to make it easier to design gears. This coincides with some of the free-response questions in which the participants said they did not know what data they were entering or what some of terms mean. Someone with no gear experience may not know what “pressure angle” means, for example, but someone with a lot of experience would. More participants reported higher familiarity with CAD programs such as Solid- Works, specifically about designing gears. This is expected since the study took place in an Introduction to CAD course where students are given their first CAD experience.

8.2 User Feedback

A summary of user feedback can be found in Chapter 7, and full responses to all free-response questions can be found in Appendix A. The main purpose of this study was to gather user feedback about the existing gear design system, including what the users like about it, what should be improved, and whether anything should be added. In general, the program was received with mixed feedback. 48.6% of users found 8 EVALUATION 87 the data easy to enter, but only 29.7% of users commented that the interface easy to use, with 21.6% of users saying the program is easy to use in general, especially when compared to designing a gear train by hand. Even though many users found it easy, many users thought that it needed improvement. Some said that it was very tedious to enter in all the information. Others did not know how to use the software at all since the program offers no help. A little more than half of study participants encountered a bug or problem that prevented them from successfully completing the tutorial. About half of users specifically mentioned that they wished there was a way to preview the gears that they were creating. The old system is all text based, and there is no way to see what you are making until the design is sent to SolidWorks and completed, which can sometimes take many minutes. These users wanted a preview of the gears so they could visualize the results of the numbers they are entering. Given these points, we focused on two things during development of the new gear design system. The user experience needed to be free of bugs which prevent the user from completing their task, and the system needed to be more responsive to the user, such as giving them feedback when there is an error or when they try to do something that is not allowed. The user interface also needed to have some way for the user to preview their gear train before it is sent to SolidWorks.

8.3 GearTrain Study (C21 and D21)

The C21 and D21 studies primarily differ from the A20 study due to the difference in study population. The C21 and D21 study were done using advanced Mechanical 8 EVALUATION 88

Engineering students (mostly juniors and seniors), whereas the A20 study was done in an introductory level course (primarily sophomores). As explained later in this section, the differences in population demographics may help us determine the dif- ferences in user experience based on how knowledgeable the user is about the topics explored in the program.

8.3.1 Previous Experience

As opposed to the A20 study, where the students were mostly sophomores of various majors, the C21 and D21 studies were conducted in two 4000 level Mechanical En- gineering courses and one 2000 level course at Worcester Polytechnic Institute (4000 level is the highest undergraduate course level, typically populated by juniors and seniors). Since most students were juniors and seniors with a Mechanical Engineer- ing background, it was expected that these students were familiar with gears and had at least some experience using CAD. This hypothesis was proven by the C21 and D21 survey results, with 69% of participants rating themselves a 3 or higher (out of a 5 point scale) with how expe- rienced they are with gears, and 87% of participants rating themselves a 3 or higher with their CAD experience. This is much higher than the A20 study, where only 43% of users rating themselves a 3 or higher in gear design and 48% of users a 3 or higher in CAD usage. From these results, we expected that users in this study may be better at using the software since they would have a better understanding of gear terminology and manipulating the 3D viewer (since the controls are the same as SolidWorks). 8 EVALUATION 89

8.3.2 User Feedback

Similar to the A20 study in the previous section, a summary of user feedback can be found in Chapter 7, and full responses to the free-response questions can be found in Appendix A. Compared to the old system tested in the A20 study, participants in the C21 found our GearTrain software easier to use. The mean difficulty rating (out of 5, with 5 being the most difficult) for completing the tutorial was 1.56 for GearTrain, compared to 1.77 for the old system. The mean difficulty rating for modifying gear parameters for GearTrain was 1.44, compared to 1.7 for the old system. Both systems seem to be easy to use, but GearTrain is slightly easier. On the other hand, for participants in the D21 study, the software was more difficult to use. The mean difficulty for completing the tutorial was 1.93 for GearTrain. The mean difficulty for modifying gear parameters in GearTrain was 1.54. These higher scores were attributed to students not having been taught about gear train design and thus having a harder time understanding and working with GearTrain. In the free-response sections for all studies, the participants were asked to enter anything that they found easy or difficult with the software. A major issue that participants had with the old system was the lack of system feedback for certain actions. The main complaint was that there was no way to visualize the gears they were creating, so it was hard to modify the gear parameters. With the GearTrain program, and the 3D visualizer, there were no complaints that the gear parameters were hard to modify. Many of the complaints concerning the old system were about user interface bugs 8 EVALUATION 90 and problems that prevented certain tasks from being done. For example, some users reported that the button for adding a new gear set did not appear on their screen (it was below the visible part of the screen), so they did not know how to add a new gear set because the button was invisible. It was possible to scroll to it, but users did not know there was anything below since there was no visible scroll bar. This was not an issue with GearTrain since we removed the need to scroll (everything is navigable via a “Back” button at the bottom on the screen). There was also an issue where some text fields would get a gray background. Usually a gray background indicates the control is disabled, meaning the user cannot type in it or interact with it, but this was not the case in the old program. The text box became gray, but text could still be entered in. This was a general issue with consistency that we attempted to fix in GearTrain. Indeed, there were no complaints about UI consistency in GearTrain. There were some other interface- related feedback. For instance, saving in the edit gear set screen was hard for the users to understand. Participants would often get confused that they could only save when they left the screen. This was not the case as the system was saving was automatically and would prompt users if they wanted to keep their changes when they left the screen. A major problem that existed at the time of the C21 and D21 study were issues with SolidWorks. On some occasions when the design is sent to SolidWorks to be generated, an issue with the SolidWorks generation code would cause SolidWorks to crash if it was already open beforehand. As a result, we instructed participants to make sure SolidWorks was fully closed. This was a major annoyance to the user, 8 EVALUATION 91 and some users were unable to fully close SolidWorks due to not knowing how, even though it was explained. This is not a problem that the user should have to worry about, so this may have negatively affected the survey outcomes. Indeed, many participants made comments relating to the SolidWorks problem (see Chapter 7 and Appendix A). Another SolidWorks issue participants commented on was that sometimes the the gear train design was being incorrectly generated. The generated 3D items in SolidWorks were extremely oversized and unusable. This issue was an even greater annoyance as we were unable to reliably reproduce the bug and do not know of any solution. This led to some participants unable to fully complete the study.

8.3.3 Recommended Changes to the System

One of the survey questions asked participants to write down anything that they recommend we change in the software, including additions and removals of features. See Appendix A for all the recommended changes to the software. Selected comments are shown below.

Add the feature to snap to a view like in SolidWorks (left right top bottom front back etc.)

There was a part of the 3D viewer which allowed the user to “snap” to certain views. This feature was removed in order to add an axis view, however the Helix3D toolkit may allow both to be present (Bjorke and Ansel, 2020).

I would allow for an easier and faster way to switch between editing gear sets, such as a tool on the header of the software window 8 EVALUATION 92

A few participants requested an easier way to change gear sets. Currently, you must press “Back” to get back to the list of gear sets, then select a new one to edit. A toolbar containing buttons for all the current gear sets could be added to the top bar to allow the user to switch between gear sets easily.

A save button after you change the gear properties.

Many participants were confused about the gear editing interactions. The modified gear data is saved automatically, but no feedback is given to the user that it is saved. There is a “Revert” button in case they made a mistake and need to undo everything, and when they click “Back” to go back to the list of gear sets they are given the option to revert. Users are confused about whether gear data is saved automatically.

SolidWorks Crashing

There was a known issue where SolidWorks and all its processes need to be completely closed before GearTrain generates a design, otherwise SolidWorks may sometimes crash. This is caused by an issue in the SolidWorksMacro code file, which was not created by this project team nor the team that worked on the previous gear design application.

Gear analysis abilities

A few users wanted the ability to perform an analysis on their gear train. Simple gear analysis input and output windows have already been created. They simply need to be integrated with the analysis code written by Professor Radhakrishnan.

Enhancing the 3D visuals 8 EVALUATION 93

There were users that in the future would like to see more detail in the 3d viewer. GearTrain only has rudimentary shapes, such as cylinders. to show the structure of the gear train designs. Adding things like gear teeth and more complex shapes to create detailed 3D models would further let users understand how their design will be generated.

SolidWorks Incorrectly Generating

There was another known issue where SolidWorks would generate the gear train design incorrectly even though all parameters were correctly inputted. This led to several incorrectly generated parts of the design like, large gears, unaligned bearings, and unwanted bounding boxes. 9 CONCLUSION 94

9 Conclusion

After completing all components of the project, including all programming and user studies, we can evaluate the project to determine whether our goals were met. Since a major part of this project was to make the program easy to use (by following HCI, human computer interaction, metrics and heuristics as described in Chapter 3), an evaluation of these metrics is also needed. Finally, there are some parts of the program which are incomplete or need extra work. Those incomplete parts, as well as any extra features that could be added in the future, will be described in this section.

9.1 Project Evaluation

After a large project such as this one, it is important to evaluate the outcome of the project to see if all the goals that were set at the beginning were met. A description of our goals and requirements can be found in Chapter 2. In summary, our goals were:

• Convert the existing gear train design software from Windows Forms to WPF

• Create a 3D previewer of the user’s gear train design

• Run user studies using the old system and GearTrain to gather user feedback

After project completion, we successfully converted the old gear design soft- ware from Windows Forms to WPF. This required a complete rewrite and redesign of the UI (Chapter 5), but the benefits of this new graphics framework outweighs 9 CONCLUSION 95 the cost of rewriting the UI. WPF is newer, has better performance (especially for graphics-intensive programs such as the 3D viewer), has many more options for pos- sible UI controls, and continues to receive updates from Microsoft. The 3D previewer of the gear design is partially implemented. The 3D viewer shows the general structure of the gears, however it is not completely accurate. The main issue is that the shapes are not actual gears. They are simple shapes like cylinders and disks. A future project team could implement the 3D viewer to contain real gear and bearing shapes. The second issue is that the shaft and bearing locations do not always match the SolidWorks generation. This is due to an issue with how shafts are represented in the code. This problem existed in the old system as well. A future team could fix this shaft issue and thus fix the 3D viewer as well as some SolidWorks generation issues relating to shafts. After project completion, we had run a total of three user studies to evaluate and compare the old system with GearTrain. As explained in Chapter 8, users generally found GearTrain to be easier to use than the old system, and most users found that the 3D viewer improved their experience. Participants in these studies gave us feedback about which features should be added in the future. Some of these will be explained in Section 9.3. All feature requests can be found in Appendix A.

9.1.1 Heuristic Evaluation

In Chapter 3, we talked about HCI metrics and heuristics which can be used to evaluate a system. The ten heuristics are first described in Table 2, while Table 8 explains how every heuristic was met by GearTrain. 9 CONCLUSION 96

Table 8: UI heuristic evaluation. Heuristic Evaluation Visibility of system status Users can always see the state of their design using the 3D viewer, no matter where they are in the application. Match between system and the real Proper gear terminology is used (e.g., world “Bevel”, “Pitch”). User control and freedom User is always able to navigate between screens using back or cancel buttons. Shaft and gear editing allows the user to undo their work if they make a mistake. Consistency and standards UI element design (color, shape) are consistent throughout the application. Terms are only repeated when referring to the exact same object. Error prevention System checks for bad input from the user and warns them about errors or mistakes. System does not allow users to create an invalid gear train design. Recognition rather than recall Most actions in the application are available all the time (and are dynamically enabled/disabled depending on system state), so the user always knows when they are allowed to do something. Flexibility and efficiency of use The system has features for both advanced and novice users, such as SolidWorks-like 3D viewer controls (advanced) and tooltips (novice). Aesthetic and minimalist design The interface was designed to only have the elements that it absolutely requires with nothing extra. Help users recognize, diagnose, and Anytime an error happens, such as if recover from errors the users has incorrect input or a problem opening a file, an error popup appears. This error popup tells the user (1) what the error is, (2) what caused it, and (3) how to fix it. Help and documentation Every UI element has a tooltip explaining what it is and how to use it. A help website was also created in case the user needs extra help. 9 CONCLUSION 97

9.2 Project Experience

The MQP is the culmination of a student’s learning at WPI (the “capstone”). As such, it requires us to apply knowledge from almost every class that we have taken. Each of us having taken different courses with different prior experience, we were able to figure out our own individual skills and how they are applied to the project.

9.2.1 Applied Skills

The main skill that was used was both of our knowledge using the C# program- ming language. Although there is not a single course at WPI that teaches or uses this language, we both had much experience using it in our own personal program- ming projects. We both had used WPF extensively in the past, so creating a UI in WPF and a backend in C# was a good example of this skill. C# is very similar syn- tactically to Java, a language used extensively at WPI classes and in the real world, so it is very easy to learn if one is already familiar with Java or another C-based language. The final MQP report was written in Latex since it is very easy to format the document. Even more helpful was Latex’ way of keeping track of figures and section numbers throughout the paper that would be very difficult to maintain if writing using a different format. Kyle has used Latex extensively in the past for homework assignments or other writing, so he was able to create the skeleton for the paper which both team members can fill in with writing. A large part of the project was based on UI improvements, as well as user ex- perience improvements. Since many users of the old system found it hard to use, it 9 CONCLUSION 98 was important to create a system which considered HCI principles. Alan had taken the HCI course at WPI previously, so he took charge of the user interface design, and thus knew what aspects of it were acceptable or needing improvement. One of our main requirements, as well as how we evaluated our system, was to run a user study of the systems. Each study was almost identical to each other, and a study methodology needed to be created so that we knew what needed to be done to get the best results. Kyle’s IQP (interactive qualifying project, a Junior- year project) was entirely focused on running a user study to compare groups of participants. That knowledge was used in creating the studies for this project. Some data analysis methods from his IQP were also used, such as different statistical functions. Finally, we desired to create a help website for the software so that users have an easy way to get help with the software. In the previous system, there was no help whatsoever, making the software even harder to use. Alan used his knowledge of web development to create a help website for GearTrain, which many users consulted during the D21 study.

9.2.2 Acquired Skills

Besides applying all of our skills and knowledge from our college experience, the MQP is also a teaching experience. The skills we already have are applied, but new skills are acquired. This section will discuss some of those skills. Being Computer Science students, we had never officially learned about gears before this project. We had a very basic understanding of what gears were and what 9 CONCLUSION 99 they did, but did not have any knowledge of any gear terminology or other advanced aspects of gears. As seen in Chapter 3, much research about gears was required in order to implement a system used for designing gears. Even though we had some knowledge of user interface design, we learned much more about it during this project. Designing the UI required many aspects to be considered, including ease of use (for many different types of users), learnability, aesthetics (which colors are used, style of different UI elements), and more (see Chapter 5). While working on our own projects or projects for classes, we never really needed to consider these HCI principles since that was not the focus. However, it was the focus of this project so it was very important that we had a solid understanding. Finally, the main thing we learned was project planning. For each term, we needed to create a plan for the term. This plan helped us keep track of what tasks needed to be done, but also helped us determine whether we were on track to meet our goals or not. We created a Gantt chart for B and C term to help us plan our programming, user study, and writing goals. A Gantt chart is a type of bar chart which shows tasks on a timeline, with the person who is responsible for the task as well as task dependencies (Clark et al., 1922). This significantly helped us achieve our goals since we had written down exactly what needed to be done by what date.

9.3 Future Work

Throughout the project, we worked to convert the previous gear train design software from Windows Forms to WPF. While that and other major goals were completed, there were a few things we were unable to fully complete due to time constraints. 9 CONCLUSION 100

There are some issues that exist with GearTrain that need to be fixed in the fu- ture. Additionally, participants from our user study recommended additional fea- tures which can be added.

9.3.1 Unfinished Features

This section will describe those features that we began to implement but were unable to finish, due to time constraints or other factors. These include bugs or just features that we started and were not able to finish. 3D Gear Preview As discussed at the beginning of this chapter, the current 3D viewer can only draw simple shapes, such as cylinders, to represent gears. An accurate drawing of gears, including teeth and a proper bore, could be implemented with the 3D viewer to make the preview even more similar to what SolidWorks will generate. Additionally, the “Export to STL” feature exports the entire model as one large STL file instead of as individual parts. When 3D printing an object, you generally each part separately (so that the gears can ). Since this STL has all parts attached, it is unable to be 3D printed since the parts would not be able to move. Gear Analysis A gear and shaft analysis was proposed at the beginning of the project. There existed gear analysis code from a previous project worked on by Professor Radhakrishnan that could be used for this purpose. Simple input and output windows were created for gear analysis (described in Chapter 5). This gear analysis code just needs to be integrated to use the UI windows for input and output. Additionally, a feature 9 CONCLUSION 101 would need to be added to save the analysis results to a CSV file which an engineer could use for their own purposes. Shaft Backend Problems The way that shafts are represented in the backend code does not work well when multiple gear sets are added. This has been a problem since the previous software. When more gear sets are added, the default values for gear and bearing locations are set to values that are not actually on the shaft. Additionally, an issue with the SolidWorks generation code causes the shafts to generate incorrectly. Figure 35 shows two issues with shaft generation. The first is that one shaft was placed far away from the rest of the shafts, already making the gear train invalid (and much different from what the user entered). The second issue is the size of the shafts. All the shafts in this image are extremely small, although it looks like all the gears and bearings are just really big. Because of this issue, all the gears were placed inside of each other, even though the “Auto Mesh” feature was used. This shaft problem is a major bug which makes it so users cannot edit shafts without risk of a problem. SolidWorks Generation Crashes As discusses in Chapters 7 and 8, our user study required that users fully close out of SolidWorks before starting the generation. This is due to an issue in the

SolidWorksMacro.cs file which can cause the program to crash in the middle of generation. The only way to fix it seems to be by fully closing SolidWorks before generating. A potential fix was implemented by making sure that SolidWorksMacro fully closes every file after it is done with it, but this did not fix it. This was the 9 CONCLUSION 102

Figure 35: Shaft generation error. main issue with GearTrain that was reported by our users.

9.3.2 New Features

Finally, we will discuss new features that could be implemented in the future. Some of these features were recommended by participants in our user study, while others were from the project discussions about the software. Only those features from our discussions will be presented here. See Appendix A for the features recommended by our users. GearTrain Installer Creating GearTrain as an installer instead of a standalone executable has been dis- cussed. An installer would allow for the program to always be on the computer, which is easier for the user than having to keep GearTrain in a well-known location. 9 CONCLUSION 103

This also allows for easy uninstallation by the Windows uninstall service. Another feature that was desired (and requested by a small number of users) was to allow users to double-click on a GearTrain design file and have it automati- cally open in GearTrain. This is possible, and is very common with other programs. However, this requires installation to the system because the operating system (Win- dows) needs to create a filetype association internally. Currently, users must open GearTrain, select File→Open, and select a GearTrain design file to open. An easier way is to have the user double-click a GearTrain design file in their file explorer and the program opens automatically. Installation is not possible at the moment because WPI IT services are strict on what programs can be installed to school computers. Before a program can be installed, it must be approved, which can take a long time or it may not be accepted at all. Automatically SolidWorks Location While GearTrain is able to look in the default SolidWorks install directory, it will not be able to find the program if the user chose to install it somewhere else. Al- though GearTrain saves the SolidWorks location that is provided by the user, if the user forgot where they installed it initially they may not be able to provide the lo- cation to GearTrain. Without the location of SolidWorks, the generation cannot be run. Similar to how Windows is able to find programs using the “Search” feature, a new feature could be to use that same functionality to find the SolidWorks exe- cutable. This would make it much easier for the user in case they do not know where SolidWorks is installed. REFERENCES 104

References

Allen, J. (2014, April 3). A WPF q&a. https://www.infoq.com/news/2014/04/WPF- QA/ Bjorke, O., & Ansel, J. (2020, May). Helix toolkit. GitHub. https://github.com/helix- toolkit/helix-toolkit Clark, W., Polakov, W. N., & Trabold, F. W. (1922). The gantt chart, a working tool of management. New York, The Ronald press company. http://archive.org/ details/cu31924004570853 Dassault Systemes. (2021). 3d CAD design software — SOLIDWORKS [SOLID- WORKS]. https://www.solidworks.com/home-page-2021 Ecma International. (2017, December). C# language specification (5th). Geneva, Ecma International. https://www.ecma-international.org/publications/files/ ECMA-ST/ECMA-334.pdf Holman, G., & Okafor, O. (2018, April). Automated generation of SolidWorks as- semblies of gear-trains and linkages. Major Qualifying Project, Department of Mechanical Engineering, Worcester Polytechnic Institute. Hunter, S. (2019, May 6). .NET core is the future of .NET [.NET blog]. https : //devblogs.microsoft.com/dotnet/net-core-is-the-future-of-net/ Janczuk, T. (2017, August). Edge.js. GitHub. https://tjanczuk.github.io/edge/#/ Kohara Gear Industry. (2015). Introduction to gears. https://khkgears.net/new/ gear knowledge/introduction to gears/ REFERENCES 105

Kulikov, P., & Wagner, B. (2020, April 8). The history of c#. https://docs.microsoft. com/en-us/dotnet/csharp/whats-new/csharp-version-history Lander, . (2019, May 6). Introducing .NET 5. https://devblogs.microsoft.com/ dotnet/introducing-net-5/ Lee, T., & Hogenson, G. (2020, June 23). XAML overview [Visual studio docs]. https://docs.microsoft.com/en-us/visualstudio/xaml-tools/xaml-overview Looft, F. J. (2018, August). Systems engineering for capstone projects. Worcester Polytechnic Institute. Microsoft. (2003). Visual studio 2003 retired technical documentation. Redmond, WA, Microsoft. Mueller, R., & Moissette, M. (2018, April). OpenJSCad. https://openjscad.org/ Nielsen, J. (1994, April). 10 heuristics for user interface design. https : / / www . nngroup.com/articles/ten-usability-heuristics/ Radhakrishnan, P. (2020). Introduction to gears videos. Worcester, MA, Mechanical Engineering Department, Worcester Polytechnic Institute. Rasmussen, L. (2015, October 8). Drawing gears - circular and non circular. https: //www.codeproject.com/Articles/1037482/Drawing- Gears- Circular- and- Non-Circular Smith, J. (2009). Patterns - WPF apps with the model-view-ViewModel design pat- tern. Microsoft Developer Networ, 24 (2). https://docs.microsoft.com/en- us/archive/msdn- magazine/2009/february/patterns- wpf- apps- with- the- model-view-viewmodel-design-pattern REFERENCES 106

Stone, D., Jarrett, C., Woodroffe, M., & Minocha, S. (2005, March 22). User interface design and evaluation. Morgan Kaufmann Publishers. Swantner, A., & Campbell, M. I. (2011). Topological and parametric optimization of gear trains. Engineering Optimization, 44 (11), 1351–1368. https://doi.org/ 10.1080/0305215X.2011.646264 Toub, S. (2017, June 7). Performance improvements in .NET core [.NET blog]. https: //devblogs.microsoft.com/dotnet/performance-improvements-in-net-core/ Vincze, A. (2014). Involute spur gear generator and simulator. https://geargenerator. com/ Wenzel, M., & Jin, Y. (2019, April 2). Common language runtime (CLR) overview - .NET framework. https://docs.microsoft.com/en-us/dotnet/standard/clr 107 Appendices

A User Study Survey

A.1 Existing System A.1.1 Survey Questions Before the Task

1. Please enter your code (see the tutorial document for instructions on how to generate it). (Short answer)

2. What is your major(s)? (Short answer)

3. What is your minor(s), if any? (Short answer)

4. What year are you? (Multiple )

5. How familiar are you with gears (design)? (Ranking 1-5)

6. How familiar are you with gears (software use e.g. SolidWorks)? (Ranking 1-5)

7. Please give specific examples when you have designed gears in the past, if any. (Short answer)

8. How much experience do you have with SolidWorks? (Ranking 1-5)

9. Please give specific examples when you have used SolidWorks in the past, if any. (Short answer)

10. Have you used the gearbox design software before? (Yes or nN)

11. If you responded yes to the previous question, do you have any comments about it, such as feedback, suggestions, or problems? (Short answer)

After the Task

1. Please enter your code (same as the pre-survey, see the tutorial document for instructions on how to generate it). (Short answer)

2. Were you able to complete the tutorial? (Yes or no) A USER STUDY SURVEY 108

3. Please upload a screenshot of your completed design in SolidWorks. (File upload)

4. Approximately how long did it take you to complete the tutorial (mm:ss)? (Short answer)

5. How difficult was it to complete the tutorial? (Ranking 1-5)

6. How difficult was it to modify the gear data? (Ranking 1-5)

7. What about the gear design software did you find easy, if anything? (Short answer)

8. What about the gear design software did you find difficult, if anything? (Short answer)

9. What would you change in the current system to make it easier to use or more functional? (Short answer)

10. What are your top 3 or favorite features? (Short answer)

11. Any additional comments or other feedback that you would like to give? (Short answer)

A.1.2 Open Response Question Results What about the gear design software did you find easy, if anything?

• I found the whole software pretty user friendly, I didn’t have any problems following the tutorial and I was able to successfully generate the gears.

• The layout was intuitive and not a lot of instruction was needed. The labels of the data input boxes were clear and explanatory

• It makes it easy and efficient to generate a gear box and correct dimensions with no errors, it is very easy to use and fast.

• I really like how simple and easy to use the GUI is, I also like how there was no real way to mess it up

• Designing the gearbox was easy. It was very clear where all the numbers needed to be plugged in. A USER STUDY SURVEY 109

• software was easy to use, I liked how it generated all the parts and assembly for you quickly

• it was easy to input the data and convenient that there was a button to import to solidworks

• you don’t have to actually design the gears and shafts they just created them for us

• I thought it was pretty easy to follow, very straight forward and user friendly.

• You just had to put in the information, you did not have to do any calculations.

• it created gear sets much faster than creating them in Solidworks alone.

• The procedure was pretty straightforward, the data was easy to change

• The UI screen to input all the data given was easy to fill in

• The user interface was very user friendly and easy to use.

• The way the software compiled the gears into solid works

• The inputs for the numbers were very straightforward.

• The layout was very intuitive and simple to access.

• The imputs and it generated the gears pretty well

• it was easy to put in the gear information data

• typing it into the boxes seemed simple enough

• it was just inputing data given, fairly easy

• To download and have it generate seemed easy

• Watching them gears mate themselves.

• it is easy to add a new set of gears

• user input was very straight forward

• The initial UI was very simple A USER STUDY SURVEY 110

• everything was organized well

• Everything is clearly labeled

• when modifying the gear data

• Easy understandable layout

• it was all very easy to do

• Almost everything is easy

• Easy to put in values

• entering in the data

• putting indata

• yes very easy

• clear labels What about the gear design software did you find difficult, if anything?

• I was a little confused during the file saving part of the program, I wasn’t sure if I was making a file for my gear assembly or if I was trying to find the location of solid works. Maybe I just wasn’t paying enough attention though.

• If I was using this software on my own, I might have difficulty visualizing the placement of the gears. However, the auto-mesh feature seemed to account for this somewhat.

• After a second gear set is added, the page won’t scroll down to completely reveal the “Click to Add Gear Set” button. Only the top of it is visible.

• I just found it a little bit tedious to input all of the information but I know it is necessary to model the gear the right way

• nothing but it did freeze my computer and I had to close solidworks and try again but i think it was just a solidworks error

• Downloading the file was a little difficult because the computer didnt download it right away. There was an error to change. A USER STUDY SURVEY 111

• I wish that you didn’t have to put as much information or that it was more user friendly because it seemed a little tedious.

• Exporting it was a little difficult. I did miss a step and don’t have a shaft crank because I got a little confused.

• the green box to add a gear set wouldn’t show, could not read no matter how far I tried to expand the window

• The pictures don’t entirely match the table of data so it threw me off for a second before I realized it.

• Adding a second gear set was tricky, but mostly due to a lack of my own understanding.

• some numbers in the table weren’t the same as what was shown in the final screenshots

• I’d have to play around with it more to answer this question accurately.

• when to open the generated gear with solidworks it was a bit confusing

• Probably just knowing what to do/getting my antivirus to trust it

• the last few steps were confusing because I didn’t get a pop-up

• I had to select the location of the executable for solid works

• the ratio picture in the beginning of the packet threw me off

• I dont know exactly how I would choose some of the objects

• Difficult to know what dimensions to put in for the gears

• not sure how to get this data or what it means

• getting it to transfer over to solidworks

• not knowing enough about gears A USER STUDY SURVEY 112

What would you change in the current system to make it easier to use or more functional?

• I don’t know what the intention of the use of the program is but as someone who knows nothing about gears I don’t know what some of the things mean. Ex. I don’t know what the different types of gears look like or what an idler gear is.

• The only problem I noticed was the add gear set button moved off the screen after the second set was added, there was a scroll bar but it did not go down far enough

• Instead of telling people to wait for the “Press OK once Solidworks has loaded” popup, maybe just indicate that this is only needed if SW was no already opened

• The window of the program didn’t adapt to that of my screen, so the majority of the “add new gear set” button was hidden after adding the second gear set

• I am fairly unexperienced when it comes to solid-works so I had no idea what I was building until the program built it for me, so maybe a live image.

• I would remove the grey shading because it seems as though you cannot change the numbers even though that option is available.

• The way it generates in solidworks has an extra step I’d try to get rid of (when you have to click more info & run anyway)

• A hover feature, where if you hover over the fields to be filled out a description or animation is able to be viewed.

• I think the system is pretty good just takes a while but its still better than manually creating all of these parts

• my program was a little slow to open all the solidworks parts and the assembly. Thats probably just my computer

• Maybe have the option to make individual gears instead of them in sets so you could have an odd number of gears

• Explain what some of the different parameters are. Lots of people don’t know terms like “pitch angle”. A USER STUDY SURVEY 113

• It would be cool if it automatically made a folder that held all the files it’s creating.

• add a help feature to explain some of the parameters (mainly for newbies like myself)

• allow more than 2 gears to be on a shaft(not sure if program can already do this)

• finding an easier way to transfer over to solidworks, My solidworks did not open

• Giving a preview would be awesome, but it could also take up a bunch of memory

• open solidworks automatically? Or a note on the side says pre-open solidworks • Maybe more visual in the application before solidworks, preview. • If possible, maybe include some sort of preview of the gears. • Unsure, maybe just make sure the pictures match for beginners • I would add a more simple way to visualize the end result. • Potentially have a preview of the locations of the gears • allow for a faster way to generate the gear assembly • This is a bit out there, but possibly a visualizer? • better GUI, less steps to do a simple generation • instruction to find the solidworks.exe file • Improve the layout of the UI for clarity • give more info about what is happening • make sure the pop-ups pop up • Maybe just UI improvements • the software looks dated • easier to save A USER STUDY SURVEY 114

A.2 New System (GearTrain) A.2.1 C21 Study A.2.1.1 Survey Questions Before the Task

1. Please enter your personal code. The code is generated as follows:

2. What is your major(s)?

3. What year are you?

4. How familiar are you with gears (design principles, terminology, etc.)?

5. How familiar are you with CAD (e.g., SolidWorks, AutoCAD)?

6. Have you ever used a gear design software before (e.g., geargenerator.com)?

7. If you answered “Yes” to the previous question, do you have any comments about it or things you would change?

After the Task

1. Please enter your code (same as the pre-survey, see the tutorial document for instructions on how to generate it).

2. Were you able to successfully complete the tutorial?

3. Approximately how long did it take you to complete the tutorial?

4. Please upload a screenshot of your resulting design from SolidWorks (guided design).

5. Please upload a screenshot of your resulting design from SolidWorks (unguided design).

6. How difficult was it to complete the tutorial?

7. How difficult was it to modify the gear data?

8. How difficult was is to navigate through the program?

9. How many times did you have to consult the help website? A USER STUDY SURVEY 115

10. How difficult was it to complete the unguided section, given all that you had learned in the guided section?

11. How satisfied are you with the look and feel of the program?

12. What about the software did you find easy?

13. What about the software did you find difficult?

14. If you could change/add/remove anything in the software, what would it be?

15. An old version of this software did not have the 3D viewer and it was all text based. Did you find that the 3D viewer improved your experience with the software?

16. What is your favorite part about the software?

A.2.1.2 Open Response Question Results What about the software did you find easy?

• It was very clean and clearly labeled, easy-to-follow what inputs were being added.

• I really love the auto-mesh feature, it seems like it will save people a lot of headaches!

• Very easy to modify gears and their properties

• It was really nice that the gears were auto meshed and that the CAD files were developed for you. I spent way to much time in RBE2001 designing teeth on gears in solidworks.

• Changing the gear parameters was very easy and having the upper bar with some of the major operations was very nice

• Inputting data was very easy

• easy to edit gear data, ui is nice and simple, controls were intuitive

• Data entry was very simple, creating the model in SolidWorks was also very easy

• Entering data and converting to SolidWorks were both very easy A USER STUDY SURVEY 116

• The auto mesh feature seems very useful. • The software installed very easy, had a great and simple UI, was very stable, and transferred data over to SolidWorks without any issues. No navigation issues in the software, and the UI looks pretty solid and modern for being under-development.

• The gear editing tools and buttons were very user friendly and self explanatory for the most part.

• Generally very quick to learn the basics, minimal unnecessary complication • I liked the auto meshing and ability to generate it in solid works. • It was very easy to navigate and modify the gears. • changing all the parameters was very straightforward and uploaded into solid- works well

• It was super easy to navigate and understand the controls • It was very easy to generate the gears sets with no issue. • The quick edit and add features • Overall it was quite easy to use • The buttons were large and easy to find. • The software was able to create properly meshing gears with minimal input and little math on my part.

• Was straight forward and simple. Was cool to watch the parts being made in solidworks

• Simple button layout • I loved how easy it was to create a gear box and have it just create a Solidworks file for me. It makes it so much easier and saves a ton of time. What about the software did you find difficult? • For the unguided section, I had to close both out of Solidworks and the gearbox software completely, in order to generate my modified unguided file (I had only closed out of Solidworks after having finished the first section). A USER STUDY SURVEY 117

• Having to back out of the main menu to add another gear set. It wasn’t difficult, but if you have a system with a ton of gear sets I could see it being a little annoying. It’s really not a big deal in the long run, but having a button to add a new gear set on the top ribbon could make it just a little bit quicker to use

• Was hard to determine when Solidworks was done or if I needed to be doing anything while it was generating the Solidworks model. If there’s some way to have Solidworks do the work in the background without showing the user anything until the final design, that would be less confusing. This way, the user would stay in the GearTrain software (probably looking at a progress bar) until Solidworks is completely done creating the model.

• I was a bit confused by the “back” and “revert” buttons, I expected there to be a “save” button so I spent some time looking for that before discovering that clicking a new gear to edit did not remove the changes to the previous gear.

• Some of the navigation from gear to gear was a bit difficult but not bad

• I didn’t find anything difficult

• my middle mouse button doesn’t function as a button, only as a scroll wheel, so being able to rotate and pan like in solidworks with right mouse button would be nice, or at least have the configuration option to do so. also, the arrow keys to move at the bottom are backwards?

• I did not find anything in the software that felt difficult to use

• I did not find anything particularly difficult

• The need to close all SolidWorks tasks is a bit annoying.

• The UI had a few scaling issues with a smaller laptop screen (the buttons along the bottom of the screen were covered up by the windows start bar, and I had trouble finding the “back” button for a little bit). Additionally, the input boxes to modify gear parameters sometimes didn’t select the whole value when clicked, which was slightly annoying but only delayed my progress by a miniscule amount.

• Some of the technicalities, like making sure solidworks was completely closed and not pressing ok until the program had fully loaded. A USER STUDY SURVEY 118

• While the visual is useful, its hard to get a sense of scale from it

• The difficult part for me is getting the coordinates right

• Nothing.

• I was looking for a save button but I like that it autosaves

• Sometimes the transition from the program to solidworks was a bit finicky at times

• Inputting numbers on the x, y, and z plane were sometimes annoying to do. The zeros should disappear when clicked on.

• The inability to name the gears

• Nothing much, but loading into SolidWorks would sometimes be a pain

• The software was new, so it took time to familiarize myself with the software and remember all required steps to get through the unguided portion of the tutorial.

• I would have liked it if the back button after editing a gear shaft was a save button. As is I wasn’t sure upon clicking it if my work was going to be saved or not. Obviously the save box that comes up answers that but it would still be nice to have a save button

• Nothing really

• None

• Sometimes its hard to tell if you clicked on something as it doesn’t highlight or it would be hard to know if something was saved after you changed the properties of a gear set because there was no save button.

If you could change/add/remove anything in the software, what would it be?

• Maybe a minor change - a highlight for when selecting the gear set that is about to be edited. I figured it out right away, but at first clicked straight to “Edit” instead of selecting the “Gear Set 1” and then “Edit,” since that was the only set in the menu when starting. A USER STUDY SURVEY 119

• As I said above, I would have Solidworks work in the background while the user looks at a progress bar in the GearTrain software. This way, the user would know that Solidworks was generating the model, but they wouldn’t have to see a bunch of different screens pop up and disappear. This would also reduce the chance of error as the user would not have the opportunity to click something in Solidworks and disturb the software until the model is complete.

• Perhaps a way to save changes to the gears rather than saving upon hitting back, I was looking for a way to apply changes. It might also be helpful to be able to see the names of gears within each set from the set list.

• fix the arrow keys, add the feature to snap to a view like in solidworks (left right top bottom front back etc)

• I would allow for an easier and faster was to switch between editing gear sets, such as a tool on the header of the software window

• I would allow for an easier way to navigate between editing different gear sets

• I think the software is brilliant and I would love to see it be implemented in a feature-based cad program! If anything, having the program embedded into SolidWorks would definitely be a long-term goal, but the standalone UI was simple enough and very practical to transfer data over. Feature-wise, I would love to see more adjustments regarding shaft and bearing info, and maybe some parameters to adjust shaft and gear meshing tolerances, but most of these things are a convenience factor because the parts are added into SolidWorks as editable features and can be later modified by the user.

• Add a button that saves your gearset updates so there isn’t a popup every time you press back to update a new gearset.

• The minimum window size is annoying, as is the fact Solidworks has to be closed to generate the gear assembly. It would probably fit a realistic workflow better if it the window could be made arbitrarily small (to allow for other programs to be visible at the same time), and if the program was able to generate the Solidworks files without having to close out of Solidworks beforehand

• I think this is very good, but maybe the ability to add a motor and it generates the torque and gear ratio

• More Color A USER STUDY SURVEY 120

• I’d like to name the gears

• Easy access to gears from other sets, auto save changes to gears when switching between

• A save button after you change the gear properties. What is your favorite part about the software?

• It was a straightforward, simple input into the software that (magically) trans- lated over to a full Solidworks assembly file!

• The Auto Mesh feature

• I like the AutoMesh feature because it allows you to be imperfect in your placement of the gears.

• The fact that it generates the solidworks files, doing gears by hand in solidworks is a hassle.

• It was overall very easy to edit the gears themselves once you get to the gear and the Solidworks generation is fantastic

• I appreciate the user friendly design of the software

• easy to use, simple, straightforward, the 3d viewer is also nice, can’t imagine it without it

• The ability to convert the created gear boxes into SolidWorks models

• The ability to convert the gear boxes into SolidWorks

• The user interface is intuitive and looks pleasing.

• Clicking “Generate in SolidWorks” and watching it rapidly build an assem- bly that would have taken me quite some time to design from scratch. I was amazed! Also, I really liked how it built the parts internally using SolidWorks, because dealing with .step or .stl files is often very annoying. This program of- fers a great way to speed up the process of gear-train design without restricting the designer from adjusting what the program has made later on.

• How easily it transfers the numerical data into a fully functioning solidworks assembly. A USER STUDY SURVEY 121

• The auto mesh feature is simple to use and very convenient

• The ability to visualize your gear before sending it to SolidWorks

• The 3D viewer

• simple to use and updates the visual as I plug in values

• The simplicity to create complex trains

• Like mentioned above, but the 3D aspect of the gears was awesome.

• Soldiworks assembly generation

• It was easy to use overall

• I like that the 3D viewer updated as you changed the numerical values.

• The auto-meshing function was very neat to see.

• Watching it upload into solidworks

• Auto generation in Solidworks

• That I get a 3D visualization. Are there any additional comments or other feedback that you would like to give?

• This seems like a promising and incredible ! Nice work, and I look forward to seeing its completion!

• your unguided tutorial coordinates are wrong for gear d, not sure if this was intentional or not but i just did it according to the coordinates that were given

• The bounding box generated had an over defined sketch, so I am not sure what caused that.

• Great program that I am looking forward to see the bright future of!

• Just amazing job, this is really cool, i’m really impressed

• The second link to the unguided section would not open for me, so i just used the table to generate the new gear train A USER STUDY SURVEY 122

• I was unable to generate a model in solidworks. I made sure there were no solidworks programs running in the background before attempting but when I chose to generate the model in solidworks it was able to open solidworks but didn’t do anything further. This was using the elabs.wpi.edu remote desktop

A.2.2 D21 Study Note that the D21 and C21 study use the same survey questions, so see Appendix A.2.1.1 for the questions used in both studies.

A.2.2.1 Open Response Question Results What about the software did you find easy?

• The interface was simple and all the necessary functions, menus, and options were easy to find.

• It was very easy to change values, it felt very user-friendly in that regard

• Nothing was difficult to find, text boxes and all input fields were very clearly labeled.

• I found it easy to perform operations within the program, everything was clearly labeled and separated into organized groups.

• Shifting between each gear set and inputting gear dimensions was super easy and helpful.

• I liked that there were preset parameter which could be changed if needed. Definitely made things easier since there were no errors.

• The user interface

• I thought finding and navigating the different features was very easy. All of the gear options were clear and easy to see.

• It was an easy interface to work on with very little issue navigatig

• Everything i needed was right on the screen i was in

• It was easy to change the numbers for gears.

• its an easy “plug and play” A USER STUDY SURVEY 123

• Editing the gear data and adding additional gear sets

• Basically did everything for me. I had to do little effort

• Literally magic its so easy I like this a lot

• auto mesh

• There were few buttons, which made it easy to know what each one did

• Selecting the individual gears on each shaft, as well as modifying the informa- tion for each gear.

• I found it easy to change different filters of lengths, number of gear tooth, and other filters in the software. The buttons were all self explanatory.

• The layout was very simple and easy to navigate

• It is very simple to edit the data

• it was very user friendly and automatically did many of the difficult tasks such as automeshing

• It was pretty straightforward

• It was extremely easy to edit the gear sizes, add gears, etc.

• moving the gears about the cooridnates

• It was easy to edit the data and add new gear sets.

• The UI

• Editing the gears and being able to auto-mesh the gears

• It was easy to find things

• I found the automesh feature really easy and it was very clear what gear you were editing.

• Adding and modifying the shafts and gears

• Doesn’t show me any options or information that is overwhelming. It’s very simple A USER STUDY SURVEY 124

• Very User friendly, clearly labled.

• worked well, easy to use generally

• The interface was very simple and easy to understand

• Inputting different paramaters

• It was nice to be able to edit the gear properties and directly export the infor- mation in the app to the SolidWorks app

• I thought it was very easy to modify the gears and add now shafts.

• The auto mesh is a good feature

• the easy editing of the parameters and generated model in solidworks

• the way to access the other gears and their settings

• making the changes

• The auto-mesh feature was very nice to use. Made the process very simple and easy to follow

• It was easy to modify the gear data and generate the gears on solidworks

• Modifying the values

• This software was simple and very easy to navigate.

• the software was pretty intuitive if you had the guide.

• Input of the gear parameters ran very smoothly

• It was easy to go in and modify the dimensions of the gears

• modify data section is pretty good

• The way it was mapped out in the help document. It was very easy to follow step by step.

• Entering the data

• Yes it was very satisfying. A USER STUDY SURVEY 125

• UI is intuitive

• It was easy to automesh the gears and upload it to SolidWorks.

• The ui was functional

• I think the software was pretty easy to use

• It was very easy to input the data and have the program auto mesh the gears for me.

• It was easy to auto mesh and generate in solidworks

• The way it transfers to solidworks and the user-friendliness, I have absolutely zero experience with any of this and it was very easy to follow. also the fact that you don’t have to constantly worry about saving, you always know if you’re saving or not saving. What about the software did you find difficult?

• The gear options were a bit difficult to differentiate because they are all close together.

• The rotate feature to see if my gear configuration exactly matched the expected result was a little difficult to use and did not feel as fluid as SolidWorks

• I didn’t like how “gear sets” were a separate selection from the individual gears, a setup like this wouldn’t allow a user to have two gears driving a single gear (as is common in many FRC gearboxes for example).

• & of teeth shouldn’t be a dropdown, that was a little hard to use.

• I know they weren’t part of the study, but I couldn’t seem to figure out the “Analysis” boxes (possibly unimplemented as of yet)

• I don’t like the way you have to input x, y, and z. Gear 1 should exist at 0,0,0 and the meshing gear should have an angle relative to it from the horizontal axis. For gears on the same shaft, I just the spacing between them. This way x, y, and z are autocalculated based on angle and gear diameters. This avoids the problem of me needing to do trig to figure out where a gear should go, or the automesh moving my gears to places where I do not want them. You’ll notice my unguided gearbox is rather different to the one in the tutorial despite the fact I entered the provided values. A USER STUDY SURVEY 126

• I struggled with the unguided section, I was easily able to input the data and automesh the gears in the gear train program. It was difficult to send my stuff over to solid works without issue. my guided section worked but not my unguided. I was experiencing computer hardware issues seemingly, as my screen turned totally gray.

• I had some trouble transferring the data into Solidworks. I could not find the file to use as a location for the data. I did find it eventually, but that was the only part that took a little longer to complete.

• It was time consuming to highlight each parameter that had to be changed in order to enter a new number.

• I don’t think there was any difficult part of the software. I followed the tutorial and didn’t have any major issues. I did forget to shut down solidworks entirely and something was still running, which made the second generation not work, instead, what looked t=like a single gear part file was loaded. After making sure everything was shut down in task manager and generating again, it worked fine. I did it through the remote desktop and the longest part was waiting for the program to download, extract, and run for the first time.

• There was no save button.

• loading time

• When generating in SOLIDWORKS, the computer did not know which pro- gram it needed to open, so it tool me a while to locate solidworks for the program. But this issue could’ve been more user error than the program itself having an issue.

• wasn’t clear at first how to edit things

• It was a little confusing at first about how the gears were just generated

• It was confusing exporting to Solidworks and having to wait for it load before continuing.

• Putting in the numbers was a bit annoying when they were already filled out

• at first, I was confused on how to add the input shaft because I thought it would just generate that (not the gears and the shaft) A USER STUDY SURVEY 127

• It was unclear how to delete an accidentally added gear, and the performance on the preview was bad so it was hard to preview in the gear program before generating in solidworks

• It was difficult for me to export the second model to SolidWorks correctly. The model in Gear Box looked much different than the model that was generated in solidworks.

• The gears look like the bearings, so you can click on the gears but not the bearings. The color choice is also not the best, a higher contrast environment, and a color difference between the gears and bearings would be nice

• I could not get the solidworks file to generate. I followed the tutorial steps as well as the video steps, but it never loaded. It also never saved anything to the automated design/gear design output directory, even when I had all file types listed. Essentially, I made the design, clicked generate in solidworks, checked the box to add the crank shaft, waited to click “ok” until solidworks had fully loaded, but nothing happened and I couldn’t load the files from the folder as nothing was there.

• Locating Solidworks on my computer • Uploading to Solidworks, it took me like over half an hour both times trying to get the files to actually load in Solidworks

• I wish that when you click to edit a number it automatically highlights it all to make it easier.

• Understanding which gear shafts it would move in order to automesh the gears. • Figuring out the gear ratios • Cannot change all gears within the same screen • Not sure if this is on your end or wpi remote desktop, but solidworks was not working

• glitch where i didnt have anything opened and it says ’save changes to existing project’ when i try opening something. very finnicky, have to restart to generate to solidworks

• It was an inconvenience to make sure all of solidworks was closed in order to generate the two configurations in solidworks. A USER STUDY SURVEY 128

• It did not generate the gears in SolidWorks, despite opening SolidWorks. The pictures are from the tutorial, just to fill out the required field.

• I could not make the unguided test portion work. The file opened in the GearTrain App and I was able to add the second gear but the model could not export to SolidWorks no matter how many times I tried or waited. I am unsure if it is an internal error or some app difficulties. I have posted the completed design in the GearTrain app as a submission.

• Going from one set to another felt a little clunky

• understanding the additional info required to generate

• that i can’t make the screen small so i have to open and close the tab

• I was confused how the program chose which gears to auto-mesh together. When I was making the gears, it was hard to tell which was supposed to mesh with which others

• I needed to download solidworks because the remote desktop was sometimes unresponsive after generate the gears in solidworks. Once it was downloaded I found it easy to modify the gears

• exporting to solidworks but it was my own fault for not waiting until it fully opened.

• I just had trouble opening the unguided file at first, but I think that was more of a Windows issue than a software issue.

• maybe if there was a save changes button instead of clicking back to save

• Opening a the half way completed file over remote desktop was a little tricky. It wouldn’t allow me to open the file type with the gear software.

• It didn’t seem like the software flowed well, drawings could be clearer

• I have little experience with SolidWorks so navigating the software will propose some difficulties down the road.

• I found rotating the image to be difficult.

• I followed the instructions, even confirming that i had in fact done the correct thing with james scherik, and it still didn’t generate coherent solidworks files A USER STUDY SURVEY 129

• I found some of my values seemed to change after editing them when I would go back to view it a second time and I’m not sure why

• kind of insignificant, but I had trouble figuring out how to add the second gear set for gears C and D based on the tutorial, but even then it only took a couple minutes to play around with. If you could change/add/remove anything in the software, what would it be?

• Space out the gear options slightly.

• I work work on the rotation feature and make it smoother and easier to turn. Also maybe add an “add gear assembly” when working in another instead of having to go back out to the home window and manually add another assembly.

• Get rid of the concept of gear sets entirely, there should just be a single list of gears. Then through either checkboxes or an intuitive UI solution (like the Solidworks design ) a user can select which gears mesh with each other and which gears sit on the same axles.

• Please allow for multiple gears to drive one gear.

• As I mentioned in the “What about the software did you find difficult?” ques- tion, please change the way you set the gear position.

• Proper trackpad support for the viewer. (right click to pan instead of middle)

• Would love a feature where I could import a dxf or a 2d drawing of my gearbox. Back in FRC (sorry to keep bringing it up, just have a lot of experience with gearboxes from First) designing the gearbox was the easy part: You know where you want your motors, where you want your output shaft, what your desired drive ratio is, and what gears VEX.com sells. From there it’s just a puzzle of connecting things. What would be awesome is using this software as a tool to not only generate the internals (so I don’t need to hand place bearings, shafts, lock collars, and gears) but also to tool to do analyses on the gear train (to see if I might need to swap Aluminum gears for steel or change intermediate ratios or make any other changes to the gearbox).

• In the software, I would change the communication with solidworks, and per- haps try to use less processing power as solidworks already uses a lot of pro- cessing power on my computer. A USER STUDY SURVEY 130

• I’m not too familiar with gears, but I’m wondering if there is a reason why all the separate parts must pop up before the assembly is created. While it’s nice to see all the parts, maybe it would be less cluttered if only the final assembly pops up in SOLIDWORKS.

• Lots of the editing options in the gear menu were done by dropdown, for instance the shaft orientation and the number of teeth. This worked fine, but it could be nice to have the option to be able to type them in or use pulldown.

• Add a save button.

• Being able to automatically open solidworks without me needing to tell the software where it is located

• I cannot think of anything

• Can the gearbox generation software wait for Solidworks to finish loading in the background so that it can seemlessly generate the gear train? And also can the generation software the Solidworks processes if they are already running?

• I would edit the feature for transporting the file to solidworks and possibly make it easier or be able to open the solidworks file from solidworks directly.

• I would make it possible to edit gearsets by double clicking on the gearset

• I would not change anything, extremely easy to use.

• I would make it so that you can just click on a gear to select it, no matter what gear set you are in.

• I would add an option to save your file. The first time I had to create a new gear set, I wasn’t sure if clicking the back button would delete the work I had currently done. Alternatively, you could add an option to add another gear set directly on the page where you’re editing the currently selected gear set or an option to move between already created gear sets.

• Having to locate solidoworks

• Having a undo and redo button and I would add a preview if possible of what it would look like in solidworks before you generate it. A USER STUDY SURVEY 131

• Little tabs which give information about each property. ie: what different pressure angles and pitches will effect

• Just make it easier to generate the configurations into solidworks

• I feel the software is great and easy to use but for some reason exporting some files seem to stump SolidWorks from extracting them.

• There isn’t anything that I can think of that I would like to change.

• When trying to edit the systems, everytime you want to switch betwee sets you have to answer a popup, I feel like the pop up shouls only be there if you were going to delete and not just change onne variable.

• being able to make the screen smaller

• I think options for planetary gears/inverted gears would be cool.

• I liked the software and found it simple to follow

• Maybe just enhancing the visuals a bit

• As a beginning user of the software, there is nothing I would change about it.

• Edit “back” to something like “save” in the editing menu. It took me a little to realize that back would save my work and get me back to the main menu to add another gear stage.

• i may want to add teeth into the pictures

• I wouldn’t change anything

• Autofilling the information from previous gears would be nice.

• I has the gears in their correct positions and everything in Geartrain, and then they generated very differently in solidworks, the second time they didn’t generate at all

• The 3d viewer seemed inaccurate for the last gearset, it did not look the same in solidworks.

What is your favorite part about the software?

• It’s very clean A USER STUDY SURVEY 132

• How easy it was to edit the properties of the gears and add new gears.

• It was super easy to use and it took me no time at all for any needed feature of the gear assembly

• Exporting to SW in a single click, no gear generator I’ve used packages gear- boxes so neatly!

• my favorite part about the software was the inviting user interface, it was fast to open up and it was quick and efficient until it had to communicate to solidworks

• I enjoyed the auto mesh gears button which allowed the entire gear configura- tion to come together and work as it should.

• It looks very fun and useful! I enjoyed seeing all the parts come together in SOLIDWORKS.

• Auto Mesh Gears

• I was surprised by how easy this was to use. It worked pretty conveniently and the generation into SolidWorks was smooth and cool. I’m not super familiar with other gear generation options, but I could see myself using this.

• I like watching the gears change as I changed data, it was good to have the visual to check in case I mistyped.

• how easy it is generated in solidworks

• The 3D viewing element was beneficial for 3D visualization.

• Easy to use and convert to solidworks

• Once I got it all set up, I found the software very easy to navigate and very intuitive! I was able to complete the unguided design task in like 2 minutes. So once I got the hang of the software, it was very quick and easy to use.

• The 3D viewer and the fact it builds everything in solid works for me

• Huge process made in clicks, cad magic is awesome

• how easy it made the assembly in solidworks

• It was really easy to convert the model to a Solidworks file A USER STUDY SURVEY 133

• Seeing the transformation of the gear train from the generation software to Solidworks.

• My favorite part of the software is that is self explanatory and any one would be able to use it.

• The name is nice

• The auto mesh is a great feature but then it disregards multiple coordinates originally inputted into the table.

• very easy to edit properties

• The Solidworks generation is really awesome, especially how it automatically mates everything in addition to the parts.

• How models can be exported to solidworks.

• The auto mesh gears was so satisfying, best part.

• I would have really liked the option to export directly to solidworks, had I been able to get that to work.

• simplicity

• Editing the gears and and being able to auto-mesh the gears

• Visual elements

• That it automatically creates a working CAD assembly as well as all the parts

• The transformation of it to solidworks

• Instant 3D modeling

• Very easy to navigate

• generally easy to use and helpful

• It was very easy to understand and learn how to use

• GUI Ease

• How easy it is to manipulate and change the gear properties A USER STUDY SURVEY 134

• I liked how easily it was able to generate the geartrain in solidworks.

• making gearboxes manually sucks so this is very nice

• this is going to make many projects much easier, than to make or find the right parts and assemble them

• Very fast and easy to use I liked the auto alignment

• it is really easy to use and make the

• Was super easy to use. No bugs or major confusion

• My favorite part was the 3D viewer because you can easily modify the gears and see the design in the viewer and easily generate it in solidworks.

• The ease of use

• This software was engaging and quite interesting. I had a lot of fun even though it was very straightforward. I can ultimately credit this enjoyment to the SolidWorks simulation after I edited the gear properties.

• it is simple to use and integrated really well with solidworks

• The visualization made it very easy to see any input errors.

• All dimensions of the gear are in one place, easy to change desired data

• the 3d view

• The visuals it gives. It makes it easier to imagine the model.

• Definitely the 3D viewer

• The easy way of changing the parameters of the gears and the auto mesh feature.

• auto-mesh feature, 3D visualization

• Probably having a 3d visual.

• the 3d viewer

• It was very interesting to see the gears I made be generated A USER STUDY SURVEY 135

• the 3d viewer really helped me get an idea of what I would get.

• I definitely liked the 3D viewer because it is hard to visualize as a beginner

• how straightforward it is! If I want to make a gearbox, simple or complicated, beginner level or not, I know exactly how B USER STUDY TUTORIAL DOCUMENTS 136

B User Study Tutorial Documents

B.1 A20 Study The complete tutorial for the A20 study is included below. This is the tutorial docu- ment that was given to the study participants as explained in Chapter 7. B USER STUDY TUTORIAL DOCUMENTS 137 Automated Gear Design

Getting Started: 1. Please use Remote Desktop Connection and connect to elabs.wpi.edu ​ 2. This program works with SolidWorks 2020

Step 0: Survey 1. Before starting the tutorial, please go http://bit.ly/GearGenTest-1 and complete ​ ​ the pre-survey. This will ask some basic questions about you like your major and your experience with gears. Please fill out your WPI email address so that we can link your results. a. The survey will ask you to enter a code. The code is generated as follows: ______1 2 3 4 5 6

1: Middle initial 2: First letter of your mother’s first name 3: First letter of your father’s first name 4 and 5: Your two-digit birth month 6: The number of older siblings you have

(use 0 for any unknown values)

Step 1: Download and Install 1. Go to http://tiny.cc/GearGenProg and download the zip file. ​ ​ 2. Once downloaded, extract the contents of the zip file into a folder. 3. Then, click on the SW Gear Generation GUI.exe file. B USER STUDY TUTORIAL DOCUMENTS 138 4. You will see a notice shown below:

Click on “More Info” and then Select “Run Anyway.” You will see the following screen.

Step 2: Design Gearbox 1. You will be designing the following gearbox. B USER STUDY TUTORIAL DOCUMENTS 139

a. Gear Information Gear Type Pitch # of Orient (X, Y, Shaft Bore Face Teeth ation Z) Diame Width ter

A Spur 48 12 Z 0, Shaft 0.125 0.125 0, 1 1.45

B 56 Z 0.72, Shaft 0.125 0.125 0, 2 2.93

C Spur 48 24 Z 0.72, Shaft 0.125 0.25 0, 2 2.93

D 48 Z 0.72, Shaft 0.125 0.25 -0.75, 3 2.93

b. With the program open, click where it says “Click Anywhere to Start New Gearbox” and the gear information will appear: B USER STUDY TUTORIAL DOCUMENTS 140

c. Using the information in the tables above, fill in the information for each gear set. Gears A+B are GearSet 1 and C+D are GearSet 2. d. GearSet 1 should look like this:

B USER STUDY TUTORIAL DOCUMENTS 141 e. To add another gear-set, click on the “Click to Add Gear Set” button. GearSet 2 should look like this:

f. Press “Auto Mesh Gears” at the top right so that the distances between the gears are automatically calculated to adjust the positioning, if needed. g. Once all this information is put in, press “Generate in Solidworks”. h. Select your output folder. i. A menu will pop up asking to specify additional options. For this tutorial, you will press “Input Shaft Crank”, which will tell SolidWorks to add a crank to the input shaft. j. Click “Generate” and SolidWorks will open. Once it is fully open, go back to the gearbox design software and indicate that SolidWorks is open (there will be a popup saying “Press OK once SolidWorks has loaded”. Once you press OK, SolidWorks will start generating the gearbox. k. Once SolidWorks is done, please take a screenshot of your resulting gearbox (to be uploaded in the survey in the next step).

Step 3: Survey 1. Once you have completed the task, please go http://bit.ly/GearGenTest-2 and fill ​ ​ out the post survey. This survey will ask questions about your experience using the software and whether you have any feedback about the program. B USER STUDY TUTORIAL DOCUMENTS 142

B.2 C21 and D21 study The complete tutorial for the C21 and D21 studies is included below. This is the tutorial document that was given to the study participants as explained in Chap- ter 7. B USER STUDY TUTORIAL DOCUMENTS 143 Automated Gear Design

If you have SolidWorks 2020 installed on your computer, skip to Step 0.

Getting Started: 1. Please use a remote desktop application and connect to elabs.wpi.edu using your WPI email and password. a. Windows instructions: The WPI Hub | Article | Connecting To The Windows Terminal Servers Using Windows b. Mac instructions: The WPI Hub | Article | Connecting To The Windows Terminal Servers Using Macos 2. This program works with SolidWorks 2020 only.

Step 0: Survey 1. Before continuing, please go to http://tiny.cc/GearConv-Pre and complete the pre-survey. This will ask some basic questions about you like your major and your experience with gears.

Step 1: Download and Install 1. Go to http://tiny.cc/GearTrain_x64_20210311 and download the zip file. 2. Once downloaded, extract the contents of the zip file into a folder. 3. Then, click on the GearTrain.exe file. If you have application extensions hidden, it will just show as GearTrain. B USER STUDY TUTORIAL DOCUMENTS 144 4. You will see a notice shown below:

Click on “More Info” and then Select “Run Anyway.” You will see the following screen. Note: Due to ongoing development, screenshots may look slightly different than the actual program. B USER STUDY TUTORIAL DOCUMENTS 145 Step 2: Guided Design of a Gearbox 1. You will be designing the following gearbox.

a. With the program open, create a new design and you will see the screen update to the one below:

b. Using the information in the table below, edit each gear set in the following steps. Gears A and B are in GearSet 1 and Gears C and D are in GearSet 2. B USER STUDY TUTORIAL DOCUMENTS 146 Gearset Gear (X, Y, Z) Orientation Shaft Num of Bore Face Teeth Diameter Width

1 A 0, Z Shaft 1 12 0.125 0.125 0, 1.45

B 0.72, Z Shaft 2 56 0.125 0.125 0, 2.93

2 C 0.72, Z Shaft 2 24 0.125 0.25 0, 2.93

D 0.72, Z Shaft 3 48 0.125 0.25 -0.75, 2.93

i. Note: If a property is in the program but is not in the table above, please do not modify it (e.g., “Pitch”). c. First Edit the gear set 1 to match the table. It should look like this

d. Now you will add the second gearset. Go back and add another gear set. It should be called “Gear Set 2” e. Edit GearSet 2 and fill in the data from the table B USER STUDY TUTORIAL DOCUMENTS 147 Gearset Gear (X, Y, Z) Orientation Shaft Num of Bore Face Teeth Diameter Width

1 A 0, Z Shaft 1 12 0.125 0.125 0, 1.45

B 0.72, Z Shaft 2 56 0.125 0.125 0, 2.93

2 C 0.72, Z Shaft 2 24 0.125 0.25 0, 2.93

D 0.72, Z Shaft 3 48 0.125 0.25 -0.75, 2.93

f. Click on Auto Mesh Gears. Auto mesh will adjust the gear positions so that the gears are touching each other. Now your design should look like this:

g. With gears automeshed, click on “Generate in SolidWorks”. i. If a window appears asking you to specify the location of the SolidWorks executable, the file should be located in “C:\Program B USER STUDY TUTORIAL DOCUMENTS 148 Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe”. If it is not there, please select where your SOLIDWORKS was installed. ii. There are sometimes problems generating if SolidWorks is already open. For this tutorial, please ensure any SolidWorks application is fully closed before generating (including any background tasks using Task Manager).

h. A menu will pop up asking to specify additional options. Select to have an input shaft crank i. The program will open SolidWorks and a popup will appear. Please press “OK” once SolidWorks has finished loading (i.e. when the splash screen is gone and the editor is open). Depending on the computer, SolidWorks may take a long time to open. i. Note: If SolidWorks creates any popups, make sure you close them otherwise SolidWorks will never open. Do not close the popup titled “Waiting for SolidWorks to Start” until SolidWorks is fully loaded and looks like this: B USER STUDY TUTORIAL DOCUMENTS 149

j. Once SolidWorks is done generating, please take a screenshot of your resulting gearbox (Windows+PrtSc, Snipping Tool, etc) to be uploaded in the survey once the tutorial is complete (“Please upload a screenshot of your resulting design from SolidWorks (guided design).”). The final design should look like this: i. By default, the files generated by SolidWorks for each part (gear, bearing, shaft) are located in your documents folder (C:\Users\\Documents\Automated Design\Gear Design Output). You can access this folder by selecting File → Open output directory. B USER STUDY TUTORIAL DOCUMENTS 150 Step 3: Unguided Design of a Gearbox Before starting this section, please ensure SolidWorks is completely closed as before.

After you have finished with the previous gear train, you will finish an incomplete one. This gear train will have two gear sets, one of which is complete and the other one is missing. Using the data in the table below, complete the gear train.

This section will be mostly unguided. If you need help with anything, please consult the help website https://alancuriel.github.io/GearTrainWebsite/ (in progress). You can access this website directly or click on the “Help” button in the program.

1. Download the partially completed gear train here: http://tiny.cc/GearDesign_Incomplete. With it downloaded to your computer, open the file in the software. 2. The data for the entire gear train that you are designing is here:

Gearset Gear (X, Y, Z) Orientation Shaft Num of Bore Face Teeth Diameter Width

1 A 0, X Shaft 1 48 0.125 0.33 0, 0

B 0, X Shaft 2 24 0.125 0.25 0.667, 0.5

2 C -0.75, X Shaft 2 24 0.125 0.25 0.667, 0.5

D -0.75, X Shaft 3 16 0.125 0.33 -0.125, 1 B USER STUDY TUTORIAL DOCUMENTS 151 3. Using the information in the table above, create the second gear set and generate the design in SolidWorks. Include an input shaft crank for this design.Your design in SolidWorks should look like this:

4. Please take a screenshot of your completed design in SolidWorks to upload in the following survey (“Please upload a screenshot of your resulting design from SolidWorks (unguided design).”).

Step 4: Survey 1. Once you have completed the task, please go http://tiny.cc/GearConv-Post and fill out the post survey. This survey will ask questions about your experience using the software and whether you have any feedback about the program. You will also upload the screenshots that you took of each design.