History/change log
0.6 (2026-04-01)
Support for conic arcs (parabolas, ellipses, hyperbolas) and BSplines
Internally rewrote mechanism for tracking constraint calls.
0.5 (2026-02-24)
Breaking changes:
Replaced
add_arc_from_center/add_arc_from_start_endwith a single unifiedadd_arcmethod.Changed
add_circleto takeradius_id: Paraminstead ofradius: float, for consistency with other entity constructors.Changed
add_param()default tofixed=Falsefor consistency.
New constraints:
difference,proportional,p2p_anglepoint_on_perp_bisector,point_on_arc,point_on_ellipsecircle_diameter,arc_radius,arc_diameterequal_radius_cc,equal_radius_ca,equal_radius_aatangent_line_ellipse,tangent_arc_arc,tangent_circle_arc,tangent_circumfp2c_distance,c2c_distance,c2l_distancep2a_distance,a2l_distance,c2a_distance,a2a_distancearc_lengthinternal_alignment_point2ellipsearc_angle/set_arc_anglefor constraining arc sweep angles*ViaPointfamily:angle_via_point,curve_value,snells_law, etc.coordinate_x,coordinate_yclear_by_tag,constraint_error
New features:
Debugging graphics:
Sketch.to_image()renders the sketch to a PIL/Pillow image for visual inspection.Entity lookup API:
ConstraintInfo.get_entities()to inspect which geometric entities a constraint references.Rich constraint info in diagnosis results (
diagnose()now returnsConstraintInfoobjects for conflicting/redundant constraints).add_point_from_params()to build points from existing param IDs.get_point_param_ids()to retrieve the underlying param IDs of a point.arc_sizeproperty onArcInfo(end_angle - start_angle).Improved
CurveIdtype checking.Script to regenerate type stubs (
update_stubs.py).
Documentation:
Documented arc direction conventions in docstrings.
Added tangent arc-line example.
Added graphics/visualization docs.
0.4 (2026-02-13)
Breaking: removed
get_arc_center(),get_arc_radius(),get_arc_start_angle(), andget_arc_end_angle()from the publicSketchAPI—useget_arc()instead.Replaced
add_point+fix_pointpairs withadd_fixed_pointthroughout docs, examples, and tests.Added
get_circle()returning aCircleInfodataclass.Added
get_line()returning aLineInfodataclass.Added
get_ellipse()returning anEllipseInfodataclass.Added
PointInfotype alias fortuple[float, float].Added 100% Python code coverage enforcement.
Added pytest/ty checks to
release.sh.
0.3 (2026-02-11)
Breaking: renamed
add_arctoadd_arc_from_center;add_arc_from_start_endradius parameter now takes aParamIdinstead of afloat;ArcInfochanged fromNamedTupleto frozen dataclass.Added typed IDs (
PointId,LineId, etc. viaNewType) and convenience methods to theSketchAPI.Added
add_arc_from_start_endandtangent_line_arcconstraint.Added
get_arcproperty getter returning fullArcInfo.Added constraint-system diagnosis: degrees of freedom, conflicting and redundant constraint detection.
Added
add_fixed_paramconvenience method.Added type stubs (
.pyi) for the_planegcsC extension module with automated freshness checking.
0.2 (2026-02-11)
Added
add_fixed_pointconvenience method
0.1.2 (2026-02-11)
more automated tests, reformatting etc.
Python 3.14 wheels added
0.1.1 (2026-02-09)
build some wheels
0.1 (2026-02-09)
initial release