Aller au contenu

Calculs entre du texte et un bloc


DenisHen

Messages recommandés

Bonjour à tous,

 

Voilà, je viens de rentrer de vacances et un super dossier m'attend... Je dois calquler le Z-Radier d'un tampon pour le coller dans un bloc, je m'explique :

 

J'ai une série de bloc "regardasst" dans un DWG, j'ai, proche du point d'insertion de ce bloc, la profondeur de ce regard au format Texte. Dans ce bloc, j'ai plusieurs attributs dont "PROFONDEUR", "Z-TN" et "Z-PROF".

 

Le Z-TN est déjà rempli dans le Bloc "regardasst". Mon problème est de remplir l'attribut "PROFONDEUR" et "Z-PROF" automatiquement, en sélectionnant, par exemple, le bloc puis la profondeur qui lui correspont, et remplir l'attribut "PROFONDEUR" faire le calcul "Z-TN" - "PROFONDEUR" et remplir l'attribut "Z-PROF".

 

En gros, je pense que ça devrait ce dérouler comme ça :

 

1. Sélection du bloc "regardasst" (récupération de "Z-TN"), (je ne sais pas faire)

2. Sélection du texte "profondeur", (je sais faire)

3. Calcul du "Z-PROF", (je sais faire)

4. Renseigner les deux attributs "PROFONDEUR" et "Z-PROF" dans le bloc "regardasst" sélectionné en 1. (je ne sais pas faire)

5. Effacement du texte "profondeur", pour savoir ce qu'il reste à faire... (je sais faire)

 

Mon problème est que j'ai près de mille blocs à traiter... Je ne me vois pas trop le faire à la main ! !

 

Toutes idées ou conseils seront les bienvenues...

 

Je vais commencer un petit LiSP mais je vais vite être bloqué...

 

D'avance merci...

 

Denis...

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

Bonjour x_all, et merci de me répondre,

 

La tolérance serait d'environ 50cm... Et non, les blocs ne sont pas dynamiques...

 

Je pense écrire le LiSP comme ça :

(defun c:DHTamp_Prof_SDDEA (/)
 ;;Sélection du bloc 
 (setq SelBlk (car (entsel "\nSélectionnez le bloc 'regardasst' :")))
 ;;récupération de l'attribut "Z-TN"
 (setq Ztn .......................)
 ;;Sélection du texte contenant la profondeur
 (setq TxtProf (entsel "\nSélectionner la profondeur")) ;)
 ;;Récupération de la profondeur
 (setq TxtProf (car TxtProf))
 ;;Calcul du Z-PROF
 (setq ZProf (- ZTn TxtProf))
 ;;Attribution de la profondeur TxtProf dans l'attribut "PROFONDEUR" du bloc
 (.........)
 ;;Attribution de l'altitude ZProf dans l'attribut Z-PROF du bloc
 (.........)
 ;;Effacement du texte Profondeur
 (.........)
)

 

Mais je bloque déjà...

 

Denis...

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

pour les bloc non dynamique j'avais fait 2 micro fonctions pour lire et modifier les attributs

 

c'est pas très joli mais ça marche

 


;;;Modatt pour numéroter l'attribut nomatt du bloc de handle hd-bloc suivant N
(defun Modatt (hd-bloc nomatt val / lstatt ini-paire)
 (setq lstatt (Att-lst (handent hd-bloc) nomatt))
 (setq	ini-paire  (assoc 1 lstatt)
nouv-paire (cons 1 val)
lstatt	   (subst nouv-paire ini-paire lstatt)
 )
 (entmod lstatt)
 (princ)
)


;;;Att-lst  retourne la liste enget de l'attributs "nomatt" du bloc "entb" dans l'élément  ou nil si non trouvé
;;;;;;; NOTA                                	
;;;;;;; 2  nom de l'attribut                	
;;;;;;; 10 coordonnée du point de l'atrib   	
;;;;;;; 1  valeur attrib                    	
(defun Att-lst (ent nomatt / lst-att dxf-1)
 (while (= lst-att nil)
(setq ent (entnext ent))
(setq dxf-1 (entget ent))
(if	(and (= (cdr (assoc 0 dxf-1)) "ATTRIB")
 	(= (cdr (assoc 2 dxf-1)) nomatt)
)
 	(setq lst-att dxf-1)
)
 )
 lst-att					  ;valeur de retour
)

