Aller au contenu

Boite de dialogue avec image


Messages recommandés

Posté(e)

Bonjour,

 

je n'arrive pas à afficher une image dans une boite de dialogue.

j'ai trouvé ce sujet mais je n'arrive pas à l'exploiter.

 

Ce que je ne comprends pas, c'est que doit on mettre dans la variable sld.

J'imagine que c'est l'image que l'on souhaite afficher mais comment la définir (avec ou sans extension, chemin complet...)

 

; 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

 

Merci.

Posté(e)

Salut,

 

L'image doit être un "cliché" AutoCAD : cliché isolé (.sld) ou cliché dans une bibliothèque de cliché (.slb) créé avec la commande MCLICHE (_MSLIDE).

L'argument sld peut donc être le nom complet d'un fichier .sld ou avoir la forme utilisée avec la commande AFFCLICH (_VSLIDE) pour afficher un cliché appartenant à une bibliothèque : bibliothèquedeclichés(cliché).

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Salut,

 

merci pour cette réponse rapide.

C'est ce que j'avais compris, le cliché est déjà fait.

 

Je pense donc que c'est la fonction que je n'appelle pas au bon moment.

 

extrait du sujet précédemment cité:

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

Posté(e)

Salut,

après de multiples essais je n'ai toujours pas réussi à afficher d'image.

 

Je poste mon code test ainsi que ma boite, si quelqu'un voit mon erreur.

 

(defun c:test (/)
 (setq id (load_dialog "BDD_image.dcl"))
 (new_dialog "b_image" id)
 (mettre_image "BIBCLICH(CVC_C45)")
 (action_tile "accept" "(done_dialog)")
 (start_dialog)
 (unload_dialog id)
 (princ)
)

(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
(setq 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

 

b_image : dialog {
label = "image";
: row {
: image {
key = "cliché";
height = 10;
width = 10;
color = 1;
aspect_ratio = 1;
is_enabled = false;
}
}
ok_cancel;
}

 

L'ensemble fonctionne mais l'image ne s'affiche pas.

Merci.

Posté(e)

(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
(setq 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

 

Beaucoup d'erreurs...

Tu affectes à la variable MonImage la chaîne de caractère : "image" et ensuite tu utilises cette chaîne comme argument pour dimx_tile et dimy_tile alors que l'argument pour ces fonctions doit être la clé du contrôle soit "cliché" dans ton fichier DCL (évite d'utiliser des lettres accentuées dans les codes).

Il est inutile de remplir l'image avec fill_image puisque tu la remplis ensuite avec slide_image.

 

Si "image.sld" est bien le nom du fichier sld et qu'il est bien dans les chemins de recherche (pas testé) :

(defun c:test (/ id width height)           ; déclaration des variables
 (setq id (load_dialog "BDD_image.dcl"))
 (if (new_dialog "b_image" id)
   (progn
     
     ;; on récupère les dimensions
     (setq width (dimx_tile "cliché"))           ; Largeur de la case
     (setq height (dimy_tile "cliché"))          ; Hauteur de la case

     ;; on remplit l'image
     (start_image "cliché")
     (slide_image 0 0 width height "image")      ; Image.sld
     (end_image)
     
     (action_tile "accept" "(done_dialog)")
     (start_dialog)
     (unload_dialog id)
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é