.NET API
ManufacturingApi
Manufacturing helpers, starting with the Automatic Repair tool.
from ArtisanPlugin.Scripting import ManufacturingApi
See also the guide, Manufacturing, and the Python package, ra.manufacturing.
Methods
| Method | |
|---|---|
AddIdentifier | 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. |
AutomaticRepair | Repairs the given objects into a single printable mesh (the ArtisanAutomaticRepair tool, headless): closes gaps, fixes normals, makes the result watertight. |
BalanceCheck | Checks how a pendant/earring hangs (the ArtisanBalancerChecker tool): the piece hangs from baseId (the bail or hook), and gravity pulls its volume centroid straight below the hook. |
DetectNonPrintable | Flags the objects that would not print (the ArtisanQuickNonPrintableDetector tool): bad objects, duplicates, open surfaces and open polysurfaces, using Rhino’s own selectors. |
ExportAllInOne | Merges solids/meshes into ONE printable mesh and writes a binary STL (the ArtisanExportAllInOne tool, headless). |
ExportFromLayers | Writes one STL per visible layer holding meshes, named “folder (the ArtisanExportFromLayers tool, headless). |
ImportToLayers | 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). |
QuickCheck | The ArtisanQuickCheck tool, scriptable: verifies each mesh is valid and watertight, and (like the tool) recolors it green when printable, red when not. |
ReduceThickness | Hollows a wall down to a uniform minimum thickness (the ArtisanReduceThickness tool, headless). |
ResizeRing | 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. |
SprueClusterTree | Cluster casting tree (the ArtisanSprueClusterTree tool, headless): a cylinder built as a grid of two crossed helix families (rhombic cells) standing on basePoint, 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). |
SprueCurve | 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. |
SprueExternalFrames | 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. |
SprueExternalTree | External-tree sprue for casting (the ArtisanSprueExternalTree tool, headless): a tapered trunk standing OUTSIDE the mesh at trunkBasePoint with one branch per contact point reaching the outside of the closed mesh. |
SprueHelix | 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. |
SprueInnerBranches | Inner-branches sprue for casting (the ArtisanSprueInnerBranches tool, headless): a central post rising from basePoint with one branch per contact point reaching the inside of the closed mesh (typically a ring), optionally mirrored by symmetry. |
SprueInnerTree | Builds an inner-tree sprue for casting (the ArtisanSprueInnerTree tool, headless): a trunk from basePoint with branches reaching each of contactPoints on the closed mesh. |
SprueMultipleCopies | Multiple-copies sprue (the ArtisanSprueMultipleCopies tool, headless): a tapered trunk between trunkStart and trunkEnd with one curved branch from the trunk to each of contactPoints on the mesh(es). |
SprueSingle | 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). |
SprueSpiral | 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. |
SprueTree | Radial casting tree (the ArtisanSprueTree tool, headless): a base + conical trunk rising from basePoint, with floors floors x piecesPerFloor branches around it, and a copy of the given meshes distributed over the branches in round-robin. |
AddIdentifier
Guid ManufacturingApi.AddIdentifier(
Guid meshId,
Point3d point1,
Point3d point2,
string text = null,
double diameter = 0,
double thickness = 0,
double fontSize = 0,
double overlapping = 0)
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, fontSize 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 | Default |
|---|---|---|
meshId | Guid | required |
point1 | Point3d | required |
point2 | Point3d | required |
text | string | null |
diameter | double | 0 |
thickness | double | 0 |
fontSize | double | 0 |
overlapping | double | 0 |
Returns Guid.
AutomaticRepair
RepairResult ManufacturingApi.AutomaticRepair(
IEnumerable<Guid> objectIds = null,
double precision = 0,
bool deleteOriginal = false)
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). objectIds objects to repair; null/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. deleteOriginal 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 | Default |
|---|---|---|
objectIds | IEnumerable<Guid> | null |
precision | double | 0 |
deleteOriginal | bool | false |
Returns RepairResult.
BalanceCheck
BalanceReport ManufacturingApi.BalanceCheck(
Guid baseId,
IEnumerable<Guid> geometryIds,
bool apply = false,
bool deleteOriginal = false,
double tolerance = 1)
Checks how a pendant/earring hangs (the ArtisanBalancerChecker tool): the piece hangs from baseId (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 deleteOriginal). Default false = report only. deleteOriginal with apply, removes the source geometry. tolerance degrees under which IsBalanced is true (default 1). Read-only unless apply is true.
| Parameter | Type | Default |
|---|---|---|
baseId | Guid | required |
geometryIds | IEnumerable<Guid> | required |
apply | bool | false |
deleteOriginal | bool | false |
tolerance | double | 1 |
Returns BalanceReport.
DetectNonPrintable
NonPrintableReport ManufacturingApi.DetectNonPrintable()
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.
Returns NonPrintableReport.
ExportAllInOne
AllInOneExport ManufacturingApi.ExportAllInOne(
string path,
IEnumerable<Guid> objectIds = null,
bool allowNonPrintable = false)
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) objectIds objects to export; null/empty = current selection, and when nothing is selected every visible solid/mesh that is not a gem (like the tool’s filter) allowNonPrintable 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 | Default |
|---|---|---|
path | string | required |
objectIds | IEnumerable<Guid> | null |
allowNonPrintable | bool | false |
Returns AllInOneExport.
ExportFromLayers
IReadOnlyList<LayerExport> ManufacturingApi.ExportFromLayers(
string folder,
bool overwrite = true)
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 | Default |
|---|---|---|
folder | string | required |
overwrite | bool | true |
Returns IReadOnlyList<LayerExport>.
ImportToLayers
IReadOnlyList<LayerImport> ManufacturingApi.ImportToLayers(string folder)
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 | Default |
|---|---|---|
folder | string | required |
Returns IReadOnlyList<LayerImport>.
QuickCheck
IReadOnlyList<MeshCheckResult> ManufacturingApi.QuickCheck(
IEnumerable<Guid> objectIds = null)
The ArtisanQuickCheck tool, scriptable: verifies each mesh is valid and watertight, and (like the tool) recolors it green when printable, red when not. objectIds null/empty = current selection; non-mesh objects are skipped. Returns one result per checked mesh.
| Parameter | Type | Default |
|---|---|---|
objectIds | IEnumerable<Guid> | null |
Returns IReadOnlyList<MeshCheckResult>.
ReduceThickness
ReduceThicknessResult ManufacturingApi.ReduceThickness(
Guid objectId,
IEnumerable<Point3d> points,
double thickness = 0,
double radius = 0,
int steps = 0)
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). objectId 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; 0 = the tool default 0.8 radius brush radius in mm; 0 = 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 | Default |
|---|---|---|
objectId | Guid | required |
points | IEnumerable<Point3d> | required |
thickness | double | 0 |
radius | double | 0 |
steps | int | 0 |
Returns ReduceThicknessResult.
ResizeRing
IReadOnlyList<ResizedRing> ManufacturingApi.ResizeRing(
Guid meshId,
double fromDiameter,
IEnumerable<double> toDiameters,
IEnumerable<string> names = null)
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. meshId the ring mesh to resize fromDiameter the ring’s CURRENT inner diameter in mm; 0 = the document’s finger size toDiameters target inner diameters in mm (e.g. [16.5, 17.35, 18.2]) names optional labels, parallel to toDiameters; default is the diameter formatted (“17.35”) The user’s saved Resizer defaults (mode, alignment, identifier tag, sprue, ring spacing) apply when there are any, like in the tool; an identifier tag or sprue they enable goes into its ring’s layer and group. Long operation (one boolean pipeline per size).
| Parameter | Type | Default |
|---|---|---|
meshId | Guid | required |
fromDiameter | double | required |
toDiameters | IEnumerable<double> | required |
names | IEnumerable<string> | null |
Returns IReadOnlyList<ResizedRing>.
SprueClusterTree
IReadOnlyList<Guid> ManufacturingApi.SprueClusterTree(
IEnumerable<Guid> meshIds = null,
Point3d? basePoint = null,
int copiesPerMesh = 0,
double diameter = 0,
double height = 0,
int cellsAround = 0,
int rows = 0,
double wireDiameter = 0)
Cluster casting tree (the ArtisanSprueClusterTree tool, headless): a cylinder built as a grid of two crossed helix families (rhombic cells) standing on basePoint, 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. meshIds the model meshes; null/empty = current selection. basePoint where the base sits (default: world origin). copiesPerMesh copies of EACH mesh; 0 = fill the free nodes. Numeric arguments with 0 keep the tool defaults: diameter 65, height 90, cellsAround 8, rows 7, wireDiameter 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 | Default |
|---|---|---|
meshIds | IEnumerable<Guid> | null |
basePoint | Point3d? | null |
copiesPerMesh | int | 0 |
diameter | double | 0 |
height | double | 0 |
cellsAround | int | 0 |
rows | int | 0 |
wireDiameter | double | 0 |
Returns IReadOnlyList<Guid>.
SprueCurve
IReadOnlyList<Guid> ManufacturingApi.SprueCurve(
Guid meshId,
Guid? curveId = null,
double offset = 0,
int smooth = -1,
double width = 0,
double height = 0,
int connectionCount = 0,
double connectionDiameter = 0,
string symmetry = null)
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 curveId when given (the tool’s custom-curve pick). Connections are seeded equidistant along the frame, exactly like the tool’s initial layout. meshId the piece mesh. curveId optional closed perimeter curve; Guid.Empty/omitted = automatic silhouette. symmetry “None”, “X”, “Y” or “Quad” (case-insensitive); null = None. Numeric arguments with 0 keep the tool defaults: offset 2, width 1, height 1, connectionCount 4, connectionDiameter 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 | Default |
|---|---|---|
meshId | Guid | required |
curveId | Guid? | null |
offset | double | 0 |
smooth | int | -1 |
width | double | 0 |
height | double | 0 |
connectionCount | int | 0 |
connectionDiameter | double | 0 |
symmetry | string | null |
Returns IReadOnlyList<Guid>.
SprueExternalFrames
IReadOnlyList<Guid> ManufacturingApi.SprueExternalFrames(
IEnumerable<Guid> meshIds = null,
double margin = 0,
double cornerRadius = 0,
double frameDiameter = 0,
int connectorCount = 0,
double connectorSeparation = 0,
double connectorLength = 0,
bool endConnectors = true)
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. meshIds the pieces the frame is built around; null/empty = current selection endConnectors true = include the two short-side stubs (the tool’s default) Numeric arguments with 0 keep the tool defaults: margin 3, cornerRadius 3, frameDiameter 2, connectorSeparation 5, connectorLength 4 (mm); connectorCount 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 | Default |
|---|---|---|
meshIds | IEnumerable<Guid> | null |
margin | double | 0 |
cornerRadius | double | 0 |
frameDiameter | double | 0 |
connectorCount | int | 0 |
connectorSeparation | double | 0 |
connectorLength | double | 0 |
endConnectors | bool | true |
Returns IReadOnlyList<Guid>.
SprueExternalTree
IReadOnlyList<Guid> ManufacturingApi.SprueExternalTree(
Guid meshId,
Point3d trunkBasePoint,
IEnumerable<Point3d> contactPoints,
double height = 0,
double topDiameter = 0,
double bottomDiameter = 0,
double branchTrunkDiameter = 0,
double branchContactDiameter = 0)
External-tree sprue for casting (the ArtisanSprueExternalTree tool, headless): a tapered trunk standing OUTSIDE the mesh at trunkBasePoint 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, topDiameter 3, bottomDiameter 5, branchTrunkDiameter 2, branchContactDiameter 0.8 (mm). Returns the ids of the sprue meshes added (last user layer, wax color, same as the tool’s Accept).
| Parameter | Type | Default |
|---|---|---|
meshId | Guid | required |
trunkBasePoint | Point3d | required |
contactPoints | IEnumerable<Point3d> | required |
height | double | 0 |
topDiameter | double | 0 |
bottomDiameter | double | 0 |
branchTrunkDiameter | double | 0 |
branchContactDiameter | double | 0 |
Returns IReadOnlyList<Guid>.
SprueHelix
IReadOnlyList<Guid> ManufacturingApi.SprueHelix(
Guid linkMeshId,
Point3d basePoint = null,
int copies = 0,
double wireDiameter = 0,
double trunkDiameter = 0,
double connectorLength = 0,
double connectorDiameter = 0,
double clearanceMargin = 0)
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. linkMeshId the chain link (mesh or SubD) basePoint 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, wireDiameter 3, trunkDiameter 10, connectorLength 3.25, connectorDiameter 1.5, clearanceMargin 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 | Default |
|---|---|---|
linkMeshId | Guid | required |
basePoint | Point3d | null |
copies | int | 0 |
wireDiameter | double | 0 |
trunkDiameter | double | 0 |
connectorLength | double | 0 |
connectorDiameter | double | 0 |
clearanceMargin | double | 0 |
Returns IReadOnlyList<Guid>.
SprueInnerBranches
IReadOnlyList<Guid> ManufacturingApi.SprueInnerBranches(
Guid meshId,
Point3d basePoint,
IEnumerable<Point3d> contactPoints,
double height = 0,
double topDiameter = 0,
double branchContactDiameter = 0,
int symmetry = 0)
Inner-branches sprue for casting (the ArtisanSprueInnerBranches tool, headless): a central post rising from basePoint 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. meshId the closed mesh to sprue basePoint where the central post stands; the tool seeds it under the mesh centre at Z = 0 contactPoints 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), topDiameter 3, branchContactDiameter 0.8 (mm). Returns the ids of the sprue meshes added (last user layer, wax color, same as the tool’s Accept).
| Parameter | Type | Default |
|---|---|---|
meshId | Guid | required |
basePoint | Point3d | required |
contactPoints | IEnumerable<Point3d> | required |
height | double | 0 |
topDiameter | double | 0 |
branchContactDiameter | double | 0 |
symmetry | int | 0 |
Returns IReadOnlyList<Guid>.
SprueInnerTree
IReadOnlyList<Guid> ManufacturingApi.SprueInnerTree(
Guid meshId,
Point3d basePoint,
IEnumerable<Point3d> contactPoints,
double height = 0,
double topDiameter = 0,
double bottomDiameter = 0,
double branchContactDiameter = 0)
Builds an inner-tree sprue for casting (the ArtisanSprueInnerTree tool, headless): a trunk from basePoint with branches reaching each of contactPoints 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, topDiameter 3, bottomDiameter 5, branchContactDiameter 0.8 (mm). Returns the ids of the sprue meshes added (last user layer, same as the tool’s Accept).
| Parameter | Type | Default |
|---|---|---|
meshId | Guid | required |
basePoint | Point3d | required |
contactPoints | IEnumerable<Point3d> | required |
height | double | 0 |
topDiameter | double | 0 |
bottomDiameter | double | 0 |
branchContactDiameter | double | 0 |
Returns IReadOnlyList<Guid>.
SprueMultipleCopies
IReadOnlyList<Guid> ManufacturingApi.SprueMultipleCopies(
IEnumerable<Guid> meshIds,
Point3d trunkStart,
Point3d trunkEnd,
IEnumerable<Point3d> contactPoints,
double topDiameter = 0,
double bottomDiameter = 0,
double branchTrunkDiameter = 0,
double branchContactDiameter = 0)
Multiple-copies sprue (the ArtisanSprueMultipleCopies tool, headless): a tapered trunk between trunkStart and trunkEnd with one curved branch from the trunk to each of contactPoints 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. meshIds the piece mesh(es), merged like the tool’s selector; null/empty = current selection. trunkStart bottom end of the trunk. trunkEnd top end of the trunk. contactPoints points on the mesh the branches reach (at least one). Numeric arguments with 0 keep the tool defaults (or the user’s saved defaults): topDiameter 1.3, bottomDiameter 2.3, branchTrunkDiameter 1.2, branchContactDiameter 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 | Default |
|---|---|---|
meshIds | IEnumerable<Guid> | required |
trunkStart | Point3d | required |
trunkEnd | Point3d | required |
contactPoints | IEnumerable<Point3d> | required |
topDiameter | double | 0 |
bottomDiameter | double | 0 |
branchTrunkDiameter | double | 0 |
branchContactDiameter | double | 0 |
Returns IReadOnlyList<Guid>.
SprueSingle
Guid ManufacturingApi.SprueSingle(
Guid meshId,
Point3d point,
double height = 0,
double topX = 0,
double topY = 0,
double bottomX = 0,
double bottomY = 0,
double insideRing = 0)
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, insideRing 0.2 (mm). Returns the Guid of the sprue mesh (added as-is, same as the tool’s Accept).
| Parameter | Type | Default |
|---|---|---|
meshId | Guid | required |
point | Point3d | required |
height | double | 0 |
topX | double | 0 |
topY | double | 0 |
bottomX | double | 0 |
bottomY | double | 0 |
insideRing | double | 0 |
Returns Guid.
SprueSpiral
IReadOnlyList<Guid> ManufacturingApi.SprueSpiral(
Guid linkMeshId,
Point3d basePoint = null,
int copies = 0,
double maxDiameter = 0,
double wireDiameter = 0,
double connectorLength = 0,
double clearanceMargin = 0,
bool showBase = false)
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 maxDiameter; the link hangs from its Y axis, same as the tool’s initial pick. linkMeshId the chain link (mesh or SubD) basePoint centre of the spiral on the plate; (0,0,0) = origin, the tool’s starting position showBase 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, maxDiameter 100, wireDiameter 3, connectorLength 3.25, clearanceMargin 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 | Default |
|---|---|---|
linkMeshId | Guid | required |
basePoint | Point3d | null |
copies | int | 0 |
maxDiameter | double | 0 |
wireDiameter | double | 0 |
connectorLength | double | 0 |
clearanceMargin | double | 0 |
showBase | bool | false |
Returns IReadOnlyList<Guid>.
SprueTree
IReadOnlyList<Guid> ManufacturingApi.SprueTree(
IEnumerable<Guid> meshIds = null,
Point3d? basePoint = null,
int copiesPerMesh = 0,
double height = 0,
double bottomDiameter = 0,
double topDiameter = 0,
int floors = 0,
int piecesPerFloor = 0,
double branchDiameter = 0)
Radial casting tree (the ArtisanSprueTree tool, headless): a base + conical trunk rising from basePoint, with floors floors x piecesPerFloor 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). meshIds the model meshes; null/empty = current selection. basePoint where the base sits (default: world origin, like the tool). copiesPerMesh copies of EACH mesh; 0 = fill the free branches (the tool’s automatic mode). Numeric arguments with 0 keep the tool defaults: height 150, bottomDiameter 10, topDiameter 10, floors 7, piecesPerFloor 8, branchDiameter 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 | Default |
|---|---|---|
meshIds | IEnumerable<Guid> | null |
basePoint | Point3d? | null |
copiesPerMesh | int | 0 |
height | double | 0 |
bottomDiameter | double | 0 |
topDiameter | double | 0 |
floors | int | 0 |
piecesPerFloor | int | 0 |
branchDiameter | double | 0 |
Returns IReadOnlyList<Guid>.