Array tools, all in one for translation, scale and rotation array

I have now (checked the wiki), looks great. Thank you.

1 Like

Thank you @Elreenys for the effort you put in writing and maintaining this. Seeing people like you adding to the great Blender for free like that sometimes brings me to tears. (in the good way). The array modifier is one of my favorite creative tools. It’s so satisfying to place objects in symmetrical patterns, I guess you must know what I mean :wink: And the lacking of the blender default one (I loved playing with array modifier in Maya years back, which is mightier) finally gave me the idea that someone could have written an addon - and BOOM here we are! Thank you, again, this is making my day complete!

1 Like

Thank you, you make me blush. :relaxed:

1 Like

Hi @Elreenys (Coucou !)

Thank you for creating this great addon, coming from 3DSMAX I also searched for a similar way to create arrays.

I am testing your addon but unlike the 3DSMAX Array tool, it doesn’t seem possible to create a circular array only with the origin (pivot point) of the object (cube or sphere for example). The user still has to use an Empty, am I right?

Do you plan to implement circular arrays but based on the the origin location?
Thank you in advance.

The addon shows an error if you:

  • Open an empty scene in Blender
  • Add a UVsphere
  • Select the UVsphere and click on the Start Array button
  • Create the cloned spheres
  • In the Outliner or on the 3Dview, delete these 5 spheres (keep the Array Collection)
  • Click CANCEL button

You might get this error:

Traceback (most recent call last):
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_panel.py”, line 19, in poll
return (len(context.selected_objects) > 0 and (context.object.mode == ‘OBJECT’))
AttributeError: ‘NoneType’ object has no attribute ‘mode’
location: :-1

Or this one:


I also got this one:

Traceback (most recent call last):
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_operators.py”, line 49, in execute
scn.arraytools_prop.at_del_all(True)
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_interface.py”, line 244, in at_del_all
ref_name = cfg.atools_objs[0][0]
IndexError: list index out of range

location: :-1

Hi,
A circular array need a pivot point, in here you have the possibility to choose a pivot (a lamp, a camera, an empty…). If no one is selected, the origin of the object is used.

Hi,
Yes it’s a normal behaviour you don’t have to delete copies by yourself, just let the cancel do his job.
If it really worry you, I can change it.

Hi Elreenys.

Of course, deleting the cloned objects in the Outliner is not something a user is supposed to do, but imo, an addon should cover all possible events (or most of them), especially when dealing with crashes and errors.

What is annoying in this case are all the dialog messages that appear for each deleted object (if the user deletes 20 objects, he/she gets 20 Message Info windows). Aside from the errors I mentioned above, it would be cool if the user only saw one warning message, for all deleted objects.

WOW! This is incredible! Thank you so much Elreenys!

It just informative but you’re right, no need to have so much warning.

1 Like

You’re welcome. :wink:

Wow yes! I found something else very interesting: Array Tools addon with Metaballs.
Maybe this will open a door to a new modelling technique?

I don’t use metaballs yet and I never imagine modeling like that. But sure it can be fun.

Hi,
A new small update is available (version 1.2.2) in github, as suggest by @xan2622, the program no longer displays an error message for each copy deleted by the user. Now a message in the console indicates which object(s) is / are missing.

I also update the wikis to include the rows part.

1 Like

Thank you for this update.
The small Warnings Dialog Windows no longer appear, which is better, thank you but you still can get this error if you delete a duplicated object:

Traceback (most recent call last):
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_panel.py”, line 19, in poll
return (len(context.selected_objects) > 0 and (context.object.mode == ‘OBJECT’))
AttributeError: ‘NoneType’ object has no attribute ‘mode’

location: :-1

And also this one:

Traceback (most recent call last):
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_operators.py”, line 49, in execute
scn.arraytools_prop.at_del_all(True)
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_interface.py”, line 244, in at_del_all
ref_name = cfg.atools_objs[0][0]
IndexError: list index out of range

location: :-1

How have I not seen this! Will test it right away! :smiley:

Hi,
I made new corrections (version 1.2.3) with no warning if user deletes copies or collection. You can even continue working with “holes”.
However if the reference object is deleted, the addon will reset.

1 Like

Traceback (most recent call last):
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_operators.py”, line 23, in execute
cfg.init_array_tool(context)
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\cfg.py”, line 56, in init_array_tool
prop.add_in_column(prop.row)
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_interface.py”, line 103, in add_in_column
cancel_array()
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_interface.py”, line 44, in cancel_array
bpy.ops.scene.at_cancel()
File “D:\Sebastien\archived_softwares\blender\blender_dailybuild\2.83\scripts\modules\bpy\ops.py”, line 201, in call
ret = op_call(self.idname_py(), None, kw)
RuntimeError: Error: Traceback (most recent call last):
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_operators.py”, line 49, in execute
scn.arraytools_prop.at_del_all(True)
File “C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.83\scripts\addons\array_tools-master\at_interface.py”, line 279, in at_del_all
array_col.objects.unlink(obj)
RuntimeError: Error: Object ‘Cube.001’ not in collection ‘Array_collection1’

location: D:\Sebastien\archived_softwares\blender\blender_dailybuild\2.83\scripts\modules\bpy\ops.py:201

location: :-1

Sorry to bother you @Elreenys but I noticed these errors after selecting a cube then clicking the Start array button.

EDIT : I am trying to reproduce the steps that made this error appear but I don’t remember exactly what caused it. I’ll continue to investigate.

I will search too, I miss this one.

Does anyone know why, when I create clones of a cube, instead of duplicating them with the same dimensions, the addon scales cloned cubes at the same location?

fm7riD3dG1