Aller au contenu

cours N°2 dispo


rimbo

Messages recommandés

Bravo Chchat, mais je ne comprends pas pourquoi tu as gardé ton angle à 45°

 

Voici en un peu plus court pour l'exercice 3

C'est en coordonnées relatives et avec seulement 3 variables, c'est juste pour changer par rapport à l'exercice 2

 

 (setq pt1 (getpoint "\nCoin bas gauche du carré : "))
(setq pt2 (getcorner "\nCoin haut droit du carré : " pt1))
(setq x (distance (list (car pt1) 0.0) (list (car pt2) 0.0))) ; calculer la longueur d'un coté
(command "_pline" pt1 (strcat "@" (rtos x) ",0")(strcat "@0," (rtos x))(strcat "@-" (rtos x) ",0") "c") 

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

c'est pour definir le point 3 si je ne le mets pas a 45 je defini un point 3 avec un angle aleatoire je vais faire un rectangle non ?

 

avec ta foinction tu fait un carre mais ton point3 n'est pas celui utiliser pour le tracé, il ce decale, moi c'est le même :P

CCAD la DAO au service de l'Energie - http://c.cad.free.fr

Lien vers le commentaire
Partager sur d’autres sites

Passons aux exercices 4 et 5 :

 

EXERCICE 4 : Créer une fleche toujours proportionnelle

 

(defun c:fleche ()

 

(defun dtr (a)

(* pi (/ a 180.0)))

 

(setvar "osmode" 0)

 

(setq p1 (getpoint "\nPoint de départ :"))

(setq p2 (getpoint p1 "\npoint d'arrivé :"))

(setq dist (distance p1 p2))

(setq angl (angle p1 p2))

(setq p3 (polar p1 angl (* dist 0.7)))

(setq p4 (polar p3 (+ angl (dtr 90)) (* dist 0.05)))

(setq p5 (polar p3 (- angl (dtr 90)) (* dist 0.05)))

 

(command "_line" p1 p3 "")

(command "_solid" p2 p4 p5 "" "")

 

(princ)

)

 

 

CCAD la DAO au service de l'Energie - http://c.cad.free.fr

Lien vers le commentaire
Partager sur d’autres sites

EXERCICE 5 : Créer une fleche toujours proportionnelle et toujours de gauche a droite

 

(defun c:fleche2 ()

 

(defun dtr (a)

(* pi (/ a 180.0))

)

 

(setvar "osmode" 0)

(setvar "orthomode" 0)

 

(setq p1 (getpoint "\nPoint de départ :"))

(setq p2 (getpoint p1 "\npoint d'arrivé :"))

(setq dist (distance p1 p2))

(setq angl (angle p1 p2))

 

 

(defun f1 ()

(setq p3 (polar p1 angl (* dist 0.7)))

(setq p4 (polar p3 (+ angl (dtr 90)) (* dist 0.05)))

(setq p5 (polar p3 (- angl (dtr 90)) (* dist 0.05)))

(command "_line" p1 p3 "")

(command "_solid" p2 p4 p5 "" "")

)

 

(defun f2 ()

(setq p3 (polar p1 angl (* dist 0.3)))

(setq p4 (polar p3 (+ angl (dtr 90)) (* dist 0.05)))

(setq p5 (polar p3 (- angl (dtr 90)) (* dist 0.05)))

(command "_line" p2 p3 "")

(command "_solid" p1 p4 p5 "" "")

)

 

(cond

((and (> angl 0) (< angl (/ pi 2))) (f1))

((and (> angl (/ pi 2)) (< angl pi)) (f2))

((and (> angl pi) (< angl (* 1.5 pi))) (f2))

((and (> angl (* 1.5 pi)) (< angl (* 2 pi))) (f1))

(t nil)

)

 

(princ)

 

)

 

 

 

CCAD la DAO au service de l'Energie - http://c.cad.free.fr

Lien vers le commentaire
Partager sur d’autres sites

Bravo Chrchat, c'est impressionnant, à ce rythme, les élèves vont dépasser ceux qui les conseils :cool:

 

