coxsurf56 Posté(e) le 8 décembre 2011 Posté(e) le 8 décembre 2011 bonjour, j'essaye de créer un rectangle centré par rapport a un point, avec comme longueur et largeur des dimensions saisica doit etre simple , mais j'y arrive pasci joint mon code (defun c:rc () (setq a(getreal "\largeur : ")) (setq b(getreal "\longueur : ")) (setq a1(/ a 2)) (setq b1(/ b 2)) (setq a2(* -1 a1)) (setq b2(* -1 b1)) (setq pt(getpoint "\npoint d'insertion : ")) (setq pt1 (polar a2 b2 0)) (setq pt2 (polar a2 b1 0)) (setq pt3 (polar a1 b1 0)) (setq pt4 (polar a2 b1 0)) (command "scu" pt "") (command "_pline" pt1 pt2 pt3 pt4) (princ) ) merci d'avance
didier Posté(e) le 8 décembre 2011 Posté(e) le 8 décembre 2011 Coucou une image pour t'éviter de copierce qui t’empêcherait de comprendre tes erreurs.polar nécessite une angle et une distance http://images.imagehotel.net/x4ydwjw5tt.png amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
coxsurf56 Posté(e) le 8 décembre 2011 Auteur Posté(e) le 8 décembre 2011 ok pigé je ne connaissait pas car renvoi la 1er valeur d'une liste (donc la valeur x de mon point d'insertion) et card la 2e valeur d'une liste (donc la valeur y de mon point d'insertion)facile et tres pratique merci bienpour polar c'etait un de mes nombreux essais infructueux
didier Posté(e) le 8 décembre 2011 Posté(e) le 8 décembre 2011 Coucou ravi de voir un nouveau venu dans le monde des folles parenthèses amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
VDH-Bruno Posté(e) le 8 décembre 2011 Posté(e) le 8 décembre 2011 Bonsoir, Je sais que didier à répondu à ton besoin, je te propose tout de même une petite variante avec la commande _rectang et la mémorisation des demi-valeurs pour te simplifier les calculs par la suite.. (defun c:rc1 (/ demi-larg demi-long pt) (setq demi-larg (/ (getreal "\nLargeur : ") 2) demi-long (/ (getreal "\nLongueur : ") 2) pt (getpoint "\npoint d'insertion : ") ) (command "_rectang" (list (- (car pt) demi-long) (- (cadr pt) demi-larg)) (list (+ (car pt) demi-long) (+ (cadr pt) demi-larg)) ) (princ) ) Une autre variante possible est de laisser la possibilité à l’utilisateur d’orienter son rectangle..(defun c:rc2 (/ demi-larg demi-long pt) (setq demi-larg (/ (getreal "\nLargeur : ") 2) demi-long (/ (getreal "\nLongueur : ") 2) pt (getpoint "\npoint d'insertion : ") ) (command "_rectang" (list (- (car pt) demi-long) (- (cadr pt) demi-larg)) (list (+ (car pt) demi-long) (+ (cadr pt) demi-larg)) ) (command "_rotate" (entlast) "" pt "pause") (princ) ) A+ Apprendre => Prendre => Rendre
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