pieloult Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 J'ai une routine qui appel une boite dcldans l':edit_box l'envoi une valeur (set_tile "htxt" (rtos 2.50 2)) (set_tile "l" (rtos 1000.00 2)) (set_tile "h" (rtos 800.00 2)) ensuite je récupère (action_tile "l" "(setq lg (distof $value))") (action_tile "h" "(setq ht (distof $value))") (action_tile "htxt" "(setq htext (distof $value))") le problème est que si je ne saisi pas valeur dans le champs pour conserver celle proposé j'ai une erreur "; erreur: type d'argument incorrect: numberp: nil"alors que si je change les 3 valeurs mêmes par le même chiffre çà marche Une idée?
(gile) Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 Salut, Tu peux faire simplement un action_tile sur "accept" : (action_tile "accept" "(setq lg (distof (get_tile \"l\")) ht (distof (get_tile \"h\")) htxt (distof (get_tile \"htx\t")) ) (done_dialog)" ) Attention toutefois, si la valeur entrée dans l'édit_box n'est pas un argument valide pour distof, tu auras une erreur. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
pieloult Posté(e) le 23 octobre 2009 Auteur Posté(e) le 23 octobre 2009 merci (gile) çà marche pas la boite apparait et disparait aussitot je joins tout le code (defun c:misepdcl (/ tl lg ht dim) ;;;vérification etat de l'affichage de la zone d'impression ShowPaperMargins ;;;ShowPaperBackground : Afficher l'arrière plan papier (setq zone_affich (getenv "ShowPaperMargins")) (if (= zone_affich 0) (setenv "ShowPaperMargins" "1") ;;; à noter que setenv ne marche pas ) (setq arri_plan (getenv "ShowPaperBackground")) (if (= arri_plan 0) (setenv "ShowPaperBackground" "1") ) ;ouverture de la boite de dialogue fichier.dcl (setq id_dcl (load_dialog "mise_en_page.dcl")) (if (not (new_dialog "misepage" id_dcl)) (exit) ) (set_tile "htxt" (rtos 2.50 2)) (set_tile "nposte" (rtos 360.00 2)) (set_tile "l" (rtos 1000.00 2)) (set_tile "h" (rtos 800.00 2)) (action_tile "accept" "(setq lg (distof (get_tile \"l\")) ht (distof (get_tile \"h\")) htext (distof (get_tile \"htxt\")) ) " ) (done_dialog) (setq a (start_dialog)) ;;;(action_tile "accept" "(done_dialog)") (action_tile "cancel" "(exit)") (start_dialog) (unload_dialog id_dcl) (princ) (setq tl (getvar "tilemode")) (if (/= tl 0) (command "_tilemode" 0) ) ;Entrées utilisateur (setq origine (getpoint "\nOrigine de la fenêtre :")) ;;;;inclinaison du texte imposée (setq An 0) ;;;calcul du point opposé de la fenêtre p (setq calc (/ ht lg)) (setq alpha (atan calc)) (setq hp (sqrt (+ (* ht ht) (* lg lg)))) (setq p (polar origine alpha hp)) ;------------------------------------------------------------------------------------------ ;Création de la fenêtre (command "fmult" origine p) ;------------------------------------------------------------------------------------------ ;Ecriture du nom du fichier ;récuperation des variables de noms de fichiers et du chemin (setq nom (getvar "dwgname")) (setq chemin (getvar "dwgprefix")) ;Concaténation de la Fichier (setq n-fichier (strcat "Fichier : " chemin nom)) ;Création du texte (setq Ptf (polar origine (* 0.25 pi) htext)) (command "_text" Ptf htext an n-fichier) ;------------------------------------------------------------------------------------------ ;Ecriture de la date ;Récupération de la chaine date par la variable CDATE (setq date (rtos (getvar "cdate") 2 6)) ;année (setq année (substr date 1 4) ;mois (setq mois (substr date 5 2)) ;jour (setq jour (substr date 7 2)) ;Concaténation de la date (setq n-date (strcat "Date : " jour "/" mois "/" année)) ;Création du texte à modifier (setq Ptd (polar ptf (* 0.5 pi) (+ htext (/ htext 2)))) (command "_text" Ptd htext An n-date) ;------------------------------------------------------------------------------------------ ;Zoom etendue en fin de commande (command "zoom" "et") ) ;fin defun général
(gile) Posté(e) le 23 octobre 2009 Posté(e) le 23 octobre 2009 Tu as sorti le (done_dialog) du deuxième argument (chaîne ) de l'expression (action_tile "accept" ...) Regarde le code que j'ai donné et le tien... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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