Open CASCADE, the 3D modelling kernel
3D modeling & numerical simulation

Search the Forums
See All Topics

Splitting STEP files in sub parts

Splitting STEP files in sub parts
davide 2013/02/20 14:16
HI. I'm using OCC 6.2 .net wrapper.
My goal is to load a STEP file and split it into several STEP with model structure.
The problem is that i don't know how to get the original part names:
The model structure is ok but all names changed in : "Open CASCADE STEP translator 6.2 8 xxxx" .

Here is the sub i use to read the main step file
Dim r As New STEPCAFControl.Reader

Dim D As New TDocStd.Document(New TCollection.ExtendedString("MDTV-CAF"))

If r.Transfer(D) Then

Dim ROOT As XCAFDoc.ShapeTool = XCAFDoc.DocumentTool.ShapeTool(D.Main)
Dim Colors As XCAFDoc.ColorTool = XCAFDoc.DocumentTool.ColorTool(D.Main)
Dim labels As New TDF.LabelSequence
Dim labelsCols As New TDF.LabelSequence

For ic As Integer = 1 To labelsCols.Length
Dim labelc As TDF.Label = labelsCols.Value(ic)
' MsgBox(GetName(labelc))
Dim tn1 As TreeNode = Nothing
Dim tn2 As TreeNode = Nothing
Dim ts As syShape = Nothing
Dim nRoots As Integer = labels.Length
For i As Integer = 1 To nRoots
Dim label As TDF.Label = labels.Value(i)
' MsgBox(GetName(label))

If XCAFDoc.ShapeTool.IsAssembly(label) Then
Nodi.Text = GetName(label)
recurse(label, Nodi, Colors, r)

MsgBox("nessun assieme trovato")

End If

End If

here is the sub that recurse the structure

Public Sub recurse(parentLabel As TDF.Label, tNode As TreeNode, Colors As XCAFDoc.ColorTool, r As STEPCAFControl.Reader)
'Dim parentLabel As TDF.Label = node.Father.Label
Dim Livello As Integer = 0
contaParent(tNode, Livello)

If parentLabel.HasChild Then
Dim nodeIterator1 As New TDF.ChildIDIterator(parentLabel, XCAFDoc.General.ShapeRefGUID(), True)
While nodeIterator1.More
Dim node1 As TDataStd.TreeNode = CType(nodeIterator1.Value, TDataStd.TreeNode)
Dim questo1 As XCAFDoc.ShapeTool = XCAFDoc.DocumentTool.ShapeTool(node1.Label)
'Dim labels2 As New TDF.LabelSequence
Dim Shp2 As TopoDS.Shape = XCAFDoc.ShapeTool.GetShape(node1.Label)
Dim tn2 As New TreeNode
If Not Shp2.IsNull Then
'Dim appo As String = tNode.Parent
Dim ts As syShape = Me.addSyShape(node1.Label, Shp2, Colors, Livello, r)

tn2 = tNode.Nodes.Add(ts.Id, ts.Name)
tn2.Tag = ts
tn2.ToolTipText = CType(tn2.Tag, syShape).Id

End If
If node1.HasFather Then
recurse(node1.Father.Label, tn2, Colors, r)

End If
End While

End If
Dim theFileName As String = IO.Path.GetDirectoryName(_tmpFile) & "\" & thisShape.Name & ".STP"
'Dim w1 As New STEPControl.Writer(r.Reader_.WS, True)
Dim w1 As New STEPControl.Writer()
w1.Transfer(shp, STEPControl.StepModelType.AsIs, True)
End Sub

thank you

here is the sub that write the STEPs
You have to be logged in to download the attached file
Latest news
  • Open CASCADE Technology 6.9.0 is available for download!
  • JT Assistant for Android
  • Open CASCADE JT Assistant Sources

  • © OPEN CASCADE 2000 - 2015  |  Search  |  Contacts   |  Site map