Spiral bevel gears carry motion and torque between intersecting or offset axes, and their contact condition is highly sensitive to shaft deflection, bearing compliance, assembly position, and tooth-surface geometry. A simulation tool for such a transmission therefore has to keep four representations consistent: the topological connection of shafts and gears, the three-dimensional component geometry, the mechanical model used for load analysis, and the visual display of deformations and tooth contact. When these representations are built separately in general-purpose CAD and CAE software, the workflow becomes long and fragmented. Commercial gear packages such as Romax, Masta, and KISSsoft provide interactive visualization, but their internal data models and rendering methods are not publicly documented. The architecture described here links graph-based topology, object-oriented parameter storage, VTK geometry construction, beam-based shaft analysis, and loaded tooth contact analysis within one data framework.
Topology as the Backbone of the Data Model
A spiral bevel gear transmission can be represented as a set of shaft assemblies connected by gear pairs. Each shaft assembly contains a shaft, one or more gears, bearings, and an external load. The gear pair is the connection between two shaft assemblies. This structure is naturally hierarchical: a system contains shaft-system objects; a shaft-system object contains shaft, gear, bearing, and load objects; and a gear-pair object stores the relationship between a pinion and its mating wheel. Material properties, geometric parameters, mounting positions, and load data are attached to the corresponding objects rather than being scattered across separate input files.
Graph theory provides a compact way to describe the connections. For an input shaft assembly with five nodes—input shaft \(a\), bearing 1 \(b\), bearing 2 \(c\), pinion \(d\), and input torque \(e\)—the adjacency matrix is
$$A_1=\begin{bmatrix}
0&1&1&1&1\\
1&0&0&0&0\\
1&0&0&0&0\\
1&0&0&0&0\\
1&0&0&0&0
\end{bmatrix}$$
A value of 1 indicates a connection; a value of 0 indicates no direct connection. The matrix immediately shows that the input shaft is connected to both bearings, the pinion, and the torque input, while the bearings and pinion are connected only through the shaft. A separate gear-pair adjacency matrix records the mesh between the pinion on one shaft system and the wheel on another.
For a multi-stage train, the shaft adjacency matrices are placed along the diagonal and the gear-pair matrices occupy the off-diagonal blocks:
$$A_{\mathrm{sys}}=\begin{bmatrix}
A_1 & B_{12} & 0 & \cdots & 0\\
B_{12}^{\mathrm T} & A_2 & B_{23} & \cdots & 0\\
0 & B_{23}^{\mathrm T} & A_3 & \cdots & 0\\
\vdots & \vdots & \vdots & \ddots & B_{n-1,n}\\
0 & 0 & 0 & B_{n-1,n}^{\mathrm T} & A_n
\end{bmatrix}$$
Here, \(B_{ij}\) is nonzero only at the row and column corresponding to the mating gear pair. The resulting block-sparse structure supports fast traversal: reading one row identifies every component directly connected to that component, and repeated traversal retrieves the parameter path needed for modeling or analysis. The adjacency matrix is therefore not merely a descriptive diagram; it is the control structure that assigns parameters to the geometry and analysis objects at each level of the assembly.
Geometry Construction and Assembly with VTK
VTK, the Visualization Toolkit, is an open-source, cross-platform, object-oriented library for computer graphics, image processing, and scientific visualization. Its execution model separates data generation, data filtering, mapping to graphics primitives, and rendering. This separation is useful for a gear transmission tool because the same point and cell data can be generated from engineering parameters, processed for display, and later assigned scalar results such as contact stress.
Shafts and bearings are bodies of revolution, so their geometry can be generated by rotational extrusion. A shaft is stored as a sequence of segments, each with length \(L_i\), outer diameter \(D_i\), and inner diameter \(d_i\). Starting from the left end face, the four corner points of each rectangular axial section are defined, and vtkRotationalExtrusionFilter revolves the section to form a shaft segment. Concatenating all segments produces the complete shaft. Hollow sections are represented by the inner diameter, so the bore is generated in the same operation rather than by a separate Boolean subtraction.
An angular-contact ball bearing is treated as four parts: inner ring, outer ring, rolling elements, and cage. The input parameters include bore diameter \(d\), outer diameter \(D\), width \(B\), and contact angle \(\alpha\). Parametric expressions derive the inner- and outer-ring section profiles from these values; the profiles are then revolved into regular point sets. The balls are created with vtkSphereSource and duplicated in a circular array. Because the ring profiles and ball positions are defined in one coordinate system, the rolling-element locations remain consistent with the ring raceway geometry.
The spiral bevel gear is the most demanding component because its flanks are complex free-form surfaces. A gear object stores blank parameters, cutter parameters, machine settings, and geometric data. A regular grid is defined on the tooth surface in the topological parameter domain and mapped through the meshing equations to obtain theoretical surface points. In the implemented example, the grid uses \(M=67\) points along the face width and \(N=101\) points along the tooth height, giving \(67\times101=6767\) points per flank. Each grid cell is split into two triangles. The two flanks, toe and heel end faces, and tip and root surfaces form six patches for a single tooth. The points are stored in vtkPoints, the triangles in vtkCellArray, and the combined topology in vtkPolyData. A circular array of the single-tooth model, followed by a hub model, produces the complete gear.

