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.
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/.gitignore +9 -1
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/PKG-INFO +193 -62
- simplecadapi-2.0.2/README.md +218 -0
- {simplecadapi-2.0.0/src → simplecadapi-2.0.2}/docs/api/README.md +53 -12
- simplecadapi-2.0.2/docs/api/add_part_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/and_.md +25 -0
- simplecadapi-2.0.2/docs/api/bounds_rbbox.md +23 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/chamfer_rsolid.md +16 -16
- simplecadapi-2.0.2/docs/api/clear_constraints_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/clone_assembly_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/constrain_coincident_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/constrain_concentric_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/constrain_distance_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/constrain_offset_rassembly.md +13 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/cut_rsolidlist.md +11 -11
- simplecadapi-2.0.2/docs/api/eval_rarray.md +35 -0
- simplecadapi-2.0.2/docs/api/eval_rscalar.md +35 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/export_step.md +7 -7
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/export_stl.md +7 -7
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/extrude_rsolid.md +16 -16
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/fillet_rsolid.md +16 -16
- simplecadapi-2.0.2/docs/api/geo.md +29 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/helical_sweep_rsolid.md +22 -22
- simplecadapi-2.0.2/docs/api/intersect_rscalarfield.md +23 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/intersect_rsolidlist.md +11 -11
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/linear_pattern_rsolidlist.md +18 -18
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/loft_rsolid.md +14 -14
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_angle_arc_redge.md +21 -21
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_angle_arc_rwire.md +15 -15
- simplecadapi-2.0.2/docs/api/make_assembly_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/make_box_rscalarfield.md +27 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_box_rsolid.md +19 -19
- simplecadapi-2.0.2/docs/api/make_capsule_rscalarfield.md +31 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_circle_redge.md +16 -16
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_circle_rface.md +15 -15
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_circle_rwire.md +15 -15
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_cone_rsolid.md +19 -19
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_cylinder_rsolid.md +19 -19
- simplecadapi-2.0.2/docs/api/make_ellipsoid_rscalarfield.md +27 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_face_from_wire_rface.md +14 -14
- simplecadapi-2.0.2/docs/api/make_field_surface_rsolid.md +52 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_helix_redge.md +20 -20
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_helix_rwire.md +19 -19
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_line_redge.md +14 -14
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_n_hole_flange_rsolid.md +25 -25
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_naca_propeller_blade_rsolid.md +19 -19
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_point_rvertex.md +16 -16
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_polyline_rwire.md +14 -14
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_rectangle_rface.md +17 -17
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_rectangle_rwire.md +18 -18
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_segment_redge.md +12 -12
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_segment_rwire.md +13 -13
- simplecadapi-2.0.2/docs/api/make_sphere_rscalarfield.md +27 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_sphere_rsolid.md +15 -15
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_spline_redge.md +14 -14
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_spline_rwire.md +15 -15
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_threaded_rod_rsolid.md +19 -19
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_three_point_arc_redge.md +16 -16
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_three_point_arc_rwire.md +15 -15
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/make_wire_from_edges_rwire.md +11 -11
- simplecadapi-2.0.2/docs/api/meta.md +45 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/mirror_shape.md +16 -16
- simplecadapi-2.0.2/docs/api/not_.md +25 -0
- simplecadapi-2.0.2/docs/api/or_.md +25 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/radial_pattern_rsolidlist.md +20 -20
- simplecadapi-2.0.2/docs/api/render_screenshot_rpath.md +68 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/revolve_rsolid.md +18 -18
- simplecadapi-2.0.2/docs/api/rotate_part_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/rotate_rscalarfield.md +31 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/rotate_shape.md +18 -18
- simplecadapi-2.0.2/docs/api/scale_rscalarfield.md +27 -0
- simplecadapi-2.0.2/docs/api/select.md +25 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/select_edges_by_tag.md +7 -7
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/select_faces_by_tag.md +7 -7
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/set_tag.md +7 -7
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/shell_rsolid.md +16 -16
- simplecadapi-2.0.2/docs/api/smooth_subtract_rscalarfield.md +31 -0
- simplecadapi-2.0.2/docs/api/smooth_union_rscalarfield.md +31 -0
- simplecadapi-2.0.2/docs/api/solve_assembly_rresult.md +13 -0
- simplecadapi-2.0.2/docs/api/stack.md +27 -0
- simplecadapi-2.0.2/docs/api/stack_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/subtract_rscalarfield.md +27 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/sweep_rsolid.md +16 -16
- simplecadapi-2.0.2/docs/api/tag.md +37 -0
- simplecadapi-2.0.2/docs/api/translate_part_rassembly.md +13 -0
- simplecadapi-2.0.2/docs/api/translate_rscalarfield.md +27 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/translate_shape.md +14 -14
- simplecadapi-2.0.2/docs/api/union_rscalarfield.md +23 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/api/union_rsolidlist.md +10 -10
- simplecadapi-2.0.2/docs/api/value.md +36 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/README.md +1 -0
- simplecadapi-2.0.2/docs/core/declarative_constraints.md +307 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/pyproject.toml +12 -2
- simplecadapi-2.0.2/refactor-plan/tagging.md +149 -0
- simplecadapi-2.0.2/scripts/sync_ragflow_docs.py +478 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/SKILL.md +139 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/__init__.py +3 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/evolve.py +6 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/EVOLVE_WORKFLOW.md +34 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/LICENSE.txt +339 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/PROJECT_OVERVIEW.md +31 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/PROJECT_README.md +218 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/RUNTIME_INSTALL.md +48 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/README.md +119 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/add_part_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/and_.md +25 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/bounds_rbbox.md +23 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/chamfer_rsolid.md +67 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/clear_constraints_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/clone_assembly_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_coincident_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_concentric_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_distance_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/constrain_offset_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/cut_rsolidlist.md +59 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/eval_rarray.md +35 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/eval_rscalar.md +35 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/export_step.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/export_stl.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/extrude_rsolid.md +65 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/fillet_rsolid.md +69 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/geo.md +29 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/helical_sweep_rsolid.md +83 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/intersect_rscalarfield.md +23 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/intersect_rsolidlist.md +60 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/linear_pattern_rsolidlist.md +70 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/loft_rsolid.md +63 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_redge.md +77 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_rwire.md +69 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_assembly_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_box_rscalarfield.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_box_rsolid.md +75 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_capsule_rscalarfield.md +31 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_circle_redge.md +61 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_circle_rface.md +57 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_circle_rwire.md +55 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_cone_rsolid.md +66 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_cylinder_rsolid.md +74 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_ellipsoid_rscalarfield.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_face_from_wire_rface.md +60 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_field_surface_rsolid.md +52 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_helix_redge.md +71 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_helix_rwire.md +67 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_line_redge.md +57 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_n_hole_flange_rsolid.md +94 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_naca_propeller_blade_rsolid.md +74 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_point_rvertex.md +62 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_polyline_rwire.md +59 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rface.md +62 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rwire.md +66 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_segment_redge.md +46 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_segment_rwire.md +50 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_sphere_rscalarfield.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_sphere_rsolid.md +64 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_spline_redge.md +60 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_spline_rwire.md +57 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_threaded_rod_rsolid.md +79 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_redge.md +61 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_rwire.md +56 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/make_wire_from_edges_rwire.md +49 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/meta.md +45 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/mirror_shape.md +64 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/not_.md +25 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/or_.md +25 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/radial_pattern_rsolidlist.md +74 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/render_screenshot_rpath.md +68 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/revolve_rsolid.md +70 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/rotate_part_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/rotate_rscalarfield.md +31 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/rotate_shape.md +70 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/scale_rscalarfield.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/select.md +25 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/select_edges_by_tag.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/select_faces_by_tag.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/set_tag.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/shell_rsolid.md +67 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/smooth_subtract_rscalarfield.md +31 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/smooth_union_rscalarfield.md +31 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/solve_assembly_rresult.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/stack.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/stack_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/subtract_rscalarfield.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/sweep_rsolid.md +68 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/tag.md +37 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/translate_part_rassembly.md +13 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/translate_rscalarfield.md +27 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/translate_shape.md +59 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/union_rscalarfield.md +23 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/union_rsolidlist.md +51 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/api/value.md +36 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/README.md +213 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/compound.md +635 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/coordinate_system.md +175 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/declarative_constraints.md +307 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/edge.md +389 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/face.md +550 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/shell.md +518 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/simple_workplane.md +278 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/solid.md +697 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/tagged_mixin.md +692 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/vertex.md +320 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/references/docs/core/wire.md +452 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/add_new_case.sh +24 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/evolve_case.py +190 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/install.sh +88 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/jupyter_with_skill.sh +39 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/repl_bootstrap.py +108 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/validate_skill.sh +50 -0
- simplecadapi-2.0.2/skills/simplecad-self-evolve/scripts/with_skill.sh +113 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/__init__.py +54 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/auto_docs_gen.py +83 -39
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/evolution.py +52 -26
- simplecadapi-2.0.2/src/simplecadapi/auto_tools/skill_pack.py +1456 -0
- simplecadapi-2.0.2/src/simplecadapi/constraints.py +1168 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/core.py +53 -11
- simplecadapi-2.0.2/src/simplecadapi/field.py +480 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/operations.py +855 -3
- simplecadapi-2.0.2/src/simplecadapi/ql.py +363 -0
- simplecadapi-2.0.2/src/simplecadapi/tagging.py +137 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/test/test_all_features.py +260 -0
- simplecadapi-2.0.2/test/test_auto_docs_gen.py +102 -0
- simplecadapi-2.0.2/test/test_field_surface.py +80 -0
- simplecadapi-2.0.2/test/test_ql.py +74 -0
- simplecadapi-2.0.2/test/test_tagging_refactor.py +74 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/uv.lock +944 -4
- simplecadapi-2.0.0/README.md +0 -87
- simplecadapi-2.0.0/sandbox/test.py +0 -135
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/.python-version +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/LICENSE +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/MANIFEST.in +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/compound.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/coordinate_system.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/edge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/face.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/shell.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/simple_workplane.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/solid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/tagged_mixin.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/vertex.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/docs/core/wire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/examples.py +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/scripts/publish.sh +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2/src}/docs/api/README.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/chamfer_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/cut_rsolidlist.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/export_step.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/export_stl.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/extrude_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/fillet_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/helical_sweep_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/intersect_rsolidlist.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/linear_pattern_rsolidlist.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/loft_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_angle_arc_redge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_angle_arc_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_box_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_circle_redge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_circle_rface.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_circle_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_cone_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_cylinder_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_face_from_wire_rface.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_helix_redge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_helix_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_line_redge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_n_hole_flange_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_naca_propeller_blade_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_point_rvertex.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_polyline_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_rectangle_rface.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_rectangle_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_segment_redge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_segment_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_sphere_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_spline_redge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_spline_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_threaded_rod_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_three_point_arc_redge.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_three_point_arc_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/make_wire_from_edges_rwire.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/mirror_shape.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/radial_pattern_rsolidlist.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/revolve_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/rotate_shape.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/select_edges_by_tag.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/select_faces_by_tag.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/set_tag.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/shell_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/sweep_rsolid.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/translate_shape.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/docs/api/union_rsolidlist.md +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/__init__.py +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/auto_tools/make_export.py +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/evolve.py +0 -0
- {simplecadapi-2.0.0 → simplecadapi-2.0.2}/src/simplecadapi/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: simplecadapi
|
|
3
|
-
Version: 2.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
|
-
#
|
|
377
|
+
# SimpleCADAPI
|
|
378
378
|
|
|
379
|
-
|
|
379
|
+
SimpleCADAPI 是一个基于 CADQuery 的命令式 CAD 建模 Python 包,目标是把常见建模动作封装成清晰、可组合、可测试的函数式 API,并支持通过 Skills 方式分发“文档 + 脚本 + 运行时安装”工作流。
|
|
380
380
|
|
|
381
|
-
##
|
|
381
|
+
## README 定位
|
|
382
382
|
|
|
383
|
-
|
|
384
|
-
|
|
383
|
+
本 README 仅包含包级能力、安装方式、发布/打包流程与 Skills 使用说明。
|
|
384
|
+
实验性脚本和临时建模样例不作为正式文档内容。
|
|
385
385
|
|
|
386
|
-
##
|
|
386
|
+
## 包安装(Python 包管理器)
|
|
387
387
|
|
|
388
|
-
|
|
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
|
-
|
|
396
|
+
开发依赖可选安装:
|
|
395
397
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
- `Vertex`: 顶点类型,表示几何体的点。
|
|
400
|
-
- `Wire`: 线类型,表示边的集合。
|
|
398
|
+
```bash
|
|
399
|
+
pip install "simplecadapi[dev]"
|
|
400
|
+
```
|
|
401
401
|
|
|
402
|
-
###
|
|
402
|
+
### 方式 B:用 uv 安装
|
|
403
403
|
|
|
404
|
-
|
|
404
|
+
在当前虚拟环境安装:
|
|
405
405
|
|
|
406
|
-
|
|
406
|
+
```bash
|
|
407
|
+
uv pip install simplecadapi
|
|
408
|
+
```
|
|
407
409
|
|
|
408
|
-
|
|
410
|
+
作为项目依赖写入 `pyproject.toml`:
|
|
409
411
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
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
|
-
|
|
420
|
+
```bash
|
|
421
|
+
pip install dist/simplecadapi-2.0.2-py3-none-any.whl
|
|
422
|
+
```
|
|
423
423
|
|
|
424
|
-
|
|
424
|
+
如果你需要重新构建:
|
|
425
425
|
|
|
426
|
-
|
|
426
|
+
```bash
|
|
427
|
+
uv build
|
|
428
|
+
```
|
|
427
429
|
|
|
428
|
-
|
|
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
|
-
|
|
438
|
-
|
|
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
|
-
|
|
447
|
-
|
|
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
|
|
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
|
-
|
|
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]: 组合谓词。
|