Aller au contenu

Lisp REA de Patrick_35


pierrevig

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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.

@+

 

 

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é