|  |  | 
|  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | 
|  |  | 
|  | KISTERS 3DViewStation: Unterstützung für 3D CAD Kollaboration mit Lieferanten, eine Pressemitteilung 
 | 
| Autor | Thema:  save 2D like 3D (2094 mal gelesen) | 
 | cmb Mitglied
 Systembetreuer
 
    
 
      Beiträge: 506Registriert: 12.07.2002
 |    erstellt am: 31. Jan. 2011 11:40  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo, ich habe mir mit Hilfe des Forums ein Script angepasst, welches bei einer DateiNeuAus Funktion die Zeichnung unter dem Gleichen Namen wie das Mutterelement speichert.Ich lese mit diesem Strings mein Part/Product aus und extrahiere die benötigten Daten :
 Dateipfad = drawingView1.GenerativeBehavior.Document.ReferenceProduct.Parent.PathName = drawingView1.GenerativeBehavior.Document.ReferenceProduct.Parent.Name
 Bei ca 2 von 10 mal in denen das Macro läuft erhalte ich eine Fehlermeldung : <Die Methode 'Document' für das Objekt 'DrawingViewGenerativeBehavior' ist fehlgeschlagen> Kann es sein, das Dassault in der Struktur da etwas verändert hat? Gruß Norbert Code:Sub catmain()
 Dim oDocument As DocumentSet oDocument = CATIA.ActiveDocument
 If TypeName(oDocument) = "PartDocument" ThenCATIA.ActiveDocument.Save
 'CATIA.ActiveDocument.Close
 End If
 If TypeName(oDocument) = "ProductDocument" ThenCATIA.ActiveDocument.Save
 'CATIA.ActiveDocument.Close
 End If
 If TypeName(oDocument) = "DrawingDocument" Then Dim drawingDocument1 As DocumentSet drawingDocument1 = CATIA.ActiveDocument
 Dim drawingSheets1 As DrawingSheets
 Set drawingSheets1 = drawingDocument1.Sheets
 Dim drawingSheet1 As DrawingSheet
 Set drawingSheet1 = drawingSheets1.ActiveSheet
 Dim drawingViews1 As DrawingViews
 Set drawingViews1 = drawingSheet1.Views
 Dim drawingView1 As DrawingView
 Set drawingView1 = drawingViews1.ActiveView
 drawingView1.Activate
 Dim parameters1 As parameters
 Set parameters1 = drawingDocument1.parameters
 Dim strParam1 As StrParam
 Set strParam1 = parameters1.Item("Drawing\Zeichnungsnummer")
 '#########  Dateipad Dateipfad = drawingView1.GenerativeBehavior.Document.ReferenceProduct.Parent.Path
 'FullName =  drawingView1.GenerativeBehavior.document.ReferenceProduct.Parent.Fullname
 Name = drawingView1.GenerativeBehavior.Document.ReferenceProduct.Parent.Name
 '
 LoeschEndung = Left(Name, InStrRev(Name, ".") - 1)
 'LoeschEndung = Left( Name, Len( Name) -7 ) 'Right
 CATIA.DisplayFileAlerts = FalseDatei = Dateipfad & "\" & LoeschEndung & ".CATDrawing"
 CATIA.ActiveDocument.SaveAs (Datei)
 'CATIA.ActiveDocument.Close
 strParam1.Value = LoeschEndung End If
 End Sub
 
 ------------------V5R20
 Catia + Smarteam
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 31. Jan. 2011 11:44  <-- editieren / zitieren -->    Unities abgeben:           Nur für cmb   | 
                        | cmb Mitglied
 Systembetreuer
 
    
 
      Beiträge: 506Registriert: 12.07.2002
 |    erstellt am: 31. Jan. 2011 11:46  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | K.Siebert Mitglied
 Tech Zeichner
 
   
 
      Beiträge: 415Registriert: 19.05.2007
 SolidWorks 2023 |    erstellt am: 31. Jan. 2011 14:23  <-- editieren / zitieren -->    Unities abgeben:           Nur für cmb   
  Was sagt den der Speicherpfad? Code:'__________________________________ Endung Loschen____________________________
 LoeschEndung = Left(Name, InStrRev(Name, ".CAT") - 1)
 'LoeschEndung = Left(Name, InStrRev(Name, ".") - 1)
 'LoeschEndung = Left( Name, Len( Name) -7 ) 'Right
 '__________________________________________________________________________________________
 '__________________________Test________________________________________________________________
 'Dim Box, Speicher As Long
 MsgBox "Dateipfad:" & Chr (13) & Chr (10)  & Dateipfad  &  "\" & LoeschEndung & ".CATDrawing"  ,64, "GESPEICHERT"
 '_________________________________________________________________________________________________________________
 CATIA.DisplayFileAlerts = FalseDatei = Dateipfad  &  "\" & LoeschEndung & ".CATDrawing"
 CATIA.ActiveDocument.SaveAS Datei
 CATIA.ActiveDocument.Close
 
 Der Code um Ansichten Aktiv zu schalten, hier sollte die ERSTE Ansicht eine Ableitung vom 3D sein.
 Code:'__________________Ansicht bestimmen_________________________________
 Dim drawingDocument1 As Document
 Set drawingDocument1 = CATIA.ActiveDocument
 Dim drawingSheets1 As DrawingSheets
 Set drawingSheets1 = drawingDocument1.Sheets
 Dim drawingSheet1 As DrawingSheet
 Set drawingSheet1 = drawingSheets1.ActiveSheet
 Dim drawingViews1 As DrawingViews
 Set drawingViews1 = drawingSheet1.Views
 Dim drawingView1 As DrawingView
 Set drawingView1 = drawingViews1.ActiveView
 drawingView1.Activate
 Set drawingViews1 = drawingSheet1.ViewsSet drawingView1 = drawingViews1.Item(1)'("Vorderansicht")Item(1)
 drawingView1.Activate
 
 Ansonsten wie Bernd schon gefragt hatte wie sind die Ableitungen erstellt worden (Szenen) ?Da gab es eine Ähnliche Diskussion vor kurzen über Szenen. Einfach mal suchen
 ------------------
  Sei Schlau bleib Dumm !!?!!   Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | cmb Mitglied
 Systembetreuer
 
    
 
      Beiträge: 506Registriert: 12.07.2002
 |    erstellt am: 01. Feb. 2011 17:26  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Forum, Vielen Dank für die Tipps.Habe mein Script dahingehend geändert, dass wenn er eine View mit dem String "Vor" findet er diese aktiv macht.
 Wenn es keine solche View gibt, darf man eine auswählen.
 Scheint zu funktionieren.
 Gruß Norbert 
 Code:Dim oSel
 Dim oDocument As Document
 Dim drawingSheets1 As DrawingSheets
 Dim drawingSheet1 As DrawingSheet
 Dim drawingViews1 As DrawingViews
 Dim drawingView1 As DrawingView
 Sub CATMain() Set oDocument = CATIA.ActiveDocumentIf TypeName(oDocument) = "PartDocument" Then
 CATIA.ActiveDocument.Save
 End If
 If TypeName(oDocument) = "ProductDocument" Then
 CATIA.ActiveDocument.Save
 End If
 If TypeName(oDocument) = "DrawingDocument" Then
     Set drawingSheets1 = oDocument.SheetsSet drawingSheet1 = drawingSheets1.ActiveSheet
 Set drawingViews1 = drawingSheet1.Views
 Set drawingView1 = drawingViews1.ActiveView
 
 If drawingView1.Name Like "Vor*" Then
 drawingView1.Activate
 Call SaveDat
 Else
 Set oSel = CATIA.ActiveDocument.Selection
 Dim InputObjectType(0)
 InputObjectType(0) = "AnyObject"
 
 Status = oSel.SelectElement2(InputObjectType, "Wählen Sie eine View, generiert aus 3D aus", False)
 If (Status <> "Normal") Then
 MsgBox "Abbruch"
 Exit Sub
 Else
 
 Set selView = oSel.Item(1).Value
 Dim selViewName As String
 selViewName = selView.Name
 
 Set drawingView1 = drawingViews1.Item(selViewName)
 drawingView1.Activate
 Call SaveDat
 
 End If
 oSel.Clear
 End If
 End If
 End Sub
 Private Sub SaveDat()     Dim parameters1 As parametersSet parameters1 = oDocument.parameters
 Dim StrParam1 As StrParam
 
 Set StrParam1 = parameters1.Item("Drawing\Zeichnungsnummer")
 '__________________________Dateipad LESEN___________________________________________
 Dateipfad = drawingView1.GenerativeBehavior.Document.ReferenceProduct.Parent.Path
 'FullName =  drawingView1.GenerativeBehavior.document.ReferenceProduct.Parent.Fullname
 Name = drawingView1.GenerativeBehavior.Document.ReferenceProduct.Parent.Name
 '__________________________________Datei endung Part Loeschen____________________________
 LoeschEndung = Left(Name, InStrRev(Name, ".") - 1)
 'LoeschEndung = Left( Name, Len( Name) -7 ) 'Right
 '__________________________________________________________________________________________
 
 CATIA.DisplayFileAlerts = False
 Datei = Dateipfad & "\" & LoeschEndung & ".CATDrawing"
 CATIA.ActiveDocument.SaveAs (Datei)
 'CATIA.ActiveDocument.Close
 StrParam1.Value = LoeschEndung
 End Sub
 
 ------------------V5R20
 Catia + Smarteam
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 01. Feb. 2011 22:37  <-- editieren / zitieren -->    Unities abgeben:           Nur für cmb   
  Servus Kleiner Anmerkung: Warum verwendest du LoeschEndung = Left(Name, InStrRev(Name, ".") - 1) ? Ist in drawingView1.GenerativeBehavior.Document.ReferenceProduct.Parent.Name  die Dateiendung enthalten? Was passiert wenn m Dateinamen ein "." vorkommt (nicht nur bei der Dateiendung)? GrußBernd
 
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | cmb Mitglied
 Systembetreuer
 
    
 
      Beiträge: 506Registriert: 12.07.2002
 |    erstellt am: 02. Feb. 2011 13:11  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Bernd , du hast recht ich kann mir das extraieren der Dateiendung sparen. Danke für den Tip.
 G Norbert ------------------
 V5R20
 Catia + Smarteam
 [Diese Nachricht wurde von cmb am 02. Feb. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |