fabcad Posté(e) le 20 juin 2022 Posté(e) le 20 juin 2022 Bonjour, Voici l'extrait issu du fichier dcl d'origine : action = "(setq Cou \"_YELLOW\")"; et voici l'extrait erroné que je voudrais mettre dans la sous-fonction d’écriture du fichier dcl temporaire : " action = "(setq Cou \"_YELLOW\")";" Je sèche sur les guillemets nécessaires au write-line et ceux nécessaires à la fonction lisp. De l'aide serait la bienvenue, Fabcad Le Rennais Métropolitain COULEUR3.DCL COULEUR3.LSP COULEUR3_DCL.LSP
(gile) Posté(e) le 20 juin 2022 Posté(e) le 20 juin 2022 " action = \"(setq Cou \\\"_YELLOW\\\")\";" Un caractère d'échappement (\) devant chaque guillemet (") et chaque caractère d'échappement (\). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Luna Posté(e) le 20 juin 2022 Posté(e) le 20 juin 2022 Coucou, Je pense qu'il serait plus sage de gérer l'action via la fonction (action_tile), donc en dehors de l'écriture du fichier DCL évitant ainsi ces écritures un peu barbares et sources d'erreurs ^^" Perso je l'intègre toujours au bouton "accept" pour définir les variables, comme ci-dessous : ;Fichier: COULEUR1.LSP ; ;;;--------------------------------------------------------------- ;;; ;;; Creation de la boite de dialogue et retour du fichier cree. ;;; ;;;--------------------------------------------------------------- (defun writeDCL () (setq filename (vl-filename-mktemp "tmp.dcl") file (open filename "W") ) (write-line (strcat "Couleur : dialog {" " label = \"Modifier la couleur\";" " : text {" " label = \"Nouvelle couleur pour la derniere entite\";" " }" " : radio_row {" " key = \"Boutons\";" " : radio_button {" " label = \"Rouge\";" " key = \"_RED\";" " }" " : radio_button {" " label = \"Bleu\";" " key = \"_BLUE\";" " }" " : radio_button {" " label = \"Jaune\";" " key = \"_YELLOW\";" " }" " }" " ok_cancel;" "}" );fin strcat file ); fin write-line (setq file (close file)) ); fin defun writeDCL (defun C:Colorbox (/ *error* col filename file Fic Cou) (vl-load-com) (defun *error* (msg) (if file (close file)) (if filename (vl-file-delete filename)) (princ msg) ) (defun col (/ r) (foreach c '("_RED" "_BLUE" "_YELLOW") (if (= "1" (get_tile c)) (setq r c)) ) r ) (writeDCL) (setq Fic (load_dialog filename)) (if (not (new_dialog "Couleur" Fic)) (exit)) (action_tile "accept" "(setq Cou (col)) (done_dialog)") (action_tile "cancel" "(done_dialog)") (start_dialog) (unload_dialog Fic) Cou ); fin defun writeDCL Bisous, Luna
fabcad Posté(e) le 20 juin 2022 Auteur Posté(e) le 20 juin 2022 Merci pour votre aide, Je suis entrain de revoir des lisp's et des dcl's qui étaient dans un livre de Microapp "Programmation AutoCAD 12" pour les dinosaures comme moi, Il s’avère que dans les programmes ils expliquent tous les cas de figure action_tile, c'est pourquoi je teste l'ensemble des routines transposables en fichiers combinés. Bonne journée, Fabcad Le Rennais Métropolitain
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