4

This is a bit of an interdisciplinary question, but I suppose here is the best place to put it.

I am designing a 3D printed plastic toy with LEDs and knobs in Blender using Python. The LEDs are soldered to a long strip of flexible circuit board, which is weaved through the plastic structure.

Flexible circuit board folded onto the 3D

The 3D shape in question is produced as follows. Take a unit 4D cube, and on all 8 of its faces, place the following 3D object: a 3x3x3 grid of rhombicuboctahedra, joined by square prisms. Project this 4D object to 3D using fisheye projection.

Compound 3D shape

But for simplicity, let's focus only on one of the faces, ideally one of the more distorted ones. The model can be downloaded here: STL File.

Now, I want an LED on every triangle face of every rhombicuboctahedron of that face, all of them connected with a single strip of flexible circuit board.

Constraints

  1. The circuit board must touch the 3D surface
  2. the circuit board may not intersect itself when spread flat Self-intersection on flat surface
  3. The circuit may not cross itself once folded onto the 3D body
  4. The strip may not go over the thin faces of the distorted prism. Bridge

My question is, how to reliably and efficiently design the shape of the flexible circuit board? I can usually get about 12 rhombicuboctahedra covered, but then as they become used up and the path within the grid becomes more and more constrained, I struggle to not run into the self-intersection problem.

  • 1
    So your goal is to touch each triangular face of each rhombicuboctahedron according to those constraints? Must the piece of flexible circuit board be a single strip, or could it possibly branch out? – Magma Aug 07 '19 at 22:09
  • 1
    Correct. And it may not branch within a single face (face is one whole 3x3x3 grid). However, if you find a solution that uses 2 or 3 separate stripes, each terminating at some accessible spot, I'd accept that too. – programagor Aug 07 '19 at 22:10
  • 1
    Hm. This is a tricky problem, even with an undistorted grid graph. I suggest trying to build your path from predesigned modules, composing pieces like this one whose ends point just about straight away from one another. – Magma Aug 07 '19 at 22:54
  • 1
    @Magma is right when he says this is a tricky problem. I think the general astract folding problem this is an instance of is unsolved. You should try for an engineering compromise. – Ethan Bolker Aug 07 '19 at 23:01
  • 1
    If you don't know about this 4d Rubik's cube website you probably should: http://superliminal.com/cube/cube.htm – Ethan Bolker Aug 07 '19 at 23:06
  • 1
    I am actually one of the solvers of the 5x5x5x5 (currently attempting the 3x3x3x3x3). That's what prompted this project. – programagor Oct 16 '19 at 10:53

1 Answers1

3

This is a tricky problem, even with an undistorted grid graph. If you want to find a path manually, I suggest trying to build your path from predesigned modules, composing pieces whose ends point just about straight away from one another, like this one:

Alternatively, if you have the programming skills, you could try letting a computer program do the trial and error for you, generating a bunch of random layouts until it finds one that does not self-intersect.

Magma
  • 6,270
  • 1
    If I create a pattern where the ends go "straight away from one another", my net ends up looking like this: https://i.stack.imgur.com/xiiJD.png – programagor Aug 07 '19 at 23:26
  • 1
    By "straight away" I mean in UV coordinates, not in 3D space. Note that my pattern doesn't start and end on opposite prisms. – Magma Aug 07 '19 at 23:35
  • 2
    In that case I agree, but I'll need to build a library of "turns" to give me a better maneuverability within the cube. – programagor Aug 07 '19 at 23:38
  • 1
    After considering multiple separate strips and trying some configurations, I found one that can connect a 123 block: https://i.stack.imgur.com/SWPKW.jpg. I will just repeat this 4 times, and then do a half version for the center 113 column. – programagor Aug 08 '19 at 08:24