Aller au contenu

Messages recommandés

Posté(e)

Bonjour.

 

Je recherche une routine ou un LISP qui me permettra a calculer l'aire d'une surface quelconque en cliquant à l'intérieur de celle-ci ou en sélectionnant les lignes qui la compose. Le résultat trouvé pourrais apparaître au bout du curseur pour être positionné dans le dessin par un nouveau clic de souris.

 

Merci à tous.

Posté(e)

Salut,

 

vite fait, çà fait ce que tu demandes ; au premier lancement il te sera demandé la hauteur souhaitée pour le texte.

 
(defun c:surf( / pt e surf)
 
 (setq pt (getpoint "\n point à l'intérieur de la zone"))
 (if (setq e (bpoly pt))
   (progn
     (setq surf (vlax-get (vlax-ename->vla-object e) "area"))
     (entdel e)
     (if (not $$htxt) (setq $$htxt (getdist pt "\nhauteur du texte")))
     (command "_text" pt $$htxt 0 (rtos surf 2 3))
     (command "_move" (entlast) "" pt pause)
   )
 )  
)

Posté(e)

Bonjour

Je commence en lisp et la fonction que tu viens de créer m'interresse.

mais j'ai un message d'erreur

Commande: surf

point à l'intérieur de la zone; erreur: no function definition:

VLAX-ENAME->VLA-OBJECT

M'y suis je mal pris ??

 

Autoc@dement

Posté(e)

Bonjour Didier AD.

 

Ça fonctionne très bien. Merci. Je travaille en milimètre, donc mes unités de mesure sont aussi en milimètre. Mais si je voudrais la surface en mètre carré (m2), peux-t'on avoir une option qui divise le résultat par 1 000 000 ?

 

Peut-on ajouté aussi l'unité de mesure au resultat (example: m2)

 

Merci.

 

[Edité le 29/5/2007 par Serge1591]

Posté(e)

Salut,

 

remplace :

 

 (command "_text" pt $$htxt 0 (rtos surf 2 3)) 

 

par :

 

 (command "_text" pt $$htxt 0 (strcat (rtos (/ surf 1e-6) 2 3) "m2")) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)
; erreur: no function definition:

VLAX-ENAME->VLA-OBJECT

M'y suis je mal pris ??

 

 

désolé, il faut avoir chargé les objets com, comme ils sont chargés automatiquement chez moi, j'ai oublié

il faut ajouter la ligne ci dessous avant ou après la fonction (ou la taper au clavier)

(vl-load-com)

 

 
(vl-load-com)
(defun c:surf( / pt e surf)

(setq pt (getpoint "\n point à l'intérieur de la zone"))
(if (setq e (bpoly pt))
(progn
(setq surf (vlax-get (vlax-ename->vla-object e) "area"))
(entdel e)
(if (not $$htxt) (setq $$htxt (getdist pt "\nhauteur du texte")))
(command "_text" pt $$htxt 0 (rtos surf 2 3))
(command "_move" (entlast) "" pt pause)
)
) 
)

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é