Sur ton lisp, j'aurai juste deux remarques :P

 

Tu n'intègre pas les angles 0,90,180 et 270, j'ai fait le test au deuxième point de me mettre en ortho, juste histoire de voir, fait le test et tu verra le résultat. Ne le prend pas mal, mais quand on commence à faire des prog et ensuite à les donner, il faut penser à ceux qui l’utiliseront (et qui ne sont par forcement des doués) et des erreurs que ça peut entraîner

Il suffirait dans un des test de faire (<= angl (/ pi 2))

Ensuite, pour sortir du cond, tu indique un T avec un nil, ce qui est contradictoire en soi. Tu teste déjà un angle de 0 à 90, de >90 à 180, de >180 à 270 et de >270 a <0, ce qui revient à faire un cercle au complet, donc, logiquement, pas besoin d'indiquer autre chose, tu dois passer obligatoirement dans une de tes quatre conditions

 

@+

 

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Salut Chrchat

Tu dis qu'il te reste encore une grosse marge de progression quand tu vois nos lisp, mais pas tant que ça. Tu as compris le principe, après ce n'est plus qu'une question de langage. Regarde ce que tu réalise maintenant. Par exemple, tu donne ton dernier lisp à un néophyte (et qui s’en sert) et il te vois avec le même regard que tu avais avant de commencer. Il reste encore des petits trucs à comprendre, après, ce n'est plus qu'une question d'expérience, de logique et de connaître exactement à quoi correspond la fonction.

Ah, je voulais ajouter encore une chose,si tu regardes le programme de BonusCad, je suis certain que tu en comprends une grande partie, et c'est justement en réfléchissant sur ce qu'il a fait, lui ou d'autres, que l'on progresse

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

C'est vrai, j'arrive maintenant a + ou - dechiffrer et comprendre ce genre d'application, je suis donc forcé de reconnaitre que j'avance dans le lisp et c'est génial :)

 

mais il y a encore du travail :D

 

Merci pour tes encouragements

 

et vive cadxp

CCAD la DAO au service de l'Energie - http://c.cad.free.fr

Lien vers le commentaire
Partager sur d’autres sites

carré en polyligne, coin bas gauche et longueur des côtés :

 

(defun c:carre()

(setq cbg (getpoint "\ncoin bas gauche :"))

(setq L (getreal "\nLongueur du segment :"))

(setq cbd (polar cbg 0 L))

(setq chg (polar cbg (/ pi 2) L ))

(setq chd (polar cbd (/ pi 2) L ))

(command "polylign" cbg cbd chd chg "c")

(princ)

)

 

voila pour le 2

Cordialement

 

Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia

 

Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM

Lien vers le commentaire
Partager sur d’autres sites

Bravo Rimbo pour ton lisp http://chevalierseternelsce.free.fr/smilies/Contents/spin3.gif

 

J'aurai juste une remarque

 

(command "polylign" cbg cbd chd [b] [color=red] chg [/color] [/b] "c")

 

Pour faire un carré, trois points suffisent avec un clore

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

j'arrive toujours pas a faire les smilies donc je commente rrrrrrrrrrrrhhhhhhhhhhh ah ah ah

Cordialement

 

Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia

 

Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bonjour a tous !

Je suis petit nouveau, donc petite presentation rapide :

En fait, je suis vos cours depuis le debut par le biais de SSD91, il faisait le lien entre vous et moi, on etait dans la meme boite mais il vient de changer, et ou il est arrive il a du trav et a donc deccroche un petit peu mais je suis tjrs en contact et il m'a dit qu'il allait revenir des que possible... voila pour SSD91

Moi du coup comme je n'avais pas le site (et du trav) j'ai du mettre un peu de temps pour vous trouver, mais c'est fait et donc je vous remercie pour tous vos precieux renseignements qui m'ont bien aidé à evoluer et je vais donc essayer de me joindre a vous si c'est possible pour l'apprentissage?

 

Et merci encore pour déjà tout ce que j'ai appris par vos biais

 

 

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é