Aller au contenu

petit pb boite dcl


Invité -=micka=-

Messages recommandés

Invité -=micka=-
Posté(e)

Bonjour,

 

je suis actuellement en train d'essayer de créer une boite dcl, mais je rencontre quelques dificultés:

j'aimerai savoir s'il existe une commande (ou autre) qui me permettrait d'avoir en temps réel une valeur qui varierait en fonction de la valeur d'une liste déroulante qui serait dans cette meme boite dcl.

 

Pour m'expliquer:

j'ai créé une boite dcl avec 4 listes déroulantes, elles servent a définir le nombre d'éléments que je veux insérer contre une ligne que j'aurait mesurer avant.

mais pour savoir combien j'en veux il me faudrait déja un "encart" qui affichrait la longueur de la ligne

et un deuxieme "encart" qui m'indiquerait la place que qui reste contre la ligne.

donc ce deuxième "encart" se metrait a jour à chaque fois que je changerais les valeurs des listes déroulantes.

 

Je joins le lisp et le dcl de ce que j'ai fait:

Le Lisp:

(defun c:bdcl_140611 (/ liste n nbre)

 (setq liste_rh (list "0" "1"))
 (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6" ))
 (setq liste_b2m (list "0" "1" "2" "3" "4" "5" "6"))
 (setq liste_sh (list "0" "1"))

 (setq dcl_id (load_dialog "BDCL_140611.dcl"))

 (if (not (new_dialog "bdcl_140611" dcl_id))

   (exit)

 )

 (start_list "nbr_rh")

 (mapcar 'add_list liste_rh)

 (end_list)

 (action_tile

   "accept"

   "(setq nbre_rh (atof (nth (atoi (get_tile \"nbr_rh\")) liste_rh)))

   (done_dialog))"

 )
 

 (start_list "nbr_b3m")

 (mapcar 'add_list liste_b3m)

 (end_list)

 (action_tile

   "accept"

   "(setq nbre_b3m (atof (nth (atoi (get_tile \"nbr_b3m\")) liste_b3m)))

   (done_dialog))"

 )
 
 
 (start_list "nbr_b2m")

 (mapcar 'add_list liste_b2m)

 (end_list)

 (action_tile

   "accept"

   "(setq nbre_b2m (atof (nth (atoi (get_tile \"nbr_b2m\")) liste_2m)))

   (done_dialog))"

 )
 
 
 (start_list "nbr_sh")

 (mapcar 'add_list liste_sh)

 (end_list)

 
 (action_tile

   "accept"

   "(setq nbre_sh (atof (nth (atoi (get_tile \"nbr_sh\")) liste_sh)))

   (done_dialog))"

 )

 (start_dialog)

 (unload_dialog dcl_id)

 (princ nbre_rh)
 (princ nbre_b3m)
 (princ nbre_b2m)
 (princ nbre_sh)

 (princ)

) 

 

et le DCL/

bdcl_140611:dialog{

 label="Vue en élévation";

:boxed_row{

:boxed_column{
   :boxed_column{
label="Hauteur de l'ouvrage";
   
   }
   :boxed_column{
label="Reste à coffrer";

   }
   }

:boxed_column{
  label="Choix des éléments";

 :boxed_column{

   label="Ré-hausse";

   :popup_list{

     label="Nombre :";

     key="nbr_rh";

     edit_width=10;

   }

 }

 :boxed_column{

   label="Banche de 3m";

   :popup_list{

     label="Nombre :";

     key="nbr_b3m";

     edit_width=10;

   }

 }

 
 :boxed_column{

   label="Banches de 2m";

   :popup_list{

     label="Nombre :";

     key="nbr_b2m";

     edit_width=10;

   }

 }

 
 :boxed_column{

   label="Sous-hausse";

   :popup_list{

     label="Nombre :";

     key="nbr_sh";

     edit_width=10;

   }

 }
 
 }
 
 }

 ok_cancel;

} 

 

Merci pour votre aide :)

 

[Edité le 30/6/2011 par -=micka=-]

Posté(e)

Salut,

 

