Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > Lisp
Lisp Forum d'entraide sur la programmation en langages fonctionnels Lisp et Common Lisp
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/09/2012, 11h52   #1
grekenski108
Invité de passage
 
Homme Henri Gale
Directeur de projet
Inscription : septembre 2012
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Henri Gale
Localisation : France, Loire (Rhône Alpes)

Informations professionnelles :
Activité : Directeur de projet
Secteur : Bâtiment

Informations forums :
Inscription : septembre 2012
Messages : 3
Points : 0
Points : 0
Par défaut LISP Problème Alignement Copie

Bonjour,
Je suis en train de développer un petit programme LISP permettant d’espacer des barres d’aciers dans une poutre.

La première partie dessine le contour de la poutre (Jusque là tout va bien)

La seconde partie je voudrai copier la barre d’acier dessiné à la distance « e1 » que je viens de rentrer.
sauf que j’aimerai que la copie se face sur un plan horizontal sur la droite…


Voici mon programme, la seconde partie débute avec la fonction « While »

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
(defun c:POUTRE()


 
  (setvar "osmode" 0)
  (command "ortho actif")	
  (setvar "cmdecho" 0)

  	(setq P1 (getpoint "\n Cliquer sur le point d'insertion de la poutre"))

  	(setq d1 (getdist "\n Donner la largeur en cm de l'appui gauche"))

  	(setq d2 (getdist "\n Donner la largeur en cm de l'appui droit"))

  	(setq d3 (getdist "\n Donner la hauteur en cm de la poutre"))

  	(setq d4 (getdist "\n Donner la portée de la poutre"))

	(setq d5 (getdist "\n Donner l'enrobage des aciers "))
  
	
 
  ;Place les points du contour extérieur de la poutre

  	(setq P2 (polar P1 (/ pi 2) (+ d3 150)))
	(setq P3 (polar P2 0 (+ d1 (+ d2 d4))))
  	(setq P4 (polar P3 (- (/ pi 2)) (+ d3 150)))

  ;Place les points du contour intérieur de la poutre
  	
	(setq P5 (polar P1 0 d1))
	(setq P6 (polar P5 (/ pi 2) 150))
  	(setq P7 (polar P6 0 d4))
	(setq P8 (polar p7 (- (/ pi 2)) 150))

  ;Dessine les barres
  

	(command "calque" "E" "01 BA Coupe" "CO" "U" "255, 0, 255" "" "TL" "Continuous" "" "")
  	(command "_pline" P1 P2 P3 P4 "")
  
	(command "_pline" P5 P6 P7 P8 "")


	(command "calque" "E" "01 BA Fer" "CO" "U" "255, 255, 255" "" "TL" "Continuous" "" "")
	(setq d6 (getdist "\n Donner l'espacement au nu de l'appui gauche "))
  
 	(setq P9  (polar P6 (/ pi 2) d5))
	(setq P10 (polar P9 0 d6 ))	
	(setq P11 (polar P10 (/ pi 2) (- d3 (+ d5 d5))))
  	(setq Pb  (polar P10 0 1))
	
  	(setq b1  (command "_pline" P10 P11 ""))

  (while (or (= rep "O")(= rep "OUI"))
(setq e1 (getdist "\n Donner l'espacement "))
  	(command "_copy" "d" "" 0 e1  ""))
 
)

Exemple Ordre de grandeur pour faire marcher le programme :

Donner la largeur en cm de l'appui gauche : 20 (cm)

Donner la largeur en cm de l'appui droit : 20 (cm)

Donner la hauteur en cm de la poutre : 60 (cm)

Donner la portée de la poutre : 450 (cm)

Donner l'enrobage des aciers : 3 (cm)

Donner l'espacement au nu de l'appui gauche : 5 (cm)

Donner l'espacement : 20 (cm)


Si quelqu’un pouvait m’aider…
grekenski108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h07.


 
 
 
 
Partenaires

Hébergement Web