Hallo @TAR_Loki,
habe gestern noch ein wenig getüftelt, wie man das machen könnte. Mit einfachen Schnitten (eine Schnittlinie) bekomme ich das auch irgendwie hin.
Meinen Ansatz möchte ich hier aber posten. Eventuell kann das jemand weiterentwicklen oder es reicht vielleicht schon in dieser absoluten Roh-Fassung ohne jegliche Fehlerbehandlung.
Benutzung also auf eigene Gefahr! 😉
So würde das im Moment bei der Benutzung aussehen:
Hier der Code dazu:
Sub DuplicateSectionView()
Dim oTransGeom As TransientGeometry
Set oTransGeom = ThisApplication.TransientGeometry
Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument
Dim oriView As SectionDrawingView
Set oriView = oDoc.SelectSet.Item(1)
'Skizze duplizieren
Dim DestSketch As DrawingSketch
Set DestSketch = oriView.ParentView.Sketches.Add
'Alle nicht projizierten Linien werden in neuer Skizze erstellt
Dim tmpLine As SketchLine
For Each tmpLine In oriView.SectionLineSketch.SketchLines
If tmpLine.ReferencedEntity Is Nothing Then
Dim newLine As SketchLine
Call DestSketch.Edit
Call DestSketch.SketchLines.AddByTwoPoints(tmpLine.Geometry.StartPoint, tmpLine.Geometry.EndPoint)
Call DestSketch.ExitEdit
End If
Next
'neuen Schnitt erstellen
Dim destView As SectionDrawingView
Set destView = oDoc.ActiveSheet.DrawingViews.AddSectionView(oriView.ParentView, DestSketch, oriView.Position, oriView.ViewStyle)
destView.DisplayDefinitionInBase = False
destView.Name = oriView.Name
Call destView.ReverseDirection
End Sub
Dennis Ossadnik
Senior Technical Support Specialist