Invité samuelM Posté(e) le 23 mai 2011 Posté(e) le 23 mai 2011 Bonjour, Voici un programme simple qui permet de définir un rectangle. je voudrai modifier la ligne getpoint . Voici mon souhait : Que le programme demande à l'utilisateur de place le point de base en x et y à l'emplacement défini par une série de question. (Ce rectangle représente l'emplacement d'une porte ou fenêtre sur les murs d'une maison. Voici les questions : Définition du point de base en y : -sélectionner le point de référence.( ce point est défini en y sur une ligne mais pas en x -Indiquer la hauteur de réservation (par un nombre) -Indiquer l'altitude de la sous-face du linteau (par un nombre)(le résultat est obtenu par addition des deux réponses) en x : -sélectionner le point de référence (ce point est défini en x sur une ligne mais pas en y) - indiquer la distance (par un nombre) (defun c:tableau (/ p1 longueur largeur p3 ) (setq p1 (getpoint (getstring "\nPoint de Base\n") longueur (getdist p1 "\nLargeur tableau: ") largeur (getdist p1 "\nLongeur tableau: ") p3 (mapcar '+ p1 (list longueur largeur)) ) (command "_rectangle" "_non" p1 "_non" p3) (command "_rotate" "d" "" p1 pause "") ) )) Merci pour ce qui voudront bien m'aider
Tramber Posté(e) le 23 mai 2011 Posté(e) le 23 mai 2011 !Hola ! ?Que tal ? Voici 2 façons de faire : (setq lepoint(getpoint '(0 0) "\nPoint de Base :")) (setq lepoint(getpoint "\nPoint de Base: ")) Outre une erreur de paranthèse on voit un getstring dans un getpoint, ca n'est pas valable. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Patrick_35 Posté(e) le 23 mai 2011 Posté(e) le 23 mai 2011 Salut Tu as déjà regardé la fonction polar ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Invité samuelM Posté(e) le 23 mai 2011 Posté(e) le 23 mai 2011 Re, Merci tramber pour ces deux solutions mais le problème, sauf erreur de ma part ce qui est probable, est que le point de base est une selection. mais ce que je souhaite c'est de pouvoir renseigner les coordonnées comme je l'ai décris. peut être que je n'ai pas été assez clair. Patrick_35 : je m'aide aussi d'un livre "programmer autocad par J-P Couwenbergh" et j'essaye de comprendre comment écrire avec cette fonction mais je vais re-regarder si tu m'en parle! Merci déjà Voici le programme sans erreur (setq p1 (getpoint "\nPoint de Base\n") longueur (getdist p1 "\nLargeur tableau: ") largeur (getdist p1 "\nLongeur tableau: ") p3 (mapcar '+ p1 (list longueur largeur)) ) (command "_rectangle" "_non" p1 "_non" p3) (command "_rotate" "d" "" p1 pause "")
Invité samuelM Posté(e) le 23 mai 2011 Posté(e) le 23 mai 2011 Re Voici ce que j'ai pu faire aujourd'hui avec la fonction polar. je ne sais pas si ça tien debout mais ça ne présente pas d'erreur pour le moment.petit modif que je voudrai apporter à : Indiquer la distance ( renseigner par une addition au lieu d'un nombre entier) je serai ravis que des petits ou grand génies me viennent en aide. (defun c:tableau (/ p1 p2 orient dist longueur largeur pause p3 ) (setq p1 (getpoint "\nPoint de Base\n")) (setq orient (getorient"\nIndiquer la direction:")) (setq dist (getdist "\nIndiquer la distance :")) (setq p2 (polar p1 orient dist) longueur (getdist p2 "\nLargeur tableau: ") largeur (getdist p2 "\nLongeur tableau: ") p3 (mapcar '+ p2 (list longueur largeur)) ) (command "_rectangle" "_non" p2 "_non" p3) (command "_rotate" "d" "" p2 pause "") )
Patrick_35 Posté(e) le 23 mai 2011 Posté(e) le 23 mai 2011 Salut C'est bien, mais avec polar, tu peux additionner les angles.Avec le point de base, la longueur et la largeur, les calculs pour un triangle rectangles sont faciles.Tout cela pour éviter la rotation et donc dessiner directement le rectangle correctement. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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