PHILPHIL Posté(e) le 23 septembre 2016 Posté(e) le 23 septembre 2016 bonjour je ne sais pas si ca existe ou si c'est programmable facilement. j'ai plein de fichiers pour différentes affaires dans plein de sous répertoire. je cherche un programme qui me permetrait de lister les noms de fichiers *.dwg ou j'ai pu insérer un bloc dont je connais le nom. en cherchant dans le répertoire et les sous répertoire que j'ai choisi. un peu comme le programme de GILE textfinder merci a+ Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 23 septembre 2016 Posté(e) le 23 septembre 2016 Salut, Tu peux récupérer les chemins de tous les fichiers .dwg d'un dossier avec :System.IO.Directory.GetFiles(dossierSource, "*.dwg", SearchOption.AllDirectories);Ensuite, tu peux ouvrir ces fichier "en mémoire" avec ReadDwgFile() et voir si la table des blocs contient ton bloc. Un petit exemple vite fait : /// <summary> /// Obtient la listes des fichiers dwg contenant le bloc. /// </summary> /// <param name="sourceDir">Répertoire source</param> /// <param name="blockName">Nom du bloc</param> /// <returns></returns> public List<string> FindBlock(string sourceDir, string blockName) { var filenames = new List<string>(); foreach (var filename in Directory.GetFiles(sourceDir, "*.dwg", SearchOption.AllDirectories)) { try { using (var db = new Database(false, true)) { db.ReadDwgFile(filename, FileOpenMode.OpenForReadAndAllShare, false, null); using (var tr = db.TransactionManager.StartOpenCloseTransaction()) { var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead); if (bt.Has(blockName)) filenames.Add(filename); tr.Commit(); } } } catch(System.Exception ex) { var ed = AcAp.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage($"\nErreur avec le fichier '{filename}' : {ex.Message}"); } } return filenames; } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 23 septembre 2016 Auteur Posté(e) le 23 septembre 2016 Hello Gile Merci j'ai posté cette question ici pensant que ca ne devait pas etre un programme Lisp mais par contre j'y connais rien en programmation c'est quoi comme type de language ca ??? a+ Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Goldorak44 Posté(e) le 23 septembre 2016 Posté(e) le 23 septembre 2016 Salut,C'est du C# !;) PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
Patrick_35 Posté(e) le 24 septembre 2016 Posté(e) le 24 septembre 2016 j'ai posté cette question ici pensant que ca ne devait pas etre un programme LispSalut C'est tout à fait faisable en lisp avec ObjectDBX @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 24 septembre 2016 Posté(e) le 24 septembre 2016 C'est tout à fait faisable en lisp avec ObjectDBXTout à fait, c'est la procédure équivalente, et, pour une fois, le code C# sera plus concis que le code LISP... ;) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 24 septembre 2016 Auteur Posté(e) le 24 septembre 2016 hello Gile Patrick merci merci, pas de bataille de programmeurs svp c'était aussi pour ne pas passer par autocad pour chercher les blocs. bon week end Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 24 septembre 2016 Posté(e) le 24 septembre 2016 Salut, Oh là non, ce n'est pas une bataille. c'était aussi pour ne pas passer par autocad pour chercher les blocs.On ne peut pas lire un fichier dwg sans AutoCAD (ou un clone).Sans AutoCAD, le seul moyen serait de lire des fichiers .dxf (comme des fichiers texte) pour y chercher le nom du bloc. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 25 septembre 2016 Posté(e) le 25 septembre 2016 merci merci, pas de bataille de programmeurs svpSalut Je suis exactement du même avis que (gile).Le sens de ta question me faisais penser que cela n'était pas faisable en lisp, d'où ma réponse. @gilePour une fois que c'est plus concis qu'en lisp ;)Ce qui me dérange avec ce langage, c'est la portabilité ainsi que le temps à y consacrer (je ne suis plus célibataire) car avec tes tutos, cela donne quand même envie de s'y mettre.Si un jour je passe sur Revit (et je pense que cela sera plus tôt que je le pense, évolution du métier oblige) et que le besoin d'optimiser la conception se fait ressentir, je ne dis pas... :D @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Goldorak44 Posté(e) le 25 septembre 2016 Posté(e) le 25 septembre 2016 et que le besoin d'optimiser la conception se fait ressentir Ça ça va vite venir, si tu passe à Revit !!! :P ;) PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
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