Lien vers le commentaire
Partager sur d’autres sites

Merci x_all pour ton aide, j'ai donc écris dans mon LiSP ceci :

(defun c:DHTamp_Prof_SDDEA (/)
 ;;Sélection du bloc 
 (setq SelBlk (car (entsel "\nSélectionnez le bloc 'regardasst' :")))
 ;;récupération de l'attribut "Z-TN"
 (while (= Ztn nil)
   (setq dxf-1 (entnext SelBlk))
   (setq dxf-1 (entget dxf-1))
   (if (and (= (cdr (assoc 0 dxf-1)) "ATTRIB")
            (= (cdr (assoc 2 dxf-1)) "Z-TN")
       ) ;_ Fin de and
     (setq Ztn (cdr (assoc 1 dxf-1)))
   ) ;_ Fin de if
 ) ;_ Fin de while
 (princ "-------------\n")
 (princ Ztn)
 ;;
 ;;
.........
) ;_ Fin de defun
;;

Mais Ztn me donne :

Commande: DHTAMP_PROF_SDDEA

Sélectionnez le bloc 'regardasst' :-------------

((-1 . <Nom d'entité: 7ffffb6d050>) (0 . ATTRIB) (330 . <Nom d'entité: 7ffffb1df10>) (5 . DD3D) (100 . AcDbEntity) (67 . 0) (410 . Model) (8 . 0) (100 . AcDbText) (10 775740.0 6.80322e+006 0.0) (40 . 2.5) (1 . 111.82) (50 . 6.27376) (41 . 1.0) (51 . 0.0) (7 . Nom rue) (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . AcDbAttribute) (280 . 0) (2 . Z-TN) (70 . 1) (73 . 0) (74 . 0) (280 . 1))

Sélectionner la profondeur*Annuler*

 

Je n'ai pas bien saisi le truc... D'autant que dans ma Console VLiSP, j'ai bien :

_$ (cdr (assoc 1 dxf-1))

"111.82"

_$

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

En fait, je ne saisi pas bien Ztn... Voici je que j'ai dans ma Console VLiSP :

_$ Ztn

