# Auto apply a frame to over 50 imported paintings

I'm new to Blender and making good progress.

In a room, I have over 50 paintings (different sized imported planes).

They all use the exact same frame. The frames are identical in that they're all white with the same texture, same depth etc

Is there a way to auto-apply the frame around my 50 paintings?

Ideally I'd like to do this at the import stage as it's getting very tedious duplicating my frame and then sequentially applying and resizing to each different sized painting.

Here's a screenshot and thanks in advance for trying.

Thanks. P

Yep - apologies. I mean frames as in wooden picture frames.

Here's a screenshot and thanks in advance for trying. 3 frames in a row

They all use the exact same frame. What I mean is the frames are identical in that they're all white with the same texture, same depth etc

• Hi. How the frame looks like? Is its thickness supposed to be constant or proportional to the size of the images? could you add some picture here to illustrate? – lemon Sep 5 '20 at 9:43
• Not sure of the translation, but "goes everywhere framing" does not seems to be regular in the picture you provided. – lemon Sep 5 '20 at 18:04

Through the UI:

Design a frame-profile curve in such a way that its origin is on the inner edge of the frame's passepartout. (Test it out in a rectangle)

• Import your images as frames
• Select all, and ShiftD duplicate the lot. (It's sensible to keep pictures and duplicates in separate collections, for hiding, etc.)
• All dupes selected, Alt + Header menu > Convert the duplicate planes to curves, in one move.
• All the curves selected, one active, Alt assign the frame Profile as Bevel object. All the frames should acquire the bevel.

So now, all the pictures are framed. Trouble is... they're all separate objects.

• Alt Convert all the frames back to meshes.
• Choose Locations from the Header Options dropdown, with pictures and frames selected, scale the objects' locations to spread the framed pictures out a bit.
• CtrlJ join everything into one object.
• In Edit Mode on all, M Merge > By Distance all the coincident vertices of pictures and frames. If your profile was good, that should be all 4 corners on each picture.
• Still in Edit Mode, P Separate the framed-pictures object by loose parts.
• Object mode, all selected, ShiftCtrlX Origin > To Geometry

Now all the pictures should be framed, as single objects, with origins at their centers. Trouble is... they all now have a lot of surplus material slots.

To clean them up, you could run:

import bpy

sel = bpy.context.selected_objects

for ob in sel:
bpy.context.view_layer.objects.active = ob
bpy.ops.object.material_slot_remove_unused()


• You,ve got quite a few tricks under the sleeve, sir! Nice solution. – susu Sep 6 '20 at 0:54
• It's a shame 'Import Images as Planes' brings them in with a Principled BSDF, quite glossy. This is almost never what you need. – Robin Betts Sep 6 '20 at 7:30
• Ahhh.. Correction! I just looked at the code, and found all the options in the file browser! Not where I was expecting to find them – Robin Betts Sep 6 '20 at 7:52
• blender.stackexchange.com/questions/181480/… – susu Sep 6 '20 at 16:32
• @susu There you go! Thanks! The advantage of the shader coming in as a group is that you can edit in one place to affect all the images. It's what I would have suggested on Right-Click-Select .. :) – Robin Betts Sep 6 '20 at 16:42

You can select all the paintings at once in the outliner(Where all the names of the objects in the view-port appear) then go to the timeline and open the Keying > active Keying Set and select the type of key-frame you want to apply and then whenever you press I the selected active keying set (Lets say LOCROTScale) Will be applied to all your selected objects

• I think the question is about adding a frame (mesh) around several paintings. Not about keyframing... – lemon Sep 5 '20 at 10:13
• oops , my bad .. still , let him respond and if he agrees , then ill remove this - @lemon , thanks for pointing – SHikha Mittal Sep 5 '20 at 10:18