Aller au contenu

Cumuler plusieurs valeurs d'attribut en une seule


Magdi95

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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.0d

Windows 7 - 64b

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

(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

Lien vers le commentaire
Partager sur d’autres sites

(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

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité