aldo127 Posté(e) le 19 octobre 2009 Partager Posté(e) le 19 octobre 2009 Bonjour, J'utilisais ce lisp pour représenter un tube coupé.Sous Autocad 2009, il ne fonctionne plus! Quelqu'un peut m'aider en corrigeant le lisp pour qu'il fonctionne à nouveau. Merci ;************************** ROD-END.LSP *********************************** ; By Simon Jones Autodesk Ltd, London March 1987 ; This macro constructs a "broken shaft end" at the end of two ; specified lines. The "S" shaped curve starts at a point on the ; "nearest" line to the first pick-point. Both lines will be trimmed ; or extended to neatly intersect the "S" shape. ;******************* SYSTEM VARIABLE STORE ********************* ; Store system variables (defun MODES (a) (setq MLST '()) (repeat (length a) (setq MLST (append MLST (list (list (car a) (getvar (car a)))))) (setq a (cdr a))) ) ; Reset System variables (defun MODER () (repeat (length MLST) (setvar (caar MLST) (cadar MLST)) (setq MLST (cdr MLST)) ) ) ;****************** ANGLE CONVERTERS *************************** (defun DTR (a) (* pi (/ a 180.0)) ) (defun RTD (a) (/ (* a 180.0) pi) ) ;********************** CON-LST ******************************** ; Add new point to list of previous points (defun CON-LST (a d) (append l (list (polar pt1 a d))) ) ;******************* LINE SELECTION **************************** (defun PICK (prmpt / e) (setq e (entsel prmpt)) (if (null e) (pick prmpt) (cond ((/= (cdr (assoc 0 (entget (car e)))) "LINE") (prompt "\nError: Entity is a ") (princ (cdr (assoc 0 (entget (car e))))) (pick prmpt) ) (T (eval 'e) ) ) ) ) ;********************** MAIN PROGRAM **************************** (defun C:ROD-END (/ p1 p2 pt1 pt2 dist ang l) (modes '("BLIPMODE" "CMDECHO" "HIGHLIGHT" "ORTHOMODE")) (setvar "CMDECHO" 0) (setvar "HIGHLIGHT" 0) (setvar "ORTHOMODE" 0) (setq p1 (pick "\nSelect first line: ")) (setq p2 (pick "\nSelect second line: ")) (setvar "BLIPMODE" 0) (setq pt1 (osnap (cadr p1) "near")) (setq pt2 (inters (cdr (assoc 10 (entget (car p2)))) (cdr (assoc 11 (entget (car p2)))) pt1 (polar pt1 (+ (angle (cdr (assoc 10 (entget (car p1)))) (cdr (assoc 11 (entget (car p1)))) ) (dtr 90) ) 1 ) nil ) ) (command "CHANGE" (car p1) "" pt1) (command "CHANGE" (car p2) "" pt2) (setq dist (distance pt1 pt2) ang (angle pt1 pt2) l (list pt1) l (con-lst (- ang (dtr 31)) (* dist 0.29)) l (con-lst ang (* dist 0.5)) l (con-lst (+ ang (dtr 11.3)) (* dist 0.76)) l (append l (list pt2)) l (con-lst (- ang (dtr 11.3)) (* dist 0.76)) l (con-lst ang (* dist 0.5)) ) (command "PLINE") (foreach n l (command n)) (command "") (command "PEDIT" "L" "E" "T" (- (rtd ang) 90) "X" "F" "") (moder) (princ) ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
zebulon_ Posté(e) le 19 octobre 2009 Partager Posté(e) le 19 octobre 2009 Bonjour, un problème de langue. Il ne fonctionne plus sous Autocad 2009 version française, parce qu'elle ne connait pas les commandes anglo-saxonnes. Il faudrait donc changer toutes les lignes où il y a (command ...) (command "PEDIT" "L" "E" "T" (- (rtd ang) 90) "X" "F" "") deviendrait (command "_PEDIT" "_L" "_E" "_T" (- (rtd ang) 90) "_X" "_F" "") avec un "_" devant toutes les commandes et toutes les options de commande pour que la version française (ou autre) comprenne la commande internationale AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi) Lien vers le commentaire Partager sur d’autres sites More sharing options...
bonuscad Posté(e) le 19 octobre 2009 Partager Posté(e) le 19 octobre 2009 Ne pas oublier aussi de traduire: (setq pt1 (osnap (cadr p1) "near")) en (setq pt1 (osnap (cadr p1) "_near")) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius Lien vers le commentaire Partager sur d’autres sites More sharing options...
usegomme Posté(e) le 19 octobre 2009 Partager Posté(e) le 19 octobre 2009 BonjourIl serait aussi pas mal de désactiver l'accrochage objet en mode commande ici (command "_CHANGE" (car p1) "" "_non" pt1) (command "_CHANGE" (car p2) "" "_non" pt2)et là (command "_PLINE") (foreach n l (command "_non" n)) Lien vers le commentaire Partager sur d’autres sites More sharing options...
aldo127 Posté(e) le 19 octobre 2009 Auteur Partager Posté(e) le 19 octobre 2009 Merci, avec tout ces modifs (sauf "non"), cela refonctionne. Merci beaucoup à vous Lien vers le commentaire Partager sur d’autres sites More sharing options...
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