gaelle Posté(e) le 31 mai 2005 Posté(e) le 31 mai 2005 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 DCLdiaglum : 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]
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant