Python package
ra.manufacturing
Production: repair, printability checks, identifiers, sprues, resizing, exports.
import rhinoartisan as ra
Wraps ArtisanPlugin.Scripting.ManufacturingApi.
Functions
| Function | |
|---|---|
add_identifier() | Adds an identifier tag to a closed ring mesh (the ArtisanIdentifier tool, headless): a pipe between the two given points on the mesh carrying an engraved reference text. |
automatic_repair() | Repairs the given objects into a single printable mesh (the ArtisanAutomaticRepair tool, headless): closes gaps, fixes normals, makes the result watertight. |
balance_check() | Checks how a pendant/earring hangs (the ArtisanBalancerChecker tool): the piece hangs from base_id (the bail or hook), and gravity pulls its volume centroid straight below the hook. |
detect_non_printable() | Flags the objects that would not print (the ArtisanQuickNonPrintableDetector tool): bad objects, duplicates, open surfaces and open polysurfaces, using Rhino’s own selectors. |
export_all_in_one() | Merges solids/meshes into ONE printable mesh and writes a binary STL (the ArtisanExportAllInOne tool, headless). |
export_from_layers() | Writes one STL per visible layer holding meshes, named “folder (the ArtisanExportFromLayers tool, headless). |
import_to_layers() | Imports every STL in folder, each file into its own layer named after the file with a distinct color per layer (the ArtisanImportToLayers tool, headless). |
quick_check() | The ArtisanQuickCheck tool, scriptable: verifies each mesh is valid and watertight, and (like the tool) recolors it green when printable, red when not. |
reduce_thickness() | Hollows a wall down to a uniform minimum thickness (the ArtisanReduceThickness tool, headless). |
resize_ring() | Batch ring resizer (the ArtisanResizer tool, headless): takes a CLOSED ring mesh and produces one resized copy per target diameter, laid out in a row (spaced by the tool’s ring distance) on child layers under a “Resizer” parent layer, one group per size — same output as the tool’s Layers mode. |
sprue_cluster_tree() | Cluster casting tree (the ArtisanSprueClusterTree tool, headless): a cylinder built as a grid of two crossed helix families (rhombic cells) standing on base_point, with an anchor node at every crossing; a copy of the given meshes is placed on the nodes in round-robin, each held by a mini-connector (diameter 1, length 6). |
sprue_curve() | Perimeter-frame sprue (the ArtisanSprueCurve tool, headless): a closed pipe frame around the piece with tapered connectors reaching it and a horizontal injection post on the front side. |
sprue_external_frames() | External-frame sprue (the ArtisanSprueExternalFrames tool, headless), meant for elongated pieces laid in a row (chains, bracelets): a rounded-rectangle runner around the combined bounding box of the given meshes, with pairs of thin stubs reaching inward from the long sides and, optionally, one from each short end. |
sprue_external_tree() | External-tree sprue for casting (the ArtisanSprueExternalTree tool, headless): a tapered trunk standing OUTSIDE the mesh at trunk_base_point with one branch per contact point reaching the outside of the closed mesh. |
sprue_helix() | Helix casting tree (the ArtisanSprueHelix tool, headless): a conical base, a vertical trunk and a helical wire climbing around it, with copies copies of the link mesh hung along the wire — the tool for printing whole chains in one tree. |
sprue_inner_branches() | Inner-branches sprue for casting (the ArtisanSprueInnerBranches tool, headless): a central post rising from base_point with one branch per contact point reaching the inside of the closed mesh (typically a ring), optionally mirrored by symmetry. |
sprue_inner_tree() | Builds an inner-tree sprue for casting (the ArtisanSprueInnerTree tool, headless): a trunk from base_point with branches reaching each of contact_points on the closed mesh. |
sprue_multiple_copies() | Multiple-copies sprue (the ArtisanSprueMultipleCopies tool, headless): a tapered trunk between trunk_start and trunk_end with one curved branch from the trunk to each of contact_points on the mesh(es). |
sprue_single() | Single sprue post (the ArtisanSprueSingle tool, headless): one tapered connector at point, which should lie ON the mesh (it plays the role of the tool’s pick-point-on-mesh prompt). |
sprue_spiral() | Flat spiral casting sprue (the ArtisanSprueSpiral tool, headless): the same chain-printing idea as the helix but with the wire coiled FLAT, standing on legs, each link hung from a single vertical connector. |
sprue_tree() | Radial casting tree (the ArtisanSprueTree tool, headless): a base + conical trunk rising from base_point, with floors floors x pieces_per_floor branches around it, and a copy of the given meshes distributed over the branches in round-robin. |
ra.manufacturing.add_identifier()
ra.manufacturing.add_identifier(mesh_id: IdLike, point1: PointLike, point2: PointLike, text=None, diameter=None, thickness=None, font_size=None, overlapping=None) -> str
Adds an identifier tag to a closed ring mesh (the ArtisanIdentifier tool, headless): a pipe between the two given points on the mesh carrying an engraved reference text. The two points play the role of the tool’s two interactive picks — both should lie on/near the mesh. Numeric arguments with 0 keep the tool defaults (or the user’s saved defaults): diameter 1.5, thickness 1.5, font_size 2, overlapping 0.15. Returns the Guid of the new mesh (ring + tag); the original mesh is left in the document, same as the tool.
| Parameter | Type | |
|---|---|---|
mesh_id | IdLike | required |
point1 | PointLike | required |
point2 | PointLike | required |
text | str | optional — None = the tool default |
diameter | float | optional — None = the tool default |
thickness | float | optional — None = the tool default |
font_size | float | optional — None = the tool default |
overlapping | float | optional — None = the tool default |
ra.manufacturing.automatic_repair()
ra.manufacturing.automatic_repair(object_ids=None, precision=None, delete_original=None) -> RepairResult
Repairs the given objects into a single printable mesh (the ArtisanAutomaticRepair tool, headless): closes gaps, fixes normals, makes the result watertight. Rhino 8+ only (uses ShrinkWrap). object_ids objects to repair; None/empty = current selection. Gems are skipped automatically, like the tool. precision repair precision in mm; 0 = the tool’s configured default (typically 0.025). Smaller = more faithful and slower. delete_original True = remove the source objects after the repair. The repaired mesh is added to the last user layer with the wax color from the settings, same as the tool’s Accept button. Long operation: Rhino stays busy while it computes.
| Parameter | Type | |
|---|---|---|
object_ids | Sequence[IdLike] | optional — None = the tool default |
precision | float | optional — None = the tool default |
delete_original | bool | optional — None = the tool default |
ra.manufacturing.balance_check()
ra.manufacturing.balance_check(base_id: IdLike, geometry_ids: Sequence[IdLike], apply=None, delete_original=None, tolerance=None) -> BalanceReport
Checks how a pendant/earring hangs (the ArtisanBalancerChecker tool): the piece hangs from base_id (the bail or hook), and gravity pulls its volume centroid straight below the hook. The report gives the tilt the piece would take, in degrees (0 = it hangs straight). apply True = replicate the tool’s Accept: adds ROTATED COPIES of the geometry so the centroid hangs below the base point (the originals stay unless delete_original). Default False = report only. delete_original with apply, removes the source geometry. tolerance degrees under which IsBalanced is True (default 1). Read-only unless apply is True.
| Parameter | Type | |
|---|---|---|
base_id | IdLike | required |
geometry_ids | Sequence[IdLike] | required |
apply | bool | optional — None = the tool default |
delete_original | bool | optional — None = the tool default |
tolerance | float | optional — None = the tool default |
ra.manufacturing.detect_non_printable()
ra.manufacturing.detect_non_printable() -> NonPrintableReport
Flags the objects that would not print (the ArtisanQuickNonPrintableDetector tool): bad objects, duplicates, open surfaces and open polysurfaces, using Rhino’s own selectors. Like the tool it leaves the offenders SELECTED so you can see them; the report lists them by category. Cheap; run it before an STL export. Nothing flagged = Count 0 and an empty selection.
ra.manufacturing.export_all_in_one()
ra.manufacturing.export_all_in_one(path: str, object_ids=None, allow_non_printable=None) -> AllInOneExport
Merges solids/meshes into ONE printable mesh and writes a binary STL (the ArtisanExportAllInOne tool, headless). Breps, extrusions and SubDs are meshed with the tool’s fine analysis parameters; every part is repaired and checked. path destination .stl (extension appended, folder created) object_ids objects to export; None/empty = current selection, and when nothing is selected every visible solid/mesh that is not a gem (like the tool’s filter) allow_non_printable the tool asks “part of the geometry is not printable, export anyway?”: False (default) fails listing the offending ids (and selects them, like the tool); True exports the valid part anyway. Returns the path plus the check summary.
| Parameter | Type | |
|---|---|---|
path | str | required |
object_ids | Sequence[IdLike] | optional — None = the tool default |
allow_non_printable | bool | optional — None = the tool default |
ra.manufacturing.export_from_layers()
ra.manufacturing.export_from_layers(folder: str, overwrite=None) -> List[LayerExport]
Writes one STL per visible layer holding meshes, named “folder (the ArtisanExportFromLayers tool, headless). Only MESH objects are exported, exactly like the tool: mesh your solids first (AutomaticRepair / ExportAllInOne mesh on the fly, this one does not). Layers without meshes are ignored. overwrite the tool asks per existing file; False skips those files (reported with Skipped = True), True (default) replaces them. Returns one entry per layer with meshes.
| Parameter | Type | |
|---|---|---|
folder | str | required |
overwrite | bool | optional — None = the tool default |
ra.manufacturing.import_to_layers()
ra.manufacturing.import_to_layers(folder: str) -> List[LayerImport]
Imports every STL in folder, each file into its own layer named after the file with a distinct color per layer (the ArtisanImportToLayers tool, headless). Files that bring no objects are skipped without creating a layer. Returns one entry per imported file. Any previous selection is cleared.
| Parameter | Type | |
|---|---|---|
folder | str | required |
ra.manufacturing.quick_check()
ra.manufacturing.quick_check(object_ids=None) -> List[MeshCheckResult]
The ArtisanQuickCheck tool, scriptable: verifies each mesh is valid and watertight, and (like the tool) recolors it green when printable, red when not. object_ids None/empty = current selection; non-mesh objects are skipped. Returns one result per checked mesh.
| Parameter | Type | |
|---|---|---|
object_ids | Sequence[IdLike] | optional — None = the tool default |
ra.manufacturing.reduce_thickness()
ra.manufacturing.reduce_thickness(object_id: IdLike, points: Sequence[PointLike], thickness=None, radius=None, steps=None) -> ReduceThicknessResult
Hollows a wall down to a uniform minimum thickness (the ArtisanReduceThickness tool, headless). The tool is a brush: you paint the side of the wall you want to sink and it drops to the target thickness, measured against the opposite wall and the gems (gems count as walls and their seats are masked, so nothing thins under a stone). Here the brush strokes become points: every point is a brush center ON the object’s surface, on the side to hollow (usually the inside of the shank). object_id mesh, polysurface, extrusion or SubD; the result is always a mesh that REPLACES it (same attributes/layer) points brush centers on the surface, in order thickness target wall thickness in mm; None = the tool default 0.8 radius brush radius in mm; None = the tool default (8% of the object’s bounding-box diagonal) steps brush steps applied at each point; 0 = 4. The center lands on the target at once, the rim converges with more steps. The tool warns when vertices end below the target; here that count is returned as ThinVertices instead. Returns the new mesh id and the grams saved with the document’s first metal.
| Parameter | Type | |
|---|---|---|
object_id | IdLike | required |
points | Sequence[PointLike] | required |
thickness | float | optional — None = the tool default |
radius | float | optional — None = the tool default |
steps | int | optional — None = the tool default |
ra.manufacturing.resize_ring()
ra.manufacturing.resize_ring(mesh_id: IdLike, from_diameter: float, to_diameters: Sequence[float], names=None) -> List[ResizedRing]
Batch ring resizer (the ArtisanResizer tool, headless): takes a CLOSED ring mesh and produces one resized copy per target diameter, laid out in a row (spaced by the tool’s ring distance) on child layers under a “Resizer” parent layer, one group per size — same output as the tool’s Layers mode. mesh_id the ring mesh to resize from_diameter the ring’s CURRENT inner diameter in mm; 0 = the document’s finger size to_diameters target inner diameters in mm (e.g. [16.5, 17.35, 18.2]) names optional labels, parallel to to_diameters; default is the diameter formatted (“17.35”) Long operation (one boolean pipeline per size).
| Parameter | Type | |
|---|---|---|
mesh_id | IdLike | required |
from_diameter | float | required |
to_diameters | Sequence[float] | required |
names | Sequence[str] | optional — None = the tool default |
ra.manufacturing.sprue_cluster_tree()
ra.manufacturing.sprue_cluster_tree(mesh_ids=None, base_point=None, copies_per_mesh=None, diameter=None, height=None, cells_around=None, rows=None, wire_diameter=None) -> List[str]
Cluster casting tree (the ArtisanSprueClusterTree tool, headless): a cylinder built as a grid of two crossed helix families (rhombic cells) standing on base_point, with an anchor node at every crossing; a copy of the given meshes is placed on the nodes in round-robin, each held by a mini-connector (diameter 1, length 6). Copies anchor by the bottom-center of their bounding box, like the tool’s default pick. mesh_ids the model meshes; None/empty = current selection. base_point where the base sits (default: world origin). copies_per_mesh copies of EACH mesh; 0 = fill the free nodes. Numeric arguments with 0 keep the tool defaults: diameter 65, height 90, cells_around 8, rows 7, wire_diameter 3 (mm). Long operation. Returns the ids of ALL the meshes added (grid, base, connectors and every model copy), baked to the last user layer with the wax color, same as the tool’s Accept.
| Parameter | Type | |
|---|---|---|
mesh_ids | Sequence[IdLike] | optional — None = the tool default |
base_point | Optional[PointLike] | optional — None = the tool default |
copies_per_mesh | int | optional — None = the tool default |
diameter | float | optional — None = the tool default |
height | float | optional — None = the tool default |
cells_around | int | optional — None = the tool default |
rows | int | optional — None = the tool default |
wire_diameter | float | optional — None = the tool default |
ra.manufacturing.sprue_curve()
ra.manufacturing.sprue_curve(mesh_id: IdLike, curve_id=None, offset=None, smooth=None, width=None, height=None, connection_count=None, connection_diameter=None, symmetry=None) -> List[str]
Perimeter-frame sprue (the ArtisanSprueCurve tool, headless): a closed pipe frame around the piece with tapered connectors reaching it and a horizontal injection post on the front side. The frame is the automatic silhouette of the piece pushed outwards by offset, or the curve curve_id when given (the tool’s custom-curve pick). Connections are seeded equidistant along the frame, exactly like the tool’s initial layout. mesh_id the piece mesh. curve_id optional closed perimeter curve; None/omitted = automatic silhouette. symmetry “None”, “X”, “Y” or “Quad” (case-insensitive); None = None. Numeric arguments with 0 keep the tool defaults: offset 2, width 1, height 1, connection_count 4, connection_diameter 0.3 (mm); smooth uses -1 = default (8 iterations) because 0 is a real value (no smoothing). The injection post keeps the tool defaults (external diameter 3, length 5). Returns the ids of the meshes added (frame, injection and connectors), baked to the last user layer with the wax color, same as the tool’s Accept.
| Parameter | Type | |
|---|---|---|
mesh_id | IdLike | required |
curve_id | Optional[IdLike] | optional — None = the tool default |
offset | float | optional — None = the tool default |
smooth | int | optional — None = the tool default |
width | float | optional — None = the tool default |
height | float | optional — None = the tool default |
connection_count | int | optional — None = the tool default |
connection_diameter | float | optional — None = the tool default |
symmetry | str | optional — None = the tool default |
ra.manufacturing.sprue_external_frames()
ra.manufacturing.sprue_external_frames(mesh_ids=None, margin=None, corner_radius=None, frame_diameter=None, connector_count=None, connector_separation=None, connector_length=None, end_connectors=None) -> List[str]
External-frame sprue (the ArtisanSprueExternalFrames tool, headless), meant for elongated pieces laid in a row (chains, bracelets): a rounded-rectangle runner around the combined bounding box of the given meshes, with pairs of thin stubs reaching inward from the long sides and, optionally, one from each short end. mesh_ids the pieces the frame is built around; None/empty = current selection end_connectors True = include the two short-side stubs (the tool’s default) Numeric arguments with 0 keep the tool defaults: margin 3, corner_radius 3, frame_diameter 2, connector_separation 5, connector_length 4 (mm); connector_count 0 = one stub pair per given object (what the tool seeds on selection). Returns the ids of the frame meshes added (last user layer, wax color, same as the tool’s Accept).
| Parameter | Type | |
|---|---|---|
mesh_ids | Sequence[IdLike] | optional — None = the tool default |
margin | float | optional — None = the tool default |
corner_radius | float | optional — None = the tool default |
frame_diameter | float | optional — None = the tool default |
connector_count | int | optional — None = the tool default |
connector_separation | float | optional — None = the tool default |
connector_length | float | optional — None = the tool default |
end_connectors | bool | optional — None = the tool default |
ra.manufacturing.sprue_external_tree()
ra.manufacturing.sprue_external_tree(mesh_id: IdLike, trunk_base_point: PointLike, contact_points: Sequence[PointLike], height=None, top_diameter=None, bottom_diameter=None, branch_trunk_diameter=None, branch_contact_diameter=None) -> List[str]
External-tree sprue for casting (the ArtisanSprueExternalTree tool, headless): a tapered trunk standing OUTSIDE the mesh at trunk_base_point with one branch per contact point reaching the outside of the closed mesh. The tool’s two interactive picks become explicit arguments; the tool seeds the trunk beside the mesh (bounding-box Max.X + 5, centre Y, Z = 0). Numeric arguments with 0 keep the tool defaults (or the user’s saved defaults): height 20, top_diameter 3, bottom_diameter 5, branch_trunk_diameter 2, branch_contact_diameter 0.8 (mm). Returns the ids of the sprue meshes added (last user layer, wax color, same as the tool’s Accept).
| Parameter | Type | |
|---|---|---|
mesh_id | IdLike | required |
trunk_base_point | PointLike | required |
contact_points | Sequence[PointLike] | required |
height | float | optional — None = the tool default |
top_diameter | float | optional — None = the tool default |
bottom_diameter | float | optional — None = the tool default |
branch_trunk_diameter | float | optional — None = the tool default |
branch_contact_diameter | float | optional — None = the tool default |
ra.manufacturing.sprue_helix()
ra.manufacturing.sprue_helix(link_mesh_id: IdLike, base_point=None, copies=None, wire_diameter=None, trunk_diameter=None, connector_length=None, connector_diameter=None, clearance_margin=None) -> List[str]
Helix casting tree (the ArtisanSprueHelix tool, headless): a conical base, a vertical trunk and a helical wire climbing around it, with copies copies of the link mesh hung along the wire — the tool for printing whole chains in one tree. Like the tool’s Generate button, the helix is auto-sized (turns, diameter, trunk length, one support arm per turn) so the requested copies fit without collisions; the link is chained along its longest axis, same as the tool’s initial pick. link_mesh_id the chain link (mesh or SubD) base_point where the tree stands on the plate; (0,0,0) = origin, the tool’s starting position Numeric arguments with 0 keep the tool defaults: copies 125, wire_diameter 3, trunk_diameter 10, connector_length 3.25, connector_diameter 1.5, clearance_margin 0 (mm). Long operation (the auto-sizing searches for a collision-free layout). Returns the ids of ALL the meshes added (tree + one mesh per copy), baked to the last user layer with the wax color, same as the tool’s Accept.
| Parameter | Type | |
|---|---|---|
link_mesh_id | IdLike | required |
base_point | PointLike | optional — None = the tool default |
copies | int | optional — None = the tool default |
wire_diameter | float | optional — None = the tool default |
trunk_diameter | float | optional — None = the tool default |
connector_length | float | optional — None = the tool default |
connector_diameter | float | optional — None = the tool default |
clearance_margin | float | optional — None = the tool default |
ra.manufacturing.sprue_inner_branches()
ra.manufacturing.sprue_inner_branches(mesh_id: IdLike, base_point: PointLike, contact_points: Sequence[PointLike], height=None, top_diameter=None, branch_contact_diameter=None, symmetry=None) -> List[str]
Inner-branches sprue for casting (the ArtisanSprueInnerBranches tool, headless): a central post rising from base_point with one branch per contact point reaching the inside of the closed mesh (typically a ring), optionally mirrored by symmetry. The tool’s two interactive picks become explicit arguments. mesh_id the closed mesh to sprue base_point where the central post stands; the tool seeds it under the mesh centre at Z = 0 contact_points points ON the mesh where the branches attach symmetry 0 = none (default), 1 = vertical mirror (X), 2 = horizontal mirror (Y), 3 = quad — the tool’s Symmetry combo, which multiplies each contact point Numeric arguments with 0 keep the tool defaults (or the user’s saved defaults): height = the mesh bounding-box centre height (what the tool seeds on selection), top_diameter 3, branch_contact_diameter 0.8 (mm). Returns the ids of the sprue meshes added (last user layer, wax color, same as the tool’s Accept).
| Parameter | Type | |
|---|---|---|
mesh_id | IdLike | required |
base_point | PointLike | required |
contact_points | Sequence[PointLike] | required |
height | float | optional — None = the tool default |
top_diameter | float | optional — None = the tool default |
branch_contact_diameter | float | optional — None = the tool default |
symmetry | int | optional — None = the tool default |
ra.manufacturing.sprue_inner_tree()
ra.manufacturing.sprue_inner_tree(mesh_id: IdLike, base_point: PointLike, contact_points: Sequence[PointLike], height=None, top_diameter=None, bottom_diameter=None, branch_contact_diameter=None) -> List[str]
Builds an inner-tree sprue for casting (the ArtisanSprueInnerTree tool, headless): a trunk from base_point with branches reaching each of contact_points on the closed mesh. The two interactive picks of the tool become explicit arguments. Numeric arguments with 0 keep the tool defaults (or the user’s saved defaults): height 10, top_diameter 3, bottom_diameter 5, branch_contact_diameter 0.8 (mm). Returns the ids of the sprue meshes added (last user layer, same as the tool’s Accept).
| Parameter | Type | |
|---|---|---|
mesh_id | IdLike | required |
base_point | PointLike | required |
contact_points | Sequence[PointLike] | required |
height | float | optional — None = the tool default |
top_diameter | float | optional — None = the tool default |
bottom_diameter | float | optional — None = the tool default |
branch_contact_diameter | float | optional — None = the tool default |
ra.manufacturing.sprue_multiple_copies()
ra.manufacturing.sprue_multiple_copies(mesh_ids: Sequence[IdLike], trunk_start: PointLike, trunk_end: PointLike, contact_points: Sequence[PointLike], top_diameter=None, bottom_diameter=None, branch_trunk_diameter=None, branch_contact_diameter=None) -> List[str]
Multiple-copies sprue (the ArtisanSprueMultipleCopies tool, headless): a tapered trunk between trunk_start and trunk_end with one curved branch from the trunk to each of contact_points on the mesh(es). The tool’s three interactive picks become arguments; where the tool asks for a matching point ON the trunk per contact, this method projects each contact onto the trunk line instead (closest point), which is the natural headless equivalent. mesh_ids the piece mesh(es), merged like the tool’s selector; None/empty = current selection. trunk_start bottom end of the trunk. trunk_end top end of the trunk. contact_points points on the mesh the branches reach (at least one). Numeric arguments with 0 keep the tool defaults (or the user’s saved defaults): top_diameter 1.3, bottom_diameter 2.3, branch_trunk_diameter 1.2, branch_contact_diameter 0.8 (mm). Returns the ids of the meshes added (trunk + one per branch), baked to the last user layer with the wax color, same as the tool’s Accept.
| Parameter | Type | |
|---|---|---|
mesh_ids | Sequence[IdLike] | required |
trunk_start | PointLike | required |
trunk_end | PointLike | required |
contact_points | Sequence[PointLike] | required |
top_diameter | float | optional — None = the tool default |
bottom_diameter | float | optional — None = the tool default |
branch_trunk_diameter | float | optional — None = the tool default |
branch_contact_diameter | float | optional — None = the tool default |
ra.manufacturing.sprue_single()
ra.manufacturing.sprue_single(mesh_id: IdLike, point: PointLike, height=None, top_x=None, top_y=None, bottom_x=None, bottom_y=None, inside_ring=None) -> str
Single sprue post (the ArtisanSprueSingle tool, headless): one tapered connector at point, which should lie ON the mesh (it plays the role of the tool’s pick-point-on-mesh prompt). Numeric arguments with 0 keep the tool defaults (or the user’s saved defaults): height 2, top 1.5 x 1.5, bottom 1.5 x 1.5, inside_ring 0.2 (mm). Returns the Guid of the sprue mesh (added as-is, same as the tool’s Accept).
| Parameter | Type | |
|---|---|---|
mesh_id | IdLike | required |
point | PointLike | required |
height | float | optional — None = the tool default |
top_x | float | optional — None = the tool default |
top_y | float | optional — None = the tool default |
bottom_x | float | optional — None = the tool default |
bottom_y | float | optional — None = the tool default |
inside_ring | float | optional — None = the tool default |
ra.manufacturing.sprue_spiral()
ra.manufacturing.sprue_spiral(link_mesh_id: IdLike, base_point=None, copies=None, max_diameter=None, wire_diameter=None, connector_length=None, clearance_margin=None, show_base=None) -> List[str]
Flat spiral casting sprue (the ArtisanSprueSpiral tool, headless): the same chain-printing idea as the helix but with the wire coiled FLAT, standing on legs, each link hung from a single vertical connector. Like the tool’s Generate button, the spiral is auto-sized (turns, turn spacing, inner eye) so the requested copies fit within max_diameter; the link hangs from its Y axis, same as the tool’s initial pick. link_mesh_id the chain link (mesh or SubD) base_point centre of the spiral on the plate; (0,0,0) = origin, the tool’s starting position show_base True = add the honeycomb base plate under the legs (off by default, like the tool) Numeric arguments with 0 keep the tool defaults: copies 60, max_diameter 100, wire_diameter 3, connector_length 3.25, clearance_margin 0 (mm). Long operation (the auto-sizing searches for a collision-free layout). Returns the ids of ALL the meshes added (spiral + one mesh per copy), baked to the last user layer with the wax color, same as the tool’s Accept.
| Parameter | Type | |
|---|---|---|
link_mesh_id | IdLike | required |
base_point | PointLike | optional — None = the tool default |
copies | int | optional — None = the tool default |
max_diameter | float | optional — None = the tool default |
wire_diameter | float | optional — None = the tool default |
connector_length | float | optional — None = the tool default |
clearance_margin | float | optional — None = the tool default |
show_base | bool | optional — None = the tool default |
ra.manufacturing.sprue_tree()
ra.manufacturing.sprue_tree(mesh_ids=None, base_point=None, copies_per_mesh=None, height=None, bottom_diameter=None, top_diameter=None, floors=None, pieces_per_floor=None, branch_diameter=None) -> List[str]
Radial casting tree (the ArtisanSprueTree tool, headless): a base + conical trunk rising from base_point, with floors floors x pieces_per_floor branches around it, and a copy of the given meshes distributed over the branches in round-robin. Each copy hangs from its branch by the bottom-center of its bounding box (the tool’s default anchor) with the default branch (length 8.5, angle 15 deg). mesh_ids the model meshes; None/empty = current selection. base_point where the base sits (default: world origin, like the tool). copies_per_mesh copies of EACH mesh; 0 = fill the free branches (the tool’s automatic mode). Numeric arguments with 0 keep the tool defaults: height 150, bottom_diameter 10, top_diameter 10, floors 7, pieces_per_floor 8, branch_diameter 1.5 (mm). Long operation. Returns the ids of ALL the meshes added (base, trunk, connectors and every model copy), baked to the last user layer with the wax color, same as the tool’s Accept.
| Parameter | Type | |
|---|---|---|
mesh_ids | Sequence[IdLike] | optional — None = the tool default |
base_point | Optional[PointLike] | optional — None = the tool default |
copies_per_mesh | int | optional — None = the tool default |
height | float | optional — None = the tool default |
bottom_diameter | float | optional — None = the tool default |
top_diameter | float | optional — None = the tool default |
floors | int | optional — None = the tool default |
pieces_per_floor | int | optional — None = the tool default |
branch_diameter | float | optional — None = the tool default |