Aller au contenu

Messages recommandés

Posté(e)

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 defun

Mais 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)

Posté(e)

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)

Posté(e)

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)

Posté(e)

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)

Posté(e)

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électionnant

Je 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ées

C'est vrai que si l’attribut est vide nentsel devient caduque et le lisp de Patrick_35 fera l'affaire.

Posté(e)

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)

Posté(e)

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")

  • Upvote 1

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

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

Posté(e)

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)

Posté(e)

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)

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é