simplecadapi 2.0.0b3__tar.gz → 2.0.0b4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/PKG-INFO +8 -7
  2. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/README.md +4 -4
  3. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/README.md +2 -2
  4. simplecadapi-2.0.0b3/docs/api/cut_rsolidlist.md → simplecadapi-2.0.0b4/docs/api/cut_rsolid.md +3 -3
  5. simplecadapi-2.0.0b3/docs/api/intersect_rsolidlist.md → simplecadapi-2.0.0b4/docs/api/intersect_rsolid.md +3 -3
  6. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/architecture/sdk-architecture-review.md +2 -2
  7. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/README.md +2 -2
  8. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/declarative_constraints.md +1 -1
  9. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/operation_graph_json_spec.md +7 -7
  10. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/rearchitecture_2_0_requirements.md +2 -2
  11. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/serialization/README.md +1 -1
  12. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/serialization/features-booleans-transforms.md +6 -6
  13. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/solid.md +6 -6
  14. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/pyproject.toml +4 -3
  15. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/__init__.py +6 -6
  16. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/auto_tools/make_export.py +2 -2
  17. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/auto_tools/skill_pack.py +3 -3
  18. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/evolve.py +4 -4
  19. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/freecad_translator.py +4 -4
  20. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/graph.py +1 -1
  21. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/operations.py +20 -20
  22. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/serializer.py +10 -10
  23. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/topology.py +3 -3
  24. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/.gitignore +0 -0
  25. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/LICENSE +0 -0
  26. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/MANIFEST.in +0 -0
  27. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/Const.md +0 -0
  28. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/Expr.md +0 -0
  29. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/ExpressionGraph.md +0 -0
  30. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/GraphSession.md +0 -0
  31. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/SemanticDelta.md +0 -0
  32. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/SemanticRef.md +0 -0
  33. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/SimpleCADError.md +0 -0
  34. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/Sketch.md +0 -0
  35. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/Var.md +0 -0
  36. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/and_.md +0 -0
  37. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/apply_tag.md +0 -0
  38. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/chamfer_rsolid.md +0 -0
  39. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/const_function.md +0 -0
  40. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/export_graph_json.md +0 -0
  41. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/export_model_json.md +0 -0
  42. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/export_session_json.md +0 -0
  43. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/export_step.md +0 -0
  44. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/export_stl.md +0 -0
  45. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/extrude_rsolid.md +0 -0
  46. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/fillet_rsolid.md +0 -0
  47. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/geo.md +0 -0
  48. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/helical_sweep_rsolid.md +0 -0
  49. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/import_graph_json.md +0 -0
  50. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/import_model_json.md +0 -0
  51. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/import_session_json.md +0 -0
  52. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/linear_pattern_rsolidlist.md +0 -0
  53. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/list_tags.md +0 -0
  54. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/loft_rsolid.md +0 -0
  55. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_angle_arc_redge.md +0 -0
  56. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_angle_arc_rwire.md +0 -0
  57. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_box_rsolid.md +0 -0
  58. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_circle_redge.md +0 -0
  59. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_circle_rface.md +0 -0
  60. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_circle_rwire.md +0 -0
  61. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_cone_rsolid.md +0 -0
  62. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_cylinder_rsolid.md +0 -0
  63. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_face_from_wire_rface.md +0 -0
  64. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_helix_redge.md +0 -0
  65. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_helix_rwire.md +0 -0
  66. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_line_redge.md +0 -0
  67. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_n_hole_flange_rsolid.md +0 -0
  68. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_naca_propeller_blade_rsolid.md +0 -0
  69. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_point_rvertex.md +0 -0
  70. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_polyline_rwire.md +0 -0
  71. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_rectangle_rface.md +0 -0
  72. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_rectangle_rwire.md +0 -0
  73. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_segment_redge.md +0 -0
  74. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_segment_rwire.md +0 -0
  75. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_sphere_rsolid.md +0 -0
  76. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_spline_redge.md +0 -0
  77. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_spline_rwire.md +0 -0
  78. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_threaded_rod_rsolid.md +0 -0
  79. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_three_point_arc_redge.md +0 -0
  80. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_three_point_arc_rwire.md +0 -0
  81. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/make_wire_from_edges_rwire.md +0 -0
  82. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/meta.md +0 -0
  83. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/mirror_shape.md +0 -0
  84. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/not_.md +0 -0
  85. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/or_.md +0 -0
  86. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/radial_pattern_rsolidlist.md +0 -0
  87. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/render_screenshot_rpath.md +0 -0
  88. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/replay_graph.md +0 -0
  89. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/replay_model_json.md +0 -0
  90. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/revolve_rsolid.md +0 -0
  91. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/rotate_shape.md +0 -0
  92. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/select.md +0 -0
  93. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/select_edges_by_tag.md +0 -0
  94. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/select_faces_by_tag.md +0 -0
  95. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/shell_rsolid.md +0 -0
  96. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/suspend_graph_recording.md +0 -0
  97. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/sweep_rsolid.md +0 -0
  98. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/tag.md +0 -0
  99. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/translate_model_json_to_fcstd.md +0 -0
  100. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/translate_model_json_to_freecad_script.md +0 -0
  101. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/translate_shape.md +0 -0
  102. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/union_rsolid.md +0 -0
  103. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/value.md +0 -0
  104. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/api/var_function.md +0 -0
  105. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/compound.md +0 -0
  106. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/coordinate_system.md +0 -0
  107. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/edge.md +0 -0
  108. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/face.md +0 -0
  109. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/rearchitecture_2_0.md +0 -0
  110. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/serialization/expressions-and-replay.md +0 -0
  111. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/serialization/primitives-and-profiles.md +0 -0
  112. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/serialization/scalar-fields.md +0 -0
  113. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/shell.md +0 -0
  114. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/simple_workplane.md +0 -0
  115. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/tagged_mixin.md +0 -0
  116. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/vertex.md +0 -0
  117. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/docs/core/wire.md +0 -0
  118. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/_vendor_warning_filters.py +0 -0
  119. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/auto_tools/__init__.py +0 -0
  120. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/auto_tools/auto_docs_gen.py +0 -0
  121. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/auto_tools/evolution.py +0 -0
  122. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/autotag.py +0 -0
  123. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/core.py +0 -0
  124. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/errors.py +0 -0
  125. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/expr.py +0 -0
  126. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/frame.py +0 -0
  127. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/__init__.py +0 -0
  128. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_booleans.py +0 -0
  129. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_builders.py +0 -0
  130. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_cast.py +0 -0
  131. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_curves.py +0 -0
  132. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_export.py +0 -0
  133. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_features.py +0 -0
  134. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_mesh.py +0 -0
  135. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_properties.py +0 -0
  136. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_topology.py +0 -0
  137. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/ocp_transforms.py +0 -0
  138. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/kernel/spline_fit.py +0 -0
  139. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/py.typed +0 -0
  140. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/ql.py +0 -0
  141. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/sketch.py +0 -0
  142. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/tagging.py +0 -0
  143. {simplecadapi-2.0.0b3 → simplecadapi-2.0.0b4}/src/simplecadapi/tracking.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simplecadapi
