Aller au contenu

Lisp ne fonctionne plus sous 2009


aldo127

Messages recommandés

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

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

 

Amicalement

Vincent

 

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

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é