Aller au contenu

valeur attribut selon résultat opération avec 2 attributs dans un même bloc


yaya

Messages recommandés

bonjour,

j'utilise autocad 2022, et j'ai récupérer le programme en LISP de "gile(CAD)" nommé "Pline_block".

je l'ai modifié pour mes besoins, mais voilà je voudrais exécuter une opération (multiplication) entre 2 attributs (SURF-PIECE x HAUTEUR_PIECE) pour inscrire le résultat dan un 3ème (VOLUME)...!

quelqu'un peut-il m'aider ? svp ?...

je joins le fichier .dwg

test_attribut.dwg

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Je présume que c'est ici que tu aimerais que ton calcul fonctionne (mais ce n'est actuellement pas le cas), n'est-ce pas ?

129	  ;; boite dialogue du volume
130	  (setq vol (* aire atrib_04))
131	  ;(if (not (setq vol (geta07 "8/11. volume de la pièce")))
132	  ;  (setq vol "")
133	  ;)

Si je comprends bien le programme, ta variable 'atrib_04' est une chaîne de caractères standard tandis que ta variable 'aire' correspond à l'expression d'un champ dynamique. Autrement dit, il faut que ta variable 'vol' soit elle aussi un champ dynamique ! Donc ce n'est pas une simple multiplication entre 2 attributs malheureusement.

Il s'agit en plus de cela d'un champ dynamique devant faire la multiplication entre un nombre et un autre champ dynamique correspondant à la propriété d'un objet. J'ai regardé vite fait sur AutoCAD le résultat d'un tel champ :

%<\AcExpr (56*%<\_FldPtr 1915583967872>%) \f "%lu2">%

Avec '56*' correspondant à une valeur fixe au pif que j'ai rentré pour la multiplication et donc '%<\_FldPtr 1915583967872>%' correspondant au champ dynamique faisant appel à la propriété de ta polyligne.
Je n'ai malheureusement jamais vraiment étudié cette partie là concernant les champs dynamique donc j'avoue ne pas savoir comment récupérer l'ID d'un autre champ dynamique. Peut-être que @(gile) a plus d'infos à ce sujet mais s'il ne l'a pas fait dans son programme originel, c'est certainement pour une bonne raison !

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

bonjour Luna,

merci de ta réponse...

apparemment cela ne doit pas être possible, ou du moins facilement faisable moyennant un bon code bien ficelé..!!

mais je vais en rester là, je garde mon petit prog, sauf que je vais y retirer le calcul du volume, je vais faire autrement...

merci encore !

🙂

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @yaya

Je ne suis pas sûr d'avoir compris

Les attributs, tu les trouves où ?
En utilisant un LSP additionnel ou en interrogeant quelque chose dans le dessin ?

Ça ne me semble pas bien compliqué ce que tu demandes, sauf si tu veux des champs qui se mettent à jour.
Mais il est possible que je sois à côté de la plaque.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Il y a 23 heures, didier a dit :

Bonjour @yaya

Je ne suis pas sûr d'avoir compris

Les attributs, tu les trouves où ?
En utilisant un LSP additionnel ou en interrogeant quelque chose dans le dessin ?

Ça ne me semble pas bien compliqué ce que tu demandes, sauf si tu veux des champs qui se mettent à jour.
Mais il est possible que je sois à côté de la plaque.

Amicalement

bonjour didier,

les attributs sont ceux que je renseigne pour la référence de bloc.

 

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é