;; rotation fixe enchainée ;; 3 pts pour définir l'angle puis espace pour les 2 1ere ;; (defun c:rtf (/ pts pt1 pt2 ang ang1 ang2) (setq pts (getpoint "sommet")) (if (not (setq ang (getreal "donner la valeur de l'angle ou espace pour le point de départ"))) (progn (setq pt1 (getpoint "\npt de départ ") pt2 (getpoint "\npt d'arrivée ") ang 0.0 ) (setq ang1 (angle pts pt1) ang2 (angle pts pt2) ang (- ang2 ang1) ang (* ang (/ 180 pi)) ;; convertion radian en degrés ) ) ;; (setq ang (* pi (/ ang 180))) ;; pour mémoire convertion de degrés en radian ) (princ (strcat "\n angle " (rtos ang))) (setq obj (ssget) ang2 0.0 pts (trans pts 1 0) ) (setvar "Cmdecho" 0) (princ "\n cliquez pour sortir ou espace pour une autre copie ") (setq continu T) ;; nitialisation de la condition de sortie (while continu (setq ang2 (+ ang ang2)) (command "_rotate" obj "" pts "C" ang2) (setq continu (= nil (getpoint))) ) (setvar "Cmdecho" 1) (princ "sortie de rfix") (princ) )