Aller au contenu

inserer un texte de la boite de dial dans un dessin


Messages recommandés

Posté(e)

Salut, ben voilà, je debute en lisp, un peu par obligation, car j'ai changé de boite et j'ai plus covadis :calim:

Donc j'ai recuperer un prog en lisp sur le forum :thumbup: pour metrer des longueurs de polylignes, bref maintenant j'aimerais recupere le texte de la boite de dialogue et l'inserer dans mon dessin.

J'ai essayé de compiler avec un prog qui le fait pour les surfaces mais....... :mad2:

 

Au fait le prog d'origine:

 

 

(defun mkfilt (typ / bdd lstflt)

(setq bdd '(8 6 0))

(if (assoc 210 typ)

(if (not (equal (assoc 210 typ) '(210 0.0 0.0 1.0)))

(progn

(initget "Oui Non")

(if

(eq

(getkword

(strcat

"\nRécupérer les entités "

(cdr (assoc 0 typ))

" non construites dans le SCG [Oui/Non]: "

)

)

"Oui"

)

(setq bdd

(cons -4

(append (list (cons -4 "*") '(210 0.0 0.0 1.0)) bdd)

)

)

(setq bdd

(cons -4

(append (list (cons -4 "=") '(210 0.0 0.0 1.0)) bdd)

)

)

)

)

)

)

(setq bddtyp bdd)

(repeat (length bdd)

(cond

((assoc (car bdd) typ)

(setq lstflt (cons (assoc (car bdd) typ) lstflt))

)

((= (car bdd) -4)

(setq lstflt (cons (cadr bdd) (cons (caddr bdd) lstflt)))

(setq bdd (cddr bdd))

)

)

(setq bdd (cdr bdd))

)

(print lstflt)

(initget "Toutes Sélectionnées")

(cond

((eq (getkword "\nMode de récupération des polylignes [Toutes/Sélectionnées] :? ") "Sélectionnées")

(ssget lstflt)

)

(T

(ssget "X" lstflt)

)

)

)

(defun c:METREPL ( / sav_dim sav_lup typent typ_l js cmpt nbr ent)

(setvar "CMDECHO" 0)

(setq sav_dim (getvar "DIMZIN"))

(setq sav_lup (getvar "LUPREC"))

(setvar "DIMZIN" 0)

(if (not precision)

(progn

(initget 4)

(setq precision

(getint

(strcat

"\nEntrer la précision désiré <"

(itoa (getvar "LUPREC"))

">: "

)

)

)

)

)

(if (not precision) (setq precision (getvar "LUPREC")))

(setvar "LUPREC" precision)

(if (not unite)

(progn

(initget "KM M CM MM")

(setq unite (getkword "\nEntre l'unité utilisé [Km/m/cm/mm] : "))

)

)

(if (not unite) (setq unite "M"))

(while (null (setq typent (entsel "\nChoix du type d'entité : "))))

(setq typent (entget (car typent)) js (ssadd) typ_l (if (assoc 6 typent) (cdr (assoc 6 typent)) "ByLayer"))

(cond

((= (cdr (assoc 0 typent)) "LWPOLYLINE")

(setq js (mkfilt typent))

)

((= (cdr (assoc 0 typent)) "POLYLINE")

(setq js (mkfilt typent))

)

(T (prompt "\nLa commande ne traite que les POLYLIGNES simples ou optimisées.") (setq js nil))

)

(cond

(js

(setq cmpt 0 nbr 0)

(print (sslength js))

(prompt (strcat " Entité(s) " (cdr (assoc 0 typent)) " trouvé(s).\n"))

(repeat (sslength js)

(setq ent (ssname js nbr))

(command "_.area" "_object" ent)

(setq cmpt (+ (getvar "perimeter") cmpt))

(setq nbr (1+ nbr))

(if (< nbr 32767)

(setq nbr (1+ nbr))

(setq nbr (+ 1.0 nbr))

)

)

(print cmpt)

(princ (strcat unite " de Polyligne avec type de ligne " typ_l))

)

(t (prompt "\nSélection vide ou non valide..!"))

)

(setq *error* olderr)

(setvar "DIMZIN" sav_dim)

(setvar "LUPREC" sav_lup)

(princ)

)

 

 

[Edité le 15/6/2006 par couma-co]

Posté(e)

Bonjour,

 

Mets simplement en remarques avec ";" (semi-colon) les lignes:

 

; (print cmpt)

; (princ (strcat unite " de Polyligne avec type de ligne " typ_l))

 

et rajoute juste à la suite (ou à la place) de ces lignes, les suivantes:

 

(setvar "cmdecho" 1)

(command "_.text" pause pause pause

(strcat (itoa nbr) " Entité(s) " (cdr (assoc 0 typent)) " avec le type de ligne " typ_l " pour une longueur totale de " (rtos cmpt) unite)

)

 

 

Je te laisse ajuster le texte à ta convenance s'il ne convient pas ;)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é