DeepSOIC / Lattice2

FreeCAD workbench about arrays of all sorts and kinds, and local coordinate systems
Other
53 stars 9 forks source link

Polar array with para series doesn't copy over placement of compound #91

Open SpeeQz1 opened 1 week ago

SpeeQz1 commented 1 week ago

When trying to create a polar array from para series the placement of the objects doesn't get copied unlike with Linear array where they do get copied.

image

image

Tutorial used for reference: Cogset Tutorial

FreeCAD-Bundle AppImage: weekly-build OS: Linux Mint 22 ( Cinnamon )

SpeeQz1 commented 1 week ago

It appears the problem happens because of the Custom placement as the polar array does not copy over the positioning but the linear array does. I moved the Custom placement a bit and it seems the polar array does work if you edit the placement of the singular placement.

image

DeepSOIC commented 1 week ago

Hi! I can't fully diagnose this from just the screenshots, but i don't think there is anything wrong here, it's probably that you are using the wrong populate tool. For example, using "Build array" variant on a polar array makes the translation part have no effect (it is canceled out by the "handle" placement being the first placement of the polar-array). Use the plain populate-with-children, or "move children" variants if you want the radius of the polar array to have effect.

SpeeQz1 commented 1 week ago

I am creating a Para Series of the "Populate Custom with Body" object which is just populating the singular empty Custom with my Body.

I had tried the other populate tools and they had the same issues. Again the problem is that the Linear Array DOES move the objects from location of the singular "Populate Custom with Body" kite, but the Polar Array doesn't do the same when using on both "Populate with Children: Build Array".

I managed to fix it by moving the "Custom" to have the same offset as the radius of the Polar Array but it's odd it doesn't use the Polar Array kites location as the new one for the "Custom".

image

Testing-2.FCStd.zip

DeepSOIC commented 1 week ago

as i said, if you're using "build array", the offset is canceled out. That is by design. That's basically the whole point of "build array", the object as-is is assumed to be pre-placed. Just select ParaSeries and Polar Array and apply "Populate with children" and you get what you want. Or select ParaSeries, + Custom + Polar Array and apply "move children", that will also work.

DeepSOIC commented 1 week ago

Also, your "Populate Custom with Body" is redundant, you should be able to apply paraseries directly to a body.

SpeeQz1 commented 1 week ago

"Populate with Children" and para series from just body worked for me and seems to have properly copied over the elements, thanks. I don't know how I missed the polar array working with the para series when using the first populate with children option, so sorry for the trouble.

Here are the results of my testing:

  1. Custom + Para Series + Linear Array:
    • Populate with Children = Objects are properly copied to each kite
    • Populate with Children: Build Array = Objects are properly copied to each kite
  2. Custom + Para Series + Polar Array:
    • Populate with Children = Objects are properly copied to each kite
    • Populate with Children: Build Array = Objects are NOT copied to each kite and stay in the middle
  3. Body + Para Series + Linear Array:
    • Populate with Children = Objects are properly copied to each kite
    • Populate with Children: Build Array = Objects are properly copied to each kite
  4. Body + Para Series + Polar Array:
    • Populate with Children = Objects are properly copied to each kite
    • Populate with Children: Build Array = Objects are NOT copied to each kite and stay in the middle