DenisHen Posté(e) le 15 juin 2016 Posté(e) le 15 juin 2016 Bonjour à la communauté. Voilà, je cherche à remplir un attribut de bloc en le sélectionnant... Voici mon Lisp :(defun c:SDEHM_Materiau ( /ent_bloc LstMateriau att Materiau) (princ "\nDéveloppé par Denis H.") (setq ent_bloc (entsel "\nSélectionnez le bloc: ")) (setq ent_bloc (car ent_bloc)) (if (/= (cdr (assoc 0 (entget ent_bloc))) "INSERT") (progn (princ (strcat "\nVous devez sélectionner un bloc.")) (+ "Erreur" 15) ) ;_ Fin de progn ) ;_ Fin de if (princ "\n") (princ ent_bloc) (setq Materiau "01.Béton") (cond ((= (cdr (assoc 2 att)) "MATERIAU") (setq att (subst (cons 1 Materiau) (assoc 1 att) att)) (entmod att) ) ) ;_ Fin de cond ) ;_ Fin de defunMais le lisp ne fait rien... J'aimerais savoir où je me suis planté... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 15 juin 2016 Posté(e) le 15 juin 2016 Salut J'avais donné un exemple pour récupérer les valeurs des attributs.Tu peux donc en déduire l'inverse. @+ 1 Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 15 juin 2016 Auteur Posté(e) le 15 juin 2016 Salut Patrick_35, et merci pour ta réponse. Je n'arrive pas à bien saisir cette routine "valatt". Je m'y perd... Mon problème aujourd'hui, c'est que je n'ai pas le temps de chercher, c'est rare, mais ça m'arrive. Je sais que ce n'est pas comme cela qu'on apprend... Je vais avoir des centaines de blocs à remplir et des dizaines de routines à construire... Et pour demain ! ! ! Je dois tripatouiller d'autres routines pour en faire une type... Au plus vite... Mais entendons-nous bien, je ne demande à personne de le faire à ma place... Mais merci tout de même pour ta bienveillance... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
didier Posté(e) le 15 juin 2016 Posté(e) le 15 juin 2016 Coucou Il me semblait t'en avoir déjà parlé : NENTSEL. Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 15 juin 2016 Auteur Posté(e) le 15 juin 2016 Salut didier, et merci de m'aider. Un de mes problèmes, c'est que l'attribut du bloc peut être vide, et donc, je ne peut pas cliquer dessus... Je devrais cliquer sur une autre partie du bloc... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 15 juin 2016 Auteur Posté(e) le 15 juin 2016 En gros, ce que j'aimerais faire, c'est cliquer n'importe quel entité d'un bloc et attribuer "Béton" à son attribut "MATERIAU"... Si quelqu'un a ça dans sa musette, ou autre, je suis preneur... En plus, j'ai une crève terrible alors je vais continuer chez moi... Merci à tous... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 15 juin 2016 Posté(e) le 15 juin 2016 Un lisp qui modifie la valeur d'un attribut en fonction du nom de bloc et de l'étiquette de l'attribut. @+ 1 Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 15 juin 2016 Posté(e) le 15 juin 2016 Coucou Ah tu changes la donne ! c'est sans doute la crève, alors soigne-toi comme il faut, j'ai un bon antivirus alors je peux répondre.Quand je dis que tu changes la donne : tu as écrit remplir un attribut de bloc en le sélectionnantJe t'ai répondu dans le sens de sélectionner l'attribut, mais il fallait lire en sélectionnant "le bloc", pas simple. Tu vas devoir te référer à l'étiquette ou connaître la position de l'attribut dans le bloc, dans tous les cas il faut une de ces donnéesC'est vrai que si l’attribut est vide nentsel devient caduque et le lisp de Patrick_35 fera l'affaire. Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 15 juin 2016 Auteur Posté(e) le 15 juin 2016 Merci Patrick_35, je me soigne et verrai ton lisp demain. Merci didier, effectivement, ma phrase pouvait être interprétée autrement, je n'avais pas fais attention... Je n'ai jamais été malade comme ça ! ! Encore merci à vous... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 15 juin 2016 Posté(e) le 15 juin 2016 Salut, Je me permet de rappeler une des (très) rares améliorations d'AutoLISP depuis l'arrivée de Visual LISP (AutoCAD R14 / 2000) : les fonctions getpropertyvalue et setpropertyvalue.Avec ces fonctions, les étiquettes d'attributs sont considérées comme des propriétés du bloc.(setpropertyvalue leBloc "MATERIAU" "Béton") 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chti Julien Posté(e) le 16 juin 2016 Posté(e) le 16 juin 2016 Une autre solutions ! ;; Etape 1 Copier-coller sur la ligne de commande de la ligne ci-dessous en gras (la ligne lit les éléments du bloc pour faire l’étape 2);; Avoir un zoom sur le bloc et l’attribut;; 1 question pour sélectionner de l’attribut ‘select object’.;; 2 question pour la nouvelle valeur de l’attribut. (setq attr (entget (car (nentsel))) Attr_etiquette (cdr (assoc 2 attr)) Attr_Valeur (cdr (assoc 1 attr)) NewValeur (getstring "\nNouvelle Valeur")) ;; Etape 2 Copier Coller sur la ligne de commande traitement de la modification (command "attedit" "n" "n" "" Attr_etiquette "" Attr_Valeur NewValeur) Possible de se faire une commande avec ces ligne aussi ! J’avais créé sa rapidement pour actualiser un attribut dans un cartouche insérer plusieurs fois dans l’espace objet. Le recherche remplacer pas assez fin…. Salutation Julien
DenisHen Posté(e) le 16 juin 2016 Auteur Posté(e) le 16 juin 2016 Merci à vous pour votre aide... (gile) : merci pour cette précision, une fois de plus très judicieuse... ;) Chti Julien : la valeur de l'attribut pouvant être vide, on ne peut donc pas cliquer dessus... Bon, je m'y colle... Merci encore à vous... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 16 juin 2016 Auteur Posté(e) le 16 juin 2016 Re, Merci à tous, j'ai réussi à faire ce que je voulais... Malheureusement, je ne peux pas poster car ça fait partie d'une routine plus grande qui utilise d'autres lisp (comme ListBox de (gile))... Encore merci à tous... Denis... (qui va reprendre un Efferalgan...) Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
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