Files
modeling-app/docs/kcl/patternTransform2d.md
Nick Cameron a8b0e1a771 Use arrays for multiple geometry (#5770)
* Parse [T] instead of T[] for array types

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* homogenous arrays, type coercion, remove solid set and sketch set, etc

Signed-off-by: Nick Cameron <nrc@ncameron.org>

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
2025-03-17 17:57:26 +13:00

52 KiB

title, excerpt, layout
title excerpt layout
patternTransform2d Just like patternTransform, but works on 2D sketches not 3D solids. manual

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

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

Arguments

Name Type Description Required
sketches [Sketch] The sketch(es) to duplicate Yes
instances integer The 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
transform FunctionSource How 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
useOriginal bool If 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