Aller au contenu

pourquoi la case de dialogue ne s\'ouvre pas?


thierryd

Messages recommandés

bonjour à tous,

 

j'ai parcouru l'aide aux développeurs dans autocad2006, c'est la seule partie de l'aide qui ne soit pas en français (dommage)

 

et puisqu'il faut commencer par le début, j'ai tout simplement essayé de reproduire une commande de base dans autocad. (la commande _plot)

 

lisp ecrit (on ne se moque pas!!!):

 

(defun c:printtd ()

(command "_plot")

(princ))

 

je pensais ouvrir la case de dialogue tracer, mais je me retrouve sur la ligne de commande

 

quelle est la variable à ajouter?

 

cordialement

 

Lien vers le commentaire
Partager sur d’autres sites

Pas de variable!

 

Bien qu'on met souvent (command "_.-plot") dans du lisp, le "-" évitant de passer par une boite dialogue.

Les commande appelées par le lisp ne lance généralement pas de boite de dialogue.

Exception, les renseignements d'attributs (ATTDIA, ATTREQ) et la selection de fichiers (FILEDIA)

 

De toute façon il est très pénible de gérer une boite de dialogue pour débuter en lisp.

 

Garde ça pour plus tard ;)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

(defun c:printtd ()
(initdia)
(command "_plot")
(princ))

 

ça devrait marcher avec la boîte de dialogue

 

Voilà ce que raconte l'aide

 

Forces the display of the next command's dialog box

 

(initdia [dialogflag])

 

Currently, the following commands make use of the initdia function: ATTDEF, ATTEXT, BHATCH, BLOCK, COLOR, IMAGE, IMAGEADJUST, INSERT, LAYER, LINETYPE, MTEXT, PLOT, RENAME, STYLE, TOOLBAR, and VIEW.

 

Arguments

 

dialogflag

 

An integer. If this argument is not present or is present and nonzero, the next use (and next use only) of a command will display that command's dialog box rather than its command line prompts.

 

If dialogflag is zero, any previous call to this function is cleared, restoring the default behavior of presenting the command line interface.

 

Return Values

 

nil

 

Examples

 

Issue the PLOT command without calling initdia first:

 

Command: (command "_.PLOT")

 

plot

 

Enter a layout name : nil

 

Enter a layout name :

 

AutoCAD prompts for user input in the command window.

 

Use the following sequence of function calls to make AutoCAD display the Plot dialog box:

 

(initdia)

(command "_.PLOT")

 

Amicalement

 

Zebulon_

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

bien vu zebulon

 

ca donne :

 

(defun c:printtd ()

(initdia)

(command "_plot")

(princ))

 

(initdia) ouvre la case de dialogue correspondant à la commande qui suit (et seulement celle là)

 

merci beaucoup

 

l'exemple est simpliste mais servira certainement à tous les débutants

 

cordialement

Lien vers le commentaire
Partager sur d’autres sites

(initdia) est en effet la façon d'obtenir la boite de dialogue.

 

L'inconvénient est que l'on ne peut pas récupérer les valeurs saisies dans les boites de dialogue pour les affecter à des variables. (à moins que quelqu'un connaisse une astuce, à part faire un entget sur la dernière entité et récupérer ses paramètres)

 

Il est facile de l'utiliser en FIN de programme (dernier appel)

Pour l'utiliser en cours de procédure, (si vous n'avez pas besoins de connaitre les valeurs saisies , et pouvoir continuer la procédure) voici comment on peut faire pour que cela fonctionne.

 

exemple:

 

((lambda ( / )
(setvar "ATTDIA" 1)
(setvar "ATTREQ" 1)
(initdia)
(command "_.insert"
	(while (not (zerop (getvar "cmdactive")))
		(command pause)
	)
)
(command "_.change" (entlast) "" "_properties" "_color" 3 "")
(princ)
))

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

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é