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.
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.
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.
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.
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.
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.
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