Aller au contenu

aide pour boite de dialogue et lisp


gaelle

Messages recommandés

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

 

Lien vers le commentaire
Partager sur d’autres sites

Je suis pas content du tout car je viens de remarquer que tu as posté 4 fois le même sujet.

 

On n'est pas des nazes, et on sait répondre à une question quand on a le temps.

 

Alors, ca serait sympa si tu effacais les messages en trop.

 

Tant pis pour celui-là, qui ne doit pas être effacable sauf par le webmaster, ce qui ne me dérangerait pas.

 

Si tout les nouveaux faisaient comme toi, on en deviendrait dingue.

 

Mais rassures-toi, tu n'es pas la seule à pratiquer ce genre de méthode.

 

Je boude, Na !

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

comme vous dites, je suis nouvelle, mais c'est pas une raison pour parler comme ça, et c'est pas non plus le fait que vous soyez ancien, que ça vous donne le droit de le faire...et d'une part ce n'était pas dans mon intention de vous prendre pour des "NAZES" comme vous dites si bien puis d'autre part ce n'était pas non plus "UNE METHODE" pour avoir plus de réponses...c'est juste que pour ce genre de sujet je ne savais pas dans quelle catégorie la mettre, c'est tout!!vous expliquez puis c'est tout...si vous voulez pas m'aider ce n'est pas non plus la peine de mettre que vous n'allez pas m'aider...chui peut être nouvelle mais bon!!!

au revoir, Na ;) ![Edité le 1/6/2005 par gaelle]

 

[Edité le 1/6/2005 par gaelle]

Lien vers le commentaire
Partager sur d’autres sites

C'est pas grave, je te l'avoue, c'est aussi pour faire un peu peur aux autres.

 

Nous comptons beaucoup sur ta gentillesse pour me pardonner ;)

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

ca va pas faire avancer le schmilblick mais moi kan g commencé en lisp g fé des prog de 10 lignes ki permettaient genre de mettre en avant tous les objets d'un calque à la place de les sélectionner manuellement...

donc ben pas mal pour une débutante ;)

je sais ce que je sais mais comment connaître mon ignorance

Lien vers le commentaire
Partager sur d’autres sites

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é