Magdi95 Posté(e) le 14 juin 2017 Posté(e) le 14 juin 2017 Bonjour à tous,N'ayant pas trouvé de sujet similaire je vous explique mon sujet:Je dois réaliser un fichier Excel devant référencer tous les câbles de mon projet et dans lequel je renseigne de multiples informations (tenant, aboutissant, longueur...) dont le parcours du câble.Pour cela, tous les tronçons du parcours sont repérés par une étiquette contenant deux valeurs d'attributs A et B ce qui me donnera au final une succession de valeurs ABABABABAB...Est il donc possible via une simple sélection sur "A" puis "B" puis "A" puis "B" etc... d'obtenir le résultat en le collant sous forme de texte ou Mtext ou attribut peu m'importe dans le fichier Autocad pour que je puisse le copier via le presse papier puis le recoller dans mon fichier Excel?Merci d'avance.Très bonne journée
Demixav Posté(e) le 14 juin 2017 Posté(e) le 14 juin 2017 Salut... Tu bosses avec AutoCad ou un autre logiciel? Si AutoCad et que tes câbles sont représentées par des polylignes, tu devrais peut être voir du coté des listings qui te sortiraient tous ces renseignements sous word ou .txt, et sans avoir besoin des attributs... plus qu'à copier coller vers excel! Xav AutoCad Map 3D 2011 - Covadis v16.0dWindows 7 - 64b
Magdi95 Posté(e) le 14 juin 2017 Auteur Posté(e) le 14 juin 2017 Bonjour,Oui je bosse avec Autocad mais mes câbles ne sont pas représentés donc rien d'exploitable de ce coté! Suivant la position de la prise s'est moi qui détermine le passage du câble suivant les contraintes, chaque cas est différents d'où l'intérêt de pouvoir cliquer successivement sur les repères(attributs)des tronçons qu'empreinte chaque câbles.Merci d'avoir pris le temps
(gile) Posté(e) le 14 juin 2017 Posté(e) le 14 juin 2017 Salut, Un petit truc vite fait.Il faut remplacer le nom du bloc étiquette et des attributs dans le code (defun c:MAGDI95 (/ blk lst) (while (and (setq blk (car (entsel "\nSélectionnez une étiquette ou valider par Entrée: "))) (= (getpropertyvalue blk "LocalizedName") "Référence de bloc") (= (getpropertyvalue blk "BlockTableRecord/Name") "etiquette") ; <- remplacer par le nom du bloc ) (setq lst (vl-list* (getpropertyvalue blk "B") ; <- remplacer par l'étiquette de l'attribut "B" (getpropertyvalue blk "A") ; <- remplacer par l'étiquette de l'attribut "A" lst ) ) ) (if (and lst (setq pt (getpoint "\nPoint d'insertion du texte: ")) ) (command "_.text" pt "" "" (apply 'strcat (reverse lst)) "") ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Magdi95 Posté(e) le 14 juin 2017 Auteur Posté(e) le 14 juin 2017 Bonjour Gile, Merci de ton retour, après avoir fait les 3 modifs, j'ai lancé le lisp et le message suivant apparait:"Sélectionnez une étiquette ou valider par Entrée: ; erreur: Demande ADS erronée"Je n'ai pas précisé mais il s'agit d'un bloc dynamique!Une idée?Merci d'avance.
(gile) Posté(e) le 14 juin 2017 Posté(e) le 14 juin 2017 Si tu peux mettre ton bloc en téléchargement, on devrait gagner du temps. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Magdi95 Posté(e) le 15 juin 2017 Auteur Posté(e) le 15 juin 2017 Si tu peux mettre ton bloc en téléchargement, on devrait gagner du temps. Bonjour,Le voici:Lien bloc
(gile) Posté(e) le 15 juin 2017 Posté(e) le 15 juin 2017 (defun c:MAGDI95 (/ blk lst) (while (and (setq blk (car (entsel "\nSélectionnez une étiquette ou valider par Entrée: "))) (= (getpropertyvalue blk "LocalizedName") "Référence de bloc") (= (getpropertyvalue (getpropertyvalue blk "BlockTableRecord") "Name" ) "ETIQUETTE TRONCON" ) ) (setq lst (vl-list* (getpropertyvalue blk "TRONCON") (getpropertyvalue blk "OUVRAGE") lst ) ) ) (if (and lst (setq pt (getpoint "\nPoint d'insertion du texte: ")) ) (command "_.text" pt "" "" (apply 'strcat (reverse lst))) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Magdi95 Posté(e) le 16 juin 2017 Auteur Posté(e) le 16 juin 2017 (defun c:MAGDI95 (/ blk lst) (while (and (setq blk (car (entsel "\nSélectionnez une étiquette ou valider par Entrée: "))) (= (getpropertyvalue blk "LocalizedName") "Référence de bloc") (= (getpropertyvalue (getpropertyvalue blk "BlockTableRecord") "Name" ) "ETIQUETTE TRONCON" ) ) (setq lst (vl-list* (getpropertyvalue blk "TRONCON") (getpropertyvalue blk "OUVRAGE") lst ) ) ) (if (and lst (setq pt (getpoint "\nPoint d'insertion du texte: ")) ) (command "_.text" pt "" "" (apply 'strcat (reverse lst))) ) (princ) ) Bonjour,Super, s'est du grand art comme d'habitude!On vient de me demander (ils n'auraient pas pu le préciser avant...) d'ajouter au tenant et a l'aboutissant le repère du local qui se trouve sous forme de texte simple sur mon plan, est ce que ce serait compliquer d'ajouter cette fonction?Encore Merci
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