Il faut que tu définisses des actions pour tes contrôles list_box, par exemple (écrit 'à la volée, pas testé) :

(action_tile 
 "nbr_rh"
 "(if (= 1 $reason) ; un élément a été sélectionné
    (if (= \"0\" $value) ; c'est l'élément '0' qui a été sélectionné
      (set_tile \"encart\" \"un truc\")
      (set_tile \"encart\" \"autre chose\")
    )
  )"
)

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

Invité -=micka=-
Posté(e)

Merci (Gile) pour ta réponse mais je débute vraiment en Lisp et d'autant plus sur les boite dcl, en effet pour créer la mienne j'en ai mélangé plusieurs que j'ai trouver sur le forum.

Tout ça pour dire que je ne sais pas comment me servir du bout de code que tu as marqué.

Cordialement

 

Désolé pour le temps de réponse,

 

[Edité le 30/6/2011 par -=micka=-]

Invité -=micka=-
Posté(e)

re

 

je voudrait savoir aussi, si c'est possible d'avoir une sorte de "textbox" avec une valeur (ici une longueur) que l'on a définit avant, qui n'est pas modifiable par l'utilisateur dans la boite dcl

 

et aussi s'il existe de "textbox" qui se met a jour en fonction des valeurs données avec les listes déroulantes, donc visible avant la fermerture de la boite dcl

:)

 

Merci !!!!!

:D

Invité -=micka=-
Posté(e)

ok pas de soucis, par contre j'ai réfléchit et j'ai cherché donc maintenant j'ai compris ce que tu me disais (gile)

J'ai avancé dans l'élaboration de ma boite dcl et du lisp mais j'ai de nouveau un petit soucis que je n'arrive pas à résoudre j'ai une erreur quand il fait des opérations il me marque

erreur: type d'argument incorrect: numberp: "3"

_2_$

 

Cette erreur apparait quand je me sert d'une des listes déroulantes

Je sais ou elle est, mais je n'arrive pas à la résoudre

C'est dans le lisp dans le calcul de la variable "restemur"

Je met le lisp mis à jour ainsi que le dcl

Merci de jetter un petit coup d'oeil

cdt Micka

 

Le Lisp

 
(defun c:bdcl_240611 (/		  dcl_id      liste_rh	  liste_b3m
	      liste_b2m	  liste_sh    what_next	  longmur restemur
	     )

 (setq dcl_id (load_dialog "BDCL_240611.dcl"))

 (setq liste_rh (list "0" "1"))
 (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6"))
 (setq liste_b2m (list "0" "1" "2" "3" "4" "5" "6"))
 (setq liste_sh (list "0" "1"))
 (setq nbre_sh 0)
 (setq nbre_rh 0)
 (setq nbre_b3m 0)
 (setq nbre_b2m 0)

 (setq what_next 2)


 (while (>= what_next 2)

   (if	(not (new_dialog "bdcl_240611" dcl_id))

     (exit)

   )

   (start_list "nbr_rh")
   (mapcar 'add_list liste_rh)
   (end_list)

   (action_tile

     "nbr_rh"
     "(setq nbre_rh (nth (atoi $value) liste_rh))
      (done_dialog 5)"

   )

   (start_list "nbr_b3m")
   (mapcar 'add_list liste_b3m)
   (end_list)

   (action_tile

     "nbr_b3m"
     "(setq nbre_b3m (nth (atoi $value) liste_b3m))
      (done_dialog 5)"

   )

   (start_list "nbr_b2m")
   (mapcar 'add_list liste_b2m)
   (end_list)

   (action_tile

     "nbr_b2m"
     "(setq nbre_b2m (nth (atoi $value) liste_2m))      
      (done_dialog 5)"

   )


   (start_list "nbr_sh")
   (mapcar 'add_list liste_sh)
   (end_list)

   (action_tile

     "nbr_sh"
     "(setq nbre_sh (nth (atoi $value) liste_sh))
      (done_dialog 5)"

   )

   (action_tile
     "mesurer"

     "(done_dialog 4)"
   )

   (action_tile
     "calculer"

     "(done_dialog 5)"
   )

   (if	longmur

     (set_tile "ht" (rtos longmur))

   )


   (if	restemur
     (set_tile "reste" (rtos restemur))
   )


   (setq what_next (start_dialog))

   (cond

     ((= what_next 4)

      (progn
 (setq
   p0 (getpoint "\nCliquer sur le point de départ du mur: ")
 )
 (setq p1 (getpoint "\nCliquer sur le point suivant du mur: "))
 (setq longmur (distance p0 p1))

      )
     )

     ((= what_next 0)

      (prompt "\nFONCTION ANNULEE")

     )
     ((= what_next 5)

      (setq restemur (- longmur
		 (* nbre_sh 1)
		 (* nbre_rh 0.5)
		 (* nbre_b3m 3)
		 (* nbre_b2m 2)
	      )
      )

     )


   )

 )

 (unload_dialog dcl_id)

 (princ nbre_rh)
 (princ nbre_b3m)
 (princ nbre_b2m)
 (princ nbre_sh)

 (princ)

)

 

 

Le Dcl

bdcl_240611 :dialog{
label="Vue en élévation";

:boxed_row{
	:boxed_column{
		:boxed_row{
		label="Hauteur de l'ouvrage";
		
			:edit_box{
			key = "ht";
			value="0.0000";
			fixed_width=true;
			allow_accept=true;
			}
			: text{
			label = "m";
			}

      		:retirement_button{
    			label = "Mesurer <";
    			key = "mesurer";
    			mnemonic = "H";
    			alignment= centered;
    			}

    		}

    		:boxed_row{
    		label="Reste à coffrer";
		:edit_box{
		key = "reste";
		value="0.0000";
		fixed_width=true;
			allow_accept=true; 			
		}
		: text{
			label = "m"; 		
			}
		
   		:retirement_button{
   		label = "Calculer <";
   		key = "calculer";
   		mnemonic = "H";
   		alignment= centered; 
   		}   		
      			
      		}
      	}

      	:boxed_column{
  	label="Choix des éléments";
  	
  		:boxed_column{
  		label="Ré-hausse (0.5m)";
  		
  			:popup_list{
  			label="Nombre :";
  			key="nbr_rh";
  			edit_width=true;
  			}
  		}

  		:boxed_column{
  		label="Banche de 3m";

  			:popup_list{
  			label="Nombre :";
  			key="nbr_b3m";
  			edit_width=true;
  			}

  		}

  		:boxed_column{
  		label="Banches de 2m";

  			:popup_list{
  			label="Nombre :";
  			key="nbr_b2m";
  			edit_width=true;
  			}

  		}

  		:boxed_column{
  		label="Sous-hausse (1m)";

  			:popup_list{
  			label="Nombre :";
  			key="nbr_sh";
  			edit_width=true;
  			}

  		}
   	}
 
 }
 

 ok_cancel;
} 

 

[Edité le 30/6/2011 par -=micka=-]

Posté(e)

nbre_b3m contient "3", par exemple.

Donc (* nbre_b3m 3) plante car il n'attend pas de STRING mais un REAL ou INT.

 

Or (* (distof nbre_b3m) 3) ou (* (atoi nbre_b3m) 3)

Fonctionneraient mieux.

 

Pour pister tes erreurs va dans le menu Deboguage de l'éditeur et choisis de cocher "Arrêt sur erreur". En cas d'erreurs, tu basculeras dans la console et CTRL+F9 te donnera plus d'infos.

 

Pour sortir de la boucle, CTRL+Q ou la flèche rouge (vers le haut) !

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Invité -=micka=-
Posté(e)

 

nbre_b3m contient "3", par exemple.

Donc (* nbre_b3m 3) plante car il n'attend pas de STRING mais un REAL ou INT.

 

Or (* (distof nbre_b3m) 3) ou (* (atoi nbre_b3m) 3)

Fonctionneraient mieux.

 

Pour pister tes erreurs va dans le menu Deboguage de l'éditeur et choisis de cocher "Arrêt sur erreur". En cas d'erreurs, tu basculeras dans la console et CTRL+F9 te donnera plus d'infos.

 

Pour sortir de la boucle, CTRL+Q ou la flèche rouge (vers le haut) !

 

 

 

Merci beaucoup Tramber!

je prends note, ça m'aidera fortement.

Bonne journée

Invité -=micka=-
Posté(e)

rebonjour,

 

en fait ça marche bien ce que tu m'as indiqué Tramber sauf quand ma variable est a zero, il me met:

; erreur: type d'argument incorrect: stringp 0

 

Puis j'aimerais aussi que lorsque je choisisse une valeur avec une liste déroulante celle ci ne se remette pas à zéro apres avoir calculé.

 

Merci pour vos lumières

 

[Edité le 30/6/2011 par -=micka=-]

Invité -=micka=-
Posté(e)

personne n'a d'info pour moi??? please!!!

Posté(e)

Salut,

 

; erreur: type d'argument incorrect: stringp 0

Veut dire que la fonction qui généré l'erreur attend un chaîne (string) comme argument mais que c'est un nombre : 0 qui lui a été passé.

Localise l'expression qui provoque cette erreur et utilise un fonction qui convertit un nombre en chaîne (rtos pour les réels ou itoa pour les entiers) pour convertir le nombre en chaîne.

 

Puis j'aimerais aussi que lorsque je choisisse une valeur avec une liste déroulante celle ci ne se remette pas à zéro apres avoir calculé.

done_dialog ferme la boite dialogue. Mais utilisé dans une boucle comme tu le fais, la boite est ré-ouverte si la valeur qui lui est passée est supérieure ou égale à 2 : (while (>= what_next 2) ...)

Dans ce cas, la boite est réinitialisée avec les expression contenues dans le (while ...).

 

Si tu veux qu'elle se ré-ouvre avec les valeurs précédemment entrées et stockées dans les variables, il faut initialiser les variables avec les valeurs par défaut avant la création de la boite de dialogue et attribuer ces valeurs aux contrôles avec set_tile.

 

Exemple avec nbre_b3m qui est un entier et liste_b3m qui est une liste de chaînes représentant des entiers.

Il faut faire attention au fait que que la plupart des fonctions LISP qui gèrent les valeurs dans les boites de dialogue fonctionnent avec de chaînes (en entrée et en sortie) et donc faire les conversion opportunes.

 

(defun c:bdcl_240611 
 ...
 (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6")) ; initialisation de la liste
 ...
 (setq nbre_b3m 0) ; initialisation de la variable nbre_b3m (valeur par défaut)
 ...
 (setq what_next 2)
 (while (>= what_next 2)
   ...
   ;; affichage dans le popup en fonction de la valeur de nbre_b3m
   ;; il faut convertir en chaînes la valeur de nbre_b3m et la valeur retournée par vl-position
   (set_tile "nbr_b3m" (itoa (vl-position (itoa nbre_b3m) liste_b3m)))
   ...
   ;; action en fonction du choix fait dans le popup
   ;; il faut convertir en nombre l'index retourné par $value et l'élément correspondant dans la liste
   (action_tile
     "nbr_b3m"
     "(setq nbre_b3m (atoi  (nth (atoi $value) liste_b3m)))
      (done_dialog 5)"
   )
   ...
 ...
)

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

Invité -=micka=-
Posté(e)

merci (gile)

dès que j'ai dix minutes je teste ça!!

;)

Invité -=micka=-
Posté(e)

Re

j'ai testé tes code (gile) merci ça marche, mais il se présente a moi un nouveau soucis.

dans ma boite de dialogue je mesure ma distance et apres je choisis le nombre d'éléments que je vais insérer ensuite, sauf que dans la liste "nbr_b2m" j'ai une erreur car lorsque je selectionne une valeur il me marque:

erreur: type d'argument incorrect: consp nil

 

Je comprends pas car l'erreur est dans :

  (action_tile
         "nbr_b2m"
     "(setq nbre_b2m (atoi (nth (atoi $value) liste_2m)))      
      (done_dialog 5)"

   )

 

Pourtant tous mes "action _tile" sont identiques et y'a que celui-ci qui bug

 

Une idée????

je remet le lisp et le dcl mis à jour si vous voulez bien regarder merci!!

(defun c:bdcl_300611 (/		 dcl_id	    what_next  longmur
	      restemur	 nbre_sh    nbre_rh    nbre_b3m
	      nbre_b2m
	     )

 (setq dcl_id (load_dialog "BDCL_300611.dcl"))

 (setq liste_rh (list "0" "1"))	; initialisation des listes
 (setq liste_b3m (list "0" "1" "2" "3" "4" "5" "6"))
 (setq liste_b2m (list "0" "1" "2" "3" "4" "5" "6"))
 (setq liste_sh (list "0" "1"))
 (setq nbre_sh 0)			; initialisation des variables nbre_xxx (valeur par défaut)
 (setq nbre_rh 0)
 (setq nbre_b3m 0)
 (setq nbre_b2m 0)

 (setq what_next 2)


 (while (>= what_next 2)

   (if	(not (new_dialog "bdcl_300611" dcl_id))

     (exit)

   )



   (start_list "nbr_rh")
   (mapcar 'add_list liste_rh)
   (end_list)

   (set_tile "nbr_rh"
      (itoa (vl-position (itoa nbre_rh) liste_rh))
   )

   (action_tile
     ;; action en fonction du choix fait dans le popup

     "nbr_rh"
     "(setq nbre_rh (atoi (nth (atoi $value) liste_rh)))
      (done_dialog 5)"

   )

   (start_list "nbr_b3m")
   (mapcar 'add_list liste_b3m)
   (end_list)

   (set_tile "nbr_b3m"
      (itoa (vl-position (itoa nbre_b3m) liste_b3m))
   )
   (action_tile
     ;; action en fonction du choix fait dans le popup

     "nbr_b3m"
     "(setq nbre_b3m (atoi (nth (atoi $value) liste_b3m)))
      (done_dialog 5)"

   )

   (start_list "nbr_b2m")
   (mapcar 'add_list liste_b2m)
   (end_list)

   (set_tile "nbr_b2m"
      (itoa (vl-position (itoa nbre_b2m) liste_b2m))
   )

   (action_tile
     ;; action en fonction du choix fait dans le popup

     "nbr_b2m"
     "(setq nbre_b2m (atoi (nth (atoi $value) liste_2m)))      
      (done_dialog 5)"

   )


   (start_list "nbr_sh")
   (mapcar 'add_list liste_sh)

   (end_list)
   (set_tile "nbr_sh"
      (itoa (vl-position (itoa nbre_sh) liste_sh))
   )

   (action_tile
     ;; action en fonction du choix fait dans le popup

     "nbr_sh"
     "(setq nbre_sh (atoi (nth (atoi $value) liste_sh)))
      (done_dialog 5)"

   )

   (action_tile
     "mesurer"

     "(done_dialog 4)"
   )

   (action_tile
     "calculer"

     "(done_dialog 5)"
   )

   (if	longmur

     (set_tile "ht" (rtos longmur))

   )


   (if	restemur
     (set_tile "reste" (rtos restemur))
   )


   (setq what_next (start_dialog))

   (cond

     ((= what_next 4)

      (progn
 (setq
   p0 (getpoint "\nCliquer sur le point de départ du mur: ")
 )
 (setq p1 (getpoint "\nCliquer sur le point suivant du mur: "))
 (setq longmur (distance p0 p1))

      )
     )

     ((= what_next 0)

      (prompt "\nFONCTION ANNULEE")

     )
     ((= what_next 5)

      (setq restemur (- longmur
		 (* nbre_rh 0.5)
		 (* nbre_b3m 3)
		 (* nbre_b2m 2)
		 (* nbre_sh 1)

	      )
      )

     )


   )

 )

 (unload_dialog dcl_id)

 (princ nbre_rh)
 (princ nbre_b3m)
 (princ nbre_b2m)
 (princ nbre_sh)

 (princ)

)

 

 

 

 bdcl_300611 :dialog{
label="Vue en élévation";

:boxed_row{
	:boxed_column{
		:boxed_row{
		label="Hauteur de l'ouvrage";
		
			:edit_box{
			key = "ht";
			value="0.0000";
			fixed_width=true;
			allow_accept=true;
			}
			: text{
			label = "m";
			}

      		:retirement_button{
    			label = "Mesurer <";
    			key = "mesurer";
    			mnemonic = "H";
    			alignment= centered;
    			}

    		}

    		:boxed_row{
    		label="Reste à coffrer";
		:edit_box{
		key = "reste";
		value="0.0000";
		fixed_width=true;
			allow_accept=true; 			
		}
		: text{
			label = "m"; 		
			}
		
   		:retirement_button{
   		label = "Calculer <";
   		key = "calculer";
   		mnemonic = "H";
   		alignment= centered; 
   		}   		
      			
      		}
      	}

      	:boxed_column{
  	label="Choix des éléments";
  	
  		:boxed_column{
  		label="Ré-hausse (0.5m)";
  		
  			:popup_list{
  			label="Nombre :";
  			key="nbr_rh";
  			edit_width=true;
  			}
  		}

  		:boxed_column{
  		label="Banche de 3m";

  			:popup_list{
  			label="Nombre :";
  			key="nbr_b3m";
  			edit_width=true;
  			}

  		}

  		:boxed_column{
  		label="Banches de 2m";

  			:popup_list{
  			label="Nombre :";
  			key="nbr_b2m";
  			edit_width=true;
  			}

  		}

  		:boxed_column{
  		label="Sous-hausse (1m)";

  			:popup_list{
  			label="Nombre :";
  			key="nbr_sh";
  			edit_width=true;
  			}

  		}
   	}
 
 }
 

 ok_cancel;
} 

 

 

Invité -=micka=-
Posté(e)

ah oui!!!!

j'ai oublié de demandé!!

Est ce qu'il y a un moyen pour qu'une edit box ne soit pas modifiable dans la boite de dialogue par l'utilisateur mais que par le lisp???

encore merci

Posté(e)

erreur: type d'argument incorrect: consp nil

La fonction attend comme argument une liste non vide (consp) mais se voit passer nil.

 

Dans ton expression ce qui est censé être un liste est la variable liste_2m qui n'a jamais été initialisée, c'est liste_b2m qui a été initialisé...

 

 

Est ce qu'il y a un moyen pour qu'une edit box ne soit pas modifiable dans la boite de dialogue par l'utilisateur mais que par le lisp???

Non, mais tu peux utiliser un contrôle 'text' avec une clé (key) et modifier ce texte avec set_tile :

 

DCL :

...
:text { key = "reste"; }
...

 

LISP

...
(setq restemur 0.)
...
(set_tile "reste" (strcat (rtos restemur) "m")
...

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

Invité -=micka=-
Posté(e)

:D :D

Merci beacoup (Gile)!!!

Parfait

;)

Invité -=micka=-
Posté(e)

re

pour améliorer ma boite de dialogue j'aimerais insérer un logo ou uune image que je créerai, comme on peut le voir dans celle d'autocad:

http://www.xs.to/media/33796

Comment faut-il procéder?

[Edité le 1/7/2011 par -=micka=-]

 

[Edité le 1/7/2011 par -=micka=-]

Posté(e)

Salut,

 

Là tu mets la barre un peu haut pour du DCL, avec les boites de dialogue DCL on ne peut utiliser que du vectoriel :

- soit dessiner des lignes (vecteurs) avec la fonction vector_image sur un fond (fonction fill_image)

- soit utiliser des 'clichés' (slide) avec la fonction slide_image

 

Regarde ces fonctions dans l'aide aux développeurs ainsi que :

AutoLISP Developer's Guide > Working with Programmable Dialog Boxes > Managing Dialog Boxes > Image Tiles and Buttons > Creating Images

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

Posté(e)

Bonjour -=micka=-

 

pour améliorer ma boite de dialogue j'aimerais insérer un logo ou uune image

 

Oui comme te l’a dit (gile) l’emploi d’un slide pour des images non vectoriel peut être la solution, mais à l’usage tu verras que le jeu n’en vaut pas la vraiment chandelle..

 

Mais si tu veux tester ( car c’est toujours bien), il faut que tu insère ton image dans AutoCAD, puis tu fais un cliché (ou slide) de cette image, que tu chargera dans ta boite de dialogue en utilisant la fonction donné par (gile).

Je te déconseille de vouloir faire plus qu’une « icône » en taille d’image car cela va ralentir considérablement le chargement de ta boîte de dialogue.. De plus sous forme de cliché ton image va perdre beaucoup en terme de qualité mais on peut toute fois arriver à un résultat presque satisfaisant.

 

Cordialement,

 

Apprendre => Prendre => Rendre

Invité -=micka=-
Posté(e)

aoutch!!!!

tout ça pour un résultat pas trop satisfaisant

je pensais qu'il y avait un moyen de reprendre l'affichage des petite images d'autocad, tant pis .....

 

sinon un autre question: ;)

est ce qu'il y a moyen de "griser" certain élément de la boite de dialogue tant que l'utilisateur n'a pas choisit ou cocher une option? ---->

 

 

http://www.xs.to/media/33974

 

 

comme ça

 

Merciiiiii :)

 

 

Invité -=micka=-
Posté(e)

merci Patrick_35

maintenant place au déchiffrage!! ^^

Bonne journée a tous!!

 

Invité -=micka=-
Posté(e)

bon j'ai regardé ce tuto ..... comment dire...... outch! :o

dur dur, c'est vraiment pas simple de comprendre des Lisps mais en plus quand c'est du high level!!

En tout cas merci Patrick_35, mais j'aurais bien aimé un petit exemple si c'est pas trop demander, car j'arrive pas à tout comprendre!! :(

 

merci pour votre aide

 

Posté(e)

Dans le tuto, tu as des exemples de dcl avec le lisp qui va bien pour exploiter la bd.

Prenons le 1er exemple

Le dcl

//---------------------------------------------------------------------------------------------------------
// MyFirst
//---------------------------------------------------------------------------------------------------------
MyFirst : dialog {
 label = " Hello World";
 spacer;
 : text {
   label = "This is my first dialog.";
   alignment = centered;
 }
 spacer;
 ok_only;
}

Le lisp

	;----------------------------------------------------------------------------------------------------------
; c:MyFirst - You've got to start somewhere
; Syntax: MyFirst
;----------------------------------------------------------------------------------------------------------
(defun c:MyFirst (/ Dcl_Id%)
 (princ "\nMyFirst")(princ)
 ; Load Dialog
 (setq Dcl_Id% (load_dialog "MyDialogs.dcl"))
 (new_dialog "MyFirst" Dcl_Id%)
 ; Dialog Actions
 (start_dialog)
 ; Unload Dialog
 (unload_dialog Dcl_Id%)
 (princ)
);defun c:MyFirst

 

Je remarque déjà dans le lisp cette instruction

(setq Dcl_Id% (load_dialog "MyDialogs.dcl"))

qui me donne le nom du fichier DCL à sauvegarder

Puis un copier/coller du lisp en ligne de commande pour tester la fonction c:MyFirst

 

Et pour bien comprendre le lisp, il faut tester les instructions une par une

 

@+

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

Posté(e)

Salut -=micka=-,

 

je pensais qu'il y avait un moyen de reprendre l'affichage des petite images d'autocad, tant pis .....

 

J’allais t’écrire que non en DCL, en argumentant que cela faisais bien longtemps qu’Autodesk n’écrivait plus ses boîtes de dialogue en DCL comme on pouvait en trouver sur les versions 12 , la transition ayant commencé sur la version 13 ou 14 et que depuis les version 2000 on n’en voyais plus (sauf encore peut être dans les Express).

 

Voilà pensant que le graphisme de nos petites boites de dialogue devaient se résigner à ce petit coté désuet.. Mais j’avoue que le lien de Patrick_35 m’a ôté toutes mes certitudes sur ce point :D . (Ha ! Que je regrette de n’avoir que trop peu d’heures à consacrer au Lisp...).

 

A+

 

Apprendre => Prendre => Rendre

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é