DenisHen Posté(e) le 3 août 2015 Posté(e) le 3 août 2015 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)
x_all Posté(e) le 3 août 2015 Posté(e) le 3 août 2015 le soucis ça va être j'ai, proche du point d'insertion de ce bloc ça serai sur le point d'insertion, ce serai plus facile. as tu au moins une tolérance? autre précision, les blocs en questions sont ils dynamiques? auquel cas il faut passer en Vlisp.. quelques trucs sur autocad
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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)
x_all Posté(e) le 3 août 2015 Posté(e) le 3 août 2015 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 ) quelques trucs sur autocad
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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_SDDEASé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)
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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)
x_all Posté(e) le 3 août 2015 Posté(e) le 3 août 2015 je crois que c'est peut etre une question de variables pas initialisé... quand tu testes peut être met un (gc) au tout début car en écrivant (defun c:DHTamp_Prof_SDDEA (/Ztn SelBlk dxf-1 )ça à l'air de marcher quelques trucs sur autocad
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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)
x_all Posté(e) le 3 août 2015 Posté(e) le 3 août 2015 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 quelques trucs sur autocad
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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)
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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_SDDEAVersion 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)
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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)
x_all Posté(e) le 3 août 2015 Posté(e) le 3 août 2015 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ètreil 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/ quelques trucs sur autocad
DenisHen Posté(e) le 3 août 2015 Auteur Posté(e) le 3 août 2015 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)
DenisHen Posté(e) le 4 août 2015 Auteur Posté(e) le 4 août 2015 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)
DenisHen Posté(e) le 4 août 2015 Auteur Posté(e) le 4 août 2015 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)
x_all Posté(e) le 4 août 2015 Posté(e) le 4 août 2015 tu peu tester le type en faisant (if (= (type *ta variable*) 'REAL) quelques trucs sur autocad
VDH-Bruno Posté(e) le 4 août 2015 Posté(e) le 4 août 2015 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
DenisHen Posté(e) le 4 août 2015 Auteur Posté(e) le 4 août 2015 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)
VDH-Bruno Posté(e) le 4 août 2015 Posté(e) le 4 août 2015 Oui c'est très bon, attention toute fois aux expressions alphanumériques: _$ (setq x (atof "2xxx")) 2.0 _$ (type x) REAL c'est pourquoi j'ai préféré read à atof_$ (setq x (read "2xxx")) 2XXX _$ (type x) SYM A+ Apprendre => Prendre => Rendre
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