electrogilles Posté(e) le 8 février 2006 Posté(e) le 8 février 2006 bonsoir a tousje voudrai savoir comment (si c'est possible) recuperer des textes dans un plan exemple: dans une shemas electrique recuperer tout les nom des cables merci d'avance :)
rebcao Posté(e) le 8 février 2006 Posté(e) le 8 février 2006 Bonsoir Electrogilles, Bienvenu sur CADxp ! ;) Si tu as utilisé des blocs avec attributs tu peux déjà faire une extraction... Sinon ! ça va être à l'aide de Prog LISP ou VBA. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
electrogilles Posté(e) le 8 février 2006 Auteur Posté(e) le 8 février 2006 ce ne sont pas des bloc mais des textes comment faire la prog LIST ou VBA (si il existe un petit logiciel je suis preneur)car je ne suis pas un specialiste autocad et j'ai beaucoup de texte a recuperer :)
rebcao Posté(e) le 8 février 2006 Posté(e) le 8 février 2006 Personnellement je n' ai pas développer développer ce genre de Programme... ça pourrait être faisable ! Mais attendons que nos virtuoses du LISP et du VBA passe par là ! T' inquiètes on va trouver ! Quelle exploitation veux-tu faire ensuite ? un tableau EXCEL ? Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
electrogilles Posté(e) le 8 février 2006 Auteur Posté(e) le 8 février 2006 oui un tableau EXCEL ce serait le TOP du Top
(gile) Posté(e) le 8 février 2006 Posté(e) le 8 février 2006 Salut, Je te propose un petit LISP très vite fait, il y a sûrement moyen de faire mieux. Pour l'utiliser (j'explique comme si tu étais un débutant complet, ne t'en offusque pas si ce n'est pas le cas), Tu copie le code ci dessous dans le bloc-note, tu l'enregistre sous Txt2xl.LSP (par exemple), dans AutoCAD, dans le menu Outils -> Charger une application tu charge ton fichier .LSP et tu tapes txt2xl à la ligne de commande. (defun c:txt2xl (/ ss file ent cnt str) (setq ss (ssget "_X" '((0 . "TEXT,MTEXT")))) (if ss (progn (setq file (open (getfiled "Créez ou sélectionnez un fichier" "" "xls" 1) "w" ) ) (setq cnt 0 str "" ) (while (setq ent (ssname ss cnt)) (setq str (strcat (cdr (assoc 1 (entget ent))) "\n" str)) (setq cnt (1+ cnt)) ) (princ str file) (close file) ) ) (princ) ) PS : Telle quelle, la routine sélectionne tous les objets "Texte" et "Texte multiligne" du dessin.Si tu veux ne sélectionner que les textes qui sont sur des calques non gelés remplace : (setq ss (ssget "_X" '((0 . "TEXT,MTEXT")))) par (setq ss (ssget "_A" '((0 . "TEXT,MTEXT")))) PPS : Comme le dit Rebcao, les attributs de bloc offrent plus de possibilités que les textes et une gestion plus aisée sans programmation. [Edité le 8/2/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
electrogilles Posté(e) le 9 février 2006 Auteur Posté(e) le 9 février 2006 je vien de le tester et ca ne marche pas il me met des erreurs on dirait qu'il bloque de le debutun colegue me dit que la commande de la 2eme ligne es bizard '((0. "TEXT,MTEXT"))))
(gile) Posté(e) le 9 février 2006 Posté(e) le 9 février 2006 Curieux en effet, j'ai testé hier soir çà marchait. Là je ne peux pas re-essayer, je n'ai qu'une LT sous la main. Le code de la deuxième ligne est un filtre de sélection pour sélectionner les textes et textes multilignes. PS : Il faut créer un nouveau fichier Excel dans la boite de dialogue qui devrait s'ouvrir au lancement de la commande dans AutoCAD. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 9 février 2006 Posté(e) le 9 février 2006 Vraiment, je ne comprends pas où est le problème, j'ai refais des tests, çà fonctionne. Si tu pouvais en dire plus sur les messages d'erreur. Tu peux essayer aussi le code suivant, c'est le même auquel j'ai rajouté des contrôles pour essayer de voir à quel moment çà plante. Merci de me tenir au courant. (defun c:txt2xl (/ ss file ent cnt str) (setq ss (ssget "_X" '((0 . "TEXT,MTEXT")))) (if ss (if (setq file (open (getfiled "Créez ou sélectionnez un fichier" "" "xls" 1) "w" ) ) (progn (setq cnt 0 str "" ) (while (setq ent (ssname ss cnt)) (setq str (strcat (cdr (assoc 1 (entget ent))) "\n" str)) (setq cnt (1+ cnt)) ) (princ str file) (close file) ) (alert "Le fichier na pas été créé") ) (alert "Le dessin ne contient ni texte ni textmult.") ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rebcao Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 Merci Gilles, je me suis permis une petite adaptation... Voici le source du LISP... On récupère les paramètres un peu comme l'extraction des attributs ! Ce qui permettra de réimporter les TEXTES... on appelle celà de la Rétro-annotation ( Tiens ! c'était mon exercice de vacances N° 3 qui n'a jamais été enfanté !!!) Christian [Edité le 10/2/2006 par rebcao] Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
(gile) Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 Salut Christian, Bien vu le coup de récupérer aussi le point d'insertion et les propriétés, encore une jolie petite construction collective :) Sinon tu n'as pas eu de problème avec le code que j'avais fait, çà marche quoi ? rassure moi! Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rebcao Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 :mad: Si si ! il m'a formaté le disque dur !!!!!!!!! Meuhhhhh NON !!!!!!!!!!!!!!! j ' plaisante ! ;) ;) ;) Aucun problème ! Encore merci pour ce canevas de début ! Comme j'étais chez un client qui avait une complète j'ai profité de faire un peu de LISP ! Ton programme avait marché du premier coup ! A voir maintenant ce que l'on pourrait encore ajouter ! Tiens à tu remarqué la structure du source ? J'aime bien les indentations... et finir par le petit message qui va bien ! ;) Christian [Edité le 10/2/2006 par rebcao] Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
(gile) Posté(e) le 10 février 2006 Posté(e) le 10 février 2006 J'ai fait une petite synthèse en ajoutant des options : - possibilité de sélectionner certains textes à l'écran ou les sélectionner tous en faisant "Entrée" ou "Espace" ou "Retour chariot" ou clic droit.- possibilité de choisir entre un fichier .xls ou .txt (defun c:txt2file (/ ss typ file ent cnt separ str X Y CALQ HAUT STYL) (Prompt "\n\nSélectionner les Textes à extraires ou ..." ) (if (not (setq ss (ssget '((0 . "TEXT,MTEXT"))))) (setq ss (ssget "_X" '((0 . "TEXT,MTEXT")))) ) ;if not (if ss (progn (initget "Txt Xls") (setq typ (getkword "\nSpécifiez le type de fichier [Txt/Xls]: ")) (if (setq file (open (getfiled "Créez ou sélectionnez un fichier" "" typ 1) "w" ) ) (progn (setq cnt 0 str "" SEPAR (if (= typ "Txt") "," "\t" );if );setq (while (setq ent (ssname ss cnt)) (setq str (cdr (assoc 1 (entget ent))) X (rtos (nth 1 (assoc 10 (entget ent))) 2 8) Y (rtos (nth 2 (assoc 10 (entget ent))) 2 8) CALQ (cdr (assoc 8 (entget ent))) HAUT (rtos (cdr (assoc 40 (entget ent))) 2 4) STYL (cdr (assoc 7 (entget ent))) cnt (1+ cnt) ) ;setq (write-line (strcat str separ X separ Y separ CALQ separ HAUT separ STYL) file ) ) ;while (close file) ) ; progn (alert "Le fichier na pas été créé") ) ) ; if FILE (alert "Le dessin ne contient ni texte ni textmult.") ) ; if SS (princ) ) ;defun ;;; ******************************************************************** (prompt "\nTaper TXT2FILE pour exporter les TEXTES dans un fichier .TXT ou .XLS" ) (princ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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