Aller au contenu

Ce bloc me fait tourner en rond !


Messages recommandés

Posté(e)

Bonsoir

Je me prends la tête sur un bloc , mon travail du soir...

J'ai un bloc dans un dessin, nom N_BLOC.

Ce bloc est composé d'attributs TN et Fe , calque, nature.

Je souhaite accéder aux attributs Fe et TN pour leur indiquer une nouvelle valeur.

 

J'en suis à avoir ma sélection avec

 
 (or *acad* (setq *acad* (vlax-get-acad-object)))
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
   
 (setq blo (ssname selection_pt_traitement i)) ;; mon bloc sélectionné
 (setq blo (vlax-ename->vla-object blo))

 

Merci

Posté(e)

Salut,

 

Depuis AutoCAD 2012, la fonction LISP setpropertyvalue permet d'attribuer directement la valeur d'une référence d'attribut en considérant l'étiquette de l'attribut comme une propriété du bloc.

 

(setq blo (ssname selection_pt_traitement i)) ;; mon bloc sélectionné
(setpropertyvalue "TN" "toto")
(setpropertyvalue  "Fe" "titi")

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

Posté(e)

Bonjour

Merci de la réponse. Je n'avais jamais utilisé setproperty value.

A ce qui est écris, j'ai jouté "blo" après setpropertyvalue (il me semble que c'était manquant.

Par contre j'ai erreur de demande ADS. Le résultat de blo :

Commande: !ename_trait

((-1 . <Nom d'entité: 146b951f500>) (0 . "INSERT") (330 . <Nom d'entité: 14680b709f0>) (5 . "186E40") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "REC") (6 . "Rec_Continu") (100 . "AcDbBlockReference") (66 . 1) (2 . "N_BLOC") (10 1002.0 5002.0 9.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.785398) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

 

 

Salut,

 

Depuis AutoCAD 2012, la fonction LISP setpropertyvalue permet d'attribuer directement la valeur d'une référence d'attribut en considérant l'étiquette de l'attribut comme une propriété du bloc.

 

(setq blo (ssname selection_pt_traitement i)) ;; mon bloc sélectionné
(setpropertyvalue "TN" "toto")
(setpropertyvalue  "Fe" "titi")

Posté(e)

Oupss !...

(setq blo (ssname selection_pt_traitement i)) ;; mon bloc sélectionné
(setpropertyvalue blo "TN" "toto")
(setpropertyvalue blo  "Fe" "titi")

 

Pas de guillemets autour de "blo", ce n'est pas une chaîne, blo est une variable (plus exactement un symbole).

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

Posté(e)

Les guillemets étaient juste pour le texte sur le forum ;)

En fait, mon erreur ADS venait d'ailleurs, j'ai modifié une chose hier soir et j'avais oublié de corriger ce matin...

 

Merci

 

Oupss !...

(setq blo (ssname selection_pt_traitement i)) ;; mon bloc sélectionné
(setpropertyvalue blo "TN" "toto")
(setpropertyvalue blo  "Fe" "titi")

 

Pas de guillemets autour de "blo", ce n'est pas une chaîne, blo est une variable (plus exactement un symbole).

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é