pierrevig Posté(e) le 30 octobre 2008 Posté(e) le 30 octobre 2008 Bonjour à tous, je me sers du lisp REA de Patrick_35 qui est excellent.j'en ai profité pour l'adapté à mes besoins,mais je suis inculte du vlr ou vlax qui semble pourtant bien puissant. Bref, pour comprendre voici les modifs que j'y ai apporté :- création du texte et position au clic sans avoir a selectionner un texte existant.- choix d'un type de surface avant selection de la polyligne (permet de déterminé le nb de décimale et d'ajouter ou pas du texte en fonction du choix "lotissement, copro, division, standard") si je choisi "lotissement" la surface s'affiche par ex: 500m²si je choisi "copro" la surface s'affiche par ex: S= 500.3m² (S= et Une décimale) c'est super tout fonctionnent parfaitement ou presque.Car si dans le meme dessin j'ai une surface "lotissement" et une surface "copro"et que je modifie le contour d'une des deux surfaces, la surface change, mais le type aussi et prend le dernier type de surface selectionné. Et enfin, ma question ?Comment interroger les données "assoc" du texte pour controler sont type de surface et ainsi activer la variable du bon type de surfaceavant qu'elle ne soit re-écrite. le problème vient peut-être de cette partie du Lisp REA de Patrick_35: (defun modif_poly(obj rea arg-list) (if (and (vlax-read-enabled-p obj)(vlax-read-enabled-p (vlr-data rea))) (vla-put-textstring (vlr-data rea) (strcat prefix1 (rtos (vla-get-area obj) 2 nbdecimale) "m²")) (vlr-remove rea) ) ) Merci à tous de votre aide,Pierre.
Patrick_35 Posté(e) le 31 octobre 2008 Posté(e) le 31 octobre 2008 Bonjour A la lecture de tes explications(defun modif_poly(obj rea arg-list) (if (and (vlax-read-enabled-p obj)(vlax-read-enabled-p (vlr-data rea))) (if (vl-string-search "S=" (vla-get-textstring (vlr-data rea))) (vla-put-textstring (vlr-data rea) (strcat prefix1 (rtos (vla-get-area obj) 2 nbdecimale) "m²")) (vla-put-textstring (vlr-data rea) (strcat (rtos (vla-get-area obj) 2 0) "m²")) ) (vlr-remove rea) ) ) Non testé, n'ayant pas le lisp au complet.De plus, je ne sais pas ce qui se passe quand on choisit l'option division ou standard. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
pierrevig Posté(e) le 31 octobre 2008 Auteur Posté(e) le 31 octobre 2008 C'est génial, merci beaucoups Patrick_35. pour compléter mon explication:Pour afficher la surface d'une polyligne,l'utilisateur choisi par une boite dcl le type de surface, soit : Lotissement, copro, division ou simple.avec possibilité de choisir l'échelle du dessin. si l'utilisateur choisi Lotissement, après la sélection de la polyligne, il choisi l'emplacement du texte et ainsi, il aura directement un numéro de Lot encerclé qui s'incrémente à chaque selection de polyligne et dessous l'affichage de la surface sans le "s=" et sans décimale. s'il choisi Copro, il aura un texte "désignation" et desous la surface avec le "S=" et une décimale et encore dessous "H.s.pl=". si division il aura, le texte "Lot A" et dessous la surface sans "S=" et sans décimale. si simple, uniquement la surface avec "S=" et sans déciamale. Voili, voilou. Merci beaucoups de ton aide Patrick_35,j'ai pu faire comme je voulais.@+
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