Aller au contenu

Contour avec texte surface


Hydro8

Messages recommandés

  • Réponses 206
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

Je n'arrive pas à expliquer cette erreur qui se pose toujours là où on ne l'attend pas...

 

Comprend pô...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

ALors si je test :

 

(defun c:EncadreMText ()
;;;D?fini les quatre coins du MText de (gile)
 (princ "\nDéfini les quatre coins du MText de (gile2)")
 (setq elst (car (entsel "\nSelectionner le texte :")))
 (if (= "MTEXT" (cdr (assoc 0 (entget (entlast)))))
   (setq nor  "1")
)
)
 (princ "...Fin")

 

Cela fonctionne, du coup j'ai une première erreur sur

(cdr (assoc 210 elst)

on dirait.

Lien vers le commentaire
Partager sur d’autres sites

Ou alors, peut-être juste ça :

(setq elst (entget (car (entsel "\nChoisis le texte :"))))

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

D'après-moi, c'est bien cette ligne qui devrait fonctionner :

 (setq elst (car (entsel "\nSelectionner le texte :")))

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Voici le lisp complet de (gile) adapté à tes besoins :

;;; ************************************
;;; Encadrement d'un texte ou Mtexte    
;;; ************************************
(defun c:GC_EncadreMText ()
;;;Défini les quatre coins du MText de (gile)
 (princ "\nDéfini les quatre coins du MText de (gile)")
 (defun mxv (m v) (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m))
 (setq elst (entget (car (entsel "\nChoisir le texte :"))))
 (if (= "MTEXT" (cdr (assoc 0 elst)))
   (setq nor  (cdr (assoc 210 elst))
         ref  (trans (cdr (assoc 10 elst)) 0 nor)
         rot  (angle '(0 0 0) (trans (cdr (assoc 11 elst)) 0 nor))
         wid  (cdr (assoc 42 elst))
         hgt  (cdr (assoc 43 elst))
         jus  (cdr (assoc 71 elst))
         org  (list (cond ((member jus '(2 5 8)) (/ wid -2))
                          ((member jus '(3 6 9)) (- wid))
                          (T 0.0)
                    ) ;_ Fin de cond
                    (cond ((member jus '(1 2 3)) (- hgt))
                          ((member jus '(4 5 6)) (/ hgt -2))
                          (T 0.0)
                    ) ;_ Fin de cond
              ) ;_ Fin de list
         plst (mapcar (function (lambda (p) (mapcar '+ org p)))
                      (list (list (- 0.1) (- 0.1))
                            (list (+ wid 0.1) (- 0.1))
                            (list (+ wid 0.1) (+ hgt 0.1))
                            (list (- 0.1) (+ hgt 0.1))
                      ) ;_ Fin de list
              ) ;_ Fin de mapcar
   ) ;_ Fin de setq
   (setq box  (textbox elst)
         ref  (cdr (assoc 10 elst))
         rot  (cdr (assoc 50 elst))
         plst (list (list (- (caar box) 0.1) (- (cadar box) 0.1))
                    (list (+ (caadr box) 0.1) (- (cadar box) 0.1))
                    (list (+ (caadr box) 0.1) (+ (cadadr box) 0.1))
                    (list (- (caar box) 0.1) (+ (cadadr box) 0.1))
              ) ;_ Fin de list
   ) ;_ Fin de setq
 ) ;_ Fin de if
 (setq mat  (list (list (cos rot) (- (sin rot)) 0) (list (sin rot) (cos rot) 0) '(0 0 1)) ;_ Fin de list
       plst (mapcar (function (lambda (p) (mapcar '+ (mxv mat p) (list (car ref) (cadr ref)))) ;_ Fin de lambda
                    ) ;_ Fin de function
                    plst
            ) ;_ Fin de mapcar
 ) ;_ Fin de setq
 (setq Pt1 (list (car (nth 0 plst)) (cadr (nth 0 plst))))
 (setq Pt2 (list (car (nth 1 plst)) (cadr (nth 1 plst))))
 (setq Pt3 (list (car (nth 2 plst)) (cadr (nth 2 plst))))
 (setq Pt4 (list (car (nth 3 plst)) (cadr (nth 3 plst))))
 (command "_.pline" Pt1 Pt2 Pt3 Pt4 Pt1 "")
 ;;
 (princ "...Fin")
 (princ)
) ;_ Fin de defun

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Exactement...

 

Regarder aussi ceux qui se chargent avec le lancement d'AutoCAD : "_appload" puis, le bouton "Contenu..."

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Pas de problème :

;;; ********************
;;; Dessine une flèche  
;;; ********************
(defun c:DH_Fleche ()
 (princ "\nDébut calcul flèche")
 (setq Long 2
       ;; Longueur de la tête de la flèche
       Larg
        1
       ;; Largeur de du pied de la flèche
       Pt_Fin_Fle
        (getpoint "\nPied de la flèche : ")
       Pt_Deb_Fle
        (getpoint Pt_Fin_Fle "\nPointe de la flèche : ")
       Pt_Pied_Fle
        (polar Pt_Deb_Fle (angle Pt_Deb_Fle Pt_Fin_Fle) Long)
 ) ;_ Fin de setq
 (command "_.pline" Pt_Deb_Fle "_w" 0 Larg Pt_Pied_Fle "_w" 0 0 Pt_Fin_Fle "")
) ;_ Fin de defun

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Au top, du coup j'ai un bouton pour les contours + textes et un bouton pour souligné + flèche que je peux utiliser sur n'importe quel mtext.

 

Alors j'ai essayé de modifier la création du texte sans succès :

 

- est-il possible d'ajouter une altitude haute et une altitude basse pour le choix altitude ? (avec toujours la même contrainte : XXX.XX au début puis la dernière valeur)

 

- est-il possible d'ajouter une altitude pour sans profondeur et sans hauteur ?

 

Bon après l'altitude basse de altitude correspond à l'altitude basse de sans profondeur et pareil pour altitude haute avec sans hauteur.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Je n'ai suivi de près cette conversation mais 188 réponses, je suis impressionné.

 

D'après-moi, c'est bien cette ligne qui devrait fonctionner :

 (setq elst (car (entsel "\nSelectionner le texte :")))

 

Chacun a ses habitudes de nommage des variables, mais en général elst c'est une liste DXF telle que retournée par (entget ...), pour (car (entsel ...) on utilise plutôt ent.

En tout cas, c'est ce que je fais.

 

Quoi qu'il en soit, pour trouver ce qui provoque une erreur, je rappelle la procédure :


     
  1. ouvrir la routine dans l'éditeur Visual LISP (VLIDE)
  2. cocher "Arrêt sur erreur" dans le menu Déboguer de l'éditeur
  3. charger la routine menu Outils > "Charger le texte dans l'éditeur" (Ctrl+Alt+E)
  4. dans AutoCAD lancer la routine pour provoquer l'erreur, et basculer automatiquement dans l'éditeur Visual LISP
  5. dans le menu Déboguer cliquer sur "Source de la dernière interruption" (Ctrl+F9)

L'exécution est interrompue et la source de l'erreur devrait être sélectionnée (surbrillance dans le fenêtre du code).

On peut interroger les valeurs de variables dans la console.

 

Ne pas oublier de réinitialiser (Ctrl+Q) pour sortir de l'interruption.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Je me demandais quand allait intervenir l'ami (gile), j'ai la réponse

Moi aussi je suis impressionné par le nombre de messages

Ça doit être la génération TEXTO qui fait ça, on "pense" quelque chose paf on appuie sur un bouton...

En même temps, le nombre de ligne du "programme" est proportionnel au nombre de messages

Je ne sais plus exactement ce qu'il faut faire et j'ai pas envie de TOUT relire

N'empêche que j'aimerais m'y coller, ça doit pas être sorcier, si ?

Un petit rappel Hydro8, s'il te plaît (avec un joli dwg qui explique l'attente)

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Oui, je suis bien d'accord avec toi,

Une BONNE vérification et tout rentrera dans l'ordre.

 

Il y a plein de trucs que je ne comprends pas et du coup je ne sais pas trop ce qui est fait et encore moins pour quoi faire, du coup comment aider ?

 

C'est pour ça que je me suis permis de redemander une clarification à Hydro8 des fois que je trouve une heure ou deux pour m'y coller

Sachant que je ne détiens pas LA vérité mais je pourrais proposer quelque chose, ce qui n'est pas possible dans l'état actuel.

 

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

DenisHEN :

Je remarque qu'il est fait appel à une des mes vieilles anciennes routines "gisement"(on balbutiait tous en AutoLISP à cette époque, il faut assumer car elle est pas terrible)

Mais il y a une faute de frappe dans le nom de la commande, ça marche quand même ?

Lien vers le commentaire
Partager sur d’autres sites

Personnellement j'ai du modifier le nom appelé pour que ça fonctionne :)

 

Alors le premier Lisp :

 

- on indique le préfixe de l'incrementation.

- on indique le numéro d'incrementation.

- on choisit si on veut un contour par détection ou en le définissant point par point.

- une fois le contour ok, on indique si c'est une polyligne sans altitude / avec altitudes.

- on indique l'altitude si besoin.

- on indique la place du texte.

- cela insert un mtext avec le numéro indiqué au début, la surface et l'altitude (ou sans).

 

Par exemple, au final j'ai un texte : 1a1 / S = 123.00m² / NGF : 102.23 - 104.56

 

Celui d'après ça sera automatiquement : 1a2 / S = 124.0/m² / NGF : sans limite

 

La deuxième partie du Lisp permet un export automatique des textes créé au format csv avec la surface.

 

Le deuxième lisp permet de sélectionner un mtext, cela va créé une polyligne entre les deux points du bas puis lancer la création d'une flèche.

 

Voilà voilà, merci encore à Denis pour toute son aide !

 

C'est plus que les fignolage maintenant.

Lien vers le commentaire
Partager sur d’autres sites

En même temps, le nombre de ligne du "programme" est proportionnel au nombre de messages

Exact... ;)

La première routine faisait une vingtaine de ligne, on en est maintenant à plus de 300...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Tu sais comment faire pour avoir des options d'altitudes hautes et basses ?

 

J'ai essayé déjà de rajouter l'option sur les autres choix mais sans succès :

 

   (cond ((= Opt3 "Altitude")
         (progn (setq NouvAlti (getstring (strcat "\nSpécifiez l'altitude basse <" Alti "> : ")))
            (if (or (= NouvAlti nil) (= NouvAlti ""))
              (progn (setq Opt3 (strcat Opt3 ":" Alti)))
              (progn (setq NouvAlti (rtos (atof NouvAlti) 2 2))
                     (vlax-ldata-put "DenisH" "Alti" NouvAlti)
                     (setq Opt3 NouvAlti)
              ) ;_ Fin de progn
            ) ;_ Fin de if
     ));_ Fin de progn
  ((= Opt3 "sansProfondeur")
         (progn (setq NouvAlti (getstring (strcat "\nSpécifiez l'altitude haute <" Alti "> : ")))
            (if (or (= NouvAlti nil) (= NouvAlti ""))
              (progn (setq Opt3 (strcat Opt3 ":" Alti)))
              (progn (setq NouvAlti (rtos (atof NouvAlti) 2 2))
                     (vlax-ldata-put "DenisH" "Alti" NouvAlti)
                     (setq Opt3 NouvAlti)
              ) ;_ Fin de progn
            ) ;_ Fin de if
     ));_ Fin de progn
   ) ;_ Fin de cond

Lien vers le commentaire
Partager sur d’autres sites

Du coup j'ai réussi à ajouter les altitudes hautes et basses pour chaque type d'altitude (si besoin).

 

Cependant, j'ai le bon texte quand je laisse la valeur par défaut mais pas quand je note une nouvelle valeur.

 

Je n'arrive pas à gérer les deux cas. Voici mon bout de code :

 

     ((= Opt3 "sans profondeur")
      (progn
 (setq NouvAltiH
	(getstring (strcat "\nSpécifiez l'altitude haute <"
			   AltiH
			   "> : "
		   )
	)
 )
 (if (or (= NouvAltiH nil) (= NouvAltiH ""))
   (progn
     (setq
       Opt3 (strcat "sans limitation\\Pen profondeur et " AltiH "m")
     )
   )
   (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2))
	  (vlax-ldata-put "DenisH" "AltiH" NouvAltiH)
	  (setq Opt3 NouvAltiH)
   ) ;_ Fin de progn
 ) ;_ Fin de if
		 	   (setq xBasse "----")
   (SetXdataForApplication
     (entlast)
     "Basse"
     (list (cons 1000 xBasse))
   )
 	   (setq xHaute AltiH)
   (SetXdataForApplication
     (entlast)
     "Haute"
     (list (cons 1000 xHaute))
   )
 )
     ) ;_ Fin de progn	         

Lien vers le commentaire
Partager sur d’autres sites

Voilà mon lisp final avec la possibilité de mettre une altitude haute et basse :

 

;;; ***********************************************************
;;; Dessine un contour, puis place un texte incr?ment? et la   
;;; surface dans un multitexte et dans des Xdata               
;;; Pour Hydro8 de CadXP.com                                   
;;; ***********************************************************
(defun c:msurfacefraction (/ old_osmd PrefixIncrement ValIncrement Option1 Option2 MText EcritText)
 (princ "\nDéveloppé par Denis H. (v:3.0)")
 (defun mxv (m v)
   (mapcar (function (lambda (r) (apply '+ (mapcar '* r v))))
    m
   )
 ) ;_ Fin de defun
 (defun EcritText (/		xSurf	    xMatri	xBasse
	    xHaute	Pt_Deb_Fle  Pt_Fin_Fle	Pt_Pied_Fle
	   )
   ;;
   (setq xMatri (strcat PrefixIncrement (itoa ValIncrement)))
   (SetXdataForApplication
     (entlast)
     "Matri"
     (list (cons 1000 xMatri))
   )
   (setq xSurf (rtos (getpropertyvalue (entlast) "Area") 2 1))
   (SetXdataForApplication
     (entlast)
     "Surf"
     (list (cons 1000 xSurf))
   )
   (initget "Altitude sansProfondeur sansHauteur sansLimite")
   (setq Option3
   (getkword
     (strcat
       "\nType de fraction [Altitude/sansProfondeur/sansHauteur/sansLimite] <Altitude> : "
     ) ;_ Fin de strcat
   ) ;_ Fin de getkword
   ) ;_ Fin de setq
   (cond ((= Option3 "Altitude") (setq Opt3 "Altitude"))
  ((= Option3 "sansProfondeur")
   (setq Opt3 "sans profondeur")
  )
  ((= Option3 "sansHauteur") (setq Opt3 "sans hauteur"))
  ((= Option3 "sansLimite")
   (setq xBasse "----")
   (SetXdataForApplication
     (entlast)
     "Basse"
     (list (cons 1000 xBasse))
   )
   (setq xHaute "----")
   (SetXdataForApplication
     (entlast)
     "Haute"
     (list (cons 1000 xHaute))
   )
   (setq Opt3 "sans limitation en\\Pprofondeur et en hauteur")
  )
  (T (setq Opt3 "Altitude"))
   ) ;_ Fin de cond
   (setq AltiB (vlax-ldata-get "DenisH" "AltiB" "XXXX.XX"))
   (if	(or (= AltiB nil) (= AltiB ""))
     (setq AltiB "XXXX.XX")
   ) ;_ Fin de if
   (setq AltiH (vlax-ldata-get "DenisH" "AltiH" "XXXX.XX"))
   (if	(or (= AltiH nil) (= AltiH ""))
     (setq AltiH "XXXX.XX")
   ) ;_ Fin de if
   (cond
     ((= Opt3 "Altitude")
      (progn (setq NouvAltiB
	     (getstring	(strcat	"\nSpécifiez l'altitude basse <"
				AltiB
				"> : "
			)
	     )
      )
      (if (or (= NouvAltiB nil) (= NouvAltiB ""))
	(progn (setq Opt3 (strcat AltiB "m")))
	(progn (setq NouvAltiB (rtos (atof NouvAltiB) 2 2))
	       (vlax-ldata-put "DenisH" "AltiB" NouvAltiB)
	       (setq Opt3 (strcat NouvAltiB "m"))
	) ;_ Fin de progn

      ) ;_ Fin de if
      (setq xBasse AltiB)
      (SetXdataForApplication
	(entlast)
	"Basse"
	(list (cons 1000 xBasse))
      )

      )
      (progn (setq NouvAltiH
	     (getstring	(strcat	"\nSpécifiez l'altitude haute <"
				AltiH
				"> : "
			)
	     )
      )
      (if (or (= NouvAltiH nil) (= NouvAltiH ""))
	(progn (setq Opt3 (strcat Opt3 " et " AltiH "m")))
	(progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2))
	       (vlax-ldata-put "DenisH" "AltiH" NouvAltiH)
	       (setq Opt3 (strcat Opt3 " et " NouvAltiH "m"))

	) ;_ Fin de progn
      ) ;_ Fin de if
      (setq xHaute AltiH)
      (SetXdataForApplication
	(entlast)
	"Haute"
	(list (cons 1000 xHaute))
      )
      )
     ) ;_ Fin de progn
     ((= Opt3 "sans profondeur")
      (progn
 (setq NouvAltiH
	(getstring
	  (strcat "\nSpécifiez l'altitude haute <" AltiH "> : ")
	)
 )
 (if (or (= NouvAltiH nil) (= NouvAltiH ""))
   (progn
     (setq
       Opt3 (strcat "sans limitation\\Pen profondeur et "
		    AltiH
		    "m"
	    )
     )
   )
   (progn (setq NouvAltiH (rtos (atof NouvAltiH) 2 2))
	  (vlax-ldata-put "DenisH" "AltiH" NouvAltiH)
	  (setq	Opt3 (strcat "sans limitation\\Pen profondeur et "
			     NouvAltiH
			     "m"
		     )
	  )
   ) ;_ Fin de progn
 ) ;_ Fin de if
 (setq xBasse "----")
 (SetXdataForApplication
   (entlast)
   "Basse"
   (list (cons 1000 xBasse))
 )
 (setq xHaute AltiH)
 (SetXdataForApplication
   (entlast)
   "Haute"
   (list (cons 1000 xHaute))
 )
      )
     ) ;_ Fin de progn	         
     ((= Opt3 "sans hauteur")
      (progn
 (setq NouvAltiB
	(getstring (strcat "\nSpécifiez l'altitude basse <"
			   AltiB
			   "> : "
		   )
	)
 )
 (if (or (= NouvAltiB nil) (= NouvAltiB ""))
   (progn
     (setq
       Opt3 (strcat AltiB "m et sans\\Plimitation en hauteur")
     )
   )
   (progn (setq NouvAltiB (rtos (atof NouvAltiB) 2 2))
	  (vlax-ldata-put "DenisH" "AltiB" NouvAltiB)
	  (setq	Opt3 (strcat NouvAltiB
			     "m et sans\\Plimitation en hauteur"
		     )
	  )
   ) ;_ Fin de progn
 ) ;_ Fin de if
 (setq xBasse AltiB)
 (SetXdataForApplication
   (entlast)
   "Basse"
   (list (cons 1000 xBasse))
 )
 (setq xHaute "----")
 (SetXdataForApplication
   (entlast)
   "Haute"
   (list (cons 1000 xHaute))
 )
      )
     ) ;_ Fin de progn	         
   ) ;_ Fin de cond
   (setq MText	(strcat	"\\H0.75\\o"
		PrefixIncrement
		(itoa ValIncrement)
		"\\o\\P\\H0.35S = "
		xSurf
		"m²\\PNGF : "
		Opt3
	)
   )
   (setq Pt_Deb_Fle
   (getpoint
     "\nSélectionnez le point d'insertion du texte :"
   )
   ) ;_ Fin de setq
   (command "_.-MTEXT"	Pt_Deb_Fle "J" "MC" "H"	1.0 Pt_Deb_Fle MText "")
   (vlax-ldata-put "DenisH" "ValIncrement" (+ ValIncrement 1))
   (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement"))
 ) ;_ Fin de defun
;;; Active le d?but de l'undo
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (setq old_cmdecho (getvar "cmdecho")
       old_osmode  (getvar "osmode")
old_boundary  (getvar "HPISLANDDETECTIONMODE")
 ) ;_ Fin de setq
    (setvar "cmdecho" 0)
   (setvar "HPISLANDDETECTIONMODE" 0)
;;;  (if (not (tblsearch "layer" "MARTY-SURFACES_FRACTIONS"))
    (command "-calque"		   "e"
      "MARTY-SURFACES_FRACTIONS"
      "co"		   "u"
      "255,0,255"	   "MARTY-SURFACES_FRACTIONS"
      ""
     ) ;_ Fin de command
;;;    (command "-calque" "ch" "MARTY-SURFACES_FRACTIONS" "")
;;;  ) ;_ Fin de if
   (setq PrefixIncrement
   (vlax-ldata-get "DenisH" "PrefixIncrement" "1a")
   )
    (if (= PrefixIncrement nil)
      (vlax-ldata-put "DenisH" "PrefixIncrement" "1a")
    ) ;_ Fin de if
   (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement" 1))
    (if (or (= ValIncrement "") (= ValIncrement nil))
      (progn (vlax-ldata-put "DenisH" "ValIncrement" 1)
      (setq ValIncrement (vlax-ldata-get "DenisH" "ValIncrement"))
      ) ;_ Fin de progn
    ) ;_ Fin de if
;;;  (if (not (tblsearch "style" "Surface")) 
;;;    (command "-style" "Surface" "arial.ttf" "" "" "" "" "" "")
;;;  ) ;_ Fin de if
;;;  (command "textstyle" "Surface")
   (while (/= (type Option1) 'LIST)
     (initget "Texte Nombre Contour Polyligne")
     (setq Option1
     (getkword
       (strcat
	 "\nOptions [Texte/Nombre/Contour/Polyligne] <"
	 PrefixIncrement
	 (itoa ValIncrement)
	 "> : "
       ) ;_ Fin de strcat
     ) ;_ Fin de getkword
     ) ;_ Fin de setq
     (cond
((= Option1 "Texte")
 (setq PrefixIncrement
	(getstring
	  (strcat
	    "\nSaisissez le numéro du volume et l'indice du plan <"
	    PrefixIncrement
	    "> : "
	  )
	) ;_ Fin de getstring
 ) ;_ Fin de setq
 (vlax-ldata-put "DenisH" "PrefixIncrement" PrefixIncrement)
)
((= Option1 "Nombre")
 (setq ValIncrement
	(getint
	  "\nSaisissez le numéro de la fraction : "
	)
 ) ;_ Fin de getstring
 (if (or (= ValIncrement "") (= ValIncrement nil))
   (vlax-ldata-put "DenisH" "ValIncrement" 1)
   (vlax-ldata-put "DenisH" "ValIncrement" ValIncrement)
 ) ;_ Fin de if
)
((= Option1 "Contour")
 (while	(princ "\nChoississez un point interne :")
   (command "-contour" "O" "O" "P" "" pause "")
   (EcritText)
 )
)
((= Option1 "Polyligne")
 (while	(princ "\nSaisissez les points du contour :")
   (command
     "_.pline"
     (while (not (zerop (getvar "cmdactive")))
       (command pause)
     ) ;_ Fin de while
   ) ;_ Fin de command
   (EcritText) ;_ Fin de command
 ) ;_ Fin de while
)
(T
 (while	(princ "\nChoississez un point interne :")
   (command "-contour" "O" "O" "P" "" pause "")
   (EcritText)
 )
) ;_ Fin de cond
     ) ;_ Fin de while
   ) ;_ Fin de while
 (setvar "osmode" old_osmode)
 (setvar "cmdecho" old_cmdecho)
  (setvar "HPISLANDDETECTIONMODE" old_boundary)
    (setvar "plinewid" 0)
;;; Fin de l'undo
   (vla-endundomark doc)
    (princ)
 ) ;_ Fin de defun
)

 

Merci à DenisHen encore une fois !

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é