Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Je suis nouveau sur le forum et débutant en LISP. Dans le cadre d'une licence pro CAO/DAO Multimédia pour le BTP à Nîmes, j'ai un programme à réaliser.

J'ai à peu de chose près finalisé un petit programme de réalisation de pieux et j'aimerai y intégrer une boite de dialogue.

Le problème est que je ne sais pas comment intégrer cette boite pour qu'ensuite mon programme récupère et utilise les valeurs entrées dedans.

 

Merci de votre aide.

 

 

Voici mon fichier LISP:

(defun c:pieux1( / )
(setq mod (getvar "osmode")) ; enregistre les accrochages objet
(command "calque" "n" "0-Pieux" "co" 5 "0-Pieux" "ch" "0-Pieux" "")


;tracer du pieu
(setq P (getpoint "Sélectionner le point de base" ))
(setq U (getstring "Unité utilisé (m/cm) ?"))
(setvar "osmode" 0)	;désactive l'accrochage objet	
(setq diam (getdist "Diamètre du pieux : "))
(setq largeur (getdist "Largeur de la tête de pieux : "))

;;;--- Création des points des entités  
(setq A1 (polar (polar P (/ pi 2) (/ largeur 2)) pi (/ largeur 2)))	;point tête de pieu
(setq A2 (polar (polar P 0 (/ largeur 2)) (/ pi 2) (/ largeur 2)))	;point tête de pieu
(setq A3 (polar (polar P (/ pi -2) (/ largeur 2)) 0 (/ largeur 2)))	;point tête de pieu
(setq A4 (polar (polar P pi (/ largeur 2)) (/ pi -2) (/ largeur 2)))	;point tête de pieu
 	(setq B1 (polar P (/ pi 2) largeur))	;extrémité axe
 	(setq B2 (polar P 0 largeur))		;extrémité axe
 	(setq B3 (polar P (/ pi -2) largeur))	;extrémité axe
 	(setq B4 (polar P pi largeur))		;extrémité axe
 	(setq AT (polar B1 0 largeur))		;point d'insertion des attributs


(command "couleur" 5)			;active la couleur bleu
(command "_pline" A1 A2 A3 A4 "cl")	;création de la tête de pieu
(command "cercle" P (/ diam 2) "")	;création du pieu
 

 
(command "couleur" 1)		;active la couleur rouge
(command "ligne" B1 B3 "")	;création des axes
(command "ligne" B2 B4 "")	;création des axes
(command "couleur" 2)

   
 (if (= U "cm")
   (progn
 	(command "attdef" "R" "Invisible" "" "AS" "Entrer arase sup" "" B2 20 0 "" )		;attribut AS
(command "attdef" "" "Diamètre" "Entrer le diamètre du pieux" "" "" 20 0 "" )		;attribut Diamètre
	(command "attdef" "" "Charges" "Entrer la charge" "" "" 20 0 "" )			;attribut Charge
(command "attdef" "Invisible" "" "Numero" "Entrer numéro" "" AT 20 0 "" )		;attribut Numéro

   )
   (progn
 	(command "attdef" "R" "Invisible" "" "AS" "Entrer arase sup" "" B2 0.2 0 "" )		;attribut AS
(command "attdef" "" "Diamètre" "Entrer le diamètre du pieux" "" "" 0.2 0 "" )		;attribut Diamètre
	(command "attdef" "" "Charges" "Entrer la charge" "" "" 0.2 0 "" )			;attribut Charge
(command "attdef" "Invisible" "" "Numero" "Entrer numéro" "" AT 0.2 0 "" )		;attribut Numéro
))

(setq bn (strcat "Pieux"(getstring "Indiquer le diamètre du pieu :")))
(prompt "\nSelectionner les objets du bloc")
(setq ss (ssget))
(command "_-block" bn P ss "")

 (setvar "attdia" 1)
 (setvar "OSMODE" 679)
 (setq orient (/ (* (getangle "Sélectionner l'orientation du pieux" ) 360) (* 2 pi)))
 (setq pt (getpoint "\nSélectionner le point d'insertion du pieux: ")) 
 (command "_insert" bn pt 1 1 orient)
 
 
 (setq rep (getstring "\nVoulez vous insérer un autre pieu ? (o/n): "))

 (if (or (= rep "o") (= rep "oui"))
   (progn
   (terpri)(setq rep "O")
   (while (or (= rep "O")(= rep "OUI"))

 

 

 

 

Et mon fichier DCL:

pieux:dialog {
label = "création du pieu" ;

: column {
label = "Choix de l'unité";
: toggle {
label = "Centimètre";
key = "cm";
}

: toggle {
label = "Mètre";
key = "m";
}
}	

: column {
label = "Dimensions";
: edit_box
{
label = "Entrer le diamètre du pieu";
key = "diam";
edit_width = 6;
}	    
: edit_box
{
label = "Entrer la largeur de la tête de pieu";
key = "largeur";
edit_width = 6;
}
 }
 
: row {
: edit_box
{
label = "Entrer le nom du bloc";
key = "bname";
edit_width = 6;
}
   }

:spacer{width = 1;}
ok_cancel;}

   (setq orient (/ (* (getangle "Sélectionner l'orientation du pieux" ) 360) (* 2 pi)))
   (setq pt (getpoint "\nSélectionner le point d'insertion du pieux: ")) 
   (command "_insert" bn pt 1 1 orient)
   (command "redess")
   (setq rep (strcase (getstring "\nVoulez vous insérer un autre pieux ? (o/n): ")))
   ))
   "")
 (setvar "osmode" mod) ; remet les accrobj
)

 

[Edité le 24/6/2010 par kenico33]

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é