| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
|
Autor
|
Thema: Zeichnungsansicht vom Catproduct? (2895 mal gelesen)
|
ser4 Mitglied
 Beiträge: 5 Registriert: 30.11.2011 V5 R19 SP1 T9300(2x2,6GHz), 2GB RAM NVidia Quadro FX360M(512M GRAM)
|
erstellt am: 07. Dez. 2011 09:26 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, ich stehe ein wenig auf dem Schlauch: es war ein Macro angedacht, dass von allen 3d-Geomnetrien in einem Verzeichnis ein Zeichnungansicht estellt. Bei den CATParts fuktioniert das auch, aber sobald das Macro ein Catproduct findet bringt es eine Fehlermeldung s. Bild (Verfahren Document ist fehlgeschlagen). Ich habe bereits versucht Ablauf zu kürzen und fand heraus, dass Catproduct-Aufruf funktioniert, wo es hängt, ist vermutlich Zuweisung von GenerativeBehavior. Code:
Sub CATMain()' Set the CATIA popup file alerts to False ' It prevents to stop the macro at each alert during its execution CATIA.DisplayFileAlerts = False ' Set the file system object containig the folder Dim oFileSys As FileSystem Set oFileSys = CATIA.FileSystem 'Define the path's folder where we are looking for Parts Dim sFolderPath As String sFolderPath = InputBox( "Enter a folder path:", "Create Drawings", _ sDocPath & "input Folder Path") If (Not oFileSys.FolderExists(sFolderPath)) Then Err.Raise 9999,,sFolderPath & ": This Folder does not exist" End If 'Define the path's folder where we are saving drawings Dim sFolderPathOut As String sFolderPathOut = InputBox( "Enter a output folder path:", "Save Drawings", _ sDocPath & "output Folder Path") If (Not oFileSys.FolderExists(sFolderPathOut)) Then Err.Raise 9999,,sFolderPath & ": This Folder does not exist" End If ' Set the folder object Dim oFolder As Folder Set oFolder = oFileSys.GetFolder(sFolderPath) ' Loop on the files collection of the folder ' For Each File In Folder.Files Dim iI For iI = 1 To oFolder.Files.Count Dim oFile As Object Set oFile = oFolder.Files.Item(iI) ' Retrieve in the files collection only the Parts documents from its extension If InStr(oFile.Name, ".CATP" ) <> 0 Then 'soll theoretisch Catparts wie auch Catproducts aufrufen 'und aufruf funktioniert auch, spätere Ansichterstellung nicht ' Set and open a Part document Dim oDoc As Document Set oDoc = CATIA.Documents.Open(oFile.Path) 'Set oDoc = CATIA.ActiveDocument Dim product1 As Product Set product1 = oDoc.Product 'User parameter filling & edit here End If ' Create a drawing document: it becomes the active document. Dim oDrawing As DrawingDocument Set oDrawing = CATIA.Documents.Open("C:\Arbeitsverzeichnis\test_2d\Template_drw.CATDrawing") ' Retrieve the active sheet Dim oSheet As DrawingSheet Set oSheet = oDrawing.Sheets.ActiveSheet ' Create a view called "Front View" in this sheet Dim oFrontView As DrawingView Set oFrontView = oSheet.Views.Add("Front View") ' Retrieve it generative behavior Dim oFrontViewGB As DrawingViewGenerativeBehavior Set oFrontViewGB = oFrontView.GenerativeBehavior ' Declare the part to draw in this front view '>>>>>>>>>>>>>>>>>>>>hier kommt zu Fehlermeldung<<<<<<<<<<<<<<<<<<<< oFrontViewGB.Document = oDoc ' Define this view as a front view, with the XY plane (in oFile) as projection plane oFrontViewGB.DefineFrontView 1, 0, 0, 0, 1, 0 ' Position the View in the Sheet oFrontView.x = 300 oFrontView.y = 150 ' Update the view oFrontViewGB.Update 'save as 'Dim generativDoc As Document Dim oName As String oName = oFrontView.GenerativeBehavior.Document.ReferenceProduct.Parent.Name oName1 = Left(oName, InStrRev(oName, ".") - 1) msgbox (sFolderPathOut & "\" & oName1 & ".CATDrawing") 'CATIA.ActiveDocument.SaveAs (sFolderPathOut & "\" & oName1 & "Zusatz1" & ".CATDrawing") 'CATIA.ActiveDocument.Close 'CATIA.ActiveDocument.Close Next End Sub
Wie unterscheidet sich in diesem Fall Part vom Product? Für jede Hilfestellung bin ich euch sehr dankbar! Grüße ------------------ ...Mäuse weinten, stachen sich blutig, frassen der Kaktus aber weiter... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Dez. 2011 12:07 <-- editieren / zitieren --> Unities abgeben:          Nur für ser4
|
ser4 Mitglied
 Beiträge: 5 Registriert: 30.11.2011 V5 R19 SP1 T9300(2x2,6GHz), 2GB RAM NVidia Quadro FX360M(512M GRAM)
|
erstellt am: 07. Dez. 2011 12:36 <-- editieren / zitieren --> Unities abgeben:         
|
Bemik Mitglied
 Beiträge: 2 Registriert: 12.12.2013
|
erstellt am: 17. Dez. 2013 22:10 <-- editieren / zitieren --> Unities abgeben:          Nur für ser4
|
K.Siebert Mitglied Tech Zeichner
 
 Beiträge: 415 Registriert: 19.05.2007 SolidWorks 2023
|
erstellt am: 17. Dez. 2013 23:39 <-- editieren / zitieren --> Unities abgeben:          Nur für ser4
Hallo, Die Zeile: Code: If InStr(oFile.Name, ".CATP" ) <> 0 Then 'soll theoretisch Catparts wie auch
in Code: If InStr(oFile.Name, ".CATPart" ) <> 0 Then 'soll theoretisch Catparts wie auch
ändern
------------------
Sei Schlau bleib Dumm !!?!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bemik Mitglied
 Beiträge: 2 Registriert: 12.12.2013
|
erstellt am: 18. Dez. 2013 14:42 <-- editieren / zitieren --> Unities abgeben:          Nur für ser4
Hallo, wenn ich ".CATPart" einsetze versucht es trotzdem die Producte abzuleiten und gibt ind er Zeile:
' Declare the part to draw in this front view oFrontViewGB.Document = product1 ein Fehler aus. Gruß Bemik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 18. Dez. 2013 14:56 <-- editieren / zitieren --> Unities abgeben:          Nur für ser4
Servus Vermutlich muss das "End if" weiter nach hinten geschoben werden (vor "next") Beim Erzeugen einer Ansicht aus einem CATPart muss wohl das Dokument übergeben werden (oFrontViewGB.Document = oDoc). Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
patrickbucher1 Mitglied Konstrukteur
 Beiträge: 3 Registriert: 28.04.2014 Catia V5
|
erstellt am: 29. Apr. 2014 09:47 <-- editieren / zitieren --> Unities abgeben:          Nur für ser4
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Apr. 2014 09:50 <-- editieren / zitieren --> Unities abgeben:          Nur für ser4
Servus Bitte keine Doppelposts. Diesen Code als *.CATPart speichern -> in Catia -> Tools -> Makro -> Makros -> entsprechende Datei selektieren und ausführen. Gruß Bernd PS: ggf musst du das Makro noch an deine Anforderungen anpassen (und zunächst auch den Code verstehen können) ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 29. Apr. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |