DenisHen Posté(e) le 17 mai 2016 Partager Posté(e) le 17 mai 2016 Bonjour à tous, Voilà, j'ai développé aujourd'hui, un petit LISP qui lit dans un fichier (.lst) et fusionne les calques décrits dans ce fichier. Voici le contenu du fichier .lst :1COMM;CAD_LIM_COMMUN;Amorces des limites communales1DEPART;CAD_LIM_DEPART;Amorces des limites départementales1ETAT;CAD_LIM_ETAT;Amorces des limites étatiques AncienCalque ; NouveauCalque ; Commentaire (sans espace autour des ";") Au lancement du LISP (commande "ImpLstCalque"), il demande le fichier .lst, ensuite, il fucionne "AncienCalque" vers "NouveauCalque". Il ignore le commentaire. Si quelqu'un a des questions... Fichier LISP :(defun c:ImpLstCalque ( / Fichier File Lign LignList) (princ "\n***** Importation des calques d'un fichier LST *****") (setq Fichier (getfiled "Sélectionner un fichier de correspondance des calques" "" "Lst;*" 0)) (if (/= (findfile Fichier) "") (progn (setq File (open Fichier "r")) (while (setq Lign (read-line File)) (cond ((/= (vl-string-search ";" Lign) nil) (setq LignList (str2lst Lign ";")) (if (tblsearch "layer" (nth 0 LignList)) (progn (command "-calque" "n" (nth 1 LignList) "") (command "fuscalques" "n" (nth 0 LignList) "" "n" (nth 1 LignList) "o") ) ;_ Fin de progn ) ;_ Fin de if ) ) ;_ Fin de cond ) ;_ Fin de while ) ;_ Fin de progn ) ;_ Fin de if ) ;_ Fin de defun Le fichier ZIP comporte un exemple de fichier .lst... Denis...ImpLstCalque.zip 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 More sharing options...
Patrick_35 Posté(e) le 17 mai 2016 Partager Posté(e) le 17 mai 2016 Salut Merci pour le partage :D Tu pourrais aussi avoir un lisp qui créé le fichier .lst un dessin existant (avec une sélection des calques). @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 17 mai 2016 Auteur Partager Posté(e) le 17 mai 2016 Salut Patrick_35 J'y ai pensé, mais vu qu'un simple copier/coller peut le faire... Et que c'est plus compliquer que ça en a l'air, surtout pour moi. J'avais pensé à la commande "GetLayers" de (gile) mais elle ne veut pas d'un trop grand nombre de calques... 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 More sharing options...
Patrick_35 Posté(e) le 17 mai 2016 Partager Posté(e) le 17 mai 2016 J'y ai pensé, mais vu qu'un simple copier/coller peut le faire...Ben, le problème est la structure de ton fichier .lstC'est toi qui l'a fait, donc le copier/coller est facile pour toi. Et que c'est plus compliquer que ça en a l'air, surtout pour moi. J'avais pensé à la commande "GetLayers" de (gile) mais elle ne veut pas d'un trop grand nombre de calques...Avec une liste et sélection multiple comme dans ONG, GEF, SYN, EXL, etc...Un exemple avec MyMultiLists @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 17 mai 2016 Auteur Partager Posté(e) le 17 mai 2016 Ben, le problème est la structure de ton fichier .lstC'est toi qui l'a fait, donc le copier/coller est facile pour toi.Pas nécessairement, une sélection des calques dans le gestionnaire, puis, coller cette liste dans un tableur et sauvegarde avec ";" comme séparateur... Mais ça ne donne qu'une liste, anciens ou nouveaux calques... Il faut de toutes façons "bidouiller" dans le fichier .lst... Avec une liste et sélection multiple comme dans ONG, GEF, SYN, EXL, etc...Un exemple avec MyMultiListsJe pense que tu me surestimes... Je prend ça pour un compliment... ;) Mais je vais tout de même faire un tour sur MyMultiLists... 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 More sharing options...
DenisHen Posté(e) le 17 mai 2016 Auteur Partager Posté(e) le 17 mai 2016 Re, Je relève le "défi"... Bon, pour faire une sélection de calque, je me suis inspiré de MyMultiLists... Et mon DCL donne ça :SelectCalque.dcl //--------------------------------------------------------------------------------------------------------- // SelectCalque //--------------------------------------------------------------------------------------------------------- SelectCalque : dialog { key = "Title"; label = ""; : boxed_column { label = "Sélection multiple"; : list_box { multiple_select = true; key = "List1";//Value1$ from lsp file height = 40; fixed_height = true; width = 50; fixed_width = true; } spacer; } spacer; ok_only;}//SelectCalqueEt mon code est ceci :(defun c:SelectCalque (/ Dcl_Id% List1@ Return# Value1$) (princ "\nSelectCalque") (princ) ; Set Default Variables (if (not *SelectCalque@) ;Unique global variable name to store dialog info (setq *SelectCalque@ (list nil "" "")) ) ;if (setq Value1$ "") (while (setq lay (tblnext "LAYER" (not lay))) (if (not (wcmatch (cdr (assoc 2 lay)) "*|*")) (setq List1@ (cons (cdr (assoc 2 lay)) List1@)) ) ;_ Fin de if ) ;_ Fin de while (setq List1@ (vl-sort List1@ '<)) (setq Dcl_Id% (load_dialog "SelectCalque.dcl")) (new_dialog "SelectCalque" Dcl_Id%) ; Set Dialog Initial Settings (set_tile "Title" "Sélection de calques") (set_tile_list "List1" List1@ Value1$) ;*Included ; Dialog Actions (action_tile "List1" "(set_list_value \"List1@\" \"Value1$\")") ;*Included (setq Return# (start_dialog)) ; Unload Dialog (unload_dialog Dcl_Id%) (setq *SelectCalque@ (list nil Value1$)) (princ) ) ;_ Fin de defun Le code s'arrête avant de remplir la fenêtre dans le DCL... Je n'arrive pas à savoir pourquoi... Mais comme tout est en anglais sur le site, je ne saisi pas tout... :unsure: 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 More sharing options...
Patrick_35 Posté(e) le 17 mai 2016 Partager Posté(e) le 17 mai 2016 Allez, c'est mon jour La routine (defun bda(titre / dcl ele fil lay lst nom pos tmp res txt val) (vlax-for ele (vla-get-layers doc) (or (wcmatch (setq nom (vla-get-name ele)) "*|*") (setq lay (cons nom lay)) ) ) (setq tmp (vl-filename-mktemp "bda" nil ".dcl") fil (open tmp "w") lay (acad_strlsort lay) ) (foreach txt '( "bda : dialog {" " key = \"titre\";" " alignment = centered;" " is_cancel = true;" " allow_accept = true;" " : list_box {label = \"Calques\"; key=\"lay\"; height = 30; width = 100; multiple_select=true;}" " spacer;" " ok_cancel;" "}" ) (write-line txt fil) ) (close fil) (setq dcl (load_dialog tmp) pos "0" ) (new_dialog "bda" dcl "") (start_list "lay") (mapcar 'add_list lay) (end_list) (set_tile "titre" titre) (set_tile "lay" "0") (action_tile "lay" "(setq pos $value)") (action_tile "cancel" "(done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (setq res (start_dialog)) (unload_dialog dcl) (vl-file-delete tmp) (and (eq res 1) (while (not (eq pos "")) (setq val (read pos) lst (cons (nth val lay) lst) pos (substr pos (+ 2 (strlen (itoa val))) (strlen pos)) ) ) ) (reverse lst) ) Et pour appeler la fonction (setq doc (vla-get-activedocument (vlax-get-acad-object))) (setq mes_calques (bda "Ma liste de calques by DenisH")) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Patrick_35 Posté(e) le 17 mai 2016 Partager Posté(e) le 17 mai 2016 Je viens de voir ta réponse après avec posté mon code. L'erreur vient que tu ne remplis pas la liste avec add_list Continue d'abord avec ton dcl avant de regarder ce que j'ai fait. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 17 mai 2016 Auteur Partager Posté(e) le 17 mai 2016 Merci de ton aide Patrick_35. Effectivement, je ne sais pas quand ma fenêtre se remplie... Mais je trouverais... ;) Par contre, "set_tile_list" n'apparait pas en bleu dans ma fenêtre Lisp... Ce qui sous-entend qu'il ne connait pas cette 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 More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 D'autre part, le lisp en lien "MyMultiLists" ne fonctionne pas chez moi...MyMultiLists; erreur: no function definition: SET_TILE_LIST 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 More sharing options...
(gile) Posté(e) le 18 mai 2016 Partager Posté(e) le 18 mai 2016 Salut, Le fichier MyDialog.lsp contient un bibliothèque de routines (à la fin du fichier) où est définie set_tile_list. ;------------------------------------------------------------------------------- ; set_tile_list - Sets a dialog popup_list or list_box tile to a list ; Arguments: 3 ; KeyName$ = Key name of tile ; ListName@ = The list to set in tile ; Selected = An item in the ListNames@ or a list of items selected ; Syntax: (set_tile_list "TileName" '("A" "B" "C") "B") ; (set_tile_list "TileName" '("A" "B" "C") '("A" "C")) ; Returns: Sets Selected items in dialog popup_list or list_box tiles. ;------------------------------------------------------------------------------- (defun set_tile_list (KeyName$ ListName@ Selected / Item) (start_list KeyName$ 3) (mapcar 'add_list ListName@) (end_list) (foreach Item (if (listp Selected) Selected (list Selected)) (if (member Item ListName@) (set_tile KeyName$ (itoa (- (length ListName@) (length (member Item ListName@))))) );if );foreach );defun set_tile_list ;------------------------------------------------------------------------------- Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Salut (gile)... Eh ben voilà, ma fenêtre se rempli... Mais dès que je sélectionne un calque, ça plante...; erreur: no function definition: SET_LIST_VALUE EDIT : même problème qu'avec set_tile_list... C'est corrigé... 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 More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Par contre, à la sortie du DCL, le contenu de Value1$ est égale à la première sélection dans la fenêtre, et non la liste des calques sélectionnés...SELECTCALQUE (nil 1ETAT)EDIT : il fallait un "set_multilist_value" à la sortie du DCL... 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 More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Petit problème... Lorsque je lance plusieurs fois ma commande, l'ancienne liste existe encore, j'ai donc les calques en double, triple... Comment "vider" la fenêtre contenant la liste des calques avant de la remplir à nouveau ? Edit : En vidant List1@ avant... 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 More sharing options...
(gile) Posté(e) le 18 mai 2016 Partager Posté(e) le 18 mai 2016 Lorsque je lance plusieurs fois ma commande, l'ancienne liste existe encore,C'est pour ça qu'il faut déclarer les variables en local. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Effectivement, c'est un de mes gros défauts... Parmi tant d'autres... ;) Merci (gile)... 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 More sharing options...
Patrick_35 Posté(e) le 18 mai 2016 Partager Posté(e) le 18 mai 2016 Salut Maintenant que tu as gouté au DCL, je pense que tu vas persévérer dans cette voie :D @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Salut, J'avais essayé il y a longtemps OpenDCL... Résultat : rien pigé ! ! ! J'ai juste repéré qu'il y a trois façons de faire une DCL : 1. directement dans le Lisp,2. en créant un fichier DCL (qui revient un peu au 1),3. avec OpenDCL : vachement plus complexe, à mes yeux... En plus, ça fait des .odcl et je ne sais pas quoi faire avec... Je vais revoir tout ça, car tu as raison, ça ouvre beaucoup de possibilités et surtout, une interface entre le Lisp et l'utilisateur... Bon, j'ai un peu de temps, j'y retourne, j'ai une petite routine de "configuration" que j'aimerais faire avec une DCL... Merci encore pour ton aide... 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 More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Bon, j'ai refais un lisp qui n'utilisait que la ligne de commande AutoCAD par un autre qui utilise une DCL, voici mon Lisp :(defun c:ConfigPTRL (/ *ConfigPTRL@ Dcl_Id% Toggle1$ Toggle2$ Toggle3$ Toggle4$ Toggle5$ Toggle6$ Edit1$) (princ "\nDéveloppé par Denis H.") (if (not *ConfigPTRL@) ;Unique global variable name to store dialog info (setq *ConfigPTRL@ (list nil "" "" "")) ) ;_ Fin de if (if (= (vlax-ldata-get "DenisH" "EtiqPTRL_PTRL") "Oui") (setq Toggle1$ "1") (setq Toggle1$ "0") ) ;_ Fin de if (if (= (vlax-ldata-get "DenisH" "EtiqPTRL_Prof") "Oui") (setq Toggle2$ "1") (setq Toggle2$ "0") ) ;_ Fin de if (if (= (vlax-ldata-get "DenisH" "EtiqPTRL_Zgs") "Oui") (setq Toggle3$ "1") (setq Toggle3$ "0") ) ;_ Fin de if (if (= (vlax-ldata-get "DenisH" "EtiqPTRL_Efface") "Oui") (setq Toggle4$ "1") (setq Toggle4$ "0") ) ;_ Fin de if (if (= (vlax-ldata-get "DenisH" "EtiqPTRL_Calcul") "Oui") (setq Toggle5$ "1") (setq Toggle5$ "0") ) ;_ Fin de if (if (= (vlax-ldata-get "DenisH" "EtiqPTRL_Cste") nil) (setq Edit1$ "0") (setq Edit1$ (vlax-ldata-get "DenisH" "EtiqPTRL_Cste")) ) ;_ Fin de if (if (= (vlax-ldata-get "DenisH" "EtiqPTRL_Zr") "Oui") (setq Toggle6$ "1") (setq Toggle6$ "0") ) ;_ Fin de if (setq Dcl_Id% (load_dialog "ConfigPTRL.dcl")) (new_dialog "ConfigPTRL" Dcl_Id%) ;;; (set_tile "Title" " Configuration des PTRL") (set_tile "Toggle1" Toggle1$) (set_tile "Toggle2" Toggle2$) (set_tile "Toggle3" Toggle3$) (set_tile "Toggle4" Toggle4$) (set_tile "Toggle5" Toggle5$) (set_tile "Toggle6" Toggle6$) (set_tile "Edit1" Edit1$) ; Dialog Actions (action_tile "Toggle1" "(setq Toggle1$ $value)") (action_tile "Toggle2" "(setq Toggle2$ $value)") (action_tile "Toggle3" "(setq Toggle3$ $value)") (action_tile "Toggle4" "(setq Toggle4$ $value)") (action_tile "Toggle5" "(setq Toggle5$ $value)") (action_tile "Toggle6" "(setq Toggle6$ $value)") (action_tile "Edit1" "(check_editreal \"Edit1$\")") (setq Return# (start_dialog)) (setq *ConfigPTRL@ (list nil Toggle1$ Toggle2$ Toggle3$ Toggle4$ Toggle5$ Toggle6$ Edit1$)) (unload_dialog Dcl_Id%) (if (= (nth 1 *ConfigPTRL@) "0") (vlax-ldata-put "DenisH" "EtiqPTRL_PTRL" "Non") (vlax-ldata-put "DenisH" "EtiqPTRL_PTRL" "Oui") ) ;_ Fin de if (if (= (nth 2 *ConfigPTRL@) "0") (vlax-ldata-put "DenisH" "EtiqPTRL_Prof" "Non") (vlax-ldata-put "DenisH" "EtiqPTRL_Prof" "Oui") ) ;_ Fin de if (if (= (nth 3 *ConfigPTRL@) "0") (vlax-ldata-put "DenisH" "EtiqPTRL_Zgs" "Non") (vlax-ldata-put "DenisH" "EtiqPTRL_Zgs" "Oui") ) ;_ Fin de if (if (= (nth 4 *ConfigPTRL@) "0") (vlax-ldata-put "DenisH" "EtiqPTRL_Efface" "Non") (vlax-ldata-put "DenisH" "EtiqPTRL_Efface" "Oui") ) ;_ Fin de if (if (= (nth 5 *ConfigPTRL@) "0") (vlax-ldata-put "DenisH" "EtiqPTRL_Calcul" "Non") (vlax-ldata-put "DenisH" "EtiqPTRL_Calcul" "Oui") ) ;_ Fin de if (if (= (nth 6 *ConfigPTRL@) "0") (vlax-ldata-put "DenisH" "EtiqPTRL_Zr" "Non") (vlax-ldata-put "DenisH" "EtiqPTRL_Zr" "Oui") ) ;_ Fin de if (vlax-ldata-put "DenisH" "EtiqPTRL_Cste" (atof (nth 7 *ConfigPTRL@))) ;; Affichage (alert (strcat "Configuration actuelle : \n\tBloc PTRL \t= " (vlax-ldata-get "DenisH" "EtiqPTRL_PTRL") "\n\tTexte Zgs \t\t= " (vlax-ldata-get "DenisH" "EtiqPTRL_Zgs") "\n\tTexte Profondeur \t= " (vlax-ldata-get "DenisH" "EtiqPTRL_Prof") "\n\tConstante ajoutée \t= " (rtos (vlax-ldata-get "DenisH" "EtiqPTRL_Prof_Cste") 2 2) "\n\tTexte Z réseau \t= " (vlax-ldata-get "DenisH" "EtiqPTRL_Zr") "\n\tCalcule du Zgs \t=" (vlax-ldata-get "DenisH" "EtiqPTRL_Calcul") ) ;_ Fin de strcat ) ;_ Fin de alert (princ) ) ;_ Fin de defunEt mon DCL : ConfigPTRL : dialog { key = "Title"; label = ""; spacer; : boxed_column { label = "Choix :"; width = 30; fixed_width = true; : toggle { key = "Toggle1"; label = "Placer des PTRL"; } : toggle { key = "Toggle2"; label = "Placer les profondeurs"; } : toggle { key = "Toggle3"; label = "Placer les Zgs"; } : toggle { key = "Toggle4"; label = "Effacer les anciens textes"; } : toggle { key = "Toggle5"; label = "Calcul du Zgs"; } : toggle { key = "Toggle6"; label = "Placer Zréseau"; } spacer; } : row { fixed_width = true; : column { width = 18; fixed_width = true; spacer; : text { key = "Text1"; label = "Constante à ajouter au Z :"; } } : edit_box { key = "Edit1"; edit_width = 6.42; fixed_width = true; } } spacer; ok_only; } Mon code affiche bien ma DCL mais stop après... Je n'arrive pas à savoir pourquoi... Biensur, j'utilise MyDialog comme l'a si bien remarqué (gile). Si quelqu'un a une astuce, un conseil ou une idée, je suis preneur... 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 More sharing options...
Patrick_35 Posté(e) le 18 mai 2016 Partager Posté(e) le 18 mai 2016 Je te laisse méditer (vlax-ldata-put "DenisH" "EtiqPTRL_Cste" (atof (nth 7 *ConfigPTRL@)))avec(rtos (vlax-ldata-get "DenisH" "EtiqPTRL_Prof_Cste") 2 2) Et plus tard, tu auras une autre erreur avec(setq Edit1$ (vlax-ldata-get "DenisH" "EtiqPTRL_Cste")) ... (set_tile "Edit1" Edit1$) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Merci Patrick_35 pour ton aide, encore une fois... ;) J'ai corrigé mon Lisp, maintenant, (vlax-ldata-... "DenisH" "EtiqPTRL_Cste" sera toujour un réel. Quant à ta deuxième remarque, je ne saisi pas, Edit1$ est un string dans la DCL ? J'ai pourtant un ...check_editreal.... 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 More sharing options...
Patrick_35 Posté(e) le 18 mai 2016 Partager Posté(e) le 18 mai 2016 Quant à ta deuxième remarque, je ne saisi pas, Edit1$ est un string dans la DCL ?Oui, mais ta valeur avec le vlax-ldata-get est un réel. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 18 mai 2016 Auteur Partager Posté(e) le 18 mai 2016 Oui, mais ta valeur avec le vlax-ldata-get est un réel.Ben alors à quoi sert le check_editreal ? Je ne comprend pas... Ce n'est pas pour contrôler la saisi ? Car il faut que ça reste un réel... 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 More sharing options...
Patrick_35 Posté(e) le 18 mai 2016 Partager Posté(e) le 18 mai 2016 D'après ce que j'ai lu, check_editreal vérifie si la valeur saisie est un réel Quand tu utilises un set_tile, l'argument est la clé + un string.Toi, tu fais clé + réel dans le set_tile.Il faut juste faire la conversion pour l'affichage. Tu peux conserver ton réel. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824 Lien vers le commentaire Partager sur d’autres sites More sharing options...
DenisHen Posté(e) le 19 mai 2016 Auteur Partager Posté(e) le 19 mai 2016 Bonjour Patrick_35. Juste une petite question : si check_editreal vérifie que le valeur saisie est bien un réel, que renvoi Texte1$, un string ou un réel ? Je pense que le mieux serait que cette variable soit toujours un string, sauf lors des calculs. 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 More sharing options...
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