Repository navigation
Add involute splines - #623
Merged
Merged
Conversation
An involute spline is specified by standard with its reference diameter, module, pressure angle, number of teeth and tolerance class: `DIN 5480 - W 40 x 2 x 30 x 18 x 8f` is a shaft (W) with a reference diameter of 40, module 2, a 30 degree pressure angle, 18 teeth and the class 8f; a hub is written with N and a class in capitals (9H). ResponseFeaturesComponentDrawing now carries them as `involute_splines`, with the model InvoluteSpline. It reuses SplineSide for shaft or hub. The list defaults to empty, so responses from servers that predate it still parse, and clients that predate it ignore it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jmtts
approved these changes
Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An involute spline is specified by a standard, for example
DIN 5480 - W 40 x 2 x 30 x 18 x 8f. That reads as:W: a shaft (a hub is writtenN);40: the reference diameter;2: the module;30: the pressure angle in degrees;18: the number of teeth;8f: the tolerance class (quality 8, deviation f; a hub's class is in capitals, e.g.9H).The older form of the designation leaves out the pressure angle:
W 40 x 2 x 18.What changes
InvoluteSpline(aFeature) with these fields:quantitystandardspline_side, which reusesSplineSide(SHAFT/HUB)reference_diameter(Size)modulepressure_angle, optionalnumber_of_teethtolerance_class, optional and kept as written (8f,9H,9H/8f)ResponseFeaturesComponentDrawing.involute_splines: a new list besidesplines. It defaults to empty, so responses from older servers still parse, and older clients ignore it.InvoluteSplineis its own model rather than a variant ofSplinebecause the two are sized by different things: straight-sided splines by a count and two diameters, involute splines by a module and a number of teeth.Tests: five new tests in
tests/test_standard_features.pycover:.venv/bin/python -m pyteston Python 3.13: 1046 passed, 5 skipped (the 5 need credentials).Questions for the owner
None.
Generated by Claude Code