Aller au contenu

Messages recommandés

Posté(e)

J'ai une routine qui appel une boite dcl

dans 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?

Posté(e)

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

Posté(e)

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

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é