Aller au contenu

aide pour boite de dialogue et lisp


Messages recommandés

Posté(e)

bonjour à tous, chui nouvelle sur ce site. je viens de débuter dans la programmation en lisp.En ce moment je suis en train de créer un programme permettant la répartition automatique de luminaires dans un local. cependant j'ai quelques petits soucis d'éxécution:

- j'ai créé des blocs de luminaires afin de pouvoir les choisir dans le listing de luminaire quise trouve dans la boite de dialogue.si je met des attributs aux blocs, quand je lance le programme il me fais un bug au niveau de l'insertion du luminaire.(vous ne pourrez pas les sélectionner car je ne vous ai pas remis les *.dwg, cependant si vous voulez m'aider je peut vous les faire parvenir par mail ou sinon vous ppouvez en créer un, le rajouter au listing et l'essayer!!). si je ne met pas d'attributs, le prog fonctionne!

- je dois créer des "boutons radios" pour choisir l'unité des luminaires (cm, mm ou m). pouvez vous me dire comme programmer ces "boutons radios dans le lisp".

ceux qui veulent, peuvent récupérer mon prog pour l'améliorer!!!

je vous remercie d'avance pour votre aide... ;)

mon adresse imel: iutgaelle@hotmail.com

 

 

FICHIER LSP

 

(defun c:lum ()

 

(setq listblocs (list "4x18W-encastré" "2x36W-encastré" "2x58W-encastré"

"4x18W-saillie" "2x36W-saillie" "2x58W-saillie"

"2x36W-étanche" "2x58W-étanche"

"2x26W-downlight" "2x9W-hublot"))

 

(setq flag 4)

(setq nom0 "")

 

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

 

(while (> flag 2)

 

(if (not (new_dialog "diaglumok" dcl_id))

(exit)

)

 

(set_tile "eb3" nom0)

 

(start_list "lumi") ;start the list box

(mapcar 'add_list listblocs) ;fill the list box

(end_list)

 

(action_tile "eb1" "(setq nbl $value)")

(action_tile "eb2" "(setq nbh $value)")

(action_tile "eb3" "(setq nom0 $value)")

(action_tile "hide" "(done_dialog 4)")

 

(action_tile "lumi" "(setq nombloc (nth (fix (atof (get_tile \"lumi\"))) listblocs))")

 

(setq flag (start_dialog))

(if (= flag 4) (pickblck))

 

);;FIN WHILE

 

(unload_dialog dcl_id)

(setq nbl (atoi nbl)

nbh (atoi nbh)

)

(lum1 nom0)

 

);;FIN DU PROGRAMME PRINCIPAL

 

;**********************************

(defun pickblck ()

 

(setq ent01 (entsel "Choisir un block existant")

ent02 (car ent01)

nom0 (cdr (assoc 2 (entget ent02)))

)

);;defun

;******************

(defun lum1 (nom0);;;;/ dl dh nbl nbh dl0 dh0 mes)

 

(setq echx 1

echy 1)

 

(setq pt0 (getpoint "\n Angle bas gauche de la piece : "))

 

(setq l0 (getdist pt0 "\n Largeur de la piece (ou distance) en X : "))

 

(setq h0 (getdist pt0 "\n Longueur de la piece (ou distance) en Y : "))

;;(setq nbl (getint "\n Nombre d'appareils dans la largeur (hor) :"))

;;(setq nbh (getint "\n Nombre d'appareils dans la longueur (vert) :"))

;;(setq echx (getvar "userr1"))

 

(if (= 1 nbh nbl) (progn (prompt "\nimpossible sur un seul app") (lum1 nombloc)) )

 

(cond ((= nbl 1)

(progn (setq dh (/ h0 nbh)

dh0 (/ dh 2))

(setq pt1 (list (+ (car pt0) (/ l0 2)) (+ (car (cdr pt0)) dh0) 0 ))

(command "inserer" nombloc pt1 echx echy pause

"reseau" "d" "" "r" nbh nbl dh))

);;fin du progn

((= nbh 1)

(progn (setq dl (/ l0 nbl)

dl0 (/ dl 2))

(setq pt1 (list (+ (car pt0) dl0) (+ (car (cdr pt0)) (/ h0 2)) 0 ))

(command "inserer" nombloc pt1 echx echy pause

"reseau" "d" "" "r" nbh nbl dl))

);;fin du progn

(T

(progn (setq dl (/ l0 nbl)

dh (/ h0 nbh)

dl0 (/ dl 2)

dh0 (/ dh 2))

(setq pt1 (list (+ (car pt0) dl0) (+ (car (cdr pt0)) dh0) 0 ))

(command "inserer" nombloc pt1 echx echy pause

"reseau" "d" "" "r" nbh nbl dh dl))

);;fin du progn

);;fin du cond

(grtext)

)

 

FICHIER DCL

diaglum : dialog {label= "&IMPLANTATION DE LUMINAIRES";

 

:boxed_column {

label = "selection du luminaire";

 

: edit_box {

key = "eb3";

label = "Nom du Luminaire";

width = 20;

fixed_width = true;

}

 

: button {

label = "Choisir sur le dessin <";

key = "hide";

width = 12;

fixed_width = true;

}

 

}//fin column

 

:boxed_column {

label = "Nombre de luminaires";

 

: edit_box {

key = "eb1";

label = "Nbres sur X";

width = 8;

fixed_width = true;

}

 

: edit_box {

key = "eb2";

label = "Nbres sur Y";

width = 8;

fixed_width = true;

}

}

 

: list_box{

label="> Listining luminaire";

key="lumi";

value="2";

height=6;

fixed_height=true;

width=30;

fixed_width=true;

}

 

: image {

width=20;

height=3;

fixed_height=true;

fixed_width=true;

color=7;key="limage";

}

 

spacer;

 

ok_cancel;

 

}

}//FIN DIALOG

:)

 

[Edité le 31/5/2005 par gaelle]

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é