3
- Version: 2.0.0b3
3
+ Version: 2.0.0b4
4
4
  Summary: A simplified OCP-native CAD modeling Python API
5
5
  Project-URL: Homepage, https://github.com/NiJingzhe/SimpleCADAPI
6
6
  Project-URL: Repository, https://github.com/NiJingzhe/SimpleCADAPI
@@ -358,10 +358,11 @@ Classifier: Programming Language :: Python :: 3
358
358
  Classifier: Programming Language :: Python :: 3.10
359
359
  Classifier: Programming Language :: Python :: 3.11
360
360
  Classifier: Programming Language :: Python :: 3.12
361
+ Classifier: Programming Language :: Python :: 3.13
361
362
  Classifier: Topic :: Scientific/Engineering
362
363
  Classifier: Topic :: Scientific/Engineering :: Visualization
363
- Requires-Python: >=3.10
364
- Requires-Dist: cadquery-ocp>=7.8.1
364
+ Requires-Python: <3.14,>=3.10
365
+ Requires-Dist: cadquery-ocp>=7.9.3.1
365
366
  Requires-Dist: numpy>=1.21.0
366
367
  Requires-Dist: rich>=14.0.0
367
368
  Provides-Extra: dev
@@ -381,7 +382,7 @@ in a compact public API for creating solids, applying features, tagging semantic
381
382
  intent, querying topology, exporting manufacturing files, and translating recorded
382
383
  models into FreeCAD workflows.
383
384
 
384
- Current beta: `simplecadapi==2.0.0b3`.
385
+ Current beta: `simplecadapi==2.0.0b4`.
385
386
 
386
387
  ## What It Provides
387
388
 
@@ -429,7 +430,7 @@ base = scad.make_box_rsolid(60.0, 36.0, 8.0, bottom_face_center=(0.0, 0.0, 0.0))
429
430
  hole = scad.make_cylinder_rsolid(5.0, 14.0, bottom_face_center=(0.0, 0.0, -3.0))
430
431
  slot = scad.make_box_rsolid(18.0, 8.0, 14.0, bottom_face_center=(14.0, 0.0, -3.0))
431
432
 
432
- part = scad.cut_rsolidlist(base, hole, slot)
433
+ part = scad.cut_rsolid(base, hole, slot)
433
434
  boss = scad.make_cylinder_rsolid(8.0, 7.0, bottom_face_center=(-18.0, 0.0, 8.0))
434
435
  part = scad.union_rsolid(part, boss)
435
436
  part = scad.apply_tag(part, "role.demo.bracket")
@@ -454,7 +455,7 @@ from simplecadapi import ql as Q
454
455
  with scad.GraphSession() as session:
455
456
  body = scad.make_box_rsolid(40.0, 24.0, 10.0, bottom_face_center=(0.0, 0.0, 0.0))
456
457
  cutter = scad.make_cylinder_rsolid(4.0, 16.0, bottom_face_center=(0.0, 0.0, -3.0))
457
- drilled = scad.cut_rsolidlist(body, cutter)
458
+ drilled = scad.cut_rsolid(body, cutter)
458
459
 
