Circular Pattern with fixed chord length – how to constrain start and end to X-axis?

Hi all,
I’m trying to create a circular pattern in Sketch mode in Shapr3D where each circle lies along an arc, with a fixed center-to-center distance (chord length) between them. The geometry should be fully defined using just two constraints.

The goal:

  • 43 circles, each 6 mm in diameter
  • The center-to-center distance between each circle should be exactly 150 mm (chord length)
  • The center of the arc should be at the origin (0,0)
  • The first and last circle should be tangent to the X-axis (i.e., sitting directly on it)
  • This means the radius, total angle, and segment angle are not fixed, but derived from the above

What I’ve tried:
I’ve used the Circular Pattern tool, and it works partially:

  • I can specify the number of objects (43)
  • I can define the chord length between the circle centers as exactly 150 mm – which works fine!

But:
When I try to move the last circle so that it is tangent to the X-axis (to apply a constraint), Shapr3D doesn’t allow it. It seems like the Circular Pattern creates a fully locked group that doesn’t accept additional constraints – either immediately or after trying to break the pattern.

My question:
How can I create a circular pattern in Shapr3D where:

  1. The chord length between each circle’s center is exactly 150 mm
  2. The first and last circle are tangent to the X-axis
  3. The arc’s center is fixed at the origin (0,0)
  4. The geometry is fully constrained, with no manual adjustments
  5. The radius and angles are calculated automatically from the above

Any tips, workarounds, or confirmation if this is even possible in Shapr3D’s current toolset would be greatly appreciated!

Replies are welcome in either English or Swedish – whichever is easiest for you.

Thanks!
/Daniel

You can do the following:

Setup 3 variables:

  • circle_diameter = 6mm
  • circle_count = 43
  • spacing = 150mm

  • Create a circular pattern.
  • Attach rotation center to the origin.
  • For circle set circle_diameter variable.
  • In a pattern set circle_count variable for item count and 360 degree total rotation.
  • Draw construction line between first and second circle in the array and set the length to spacing variable.

As a result everything is controlled via variables and recalculated automatically.

1 Like

Or if you need the distance between the points along the circumference.

  • add big circle
  • make it coincidence to the center of the first array element.
  • set diameter of that circle to spacing * circle_count / 3.1416

Re-attached to the X-axis

If you need an arc, everything stays the same except you need to set 180 degrees in the circular pattern. Also new formula should be spacing * circle_count / (3.1416 / 2)


Or with simple mod you can set arc angle via variable


Even simpler with chord length.

I just reread your request and realized that the answer to your question is much simpler than what I wrote here :slightly_smiling_face: All you need to do is set the total angle in the pattern to 180 degrees. :rofl: