<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ilogic: Split Multiple bodies using surface in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10203814#M51411</link>
    <description>&lt;P&gt;I'm trying.... and failing to write some ilogic for inventor 2018 which will split multiple bodies using a surface.&amp;nbsp;&lt;/P&gt;&lt;P&gt;the amount of bodies changes as its rectangularly patterned around a sketch (which changes)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what i have at the moment is:&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Dim oApp As Application
Dim oPrt As PartDocument
Dim oPRTCD As PartComponentDefinition
Dim oSB As SurfaceBody
Dim oFT As PartFeatures
Dim oRPF As RectangularPatternFeatures
Dim oFPE As FeaturePatternElement
Dim oSplit As SplitFeature
Dim oREFSKT As Sketch
Dim oCut = CBCT2
Dim oThing As FeaturePatternElements
oApp = ThisApplication
oPrt = oApp.ActiveDocument
oPRTCD = oPrt.ComponentDefinition
oSB = oPRTCD.SurfaceBodies.oThing
oFT = oPRTCD.Features
oRPF = oFT.RectangularPatternFeatures.
CountBody = oPRTCD.SurfaceBodies.Count
oThing = "Feature pattern2"

For Each body In oPRTCD.SurfaceBodies
	On Error Resume Next 
	For Each item In oREFSKT.drivenby
		If item.name = oRPF.name Then 
			oSB = oPRTCD.SurfaceBodies.Item(countbody)
			oSplit = oFT.SplitFeatures.SplitBody(oSB,oRPF)
			countbody = oPRTCD.SurfaceBodies.Count
		End If 
	Next
	
Next &lt;/LI-CODE&gt;&lt;P&gt;where CBCT2 is the surface used to cut and rectangular pattern2 is where the bodies are made.&amp;nbsp;&lt;/P&gt;&lt;P&gt;ive got this far from digging through the forums and google.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;any help would be greatly appreacated&lt;/P&gt;</description>
    <pubDate>Thu, 01 Apr 2021 06:26:17 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2021-04-01T06:26:17Z</dc:date>
    <item>
      <title>ilogic: Split Multiple bodies using surface</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10203814#M51411</link>
      <description>&lt;P&gt;I'm trying.... and failing to write some ilogic for inventor 2018 which will split multiple bodies using a surface.&amp;nbsp;&lt;/P&gt;&lt;P&gt;the amount of bodies changes as its rectangularly patterned around a sketch (which changes)&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what i have at the moment is:&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Dim oApp As Application
Dim oPrt As PartDocument
Dim oPRTCD As PartComponentDefinition
Dim oSB As SurfaceBody
Dim oFT As PartFeatures
Dim oRPF As RectangularPatternFeatures
Dim oFPE As FeaturePatternElement
Dim oSplit As SplitFeature
Dim oREFSKT As Sketch
Dim oCut = CBCT2
Dim oThing As FeaturePatternElements
oApp = ThisApplication
oPrt = oApp.ActiveDocument
oPRTCD = oPrt.ComponentDefinition
oSB = oPRTCD.SurfaceBodies.oThing
oFT = oPRTCD.Features
oRPF = oFT.RectangularPatternFeatures.
CountBody = oPRTCD.SurfaceBodies.Count
oThing = "Feature pattern2"

For Each body In oPRTCD.SurfaceBodies
	On Error Resume Next 
	For Each item In oREFSKT.drivenby
		If item.name = oRPF.name Then 
			oSB = oPRTCD.SurfaceBodies.Item(countbody)
			oSplit = oFT.SplitFeatures.SplitBody(oSB,oRPF)
			countbody = oPRTCD.SurfaceBodies.Count
		End If 
	Next
	
Next &lt;/LI-CODE&gt;&lt;P&gt;where CBCT2 is the surface used to cut and rectangular pattern2 is where the bodies are made.&amp;nbsp;&lt;/P&gt;&lt;P&gt;ive got this far from digging through the forums and google.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;any help would be greatly appreacated&lt;/P&gt;</description>
      <pubDate>Thu, 01 Apr 2021 06:26:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10203814#M51411</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-01T06:26:17Z</dc:date>
    </item>
    <item>
      <title>Betreff: ilogic: Split Multiple bodies using surface</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10207531#M51412</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There are parts of code missing? oREFSKT is declared and used, but never assigned a value to it. Is "rectangular pattern2" a rectangular pattern or are sketchdriven pattern?&lt;/P&gt;&lt;P&gt;I started from scratch and wrote it for both pattern types. I assume that "CBCT2" is the name of the Worksurface?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please try out:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Private Sub Main()
	
Dim oPartDoc As PartDocument = ThisDoc.Document

Dim oCompDef As PartComponentDefinition = oPartDoc.ComponentDefinition

