26
$\begingroup$

Is there any addon that will allow me to merge multiple different meshes into one solid mesh?

I've spent a great deal of time constructing a fancy window frame, but I made it out of multiple individual meshes.

$\endgroup$
3
  • $\begingroup$ Could you post screenshot with wireframe view? $\endgroup$
    – cgslav
    Mar 29, 2017 at 18:47
  • 1
    $\begingroup$ I'd suggest not joining them into one mesh, (i.e. they share the same object but should be different meshes). Construct the model as it would be constructed in real life; window frames consist of several parts, no need to overcomplicate it. $\endgroup$
    – Mr Zak
    Mar 29, 2017 at 18:49
  • $\begingroup$ Good advice @MrZak! $\endgroup$
    – Fiddy Bux
    Jul 25, 2019 at 13:40

6 Answers 6

30
$\begingroup$

There are two methods of combining meshes that I know of; The first uses the addon BoolTool:

  1. Select the separate objects that you want to combine

  2. Press Ctrl+Numpad +, to perform a union operation

  3. Press Ctrl+Shift+Numpad Enter to apply the operation

Your separate pieces will now be combined, with new geometry created at the intersections, forming one solid mesh.

The second and lengthier way uses the Intersect (Knife) mesh operation:

  1. Combine two (or more) objects together with Ctrl+J

  2. In edit mode, select all of the faces of one of the meshes, the easy way to do this is to select one face and press Ctrl+L to select all of the linked faces

  3. Press Ctrl+F to bring up the faces menu and select Intersect (Knife), cuts will be made into the unselected faces where the selected faces overlap with them

  4. Select all of the faces and perform the Remove Doubles operation

You will end up with the same result as the first method. It is advised that when using this method to only combine two objects at a time, repeating the above steps for each pairing.

In both cases you will likely be left with N-GONs, a quick, though messy way to remove these without resorting to the Knife tool is the following:

  1. Select all of the faces and/or N-GONs and press Ctrl+T to triangulate them

  2. With all of the faces still selected, press Alt+J to convert the resulting triangles to quads

This may save some time in some areas of the mesh where the N-GONs are relatively simple, but the resulting topology may be lacking.

I hope this helps.

$\endgroup$
5
  • $\begingroup$ Thank you for the well typed out response. I will be certain to try this and report back. Thank you very much. i am trying the booltool now $\endgroup$
    – Amanojaku
    Mar 29, 2017 at 19:47
  • 1
    $\begingroup$ Over two years later...what's your report? $\endgroup$
    – Fiddy Bux
    Jul 25, 2019 at 13:43
  • 4
    $\begingroup$ What is the Ctrl+Numpad + command? I do not have a number pad so your shortcut is, unfortunately, useless to me. I searched under F3 for "union" but nothing comes up. $\endgroup$ Nov 13, 2019 at 4:10
  • $\begingroup$ Defintly should be the accepted answer. Especially bool tool. Way easier and take seconds and it's literaly part of Blender after 2.8 already. Just follow the steps of fiddy Bux Below. $\endgroup$ Nov 5, 2020 at 5:01
  • 4
    $\begingroup$ Those keyboard shortcuts don't work for me in Blender 2.83. $\endgroup$ Jan 15, 2021 at 1:54
23
$\begingroup$

You can merge multiple meshes together using a feature in Blender by default.

Simply select all the meshes you wish to merge, and hit CTRL+J to join them together.

$\endgroup$
3
  • 3
    $\begingroup$ Yes i am aware, but i need all the vertices connected. That is why i am looking to make a new mesh, like using shrinkwrap but better somehow. I would like to cnc it, but it needs to be all connected i believe $\endgroup$
    – Amanojaku
    Mar 29, 2017 at 18:30
  • $\begingroup$ @Amanojaku, if you want to connect vertices, they may have some proximity, so once joint, does "remove doubles" can do the job? $\endgroup$
    – lemon
    Mar 29, 2017 at 18:49
  • $\begingroup$ Yes in fact that is a really good good simple idea man. Thank you friend $\endgroup$
    – Amanojaku
    Mar 29, 2017 at 19:38
9
$\begingroup$

The following python script does it in Blender 2.80:

import bpy

bpy.ops.object.select_all(action='DESELECT')

mesh = [m for m in bpy.context.scene.objects if m.type == 'MESH']

for obj in mesh:
    obj.select_set(state=True)

    bpy.context.view_layer.objects.active = obj

bpy.ops.object.join()

Here is an add-on script.

    bl_info = {
    "name": "Merge all meshes",
    "author": "s.mehta",
    "version": (1,0),
    "blender": (2, 80, 0),
    "location": "View3D > Add > Mesh > Merge Meshes",
    "description": "Merge all meshes",
    "category": "Add Mesh",
}


import bpy


class MergeMeshes(bpy.types.Operator):
    """Merges all meshes into one mesh"""
    bl_idname = "mesh.merge_meshes"
    bl_label = "Merge Meshes"
    bl_description = "Merge all meshes"
    bl_options = {'REGISTER', 'UNDO'}


    def execute(self,context):

        #bpy.ops.object.select_all(action='DESELECT')

        mesh = [m for m in bpy.context.scene.objects if m.type == 'MESH']

        for obj in mesh:
            obj.select_set(state=True)

            bpy.context.view_layer.objects.active = obj

        bpy.ops.object.join()

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(MergeMeshes.bl_idname)

def register():
    bpy.utils.register_class(MergeMeshes)
    bpy.types.VIEW3D_MT_mesh_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(MergeMeshes)
    bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)


if __name__ == "__main__":
    register()
$\endgroup$
5
$\begingroup$

Easiest method:

  1. Open Blender and go to Preferences > Add-ons.

  2. Search for Bool Tool and tick the checkbox to enable the script.

  3. Select Objects you want to merge

  4. Click Union in the Edit panel (see screenshot below)

Screenshot

Learn more here on Blender documentation

$\endgroup$
2
$\begingroup$

If you want to join meshes through Blender's Python API:

item='MESH'
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_by_type(type=item)
bpy.ops.object.join()

where item can take any of the following values according to this documentation:

[‘MESH’, ‘CURVE’, ‘SURFACE’, ‘META’, ‘FONT’, ‘ARMATURE’, ‘LATTICE’, ‘EMPTY’, ‘CAMERA’, ‘LAMP’, ‘SPEAKER’]
$\endgroup$
2
$\begingroup$

Bool Tool is excellent (and also available for 2.8). Works very well.

In Blender 2.8 it's available in the EDIT tab (on the right). You will need to activate the addon in preferences first. Select all of the objects you wish to join into a single mesh and click UNION (in OBJECT mode). enter image description here

Another option would be to use the 'fast carve master' addon for 2.79 - it's basically the same thing, albeit a little more involved / flexible.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .