kcl

patternTransform2d

Just like patternTransform, but works on 2D sketches not 3D solids.

patternTransform2d(
  sketchSet: SketchSet,
  instances: integer,
  transform: FunctionSource,
  useOriginal?: bool,
): [Sketch]

Arguments

NameTypeDescriptionRequired
sketchSetSketchSetThe sketch(es) to duplicateYes
instancesintegerThe number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect.Yes
transformFunctionSourceHow each replica should be transformed. The transform function takes a single parameter: an integer representing which number replication the transform is for. E.g. the first replica to be transformed will be passed the argument 1. This simplifies your math: the transform function can rely on id 0 being the original instance passed into the patternTransform. See the examples.Yes
useOriginalboolIf the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false.No

Returns

[Sketch]

Examples

// Each instance will be shifted along the X axis.
fn transform(id) {
  return { translate = [4 * id, 0] }
}

// Sketch 4 circles.
sketch001 = startSketchOn('XZ')
  |> circle(center = [0, 0], radius = 2)
  |> patternTransform2d(instances = 4, transform = transform)

Rendered example of patternTransform2d 0