simplecadapi 2.0.0__tar.gz → 2.0.2__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 (295) hide show
  1. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/.gitignore +9 -1
  2. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/PKG-INFO +193 -62
  3. simplecadapi-2.0.2/README.md +218 -0
  4. {simplecadapi-2.0.0/src → simplecadapi-2.0.2}/docs/api/README.md +53 -12
  5. simplecadapi-2.0.2/docs/api/add_part_rassembly.md +13 -0
  6. simplecadapi-2.0.2/docs/api/and_.md +25 -0
  7. simplecadapi-2.0.2/docs/api/bounds_rbbox.md +23 -0
  8. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/chamfer_rsolid.md +16 -16
  9. simplecadapi-2.0.2/docs/api/clear_constraints_rassembly.md +13 -0
  10. simplecadapi-2.0.2/docs/api/clone_assembly_rassembly.md +13 -0
  11. simplecadapi-2.0.2/docs/api/constrain_coincident_rassembly.md +13 -0
  12. simplecadapi-2.0.2/docs/api/constrain_concentric_rassembly.md +13 -0
  13. simplecadapi-2.0.2/docs/api/constrain_distance_rassembly.md +13 -0
  14. simplecadapi-2.0.2/docs/api/constrain_offset_rassembly.md +13 -0
  15. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/cut_rsolidlist.md +11 -11
  16. simplecadapi-2.0.2/docs/api/eval_rarray.md +35 -0
  17. simplecadapi-2.0.2/docs/api/eval_rscalar.md +35 -0
  18. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/export_step.md +7 -7
  19. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/export_stl.md +7 -7
  20. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/extrude_rsolid.md +16 -16
  21. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/fillet_rsolid.md +16 -16
  22. simplecadapi-2.0.2/docs/api/geo.md +29 -0
  23. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/helical_sweep_rsolid.md +22 -22
  24. simplecadapi-2.0.2/docs/api/intersect_rscalarfield.md +23 -0
  25. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/intersect_rsolidlist.md +11 -11
  26. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/linear_pattern_rsolidlist.md +18 -18
  27. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/loft_rsolid.md +14 -14
  28. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_angle_arc_redge.md +21 -21
  29. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_angle_arc_rwire.md +15 -15
  30. simplecadapi-2.0.2/docs/api/make_assembly_rassembly.md +13 -0
  31. simplecadapi-2.0.2/docs/api/make_box_rscalarfield.md +27 -0
  32. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_box_rsolid.md +19 -19
  33. simplecadapi-2.0.2/docs/api/make_capsule_rscalarfield.md +31 -0
  34. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_circle_redge.md +16 -16
  35. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_circle_rface.md +15 -15
  36. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_circle_rwire.md +15 -15
  37. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_cone_rsolid.md +19 -19
  38. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_cylinder_rsolid.md +19 -19
  39. simplecadapi-2.0.2/docs/api/make_ellipsoid_rscalarfield.md +27 -0
  40. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_face_from_wire_rface.md +14 -14
  41. simplecadapi-2.0.2/docs/api/make_field_surface_rsolid.md +52 -0
  42. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_helix_redge.md +20 -20
  43. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_helix_rwire.md +19 -19
  44. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_line_redge.md +14 -14
  45. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_n_hole_flange_rsolid.md +25 -25
  46. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_naca_propeller_blade_rsolid.md +19 -19
  47. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_point_rvertex.md +16 -16
  48. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_polyline_rwire.md +14 -14
  49. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_rectangle_rface.md +17 -17
  50. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_rectangle_rwire.md +18 -18
  51. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_segment_redge.md +12 -12
  52. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_segment_rwire.md +13 -13
  53. simplecadapi-2.0.2/docs/api/make_sphere_rscalarfield.md +27 -0
  54. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_sphere_rsolid.md +15 -15
  55. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_spline_redge.md +14 -14
  56. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_spline_rwire.md +15 -15
  57. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_threaded_rod_rsolid.md +19 -19
  58. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_three_point_arc_redge.md +16 -16
  59. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_three_point_arc_rwire.md +15 -15
  60. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_wire_from_edges_rwire.md +11 -11
  61. simplecadapi-2.0.2/docs/api/meta.md +45 -0
  62. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/mirror_shape.md +16 -16
  63. simplecadapi-2.0.2/docs/api/not_.md +25 -0
  64. simplecadapi-2.0.2/docs/api/or_.md +25 -0
  65. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/radial_pattern_rsolidlist.md +20 -20
  66. simplecadapi-2.0.2/docs/api/render_screenshot_rpath.md +68 -0
  67. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/revolve_rsolid.md +18 -18
  68. simplecadapi-2.0.2/docs/api/rotate_part_rassembly.md +13 -0
  69. simplecadapi-2.0.2/docs/api/rotate_rscalarfield.md +31 -0
  70. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/rotate_shape.md +18 -18
  71. simplecadapi-2.0.2/docs/api/scale_rscalarfield.md +27 -0
  72. simplecadapi-2.0.2/docs/api/select.md +25 -0
  73. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/select_edges_by_tag.md +7 -7
  74. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/select_faces_by_tag.md +7 -7
  75. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/set_tag.md +7 -7
  76. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/shell_rsolid.md +16 -16
  77. simplecadapi-2.0.2/docs/api/smooth_subtract_rscalarfield.md +31 -0
  78. simplecadapi-2.0.2/docs/api/smooth_union_rscalarfield.md +31 -0
  79. simplecadapi-2.0.2/docs/api/solve_assembly_rresult.md +13 -0
  80. simplecadapi-2.0.2/docs/api/stack.md +27 -0
  81. simplecadapi-2.0.2/docs/api/stack_rassembly.md +13 -0
  82. simplecadapi-2.0.2/docs/api/subtract_rscalarfield.md +27 -0
  83. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/sweep_rsolid.md +16 -16
  84. simplecadapi-2.0.2/docs/api/tag.md +37 -0
  85. simplecadapi-2.0.2/docs/api/translate_part_rassembly.md +13 -0
  86. simplecadapi-2.0.2/docs/api/translate_rscalarfield.md +27 -0
  87. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/translate_shape.md +14 -14
  88. simplecadapi-2.0.2/docs/api/union_rscalarfield.md +23 -0
  89. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/union_rsolidlist.md +10 -10
  90. simplecadapi-2.0.2/docs/api/value.md +36 -0
  91. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/README.md +1 -0
  92. simplecadapi-2.0.2/docs/core/declarative_constraints.md +307 -0
  93. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/pyproject.toml +12 -2
  94. simplecadapi-2.0.2/refactor-plan/tagging.md +149 -0
  95. simplecadapi-2.0.2/scripts/sync_ragflow_docs.py +478 -0
  96. simplecadapi-2.0.2/skills/simplecad-self-evolve/SKILL.md +139 -0
  97. simplecadapi-2.0.2/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/__init__.py +3 -0
  98. simplecadapi-2.0.2/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/evolve.py +6 -0
  99. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/EVOLVE_WORKFLOW.md +34 -0
  100. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/LICENSE.txt +339 -0
  101. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/PROJECT_OVERVIEW.md +31 -0
  102. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/PROJECT_README.md +218 -0
  103. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/RUNTIME_INSTALL.md +48 -0
  104. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/README.md +119 -0
  105. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/add_part_rassembly.md +13 -0
  106. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/and_.md +25 -0
  107. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/bounds_rbbox.md +23 -0
  108. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/chamfer_rsolid.md +67 -0
  109. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/clear_constraints_rassembly.md +13 -0
  110. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/clone_assembly_rassembly.md +13 -0
  111. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_coincident_rassembly.md +13 -0
  112. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_concentric_rassembly.md +13 -0
  113. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_distance_rassembly.md +13 -0
  114. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_offset_rassembly.md +13 -0
  115. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/cut_rsolidlist.md +59 -0
  116. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/eval_rarray.md +35 -0
  117. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/eval_rscalar.md +35 -0
  118. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/export_step.md +27 -0
  119. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/export_stl.md +27 -0
  120. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/extrude_rsolid.md +65 -0
  121. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/fillet_rsolid.md +69 -0
  122. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/geo.md +29 -0
  123. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/helical_sweep_rsolid.md +83 -0
  124. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/intersect_rscalarfield.md +23 -0
  125. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/intersect_rsolidlist.md +60 -0
  126. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/linear_pattern_rsolidlist.md +70 -0
  127. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/loft_rsolid.md +63 -0
  128. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_redge.md +77 -0
  129. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_rwire.md +69 -0
  130. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_assembly_rassembly.md +13 -0
  131. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_box_rscalarfield.md +27 -0
  132. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_box_rsolid.md +75 -0
  133. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_capsule_rscalarfield.md +31 -0
  134. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_circle_redge.md +61 -0
  135. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_circle_rface.md +57 -0
  136. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_circle_rwire.md +55 -0
  137. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_cone_rsolid.md +66 -0
  138. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_cylinder_rsolid.md +74 -0
  139. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_ellipsoid_rscalarfield.md +27 -0
  140. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_face_from_wire_rface.md +60 -0
  141. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_field_surface_rsolid.md +52 -0
  142. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_helix_redge.md +71 -0
  143. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_helix_rwire.md +67 -0
  144. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_line_redge.md +57 -0
  145. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_n_hole_flange_rsolid.md +94 -0
  146. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_naca_propeller_blade_rsolid.md +74 -0
  147. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_point_rvertex.md +62 -0
  148. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_polyline_rwire.md +59 -0
  149. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rface.md +62 -0
  150. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rwire.md +66 -0
  151. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_segment_redge.md +46 -0
  152. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_segment_rwire.md +50 -0
  153. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_sphere_rscalarfield.md +27 -0
  154. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_sphere_rsolid.md +64 -0
  155. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_spline_redge.md +60 -0
  156. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_spline_rwire.md +57 -0
  157. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_threaded_rod_rsolid.md +79 -0
  158. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_redge.md +61 -0
  159. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_rwire.md +56 -0
  160. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_wire_from_edges_rwire.md +49 -0
  161. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/meta.md +45 -0
  162. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/mirror_shape.md +64 -0
  163. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/not_.md +25 -0
  164. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/or_.md +25 -0
  165. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/radial_pattern_rsolidlist.md +74 -0
  166. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/render_screenshot_rpath.md +68 -0
  167. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/revolve_rsolid.md +70 -0
  168. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/rotate_part_rassembly.md +13 -0
  169. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/rotate_rscalarfield.md +31 -0
  170. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/rotate_shape.md +70 -0
  171. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/scale_rscalarfield.md +27 -0
  172. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/select.md +25 -0
  173. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/select_edges_by_tag.md +27 -0
  174. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/select_faces_by_tag.md +27 -0
  175. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/set_tag.md +27 -0
  176. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/shell_rsolid.md +67 -0
  177. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/smooth_subtract_rscalarfield.md +31 -0
  178. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/smooth_union_rscalarfield.md +31 -0
  179. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/solve_assembly_rresult.md +13 -0
  180. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/stack.md +27 -0
  181. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/stack_rassembly.md +13 -0
  182. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/subtract_rscalarfield.md +27 -0
  183. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/sweep_rsolid.md +68 -0
  184. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/tag.md +37 -0
  185. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/translate_part_rassembly.md +13 -0
  186. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/translate_rscalarfield.md +27 -0
  187. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/translate_shape.md +59 -0
  188. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/union_rscalarfield.md +23 -0
  189. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/union_rsolidlist.md +51 -0
  190. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/value.md +36 -0
  191. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/README.md +213 -0
  192. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/compound.md +635 -0
  193. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/coordinate_system.md +175 -0
  194. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/declarative_constraints.md +307 -0
  195. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/edge.md +389 -0
  196. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/face.md +550 -0
  197. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/shell.md +518 -0
  198. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/simple_workplane.md +278 -0
  199. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/solid.md +697 -0
  200. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/tagged_mixin.md +692 -0
  201. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/vertex.md +320 -0
  202. simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/wire.md +452 -0
  203. simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/add_new_case.sh +24 -0
  204. simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/evolve_case.py +190 -0
  205. simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/install.sh +88 -0
  206. simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/jupyter_with_skill.sh +39 -0
  207. simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/repl_bootstrap.py +108 -0
  208. simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/validate_skill.sh +50 -0
  209. simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/with_skill.sh +113 -0
  210. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/__init__.py +54 -0
  211. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/auto_docs_gen.py +83 -39
  212. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/evolution.py +52 -26
  213. simplecadapi-2.0.2/src/simplecadapi/auto_tools/skill_pack.py +1456 -0
  214. simplecadapi-2.0.2/src/simplecadapi/constraints.py +1168 -0
  215. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/core.py +53 -11
  216. simplecadapi-2.0.2/src/simplecadapi/field.py +480 -0
  217. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/operations.py +855 -3
  218. simplecadapi-2.0.2/src/simplecadapi/ql.py +363 -0
  219. simplecadapi-2.0.2/src/simplecadapi/tagging.py +137 -0
  220. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/test/test_all_features.py +260 -0
  221. simplecadapi-2.0.2/test/test_auto_docs_gen.py +102 -0
  222. simplecadapi-2.0.2/test/test_field_surface.py +80 -0
  223. simplecadapi-2.0.2/test/test_ql.py +74 -0
  224. simplecadapi-2.0.2/test/test_tagging_refactor.py +74 -0
  225. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/uv.lock +944 -4
  226. simplecadapi-2.0.0/README.md +0 -87
  227. simplecadapi-2.0.0/sandbox/test.py +0 -135
  228. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/.python-version +0 -0
  229. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/LICENSE +0 -0
  230. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/MANIFEST.in +0 -0
  231. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/compound.md +0 -0
  232. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/coordinate_system.md +0 -0
  233. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/edge.md +0 -0
  234. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/face.md +0 -0
  235. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/shell.md +0 -0
  236. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/simple_workplane.md +0 -0
  237. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/solid.md +0 -0
  238. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/tagged_mixin.md +0 -0
  239. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/vertex.md +0 -0
  240. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/wire.md +0 -0
  241. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/examples.py +0 -0
  242. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/scripts/publish.sh +0 -0
  243. {simplecadapi-2.0.0 → simplecadapi-2.0.2/src}/docs/api/README.md +0 -0
  244. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/chamfer_rsolid.md +0 -0
  245. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/cut_rsolidlist.md +0 -0
  246. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/export_step.md +0 -0
  247. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/export_stl.md +0 -0
  248. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/extrude_rsolid.md +0 -0
  249. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/fillet_rsolid.md +0 -0
  250. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/helical_sweep_rsolid.md +0 -0
  251. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/intersect_rsolidlist.md +0 -0
  252. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/linear_pattern_rsolidlist.md +0 -0
  253. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/loft_rsolid.md +0 -0
  254. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_angle_arc_redge.md +0 -0
  255. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_angle_arc_rwire.md +0 -0
  256. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_box_rsolid.md +0 -0
  257. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_circle_redge.md +0 -0
  258. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_circle_rface.md +0 -0
  259. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_circle_rwire.md +0 -0
  260. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_cone_rsolid.md +0 -0
  261. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_cylinder_rsolid.md +0 -0
  262. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_face_from_wire_rface.md +0 -0
  263. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_helix_redge.md +0 -0
  264. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_helix_rwire.md +0 -0
  265. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_line_redge.md +0 -0
  266. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_n_hole_flange_rsolid.md +0 -0
  267. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_naca_propeller_blade_rsolid.md +0 -0
  268. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_point_rvertex.md +0 -0
  269. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_polyline_rwire.md +0 -0
  270. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_rectangle_rface.md +0 -0
  271. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_rectangle_rwire.md +0 -0
  272. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_segment_redge.md +0 -0
  273. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_segment_rwire.md +0 -0
  274. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_sphere_rsolid.md +0 -0
  275. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_spline_redge.md +0 -0
  276. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_spline_rwire.md +0 -0
  277. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_threaded_rod_rsolid.md +0 -0
  278. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_three_point_arc_redge.md +0 -0
  279. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_three_point_arc_rwire.md +0 -0
  280. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_wire_from_edges_rwire.md +0 -0
  281. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/mirror_shape.md +0 -0
  282. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/radial_pattern_rsolidlist.md +0 -0
  283. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/revolve_rsolid.md +0 -0
  284. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/rotate_shape.md +0 -0
  285. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/select_edges_by_tag.md +0 -0
  286. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/select_faces_by_tag.md +0 -0
  287. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/set_tag.md +0 -0
  288. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/shell_rsolid.md +0 -0
  289. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/sweep_rsolid.md +0 -0
  290. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/translate_shape.md +0 -0
  291. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/union_rsolidlist.md +0 -0
  292. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/__init__.py +0 -0
  293. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/make_export.py +0 -0
  294. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/evolve.py +0 -0
  295. {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/py.typed +0 -0
@@ -9,6 +9,14 @@ wheels/
9
9
  # Virtual environments
10
10
  .venv
11
11
 
12
+ .env
13
+
12
14
  output/
13
15
 
14
- .DS_Store
16
+ # Sandbox artifacts
17
+ sandbox/
18
+
19
+ # Generated skills archives
20
+ skills/*.tar.gz
21
+
22
+ .DS_Store
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simplecadapi
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: A simplified CAD modeling Python API based on CADQuery
5
5
  Project-URL: Homepage, https://github.com/NiJingzhe/SimpleCADAPI
6
6
  Project-URL: Repository, https://github.com/NiJingzhe/SimpleCADAPI
@@ -374,90 +374,221 @@ Provides-Extra: editor
374
374
  Requires-Dist: cq-editor>=0.5.0; extra == 'editor'
375
375
  Description-Content-Type: text/markdown
376
376
 
377
- # CAD建模形式化Python API设计与实现
377
+ # SimpleCADAPI
378
378
 
379
- ---
379
+ SimpleCADAPI 是一个基于 CADQuery 的命令式 CAD 建模 Python 包,目标是把常见建模动作封装成清晰、可组合、可测试的函数式 API,并支持通过 Skills 方式分发“文档 + 脚本 + 运行时安装”工作流。
380
380
 
381
- ## 简介
381
+ ## README 定位
382
382
 
383
- 本项目旨在使用CadQuery的occ impl.shapes中提供的方法,编写一套命令式的Python API,以简化通过代码进行CAD建模的过程。API设计遵循开放封闭原则,核心类型封闭,所有的操作和扩展都通过新建函数实现。
384
- 同时兼容Numpy库,允许用户在几何体上进行高效的数学运算和变换。
383
+ README 仅包含包级能力、安装方式、发布/打包流程与 Skills 使用说明。
384
+ 实验性脚本和临时建模样例不作为正式文档内容。
385
385
 
386
- ## 详细文档
386
+ ## 包安装(Python 包管理器)
387
387
 
388
- ![Document](./docs/)
388
+ 当前包名:`simplecadapi`,版本:`2.0.2`(见 `pyproject.toml`)。
389
389
 
390
- ## 基础类型
390
+ ### 方式 A:用 pip 从包仓库安装
391
391
 
392
- ### 图元类型
392
+ ```bash
393
+ pip install simplecadapi
394
+ ```
393
395
 
394
- 图元类型和OCP的TopoDS_Shape类型一一对应,主要包括以下几种:
396
+ 开发依赖可选安装:
395
397
 
396
- - `Solid`: 实体类型,表示封闭的三维几何体。
397
- - `Face`: 面类型,表示单个表面。
398
- - `Edge`: 边类型,表示曲线边界。
399
- - `Vertex`: 顶点类型,表示几何体的点。
400
- - `Wire`: 线类型,表示边的集合。
398
+ ```bash
399
+ pip install "simplecadapi[dev]"
400
+ ```
401
401
 
402
- ### 坐标系类型
402
+ ### 方式 B:用 uv 安装
403
403
 
404
- 坐标系类型用于定义三维空间中的位置和方向,我们对于世界坐标系的定义是:一个右手坐标系,原点在(0, 0, 0),默认X轴向前,Y轴向右,Z轴向上。坐标系类型包括:
404
+ 在当前虚拟环境安装:
405
405
 
406
- - `SimpleWorkplane`: 工作平面类型,表示一个二维平面,本质上统计一个原点和一个法向量和一个X轴方向向量。作为一个上下文变量,可以通过with语法包裹操作,那么这些操作就会在这个工作平面下进行。允许嵌套定义Workplane,那么嵌套定义的平面将在上一个平面的基础上进行变换。
406
+ ```bash
407
+ uv pip install simplecadapi
408
+ ```
407
409
 
408
- ## API命名风格
410
+ 作为项目依赖写入 `pyproject.toml`:
409
411
 
410
- - 所有函数名使用小写字母和下划线分隔(snake_case),要求使用动词开头,表示操作或行为,同时需要包含API的返回类型(因为同名API可能会重载为返回不同类型的对象,但我们想要避免这一点),例如:`make_circle_rwire`, `make_circle_redge`, `make_circle_rface`, `extrude_rsolid`等
411
- - 类名使用驼峰命名法(CamelCase)
412
- - 函数和类的文档字符串使用Google风格,包含参数、返回值和异常说明
413
- - 所有函数和类都应有类型注解,确保代码的可读性和可维护性
414
- - 所有函数和类都应有详细的文档字符串,描述其功能、参数、返回值和异常
415
- - 所有函数和类都应有示例代码,便于用户理解和使用
416
- - 所有的代码实现都要有严格且详细的try catch和异常抛出,异常抛出的内容中要求明确指出错误原因,以及用户应当如何在调用层做出怎样的改进可能可以避免这个问题。
412
+ ```bash
413
+ uv add simplecadapi
414
+ ```
417
415
 
418
- ## 扩展原则
416
+ ### 方式 C:从本地构建产物安装
419
417
 
420
- 开放封闭原则,核心类型封闭,所有的操作和扩展都通过新建函数实现。我们可以通过利用现有的函数和操作来组合出新的高级操作并封装为函数来实现功能的扩展。
418
+ 仓库内已有示例构建产物(`dist/`):
421
419
 
422
- ## 自动化工具 (Auto Tools)
420
+ ```bash
421
+ pip install dist/simplecadapi-2.0.2-py3-none-any.whl
422
+ ```
423
423
 
424
- 项目包含一套自动化工具,用于支持API的自进化开发流程:
424
+ 如果你需要重新构建:
425
425
 
426
- ### 主要CLI工具
426
+ ```bash
427
+ uv build
428
+ ```
427
429
 
428
- #### 1. `auto_docs_gen.py` - 动态文档生成
429
- - **功能**: 自动从`operations.py`和`evolve.py`中提取所有API函数
430
- - **特点**:
431
- - 解析函数签名、文档字符串、参数说明、返回值、异常信息
432
- - 自动清理已删除API对应的过期文档
433
- - 支持多源文件与多输出目录参数(`--source`、`--output-dir`)
434
- - **输出**: 生成格式统一的Markdown文档到`docs/api/`目录(默认)
435
- - **使用**: `auto-docs-gen [--source <path>] [--output-dir <dir>] [--no-clean]`
430
+ ## 快速验证安装
436
431
 
437
- #### 2. `make_export.py` - 动态修改__init__.py
438
- - **功能**: 自动更新`__init__.py`文件中的导入和导出
439
- - **特点**:
440
- - 自动检测新增的API函数
441
- - 按功能分类组织导入语句
442
- - 生成友好的别名映射
443
- - 支持预览模式(`--dry-run`)和强制模式(`--force`)
444
- - **使用**: `python make_export.py [--dry-run] [--force]`
432
+ ```python
433
+ import simplecadapi as scad
445
434
 
446
- #### 3. `evolution.py` - 代码自进化
447
- - **功能**: 从指定脚本中自动抽取新的建模函数并添加到`evolve.py`
448
- - **特点**:
449
- - 提取函数完整实现代码
450
- - 自动处理导入语句
451
- - 支持代码自进化开发流程
452
- - **使用**: `python evolution.py <script_path>`
435
+ box = scad.make_box_rsolid(10.0, 20.0, 30.0)
436
+ scad.export_stl(box, "example_box.stl")
437
+ scad.export_step(box, "example_box.step")
438
+ ```
453
439
 
454
- ### 自进化开发流程
440
+ ## 如何打包并使用 Skills
455
441
 
456
- 这套工具支持以下自进化开发流程:
442
+ 本项目提供 `skill-pack` CLI,用于生成轻量技能包(thin mode):**不内置 SDK 源码**,运行时从包仓库安装 `simplecadapi`。
457
443
 
458
- 1. **开发新API**: 在`operations.py`或`evolve.py`中添加新函数
459
- 2. **自动导出**: 运行`make_export.py`更新`__init__.py`
460
- 3. **生成文档**: 运行`auto_docs_gen.py`生成API文档
461
- 4. **持续进化**: 重复上述流程实现API的持续进化
444
+ ### 1) 打包命令
462
445
 
463
- 所有工具都支持错误处理和详细的日志输出,确保开发流程的稳定性和可追踪性。
446
+ 在仓库根目录执行:
447
+
448
+ ```bash
449
+ uv run skill-pack --refresh-docs --archive --skill-name simplecad-self-evolve
450
+ ```
451
+
452
+ 常用参数:
453
+
454
+ - `--output-root <dir>`:输出目录(默认 `./skills`)
455
+ - `--package-name <pkg>`:运行时安装包名(默认读取 `project.name`)
456
+ - `--package-version <ver>`:运行时安装版本(默认读取 `project.version`)
457
+ - `--no-clean`:不清理已有输出目录
458
+ - `--archive`:额外生成 `<skill-name>.tar.gz`
459
+
460
+ ### 2) 打包结果结构
461
+
462
+ 打包后将得到类似目录:
463
+
464
+ - `skills/simplecad-self-evolve/SKILL.md`
465
+ - `skills/simplecad-self-evolve/scripts/`
466
+ - `skills/simplecad-self-evolve/references/`
467
+ - `skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/`
468
+
469
+ ### 3) 在 skill 目录中安装并检查运行时
470
+
471
+ ```bash
472
+ cd skills/simplecad-self-evolve
473
+ PYTHON_BIN=.venv/bin/python scripts/install.sh
474
+ PYTHON_BIN=.venv/bin/python scripts/with_skill.sh --check
475
+ ```
476
+
477
+ ### 4) 用包装脚本运行你的程序
478
+
479
+ ```bash
480
+ PYTHON_BIN=.venv/bin/python scripts/with_skill.sh -- .venv/bin/python your_script.py
481
+ ```
482
+
483
+ ### 5) 激活 skill-local 案例模块路径
484
+
485
+ ```bash
486
+ eval "$(scripts/with_skill.sh --print-env)"
487
+ ```
488
+
489
+ 激活后可直接导入:
490
+
491
+ ```python
492
+ from simplecad_self_evolve_cases.evolve import make_involute_spur_gear_rsolid
493
+ ```
494
+
495
+ ### 6) 向 skill 本地 evolve 模块追加新函数
496
+
497
+ ```bash
498
+ scripts/add_new_case.sh path/to/new_case.py
499
+ ```
500
+
501
+ ### 7) Jupyter 与结构校验
502
+
503
+ ```bash
504
+ scripts/jupyter_with_skill.sh lab
505
+ scripts/validate_skill.sh
506
+ ```
507
+
508
+ ## 自动化工具(Auto Tools)
509
+
510
+ 项目内置 4 个主要 CLI:
511
+
512
+ - `auto-docs-gen`:从 API 源码生成 `docs/api/` 文档
513
+ - `make-export`:更新 `src/simplecadapi/__init__.py` 的导入导出
514
+ - `evolve`:从脚本提取函数并追加到 evolve 模块
515
+ - `skill-pack`:打包 thin skill(文档 + 脚本 + cases)
516
+
517
+ 示例:
518
+
519
+ ```bash
520
+ uv run make-export --dry-run
521
+ uv run auto-docs-gen
522
+ uv run evolve path/to/your_case.py
523
+ uv run skill-pack --refresh-docs --archive
524
+ ```
525
+
526
+ ## RAGFlow 文档同步
527
+
528
+ `scripts/sync_ragflow_docs.py` 用于把 `docs/` 下的 Markdown 增量同步到指定
529
+ RAGFlow 数据集,并按二级标题(H2)分块;文档的 `chunk_method` 会设置为
530
+ `manual`。
531
+
532
+ 准备环境:
533
+
534
+ ```bash
535
+ .venv/bin/python -m pip install ragflow-sdk
536
+ ```
537
+
538
+ 建议使用 `.env`(已加入 `.gitignore`):
539
+
540
+ ```bash
541
+ RAGFLOW_API_KEY=your_key_here
542
+ RAGFLOW_BASE_URL=http://localhost
543
+ RAGFLOW_DATASET_NAME=SimpleCADAPI
544
+ ```
545
+
546
+ 运行同步:
547
+
548
+ ```bash
549
+ set -a && source .env && set +a
550
+ .venv/bin/python scripts/sync_ragflow_docs.py --create-dataset
551
+ ```
552
+
553
+ 常用参数:
554
+
555
+ - `--dataset-id` / `RAGFLOW_DATASET_ID`:直接指定数据集 ID(避免同名冲突)
556
+ - `--delete-removed`:同步删除本地已移除的文档
557
+ - `--dry-run`:只预览变更,不执行写入
558
+ - `--progress-interval N`:每 N 篇打印一次进度
559
+
560
+ ## 开发与测试
561
+
562
+ 本地开发安装(可编辑):
563
+
564
+ ```bash
565
+ uv pip install -e ".[dev]"
566
+ ```
567
+
568
+ 运行单元测试:
569
+
570
+ ```bash
571
+ uv run python -m unittest test/test_all_features.py
572
+ ```
573
+
574
+ 运行示例:
575
+
576
+ ```bash
577
+ uv run python examples.py
578
+ ```
579
+
580
+ ## 核心设计约束(简要)
581
+
582
+ - API 函数统一使用 `snake_case`,并通过函数名体现返回类型(如 `*_rsolid`、`*_rwire`)。
583
+ - 核心类型尽量稳定,功能扩展通过新增函数完成(开放封闭原则)。
584
+ - 支持 `SimpleWorkplane` 上下文进行局部坐标建模。
585
+ - 导出接口支持单实体、多实体及嵌套列表输入。
586
+
587
+ ## 文档入口
588
+
589
+ - API 文档:`docs/api/`
590
+ - Core 文档:`docs/core/`
591
+
592
+ ## License
593
+
594
+ MIT,见 `LICENSE`。
@@ -0,0 +1,218 @@
1
+ # SimpleCADAPI
2
+
3
+ SimpleCADAPI 是一个基于 CADQuery 的命令式 CAD 建模 Python 包,目标是把常见建模动作封装成清晰、可组合、可测试的函数式 API,并支持通过 Skills 方式分发“文档 + 脚本 + 运行时安装”工作流。
4
+
5
+ ## README 定位
6
+
7
+ 本 README 仅包含包级能力、安装方式、发布/打包流程与 Skills 使用说明。
8
+ 实验性脚本和临时建模样例不作为正式文档内容。
9
+
10
+ ## 包安装(Python 包管理器)
11
+
12
+ 当前包名:`simplecadapi`,版本:`2.0.2`(见 `pyproject.toml`)。
13
+
14
+ ### 方式 A:用 pip 从包仓库安装
15
+
16
+ ```bash
17
+ pip install simplecadapi
18
+ ```
19
+
20
+ 开发依赖可选安装:
21
+
22
+ ```bash
23
+ pip install "simplecadapi[dev]"
24
+ ```
25
+
26
+ ### 方式 B:用 uv 安装
27
+
28
+ 在当前虚拟环境安装:
29
+
30
+ ```bash
31
+ uv pip install simplecadapi
32
+ ```
33
+
34
+ 作为项目依赖写入 `pyproject.toml`:
35
+
36
+ ```bash
37
+ uv add simplecadapi
38
+ ```
39
+
40
+ ### 方式 C:从本地构建产物安装
41
+
42
+ 仓库内已有示例构建产物(`dist/`):
43
+
44
+ ```bash
45
+ pip install dist/simplecadapi-2.0.2-py3-none-any.whl
46
+ ```
47
+
48
+ 如果你需要重新构建:
49
+
50
+ ```bash
51
+ uv build
52
+ ```
53
+
54
+ ## 快速验证安装
55
+
56
+ ```python
57
+ import simplecadapi as scad
58
+
59
+ box = scad.make_box_rsolid(10.0, 20.0, 30.0)
60
+ scad.export_stl(box, "example_box.stl")
61
+ scad.export_step(box, "example_box.step")
62
+ ```
63
+
64
+ ## 如何打包并使用 Skills
65
+
66
+ 本项目提供 `skill-pack` CLI,用于生成轻量技能包(thin mode):**不内置 SDK 源码**,运行时从包仓库安装 `simplecadapi`。
67
+
68
+ ### 1) 打包命令
69
+
70
+ 在仓库根目录执行:
71
+
72
+ ```bash
73
+ uv run skill-pack --refresh-docs --archive --skill-name simplecad-self-evolve
74
+ ```
75
+
76
+ 常用参数:
77
+
78
+ - `--output-root <dir>`:输出目录(默认 `./skills`)
79
+ - `--package-name <pkg>`:运行时安装包名(默认读取 `project.name`)
80
+ - `--package-version <ver>`:运行时安装版本(默认读取 `project.version`)
81
+ - `--no-clean`:不清理已有输出目录
82
+ - `--archive`:额外生成 `<skill-name>.tar.gz`
83
+
84
+ ### 2) 打包结果结构
85
+
86
+ 打包后将得到类似目录:
87
+
88
+ - `skills/simplecad-self-evolve/SKILL.md`
89
+ - `skills/simplecad-self-evolve/scripts/`
90
+ - `skills/simplecad-self-evolve/references/`
91
+ - `skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/`
92
+
93
+ ### 3) 在 skill 目录中安装并检查运行时
94
+
95
+ ```bash
96
+ cd skills/simplecad-self-evolve
97
+ PYTHON_BIN=.venv/bin/python scripts/install.sh
98
+ PYTHON_BIN=.venv/bin/python scripts/with_skill.sh --check
99
+ ```
100
+
101
+ ### 4) 用包装脚本运行你的程序
102
+
103
+ ```bash
104
+ PYTHON_BIN=.venv/bin/python scripts/with_skill.sh -- .venv/bin/python your_script.py
105
+ ```
106
+
107
+ ### 5) 激活 skill-local 案例模块路径
108
+
109
+ ```bash
110
+ eval "$(scripts/with_skill.sh --print-env)"
111
+ ```
112
+
113
+ 激活后可直接导入:
114
+
115
+ ```python
116
+ from simplecad_self_evolve_cases.evolve import make_involute_spur_gear_rsolid
117
+ ```
118
+
119
+ ### 6) 向 skill 本地 evolve 模块追加新函数
120
+
121
+ ```bash
122
+ scripts/add_new_case.sh path/to/new_case.py
123
+ ```
124
+
125
+ ### 7) Jupyter 与结构校验
126
+
127
+ ```bash
128
+ scripts/jupyter_with_skill.sh lab
129
+ scripts/validate_skill.sh
130
+ ```
131
+
132
+ ## 自动化工具(Auto Tools)
133
+
134
+ 项目内置 4 个主要 CLI:
135
+
136
+ - `auto-docs-gen`:从 API 源码生成 `docs/api/` 文档
137
+ - `make-export`:更新 `src/simplecadapi/__init__.py` 的导入导出
138
+ - `evolve`:从脚本提取函数并追加到 evolve 模块
139
+ - `skill-pack`:打包 thin skill(文档 + 脚本 + cases)
140
+
141
+ 示例:
142
+
143
+ ```bash
144
+ uv run make-export --dry-run
145
+ uv run auto-docs-gen
146
+ uv run evolve path/to/your_case.py
147
+ uv run skill-pack --refresh-docs --archive
148
+ ```
149
+
150
+ ## RAGFlow 文档同步
151
+
152
+ `scripts/sync_ragflow_docs.py` 用于把 `docs/` 下的 Markdown 增量同步到指定
153
+ RAGFlow 数据集,并按二级标题(H2)分块;文档的 `chunk_method` 会设置为
154
+ `manual`。
155
+
156
+ 准备环境:
157
+
158
+ ```bash
159
+ .venv/bin/python -m pip install ragflow-sdk
160
+ ```
161
+
162
+ 建议使用 `.env`(已加入 `.gitignore`):
163
+
164
+ ```bash
165
+ RAGFLOW_API_KEY=your_key_here
166
+ RAGFLOW_BASE_URL=http://localhost
167
+ RAGFLOW_DATASET_NAME=SimpleCADAPI
168
+ ```
169
+
170
+ 运行同步:
171
+
172
+ ```bash
173
+ set -a && source .env && set +a
174
+ .venv/bin/python scripts/sync_ragflow_docs.py --create-dataset
175
+ ```
176
+
177
+ 常用参数:
178
+
179
+ - `--dataset-id` / `RAGFLOW_DATASET_ID`:直接指定数据集 ID(避免同名冲突)
180
+ - `--delete-removed`:同步删除本地已移除的文档
181
+ - `--dry-run`:只预览变更,不执行写入
182
+ - `--progress-interval N`:每 N 篇打印一次进度
183
+
184
+ ## 开发与测试
185
+
186
+ 本地开发安装(可编辑):
187
+
188
+ ```bash
189
+ uv pip install -e ".[dev]"
190
+ ```
191
+
192
+ 运行单元测试:
193
+
194
+ ```bash
195
+ uv run python -m unittest test/test_all_features.py
196
+ ```
197
+
198
+ 运行示例:
199
+
200
+ ```bash
201
+ uv run python examples.py
202
+ ```
203
+
204
+ ## 核心设计约束(简要)
205
+
206
+ - API 函数统一使用 `snake_case`,并通过函数名体现返回类型(如 `*_rsolid`、`*_rwire`)。
207
+ - 核心类型尽量稳定,功能扩展通过新增函数完成(开放封闭原则)。
208
+ - 支持 `SimpleWorkplane` 上下文进行局部坐标建模。
209
+ - 导出接口支持单实体、多实体及嵌套列表输入。
210
+
211
+ ## 文档入口
212
+
213
+ - API 文档:`docs/api/`
214
+ - Core 文档:`docs/core/`
215
+
216
+ ## License
217
+
218
+ MIT,见 `LICENSE`。
@@ -1,18 +1,22 @@
1
- # SimpleCAD API 文档索引
1
+ # SimpleCAD API Index
2
2
 
3
- 本文档包含了 SimpleCAD API (来自 `operations.py` `evolve.py`) 的所有函数说明。
3
+ This index includes API docs generated from `operations.py`, `evolve.py`, `constraints.py`, and `ql.py`.
4
4
 
5
- ## 基础图形创建
5
+ ## Basic Creation
6
6
 
7
7
  - [make_angle_arc_redge](make_angle_arc_redge.md) *(来自 operations.py)*
8
8
  - [make_angle_arc_rwire](make_angle_arc_rwire.md) *(来自 operations.py)*
9
+ - [make_box_rscalarfield](make_box_rscalarfield.md) *(来自 field.py)*
9
10
  - [make_box_rsolid](make_box_rsolid.md) *(来自 operations.py)*
11
+ - [make_capsule_rscalarfield](make_capsule_rscalarfield.md) *(来自 field.py)*
10
12
  - [make_circle_redge](make_circle_redge.md) *(来自 operations.py)*
11
13
  - [make_circle_rface](make_circle_rface.md) *(来自 operations.py)*
12
14
  - [make_circle_rwire](make_circle_rwire.md) *(来自 operations.py)*
13
15
  - [make_cone_rsolid](make_cone_rsolid.md) *(来自 operations.py)*
14
16
  - [make_cylinder_rsolid](make_cylinder_rsolid.md) *(来自 operations.py)*
17
+ - [make_ellipsoid_rscalarfield](make_ellipsoid_rscalarfield.md) *(来自 field.py)*
15
18
  - [make_face_from_wire_rface](make_face_from_wire_rface.md) *(来自 operations.py)*
19
+ - [make_field_surface_rsolid](make_field_surface_rsolid.md) *(来自 operations.py)*
16
20
  - [make_helix_redge](make_helix_redge.md) *(来自 operations.py)*
17
21
  - [make_helix_rwire](make_helix_rwire.md) *(来自 operations.py)*
18
22
  - [make_line_redge](make_line_redge.md) *(来自 operations.py)*
@@ -22,6 +26,7 @@
22
26
  - [make_rectangle_rwire](make_rectangle_rwire.md) *(来自 operations.py)*
23
27
  - [make_segment_redge](make_segment_redge.md) *(来自 operations.py)*
24
28
  - [make_segment_rwire](make_segment_rwire.md) *(来自 operations.py)*
29
+ - [make_sphere_rscalarfield](make_sphere_rscalarfield.md) *(来自 field.py)*
25
30
  - [make_sphere_rsolid](make_sphere_rsolid.md) *(来自 operations.py)*
26
31
  - [make_spline_redge](make_spline_redge.md) *(来自 operations.py)*
27
32
  - [make_spline_rwire](make_spline_rwire.md) *(来自 operations.py)*
@@ -29,50 +34,86 @@
29
34
  - [make_three_point_arc_rwire](make_three_point_arc_rwire.md) *(来自 operations.py)*
30
35
  - [make_wire_from_edges_rwire](make_wire_from_edges_rwire.md) *(来自 operations.py)*
31
36
 
32
- ## 变换操作
37
+ ## Transforms
33
38
 
34
39
  - [mirror_shape](mirror_shape.md) *(来自 operations.py)*
40
+ - [rotate_rscalarfield](rotate_rscalarfield.md) *(来自 field.py)*
35
41
  - [rotate_shape](rotate_shape.md) *(来自 operations.py)*
42
+ - [translate_rscalarfield](translate_rscalarfield.md) *(来自 field.py)*
36
43
  - [translate_shape](translate_shape.md) *(来自 operations.py)*
37
44
 
38
- ## 3D操作
45
+ ## 3D Operations
39
46
 
40
47
  - [extrude_rsolid](extrude_rsolid.md) *(来自 operations.py)*
41
48
  - [loft_rsolid](loft_rsolid.md) *(来自 operations.py)*
42
49
  - [revolve_rsolid](revolve_rsolid.md) *(来自 operations.py)*
43
50
  - [sweep_rsolid](sweep_rsolid.md) *(来自 operations.py)*
44
51
 
45
- ## 标签和选择
52
+ ## Tagging and Selection
46
53
 
47
54
  - [select_edges_by_tag](select_edges_by_tag.md) *(来自 operations.py)*
48
55
  - [select_faces_by_tag](select_faces_by_tag.md) *(来自 operations.py)*
49
56
  - [set_tag](set_tag.md) *(来自 operations.py)*
50
57
 
51
- ## 布尔运算
58
+ ## Boolean Operations
52
59
 
53
60
  - [cut_rsolidlist](cut_rsolidlist.md) *(来自 operations.py)*
61
+ - [intersect_rscalarfield](intersect_rscalarfield.md) *(来自 field.py)*
54
62
  - [intersect_rsolidlist](intersect_rsolidlist.md) *(来自 operations.py)*
63
+ - [union_rscalarfield](union_rscalarfield.md) *(来自 field.py)*
55
64
  - [union_rsolidlist](union_rsolidlist.md) *(来自 operations.py)*
56
65
 
57
- ## 导出功能
66
+ ## Export
58
67
 
59
68
  - [export_step](export_step.md) *(来自 operations.py)*
60
69
  - [export_stl](export_stl.md) *(来自 operations.py)*
61
70
 
62
- ## 高级特征
71
+ ## Advanced Features
63
72
 
64
73
  - [chamfer_rsolid](chamfer_rsolid.md) *(来自 operations.py)*
65
74
  - [fillet_rsolid](fillet_rsolid.md) *(来自 operations.py)*
66
75
  - [helical_sweep_rsolid](helical_sweep_rsolid.md) *(来自 operations.py)*
67
76
  - [shell_rsolid](shell_rsolid.md) *(来自 operations.py)*
68
77
 
69
- ## 自进化
78
+ ## Evolve
70
79
 
71
80
  - [make_n_hole_flange_rsolid](make_n_hole_flange_rsolid.md) *(来自 evolve.py)*
72
81
  - [make_naca_propeller_blade_rsolid](make_naca_propeller_blade_rsolid.md) *(来自 evolve.py)*
73
82
  - [make_threaded_rod_rsolid](make_threaded_rod_rsolid.md) *(来自 evolve.py)*
74
83
 
75
- ## 其他
76
-
84
+ ## Assembly Constraints
85
+
86
+ - [add_part_rassembly](add_part_rassembly.md) *(来自 constraints.py)*
87
+ - [clear_constraints_rassembly](clear_constraints_rassembly.md) *(来自 constraints.py)*
88
+ - [clone_assembly_rassembly](clone_assembly_rassembly.md) *(来自 constraints.py)*
89
+ - [constrain_coincident_rassembly](constrain_coincident_rassembly.md) *(来自 constraints.py)*
90
+ - [constrain_concentric_rassembly](constrain_concentric_rassembly.md) *(来自 constraints.py)*
91
+ - [constrain_distance_rassembly](constrain_distance_rassembly.md) *(来自 constraints.py)*
92
+ - [constrain_offset_rassembly](constrain_offset_rassembly.md) *(来自 constraints.py)*
93
+ - [make_assembly_rassembly](make_assembly_rassembly.md) *(来自 constraints.py)*
94
+ - [rotate_part_rassembly](rotate_part_rassembly.md) *(来自 constraints.py)*
95
+ - [solve_assembly_rresult](solve_assembly_rresult.md) *(来自 constraints.py)*
96
+ - [stack](stack.md) *(来自 constraints.py)*
97
+ - [stack_rassembly](stack_rassembly.md) *(来自 constraints.py)*
98
+ - [translate_part_rassembly](translate_part_rassembly.md) *(来自 constraints.py)*
99
+
100
+ ## Other
101
+
102
+ - [and_](and_.md) *(来自 ql.py)*
103
+ - [bounds_rbbox](bounds_rbbox.md) *(来自 field.py)*
104
+ - [eval_rarray](eval_rarray.md) *(来自 field.py)*
105
+ - [eval_rscalar](eval_rscalar.md) *(来自 field.py)*
106
+ - [geo](geo.md) *(来自 ql.py)*
77
107
  - [linear_pattern_rsolidlist](linear_pattern_rsolidlist.md) *(来自 operations.py)*
108
+ - [meta](meta.md) *(来自 ql.py)*
109
+ - [not_](not_.md) *(来自 ql.py)*
110
+ - [or_](or_.md) *(来自 ql.py)*
78
111
  - [radial_pattern_rsolidlist](radial_pattern_rsolidlist.md) *(来自 operations.py)*
112
+ - [render_screenshot_rpath](render_screenshot_rpath.md) *(来自 operations.py)*
113
+ - [scale_rscalarfield](scale_rscalarfield.md) *(来自 field.py)*
114
+ - [select](select.md) *(来自 ql.py)*
115
+ - [smooth_subtract_rscalarfield](smooth_subtract_rscalarfield.md) *(来自 field.py)*
116
+ - [smooth_union_rscalarfield](smooth_union_rscalarfield.md) *(来自 field.py)*
117
+ - [subtract_rscalarfield](subtract_rscalarfield.md) *(来自 field.py)*
118
+ - [tag](tag.md) *(来自 ql.py)*
119
+ - [value](value.md) *(来自 ql.py)*
@@ -0,0 +1,13 @@
1
+ # add_part_rassembly
2
+
3
+ ## API Definition
4
+
5
+ ```python
6
+ def add_part_rassembly(assembly: Assembly, name: str, solid: Solid, parent: Optional[Union[str, PartHandle]] = None, local_transform: Optional[Union[np.ndarray, Sequence[Sequence[float]]]] = None) -> Assembly
7
+ ```
8
+
9
+ *Source: constraints.py*
10
+
11
+ ## Description
12
+
13
+ Type-2映射:在装配空间中新增零件并返回新装配对象。
@@ -0,0 +1,25 @@
1
+ # and_
2
+
3
+ ## API Definition
4
+
5
+ ```python
6
+ def and_(*predicates: Predicate) -> Predicate
7
+ ```
8
+
9
+ *Source: ql.py*
10
+
11
+ ## Description
12
+
13
+ 构造 AND 组合谓词。
14
+
15
+ Q.and_(Q.tag("face.top"), Q.tag("role.mounting_surface"))
16
+
17
+ ## Parameters
18
+
19
+ ### *predicates
20
+
21
+ - **Description**: 任意数量谓词。
22
+
23
+ ## Returns
24
+
25
+ Callable[[Any], bool]: 组合谓词。