Hallo zusammen,
mit dem nachfolgenden Code erstellen wir ein eigenes Blatt in der Zeichnung, das nur Erstansichten von Einzelteilen und Schweißvorbereitungen enthält.
Später im Code werden diese dann alle auf den gleichen Maßstab gebracht und in der Option "nur Modellgeometrie" als DXF exportiert.
Dieses DXF können die Kollegen in der Fertigung dann in das Programm der Brennmaschine einlesen und ggf. vorbereiten (z.B. Bohrungen entfernen etc.)
Das funktioniert soweit gut, aber:
Wir haben immer auf der Zeichnung eine Ansicht (via projizierte Ansicht erstellt) die Isometrisch zum Bauteil bzw. der Baugruppe steht und die dann teilweise das Programm überfordert bzw. händische Eingriffe unsererseits erfordert.
Daher die Frage ob es die Möglichkeit gibt irgendwie zu erkennen ob eine Ansicht eine ISO-Ansicht (einer anderen Ansicht) ist?
Code:
'Alle Blätter suchen
Dim oSheets As Sheets = oDrawDoc.Sheets
Dim oSheet As Sheet
Dim odrawview As DrawingView
Dim Blattanzahl As Integer = oDrawdoc.Sheets.Count
Dim osheetname As String
Dim hassheet As Integer
hassheet = 0
Dim n As Integer
n = 1
Dim oWeldState As WeldmentStateEnum
Dim oComponent As Object
Dim odrawcount As Integer
odrawcount = 0
For Each oSheet In oSheets
osheetname = oSheet.Name
osheetname = Replace(osheetname, ":", "-")
If osheetname.Contains("Brennzuschnitt") = True
hassheet = hassheet + 1
End If
If osheetname.Contains("Brennschablone_DXF")
oSheet.Delete
End If
Next
If Not hassheet = 0
For n = 1 To hassheet
Try
oDrawdoc.Sheets.Add(9993, 10242, "Brennschablone_DXF" & n)
Catch
End Try
Next
n = 1
For Each oSheet In oSheets
osheetname = oSheet.Name
osheetname = Replace(osheetname, ":", "-")
If osheetname.Contains("Brennschablone_DXF") = True
oSheet.ExcludeFromPrinting = True
oSheet.ExcludeFromCount = True
End If
Next
For Each oSheet In oSheets
If oSheet.Name.Contains("Brennzuschnitt")
oSheet.Activate
For Each odrawview In oSheet.DrawingViews
If odrawview.ParentView Is Nothing
If odrawview.ReferencedDocumentDescriptor.ReferencedDocumentType = kPartDocumentObject
odrawview.CopyTo(oSheets.Item("Brennschablone_DXF" & n))
Else
Try
odrawview.GetWeldmentState(oWeldState, oComponent)
If oWeldState = kPreparationsweldmentstate
If oComponent.definitiondocumenttype = kPartDocumentObject
odrawview.CopyTo(oSheets.Item("Brennschablone_DXF" & n))
End If
End If
Catch
End Try
End If
End If
Next
n = n + 1
End If
Next
n = 1
For Each oSheet In oSheets
If oSheet.Name.Contains("Brennschablone_DXF")
If oSheet.DrawingViews.Count = 0
MessageBox.Show("Kein Brennzuschnitt gefunden! Blatt " & oSheet.Name & " wird gelöscht!")
oSheet.Delete
End If
n = n + 1
End If
Next
End If
------------------
Für jede Fehlermeldung gibt es eine Lösung
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP