zebulon_ Posté(e) le 29 août 2006 Posté(e) le 29 août 2006 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 icihttp://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)
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