As an engineer specializing in mechanical transmission systems, I have always been fascinated by the elegance and efficiency of the harmonic drive gear. Emerging in the late 1950s alongside advancements in aerospace technology, this unique mechanism offers a compelling set of advantages for precision applications. My work focuses on streamlining its design process through modern digital tools. A harmonic drive gear, at its core, is deceptively simple, consisting of only three primary components: a flexible spline (Flexspline), a circular spline, and a wave generator. Despite this simplicity, the performance, longevity, and compactness of a harmonic drive gear assembly are governed by a multitude of interlinked geometric and material parameters. Manual, iterative design of these components is time-consuming and prone to error. Therefore, implementing a robust parametric design system is crucial for enhancing design efficiency, ensuring quality, and significantly shortening product development cycles for custom harmonic drive gear solutions.

The fundamental operating principle of a harmonic drive gear relies on controlled elastic deformation. The wave generator, typically an elliptical bearing assembly, is inserted into the Flexspline, causing its thin-walled cup to deflect into an elliptical shape. This deformation engages the teeth of the Flexspline with those of the rigid circular spline at two diametrically opposite regions of the major axis. As the wave generator rotates, the engagement points move, creating a relative motion between the two splines. Due to the difference in the number of teeth between the Flexspline and the circular spline—usually by two teeth—one full revolution of the wave generator results in a very small relative rotation between the splines, producing high reduction ratios in a single stage. This principle is what gives the harmonic drive gear its exceptional characteristics: high torque capacity, zero-backlash operation, and compact size.
| Feature | Advantage | Typical Application |
|---|---|---|
| High Single-Stage Reduction Ratio | Compact design, high torque density | Robotic joints, aerospace actuators |
| Precision and Near-Zero Backlash | Accurate positional control | Optical instrumentation, radar positioning |
| Coaxial Input/Output Shafts | Simplified system architecture | Spacecraft mechanisms, machine tools |
| High Efficiency in Compact Size | Energy efficient, lightweight | Medical devices, portable equipment |
Core Philosophy of the Parametric Development System
My approach to creating a design automation tool for harmonic drive gears was centered on integrating seamlessly within a professional CAD environment. Unigraphics NX (UG), with its powerful open architecture, was chosen as the platform. The goal was to create an intuitive interface where a designer could input fundamental performance requirements—such as transmission ratio, output torque, and space constraints—and automatically generate accurate 3D models of the Flexspline, circular spline, and wave generator. The system needed to handle the complex calculations for tooth geometry, stress-related deformations, and component sizing, then directly translate these results into a solid model. This eliminates manual calculation errors and ensures the digital prototype is born from correct engineering principles, forming a perfect basis for subsequent finite element analysis (FEA) and manufacturing.
Critical Parameter Design for Harmonic Drive Gear Components
The heart of the parametric system lies in its algorithms for determining the key dimensions of each harmonic drive gear component. These parameters are deeply interdependent; a change in one necessitates recalculation of several others.
Flexspline: The Critical Elastic Element
The Flexspline is the most complex and critical component in a harmonic drive gear. It must be rigid enough to transmit torque through its teeth, yet flexible enough to endure continuous elastic deformation without fatigue failure. Its design is split into two main aspects: the gear geometry and the cup structural geometry.
1. Gear Geometry Parameters: The tooth profile on the Flexspline is typically based on an involute curve with a pressure angle (e.g., 20°). Key dimensions are derived from the module (\(m\)) and the number of teeth (\(z_f\)). The fundamental design parameter is the wave generator’s elliptical deformation, quantified as the radial deformation (\(w_0\)) of the Flexspline’s neutral curve.
- Flexspline Pitch Diameter: $$ d_f = m \cdot z_f $$
- Nominal Radial Deformation: This is a function of the module and a deformation coefficient. $$ w_0 = k_m \cdot m $$ where \(k_m\) is typically around 0.8 – 1.2.
- Circular Spline Tooth Count: $$ z_c = z_f + 2 $$
- Transmission Ratio: For the standard configuration, the reduction ratio \(i\) is given by: $$ i = -\frac{z_f}{z_c – z_f} = -\frac{z_f}{2} $$ The negative sign indicates direction reversal.
2. Cup Structural Parameters: These dimensions ensure the Flexspline cup can withstand the bending stresses from the wave generator and the torsional load.
- Cup Wall Thickness (\(\delta\)): Critical for stress and deformation. An initial estimate is a fraction of the module. $$ \delta \approx (0.01 \sim 0.025) d_f $$
- Cup Length (\(L\)): Must be sufficient for the engagement length and stress distribution.
- Inner Diameter, Flange Thickness, and Edge Widths are determined based on connection and strength requirements.
Circular Spline and Wave Generator
The circular spline is a rigid internal gear. Its primary parameter is the tooth number (\(z_c\)) and the corresponding pitch diameter (\(d_c = m \cdot z_c\)). Its profile is conjugate to the deformed Flexspline tooth profile, which often requires a small profile shift or a dedicated “conjugation” calculation to ensure smooth meshing at the major axis positions.
The wave generator’s major design parameter is its elliptical contour, defined to produce the required radial deformation \(w_0\) in the Flexspline. For a cam-based wave generator, this is the controlled profile. For a bearing-based generator, the major axis length (\(D_{major}\)) and minor axis length (\(D_{minor}\)) are key:
$$ D_{major} = d_f + 2w_0 – \delta $$
$$ D_{minor} = d_f – \delta $$
The exact relationship ensures proper preload and meshing.
| Component | Key Design Parameters | Governing Equations/Relationships |
|---|---|---|
| Flexspline (Gear) | Tooth count (\(z_f\)), Module (\(m\)), Deformation (\(w_0\)), Pressure angle (\(\alpha\)) | \(d_f = m \cdot z_f\), \(w_0 = k_m \cdot m\), \(z_c = z_f + 2\) |
| Flexspline (Cup) | Wall thickness (\(\delta\)), Cup length (\(L\)), Inner diameter | \(\delta \propto d_f\), \(L\) based on engagement and stress |
| Circular Spline | Tooth count (\(z_c\)), Profile shift coefficient (\(x_c\)) | \(d_c = m \cdot z_c\), Profile conjugate to deformed Flexspline |
| Wave Generator | Major/Minor axis dimensions, Bearing size | \(D_{major} = d_f + 2w_0 – \delta\), \(D_{minor} = d_f – \delta\) |
Implementation via UG Secondary Development
UG provides a comprehensive suite of tools for secondary development, known as UG/Open. For this harmonic drive gear system, I employed a hybrid method using UG/Open API (a C-language function library) in conjunction with Visual C++ for robust logic and calculation handling. This method is ideal for complex, calculation-intensive components like the harmonic drive gear.
Development Environment Setup
The first step is to configure the development environment within UG:
- Ensure UG is installed with the
ugopenandugopenppmodules. - Create a dedicated user directory (e.g.,
D:\UG_HARMONIC). - Within this directory, create two subfolders:
startupandapplication. - Set the system environment variable
UGII_USER_DIRto point to the user directory (D:\UG_HARMONIC). This allows UG to automatically load custom menus and applications on startup.
Development Workflow Architecture
The development follows a structured workflow:
- Menu Creation (MenuScript): A custom menu is added to the UG gateway menu bar. This menu contains items like “Harmonic Gear Design” and “Build Flexspline.”
- Dialog Creation (UIStyler): Interactive dialog boxes are built to capture user input (e.g., torque, ratio, module).
- Application Logic (UG/Open API & VC++): Callback functions linked to the dialog buttons are written in VC++. These functions:
- Retrieve input values from the dialog.
- Perform all necessary design calculations for the harmonic drive gear.
- Call UG/Open API functions to create geometric features (sketches, extrusions, bores) programmatically, building the 3D model.
- Compilation & Linking: The C++ code is compiled into a Dynamic Link Library (DLL).
- Registration: Menu and dialog files (.men, .dlg) are placed in the
startupfolder, and the DLL is placed in theapplicationfolder. UG loads them automatically.
| UG/Open Module | Purpose | File Type |
|---|---|---|
| MenuScript | Creates custom menu structure in UG interface | .men |
| UIStyler | Creates custom dialog boxes for user input | .dlg |
| API (C/C++) | Provides functions for geometry creation, object inquiry, UI interaction | .cpp, .h, .dll |
Key Technical Implementation Details
1. Creating the User Interface:
The menu is defined using a simple MenuScript text file. For example:
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
TOP_MENU
CASCADE_BUTTON HARMONIC_DESIGN
LABEL Harmonic Drive Gear Design
END_OF_TOP_MENU
MENU HARMONIC_DESIGN
BUTTON FLEXSPLINE_DLG
LABEL Design Parameters...
ACTIONS harmonic_params.dlg
END_OF_MENU
This script adds a top-level menu “Harmonic Drive Gear Design” with a sub-option that opens a parameters dialog.
2. Dialog Creation and Callbacks:
The UIStyler tool is used to visually design a dialog with real and integer input fields, buttons, and labels. Each control (like an “OK” button) is assigned a callback name. In the associated C++ code, a structure maps these callback names to specific C functions. For instance, the “OK” button’s callback function OK_cb is triggered when clicked. This function gathers all data from the dialog controls using UF_STYLER_ask_value functions, validates it, and then passes it to the core calculation and modeling routine.
3. The Core Calculation and Modeling Function:
This is the computational engine for the harmonic drive gear. A simplified pseudocode structure for the Flexspline calculation is shown below, highlighting the logic flow and key formulas implemented in C++.
int calculateFlexsplineParams(double torque_T2, int ratio_i, double module_m, ...)
{
// 1. Determine Flexspline tooth count from ratio
int z_flex = 2 * ratio_i;
// 2. Calculate preliminary pitch diameter
double d_pitch = module_m * z_flex;
// 3. Calculate required radial deformation (w0)
double w0 = 1.0 * module_m; // Using km = 1.0
// 4. Estimate cup wall thickness based on torque and material stress
double sigma_allowable = 300.0; // Example material yield stress (MPa)
double K_stress = 2.5; // Empirical stress concentration factor
// Simplified torque-based wall thickness estimation for the thin-walled cylinder:
double tau = (2 * torque_T2 * 1000) / (M_PI * pow(d_pitch, 2) * sigma_allowable / K_stress);
double wall_thickness_est = tau * d_pitch / 2;
// 5. Finalize dimensions with safety factors and standard checks
if (wall_thickness_est < 0.01 * d_pitch) wall_thickness_est = 0.01 * d_pitch;
if (wall_thickness_est > 0.025 * d_pitch) wall_thickness_est = 0.025 * d_pitch;
// 6. Calculate other gear dimensions
double addendum = 1.0 * module_m;
double dedendum = 1.25 * module_m;
double d_addendum = d_pitch + 2 * addendum;
double d_dedendum = d_pitch - 2 * dedendum;
// 7. Store all calculated parameters in a global structure for the modeling function
flexParams.z = z_flex;
flexParams.d_pitch = d_pitch;
flexParams.w0 = w0;
flexParams.wall_thickness = wall_thickness_est;
flexParams.d_addendum = d_addendum;
flexParams.d_dedendum = d_dedendum;
// ... etc.
return 0; // Success
}
4. Program Structure and UG Connection:
The entry point for any UG/Open API application is the ufsta function. It initializes the connection to UG, sets up the action table to link menu/dialog items to our C++ functions, and then terminates. The initialization and termination are handled by UF_initialize() and UF_terminate(). Modeling functions use UG/Open API calls like UF_MODL_create_cylinder1 to create features, UF_CURVE_create_arc to sketch tooth profiles, and UF_MODL_create_extrusion to generate solids.
| Callback Function Type | Typical Actions |
|---|---|
| Constructor | Initializes dialog memory, sets default values. |
| OK Button Callback | Reads all dialog inputs, calls calculation function, calls 3D modeling function, closes dialog. |
| Apply Button Callback | Similar to OK, but keeps the dialog open for further changes. |
| Cancel Button Callback | Cleans up memory and closes the dialog without action. |
System Output and Results
When the system is run, the designer navigates to the custom Harmonic Drive Gear Design menu. Selecting Design Parameters… opens the main input dialog. Upon entering the basic requirements (torque, ratio, module, material) and clicking OK, a secondary dialog may appear to select which component to model (e.g., Flexspline, Circular Spline, Wave Generator). Choosing “Build Flexspline” triggers the background calculations and immediately generates a fully-parametric 3D solid model of the Flexspline within the UG modeling environment. The model is built from the calculated dimensions: the cup thickness, length, inner diameter, and the precise involute tooth profile on the rim. Similarly, the circular spline and wave generator can be generated, resulting in a complete, digitally assembled harmonic drive gear transmission. All key calculated parameters, such as final tooth counts, diameters, and wall thickness, can also be output to an information window for review.
Conclusion and Future Perspectives
Implementing a parametric design system for harmonic drive gears through UG secondary development represents a significant leap in engineering efficiency. The system encapsulates complex design knowledge and calculations into an easy-to-use interface, drastically reducing the time from concept to digital prototype. The generated 3D models are not just shapes; they are direct embodiments of sound mechanical design principles for the harmonic drive gear. This forms a perfect foundation for the next critical stages of development. The parametric model can be instantly fed into integrated FEA software to verify stress levels and fatigue life under load, or into computational fluid dynamics (CFD) software for thermal analysis. Furthermore, the model can be used to generate CNC toolpaths for manufacturing or to create detailed 2D drawings. This seamless integration from parametric input to analysis and manufacturing preparation underscores the power of combining specialized engineering knowledge with advanced CAD customization tools. The methodology is not limited to harmonic drive gears but can be adapted for any complex, parameter-driven mechanical system, paving the way for more automated, intelligent, and reliable mechanical design processes.