459
460
  bottom_circle = (
460
461
  Q.edges()
@@ -480,7 +481,7 @@ print("replayed_outputs", len(rebuilt))
480
481
  wires/faces first, then solid features such as extrude, revolve, loft, and
481
482
  sweep.
482
483
  - Keep operations functional. Create new values with public functions such as
483
- `make_rectangle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolidlist(...)`, and
484
+ `make_rectangle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolid(...)`, and
484
485
  `fillet_rsolid(...)`.
485
486
  - Use tags for semantic intent and selection anchors, for example
486
487
  `role.mounting.surface`, `anchor.datum.primary`, or `group.fasteners`.
@@ -6,7 +6,7 @@ in a compact public API for creating solids, applying features, tagging semantic
6
6
  intent, querying topology, exporting manufacturing files, and translating recorded
7
7
  models into FreeCAD workflows.
8
8
 
9
- Current beta: `simplecadapi==2.0.0b3`.
9
+ Current beta: `simplecadapi==2.0.0b4`.
10
10
 
11
11
  ## What It Provides
12
12
 
@@ -54,7 +54,7 @@ base = scad.make_box_rsolid(60.0, 36.0, 8.0, bottom_face_center=(0.0, 0.0, 0.0))
54
54
  hole = scad.make_cylinder_rsolid(5.0, 14.0, bottom_face_center=(0.0, 0.0, -3.0))
55
55
  slot = scad.make_box_rsolid(18.0, 8.0, 14.0, bottom_face_center=(14.0, 0.0, -3.0))
56
56
 
57
- part = scad.cut_rsolidlist(base, hole, slot)
57
+ part = scad.cut_rsolid(base, hole, slot)
58
58
  boss = scad.make_cylinder_rsolid(8.0, 7.0, bottom_face_center=(-18.0, 0.0, 8.0))
59
59
  part = scad.union_rsolid(part, boss)
60
60
  part = scad.apply_tag(part, "role.demo.bracket")
@@ -79,7 +79,7 @@ from simplecadapi import ql as Q
79
79
  with scad.GraphSession() as session:
80
80
  body = scad.make_box_rsolid(40.0, 24.0, 10.0, bottom_face_center=(0.0, 0.0, 0.0))
81
81
  cutter = scad.make_cylinder_rsolid(4.0, 16.0, bottom_face_center=(0.0, 0.0, -3.0))
82
- drilled = scad.cut_rsolidlist(body, cutter)
82
+ drilled = scad.cut_rsolid(body, cutter)
83
83
 
84
84
  bottom_circle = (
85
85
  Q.edges()
@@ -105,7 +105,7 @@ print("replayed_outputs", len(rebuilt))
105
105
  wires/faces first, then solid features such as extrude, revolve, loft, and
106
106
  sweep.
107
107
  - Keep operations functional. Create new values with public functions such as
108
- `make_rectangle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolidlist(...)`, and
108
+ `make_rectangle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolid(...)`, and
109
109
  `fillet_rsolid(...)`.
110
110
  - Use tags for semantic intent and selection anchors, for example
111
111
  `role.mounting.surface`, `anchor.datum.primary`, or `group.fasteners`.
@@ -56,8 +56,8 @@ This index includes generated docs for the public SimpleCAD API surface, includi
56
56
 
57
57
  ## Boolean Operations
58
58
 
59
- - [cut_rsolidlist](cut_rsolidlist.md) *(from operations.py)* `top-level`
60
- - [intersect_rsolidlist](intersect_rsolidlist.md) *(from operations.py)* `top-level`
59
+ - [cut_rsolid](cut_rsolid.md) *(from operations.py)* `top-level`
60
+ - [intersect_rsolid](intersect_rsolid.md) *(from operations.py)* `top-level`
61
61
  - [union_rsolid](union_rsolid.md) *(from operations.py)* `top-level`
62
62
 
63
63
  ## Export
@@ -1,16 +1,16 @@
1
- # cut_rsolidlist
1
+ # cut_rsolid
2
2
 
3
3
  ## API Definition
4
4
 
5
5
  ```python
6
- def cut_rsolidlist(*solids: Union[Solid, Sequence[Solid]], skip_non_intersecting: bool = True) -> Solid
6
+ def cut_rsolid(*solids: Union[Solid, Sequence[Solid]], skip_non_intersecting: bool = True) -> Solid
7
7
  ```
8
8
 
9
9
  *Source: operations.py*
10
10
 
11
11
  ## Import Surface
12
12
 
13
- - top-level: `from simplecadapi import cut_rsolidlist`
13
+ - top-level: `from simplecadapi import cut_rsolid`
14
14
 
15
15
  ## Description
16
16
 
@@ -1,16 +1,16 @@
1
- # intersect_rsolidlist
1
+ # intersect_rsolid
2
2
 
3
3
  ## API Definition
4
4
 
5
5
  ```python
6
- def intersect_rsolidlist(*solids: Union[Solid, Sequence[Solid]]) -> Solid
6
+ def intersect_rsolid(*solids: Union[Solid, Sequence[Solid]]) -> Solid
7
7
  ```
8
8
 
9
9
  *Source: operations.py*
10
10
 
11
11
  ## Import Surface
12
12
 
13
- - top-level: `from simplecadapi import intersect_rsolidlist`
13
+ - top-level: `from simplecadapi import intersect_rsolid`
14
14
 
15
15
  ## Description
16
16
 
@@ -57,7 +57,7 @@ SimpleCADAPI 的顶层 API 选择是正确的:它没有把用户拖进传统 C
57
57
 
58
58
  - 顶层 API 被 aliases 稀释了。`create_box`、`create_line`、`extrude`、`union`、`to_step` 等别名降低了 canonical API 的唯一性。对用户友好,但对文档、LLM、图记录和长期兼容不友好。参考:`src/simplecadapi/__init__.py:145`、`src/simplecadapi/__init__.py:318`。
59
59
  - README 说 API 函数统一用 return type 反映命名,但公开面包含 `translate_shape`、`rotate_shape`、`export_step`、`export_stl` 和大量 aliases。这个声明过强。参考:`README.md:200`、`src/simplecadapi/__init__.py:47`、`src/simplecadapi/__init__.py:187`。
60
- - `rsolidlist` 命名混杂了“参数类型”和“返回类型”:`cut_rsolidlist`、`intersect_rsolidlist` 实际返回 `Solid`,而 `linear_pattern_rsolidlist` 返回 `List[Solid]`。这会伤害 API 语义一致性。参考:`src/simplecadapi/operations.py:2994`、`src/simplecadapi/operations.py:3102`、`src/simplecadapi/operations.py:4121`。
60
+ - `rsolidlist` 命名混杂了“参数类型”和“返回类型”:`cut_rsolid`、`intersect_rsolid` 实际返回 `Solid`,而 `linear_pattern_rsolidlist` 返回 `List[Solid]`。这会伤害 API 语义一致性。参考:`src/simplecadapi/operations.py:2994`、`src/simplecadapi/operations.py:3102`、`src/simplecadapi/operations.py:4121`。
61
61
  - public op 名和 graph op 名不完全一致:`translate_shape` 记录为 `make_translate_rshape`,`extrude_rsolid` 记录为 `make_extrude_rsolid`。这种分层可以接受,但必须正式化为“source API”和“canonical IR”的稳定映射表。参考:`src/simplecadapi/operations.py:117`、`src/simplecadapi/serializer.py:116`。
62
62
  - 一些非 session 分支仍记录 legacy op 名,如 `make_box`、`make_cylinder`、`make_segment_wire`,和 canonical `make_*_r*` 命名不一致。参考:`src/simplecadapi/operations.py:785`、`src/simplecadapi/operations.py:1534`、`src/simplecadapi/operations.py:1638`。
63
63
 
@@ -186,7 +186,7 @@ QL 是架构上最应该继续投资的部分。
186
186
 
187
187
  - `tracked_union` 接收 `glue` 和 `tol`,但没有把它们设置到 `BRepAlgoAPI_Fuse`。也就是说用于结果的 union 和用于 tracking 的 union 参数可能不一致。参考:`src/simplecadapi/tracking.py:338`、`src/simplecadapi/tracking.py:352`。
188
188
  - `union_rsolid` replay 忽略记录过的 `clean`、`glue`、`tol`,只调用 `ops.union_rsolid(all_solids)`。参数不 faithful。参考:`src/simplecadapi/operations.py:2946`、`src/simplecadapi/serializer.py:1029`。
189
- - `cut_rsolidlist` 对无交集 tool 直接跳过,这对 modeling convenience 可能友好,但对 replay/diagnostic 来说可能隐藏错误。参考:`src/simplecadapi/operations.py:3033`。
189
+ - `cut_rsolid` 对无交集 tool 直接跳过,这对 modeling convenience 可能友好,但对 replay/diagnostic 来说可能隐藏错误。参考:`src/simplecadapi/operations.py:3033`。
190
190
  - 多 tool cut/intersect 只保留最后一次 delta,前面 tool 的 lineage 丢失。参考:`src/simplecadapi/operations.py:3020`、`src/simplecadapi/operations.py:3127`。
191
191
  - extrude face classification 使用 center 精确相等、normal dot 精确等于 0、angle 精确等于 pi,这在 CAD 数值几何里非常脆弱。参考:`src/simplecadapi/operations.py:2631`、`src/simplecadapi/operations.py:2646`、`src/simplecadapi/operations.py:2653`。
192
192
 
@@ -55,7 +55,7 @@ SimpleWorkplane ← local modeling context
55
55
  ## Design Principles
56
56
 
57
57
  - **Shape-first API**: users work with `Vertex`, `Edge`, `Wire`, `Face`, and `Solid`, not graph nodes.
58
- - **Functional modeling style**: public operations return new geometry values, e.g. `make_box_rsolid(...)`, `cut_rsolidlist(...)`, `fillet_rsolid(...)`.
58
+ - **Functional modeling style**: public operations return new geometry values, e.g. `make_box_rsolid(...)`, `cut_rsolid(...)`, `fillet_rsolid(...)`.
59
59
  - **OCP-native runtime**: geometry construction, topology traversal, properties, booleans, transforms, and export use OCP/OpenCascade helpers.
60
60
  - **Replayable graph workflows**: `GraphSession` can record a canonical low-level operation graph and `export_model_json()` can serialize it for `replay_model_json()`.
61
61
  - **Tags and metadata**: tags are useful for lightweight semantics; structured numeric facts should be stored in metadata such as `metadata["geo"]`.
@@ -85,7 +85,7 @@ import simplecadapi as scad
85
85
  with scad.GraphSession() as session:
86
86
  body = scad.make_box_rsolid(10, 10, 4)
87
87
  hole = scad.make_cylinder_rsolid(1.5, 8, bottom_face_center=(0, 0, -2))
88
- part = scad.cut_rsolidlist(body, hole)
88
+ part = scad.cut_rsolid(body, hole)
89
89
 
90
90
  payload = scad.export_model_json(session)
91
91
  rebuilt = scad.replay_model_json(payload)
@@ -28,7 +28,7 @@ Current supported workflows should model final parts as ordinary geometry:
28
28
 
29
29
  - Use `translate_shape(...)`, `rotate_shape(...)`, and `mirror_shape(...)` for explicit placement.
30
30
  - Use Python sequences of `Solid` objects plus `export_step([...], path)` / `export_stl(...)` for multi-body exports.
31
- - Use `union_rsolid(...)`, `cut_rsolidlist(...)`, and `intersect_rsolidlist(...)` when a single merged solid is required.
31
+ - Use `union_rsolid(...)`, `cut_rsolid(...)`, and `intersect_rsolid(...)` when a single merged solid is required.
32
32
 
33
33
  `export_model_json(...)` no longer accepts `assembly=...`, and newly exported model JSON does not include `assembly`, `assembly_registry`, or `constraint_registry` fields.
34
34
 
@@ -116,7 +116,7 @@ source API 名字不等于 canonical graph op 名字。Composite source API 可
116
116
  ```json
117
117
  {
118
118
  "schema_version": "2.0",
119
- "producer_version": "2.0.0b3",
119
+ "producer_version": "2.0.0b4",
120
120
  "capabilities": {
121
121
  "selection_ref_strategies": true,
122
122
  "geo_select_nodes": true,
@@ -329,7 +329,7 @@ source API 名字不等于 canonical graph op 名字。Composite source API 可
329
329
 
330
330
  - `make_*_face` 与 `make_face_from_wire` -> `Sketch`
331
331
  - `make_*_edge` / `make_*_wire` -> `Profile`
332
- - `make_extrude_rsolid` / `make_revolve_rsolid` / `make_loft_rsolid` / `make_sweep_rsolid` / `make_fillet_rsolid` / `make_chamfer_rsolid` / `make_shell_rsolid` / `make_cut_rsolidlist` / `make_union_rsolid` / `make_intersect_rsolidlist` -> `Feature`
332
+ - `make_extrude_rsolid` / `make_revolve_rsolid` / `make_loft_rsolid` / `make_sweep_rsolid` / `make_fillet_rsolid` / `make_chamfer_rsolid` / `make_shell_rsolid` / `make_cut_rsolid` / `make_union_rsolid` / `make_intersect_rsolid` -> `Feature`
333
333
 
334
334
  ## 7. Topology Delta Schema
335
335
 
@@ -907,9 +907,9 @@ New canonical profile nodes use the `make_*_r*` names listed in `canonical_contr
907
907
  - `make_translate_rshape`
908
908
  - `make_rotate_rshape`
909
909
  - `make_mirror_rshape`
910
- - `make_cut_rsolidlist`
910
+ - `make_cut_rsolid`
911
911
  - `make_union_rsolid`
912
- - `make_intersect_rsolidlist`
912
+ - `make_intersect_rsolid`
913
913
  - `make_fillet_rsolid`
914
914
  - `make_chamfer_rsolid`
915
915
  - `make_shell_rsolid`
@@ -1227,7 +1227,7 @@ Notes:
1227
1227
  - If the kernel cannot produce exactly one merged solid, the API raises instead of returning disconnected pieces.
1228
1228
  - replay passes recorded `clean`, `glue`, and `tol` back to `union_rsolid(...)`; the tracking builder uses the same `glue` and fuzzy tolerance as the actual boolean builder.
1229
1229
 
1230
- #### `make_cut_rsolidlist`
1230
+ #### `make_cut_rsolid`
1231
1231
 
1232
1232
  - Inputs: base solid + tool solids
1233
1233
  - Outputs: 1 `Solid` (wrapped in a single-output node)
@@ -1240,11 +1240,11 @@ Notes:
1240
1240
 
1241
1241
  Notes:
1242
1242
 
1243
- - Public `cut_rsolidlist(...)` defaults this flag to `true` for interactive convenience.
1243
+ - Public `cut_rsolid(...)` defaults this flag to `true` for interactive convenience.
1244
1244
  - Graph replay defaults missing `skip_non_intersecting` to `false` so malformed or drifting graphs fail diagnostically instead of silently skipping tools.
1245
1245
  - Multi-tool cut preserves the full topology delta chain across all performed tool cuts.
1246
1246
 
1247
- #### `make_intersect_rsolidlist`
1247
+ #### `make_intersect_rsolid`
1248
1248
 
1249
1249
  - Inputs: N `Solid`
1250
1250
  - Outputs: 1 `Solid` when overlap exists
@@ -71,9 +71,9 @@
71
71
  - `fillet_rsolid`
72
72
  - `chamfer_rsolid`
73
73
  - `shell_rsolid`
74
- - `cut_rsolidlist`
74
+ - `cut_rsolid`
75
75
  - `union_rsolid`
76
- - `intersect_rsolidlist`
76
+ - `intersect_rsolid`
77
77
 
78
78
  #### REQ-API-003
79
79
 
@@ -13,7 +13,7 @@ import simplecadapi as scad
13
13
  with scad.GraphSession() as session:
14
14
  body = scad.make_box_rsolid(10, 6, 2)
15
15
  hole = scad.make_cylinder_rsolid(1, 4, bottom_face_center=(0, 0, -1))
16
- result = scad.cut_rsolidlist(body, hole)
16
+ result = scad.cut_rsolid(body, hole)
17
17
 
18
18
  model_json = scad.export_model_json(session)
19
19
  payload = json.loads(model_json)
@@ -265,14 +265,14 @@ Source:
265
265
  ```python
266
266
  body = scad.make_box_rsolid(4, 4, 2)
267
267
  tool = scad.make_cylinder_rsolid(0.8, 4, bottom_face_center=(0, 0, -1))
268
- result = scad.cut_rsolidlist(body, tool)
268
+ result = scad.cut_rsolid(body, tool)
269
269
  ```
270
270
 
271
271
  Serialized node:
272
272
 
273
273
  ```json
274
274
  {
275
- "op": "make_cut_rsolidlist",
275
+ "op": "make_cut_rsolid",
276
276
  "params": {
277
277
  "tool_count": 1,
278
278
  "input_count": 2
@@ -286,7 +286,7 @@ Replay effect:
286
286
 
287
287
  1. Replay first input as the body.
288
288
  2. Replay remaining inputs as tools.
289
- 3. Call `cut_rsolidlist(body, tools)`.
289
+ 3. Call `cut_rsolid(body, tools)`.
290
290
 
291
291
  ## Boolean intersection
292
292
 
@@ -295,14 +295,14 @@ Source:
295
295
  ```python
296
296
  a = scad.make_box_rsolid(2, 2, 2)
297
297
  b = scad.make_box_rsolid(2, 2, 2, bottom_face_center=(1, 0, 0))
298
- result = scad.intersect_rsolidlist(a, b)
298
+ result = scad.intersect_rsolid(a, b)
299
299
  ```
300
300
 
301
301
  Serialized node:
302
302
 
303
303
  ```json
304
304
  {
305
- "op": "make_intersect_rsolidlist",
305
+ "op": "make_intersect_rsolid",
306
306
  "params": {
307
307
  "input_count": 2
308
308
  },
@@ -311,7 +311,7 @@ Serialized node:
311
311
  }
312
312
  ```
313
313
 
314
- Replay effect: replays inputs and calls `intersect_rsolidlist(first, rest)`.
314
+ Replay effect: replays inputs and calls `intersect_rsolid(first, rest)`.
315
315
 
316
316
  ## Fillet
317
317
 
@@ -278,8 +278,8 @@ from simplecadapi import (
278
278
  make_box_rsolid,
279
279
  make_cylinder_rsolid,
280
280
  union_rsolid,
281
- cut_rsolidlist,
282
- intersect_rsolidlist
281
+ cut_rsolid,
282
+ intersect_rsolid
283
283
  )
284
284
 
285
285
  def boolean_operations_example():
@@ -298,12 +298,12 @@ def boolean_operations_example():
298
298
  apply_tag(union_result, "combined_geometry")
299
299
 
300
300
  # 差集运算(从盒子中减去圆柱)
301
- cut_result = cut_rsolidlist(box, cylinder)[0]
301
+ cut_result = cut_rsolid(box, cylinder)[0]
302
302
  apply_tag(cut_result, "cut_result")
303
303
  apply_tag(cut_result, "with_hole")
304
304
 
305
305
  # 交集运算
306
- intersect_result = intersect_rsolidlist(box, cylinder)[0]
306
+ intersect_result = intersect_rsolid(box, cylinder)[0]
307
307
  apply_tag(intersect_result, "intersect_result")
308
308
  apply_tag(intersect_result, "common_volume")
309
309
 
@@ -439,7 +439,7 @@ from simplecadapi import (
439
439
  make_cylinder_rsolid,
440
440
  make_sphere_rsolid,
441
441
  union_rsolid,
442
- cut_rsolidlist,
442
+ cut_rsolid,
443
443
  translate_shape,
444
444
  rotate_shape
445
445
  )
@@ -478,7 +478,7 @@ def create_complex_geometry():
478
478
 
479
479
  # 减去孔
480
480
  for hole in holes:
481
- complex_solid = cut_rsolidlist(complex_solid, hole)[0]
481
+ complex_solid = cut_rsolid(complex_solid, hole)[0]
482
482
 
483
483
  # 标记复杂几何体
484
484
  apply_tag(complex_solid, "complex_geometry")
@@ -1,12 +1,12 @@
1
1
  [project]
2
2
  name = "simplecadapi"
3
- version = "2.0.0b3"
3
+ version = "2.0.0b4"
4
4
  description = "A simplified OCP-native CAD modeling Python API"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
7
7
  authors = [{ name = "倪旌哲", email = "nijingzhe@zju.edu.cn" }]
8
8
  maintainers = [{ name = "倪旌哲", email = "nijingzhe@zju.edu.cn" }]
9
- requires-python = ">=3.10"
9
+ requires-python = ">=3.10,<3.14"
10
10
  keywords = ["cad", "modeling", "3d", "design", "ocp", "opencascade"]
11
11
  classifiers = [
12
12
  "Development Status :: 3 - Alpha",
@@ -19,12 +19,13 @@ classifiers = [
19
19
  "Programming Language :: Python :: 3.10",
20
20
  "Programming Language :: Python :: 3.11",
21
21
  "Programming Language :: Python :: 3.12",
22
+ "Programming Language :: Python :: 3.13",
22
23
  "Operating System :: OS Independent",
23
24
  ]
24
25
  dependencies = [
25
26
  "numpy>=1.21.0",
26
27
  "rich>=14.0.0",
27
- "cadquery-ocp>=7.8.1",
28
+ "cadquery-ocp>=7.9.3.1",
28
29
  ]
29
30
 
30
31
  [project.optional-dependencies]
@@ -58,8 +58,8 @@ from .operations import (
58
58
  select_edges_by_tag,
59
59
  select_faces_by_tag,
60
60
  # 布尔运算
61
- cut_rsolidlist,
62
- intersect_rsolidlist,
61
+ cut_rsolid,
62
+ intersect_rsolid,
63
63
  union_rsolid,
64
64
  # 导出
65
65
  export_step,
@@ -156,8 +156,8 @@ extrude = extrude_rsolid
156
156
  revolve = revolve_rsolid
157
157
 
158
158
  # 布尔运算别名
159
- cut = cut_rsolidlist
160
- intersect = intersect_rsolidlist
159
+ cut = cut_rsolid
160
+ intersect = intersect_rsolid
161
161
  union = union_rsolid
162
162
 
163
163
  # 导出别名
@@ -220,8 +220,8 @@ __all__ = [
220
220
  "select_edges_by_tag",
221
221
  "select_faces_by_tag",
222
222
  # 布尔运算
223
- "cut_rsolidlist",
224
- "intersect_rsolidlist",
223
+ "cut_rsolid",
224
+ "intersect_rsolid",
225
225
  "union_rsolid",
226
226
  # 导出
227
227
  "export_step",
@@ -105,8 +105,8 @@ ALIAS_RULES = {
105
105
  "extrude_rsolid": "extrude",
106
106
  "revolve_rsolid": "revolve",
107
107
  "union_rsolid": "union",
108
- "cut_rsolidlist": "cut",
109
- "intersect_rsolidlist": "intersect",
108
+ "cut_rsolid": "cut",
109
+ "intersect_rsolid": "intersect",
110
110
  "export_step": "to_step",
111
111
  "export_stl": "to_stl",
112
112
  }
@@ -488,7 +488,7 @@ class SkillPackager:
488
488
  15. If a task depends on model replay or interchange, prefer `export_model_json()` output over hand-written payloads.
489
489
 
490
490
  ## Boolean result discipline
491
- - `union_rsolid(...)`, `cut_rsolidlist(...)`, and `intersect_rsolidlist(...)` accept mixed inputs: standalone `Solid`, lists of `Solid`, and nested sequences.
491
+ - `union_rsolid(...)`, `cut_rsolid(...)`, and `intersect_rsolid(...)` accept mixed inputs: standalone `Solid`, lists of `Solid`, and nested sequences.
492
492
  - They return a single `Solid`.
493
493
  - `union_rsolid(...)` already applies the package's default glue mode and a conservative internal tolerance.
494
494
  - If a union cannot produce exactly one merged solid, it fails explicitly instead of returning multiple pieces.
@@ -497,7 +497,7 @@ class SkillPackager:
497
497
  ## Modeling Mental Model
498
498
  - Start with intent: identify the part, its reference axes, critical profiles, and the features that produce the final solid.
499
499
  - Build from lower-dimensional geometry to higher-dimensional geometry: `Vertex` / `Edge` / `Wire` / `Face` profiles first, then `Solid` features such as extrude, revolve, loft, and sweep.
500
- - Keep modeling operations functional. Create new values from public functions such as `make_circle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolidlist(...)`, and `fillet_rsolid(...)`.
500
+ - Keep modeling operations functional. Create new values from public functions such as `make_circle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolid(...)`, and `fillet_rsolid(...)`.
501
501
  - Use `GraphSession` when the model should be replayable, inspectable, exported as model JSON, or translated to another CAD system.
502
502
  - Treat model JSON as the interchange boundary. Prefer `export_model_json(session)` and `replay_model_json(payload)` over hand-authored operation payloads.
503
503
  - Use QL for precise grounding. Query faces, edges, centers, normals, areas, lengths, curve types, and tags; print only the facts needed to validate the current step.
@@ -725,7 +725,7 @@ class SkillPackager:
725
725
 
726
726
  - Use `union_rsolid(...)` when multiple solids should become one integrated body.
727
727
  - Ensure bodies that should union into one solid have real geometric overlap or embedding.
728
- - Use `cut_rsolidlist(...)` for subtractive features and `intersect_rsolidlist(...)` for common-volume workflows.
728
+ - Use `cut_rsolid(...)` for subtractive features and `intersect_rsolid(...)` for common-volume workflows.
729
729
  - Validate body count and volume after major boolean operations.
730
730
  """
731
731
  )
@@ -45,7 +45,7 @@ def make_n_hole_flange_rsolid(
45
45
  print(f" 法兰内孔圆柱创建成功,直径: {flange_inner_diameter}mm")
46
46
 
47
47
  # 从外圆柱中减去内孔形成法兰主体
48
- flange_body = cut_rsolidlist(outer_cylinder, inner_cylinder)
48
+ flange_body = cut_rsolid(outer_cylinder, inner_cylinder)
49
49
  body_volume = flange_body.get_volume()
50
50
  print(f" 法兰主体创建完成,体积: {body_volume:.2f} mm³")
51
51
 
@@ -88,7 +88,7 @@ def make_n_hole_flange_rsolid(
88
88
  print(f" 凸起圆环内孔创建成功,直径: {flange_inner_diameter}mm")
89
89
 
90
90
  # 从凸起圆环中减去内孔,形成环形凸起
91
- boss_ring = cut_rsolidlist(boss_outer_solid, boss_inner_hole)
91
+ boss_ring = cut_rsolid(boss_outer_solid, boss_inner_hole)
92
92
  print(" 凸起圆环内孔切割完成,形成环形凸起")
93
93
 
94
94
  # 合并法兰主体和凸起圆环
@@ -141,7 +141,7 @@ def make_n_hole_flange_rsolid(
141
141
  )
142
142
 
143
143
  # 切割孔
144
- current_flange = cut_rsolidlist(current_flange, hole)
144
+ current_flange = cut_rsolid(current_flange, hole)
145
145
  print(f" 第{i + 1}个孔位置: ({x:.2f}, {y:.2f}), 角度: {angle:.1f}°")
146
146
 
147
147
  flange_with_holes = current_flange
@@ -506,7 +506,7 @@ def make_threaded_rod_rsolid(
506
506
  # 步骤3: 从螺杆中减去螺纹切割体形成螺纹
507
507
  print(" 步骤3: 切割螺纹...")
508
508
 
509
- thread_solid = cut_rsolidlist(thread_solid, helical_cut_solid)
509
+ thread_solid = cut_rsolid(thread_solid, helical_cut_solid)
510
510
  print(" 螺纹切割完成")
511
511
 
512
512
  except Exception as e:
@@ -84,9 +84,9 @@ _OP_EXPRESSION_BINDINGS: Dict[str, Tuple[Tuple[str, Tuple[Any, ...]], ...]] = {
84
84
  ),
85
85
  "make_loft_rsolid": (("Ruled", ("ruled",)),),
86
86
  "make_sweep_rsolid": (("Frenet", ("is_frenet",)),),
87
- "make_cut_rsolidlist": (),
87
+ "make_cut_rsolid": (),
88
88
  "make_union_rsolid": (),
89
- "make_intersect_rsolidlist": (),
89
+ "make_intersect_rsolid": (),
90
90
  "make_fillet_rsolid": (),
91
91
  "make_chamfer_rsolid": (),
92
92
  "make_shell_rsolid": (("Value", ("thickness",)),),
@@ -2388,7 +2388,7 @@ def _resolve_vec3_param(params, param_exprs, key):
2388
2388
  lines.extend(finish())
2389
2389
  return lines
2390
2390
 
2391
- if node.op == "make_cut_rsolidlist" and len(inputs) >= 2:
2391
+ if node.op == "make_cut_rsolid" and len(inputs) >= 2:
2392
2392
  lines: List[str]
2393
2393
  if len(inputs) == 2:
2394
2394
  lines = [
@@ -2424,7 +2424,7 @@ def _resolve_vec3_param(params, param_exprs, key):
2424
2424
  lines.extend(finish())
2425
2425
  return lines
2426
2426
 
2427
- if node.op == "make_intersect_rsolidlist" and len(inputs) >= 2:
2427
+ if node.op == "make_intersect_rsolid" and len(inputs) >= 2:
2428
2428
  if len(inputs) == 2:
2429
2429
  lines = [
2430
2430
  f"{var_name} = doc.addObject('Part::Common', {_json_ascii(object_name)})",
@@ -297,7 +297,7 @@ def record_operation_if_active(
297
297
  """Record an operation only when a session is active.
298
298
 
299
299
  This is the seamless bridge used by the original modeling APIs.
300
- Users keep calling `make_box_rsolid(...)` or `cut_rsolidlist(...)`; when a
300
+ Users keep calling `make_box_rsolid(...)` or `cut_rsolid(...)`; when a
301
301
  graph session exists, the operation is recorded automatically and its
302
302
  outputs are annotated with hidden lineage state.
303
303
  """