simplecadapi 2.0.1__tar.gz → 2.0.1b1__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 (516) hide show
  1. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/.gitignore +8 -0
  2. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/PKG-INFO +127 -169
  3. simplecadapi-2.0.1b1/README.md +176 -0
  4. simplecadapi-2.0.1b1/docs/api/Assembly.md +17 -0
  5. simplecadapi-2.0.1b1/docs/api/BSplineFitResult.md +21 -0
  6. simplecadapi-2.0.1b1/docs/api/Component.md +17 -0
  7. simplecadapi-2.0.1b1/docs/api/Connector.md +20 -0
  8. simplecadapi-2.0.1b1/docs/api/ConnectorRef.md +17 -0
  9. simplecadapi-2.0.1b1/docs/api/Const.md +17 -0
  10. simplecadapi-2.0.1b1/docs/api/Constraint.md +17 -0
  11. simplecadapi-2.0.1b1/docs/api/ConstraintReport.md +17 -0
  12. simplecadapi-2.0.1b1/docs/api/ConstraintResidual.md +17 -0
  13. simplecadapi-2.0.1b1/docs/api/Expr.md +17 -0
  14. simplecadapi-2.0.1b1/docs/api/ExpressionGraph.md +17 -0
  15. simplecadapi-2.0.1b1/docs/api/GeometryRef.md +22 -0
  16. simplecadapi-2.0.1b1/docs/api/GraphSession.md +31 -0
  17. simplecadapi-2.0.1b1/docs/api/Material.md +17 -0
  18. simplecadapi-2.0.1b1/docs/api/Part.md +17 -0
  19. simplecadapi-2.0.1b1/docs/api/Placement.md +17 -0
  20. simplecadapi-2.0.1b1/docs/api/README.md +203 -0
  21. simplecadapi-2.0.1b1/docs/api/ScalarLimit.md +17 -0
  22. simplecadapi-2.0.1b1/docs/api/SemanticDelta.md +17 -0
  23. simplecadapi-2.0.1b1/docs/api/SemanticRef.md +17 -0
  24. simplecadapi-2.0.1b1/docs/api/SimpleCADError.md +17 -0
  25. simplecadapi-2.0.1b1/docs/api/Sketch.md +24 -0
  26. simplecadapi-2.0.1b1/docs/api/SketchConstraint.md +17 -0
  27. simplecadapi-2.0.1b1/docs/api/SketchConstraintDiagnostic.md +17 -0
  28. simplecadapi-2.0.1b1/docs/api/SketchRef.md +17 -0
  29. simplecadapi-2.0.1b1/docs/api/SketchSolveResult.md +17 -0
  30. simplecadapi-2.0.1b1/docs/api/Var.md +17 -0
  31. simplecadapi-2.0.1b1/docs/api/add_circle_rsketch.md +17 -0
  32. simplecadapi-2.0.1b1/docs/api/add_component_rassembly.md +17 -0
  33. simplecadapi-2.0.1b1/docs/api/add_connector_rassembly.md +17 -0
  34. simplecadapi-2.0.1b1/docs/api/add_connector_rpart.md +17 -0
  35. simplecadapi-2.0.1b1/docs/api/add_fixed_constraint_rassembly.md +17 -0
  36. simplecadapi-2.0.1b1/docs/api/add_line_rsketch.md +17 -0
  37. simplecadapi-2.0.1b1/docs/api/add_point_rsketch.md +17 -0
  38. simplecadapi-2.0.1b1/docs/api/add_prismatic_constraint_rassembly.md +17 -0
  39. simplecadapi-2.0.1b1/docs/api/add_revolute_constraint_rassembly.md +17 -0
  40. simplecadapi-2.0.1b1/docs/api/and_.md +17 -0
  41. simplecadapi-2.0.1b1/docs/api/apply_tag.md +23 -0
  42. simplecadapi-2.0.1b1/docs/api/assign_material_rpart.md +17 -0
  43. simplecadapi-2.0.1b1/docs/api/chamfer_rsolid.md +17 -0
  44. simplecadapi-2.0.1b1/docs/api/const_function.md +17 -0
  45. simplecadapi-2.0.1b1/docs/api/constrain_angle_rsketch.md +17 -0
  46. simplecadapi-2.0.1b1/docs/api/constrain_coincident_rsketch.md +17 -0
  47. simplecadapi-2.0.1b1/docs/api/constrain_collinear_rsketch.md +17 -0
  48. simplecadapi-2.0.1b1/docs/api/constrain_concentric_rsketch.md +17 -0
  49. simplecadapi-2.0.1b1/docs/api/constrain_connect_rsketch.md +17 -0
  50. simplecadapi-2.0.1b1/docs/api/constrain_diameter_rsketch.md +17 -0
  51. simplecadapi-2.0.1b1/docs/api/constrain_distance_rsketch.md +17 -0
  52. simplecadapi-2.0.1b1/docs/api/constrain_distance_x_rsketch.md +17 -0
  53. simplecadapi-2.0.1b1/docs/api/constrain_distance_y_rsketch.md +17 -0
  54. simplecadapi-2.0.1b1/docs/api/constrain_equal_length_rsketch.md +17 -0
  55. simplecadapi-2.0.1b1/docs/api/constrain_equal_radius_rsketch.md +17 -0
  56. simplecadapi-2.0.1b1/docs/api/constrain_fix_rsketch.md +17 -0
  57. simplecadapi-2.0.1b1/docs/api/constrain_horizontal_rsketch.md +17 -0
  58. simplecadapi-2.0.1b1/docs/api/constrain_length_rsketch.md +17 -0
  59. simplecadapi-2.0.1b1/docs/api/constrain_midpoint_rsketch.md +17 -0
  60. simplecadapi-2.0.1b1/docs/api/constrain_parallel_rsketch.md +17 -0
  61. simplecadapi-2.0.1b1/docs/api/constrain_perpendicular_rsketch.md +17 -0
  62. simplecadapi-2.0.1b1/docs/api/constrain_point_on_rsketch.md +17 -0
  63. simplecadapi-2.0.1b1/docs/api/constrain_radius_rsketch.md +17 -0
  64. simplecadapi-2.0.1b1/docs/api/constrain_symmetric_rsketch.md +17 -0
  65. simplecadapi-2.0.1b1/docs/api/constrain_tangent_rsketch.md +17 -0
  66. simplecadapi-2.0.1b1/docs/api/constrain_vertical_rsketch.md +17 -0
  67. simplecadapi-2.0.1b1/docs/api/cut_rsolid.md +34 -0
  68. simplecadapi-2.0.1b1/docs/api/export_graph_json.md +31 -0
  69. simplecadapi-2.0.1b1/docs/api/export_model_json.md +22 -0
  70. simplecadapi-2.0.1b1/docs/api/export_session_json.md +17 -0
  71. simplecadapi-2.0.1b1/docs/api/export_step.md +50 -0
  72. simplecadapi-2.0.1b1/docs/api/export_stl.md +50 -0
  73. simplecadapi-2.0.1b1/docs/api/extrude_rsolid.md +17 -0
  74. simplecadapi-2.0.1b1/docs/api/fillet_rsolid.md +17 -0
  75. simplecadapi-2.0.1b1/docs/api/fit_cubic_bspline_control_points.md +79 -0
  76. simplecadapi-2.0.1b1/docs/api/geo.md +17 -0
  77. simplecadapi-2.0.1b1/docs/api/get_sketch_entity_rsketchref.md +17 -0
  78. simplecadapi-2.0.1b1/docs/api/get_sketch_point_rsketchref.md +17 -0
  79. simplecadapi-2.0.1b1/docs/api/ground_component_rassembly.md +17 -0
  80. simplecadapi-2.0.1b1/docs/api/helical_sweep_rsolid.md +17 -0
  81. simplecadapi-2.0.1b1/docs/api/identity_placement_rplacement.md +17 -0
  82. simplecadapi-2.0.1b1/docs/api/import_graph_json.md +27 -0
  83. simplecadapi-2.0.1b1/docs/api/import_model_json.md +17 -0
  84. simplecadapi-2.0.1b1/docs/api/import_session_json.md +17 -0
  85. simplecadapi-2.0.1b1/docs/api/inspect_assembly_constraints_rconstraintreport.md +17 -0
  86. simplecadapi-2.0.1b1/docs/api/inspect_sketch_rsketchresult.md +17 -0
  87. simplecadapi-2.0.1b1/docs/api/intersect_rsolid.md +31 -0
  88. simplecadapi-2.0.1b1/docs/api/linear_pattern_rsolidlist.md +17 -0
  89. simplecadapi-2.0.1b1/docs/api/list_tags.md +17 -0
  90. simplecadapi-2.0.1b1/docs/api/loft_rsolid.md +17 -0
  91. simplecadapi-2.0.1b1/docs/api/make_angle_arc_redge.md +17 -0
  92. simplecadapi-2.0.1b1/docs/api/make_angle_arc_rwire.md +17 -0
  93. simplecadapi-2.0.1b1/docs/api/make_assembly_rassembly.md +17 -0
  94. simplecadapi-2.0.1b1/docs/api/make_box_rsolid.md +17 -0
  95. simplecadapi-2.0.1b1/docs/api/make_circle_redge.md +17 -0
  96. simplecadapi-2.0.1b1/docs/api/make_circle_rface.md +17 -0
  97. simplecadapi-2.0.1b1/docs/api/make_circle_rwire.md +17 -0
  98. simplecadapi-2.0.1b1/docs/api/make_compound_from_assembly_rcompound.md +17 -0
  99. simplecadapi-2.0.1b1/docs/api/make_cone_rsolid.md +17 -0
  100. simplecadapi-2.0.1b1/docs/api/make_connector_ref_rconnectorref.md +17 -0
  101. simplecadapi-2.0.1b1/docs/api/make_cylinder_rsolid.md +17 -0
  102. simplecadapi-2.0.1b1/docs/api/make_edge_connector_rconnector.md +20 -0
  103. simplecadapi-2.0.1b1/docs/api/make_face_connector_rconnector.md +20 -0
  104. simplecadapi-2.0.1b1/docs/api/make_face_from_sketch_rface.md +17 -0
  105. simplecadapi-2.0.1b1/docs/api/make_face_from_wire_rface.md +17 -0
  106. simplecadapi-2.0.1b1/docs/api/make_helix_redge.md +17 -0
  107. simplecadapi-2.0.1b1/docs/api/make_helix_rwire.md +17 -0
  108. simplecadapi-2.0.1b1/docs/api/make_line_redge.md +17 -0
  109. simplecadapi-2.0.1b1/docs/api/make_material_rmaterial.md +21 -0
  110. simplecadapi-2.0.1b1/docs/api/make_n_hole_flange_rsolid.md +17 -0
  111. simplecadapi-2.0.1b1/docs/api/make_naca_propeller_blade_rsolid.md +17 -0
  112. simplecadapi-2.0.1b1/docs/api/make_part_rpart.md +17 -0
  113. simplecadapi-2.0.1b1/docs/api/make_placement_rplacement.md +20 -0
  114. simplecadapi-2.0.1b1/docs/api/make_point_rvertex.md +17 -0
  115. simplecadapi-2.0.1b1/docs/api/make_polyline_rwire.md +17 -0
  116. simplecadapi-2.0.1b1/docs/api/make_rectangle_rface.md +17 -0
  117. simplecadapi-2.0.1b1/docs/api/make_rectangle_rwire.md +17 -0
  118. simplecadapi-2.0.1b1/docs/api/make_scalar_limit_rscalarlimit.md +17 -0
  119. simplecadapi-2.0.1b1/docs/api/make_segment_redge.md +17 -0
  120. simplecadapi-2.0.1b1/docs/api/make_segment_rwire.md +17 -0
  121. simplecadapi-2.0.1b1/docs/api/make_sketch_rsketch.md +20 -0
  122. simplecadapi-2.0.1b1/docs/api/make_sphere_rsolid.md +17 -0
  123. simplecadapi-2.0.1b1/docs/api/make_spline_redge.md +22 -0
  124. simplecadapi-2.0.1b1/docs/api/make_spline_rwire.md +17 -0
  125. simplecadapi-2.0.1b1/docs/api/make_threaded_rod_rsolid.md +17 -0
  126. simplecadapi-2.0.1b1/docs/api/make_three_point_arc_redge.md +17 -0
  127. simplecadapi-2.0.1b1/docs/api/make_three_point_arc_rwire.md +17 -0
  128. simplecadapi-2.0.1b1/docs/api/make_vertex_connector_rconnector.md +20 -0
  129. simplecadapi-2.0.1b1/docs/api/make_wire_from_edges_rwire.md +17 -0
  130. simplecadapi-2.0.1b1/docs/api/make_wire_from_sketch_rwire.md +17 -0
  131. simplecadapi-2.0.1b1/docs/api/measure_constraint_residual_rconstraintresidual.md +17 -0
  132. simplecadapi-2.0.1b1/docs/api/meta.md +35 -0
  133. simplecadapi-2.0.1b1/docs/api/mirror_shape.md +17 -0
  134. simplecadapi-2.0.1b1/docs/api/not_.md +17 -0
  135. simplecadapi-2.0.1b1/docs/api/or_.md +17 -0
  136. simplecadapi-2.0.1b1/docs/api/place_component_rassembly.md +17 -0
  137. simplecadapi-2.0.1b1/docs/api/radial_pattern_rsolidlist.md +17 -0
  138. simplecadapi-2.0.1b1/docs/api/render_screenshot_rpath.md +17 -0
  139. simplecadapi-2.0.1b1/docs/api/replay_graph.md +31 -0
  140. simplecadapi-2.0.1b1/docs/api/replay_model_json.md +17 -0
  141. simplecadapi-2.0.1b1/docs/api/revolve_rsolid.md +17 -0
  142. simplecadapi-2.0.1b1/docs/api/rotate_shape.md +17 -0
  143. simplecadapi-2.0.1b1/docs/api/select.md +17 -0
  144. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/docs/api/select_edges_by_tag.md +4 -14
  145. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/docs/api/select_faces_by_tag.md +4 -14
  146. simplecadapi-2.0.1b1/docs/api/shell_rsolid.md +17 -0
  147. simplecadapi-2.0.1b1/docs/api/solve_assembly_constraints_rassembly.md +28 -0
  148. simplecadapi-2.0.1b1/docs/api/suspend_graph_recording.md +17 -0
  149. simplecadapi-2.0.1b1/docs/api/sweep_rsolid.md +17 -0
  150. simplecadapi-2.0.1b1/docs/api/tag.md +27 -0
  151. simplecadapi-2.0.1b1/docs/api/translate_model_json_to_fcstd.md +30 -0
  152. simplecadapi-2.0.1b1/docs/api/translate_model_json_to_freecad_script.md +23 -0
  153. simplecadapi-2.0.1b1/docs/api/translate_shape.md +17 -0
  154. simplecadapi-2.0.1b1/docs/api/unground_component_rassembly.md +17 -0
  155. simplecadapi-2.0.1b1/docs/api/union_rsolid.md +53 -0
  156. simplecadapi-2.0.1b1/docs/api/value.md +31 -0
  157. simplecadapi-2.0.1b1/docs/api/var_function.md +17 -0
  158. simplecadapi-2.0.1b1/docs/architecture/sdk-architecture-review.md +369 -0
  159. simplecadapi-2.0.1b1/docs/core/README.md +106 -0
  160. simplecadapi-2.0.1b1/docs/core/compound.md +22 -0
  161. simplecadapi-2.0.1b1/docs/core/coordinate_system.md +30 -0
  162. simplecadapi-2.0.1b1/docs/core/declarative_constraints.md +65 -0
  163. {simplecadapi-2.0.1/skills/simplecad-self-evolve/references → simplecadapi-2.0.1b1}/docs/core/edge.md +87 -90
  164. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/docs/core/face.md +108 -113
  165. simplecadapi-2.0.1b1/docs/core/operation_graph_json_spec.md +1606 -0
  166. simplecadapi-2.0.1b1/docs/core/part_assembly_development_plan.md +448 -0
  167. simplecadapi-2.0.1b1/docs/core/rearchitecture_2_0.md +1071 -0
  168. simplecadapi-2.0.1b1/docs/core/rearchitecture_2_0_requirements.md +423 -0
  169. simplecadapi-2.0.1b1/docs/core/serialization/README.md +62 -0
  170. simplecadapi-2.0.1b1/docs/core/serialization/expressions-and-replay.md +145 -0
  171. simplecadapi-2.0.1b1/docs/core/serialization/features-booleans-transforms.md +468 -0
  172. simplecadapi-2.0.1b1/docs/core/serialization/primitives-and-profiles.md +465 -0
  173. simplecadapi-2.0.1b1/docs/core/serialization/scalar-fields.md +13 -0
  174. simplecadapi-2.0.1b1/docs/core/shell.md +11 -0
  175. simplecadapi-2.0.1b1/docs/core/simple_workplane.md +26 -0
  176. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/docs/core/solid.md +164 -135
  177. simplecadapi-2.0.1b1/docs/core/tagged_mixin.md +90 -0
  178. {simplecadapi-2.0.1/skills/simplecad-self-evolve/references → simplecadapi-2.0.1b1}/docs/core/vertex.md +80 -113
  179. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/docs/core/wire.md +94 -99
  180. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/pyproject.toml +28 -8
  181. simplecadapi-2.0.1b1/src/simplecadapi/__init__.py +470 -0
  182. simplecadapi-2.0.1b1/src/simplecadapi/_vendor_warning_filters.py +25 -0
  183. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/src/simplecadapi/auto_tools/auto_docs_gen.py +369 -40
  184. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/src/simplecadapi/auto_tools/evolution.py +6 -28
  185. simplecadapi-2.0.1b1/src/simplecadapi/auto_tools/make_export.py +616 -0
  186. simplecadapi-2.0.1b1/src/simplecadapi/auto_tools/skill_pack.py +901 -0
  187. simplecadapi-2.0.1b1/src/simplecadapi/autotag.py +165 -0
  188. simplecadapi-2.0.1b1/src/simplecadapi/core.py +1049 -0
  189. simplecadapi-2.0.1b1/src/simplecadapi/errors.py +153 -0
  190. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/src/simplecadapi/evolve.py +162 -170
  191. simplecadapi-2.0.1b1/src/simplecadapi/expr.py +415 -0
  192. simplecadapi-2.0.1b1/src/simplecadapi/frame.py +82 -0
  193. simplecadapi-2.0.1b1/src/simplecadapi/freecad_translator.py +4422 -0
  194. simplecadapi-2.0.1b1/src/simplecadapi/graph.py +397 -0
  195. simplecadapi-2.0.1b1/src/simplecadapi/kernel/__init__.py +1 -0
  196. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_booleans.py +93 -0
  197. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_builders.py +74 -0
  198. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_cast.py +72 -0
  199. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_curves.py +143 -0
  200. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_export.py +53 -0
  201. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_features.py +76 -0
  202. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_mesh.py +72 -0
  203. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_properties.py +266 -0
  204. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_topology.py +69 -0
  205. simplecadapi-2.0.1b1/src/simplecadapi/kernel/ocp_transforms.py +116 -0
  206. simplecadapi-2.0.1b1/src/simplecadapi/math.py +574 -0
  207. simplecadapi-2.0.1b1/src/simplecadapi/operations.py +7025 -0
  208. simplecadapi-2.0.1b1/src/simplecadapi/product.py +1317 -0
  209. simplecadapi-2.0.1b1/src/simplecadapi/ql.py +1023 -0
  210. simplecadapi-2.0.1b1/src/simplecadapi/serializer.py +2285 -0
  211. simplecadapi-2.0.1b1/src/simplecadapi/sketch.py +1208 -0
  212. simplecadapi-2.0.1b1/src/simplecadapi/std/__init__.py +15 -0
  213. simplecadapi-2.0.1b1/src/simplecadapi/std/gear.py +1076 -0
  214. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/src/simplecadapi/tagging.py +39 -21
  215. simplecadapi-2.0.1b1/src/simplecadapi/topology.py +753 -0
  216. simplecadapi-2.0.1b1/src/simplecadapi/tracking.py +886 -0
  217. simplecadapi-2.0.1/.python-version +0 -1
  218. simplecadapi-2.0.1/README.md +0 -218
  219. simplecadapi-2.0.1/docs/api/README.md +0 -119
  220. simplecadapi-2.0.1/docs/api/add_part_rassembly.md +0 -13
  221. simplecadapi-2.0.1/docs/api/and_.md +0 -25
  222. simplecadapi-2.0.1/docs/api/bounds_rbbox.md +0 -23
  223. simplecadapi-2.0.1/docs/api/chamfer_rsolid.md +0 -67
  224. simplecadapi-2.0.1/docs/api/clear_constraints_rassembly.md +0 -13
  225. simplecadapi-2.0.1/docs/api/clone_assembly_rassembly.md +0 -13
  226. simplecadapi-2.0.1/docs/api/constrain_coincident_rassembly.md +0 -13
  227. simplecadapi-2.0.1/docs/api/constrain_concentric_rassembly.md +0 -13
  228. simplecadapi-2.0.1/docs/api/constrain_distance_rassembly.md +0 -13
  229. simplecadapi-2.0.1/docs/api/constrain_offset_rassembly.md +0 -13
  230. simplecadapi-2.0.1/docs/api/cut_rsolidlist.md +0 -59
  231. simplecadapi-2.0.1/docs/api/eval_rarray.md +0 -35
  232. simplecadapi-2.0.1/docs/api/eval_rscalar.md +0 -35
  233. simplecadapi-2.0.1/docs/api/export_step.md +0 -27
  234. simplecadapi-2.0.1/docs/api/export_stl.md +0 -27
  235. simplecadapi-2.0.1/docs/api/extrude_rsolid.md +0 -65
  236. simplecadapi-2.0.1/docs/api/fillet_rsolid.md +0 -69
  237. simplecadapi-2.0.1/docs/api/geo.md +0 -29
  238. simplecadapi-2.0.1/docs/api/helical_sweep_rsolid.md +0 -83
  239. simplecadapi-2.0.1/docs/api/intersect_rscalarfield.md +0 -23
  240. simplecadapi-2.0.1/docs/api/intersect_rsolidlist.md +0 -60
  241. simplecadapi-2.0.1/docs/api/linear_pattern_rsolidlist.md +0 -70
  242. simplecadapi-2.0.1/docs/api/loft_rsolid.md +0 -63
  243. simplecadapi-2.0.1/docs/api/make_angle_arc_redge.md +0 -77
  244. simplecadapi-2.0.1/docs/api/make_angle_arc_rwire.md +0 -69
  245. simplecadapi-2.0.1/docs/api/make_assembly_rassembly.md +0 -13
  246. simplecadapi-2.0.1/docs/api/make_box_rscalarfield.md +0 -27
  247. simplecadapi-2.0.1/docs/api/make_box_rsolid.md +0 -75
  248. simplecadapi-2.0.1/docs/api/make_capsule_rscalarfield.md +0 -31
  249. simplecadapi-2.0.1/docs/api/make_circle_redge.md +0 -61
  250. simplecadapi-2.0.1/docs/api/make_circle_rface.md +0 -57
  251. simplecadapi-2.0.1/docs/api/make_circle_rwire.md +0 -55
  252. simplecadapi-2.0.1/docs/api/make_cone_rsolid.md +0 -66
  253. simplecadapi-2.0.1/docs/api/make_cylinder_rsolid.md +0 -74
  254. simplecadapi-2.0.1/docs/api/make_ellipsoid_rscalarfield.md +0 -27
  255. simplecadapi-2.0.1/docs/api/make_face_from_wire_rface.md +0 -60
  256. simplecadapi-2.0.1/docs/api/make_field_surface_rsolid.md +0 -52
  257. simplecadapi-2.0.1/docs/api/make_helix_redge.md +0 -71
  258. simplecadapi-2.0.1/docs/api/make_helix_rwire.md +0 -67
  259. simplecadapi-2.0.1/docs/api/make_line_redge.md +0 -57
  260. simplecadapi-2.0.1/docs/api/make_n_hole_flange_rsolid.md +0 -94
  261. simplecadapi-2.0.1/docs/api/make_naca_propeller_blade_rsolid.md +0 -74
  262. simplecadapi-2.0.1/docs/api/make_point_rvertex.md +0 -62
  263. simplecadapi-2.0.1/docs/api/make_polyline_rwire.md +0 -59
  264. simplecadapi-2.0.1/docs/api/make_rectangle_rface.md +0 -62
  265. simplecadapi-2.0.1/docs/api/make_rectangle_rwire.md +0 -66
  266. simplecadapi-2.0.1/docs/api/make_segment_redge.md +0 -46
  267. simplecadapi-2.0.1/docs/api/make_segment_rwire.md +0 -50
  268. simplecadapi-2.0.1/docs/api/make_sphere_rscalarfield.md +0 -27
  269. simplecadapi-2.0.1/docs/api/make_sphere_rsolid.md +0 -64
  270. simplecadapi-2.0.1/docs/api/make_spline_redge.md +0 -60
  271. simplecadapi-2.0.1/docs/api/make_spline_rwire.md +0 -57
  272. simplecadapi-2.0.1/docs/api/make_threaded_rod_rsolid.md +0 -79
  273. simplecadapi-2.0.1/docs/api/make_three_point_arc_redge.md +0 -61
  274. simplecadapi-2.0.1/docs/api/make_three_point_arc_rwire.md +0 -56
  275. simplecadapi-2.0.1/docs/api/make_wire_from_edges_rwire.md +0 -49
  276. simplecadapi-2.0.1/docs/api/meta.md +0 -45
  277. simplecadapi-2.0.1/docs/api/mirror_shape.md +0 -64
  278. simplecadapi-2.0.1/docs/api/not_.md +0 -25
  279. simplecadapi-2.0.1/docs/api/or_.md +0 -25
  280. simplecadapi-2.0.1/docs/api/radial_pattern_rsolidlist.md +0 -74
  281. simplecadapi-2.0.1/docs/api/render_screenshot_rpath.md +0 -68
  282. simplecadapi-2.0.1/docs/api/revolve_rsolid.md +0 -70
  283. simplecadapi-2.0.1/docs/api/rotate_part_rassembly.md +0 -13
  284. simplecadapi-2.0.1/docs/api/rotate_rscalarfield.md +0 -31
  285. simplecadapi-2.0.1/docs/api/rotate_shape.md +0 -70
  286. simplecadapi-2.0.1/docs/api/scale_rscalarfield.md +0 -27
  287. simplecadapi-2.0.1/docs/api/select.md +0 -25
  288. simplecadapi-2.0.1/docs/api/set_tag.md +0 -27
  289. simplecadapi-2.0.1/docs/api/shell_rsolid.md +0 -67
  290. simplecadapi-2.0.1/docs/api/smooth_subtract_rscalarfield.md +0 -31
  291. simplecadapi-2.0.1/docs/api/smooth_union_rscalarfield.md +0 -31
  292. simplecadapi-2.0.1/docs/api/solve_assembly_rresult.md +0 -13
  293. simplecadapi-2.0.1/docs/api/stack.md +0 -27
  294. simplecadapi-2.0.1/docs/api/stack_rassembly.md +0 -13
  295. simplecadapi-2.0.1/docs/api/subtract_rscalarfield.md +0 -27
  296. simplecadapi-2.0.1/docs/api/sweep_rsolid.md +0 -68
  297. simplecadapi-2.0.1/docs/api/tag.md +0 -37
  298. simplecadapi-2.0.1/docs/api/translate_part_rassembly.md +0 -13
  299. simplecadapi-2.0.1/docs/api/translate_rscalarfield.md +0 -27
  300. simplecadapi-2.0.1/docs/api/translate_shape.md +0 -59
  301. simplecadapi-2.0.1/docs/api/union_rscalarfield.md +0 -23
  302. simplecadapi-2.0.1/docs/api/union_rsolidlist.md +0 -51
  303. simplecadapi-2.0.1/docs/api/value.md +0 -36
  304. simplecadapi-2.0.1/docs/core/README.md +0 -213
  305. simplecadapi-2.0.1/docs/core/compound.md +0 -635
  306. simplecadapi-2.0.1/docs/core/coordinate_system.md +0 -175
  307. simplecadapi-2.0.1/docs/core/declarative_constraints.md +0 -307
  308. simplecadapi-2.0.1/docs/core/edge.md +0 -389
  309. simplecadapi-2.0.1/docs/core/shell.md +0 -518
  310. simplecadapi-2.0.1/docs/core/simple_workplane.md +0 -278
  311. simplecadapi-2.0.1/docs/core/tagged_mixin.md +0 -692
  312. simplecadapi-2.0.1/docs/core/vertex.md +0 -320
  313. simplecadapi-2.0.1/examples.py +0 -949
  314. simplecadapi-2.0.1/refactor-plan/tagging.md +0 -149
  315. simplecadapi-2.0.1/sandbox/@1/funnel_trial.stl +0 -0
  316. simplecadapi-2.0.1/sandbox/@1/grooved_fillet_ring_trial.stl +0 -0
  317. simplecadapi-2.0.1/sandbox/@1/loft_head_pin_trial.stl +0 -0
  318. simplecadapi-2.0.1/sandbox/@1/ring_ear_step_boss_trial.stl +0 -0
  319. simplecadapi-2.0.1/sandbox/@2/loft_head_pin_trial.stl +0 -0
  320. simplecadapi-2.0.1/sandbox/@2/ring_ear_step_boss_trial.stl +0 -0
  321. simplecadapi-2.0.1/sandbox/constraint_gear_mesh_showcase.py +0 -485
  322. simplecadapi-2.0.1/sandbox/field_surface_showcase.py +0 -222
  323. simplecadapi-2.0.1/sandbox/gear_case.py +0 -260
  324. simplecadapi-2.0.1/sandbox/grooved_fillet_ring_trial.py +0 -199
  325. simplecadapi-2.0.1/sandbox/helicopter_showcase.py +0 -398
  326. simplecadapi-2.0.1/sandbox/keyboard_model.py +0 -388
  327. simplecadapi-2.0.1/sandbox/loft_head_pin_trial.py +0 -160
  328. simplecadapi-2.0.1/sandbox/model_rounds.md +0 -120
  329. simplecadapi-2.0.1/sandbox/model_rounds.pdf +25 -13195
  330. simplecadapi-2.0.1/sandbox/model_rounds.typ +0 -199
  331. simplecadapi-2.0.1/sandbox/model_rounds_typst.pdf +25 -13195
  332. simplecadapi-2.0.1/sandbox/out/export/helicopter_low.stl +0 -0
  333. simplecadapi-2.0.1/sandbox/out/export/helicopter_low_mesh.stl +0 -26231
  334. simplecadapi-2.0.1/sandbox/out/field_showcase/fuselage.stl +0 -0
  335. simplecadapi-2.0.1/sandbox/out/field_showcase/sphere.stl +0 -0
  336. simplecadapi-2.0.1/sandbox/out/field_showcase/square_mid.stl +0 -0
  337. simplecadapi-2.0.1/sandbox/out/keyboard_assembly.step +0 -25880
  338. simplecadapi-2.0.1/sandbox/out/keyboard_assembly.stl +0 -0
  339. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_custom/helicopter_front.png +0 -0
  340. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_custom/helicopter_iso.png +0 -0
  341. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_custom/helicopter_iso_opposite.png +0 -0
  342. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_custom/helicopter_right.png +0 -0
  343. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_custom/helicopter_top.png +0 -0
  344. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_custom_low/helicopter_iso.png +0 -0
  345. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_custom_low/helicopter_iso_quick.png +0 -0
  346. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views6/helicopter_6views_grid.png +0 -0
  347. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views6/helicopter_back.png +0 -0
  348. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views6/helicopter_bottom.png +0 -0
  349. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views6/helicopter_front.png +0 -0
  350. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views6/helicopter_left.png +0 -0
  351. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views6/helicopter_right.png +0 -0
  352. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views6/helicopter_top.png +0 -0
  353. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views_iso/helicopter_front.png +0 -0
  354. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views_iso/helicopter_iso.png +0 -0
  355. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views_iso/helicopter_iso_and_3views.png +0 -0
  356. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views_iso/helicopter_iso_opposite.png +0 -0
  357. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views_iso/helicopter_right.png +0 -0
  358. simplecadapi-2.0.1/sandbox/out/render_preview/helicopter_views_iso/helicopter_top.png +0 -0
  359. simplecadapi-2.0.1/sandbox/previews/@1/funnel_gt.png +0 -0
  360. simplecadapi-2.0.1/sandbox/previews/@1/funnel_trial.png +0 -0
  361. simplecadapi-2.0.1/sandbox/previews/@1/funnel_trial_3view.png +0 -0
  362. simplecadapi-2.0.1/sandbox/previews/@1/grooved_fillet_ring_gt.png +0 -0
  363. simplecadapi-2.0.1/sandbox/previews/@1/grooved_fillet_ring_trial.png +0 -0
  364. simplecadapi-2.0.1/sandbox/previews/@1/grooved_fillet_ring_trial_3view.png +0 -0
  365. simplecadapi-2.0.1/sandbox/previews/@1/loft_head_pin_gt.png +0 -0
  366. simplecadapi-2.0.1/sandbox/previews/@1/loft_head_pin_trial.png +0 -0
  367. simplecadapi-2.0.1/sandbox/previews/@1/loft_head_pin_trial_3view.png +0 -0
  368. simplecadapi-2.0.1/sandbox/previews/@1/ring_ear_step_boss_gt.png +0 -0
  369. simplecadapi-2.0.1/sandbox/previews/@1/ring_ear_step_boss_trial.png +0 -0
  370. simplecadapi-2.0.1/sandbox/previews/@1/ring_ear_step_boss_trial_3view.png +0 -0
  371. simplecadapi-2.0.1/sandbox/previews/@2/loft_head_pin_trial.png +0 -0
  372. simplecadapi-2.0.1/sandbox/previews/@2/loft_head_pin_trial_3view.png +0 -0
  373. simplecadapi-2.0.1/sandbox/previews/@2/ring_ear_step_boss_trial.png +0 -0
  374. simplecadapi-2.0.1/sandbox/previews/@2/ring_ear_step_boss_trial_3view.png +0 -0
  375. simplecadapi-2.0.1/sandbox/ring_ear_step_boss_trial.py +0 -245
  376. simplecadapi-2.0.1/scripts/publish.sh +0 -45
  377. simplecadapi-2.0.1/scripts/sync_ragflow_docs.py +0 -478
  378. simplecadapi-2.0.1/skills/simplecad-self-evolve/SKILL.md +0 -139
  379. simplecadapi-2.0.1/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/__init__.py +0 -3
  380. simplecadapi-2.0.1/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/evolve.py +0 -322
  381. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/EVOLVE_WORKFLOW.md +0 -34
  382. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/LICENSE.txt +0 -339
  383. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/PROJECT_OVERVIEW.md +0 -31
  384. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/PROJECT_README.md +0 -99
  385. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/RUNTIME_INSTALL.md +0 -48
  386. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/README.md +0 -78
  387. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/chamfer_rsolid.md +0 -67
  388. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/cut_rsolidlist.md +0 -59
  389. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/export_step.md +0 -27
  390. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/export_stl.md +0 -27
  391. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/extrude_rsolid.md +0 -65
  392. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/fillet_rsolid.md +0 -69
  393. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/helical_sweep_rsolid.md +0 -83
  394. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/intersect_rsolidlist.md +0 -60
  395. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/linear_pattern_rsolidlist.md +0 -70
  396. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/loft_rsolid.md +0 -63
  397. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_redge.md +0 -77
  398. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_rwire.md +0 -69
  399. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_box_rsolid.md +0 -75
  400. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_circle_redge.md +0 -61
  401. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_circle_rface.md +0 -57
  402. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_circle_rwire.md +0 -55
  403. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_cone_rsolid.md +0 -66
  404. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_cylinder_rsolid.md +0 -74
  405. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_face_from_wire_rface.md +0 -60
  406. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_helix_redge.md +0 -71
  407. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_helix_rwire.md +0 -67
  408. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_line_redge.md +0 -57
  409. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_n_hole_flange_rsolid.md +0 -94
  410. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_naca_propeller_blade_rsolid.md +0 -74
  411. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_point_rvertex.md +0 -62
  412. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_polyline_rwire.md +0 -59
  413. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rface.md +0 -62
  414. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rwire.md +0 -66
  415. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_segment_redge.md +0 -46
  416. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_segment_rwire.md +0 -50
  417. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_sphere_rsolid.md +0 -64
  418. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_spline_redge.md +0 -60
  419. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_spline_rwire.md +0 -57
  420. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_threaded_rod_rsolid.md +0 -79
  421. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_redge.md +0 -61
  422. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_rwire.md +0 -56
  423. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/make_wire_from_edges_rwire.md +0 -49
  424. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/mirror_shape.md +0 -64
  425. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/radial_pattern_rsolidlist.md +0 -74
  426. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/revolve_rsolid.md +0 -70
  427. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/rotate_shape.md +0 -70
  428. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/select_edges_by_tag.md +0 -27
  429. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/select_faces_by_tag.md +0 -27
  430. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/set_tag.md +0 -27
  431. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/shell_rsolid.md +0 -67
  432. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/sweep_rsolid.md +0 -68
  433. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/translate_shape.md +0 -59
  434. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/api/union_rsolidlist.md +0 -51
  435. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/README.md +0 -212
  436. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/compound.md +0 -635
  437. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/coordinate_system.md +0 -175
  438. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/face.md +0 -550
  439. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/shell.md +0 -518
  440. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/simple_workplane.md +0 -278
  441. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/solid.md +0 -697
  442. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/tagged_mixin.md +0 -692
  443. simplecadapi-2.0.1/skills/simplecad-self-evolve/references/docs/core/wire.md +0 -452
  444. simplecadapi-2.0.1/skills/simplecad-self-evolve/scripts/add_new_case.sh +0 -24
  445. simplecadapi-2.0.1/skills/simplecad-self-evolve/scripts/evolve_case.py +0 -190
  446. simplecadapi-2.0.1/skills/simplecad-self-evolve/scripts/install.sh +0 -88
  447. simplecadapi-2.0.1/skills/simplecad-self-evolve/scripts/jupyter_with_skill.sh +0 -39
  448. simplecadapi-2.0.1/skills/simplecad-self-evolve/scripts/repl_bootstrap.py +0 -108
  449. simplecadapi-2.0.1/skills/simplecad-self-evolve/scripts/validate_skill.sh +0 -50
  450. simplecadapi-2.0.1/skills/simplecad-self-evolve/scripts/with_skill.sh +0 -113
  451. simplecadapi-2.0.1/src/docs/api/README.md +0 -78
  452. simplecadapi-2.0.1/src/docs/api/chamfer_rsolid.md +0 -56
  453. simplecadapi-2.0.1/src/docs/api/cut_rsolidlist.md +0 -48
  454. simplecadapi-2.0.1/src/docs/api/export_step.md +0 -23
  455. simplecadapi-2.0.1/src/docs/api/export_stl.md +0 -23
  456. simplecadapi-2.0.1/src/docs/api/extrude_rsolid.md +0 -54
  457. simplecadapi-2.0.1/src/docs/api/fillet_rsolid.md +0 -58
  458. simplecadapi-2.0.1/src/docs/api/helical_sweep_rsolid.md +0 -71
  459. simplecadapi-2.0.1/src/docs/api/intersect_rsolidlist.md +0 -49
  460. simplecadapi-2.0.1/src/docs/api/linear_pattern_rsolidlist.md +0 -59
  461. simplecadapi-2.0.1/src/docs/api/loft_rsolid.md +0 -52
  462. simplecadapi-2.0.1/src/docs/api/make_angle_arc_redge.md +0 -62
  463. simplecadapi-2.0.1/src/docs/api/make_angle_arc_rwire.md +0 -58
  464. simplecadapi-2.0.1/src/docs/api/make_box_rsolid.md +0 -60
  465. simplecadapi-2.0.1/src/docs/api/make_circle_redge.md +0 -50
  466. simplecadapi-2.0.1/src/docs/api/make_circle_rface.md +0 -50
  467. simplecadapi-2.0.1/src/docs/api/make_circle_rwire.md +0 -48
  468. simplecadapi-2.0.1/src/docs/api/make_cone_rsolid.md +0 -59
  469. simplecadapi-2.0.1/src/docs/api/make_cylinder_rsolid.md +0 -59
  470. simplecadapi-2.0.1/src/docs/api/make_face_from_wire_rface.md +0 -49
  471. simplecadapi-2.0.1/src/docs/api/make_helix_redge.md +0 -60
  472. simplecadapi-2.0.1/src/docs/api/make_helix_rwire.md +0 -60
  473. simplecadapi-2.0.1/src/docs/api/make_line_redge.md +0 -46
  474. simplecadapi-2.0.1/src/docs/api/make_n_hole_flange_rsolid.md +0 -92
  475. simplecadapi-2.0.1/src/docs/api/make_naca_propeller_blade_rsolid.md +0 -71
  476. simplecadapi-2.0.1/src/docs/api/make_point_rvertex.md +0 -51
  477. simplecadapi-2.0.1/src/docs/api/make_polyline_rwire.md +0 -48
  478. simplecadapi-2.0.1/src/docs/api/make_rectangle_rface.md +0 -55
  479. simplecadapi-2.0.1/src/docs/api/make_rectangle_rwire.md +0 -55
  480. simplecadapi-2.0.1/src/docs/api/make_segment_redge.md +0 -39
  481. simplecadapi-2.0.1/src/docs/api/make_segment_rwire.md +0 -43
  482. simplecadapi-2.0.1/src/docs/api/make_sphere_rsolid.md +0 -49
  483. simplecadapi-2.0.1/src/docs/api/make_spline_redge.md +0 -49
  484. simplecadapi-2.0.1/src/docs/api/make_spline_rwire.md +0 -50
  485. simplecadapi-2.0.1/src/docs/api/make_threaded_rod_rsolid.md +0 -76
  486. simplecadapi-2.0.1/src/docs/api/make_three_point_arc_redge.md +0 -50
  487. simplecadapi-2.0.1/src/docs/api/make_three_point_arc_rwire.md +0 -49
  488. simplecadapi-2.0.1/src/docs/api/make_wire_from_edges_rwire.md +0 -42
  489. simplecadapi-2.0.1/src/docs/api/mirror_shape.md +0 -53
  490. simplecadapi-2.0.1/src/docs/api/radial_pattern_rsolidlist.md +0 -63
  491. simplecadapi-2.0.1/src/docs/api/revolve_rsolid.md +0 -59
  492. simplecadapi-2.0.1/src/docs/api/rotate_shape.md +0 -59
  493. simplecadapi-2.0.1/src/docs/api/select_edges_by_tag.md +0 -23
  494. simplecadapi-2.0.1/src/docs/api/select_faces_by_tag.md +0 -23
  495. simplecadapi-2.0.1/src/docs/api/set_tag.md +0 -23
  496. simplecadapi-2.0.1/src/docs/api/shell_rsolid.md +0 -56
  497. simplecadapi-2.0.1/src/docs/api/sweep_rsolid.md +0 -57
  498. simplecadapi-2.0.1/src/docs/api/translate_shape.md +0 -48
  499. simplecadapi-2.0.1/src/docs/api/union_rsolidlist.md +0 -44
  500. simplecadapi-2.0.1/src/simplecadapi/__init__.py +0 -292
  501. simplecadapi-2.0.1/src/simplecadapi/auto_tools/make_export.py +0 -697
  502. simplecadapi-2.0.1/src/simplecadapi/auto_tools/skill_pack.py +0 -1456
  503. simplecadapi-2.0.1/src/simplecadapi/constraints.py +0 -1168
  504. simplecadapi-2.0.1/src/simplecadapi/core.py +0 -1080
  505. simplecadapi-2.0.1/src/simplecadapi/field.py +0 -480
  506. simplecadapi-2.0.1/src/simplecadapi/operations.py +0 -3694
  507. simplecadapi-2.0.1/src/simplecadapi/ql.py +0 -363
  508. simplecadapi-2.0.1/test/test_all_features.py +0 -1126
  509. simplecadapi-2.0.1/test/test_field_surface.py +0 -80
  510. simplecadapi-2.0.1/test/test_ql.py +0 -74
  511. simplecadapi-2.0.1/test/test_tagging_refactor.py +0 -74
  512. simplecadapi-2.0.1/uv.lock +0 -4218
  513. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/LICENSE +0 -0
  514. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/MANIFEST.in +0 -0
  515. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/src/simplecadapi/auto_tools/__init__.py +0 -0
  516. {simplecadapi-2.0.1 → simplecadapi-2.0.1b1}/src/simplecadapi/py.typed +0 -0
