提交N3 功能的改动
This commit is contained in:
@@ -7,8 +7,9 @@ from typing import Any, Iterable
|
||||
|
||||
from build123d import Axis, Compound, Edge, Face, Location, Plane, ShapeList, Solid, Vector, Wire, export_step
|
||||
|
||||
from .parametric_bend import build_bend_solid
|
||||
from .parametric_thread import build_thread_solid
|
||||
from .runtime_types import AxisSpec, HoleSpec, PlaneSpec, ThreadSpec, TopologyRecord, Vector3, canonical_plane_signature
|
||||
from .runtime_types import AxisSpec, BendSpec, HoleSpec, PlaneSpec, ThreadSpec, TopologyRecord, Vector3, canonical_plane_signature
|
||||
|
||||
|
||||
def _vector(value: list[float] | tuple[float, float, float]) -> Vector:
|
||||
@@ -378,6 +379,26 @@ class Build123dGeometryAdapter:
|
||||
plane = Plane(origin=_vector(spec.axis.origin_mm), x_dir=frame_x, z_dir=direction)
|
||||
return solid.moved(Location(plane))
|
||||
|
||||
@staticmethod
|
||||
def bend_solid(spec: BendSpec) -> Any:
|
||||
"""Build one bent sheet segment placed on ``spec.frame``.
|
||||
|
||||
The parametric generator constructs the sheet locally with the first
|
||||
wing along +X, its mid-plane spanning +X/+Z (thickness along +Y) and
|
||||
the fold (width) axis along +Z. This gate rotates that local frame so
|
||||
the first wing lands on ``spec.frame.y_dir`` (= normal x x_dir), the
|
||||
sheet thickness on ``spec.frame.normal`` and the width axis on
|
||||
``spec.frame.x_dir``.
|
||||
"""
|
||||
solid = build_bend_solid(spec)
|
||||
frame = spec.frame
|
||||
plane = Plane(
|
||||
origin=_vector(frame.origin_mm),
|
||||
x_dir=_vector(frame.y_dir),
|
||||
z_dir=_vector(frame.x_dir),
|
||||
)
|
||||
return solid.moved(Location(plane))
|
||||
|
||||
@staticmethod
|
||||
def fillet(body: Any, radius_mm: float, edges: Iterable[Edge]) -> Any:
|
||||
# 对指定边以给定半径做圆角。
|
||||
|
||||
Reference in New Issue
Block a user