Aller au contenu

Boites de dialogue DCL


paulinedubois

Messages recommandés

Bonjour

 

Malgrès la quantité qualitative de tous les post, je n'ai pas trouvée d'exemple pour mon problème

 

J'aimerais dans ma boite de dialogue (DCL) pouvoir changer l'image en fonction du radio_button sélectionné

 

exemple:

 

: radio_button {

label = "chaise";

key = "ch";

value = 1;

}

 

: radio_button {

label = "table";

key = "ta";

}

 

: radio_button {

label = "canape";

key = "ca";

}

 

Je sélectionne radio_button chaise j'ai l'image d'une chaise

Je sélectionne radio_button table j'ai l'image d'une table etc...

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut paulinedubois!

 

Tout d'abord il faut donner les deux dimensions pour l'image dans la dcl:

 

...

:image_button{

key="image";

width=25;

height=25;

}

 

...

: radio_button {

label = "chaise";

key = "ch";

value = 1;

}

 

: radio_button {

label = "table";

key = "ta";

}

 

: radio_button {

label = "canape";

key = "ca";

}

 

Ensuite dans ton lisp:

 

(defun mettre_image( sld / MonImage width height)

(setq MonImage "image")

; on récupère les dimensions

(setq width (dimx_tile MonImage) ; Largeur de la case

height (dimy_tile MonImage) ; Hauteur de la case

)

; on lance le chargement de l'image

(start_image MonImage)

(fill_image 0 0 width height 0) ; Couleur de fond

(slide_image 0 0 width height sld) ; Image

(end_image)

) ; mettre_image

 

et cette fonction tu la mets dans celle qui gère la dcl:

(defun test_dcl()

...

; on définit les actions

(action_tile "chaise" "(mettre_image ma_chaise_sld)")

(action_tile "table" "(mettre_image ma_table_sld)")

(action_tile "canape" "(mettre_image mon_canape_sld)")

) ; test_dcl

 

Mais avant cela, il faut générer un sld avec tes blocs avec cette commande:

_mslide.

 

Voilà, en espérant que cela t'aidera

 

 

;)

 

[Edité le 19/1/2009 par bseb67]

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Mais avant cela, il faut générer un sld

Pas forcement, tu as aussi la fonction vector_image, pas très facile à faire, je le reconnais.

 

Tu as aussi ce site qui explique le dcl (en anglais).

 

Bon courage.

 

@+

Les Lisps de Patrick

Le 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

j'y arrive pas

 

Je comprends la démarche mais pourquoi on ne peut pas mettre à la suite de action_tile ??

DCL

 

: radio_button {

label = "chaise";

key = "ch";

value = 1;

}

 

: radio_button {

label = "table";

key = "ta";

}

 

LISP

(action_tile "AC" "(setq ouvreprog 1)" "mettre_image chaise")

(action_tile "PB" "(setq ouvreprog 2)" "mettre_image table")

 

le site de Patrick_35 est bien mais pour les images, j'ai pas mon cas

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

action_tile se fait comme ceci:

(action_tile clé "todo") ou (action_tile clé "(todo1)(todo2)") et non

(action_tile clé "todo1" "todo2")

 

mais le mieux si tu veux exécuter plusieurs choses c'est d'appeler une fonction

dans laquelle tu fais tout (en la déclarant avant le action_tile:

 

 

(defun todo_cle1()

(setq a 2 b 3)

(print "blabla")

(mettre_image image1)

)

 

(action_tile clé1 "(todo_cle1)")

 

 

 

[Edité le 20/1/2009 par bseb67]

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines aprè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 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é