Skip to main content

Copying

copy() duplicates the entire shape in linear or circular arrangements. The original solid is cloned as-is — FluidCAD doesn't re-run any modeling operations, it just places copies of the finished shape at new positions.

Linear copy

Duplicate a shape along one axis:

import { circle, copy, extrude, sketch } from 'fluidcad/core';

sketch("xy", () => {
circle([150, 150], 100)
})

extrude()

copy("linear", "x", {
count: 4,
offset: 150
})

Linear copy

Options:

  • count — total number of instances (including the original)
  • offset — spacing between each instance
  • skip — indices to skip (0-based)

Multi-axis linear copy

Copy along two axes at once:

copy("linear", ["x", "y"], {
count: 4,
offset: 150,
skip: [[2], [1, 3]] // skip index 2 on X, indices 1 and 3 on Y
})

When using two axes, count, offset, and skip can each be arrays — one value per axis.

Circular copy

Duplicate a shape around an axis:

import { sketch, extrude, copy } from 'fluidcad/core';
import { circle } from 'fluidcad/core';

sketch("xy", () => {
circle([80, 0], 30)
})

extrude(25)

copy("circular", "z", {
count: 6,
angle: 360
})

Circular copy

Options:

  • count — total number of instances (including the original)
  • angle — total angle to spread across (default: 360)
  • skip — indices to skip
Copy vs. Repeat

copy() duplicates the finished shape. If you need to re-apply a modeling operation (like a cut or extrude) at multiple positions — so it interacts with the underlying solid at each location — use repeat() instead.