Dim oSplitTool As WorkSurface
For Each oSplitTool In oCompDef.WorkSurfaces
    If oSplitTool.SurfaceBodies.Item(1).Name = "CBCT2" Then Exit For
Next

If oSplitTool Is Nothing 
	MsgBox("Surface " &amp;amp; Chr(34) &amp;amp; "CBCT2" &amp;amp; Chr(34) &amp;amp; " not found. Exit", , "iLogic - MultiBodySplit")
	Exit Sub
End If

Dim oSurfaceBodies As SurfaceBodies
oSurfaceBodies = GetSketchPattern(oCompDef)
If oSurfaceBodies Is Nothing Then oSurfaceBodies = GetRectPattern(oCompDef)
		
Dim oBody As SurfaceBody
Dim oSplitFeature As SplitFeature

If oPatternFeature IsNot Nothing Then
	For Each oBody In oCompDef.SurfaceBodies
    	oSplitFeature = oCompDef.Features.SplitFeatures.SplitBody(oSplitTool, oBody)
	Next
Else
	MsgBox("Pattern feature " &amp;amp; Chr(34) &amp;amp; "rectangular pattern 2" &amp;amp; Chr(34) &amp;amp; " not found. Exit", , "iLogic - MultiBodySplit")
	Exit Sub
End If

End Sub


Private Function GetSketchPattern(ByVal oCompDef As PartComponentDefinition) As SurfaceBodies

Dim oPatternFeature As SketchDrivenPatternFeature
For Each oPatternFeature In oCompDef.Features.SketchDrivenPatternFeatures
    If oPatternFeature.Name = "rectangular pattern2" Then
        GetSketchPattern = oPatternFeature.SurfaceBodies
        Exit For
    End If
Next

End Function

Private Function GetRectPattern(ByVal oCompDef As PartComponentDefinition) As SurfaceBodies

Dim oPatternFeature As RectangularPatternFeature
For Each oPatternFeature In oCompDef.Features.RectangularPatternFeatures
    If oPatternFeature.Name = "rectangular pattern2" Then
        GetRectPattern = oPatternFeature.SurfaceBodies
        Exit For
    End If
Next

End Function&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Apr 2021 14:05:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10207531#M51412</guid>
      <dc:creator>Ralf_Krieg</dc:creator>
      <dc:date>2021-04-02T14:05:22Z</dc:date>
    </item>
    <item>
      <title>Betreff: ilogic: Split Multiple bodies using surface</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10214641#M51413</link>
      <description>&lt;P&gt;hey thank you&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;sorry for slow reply, been off work for a couple of days.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm getting the error&amp;nbsp; "Pattern feature "rectangular Pattern2" not found. exit"&amp;nbsp;&lt;/P&gt;&lt;P&gt;is there a difference between solid and surface bodies?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;n.b I cant upload model due to nature of business.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Apr 2021 08:43:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10214641#M51413</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-06T08:43:17Z</dc:date>
    </item>
    <item>
      <title>Betreff: ilogic: Split Multiple bodies using surface</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10214696#M51414</link>
      <description>&lt;P&gt;ive added a msgbox to see if its counting the bodies, which it is, but still erroring out.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Dim oSurfaceBodies As SurfaceBodies
oSurfaceBodies = GetSketchPattern(oCompDef)
If oSurfaceBodies Is Nothing Then oSurfaceBodies = GetRectPattern(oCompDef)
		MsgBox(oSurfaceBodies.Count)
Dim oBody As SurfaceBody
Dim oSplitFeature As SplitFeature

If oPatternFeature IsNot Nothing Then
	For Each oBody In oCompDef.SurfaceBodies
    	oSplitFeature = oCompDef.Features.SplitFeatures.SplitBody(oSplitTool, oBody)
	Next
Else
	MsgBox("Pattern feature " &amp;amp; Chr(34) &amp;amp; "rectangular pattern 2" &amp;amp; Chr(34) &amp;amp; " not found. Exit", , "iLogic - MultiBodySplit")
	Exit Sub
End If

End Sub&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 06 Apr 2021 08:59:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10214696#M51414</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-06T08:59:25Z</dc:date>
    </item>
    <item>
      <title>Betreff: ilogic: Split Multiple bodies using surface</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10214706#M51415</link>
      <description>Is "rectangular pattern2" a rectangular pattern or are sketchdriven pattern? rectangular pattern&lt;BR /&gt;&lt;BR /&gt;I started from scratch and wrote it for both pattern types. I assume that "CBCT2" is the name of the Worksurface? its a surface body derived from a surfacesweep</description>
      <pubDate>Tue, 06 Apr 2021 09:01:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/ilogic-split-multiple-bodies-using-surface/m-p/10214706#M51415</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-04-06T09:01:42Z</dc:date>
    </item>
  </channel>
</rss>

