CLOTHO Posté(e) le 1 juin 2015 Posté(e) le 1 juin 2015 Bonjour à tous, J'ai besoin d'attacher plusieurs Xref qui se trouvent dans un dossier parent et des sous-dossier.Je me demande s'il y a une routine qui peut le faire. Je vous remercie d'avance. Autopiste & Covadis V14 - Mensura V7 - Autocad Civil3D 2013
Steven Posté(e) le 1 juin 2015 Posté(e) le 1 juin 2015 Bonjour, Que souhaites-tu faire, exactement? Parce que comme ça, c'est un peu vague. Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
CLOTHO Posté(e) le 1 juin 2015 Auteur Posté(e) le 1 juin 2015 Bonjour, Que souhaites-tu faire, exactement? Parce que comme ça, c'est un peu vague. Bonjour Steven et merci pour ta réponse si rapide :) En fait, je travaille sur quelques kilomètres de routes avec des buses et bassins toutes en XREF qui doivent être attachées à mes vue en plans. Les XREFs dépassent 300 et les indices changent au fur et à mesure. Le but final est de pouvoir faire appel à toutes les XREFs qui ne sont pas forcément dans le même réperoire càd par exemple : - Pour les buses: D:\XREFS\OH- Pour les voiries: D:\XREFS\VL- Pour les TOPO : D:\XREFS\TOPO Je me demande aussi si c'est possibe de faire un test pour savoir si mon XREF passe pas le cadre qui délimite ma VP dans ce cas on l'attache sinon on l'attache pas. Je ne sais pas si c'est clair ou pas. Je remercie d'avance toute personne qui me file au moins une piste pour gagner du temps et minimiser les erreurs.Merci aussi à tous ceux qui lisent ce post jusqu'à la fin :) Autopiste & Covadis V14 - Mensura V7 - Autocad Civil3D 2013
zebulon_ Posté(e) le 1 juin 2015 Posté(e) le 1 juin 2015 Bonjour, existe-t-il une logique entre le nom du fichier de travail et les noms des fichiers BUSE, VL et TOPO ? J'imagine que dans ton cas vous travaillez par planche qui porte chacune son numéro ? Ce serait gérable si les fichiers de travail s'appelaient Chantier_EXE_A_1.dwg avec A qui serait l'indice et 1 le numéro de planche.De la même manière, les fichiers xrefs devraient suivre une logique similaire Chantier_XREFOH_B_1.dwg, Chantier_XREFVL_D_1.dwg, Chantier_XREFTOPO_B_1.dwg. A partir du fichier de travail, on trouve le nom du fichier avec dwgname, dont on peut extraire le numéro de planche. Après on peut regarder les xrefs qui sont attachées et qui correspondent à cette planche, puis on compare avec ce qu'on trouve dans les répertoires. Si, dans les répertoires, on trouve un indice plus élevé, on détache l'ancien et on rattache le nouveau, en ayant pris soins de se remettre en SCG. S'il n'y a pas de xref et qu'un fichier existe, on l'attache. Sinon, s'il n'y a pas une telle logique, on peut quand même supposer que l'indice apparait quelque part dans le nom des fichiers ? Le lisp pourrait consister à reprendre la liste des xrefs qui est présente dans le fichier de travail et à vérifier s'il existe une version plus récente. Il faudrait un peu nous en dire plus sur l'organisation des noms de fichiers pour qu'on puisse voir ce qu'il est possible de faire. Je me demande aussi si c'est possibe de faire un test pour savoir si mon XREF passe pas le cadre qui délimite ma VP dans ce cas on l'attache sinon on l'attache pas.Je ne crois pas que cela soit facile ! AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
CLOTHO Posté(e) le 2 juin 2015 Auteur Posté(e) le 2 juin 2015 Bonjour :) En fait mes XREFS n'ont pas une suite logique.Pour cela j'ai pensé à passer par le VBA excel pour receuillir les noms et les chemins de toutes les XREFs pour faire une boucle qui parcours les XREFs et les attaches une par une après les avoir organisé en ne gardant que le dernier indice. Ce n'est que l'idée... Autopiste & Covadis V14 - Mensura V7 - Autocad Civil3D 2013
CLOTHO Posté(e) le 2 juin 2015 Auteur Posté(e) le 2 juin 2015 Re-bonjour, J'ai commencé à tester la macro qui permet d'attacher une XREF que je mets ci-dessous: Sub AttachXRef() Dim PtInsert(0 To 2) As DoubleDim objXref As AcadExternalReferenceDim strChemin As StringDim AcadApp As AutoCAD.AcadApplication ' On demande le nom du fichier à ouvrir Dim Filename As Variant Filename = Application.GetOpenFilename("Dessins AutoCAD (*.dwg), *.dwg") If Filename = False Then Exit Sub End If Cells(1, 1).Value = Filename ' Connexion avec AutoCAD (on le lance si il n'est pas en cours d'exécution) On Error Resume Next Set AcadApp = GetObject(, "AutoCAD.Application") On Error GoTo 0 If AcadApp Is Nothing Then Set AcadApp = New AutoCAD.AcadApplication End If ' On ouvre le fichier DWG dans AutoCAD ou on l'active si il est déjà ouvert Dim Opened As Boolean Opened = False Dim Dwg As AcadDocument For Each Dwg In AcadApp.Documents If StrComp(Dwg.FullName, Cells(1, 1).Text, vbTextCompare) = 0 Then Dwg.Activate Opened = True End If Next If Not Opened Then AcadApp.Documents.Open (Cells(1, 1).Text) End If ' Point d'insertion de l'XréfPtInsert(0) = 0: PtInsert(1) = 0: PtInsert(2) = 0 ' Nom et chemin de l'XréfstrChemin = "d:\OH444.dwg" Thisdrawing.ActiveSpace = acModelSpace ' Attachement de l'Xréf au dessin en coursSet objXref = Thisdrawing.ModelSpace.AttachExternalReference _(strChemin, "XREF", PtInsert, 1, 1, 1, 0, False) ' Zoom toutThisdrawing.Application.ZoomAll ' Afficher la liste des nouveaux blocsFor Each objBloc In Thisdrawing.BlocksstrMsg = strMsg & objBloc.Name & vbCrLfNextMsgBox strMsg, , "Liste des blocs du dessin en cours" End Sub Maos ça plante avec la ligne suivante:Set objXref = Thisdrawing.ModelSpace.AttachExternalReference _(strChemin, "XREF", PtInsert, 1, 1, 1, 0, False) J'ai l'impression que la commande Thisdrawing est non reconnue sachant que je travaille avec Autocad 2013.Est-ce que quelqu'un a le remède pour ça?Il y a certaines pistes sur le net que je ne comprends pas (problème VBA, VB.net). Est-ce que quelqu'un peut m'aider sur ce sujet? :( Merci d'avance.A+ Autopiste & Covadis V14 - Mensura V7 - Autocad Civil3D 2013
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