CATIADEV Posté(e) le 22 novembre 2006 Posté(e) le 22 novembre 2006 Bonjour à tous, ça fait longtemps que je ne suis pas venu ici pour poser une question.Entre temps j'ai perdu mon login, puis je n'arrivais plus à me connecté ... enfin bref me revoilou avec une question :casstet: Voià, je développe depuis un mois environ un outil en visual basic (VBA) qui me permet de passer une liste complète d'assemblage, piéces et plan vers un nouveau nom. exemple : TOTO.CAT* vers TITO.CAT* mais chaque type est traité indivuiduallement.Pour les Part et les Product tout fonctionne :D Alors venons en au faits. Voici le code de ma fonction fDraw qui traite mes CATDrawing. ************************************************************' Fonction qui traite les fichiers CATDrawing.' Toutes types de mofifications peuvent être apportés à cette fonction. (voir V5Automation.chm)Function fDraw(PathInterTemp As String, DrawFile As String, DrawPathOut As String, ParentDirectoryOldFile As String, myDictionaryFile As Collection) ' Set the CATIA popup file alerts to False ' It prevents to stop the macro at each alert during its execution CATIA.DisplayFileAlerts = False 'renomme les fichiers Drawing et les sauvegardes dans le répertoire temporaire OUT Language = "VBSCRIPT" Dim drawingDocuments1 As DrawingDocument Dim drawingSheets As drawingSheet Dim drawingSheet As drawingSheet Dim MyView As DrawingView Dim partDocuments2 As PartDocument Dim productdocuments4 As ProductDocument Dim strActiveDoc As String Set documents1 = CATIA.documents Dim strExtFile As String ' open the drawing file one by one ------------------------------------------------------------ Set drawingDocument1 = documents1.Open(ParentDirectoryOldFile + DrawFile) 'strActiveDoc = drawingDocuments1.FullName 'Call ListParentDraw(drawingDocuments1) Dim DrwDoc As Document Set DrwDoc = CATIA.ActiveDocument If InStr(DrwDoc.Name, ".CATDrawing") = 0 Then MsgBox "The Active Document must be a CATDrawing." 'Exit Sub End If Dim DrwSheets As drawingSheets Set DrwSheets = DrwDoc.Sheets Dim DrwSheet As drawingSheet Set DrwSheet = DrwSheets.Item(1) Dim DrwViews As DrawingViews Set DrwViews = DrwSheet.Views Dim CurView As DrawingView Dim ViewLinks As DrawingViewGenerativeLinks Dim fLink As AnyObject Dim dictFile As New FileDictionary Dim i As Integer For i = 3 To DrwViews.count Set CurView = DrwViews.Item(i) Set ViewLinks = CurView.GenerativeLinks Set fLink = ViewLinks.FirstLink() CurView.LockStatus = False 'affiche si c'est un part ou un product ----------------------------------------------------------- 'MsgBox TypeName(fLink) Dim strType As String 'recupération du type de fichier Part ou Product *********** strType = TypeName(fLink) 'retourne the short name of the document to serve to generate this active view. ----- 'MsgBox "The active view was generated from " + CurView.GenerativeBehavior.Document.Name + ".CAT" + strType, vbInformation ' definition de l'extension de fichier à trouver dans le dictionnaire et à ouvrir ----------------------- If CStr(TypeName(CurView.GenerativeLinks.FirstLink())) = "Product" Then strType = ".CATProduct" Else strType = ".CATPart" End If ' search in dictionnary class the file corresponding ------------------------------------------------------------- Dim strNewName As String strNewName = dictFile.FindNewFileName(myDictionaryFile, CurView.GenerativeBehavior.Document.Name & strType) Debug.Print (CurView.GenerativeBehavior.Document.Name & strType + " ----> " + strNewName) 'ouverture du fichier 3D correspondnat -------------------------------------------------------------------------- Dim str3DOpenDocument As String If strType = ".CATProduct" Then Set productdocuments4 = documents1.Open(PathInterTemp + strNewName) Else Set partDocuments2 = documents1.Open(PathInterTemp + strNewName) End If str3DOpenDocument = PathInterTemp + strNewName Dim iLink As String iLink = PathInterTemp + strNewName 'Debug.Print (iLink) Set drawingDocument1 = CATIA.ActiveDocument 'Set CurView = drawingDocuments1.Sheets.ActiveSheet.Views.ActiveView 'suppression des mauvais liens ------------------------------- 'ViewLinks.RemoveAllLinks ' replace part or product new link ---------------------------' Dim ViweLinks As DrawingViewGenerativeLinks' Set ViewLinks = CurView.GenerativeLinks CurView.GenerativeLinks.AddLink (strNewName) CurView.LockStatus = True Next drawingDocument1.SaveAs DrawPathOut & strNewName drawingDocument1.Close CATIA.DisplayFileAlerts = TrueEnd Function************************************************************ Le problème est que je n'arrive pas après avoir ouvers le bon fichier 3D, récupérer l'info que je dois passer au draw.Je n'arrive pas non plus à afficher en avant plant le draw (rappel, la fonction ouvre un draw puis cherche le doc. 3d qui a servi à faire ce draw puis l'ouvre puis revien sur le draw et met à jour les liens) Enfin, je n'arrive pas à faire un addView, faut-il faire impérativement un RemoveAllLinks avant? Quelqu'un peut-il m'aider? Merci à vous.Cordialement,CATIADEV (ex. CATDEV)[Edité le 22/11/2006 par CATIADEV][Edité le 22/11/2006 par CATIADEV] [Edité le 22/11/2006 par CATIADEV]
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant