Conversation
New features: - helical_extrude() for smooth helical gear teeth - radial_pattern() and linear_pattern() for repeating geometry - fillet() and chamfer() edge operations (OCC BREP) - Adaptive cylinder resolution based on radius - 3D text support with text3d module Improvements: - Better BREP shape analysis and edge selection - Enhanced geometry utilities for pattern operations - New DSL builtins for all features Tests and documentation updated. Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add freetype-py optional dependency for TrueType/OpenType fonts - Implement find_system_font() for automatic font discovery on macOS/Linux/Windows - Add glyph_to_polygons() for converting font outlines to yapCAD polygons - Update text_solid(), text_width(), engrave_text() with font parameter - Fall back to block font when freetype unavailable or font not found - Default to Arial when no font specified (with block font fallback) Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add missing documentation for: - Edge operations: fillet_all_edges, fillet_edges, chamfer_all_edges, chamfer_edges - DSL builtins: fillet() and chamfer() - 3D text module with TrueType font support Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add TYPE_CHECKING import for PackageManifest in packaging.py - Fix ParseError -> ParserError typo in parser.py Co-Authored-By: Claude Opus 4.5 <[email protected]>
Lower max_angr from 30° to 10° in adaptive_angr_from_radius to ensure at least 36 segments for any cylinder. This reduces geometric volume error from ~2.5% to <1%, fixing test_conditional_with_geometry failure. Co-Authored-By: Claude Opus 4.5 <[email protected]>
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.
what's new:
Helical Extrusion: New
helical_extrude()function inyapcad.geom3d_utilcreates smooth helical/twisted extrusions using high-resolution lofting. Ideal for
helical gears, twisted columns, and spiral features. Requires pythonocc-core.
Pattern Functions: New pattern generation functions for creating arrays of geometry:
radial_pattern()inyapcad.geom_util- Creates circular patterns of 2D geometrylinear_pattern()inyapcad.geom_util- Creates linear arrays of 2D geometryradial_pattern_solid()inyapcad.geom3d_util- Creates circular patterns of 3D solidslinear_pattern_solid()inyapcad.geom3d_util- Creates linear arrays of 3D solidsradial_pattern_surface()inyapcad.geom3d_util- Creates circular patterns of surfaceslinear_pattern_surface()inyapcad.geom3d_util- Creates linear arrays of surfacesOCC Helix Helper: New
make_occ_helix()function creates mathematically exacthelix curves using OpenCascade's 2D parametric curve on cylindrical surface technique.
Used internally by
helical_extrude()but also available for advanced users.