Autor
|
Thema: save 2D like 3D (2039 mal gelesen)
|
cmb Mitglied Systembetreuer
Beiträge: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
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.Path Name = 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 Document Set oDocument = CATIA.ActiveDocument If TypeName(oDocument) = "PartDocument" Then CATIA.ActiveDocument.Save 'CATIA.ActiveDocument.Close End If If TypeName(oDocument) = "ProductDocument" Then CATIA.ActiveDocument.Save 'CATIA.ActiveDocument.Close End If If TypeName(oDocument) = "DrawingDocument" Then 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 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 = False Datei = 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: 11780 Registriert: 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: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
erstellt am: 31. Jan. 2011 11:46 <-- editieren / zitieren --> Unities abgeben:
|
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
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 = False Datei = 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.ActivateSet drawingViews1 = drawingSheet1.Views Set 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: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
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 DrawingViewSub CATMain() Set oDocument = CATIA.ActiveDocument If 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.Sheets Set 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 parameters Set 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: 11780 Registriert: 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: 500 Registriert: 12.07.2002 CATIA V5-6R2016 64bit Smarteam R22.6 Moldflow Adviser 2014 Lenovo Think Pad P90
|
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 |