yaya Posté(e) le 6 septembre 2022 Posté(e) le 6 septembre 2022 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
JPhil Posté(e) le 6 septembre 2022 Posté(e) le 6 septembre 2022 Bonjour, Pour t'aider il nous faut le lisp modifié.
yaya Posté(e) le 6 septembre 2022 Auteur Posté(e) le 6 septembre 2022 bonjour, ok voila le lisp... BIL.lsp
yaya Posté(e) le 6 septembre 2022 Auteur Posté(e) le 6 septembre 2022 avez-vous besoin de tous les LISP associés ?... et les DCL aussi, ou non ?...
Luna Posté(e) le 6 septembre 2022 Posté(e) le 6 septembre 2022 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
yaya Posté(e) le 6 septembre 2022 Auteur Posté(e) le 6 septembre 2022 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 ! 🙂
didier Posté(e) le 6 septembre 2022 Posté(e) le 6 septembre 2022 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 Éternel débutant… Mon site perso : Programmer dans AutoCAD
yaya Posté(e) le 7 septembre 2022 Auteur Posté(e) le 7 septembre 2022 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.
Curlygoth Posté(e) le 7 septembre 2022 Posté(e) le 7 septembre 2022 tu peux créer aussi un champ formule dans le lequel tu fais l'opération ^^ Mon site Web (en cours de construction) : Site DA-CODE de @didier
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