@@ -13,7 +13,15 @@ wheels/
13
13
 
14
14
  output/
15
15
 
16
+ # Sandbox artifacts
17
+ sandbox/
18
+
16
19
  # Generated skills archives
17
20
  skills/*.tar.gz
18
21
 
19
22
  .DS_Store
23
+
24
+ # CAD/export artifacts
25
+ *.step
26
+ *.stl
27
+ examples.py
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simplecadapi
3
- Version: 2.0.1
4
- Summary: A simplified CAD modeling Python API based on CADQuery
3
+ Version: 2.0.1b1
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
7
7
  Project-URL: Documentation, https://github.com/NiJingzhe/SimpleCADAPI#readme
@@ -348,7 +348,7 @@ License: GNU GENERAL PUBLIC LICENSE
348
348
  library. If this is what you want to do, use the GNU Lesser General
349
349
  Public License instead of this License.
350
350
  License-File: LICENSE
351
- Keywords: 3d,cad,cadquery,design,modeling
351
+ Keywords: 3d,cad,design,modeling,ocp,opencascade
352
352
  Classifier: Development Status :: 3 - Alpha
353
353
  Classifier: Intended Audience :: Developers
354
354
  Classifier: Intended Audience :: Manufacturing
@@ -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>=2.5.2
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
@@ -371,224 +372,181 @@ Requires-Dist: mypy>=1.0; extra == 'dev'
371
372
  Requires-Dist: pytest-cov>=4.0; extra == 'dev'
372
373
  Requires-Dist: pytest>=7.0; extra == 'dev'
373
374
  Provides-Extra: editor
374
- Requires-Dist: cq-editor>=0.5.0; extra == 'editor'
375
375
  Description-Content-Type: text/markdown
376
376
 
377
377
  # SimpleCADAPI
378
378
 
379
- SimpleCADAPI 是一个基于 CADQuery 的命令式 CAD 建模 Python 包,目标是把常见建模动作封装成清晰、可组合、可测试的函数式 API,并支持通过 Skills 方式分发“文档 + 脚本 + 运行时安装”工作流。
379
+ SimpleCADAPI is an OCP-native Python SDK for building CAD models with clear,
380
+ functional operations and replayable model graphs. It wraps OpenCascade geometry
381
+ in a compact public API for creating solids, applying features, tagging semantic
382
+ intent, querying topology, exporting manufacturing files, and translating recorded
383
+ models into FreeCAD workflows.
380
384
 
381
- ## README 定位
385
+ Current beta: `simplecadapi==2.0.1b1`.
382
386
 
383
- 本 README 仅包含包级能力、安装方式、发布/打包流程与 Skills 使用说明。
384
- 实验性脚本和临时建模样例不作为正式文档内容。
387
+ ## What It Provides
385
388
 
386
- ## 包安装(Python 包管理器)
389
+ - OCP-native shape types: `Vertex`, `Edge`, `Wire`, `Face`, and `Solid`.
390
+ - Functional modeling operations for primitives, profiles, extrude, revolve,
391
+ loft, sweep, booleans, transforms, patterns, fillets, chamfers, and shells.
392
+ - Replayable modeling with `GraphSession`, `export_model_json(...)`,
393
+ `import_model_json(...)`, and `replay_model_json(...)`.
394
+ - Expression parameters with `var(...)`, arithmetic expressions, and serialized
395
+ expression graphs.
396
+ - QL selectors for geometry grounding, topology queries, and stable feature
397
+ selections.
398
+ - Semantic tags through `apply_tag(shape, tag)` and `list_tags(shape)`.
399
+ - STEP/STL export and FreeCAD translation helpers for script or `.FCStd` output.
387
400
 
388
- 当前包名:`simplecadapi`,版本:`2.0.0`(见 `pyproject.toml`)。
389
-
390
- ### 方式 A:用 pip 从包仓库安装
401
+ ## Install
391
402
 
392
403
  ```bash
393
404
  pip install simplecadapi
394
405
  ```
395
406
 
396
- 开发依赖可选安装:
397
-
398
- ```bash
399
- pip install "simplecadapi[dev]"
400
- ```
401
-
402
- ### 方式 B:用 uv 安装
403
-
404
- 在当前虚拟环境安装:
405
-
406
- ```bash
407
- uv pip install simplecadapi
408
- ```
409
-
410
- 作为项目依赖写入 `pyproject.toml`:
407
+ With `uv`:
411
408
 
412
409
  ```bash
413
410
  uv add simplecadapi
414
411
  ```
415
412
 
416
- ### 方式 C:从本地构建产物安装
417
-
418
- 仓库内已有示例构建产物(`dist/`):
419
-
420
- ```bash
421
- pip install dist/simplecadapi-2.0.0-py3-none-any.whl
422
- ```
423
-
424
- 如果你需要重新构建:
413
+ For local development from this repository:
425
414
 
426
415
  ```bash
427
- uv build
416
+ uv sync --group dev
428
417
  ```
429
418
 
430
- ## 快速验证安装
419
+ ## Quick Start
431
420
 
432
421
  ```python
433
- import simplecadapi as scad
434
-
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
- ```
439
-
440
- ## 如何打包并使用 Skills
441
-
442
- 本项目提供 `skill-pack` CLI,用于生成轻量技能包(thin mode):**不内置 SDK 源码**,运行时从包仓库安装 `simplecadapi`。
443
-
444
- ### 1) 打包命令
445
-
446
- 在仓库根目录执行:
447
-
448
- ```bash
449
- uv run skill-pack --refresh-docs --archive --skill-name simplecad-self-evolve
450
- ```
451
-
452
- 常用参数:
422
+ from pathlib import Path
453
423
 
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
- 打包后将得到类似目录:
424
+ import simplecadapi as scad
463
425
 
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/`
426
+ out = Path("out")
427
+ out.mkdir(exist_ok=True)
468
428
 
469
- ### 3) 在 skill 目录中安装并检查运行时
429
+ base = scad.make_box_rsolid(60.0, 36.0, 8.0, bottom_face_center=(0.0, 0.0, 0.0))
430
+ hole = scad.make_cylinder_rsolid(5.0, 14.0, bottom_face_center=(0.0, 0.0, -3.0))
431
+ slot = scad.make_box_rsolid(18.0, 8.0, 14.0, bottom_face_center=(14.0, 0.0, -3.0))
470
432
 
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
- ```
433
+ part = scad.cut_rsolid(base, hole, slot)
434
+ boss = scad.make_cylinder_rsolid(8.0, 7.0, bottom_face_center=(-18.0, 0.0, 8.0))
435
+ part = scad.union_rsolid(part, boss)
436
+ part = scad.apply_tag(part, "role.demo.bracket")
476
437
 
477
- ### 4) 用包装脚本运行你的程序
438
+ print("volume", round(part.get_volume(), 3))
439
+ print("faces", len(part.get_faces()))
440
+ print("tags", scad.list_tags(part))
478
441
 
479
- ```bash
480
- PYTHON_BIN=.venv/bin/python scripts/with_skill.sh -- .venv/bin/python your_script.py
442
+ scad.export_step(part, str(out / "bracket.step"))
443
+ scad.export_stl(part, str(out / "bracket.stl"))
481
444
  ```
482
445
 
483
- ### 5) 激活 skill-local 案例模块路径
484
-
485
- ```bash
486
- eval "$(scripts/with_skill.sh --print-env)"
487
- ```
446
+ ## Replayable Modeling
488
447
 
489
- 激活后可直接导入:
448
+ Use `GraphSession` when a model should be inspectable, serializable, replayable,
449
+ or translated into another CAD environment.
490
450
 
491
451
  ```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
452
+ import simplecadapi as scad
453
+ from simplecadapi import ql as Q
454
+
455
+ with scad.GraphSession() as session:
456
+ body = scad.make_box_rsolid(40.0, 24.0, 10.0, bottom_face_center=(0.0, 0.0, 0.0))
457
+ cutter = scad.make_cylinder_rsolid(4.0, 16.0, bottom_face_center=(0.0, 0.0, -3.0))
458
+ drilled = scad.cut_rsolid(body, cutter)
459
+
460
+ bottom_circle = (
461
+ Q.edges()
462
+ .where(Q.curve_type("circle"))
463
+ .order_by(Q.center_axis("z"))
464
+ .take(1)
465
+ .exactly(1)
466
+ )
467
+ final = scad.chamfer_rsolid(drilled, bottom_circle, 0.6)
468
+
469
+ model_json = scad.export_model_json(session)
470
+ rebuilt = scad.replay_model_json(model_json)
471
+
472
+ print("recorded_nodes", session.graph.node_count)
473
+ print("replayed_outputs", len(rebuilt))
536
474
  ```
537
475
 
538
- 建议使用 `.env`(已加入 `.gitignore`):
476
+ ## Modeling Mental Model
477
+
478
+ - Start from design intent: reference axes, critical profiles, and the features
479
+ that produce the final solid.
480
+ - Build from lower-dimensional geometry to higher-dimensional geometry: profile
481
+ wires/faces first, then solid features such as extrude, revolve, loft, and
482
+ sweep.
483
+ - Keep operations functional. Create new values with public functions such as
484
+ `make_rectangle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolid(...)`, and
485
+ `fillet_rsolid(...)`.
486
+ - Use tags for semantic intent and selection anchors, for example
487
+ `role.mounting.surface`, `anchor.datum.primary`, or `group.fasteners`.
488
+ - Store numeric and geometric facts in metadata or graph payloads, not in tags.
489
+ - Use QL to ground selections by geometry facts rather than relying on topology
490
+ iteration order.
491
+ - When an indexed topology pick is intentional, pass the index to the plural
492
+ child-geometry getter, such as `get_edges(index)`, `get_faces(index)`,
493
+ `get_wires(index)`, or `get_vertices(index)`, so replayable graph workflows
494
+ preserve the pick as a geo select node.
495
+ - Use model JSON as the interchange boundary for replay, tests, and FreeCAD
496
+ translation.
497
+
498
+ ## FreeCAD Translation
499
+
500
+ Recorded model JSON can be translated into a FreeCAD Python script:
539
501
 
540
- ```bash
541
- RAGFLOW_API_KEY=your_key_here
542
- RAGFLOW_BASE_URL=http://localhost
543
- RAGFLOW_DATASET_NAME=SimpleCADAPI
502
+ ```python
503
+ script = scad.translate_model_json_to_freecad_script(model_json)
544
504
  ```
545
505
 
546
- 运行同步:
506
+ If FreeCAD or FreeCADCmd is available, the same model JSON can be written as an
507
+ `.FCStd` file:
547
508
 
548
- ```bash
549
- set -a && source .env && set +a
550
- .venv/bin/python scripts/sync_ragflow_docs.py --create-dataset
509
+ ```python
510
+ scad.translate_model_json_to_fcstd(model_json, "bracket.FCStd")
551
511
  ```
552
512
 
553
- 常用参数:
554
-
555
- - `--dataset-id` / `RAGFLOW_DATASET_ID`:直接指定数据集 ID(避免同名冲突)
556
- - `--delete-removed`:同步删除本地已移除的文档
557
- - `--dry-run`:只预览变更,不执行写入
558
- - `--progress-interval N`:每 N 篇打印一次进度
513
+ Part/Assembly models are written as editable FreeCAD assembly structure: parts are
514
+ `App::Part`, assemblies are `Assembly::AssemblyObject`, and components are links.
515
+ Explicit compound projections remain available for geometry-only STEP export.
559
516
 
560
- ## 开发与测试
517
+ ## Examples
561
518
 
562
- 本地开发安装(可编辑):
519
+ Run examples from the source checkout:
563
520
 
564
521
  ```bash
565
- uv pip install -e ".[dev]"
522
+ uv run python examples/01_basic_modeling.py
523
+ uv run python examples/02_graph_replay.py
524
+ uv run python examples/03_expressions.py
525
+ uv run python examples/05_loft_sweep_revolve.py
526
+ uv run python examples/06_parametric_gear_model.py
527
+ uv run python examples/07_serialization_operation_tree.py
528
+ uv run python examples/08_constrained_sketch.py
529
+ uv run python examples/09_naca0016_blade_freecad.py
530
+ uv run python examples/10_part_assembly.py
566
531
  ```
567
532
 
568
- 运行单元测试:
533
+ ## Documentation
569
534
 
570
- ```bash
571
- uv run python -m unittest test/test_all_features.py
572
- ```
535
+ - Public API reference: [`docs/api/`](docs/api/)
536
+ - Core type and modeling notes: [`docs/core/`](docs/core/)
537
+ - Serialization and replay details:
538
+ [`docs/core/serialization/README.md`](docs/core/serialization/README.md)
539
+ - Operation graph JSON spec:
540
+ [`docs/core/operation_graph_json_spec.md`](docs/core/operation_graph_json_spec.md)
573
541
 
574
- 运行示例:
542
+ ## Development
575
543
 
576
544
  ```bash
577
- uv run python examples.py
545
+ uv sync --group dev
546
+ uv run python -m pytest test tests
547
+ python3 -m compileall src/simplecadapi
578
548
  ```
579
549
 
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
550
  ## License
593
551
 
594
- MIT,见 `LICENSE`。
552
+ MIT, see [`LICENSE`](LICENSE).
@@ -0,0 +1,176 @@
1
+ # SimpleCADAPI
2
+
3
+ SimpleCADAPI is an OCP-native Python SDK for building CAD models with clear,
4
+ functional operations and replayable model graphs. It wraps OpenCascade geometry
5
+ in a compact public API for creating solids, applying features, tagging semantic
6
+ intent, querying topology, exporting manufacturing files, and translating recorded
7
+ models into FreeCAD workflows.
8
+
9
+ Current beta: `simplecadapi==2.0.1b1`.
10
+
11
+ ## What It Provides
12
+
13
+ - OCP-native shape types: `Vertex`, `Edge`, `Wire`, `Face`, and `Solid`.
14
+ - Functional modeling operations for primitives, profiles, extrude, revolve,
15
+ loft, sweep, booleans, transforms, patterns, fillets, chamfers, and shells.
16
+ - Replayable modeling with `GraphSession`, `export_model_json(...)`,
17
+ `import_model_json(...)`, and `replay_model_json(...)`.
18
+ - Expression parameters with `var(...)`, arithmetic expressions, and serialized
19
+ expression graphs.
20
+ - QL selectors for geometry grounding, topology queries, and stable feature
21
+ selections.
22
+ - Semantic tags through `apply_tag(shape, tag)` and `list_tags(shape)`.
23
+ - STEP/STL export and FreeCAD translation helpers for script or `.FCStd` output.
24
+
25
+ ## Install
26
+
27
+ ```bash
28
+ pip install simplecadapi
29
+ ```
30
+
31
+ With `uv`:
32
+
33
+ ```bash
34
+ uv add simplecadapi
35
+ ```
36
+
37
+ For local development from this repository:
38
+
39
+ ```bash
40
+ uv sync --group dev
41
+ ```
42
+
43
+ ## Quick Start
44
+
45
+ ```python
46
+ from pathlib import Path
47
+
48
+ import simplecadapi as scad
49
+
50
+ out = Path("out")
51
+ out.mkdir(exist_ok=True)
52
+
53
+ base = scad.make_box_rsolid(60.0, 36.0, 8.0, bottom_face_center=(0.0, 0.0, 0.0))
54
+ hole = scad.make_cylinder_rsolid(5.0, 14.0, bottom_face_center=(0.0, 0.0, -3.0))
55
+ slot = scad.make_box_rsolid(18.0, 8.0, 14.0, bottom_face_center=(14.0, 0.0, -3.0))
56
+
57
+ part = scad.cut_rsolid(base, hole, slot)
58
+ boss = scad.make_cylinder_rsolid(8.0, 7.0, bottom_face_center=(-18.0, 0.0, 8.0))
59
+ part = scad.union_rsolid(part, boss)
60
+ part = scad.apply_tag(part, "role.demo.bracket")
61
+
62
+ print("volume", round(part.get_volume(), 3))
63
+ print("faces", len(part.get_faces()))
64
+ print("tags", scad.list_tags(part))
65
+
66
+ scad.export_step(part, str(out / "bracket.step"))
67
+ scad.export_stl(part, str(out / "bracket.stl"))
68
+ ```
69
+
70
+ ## Replayable Modeling
71
+
72
+ Use `GraphSession` when a model should be inspectable, serializable, replayable,
73
+ or translated into another CAD environment.
74
+
75
+ ```python
76
+ import simplecadapi as scad
77
+ from simplecadapi import ql as Q
78
+
79
+ with scad.GraphSession() as session:
80
+ body = scad.make_box_rsolid(40.0, 24.0, 10.0, bottom_face_center=(0.0, 0.0, 0.0))
81
+ cutter = scad.make_cylinder_rsolid(4.0, 16.0, bottom_face_center=(0.0, 0.0, -3.0))
82
+ drilled = scad.cut_rsolid(body, cutter)
83
+
84
+ bottom_circle = (
85
+ Q.edges()
86
+ .where(Q.curve_type("circle"))
87
+ .order_by(Q.center_axis("z"))
88
+ .take(1)
89
+ .exactly(1)
90
+ )
91
+ final = scad.chamfer_rsolid(drilled, bottom_circle, 0.6)
92
+
93
+ model_json = scad.export_model_json(session)
94
+ rebuilt = scad.replay_model_json(model_json)
95
+
96
+ print("recorded_nodes", session.graph.node_count)
97
+ print("replayed_outputs", len(rebuilt))
98
+ ```
99
+
100
+ ## Modeling Mental Model
101
+
102
+ - Start from design intent: reference axes, critical profiles, and the features
103
+ that produce the final solid.
104
+ - Build from lower-dimensional geometry to higher-dimensional geometry: profile
105
+ wires/faces first, then solid features such as extrude, revolve, loft, and
106
+ sweep.
107
+ - Keep operations functional. Create new values with public functions such as
108
+ `make_rectangle_rface(...)`, `extrude_rsolid(...)`, `cut_rsolid(...)`, and
109
+ `fillet_rsolid(...)`.
110
+ - Use tags for semantic intent and selection anchors, for example
111
+ `role.mounting.surface`, `anchor.datum.primary`, or `group.fasteners`.
112
+ - Store numeric and geometric facts in metadata or graph payloads, not in tags.
113
+ - Use QL to ground selections by geometry facts rather than relying on topology
114
+ iteration order.
115
+ - When an indexed topology pick is intentional, pass the index to the plural
116
+ child-geometry getter, such as `get_edges(index)`, `get_faces(index)`,
117
+ `get_wires(index)`, or `get_vertices(index)`, so replayable graph workflows
118
+ preserve the pick as a geo select node.
119
+ - Use model JSON as the interchange boundary for replay, tests, and FreeCAD
120
+ translation.
121
+
122
+ ## FreeCAD Translation
123
+
124
+ Recorded model JSON can be translated into a FreeCAD Python script:
125
+
126
+ ```python
127
+ script = scad.translate_model_json_to_freecad_script(model_json)
128
+ ```
129
+
130
+ If FreeCAD or FreeCADCmd is available, the same model JSON can be written as an
131
+ `.FCStd` file:
132
+
133
+ ```python
134
+ scad.translate_model_json_to_fcstd(model_json, "bracket.FCStd")
135
+ ```
136
+
137
+ Part/Assembly models are written as editable FreeCAD assembly structure: parts are
138
+ `App::Part`, assemblies are `Assembly::AssemblyObject`, and components are links.
139
+ Explicit compound projections remain available for geometry-only STEP export.
140
+
141
+ ## Examples
142
+
143
+ Run examples from the source checkout:
144
+
145
+ ```bash
146
+ uv run python examples/01_basic_modeling.py
147
+ uv run python examples/02_graph_replay.py
148
+ uv run python examples/03_expressions.py
149
+ uv run python examples/05_loft_sweep_revolve.py
150
+ uv run python examples/06_parametric_gear_model.py
151
+ uv run python examples/07_serialization_operation_tree.py
152
+ uv run python examples/08_constrained_sketch.py
153
+ uv run python examples/09_naca0016_blade_freecad.py
154
+ uv run python examples/10_part_assembly.py
155
+ ```
156
+
157
+ ## Documentation
158
+
159
+ - Public API reference: [`docs/api/`](docs/api/)
160
+ - Core type and modeling notes: [`docs/core/`](docs/core/)
161
+ - Serialization and replay details:
162
+ [`docs/core/serialization/README.md`](docs/core/serialization/README.md)
163
+ - Operation graph JSON spec:
164
+ [`docs/core/operation_graph_json_spec.md`](docs/core/operation_graph_json_spec.md)
165
+
166
+ ## Development
167
+
168
+ ```bash
169
+ uv sync --group dev
170
+ uv run python -m pytest test tests
171
+ python3 -m compileall src/simplecadapi
172
+ ```
173
+
174
+ ## License
175
+
176
+ MIT, see [`LICENSE`](LICENSE).
@@ -0,0 +1,17 @@
1
+ # Assembly
2
+
3
+ ## Class Definition
4
+
5
+ ```python
6
+ class Assembly(assembly_id: str, name: Optional[str] = None, components: Tuple[Component, ...] = (), connectors: Tuple[Connector, ...] = (), constraints: Tuple[Constraint, ...] = (), grounded_component_ids: Tuple[str, ...] = ())
7
+ ```
8
+
9
+ *Source: product.py*
10
+
11
+ ## Import Surface
12
+
13
+ - top-level: `from simplecadapi import Assembly`
14
+
15
+ ## Description
16
+
17
+ Product structure containing placed Part or subassembly components.
@@ -0,0 +1,21 @@
1
+ # BSplineFitResult
2
+
3
+ ## Class Definition
4
+
5
+ ```python
6
+ class BSplineFitResult(degree: int, control_points: Tuple[PointTuple, ...], knots: Tuple[float, ...], sample_parameters: Tuple[float, ...], max_error: float, rms_error: float, tolerance: float, fairing: float, iterations: int, converged: bool)
7
+ ```
8
+
9
+ *Source: math.py*
10
+
11
+ ## Import Surface
12
+
13
+ - top-level: `from simplecadapi import BSplineFitResult`
14
+
15
+ ## Description
16
+
17
+ Result from fitting a cubic B-spline to sampled curve points.
18
+
19
+ The result stores a complete, normalized B-spline definition suitable for
20
+ passing into the exact B-spline edge/wire APIs: cubic degree, control
21
+ points, and a full clamped knot vector.
@@ -0,0 +1,17 @@
1
+ # Component
2
+
3
+ ## Class Definition
4
+
5
+ ```python
6
+ class Component(component_id: str, item: AssemblyItem, placement: Placement, name: Optional[str] = None)
7
+ ```
8
+
9
+ *Source: product.py*
10
+
11
+ ## Import Surface
12
+
13
+ - top-level: `from simplecadapi import Component`
14
+
15
+ ## Description
16
+
17
+ Assembly-local instance of a Part or subassembly.
@@ -0,0 +1,20 @@
1
+ # Connector
2
+
3
+ ## Class Definition
4
+
5
+ ```python
6
+ class Connector(connector_id: str, geometry_ref: GeometryRef, name: Optional[str] = None)
7
+ ```
8
+
9
+ *Source: product.py*
10
+
11
+ ## Import Surface
12
+
13
+ - top-level: `from simplecadapi import Connector`
14
+
15
+ ## Description
16
+
17
+ Semantic datum frame anchored to a geometry sub-element (Face/Edge/Vertex).
18
+
19
+ The connector wraps a QL-selected sub-shape. The Placement is derived
20
+ from the geometry at solve/translate time, not stored directly.
@@ -0,0 +1,17 @@
1
+ # ConnectorRef
2
+
3
+ ## Class Definition
4
+
5
+ ```python
6
+ class ConnectorRef(component_id: str, connector_id: str)
7
+ ```
8
+
9
+ *Source: product.py*
10
+
11
+ ## Import Surface
12
+
13
+ - top-level: `from simplecadapi import ConnectorRef`
14
+
15
+ ## Description
16
+
17
+ Reference to a connector through a component instance.
@@ -0,0 +1,17 @@
1
+ # Const
2
+
3
+ ## Class Definition
4
+
5
+ ```python
6
+ class Const(value: float, expr_id: str = field(default_factory=lambda : _make_expr_id('const')))
7
+ ```
8
+
9
+ *Source: expr.py*
10
+
11
+ ## Import Surface
12
+
13
+ - top-level: `from simplecadapi import Const`
14
+
15
+ ## Description
16
+
17
+ Immutable constant node used in the v2 expression graph.