Hallo Forum,
ein Makro soll aus einem Katalog zuerst einen Zeichnungsrahmen und dann einen Schriftkopf in eine neue Zeichnung einfügen.
Dabei werden die Komponenten nacheinander eingefügt und dann exposed.
Manchmal klappt es, meistens jedoch nicht, da erhalte ich bei der Zeile
Set KatalogView = KatalogViews.Item("Schriftkopf_DE")
die Fehlermeldung, daß die Methode "Item" failed. Desweiteren habe ich herausgefunden, daß beim ersten Aufruf von ExposeCompRefInSheet
die Variable KatalogDocument ihren Inhalt verliert und daher KatalogViews keine Items mehr hat. Dies kann ich nicht verhindern, und auch wenn ich eine zweite Variable anlege, verliert dies auch den Inhalt.
Kennt jemand eine Lösung des Problems? Wie kann ich verhindern, daß beim Exposen die Variable KatalogDocument verändert wird?
Komisch ist, daß es manchmal schon funktioniert hat.
Vielen Dank.
Grüße Klaus
Dim DetailSheet As DrawingSheet
Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = documents1.NewFrom("\Startdrawing.CATDrawing")
Dim viewBackground As DrawingView
Set viewBackground = drawingDocument1.Sheets.Item(1).Views.Item(2)
Set DetailSheet = drawingDocument1.Sheets.AddDetail("Sheet.2 (Detail)")
drawingDocument1.Sheets.Item(1).Activate
Set DrwDocument = CATIA.ActiveDocument
Set DrwSheets = DrwDocument.Sheets
Set DrwSheet = DrwSheets.ActiveSheet
Set drwView = DrwSheet.Views.Item(2)
Set KatalogDocument = CATIA.Documents.Read("Z:\SCHRIFTKOPF.CATDrawing") 'Pfad der KatalogDrawing
Set KatalogSheets = KatalogDocument.Sheets
Set KatalogSheet = KatalogSheets.Item(1)
Set KatalogViews = KatalogSheet.Views
If Form_Zeichnung.OptionA4 = True Then
Set KatalogView = KatalogViews.Item("VORDR_DIN_A4") 'Name der 2D-Komponente
Set KatalogComponents = drwView.Components
Set KatalogComponent = KatalogComponents.Add(KatalogView, 0, 0)
KatalogComponent.ExposeCompRefInSheet DetailSheet
drawingDocument1.Sheets.Item(1).PaperSize = catPaperA4
drawingDocument1.Sheets.Item(2).PaperSize = catPaperA4
Breite = drawingDocument1.Sheets.Item(1).GetPaperWidth
End If
Set KatalogView = KatalogViews.Item("Schriftkopf_DE") 'Name der 2D-Komponente
Set KatalogComponents = drwView.Components
Set KatalogComponent = KatalogComponents.Add(KatalogView, Breite - 10, 10)
KatalogComponent.ExposeCompRefInSheet DetailSheet
Breite = drawingDocument1.Sheets.Item(1).GetPaperWidth
drawingDocument1.Sheets.Item(1).Views.Item(1).Activate
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP