Cancel
Showing results for 
Search instead for 
Did you mean: 

How to unite two bodies that are not connected?

Pioneer
Pioneer

How would you unite or merge two or more bodies whose geometry do not touch each other. I have a lot of solid bodies that I want to use with split body, or I want to subtract material off of 7 bodies with the subtract revolve feature, and I want to perform these operations all at the same time. If I don't unite all these bodies I have to perform all these operations independently. 

11 REPLIES 11

Re: How to unite two bodies that are not connected?

Phenom
Phenom

Hi @Baratheon

I don't think it may be possible to have separate bodies as one body because it contradicts the software's logic.

You can create your tool body by setting boolean to none. Then subtract each body with "keep tool" checkbox active and use your tool body more than once.

But again the target body in subtract is a single selection field and it is not possible to have more than one target body.

Sorry!

Re: How to unite two bodies that are not connected?

Solution Partner Legend Solution Partner Legend
Solution Partner Legend
In many cases you can use Trim operation instead of Subtract, and Trm can have multiple target bodies.
Highlighted

Re: How to unite two bodies that are not connected?

Siemens Phenom Siemens Phenom
Siemens Phenom

A 'feature' can have multiple bodies, but, by definition, a 'body' itself can not consist of multiple pieces.  I think that would violate the manifold rule.

John R. Baker, P.E. (ret)
EX-Product 'Evangelist'
Irvine, CA

Re: How to unite two bodies that are not connected?

Pioneer
Pioneer

Let's say I have 10 extrudes (different solid bodies) in my model history, or if I inherhit a step file with 10 bodies. What would be the easiest way to remove material in all of them using the same sketch, profile, vector, etc? Is there anyway to  combine all my part bodies so that one operation can be performed? I understand I can do the operations one at a time for all until I get my desired results. 

 

This is a VERY simplified version of what I want to do. 

 

separate part bodies.jpg

Re: How to unite two bodies that are not connected?

Siemens Phenom Siemens Phenom
Siemens Phenom

Create an Extrude using the sketch, as a standalone Body.  Then perform a Boolean Subtract selecting the '10 Bodies' as the Targets and the single Extruded Body as the Tool solid.  The result will be 10 separate Bodies, but you will only have had to perform a single Boolean Subtract operation.

John R. Baker, P.E. (ret)
EX-Product 'Evangelist'
Irvine, CA

Re: How to unite two bodies that are not connected?

Pioneer
Pioneer

That would be the answer to this thread, if we could chose more than one body as target. Unless I'm mistaken we can only have one target, but we can have more than one tool, which is not relevant in my case. 

Re: How to unite two bodies that are not connected?

Siemens Phenom Siemens Phenom
Siemens Phenom

Sorry, it's been awhile since I've had access to the software.

John R. Baker, P.E. (ret)
EX-Product 'Evangelist'
Irvine, CA

Re: How to unite two bodies that are not connected?

Phenom
Phenom

Hi @Baratheon

I used following little SNAP journal to do it:

 

Option Infer On
Imports Snap, Snap.Create, Snap.NX.ObjectTypes

Public Class SubtractMultiBody : Inherits UI.BlockForm

   	' Declarations of the blocks
   	Dim targetSelector As UI.Block.SelectObject    
   	Dim toolSelector As UI.Block.SelectObject   
   	
   	' Constructor for dialog object
	Public Sub New()
		
		Me.Title = "subtract multi bodies"		
		Dim solidCue = "select solid bodies"
		
		' Create a selection block
		Dim solidLabelTarget = "select target body"		
		targetSelector = New UI.Block.SelectObject(solidCue, solidLabelTarget)
		targetSelector.SetFilter(Type.Body)
		targetSelector.AllowMultiple = True
		
		' Create a selection block
		Dim solidLabelTool = "select tool body"		
		toolSelector = New UI.Block.SelectObject(solidCue, solidLabelTool)
		toolSelector.SetFilter(Type.Body)
		toolSelector.AllowMultiple = True
		
		' Add all the blocks to the BlockForm
		Me.AddBlocks(targetSelector, toolSelector)
	
	End Sub

   	Public Shared Sub Main()	
		Dim myForm = New SubtractMultiBody()
      	myForm.Show()
   	End Sub

	Public Overrides Sub OnApply()		
		Dim targets = targetSelector.SelectedObjects
		Dim tools = toolSelector.SelectedObjects
		Dim tempSolid As NX.Body
		
		For Each target As NX.Body In targets
			For Each tool As NX.Body In tools
				Try
					tempSolid = tool.copy()
					Subtract(target, tempSolid)
				Catch
					tempSolid.delete()
				End Try
			Next
		Next
	End Sub		
End Class

(view in My Videos)

good luck.

Re: How to unite two bodies that are not connected?

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

The code creates unassociative copies of the target solids. This won't update when the model is edited.