Assembly uses homogeneous coordinate transformations. The shaft coordinate system is the reference for each shaft assembly. A gear mounted at axial position \(S_j\) and rotated about the shaft axis by angle \(\beta\) is transformed as
$$V_g^{(s)}(i)=T(S_j)\,R_{Y1}(\beta)\,V_g^{(g)}(i)$$
where \(V_g^{(g)}(i)\) is the point set in the gear coordinate system, \(V_g^{(s)}(i)\) is the point set in the shaft coordinate system, \(T(S_j)\) is the axial translation, and \(R_{Y1}(\beta)\) is the rotation about the shaft axis. Bearings are oriented by a 180° rotation about the transverse axis when required and then translated to their seat positions. The same procedure applies to the other components.
At the system level, the gearbox coordinate system becomes the reference. The input shaft assembly is placed first, and the output shaft position is derived from the mounting condition of the spiral bevel gear pair. The transformation is
$$V_{ss}^{(box)}(i)=T(t_x,t_y,t_z)\,R(\theta)\,V_{ss}^{(s)}(i)$$
where \(V_{ss}^{(s)}(i)\) is the shaft-system point set in its own coordinate system, \(V_{ss}^{(box)}(i)\) is the point set in the gearbox system, \(R(\theta)\) is the orthogonal rotation matrix, and \(t_x,t_y,t_z\) are translation components. The result is a complete transmission assembly whose component positions are consistent with the topology and parameter data.
From the Geometric Model to a Beam-Based Mechanical Model
The shaft system is also the basic unit of the mechanical model. Beam-element nodes are placed at section changes, bearing seats, gear mounting positions, load application points, and boundary-condition locations. For a hollow shaft, additional nodes are placed at the ends of internal bore segments. This node layout ensures that the beam model resolves the locations where stiffness, mass, or load changes, without meshing the full three-dimensional shaft volume.
Each adjacent node pair forms a beam element. The element stiffness matrices are expanded into global coordinates and assembled at shared nodes. Bearing stiffness matrices are added at the bearing nodes to represent the support condition. After assembly, the global stiffness relation is
$$K=\sum_{e=1}^{n_e}K_e+\sum_{b=1}^{n_b}K_b$$
$$[\delta_1,\delta_2,\ldots,\delta_n]^{\mathrm T}=K^{-1}[F_1,F_2,\ldots,F_n]^{\mathrm T}$$
where \(K_e\) is a beam-element stiffness matrix in global coordinates, \(K_b\) is a bearing stiffness matrix, \(\delta_i\) contains the six displacement components at node \(i\), and \(F_i\) contains the corresponding external loads. For the input shaft, the applied torque \(T\) and the gear geometry determine the mesh force \(F\), which is distributed to the appropriate node. The output shaft is treated in the same way. Because the geometry, assembly position, bearing data, and load all come from the same object model, the beam model is not rebuilt from a separate set of inputs; it is a mechanical interpretation of the existing transmission data.
Loaded Contact Analysis and Stress Visualization
Shaft deflection changes the relative position of the pinion and wheel. From the nodal displacements at the gear mounting positions, the relative displacement components at the crossing point are obtained: \(\Delta P\) along the pinion axis, \(\Delta W\) along the wheel axis, \(\Delta E\) along the offset direction, and \(\Delta\Sigma\) as the relative angular displacement about the shaft angle. These components define the mesh misalignment used in loaded tooth contact analysis.
The contact path is calculated on the conjugate difference surface. Along that path, each contact position is evaluated with a slice-based tooth stiffness model. Single-tooth stiffness is obtained from a series–parallel combination of slices, and multi-tooth load sharing is solved with a torque balance equation and a deformation compatibility equation. The distributed normal load is then passed to a Hertzian contact model. For an elliptical contact with semi-axes \(a\) and \(b\), the maximum pressure and the pressure distribution are
$$p_{\max}=\frac{3F’}{2\pi ab},\qquad p(x,y)=p_{\max}\sqrt{1-\frac{x^2}{a^2}-\frac{y^2}{b^2}}$$
where \(F’\) is the normal contact load carried at the contact position. The contact ellipses along the contact path form the tooth-surface contact pattern. To display the stress field, a color lookup table is built with vtkLookupTable and applied to the tooth-surface point data through vtkPolyData. Each surface point receives a color according to its calculated stress, producing a stress contour on the gear flank. This makes the relationship between mesh misalignment, contact pattern, and stress concentration visible in the same geometric model used for assembly.
Case Study: A 28/41 Spiral Bevel Gear Pair
The procedure is illustrated with a spiral bevel gear transmission under an input torque of 400 N·m. The gear pair, shaft, and bearing parameters are listed in the following tables.
| Parameter | Pinion | Wheel |
|---|---|---|
| Number of teeth | 28 | 41 |
| Module | 3.75 mm | 3.75 mm |
| Shaft angle | 90° | 90° |
| Offset | 0 mm | 0 mm |
| Pressure angle | 20° | 20° |
| Face width | 28 mm | 28 mm |
| Outer cone distance | 93.09 mm | 93.09 mm |
| Spiral angle | 35° | 35° |
| Pitch cone angle | 34.33° | 55.67° |
| Shaft | Segment | Length (mm) | Outer diameter (mm) | Inner diameter (mm) |
|---|---|---|---|---|
| Input shaft | 1 | 35 | 60 | 25 |
| Input shaft | 2 | 90 | 55 | 25 |
| Input shaft | 3 | 75 | 50 | 25 |
| Output shaft | 1 | 30 | 90 | 40 |
| Output shaft | 2 | 100 | 85 | 40 |
| Output shaft | 3 | 70 | 80 | 40 |
| Position | Bearing |
|---|---|
| ① | 7011C |
| ② | 7010C |
| ③ | 7017C |
| ④ | 7016C |
The component models generated from these parameters reproduce the shaft steps, bearing ring profiles, and gear tooth surfaces, and the assembled transmission shows the expected mounting relationships without interference.
For the input shaft, the beam-model nodal displacements were compared with a finite element method (FEM) solution at nine nodes. The maximum differences are summarized below.
| Direction | Maximum absolute deviation (µm) | Maximum relative deviation |
|---|---|---|
| X | 0.42 | 1.0% |
| Y | 0.20 | 0.9% |
| Z | 0.01 | 0.1% |
Across the compared nodes, the maximum relative deviation remains below 1%. This agreement supports the use of the beam-and-bearing stiffness model for the shaft-displacement input to loaded contact analysis. The resulting mesh misalignment components are listed below.
| Parameter | Value |
|---|---|
| \(\Delta P\) | 65.02 µm |
| \(\Delta W\) | −54.84 µm |
| \(\Delta E\) | −122.8 µm |
| \(\Delta\Sigma\) | 0.262 mrad |
The initial tooth-surface design produced a theoretical contact pattern near the middle of the flank, with a diamond-like shape under light load. When system deformation was included, the contact pattern moved toward the heel, or large end, and the addendum, or tooth tip, producing a clear edge-contact tendency. This shift is consistent with the combined effect of the calculated misalignment components.
To compensate, the tooth surface was modified so that the unloaded theoretical contact pattern moved toward the toe, or small end, and slightly toward the dedendum, or root. The tooth-height modification was also increased to make the contact pattern narrower and less sensitive to installation error. Under load, the contact pattern returned to the middle of the flank, and no edge contact appeared at either the addendum or the root in the loading states examined. The loaded contact stress contour remained elliptical: the maximum stress was located near the center of the contact ellipse and decreased outward, while the tip and root regions remained unloaded. The visual result therefore links the shaft-system deformation, the mesh misalignment, the tooth-surface correction, and the final contact stress distribution in one consistent model.
Design Implications and Limits
The main engineering value of this architecture is the shared data path from topology to geometry to mechanics to visualization. The adjacency matrix and object graph define which components exist, how they are connected, and which parameters belong to them. VTK then generates the component geometry and the assembly, while the beam model and loaded contact analysis read the same parameter objects. This avoids the repeated model rebuilding that occurs when CAD, FEM, and post-processing tools are connected only through file exchange. It also makes the analysis result spatially explicit: shaft deflection is not only a table of nodal values, and contact stress is not only a two-dimensional plot, but both are displayed on the same transmission geometry that defines the problem.
The case examined here is a single spiral bevel gear pair under quasi-static loading, with linear beam elements and bearing stiffness representing the shaft system. The comparison with FEM is limited to input-shaft nodal displacements at nine locations; it supports the shaft model used to calculate mesh misalignment but does not by itself validate absolute contact stress, dynamic behavior, thermal effects, or lubrication conditions. Those effects require additional models and measurements. Within its scope, the architecture provides a practical foundation for developing dedicated spiral bevel gear transmission software in which topology, geometry, analysis, and visualization remain coupled rather than reconstructed at every stage.
