simplecadapi 2.0.6__tar.gz → 2.0.8__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.6 → simplecadapi-2.0.8}/PKG-INFO +3 -3
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/README.md +2 -2
- simplecadapi-2.0.8/docs/api/export_step.md +47 -0
- simplecadapi-2.0.8/docs/api/export_stl.md +47 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/union_rsolidlist.md +26 -4
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/pyproject.toml +1 -1
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/SKILL.md +3 -3
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/PROJECT_OVERVIEW.md +2 -2
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/PROJECT_README.md +2 -2
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/RUNTIME_INSTALL.md +1 -1
- simplecadapi-2.0.8/skills/simplecad-self-evolve/references/docs/api/export_step.md +47 -0
- simplecadapi-2.0.8/skills/simplecad-self-evolve/references/docs/api/export_stl.md +47 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/union_rsolidlist.md +26 -4
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/scripts/install.sh +2 -2
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/scripts/repl_bootstrap.py +1 -1
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/auto_tools/skill_pack.py +6 -3
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/operations.py +185 -57
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/test/test_all_features.py +41 -2
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/uv.lock +1 -1
- simplecadapi-2.0.6/docs/api/export_step.md +0 -13
- simplecadapi-2.0.6/docs/api/export_stl.md +0 -13
- simplecadapi-2.0.6/skills/simplecad-self-evolve/references/docs/api/export_step.md +0 -13
- simplecadapi-2.0.6/skills/simplecad-self-evolve/references/docs/api/export_stl.md +0 -13
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/.gitignore +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/.python-version +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/LICENSE +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/MANIFEST.in +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/README.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/add_part_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/and_.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/bounds_rbbox.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/chamfer_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/clear_constraints_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/clone_assembly_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/constrain_coincident_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/constrain_concentric_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/constrain_distance_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/constrain_offset_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/cut_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/eval_rarray.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/eval_rscalar.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/extrude_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/fillet_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/geo.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/helical_sweep_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/intersect_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/intersect_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/linear_pattern_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/loft_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_angle_arc_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_angle_arc_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_assembly_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_box_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_box_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_capsule_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_circle_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_circle_rface.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_circle_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_cone_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_cylinder_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_ellipsoid_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_face_from_wire_rface.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_field_surface_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_helix_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_helix_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_line_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_n_hole_flange_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_naca_propeller_blade_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_point_rvertex.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_polyline_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_rectangle_rface.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_rectangle_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_segment_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_segment_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_sphere_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_sphere_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_spline_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_spline_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_threaded_rod_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_three_point_arc_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_three_point_arc_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/make_wire_from_edges_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/meta.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/mirror_shape.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/not_.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/or_.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/radial_pattern_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/render_screenshot_rpath.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/revolve_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/rotate_part_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/rotate_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/rotate_shape.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/scale_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/select.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/select_edges_by_tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/select_faces_by_tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/set_tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/shell_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/smooth_subtract_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/smooth_union_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/solve_assembly_rresult.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/stack.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/stack_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/subtract_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/sweep_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/translate_part_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/translate_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/translate_shape.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/union_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/api/value.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/README.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/compound.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/coordinate_system.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/declarative_constraints.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/edge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/face.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/shell.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/simple_workplane.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/solid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/tagged_mixin.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/vertex.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/docs/core/wire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/examples.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/refactor-plan/tagging.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/scripts/publish.sh +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/scripts/sync_ragflow_docs.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/__init__.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/cases/simplecad_self_evolve_cases/evolve.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/EVOLVE_WORKFLOW.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/LICENSE.txt +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/README.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/add_part_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/and_.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/bounds_rbbox.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/chamfer_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/clear_constraints_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/clone_assembly_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/constrain_coincident_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/constrain_concentric_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/constrain_distance_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/constrain_offset_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/cut_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/eval_rarray.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/eval_rscalar.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/extrude_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/fillet_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/geo.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/helical_sweep_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/intersect_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/intersect_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/linear_pattern_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/loft_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_angle_arc_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_assembly_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_box_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_box_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_capsule_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_circle_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_circle_rface.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_circle_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_cone_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_cylinder_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_ellipsoid_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_face_from_wire_rface.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_field_surface_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_helix_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_helix_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_line_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_n_hole_flange_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_naca_propeller_blade_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_point_rvertex.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_polyline_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rface.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_rectangle_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_segment_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_segment_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_sphere_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_sphere_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_spline_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_spline_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_threaded_rod_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_redge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_three_point_arc_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/make_wire_from_edges_rwire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/meta.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/mirror_shape.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/not_.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/or_.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/radial_pattern_rsolidlist.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/render_screenshot_rpath.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/revolve_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/rotate_part_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/rotate_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/rotate_shape.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/scale_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/select.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/select_edges_by_tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/select_faces_by_tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/set_tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/shell_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/smooth_subtract_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/smooth_union_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/solve_assembly_rresult.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/stack.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/stack_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/subtract_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/sweep_rsolid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/tag.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/translate_part_rassembly.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/translate_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/translate_shape.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/union_rscalarfield.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/api/value.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/README.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/compound.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/coordinate_system.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/declarative_constraints.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/edge.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/face.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/shell.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/simple_workplane.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/solid.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/tagged_mixin.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/vertex.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/docs/core/wire.md +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/scripts/add_new_case.sh +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/scripts/evolve_case.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/scripts/jupyter_with_skill.sh +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/scripts/validate_skill.sh +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/scripts/with_skill.sh +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/__init__.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/auto_tools/__init__.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/auto_tools/auto_docs_gen.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/auto_tools/evolution.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/auto_tools/make_export.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/constraints.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/core.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/evolve.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/field.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/py.typed +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/ql.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/src/simplecadapi/tagging.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/test/test_auto_docs_gen.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/test/test_field_surface.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/test/test_make_export.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/test/test_ql.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/test/test_skill_pack.py +0 -0
- {simplecadapi-2.0.6 → simplecadapi-2.0.8}/test/test_tagging_refactor.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: simplecadapi
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.8
|
|
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
|
|
@@ -385,7 +385,7 @@ Experimental scripts and temporary modeling examples are not included as formal
|
|
|
385
385
|
|
|
386
386
|
## Package Installation (Python Package Managers)
|
|
387
387
|
|
|
388
|
-
Current package name: `simplecadapi`, version: `2.0.
|
|
388
|
+
Current package name: `simplecadapi`, version: `2.0.8` (see `pyproject.toml`).
|
|
389
389
|
|
|
390
390
|
### Method A: Install from package repository with pip
|
|
391
391
|
|
|
@@ -418,7 +418,7 @@ uv add simplecadapi
|
|
|
418
418
|
The repository already contains example build artifacts (`dist/`):
|
|
419
419
|
|
|
420
420
|
```bash
|
|
421
|
-
pip install dist/simplecadapi-2.0.
|
|
421
|
+
pip install dist/simplecadapi-2.0.8-py3-none-any.whl
|
|
422
422
|
```
|
|
423
423
|
|
|
424
424
|
If you need to rebuild:
|
|
@@ -9,7 +9,7 @@ Experimental scripts and temporary modeling examples are not included as formal
|
|
|
9
9
|
|
|
10
10
|
## Package Installation (Python Package Managers)
|
|
11
11
|
|
|
12
|
-
Current package name: `simplecadapi`, version: `2.0.
|
|
12
|
+
Current package name: `simplecadapi`, version: `2.0.8` (see `pyproject.toml`).
|
|
13
13
|
|
|
14
14
|
### Method A: Install from package repository with pip
|
|
15
15
|
|
|
@@ -42,7 +42,7 @@ uv add simplecadapi
|
|
|
42
42
|
The repository already contains example build artifacts (`dist/`):
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
pip install dist/simplecadapi-2.0.
|
|
45
|
+
pip install dist/simplecadapi-2.0.8-py3-none-any.whl
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
If you need to rebuild:
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# export_step
|
|
2
|
+
|
|
3
|
+
## API Definition
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
def export_step(shapes: Union[AnyShape, Sequence[AnyShape]], filename: str) -> None
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
*Source: operations.py*
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
Export shapes to STEP.
|
|
14
|
+
|
|
15
|
+
Use this function when you want to export one shape or many shapes into the
|
|
16
|
+
same STEP file. Passing `List[Solid]` is valid and often preferred when a
|
|
17
|
+
previous boolean operation returned multiple solids.
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
### shapes
|
|
22
|
+
|
|
23
|
+
- **Description**: A single exportable shape or any nested sequence of exportable shapes. Lists of Solid are supported directly, including list results returned by boolean operations.
|
|
24
|
+
|
|
25
|
+
### filename
|
|
26
|
+
|
|
27
|
+
- **Description**: Output STEP file path.
|
|
28
|
+
|
|
29
|
+
## Returns
|
|
30
|
+
|
|
31
|
+
None: Writes the provided shapes into one STEP file.
|
|
32
|
+
|
|
33
|
+
## Examples
|
|
34
|
+
|
|
35
|
+
### Example 1
|
|
36
|
+
```python
|
|
37
|
+
main_body = make_box_rsolid(10, 4, 4, bottom_face_center=(0, 0, 0))
|
|
38
|
+
left_cap = make_sphere_rsolid(2.0, center=(-2.0, 2.0, 2.0))
|
|
39
|
+
right_cap = make_sphere_rsolid(2.0, center=(12.0, 2.0, 2.0))
|
|
40
|
+
body_parts = union_rsolidlist(main_body, [left_cap, right_cap])
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Example 2
|
|
44
|
+
```python
|
|
45
|
+
# Export the full list directly; no need to collapse to body_parts[0].
|
|
46
|
+
export_step(body_parts, "rounded_bar.step")
|
|
47
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# export_stl
|
|
2
|
+
|
|
3
|
+
## API Definition
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
def export_stl(shapes: Union[AnyShape, Sequence[AnyShape]], filename: str) -> None
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
*Source: operations.py*
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
Export shapes to STL.
|
|
14
|
+
|
|
15
|
+
Use this function when you want to export one solid or many solids/faces into
|
|
16
|
+
the same STL file. Passing `List[Solid]` is valid and often preferred when a
|
|
17
|
+
previous boolean operation returned multiple solids.
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
### shapes
|
|
22
|
+
|
|
23
|
+
- **Description**: A single Solid or Face, or any nested sequence of Solid/Face. Lists of Solid are supported directly, including list results returned by boolean operations.
|
|
24
|
+
|
|
25
|
+
### filename
|
|
26
|
+
|
|
27
|
+
- **Description**: Output STL file path.
|
|
28
|
+
|
|
29
|
+
## Returns
|
|
30
|
+
|
|
31
|
+
None: Writes the provided shapes into one STL file.
|
|
32
|
+
|
|
33
|
+
## Examples
|
|
34
|
+
|
|
35
|
+
### Example 1
|
|
36
|
+
```python
|
|
37
|
+
main_body = make_box_rsolid(10, 4, 4, bottom_face_center=(0, 0, 0))
|
|
38
|
+
left_cap = make_sphere_rsolid(2.0, center=(-2.0, 2.0, 2.0))
|
|
39
|
+
right_cap = make_sphere_rsolid(2.0, center=(12.0, 2.0, 2.0))
|
|
40
|
+
body_parts = union_rsolidlist(main_body, [left_cap, right_cap])
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Example 2
|
|
44
|
+
```python
|
|
45
|
+
# Export the list result directly.
|
|
46
|
+
export_stl(body_parts, "rounded_bar.stl")
|
|
47
|
+
```
|
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
## API Definition
|
|
4
4
|
|
|
5
5
|
```python
|
|
6
|
-
def union_rsolidlist(
|
|
6
|
+
def union_rsolidlist(
|
|
7
|
+
*solids: Union[Solid, Sequence[Solid]],
|
|
8
|
+
clean: bool = True,
|
|
9
|
+
glue: bool = True,
|
|
10
|
+
tol: Optional[float] = None,
|
|
11
|
+
) -> List[Solid]
|
|
7
12
|
```
|
|
8
13
|
|
|
9
14
|
*Source: operations.py*
|
|
@@ -15,13 +20,18 @@ Compute the boolean union of one or more solids.
|
|
|
15
20
|
All boolean operations (union/cut/intersect) accept a mix of Solid and
|
|
16
21
|
sequences; results are always returned as a list of Solid.
|
|
17
22
|
Keep the list result unless you have explicitly verified `len(result) == 1`.
|
|
23
|
+
SimpleCAD enables glue mode by default and applies a conservative internal fuzzy
|
|
24
|
+
tolerance, so normal modeling code does not need to tune boolean parameters.
|
|
25
|
+
By default this follows CadQuery's union flow: perform one OCC fuse across the
|
|
26
|
+
input solids, then call `clean()` to unify same-domain faces when possible.
|
|
18
27
|
Touching-but-not-intersecting inputs can legitimately return multiple solids.
|
|
19
28
|
If that happens, keep using the list: pass it directly into later union calls,
|
|
20
29
|
or iterate over the solids for later cut/intersect steps.
|
|
30
|
+
When the returned solids are still separated by more than the active tolerance,
|
|
31
|
+
SimpleCAD prints a stdout warning explaining that the objects do not touch and
|
|
32
|
+
that their gap exceeds `tol`.
|
|
21
33
|
If you truly need exactly one merged solid, you must check the list length
|
|
22
|
-
before using `result[0]`.
|
|
23
|
-
arbitrarily; instead, adjust part placement so the solids overlap slightly,
|
|
24
|
-
then run the union again.
|
|
34
|
+
before using `result[0]`.
|
|
25
35
|
|
|
26
36
|
## Parameters
|
|
27
37
|
|
|
@@ -29,6 +39,18 @@ then run the union again.
|
|
|
29
39
|
|
|
30
40
|
- **Description**: One or more Solid objects or sequences of Solid. Nested sequences are flattened before processing.
|
|
31
41
|
|
|
42
|
+
### clean
|
|
43
|
+
|
|
44
|
+
- **Description**: Call CadQuery's `clean()` after the union to remove splitter edges and unify same-domain faces when possible.
|
|
45
|
+
|
|
46
|
+
### glue
|
|
47
|
+
|
|
48
|
+
- **Description**: Enable OCC glue mode for touching or partially overlapping inputs. Defaults to `True` for SimpleCAD's standard union behavior.
|
|
49
|
+
|
|
50
|
+
### tol
|
|
51
|
+
|
|
52
|
+
- **Description**: Optional fuzzy-boolean tolerance passed to the OCC union kernel. When omitted, SimpleCAD derives a conservative scale-aware value automatically.
|
|
53
|
+
|
|
32
54
|
## Returns
|
|
33
55
|
|
|
34
56
|
List[Solid]: Resulting solids after union attempts. Solids that can be fused
|
|
@@ -5,9 +5,9 @@ license: MIT
|
|
|
5
5
|
compatibility: Requires Python 3.10+, active virtual environment, and network access for package installation.
|
|
6
6
|
metadata:
|
|
7
7
|
project: simplecadapi
|
|
8
|
-
version: 2.0.
|
|
8
|
+
version: 2.0.8
|
|
9
9
|
runtime-package: simplecadapi
|
|
10
|
-
runtime-spec: simplecadapi==2.0.
|
|
10
|
+
runtime-spec: simplecadapi==2.0.8
|
|
11
11
|
cases-module: simplecad_self_evolve_cases
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -53,7 +53,7 @@ metadata:
|
|
|
53
53
|
## Install behavior
|
|
54
54
|
- Preferred: run `scripts/install.sh` once when skill is installed/activated.
|
|
55
55
|
- Runtime wrappers auto-install on demand if `simplecadapi` is missing.
|
|
56
|
-
- Package installed by default: `simplecadapi==2.0.
|
|
56
|
+
- Package installed by default: `simplecadapi==2.0.8`
|
|
57
57
|
- Wrappers install only into a virtual environment interpreter (set `PYTHON_BIN` when needed).
|
|
58
58
|
|
|
59
59
|
## Interpreter selection
|
{simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/PROJECT_README.md
RENAMED
|
@@ -9,7 +9,7 @@ Experimental scripts and temporary modeling examples are not included as formal
|
|
|
9
9
|
|
|
10
10
|
## Package Installation (Python Package Managers)
|
|
11
11
|
|
|
12
|
-
Current package name: `simplecadapi`, version: `2.0.
|
|
12
|
+
Current package name: `simplecadapi`, version: `2.0.8` (see `pyproject.toml`).
|
|
13
13
|
|
|
14
14
|
### Method A: Install from package repository with pip
|
|
15
15
|
|
|
@@ -42,7 +42,7 @@ uv add simplecadapi
|
|
|
42
42
|
The repository already contains example build artifacts (`dist/`):
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
pip install dist/simplecadapi-2.0.
|
|
45
|
+
pip install dist/simplecadapi-2.0.8-py3-none-any.whl
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
If you need to rebuild:
|
{simplecadapi-2.0.6 → simplecadapi-2.0.8}/skills/simplecad-self-evolve/references/RUNTIME_INSTALL.md
RENAMED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
PYTHON_BIN=.venv/bin/python scripts/install.sh
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
This installs `simplecadapi==2.0.
|
|
9
|
+
This installs `simplecadapi==2.0.8` to the active Python environment.
|
|
10
10
|
If `PYTHON_BIN` is not set, wrappers default to `python3` (fallback `python`).
|
|
11
11
|
Installation is intentionally blocked for non-venv/system interpreters.
|
|
12
12
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# export_step
|
|
2
|
+
|
|
3
|
+
## API Definition
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
def export_step(shapes: Union[AnyShape, Sequence[AnyShape]], filename: str) -> None
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
*Source: operations.py*
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
Export shapes to STEP.
|
|
14
|
+
|
|
15
|
+
Use this function when you want to export one shape or many shapes into the
|
|
16
|
+
same STEP file. Passing `List[Solid]` is valid and often preferred when a
|
|
17
|
+
previous boolean operation returned multiple solids.
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
### shapes
|
|
22
|
+
|
|
23
|
+
- **Description**: A single exportable shape or any nested sequence of exportable shapes. Lists of Solid are supported directly, including list results returned by boolean operations.
|
|
24
|
+
|
|
25
|
+
### filename
|
|
26
|
+
|
|
27
|
+
- **Description**: Output STEP file path.
|
|
28
|
+
|
|
29
|
+
## Returns
|
|
30
|
+
|
|
31
|
+
None: Writes the provided shapes into one STEP file.
|
|
32
|
+
|
|
33
|
+
## Examples
|
|
34
|
+
|
|
35
|
+
### Example 1
|
|
36
|
+
```python
|
|
37
|
+
main_body = make_box_rsolid(10, 4, 4, bottom_face_center=(0, 0, 0))
|
|
38
|
+
left_cap = make_sphere_rsolid(2.0, center=(-2.0, 2.0, 2.0))
|
|
39
|
+
right_cap = make_sphere_rsolid(2.0, center=(12.0, 2.0, 2.0))
|
|
40
|
+
body_parts = union_rsolidlist(main_body, [left_cap, right_cap])
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Example 2
|
|
44
|
+
```python
|
|
45
|
+
# Export the full list directly; no need to collapse to body_parts[0].
|
|
46
|
+
export_step(body_parts, "rounded_bar.step")
|
|
47
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# export_stl
|
|
2
|
+
|
|
3
|
+
## API Definition
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
def export_stl(shapes: Union[AnyShape, Sequence[AnyShape]], filename: str) -> None
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
*Source: operations.py*
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
Export shapes to STL.
|
|
14
|
+
|
|
15
|
+
Use this function when you want to export one solid or many solids/faces into
|
|
16
|
+
the same STL file. Passing `List[Solid]` is valid and often preferred when a
|
|
17
|
+
previous boolean operation returned multiple solids.
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
### shapes
|
|
22
|
+
|
|
23
|
+
- **Description**: A single Solid or Face, or any nested sequence of Solid/Face. Lists of Solid are supported directly, including list results returned by boolean operations.
|
|
24
|
+
|
|
25
|
+
### filename
|
|
26
|
+
|
|
27
|
+
- **Description**: Output STL file path.
|
|
28
|
+
|
|
29
|
+
## Returns
|
|
30
|
+
|
|
31
|
+
None: Writes the provided shapes into one STL file.
|
|
32
|
+
|
|
33
|
+
## Examples
|
|
34
|
+
|
|
35
|
+
### Example 1
|
|
36
|
+
```python
|
|
37
|
+
main_body = make_box_rsolid(10, 4, 4, bottom_face_center=(0, 0, 0))
|
|
38
|
+
left_cap = make_sphere_rsolid(2.0, center=(-2.0, 2.0, 2.0))
|
|
39
|
+
right_cap = make_sphere_rsolid(2.0, center=(12.0, 2.0, 2.0))
|
|
40
|
+
body_parts = union_rsolidlist(main_body, [left_cap, right_cap])
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Example 2
|
|
44
|
+
```python
|
|
45
|
+
# Export the list result directly.
|
|
46
|
+
export_stl(body_parts, "rounded_bar.stl")
|
|
47
|
+
```
|
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
## API Definition
|
|
4
4
|
|
|
5
5
|
```python
|
|
6
|
-
def union_rsolidlist(
|
|
6
|
+
def union_rsolidlist(
|
|
7
|
+
*solids: Union[Solid, Sequence[Solid]],
|
|
8
|
+
clean: bool = True,
|
|
9
|
+
glue: bool = True,
|
|
10
|
+
tol: Optional[float] = None,
|
|
11
|
+
) -> List[Solid]
|
|
7
12
|
```
|
|
8
13
|
|
|
9
14
|
*Source: operations.py*
|
|
@@ -15,13 +20,18 @@ Compute the boolean union of one or more solids.
|
|
|
15
20
|
All boolean operations (union/cut/intersect) accept a mix of Solid and
|
|
16
21
|
sequences; results are always returned as a list of Solid.
|
|
17
22
|
Keep the list result unless you have explicitly verified `len(result) == 1`.
|
|
23
|
+
SimpleCAD enables glue mode by default and applies a conservative internal fuzzy
|
|
24
|
+
tolerance, so normal modeling code does not need to tune boolean parameters.
|
|
25
|
+
By default this follows CadQuery's union flow: perform one OCC fuse across the
|
|
26
|
+
input solids, then call `clean()` to unify same-domain faces when possible.
|
|
18
27
|
Touching-but-not-intersecting inputs can legitimately return multiple solids.
|
|
19
28
|
If that happens, keep using the list: pass it directly into later union calls,
|
|
20
29
|
or iterate over the solids for later cut/intersect steps.
|
|
30
|
+
When the returned solids are still separated by more than the active tolerance,
|
|
31
|
+
SimpleCAD prints a stdout warning explaining that the objects do not touch and
|
|
32
|
+
that their gap exceeds `tol`.
|
|
21
33
|
If you truly need exactly one merged solid, you must check the list length
|
|
22
|
-
before using `result[0]`.
|
|
23
|
-
arbitrarily; instead, adjust part placement so the solids overlap slightly,
|
|
24
|
-
then run the union again.
|
|
34
|
+
before using `result[0]`.
|
|
25
35
|
|
|
26
36
|
## Parameters
|
|
27
37
|
|
|
@@ -29,6 +39,18 @@ then run the union again.
|
|
|
29
39
|
|
|
30
40
|
- **Description**: One or more Solid objects or sequences of Solid. Nested sequences are flattened before processing.
|
|
31
41
|
|
|
42
|
+
### clean
|
|
43
|
+
|
|
44
|
+
- **Description**: Call CadQuery's `clean()` after the union to remove splitter edges and unify same-domain faces when possible.
|
|
45
|
+
|
|
46
|
+
### glue
|
|
47
|
+
|
|
48
|
+
- **Description**: Enable OCC glue mode for touching or partially overlapping inputs. Defaults to `True` for SimpleCAD's standard union behavior.
|
|
49
|
+
|
|
50
|
+
### tol
|
|
51
|
+
|
|
52
|
+
- **Description**: Optional fuzzy-boolean tolerance passed to the OCC union kernel. When omitted, SimpleCAD derives a conservative scale-aware value automatically.
|
|
53
|
+
|
|
32
54
|
## Returns
|
|
33
55
|
|
|
34
56
|
List[Solid]: Resulting solids after union attempts. Solids that can be fused
|
|
@@ -32,7 +32,7 @@ export SIMPLECAD_RUNTIME_PACKAGE="simplecadapi"
|
|
|
32
32
|
export SIMPLECAD_CASES_ROOT="${SKILL_ROOT}/cases"
|
|
33
33
|
export SIMPLECAD_CASES_MODULE="simplecad_self_evolve_cases"
|
|
34
34
|
|
|
35
|
-
PACKAGE_SPEC="simplecadapi==2.0.
|
|
35
|
+
PACKAGE_SPEC="simplecadapi==2.0.8"
|
|
36
36
|
JUPYTER_DEPS=("jupyterlab>=4.5.5" "ipykernel>=6.29.5")
|
|
37
37
|
INSTALL_JUPYTER=0
|
|
38
38
|
INSTALL_ARGS=()
|
|
@@ -85,4 +85,4 @@ print("simplecadapi import OK")
|
|
|
85
85
|
print(getattr(scad, "__description__", ""))
|
|
86
86
|
PY
|
|
87
87
|
|
|
88
|
-
echo "Runtime install completed for simplecadapi 2.0.
|
|
88
|
+
echo "Runtime install completed for simplecadapi 2.0.8."
|
|
@@ -565,13 +565,16 @@ class SkillPackager:
|
|
|
565
565
|
7. Build and validate incrementally. Each step MUST include a small grounding `print`, and grounding MUST use QL where possible.
|
|
566
566
|
8. For inspection/debugging, query geometry with QL and print only the queried facts you need; do not print whole solids, assemblies, or full model objects.
|
|
567
567
|
9. Boolean operations always return `List[Solid]`. You MUST check `len(results)` before using `results[0]`.
|
|
568
|
-
10.
|
|
569
|
-
11. If
|
|
570
|
-
12.
|
|
568
|
+
10. `union_rsolidlist(...)` already uses SimpleCAD's tuned default boolean settings internally. Do not add manual boolean tuning unless you are debugging a stubborn edge case.
|
|
569
|
+
11. If tangent-only contact leaves multiple solids after `union_rsolidlist(...)`, that is often acceptable. Keep the list and continue operating on the list or iterate over its solids.
|
|
570
|
+
12. If the design explicitly requires exactly one merged solid and `len(results) != 1`, you MUST NOT silently pick one item. Instead, slightly adjust part placement so the intended bodies overlap/embed, run the union again, and only then unwrap the single result.
|
|
571
|
+
13. After model construction, ask the user whether the result is satisfactory and whether any modifications are needed. Only after explicit user confirmation may you add the script to evolve cases.
|
|
571
572
|
|
|
572
573
|
## Boolean result discipline
|
|
573
574
|
- `union_rsolidlist(...)`, `cut_rsolidlist(...)`, and `intersect_rsolidlist(...)` accept mixed inputs: standalone `Solid`, lists of `Solid`, and nested sequences.
|
|
574
575
|
- They always return `List[Solid]`.
|
|
576
|
+
- `union_rsolidlist(...)` already applies the package's default glue mode and a conservative internal tolerance.
|
|
577
|
+
- If a union still returns multiple solids that remain separated beyond tolerance, the API prints a stdout warning automatically.
|
|
575
578
|
- Default behavior: keep the list result and pass it forward or iterate over it.
|
|
576
579
|
- Only unwrap to a single solid after an explicit `len(results) == 1` check.
|
|
577
580
|
- If a single merged solid is required but a union still returns multiple solids, slightly move the parts so they overlap instead of merely touching, then recompute the union.
|