((-1 . <Nom d'entité: 7ffffb6d050>) (0 . "ATTRIB") (330 . <Nom d'entité: 7ffffb1df10>) (5 . "DD3D") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbText") (10 775740.0 6.80322e+006 0.0) (40 . 2.5) (1 . "111.82") (50 . 6.27376) (41 . 1.0) (51 . 0.0) (7 . "Nom rue") (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . "AcDbAttribute") (280 . 0) (2 . "Z-TN") (70 . 1) (73 . 0) (74 . 0) (280 . 1))

_$ (cdr (assoc 1 dxf-1))

"111.82"

_$ (setq Ztn (cdr (assoc 1 dxf-1)))

"111.82"

_$ Ztn

"111.82"

_$

 

Je ne comprend pas pourquoi mon (setq fonctionne dans la Console et pas dans mon LiSP...

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

Merci encore x_all... Ca fonctionne nikel...

 

Mais maintenant, je bute sur l'attribution des deux valeurs de "PROFONDEUR" qui doit être égale à ma variable Prof dans mon LiSP et à "Z-PROF" qui lui est égale à Z-Prof...

 

Le tout dans le même bloc sélectionné avant : "SelBlk"...

 

Là, je n'arrive à rien... Voici mon bout de Code :

(defun c:DHTamp_Prof_SDDEA (/ SelBlk dxf-1 Ztn TxtProf Prof ZProf)
 (princ "\nVersion 2.17\n")
 ;;Sélection du texte contenant la profondeur
 (setq Txt_Prof (car (entsel "\nSélectionnez la profondeur :")))
 (wcmatch (cdr (assoc 0 (setq elst (entget Txt_Prof)))) "*")
 (setq Prof (atof (cdr (assoc 1 elst))))
 ;;Sélection du bloc 
 (setq SelBlk (car (entsel "\nSélectionnez le bloc 'regardasst' :")))
 ;;récupération de l'attribut "Z-TN"
 (while (= Ztn nil)
   (setq SelBlk (entnext SelBlk))
   (setq dxf-1 (entget SelBlk))
   (if (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "Z-TN"))
     (setq Ztn (cdr (assoc 1 dxf-1)))
   ) ;_ Fin de if
 ) ;_ Fin de while
 (setq Ztn (atof Ztn))
 ;;Calcul du Z-PROF
 (setq ZProf (- ZTn Prof))
 (princ (strcat "\nZ-PROF=" (rtos ZProf)))
 ;;
 ;;--------------------------------------------------------------C'est là que je me perd...
 ;;Attribution de Variables dans deux étiquettes PROFONDEUR et Z-PROF du bloc sélectionné
 (foreach dxf-1 (setq dxf-1 (entget SelBlk))
   (cond (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "PROFONDEUR"))
         (Mettre ICI la valeur Prof de l 'étiquette PROFONDEUR)
   ) ;_ Fin de cond
   (cond (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "Z-PROF"))
         (Mettre ICI la valeur ZProf de l 'étiquette Z-PROF)
   ) ;_ Fin de cond
 ) ;_ Fin de while
) ;_ 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

pourquoi tu te sers pas des 2 fonctions que j'avais mis?

 

si tu recopie le code des 2 fonctions la fin tu devrais pouvoir faire un truc comme

(setq hd (cdr (assoc 5 (entget SelBlk))))
(Modatt (hd "PROFONDEUR" valeur-de-prof)
(Modatt (hd "z-PROF" valeur-de-z-prof)

 

le assoc 5 renvoyant le handle du bloc. (j'ai pas testé mais ça devrai pas être loin du compte)

 

Ps les 2 valeurs doivent être des string

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, c'est plus court avec tes deux macros...

 

J'ai donc écris (enfin copier / coller / bidouiller) ceci :

(defun c:DHTamp_Prof_SDDEA (/ SelBlk dxf-1 Ztn TxtProf Prof ZProf hd)
 (princ "\nVersion 2.19\n")
 ;;Sélection du texte contenant la profondeur
 (setq Txt_Prof (car (entsel "\nSélectionnez la profondeur :")))
 (wcmatch (cdr (assoc 0 (setq elst (entget Txt_Prof)))) "*")
 (setq Prof (atof (cdr (assoc 1 elst))))
 ;;Sélection du bloc 
 (setq SelBlk (car (entsel "\nSélectionnez le bloc 'regardasst' :")))
 (setq hd (cdr (assoc 5 (entget SelBlk))))
 ;;récupération de l'attribut "Z-TN"
 (while (= Ztn nil)
   (setq SelBlk (entnext SelBlk))
   (setq dxf-1 (entget SelBlk))
   (if (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "Z-TN"))
     (setq Ztn (cdr (assoc 1 dxf-1)))
   ) ;_ Fin de if
 ) ;_ Fin de while
 (setq Ztn (atof Ztn))

 ;;Calcul du Z-PROF
 (setq ZProf (- ZTn Prof))
 (setq ZProf (rtos ZProf))
 (setq Prof (rtos Prof))
 ;;
 (Modatt (hd "PROFONDEUR" Prof))
 (Modatt (hd "Z-PROF" ZProf))
 ;;
) ;_ Fin de defun

 

Ce qu'AutoCAD me répond :

Commande: DHTAMP_PROF_SDDEA

 

Version 2.19

 

Sélectionnez la profondeur :

Sélectionnez le bloc 'regardasst' :; erreur: fonction incorrecte: "DD3D"

; redéfinir après erreur

 

Commande:

 

Et là, je suis un peu dépassé...

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

En fait, chose étonnante, j'ai positionné des drapeaux et mon code est :

(defun c:DHTamp_Prof_SDDEA (/ SelBlk dxf-1 Ztn TxtProf Prof ZProf hd)
 (princ "\nVersion 2.25 \n")
 ;;Sélection du texte contenant la profondeur
 (setq Txt_Prof (car (entsel "\nSélectionnez la profondeur :")))
 (wcmatch (cdr (assoc 0 (setq elst (entget Txt_Prof)))) "*")
 (setq Prof (atof (cdr (assoc 1 elst))))
 ;;Sélection du bloc 
 (setq SelBlk (car (entsel "\nSélectionnez le bloc 'regardasst' :")))
 (setq hd (cdr (assoc 5 (entget SelBlk))))
 ;;récupération de l'attribut "Z-TN"
 (while (= Ztn nil)
   (setq SelBlk (entnext SelBlk))
   (setq dxf-1 (entget SelBlk))
   (if (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "Z-TN"))
     (setq Ztn (cdr (assoc 1 dxf-1)))
   ) ;_ Fin de if
 ) ;_ Fin de while
 (setq Ztn (atof Ztn))
 ;;Calcul du Z-PROF
 (setq ZProf (- ZTn Prof))
 (setq ZProf (rtos ZProf))
 (setq Prof (rtos Prof))
 ;;
 (princ "\nDrapeau 01") ;;-----------------------------------Premier drapeau
 (Modatt (hd "PROFONDEUR" Prof))
 (princ "\nDrapeau 02")
 (Modatt (hd "Z-PROF" ZProf))
 (princ "\nDrapeau 03")
 ;;
) ;_ Fin de defun
;;;Modatt pour numéroter l'attribut nomatt du bloc de handle hd-bloc suivant N
(defun Modatt (hd-bloc nomatt val / lstatt ini-paire)
 (princ "\nDrapeau 01-1") ;;-----------------------------Second drapeau, logiquement
 (setq lstatt (Att-lst (handent hd-bloc) nomatt))
 (princ "\nDrapeau 01-2")
 (setq ini-paire  (assoc 1 lstatt)
       nouv-paire (cons 1 val)
       lstatt     (subst nouv-paire ini-paire lstatt)
 ) ;_ Fin de setq
 (princ "\nDrapeau 01-3")
 (entmod lstatt)
 (princ)
) ;_ Fin de defun
;;;Att-lst  retourne la liste enget de l'attributs "nomatt" du bloc "entb" dans l'élément  ou nil si non trouvé
;;;;;;; NOTA                                    
;;;;;;; 2  nom de l'attribut                    
;;;;;;; 10 coordonnée du point de l'atrib       
;;;;;;; 1  valeur attrib                        
(defun Att-lst (ent nomatt / lst-att dxf-D)
 (princ "\nDrapeau 02-1")
 (while (= lst-att nil)
   (princ "\nDrapeau 02-2")
   (setq ent (entnext ent))
   (princ "\nDrapeau 02-3")
   (setq dxf-D (entget ent))
   (princ "\nDrapeau 02-4")
   (if (and (= (cdr (assoc 0 dxf-D)) "ATTRIB") (= (cdr (assoc 2 dxf-D)) nomatt))
     (setq lst-att dxf-D)
   ) ;_ Fin de if
   (princ "\nDrapeau 02-5")
 ) ;_ Fin de while
 ;; valeur de retour
 lst-att
) ;_ Fin de defun

 

Tandis qu'AutoCAD ne passe même pas par le drapeau 01-1.. Curieux, non ?

Commande: DHTAMP_PROF_SDDEA

Version 2.25

 

Sélectionnez la profondeur :

Sélectionnez le bloc 'regardasst' :

Drapeau 01; erreur: fonction incorrecte: "7B69"

; redéfinir après erreur

 

Commande:

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

Bon, j'ai changé mon fusil d'épaule et j'ai écris un code plus à mon "niveau", en bref, celui-là, je le "comprend".

 

Enfin, pas tellement puisqu'il ne fait pas ce que je veux... Je m'explique, ce code rempli bien l'attribut "Z-PROF" de mon dernier bloc sélectionné, mais ne rempli pas l'attribut "PROFONDEUR" de ce même bloc...

 

Voici le code :

(defun c:DHTamp_Prof_SDDEA (/ SelBlk dxf-1 Ztn TxtProf Prof ZProf hd)
 (princ "\nVersion 2.32\n")
 ;;Sélection du texte contenant la profondeur
 (setq Txt_Prof (car (entsel "\nSélectionnez la profondeur :")))
 (wcmatch (cdr (assoc 0 (setq elst (entget Txt_Prof)))) "*")
 (setq Prof (atof (cdr (assoc 1 elst))))
 ;;Sélection du bloc 
 (setq SelBlk (car (entsel "\nSélectionnez le bloc 'regardasst' :")))
 (setq hd (cdr (assoc 5 (entget SelBlk))))
 ;;récupération de l'attribut "Z-TN"
 (while (= Ztn nil)
   (setq SelBlk (entnext SelBlk))
   (setq dxf-1 (entget SelBlk))
   (if (and (= (cdr (assoc 0 dxf-1)) "ATTRIB") (= (cdr (assoc 2 dxf-1)) "Z-TN"))
     (setq Ztn (cdr (assoc 1 dxf-1)))
   ) ;_ Fin de if
 ) ;_ Fin de while
 (setq Ztn (atof Ztn))
 ;;Calcul du Z-PROF
 (setq ZProf (- ZTn Prof))
 (setq ZProf (rtos ZProf))
 (setq Prof (rtos Prof))
 ;;
 ;;
 ;;
 (setq att dxf-1)
 (while (= (cdr (assoc 0 att)) "ATTRIB")
   ;(princ "\--")
   (if (= (cdr (assoc 2 att)) "Z-PROF") ;;  ---------------------Ici, ca fonctionne#####################
     (progn (setq att (subst (cons 1 ZProf) (assoc 1 att) att)) (entmod att))
   ) ;_ Fin de if
   (if (= (cdr (assoc 2 att)) "PROFONDEUR") ;; ------------------Mais pas ici###########################
     (progn (setq att (subst (cons 1 Prof) (assoc 1 att) att)) (entmod att))
   ) ;_ Fin de if
   (setq att (entget (entnext (cdr (assoc -1 att)))))
 ) ;_ Fin de while

) ;_ Fin de defun

 

Si quelqu'un a un indice ou un conseil...

 

Denis...

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

de retour...

 

dans ton message 10 tu écrit

(Modatt (hd "PROFONDEUR" Prof))

(Modatt (hd "Z-PROF" ZProf))

 

hd n'est pas une fonction, mais le paramètre

il fallait faire

(Modatt hd "PROFONDEUR" Prof)

(Modatt hd "Z-PROF" ZProf)

 

c'est moi qui t'ai enduis d'erreur... je devais pas être réveillé tout à l'heure... désolé.

 

définir ces fonctions est largement à ta portée je te conseille la lecture (relecture) de ce post.

http://cadxp.com/topic/28642-arguments-et-variables/

Lien vers le commentaire
Partager sur d’autres sites

Merci x_all de me répondre...

 

Je devais aussi être dans les nuages... On n'appelle pas une fonction avec des parenthèses à l'intérieur...

 

Je me suis demandé une seconde pourquoi il n'y avait qu'une parenthèse "fermante" dans (modatt... Mais je n'ai pas cherché plus loin... J'aurais du aussi faire gaffe, mais les gaffes, c'est mon domaine de prédilection... ;-)

 

Je corrigerais demain...

 

Merci encore...

 

Denis...

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

Effectivement, ça fonctionne beaucoup plus mieux comme-ça...

 

Merci encore...

 

Denis...

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

A bien y réfléchir, j'ai oublié un petit détail qui a son importance...

 

Parfois, ce n'est pas une hauteur que je sélectionne, c'est un commentaire...

 

Question, Comment faire pour savoir si le texte que je sélectionne est un nombre décimal ou un texte...?

 

Car si c'est un nombre, je fais un calcul, si c'est un texte, je ne fais pas de calcul et je renseigne l'attribut "OBSERVATION" dans le bloc "regardasst"...

 

Denis...

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

Bonjour,

 

Question, Comment faire pour savoir si le texte que je sélectionne est un nombre décimal ou un texte...?

 

Quelque chose comme cela?

_$ (numberp (read (vl-string-translate "," "." "+4,256")))
T
_$ (numberp (read (vl-string-translate "," "." "-40.27")))
T
_$ (numberp (read (vl-string-translate "," "." "toto")))
nil

 

A+

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Merci à tous pour vos aides, finalement, j'ai choisi une autre technique :

(if (/= (atof Prof) 0)

 

Encore merci...

 

Denis...

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

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é