fiesta13310 Posté(e) le 26 août 2013 Posté(e) le 26 août 2013 Bonjour, Je voudrais changer la valeur d'un attribut d'un bloc par programmation : je dispose d'un bloc "NGF" dans lequel il y a un attribut.J'ai créé un programme qui calcul les différents niveaux NGF à partir d'un niveau de référence. Ainsi, a chaque clic , le programme calcul le niveau, insère le bloc et change l'atribut du bloc.Le problème c'est que je n'arrive pas a programmer le changement d'attribut de mon bloc. A peine le bloc inséré, la fenêtre des attributs s'ouvre et c'est moi qui doit canger manuellement le niveau et je voudrais ne pas avoir à le faire mais que ca soit mon prgramme qui le fasse... Comment faire? Merci
Patrick_35 Posté(e) le 26 août 2013 Posté(e) le 26 août 2013 Salut Version Autolisp; Insertion du bloc (setq blo (entlast)) ; Je récupere le dernier bloc inséré (setq att (entget (entnext blo))) ; Je récupere le 1er attribut de mon bloc (setq att (subst (cons 1 "Mon_texte") (assoc 1 att) att)) ; Je change le texte de l'attribut (entmod att) ; Je met à jour l'attribut Version Vlisp; Insertion du bloc (setq blo (vlax-ename->vla-object (entlast))) ; Je récupere le dernier bloc inséré (setq att (vlax-invoke blo 'getattributes)) ; Je récupere les attributs de mon bloc (vla-put-textstring (nth 0 att) "Encore_un_texte") ; Je change le texte du 1er attribut @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
-Olivier- Posté(e) le 26 août 2013 Posté(e) le 26 août 2013 Bonjour fiesta13310,Je suppose que tu insère le bloc avec une fonction commande. Pour éviter la boite de dialogue, désactive la variable ATTDIA. Olivier
fiesta13310 Posté(e) le 27 août 2013 Auteur Posté(e) le 27 août 2013 Merci, tout fonctionne à merveille.Encore une toute petite chose:Quand les niveaux sont négatifs, le signe "-" s'affiche, et je voudrais que quand ils sont positifs, le signe "+" s'affiche ausi
Patrick_35 Posté(e) le 28 août 2013 Posté(e) le 28 août 2013 Salut Regarde les fonctions strcat, itoa ou rtos si ton nombre est un entier ou réel. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VDH-Bruno Posté(e) le 28 août 2013 Posté(e) le 28 août 2013 Bonjour, Regarde également les fonctions minusp (et éventuellement zerop si tu veux également concaténer le signe +/- devant le niveau 0.00) A+ Apprendre => Prendre => Rendre
fiesta13310 Posté(e) le 3 octobre 2013 Auteur Posté(e) le 3 octobre 2013 Bonjour, Ce petit LISP marche à merveille, mais j'aimerai aller encore plus loin.j'aimerai que lorsque je modifie ma coupe, si le niveau change, le bloc se mette à jour. C'est possible? Merci pour votre aide
bonuscad Posté(e) le 3 octobre 2013 Posté(e) le 3 octobre 2013 Bonjour, Regarde cette discussion et les renvois qu'il peut contenir, voir si une solution te convient. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
fiesta13310 Posté(e) le 3 octobre 2013 Auteur Posté(e) le 3 octobre 2013 Bonjour, Regarde cette discussion et les renvois qu'il peut contenir, voir si une solution te convient. Jai essayé son programme, mais en fait il marche exactement comme le mien mais ne répond toujours pas a mes attentes.autrement dit, si je décide d'épaissir ma dalle, le niveau lui reste inchangé, je suis obligé de le réécrire.
fiesta13310 Posté(e) le 7 octobre 2013 Auteur Posté(e) le 7 octobre 2013 Bonjour, Bon ben pas de solutions alors??
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