Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

ça fait longtemps... Bon, c'est pas le sujet.

 

Donc, la commande REVCLOUD revue pour qu'elle corresponde à ce que je fais toujours :

-> des arcs de 3 unités de long

-> avec un petit texte à côté qui indique l'indice

-> le petit texte encadré avec un polygone de trois côtés.

 

Je fais toujours mes nuages de révision sur l'espace papier, comme ça je ne m'embête pas avec les échelles.

 

 
(defun c:nuage (/ OLDCLAYER OLDWID OLDORTHO LAYTXNAME STYTXNAME PT1 PT2 PT3 PT4)
 (setvar "cmdecho" 0)
 (command "_.undo" "_group")
 (setq OLDCLAYER (getvar "clayer"))

 (setq OLDWID (getvar "plinewid"))
 (setvar "plinewid" 0)
 
 ;; enlever le mode ortho, c'est plus joli
 (setq oldORTHO (getvar "ORTHOMODE"))
 (setvar "ORTHOMODE" 0)

 ;; créer un style de texte de 3 de haut
 (setq LayTxName "txt30-1000")
 (setq StyTxName "txt30-1000")
 (if (not (tblsearch "LAYER" LayTxName))
   (command "_layer" "_M" LayTxName "")
   (command "_layer" "_t" LayTxName "_on" LayTxName "_S" LayTxName "")
 )
 (if (not (tblsearch "STYLE" StyTxName))
   (command "style" StyTxName "arial.ttf" "3" "1.00" "0.00" "N" "N")
   (command "_textstyle" StyTxName)
 )
 
 ;; initialiser la variable NUAGE_INDICE
 (if (not NUAGE_INDICE) (setq NUAGE_INDICE "A"))
 (prompt (strcat "Indice de révision : " NUAGE_INDICE))

 (setq PT1 nil)

 (while (/= (type PT1) 'LIST)
   (initget 1 "Indice")
   (setq PT1 (getpoint "\nPremier point ou [indice] "))
   (cond
     ((= PT1 "Indice")
       (setq NUAGE_INDICE (getstring "\nIndice : "))
     )
   )
 )
 ;; lancer la commande NUAGEREV
 (command "_revcloud" "_a" "3" "3" "_non" PT1)
 (while (not (zerop (getvar "cmdactive")))
   (command pause)
 )
 ;; placer le texte de l'indice
 (setq PT2 (getpoint "\nPoint d'insertion du texte"))
 (command "_text" "_mc" "_non" PT2 "0" NUAGE_INDICE)
 (setq PT3 (list (- (car PT2) 3.5) (- (cadr PT2) 2.0)))
 (setq PT4 (list (+ (car PT2) 3.5) (- (cadr PT2) 2.0)))
 (command "_polygon" "3" "_e" "_non" PT3 "_non" PT4)

 (setvar "PLINEWID" OLDWID)
 (setvar "ORTHOMODE" oldORTHO)  
 (setvar "CLAYER" OLDCLAYER)
 (command "_.undo" "_end")

 (princ)
)

 

La subtilité de ce lisp était de pouvoir coller un "pause" dans la commande REVCLOUD, ce que j'ai fait avec

 

 (while (not (zerop (getvar "cmdactive")))
   (command pause)
 )

 

On avait déjà utilisé ce subterfuge pour saisir des polylignes avec n points à l'intérieur d'un lisp ici

http://www.cadxp.com/sujetXForum-4847.htm

 

Amicalement

 

Zebulon_

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

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é