Aller au contenu

erreur sur cette routine


dilack

Messages recommandés

salut à tous,

quand je charge cette routine sous map 3D 2009 j'ai une erreur de syntaxe alors que sous la version 2006 à l'epoque elle fonctionnait correctement.

merci d'avance pour vos réponse

 

 

(defun errlsp (ch)

(cond

((eq ch "Function cancelled") nil)

((eq ch "quit / exit abort") nil)

((eq ch "console break") nil)

(T (princ ch))

)

(setvar "cmdecho" v1)

(setvar "orthomode" v2)

(setvar "osmode" v3)

(setvar "blipmode" v4)

(setvar "snapang" v5)

(setq *error* olderr)

(princ)

)

(defun C: pte ( / v1 v2 v3 v4 v5 d_pc flag p_o p_f dlt_x d olderr)

(setq v1 (getvar "cmdecho")

v2 (getvar "orthomode")

v3 (getvar "osmode")

v4 (getvar "blipmode")

v5 (getvar "snapang")

)

(setvar "cmdecho" 0)

(setvar "orthomode" 0)

(setvar "blipmode" 0)

(setq olderr *error* *error* errlsp)

(initget 1)

(setq d_pc (getreal "\nEntrer la valeur de la pente (rampe) en % ?: "))

(initget 8)

(setq echll (getpoint "\nEchelle du profil en long X,Y <1000,100>: "))

(if (eq echll ()) (setq echll '(1000 100)))

(setq d_pc (* d_pc (/ (car echll) (cadr echll))))

(setq p_o (getpoint "\nPoint de départ : "))

(if (eq p_o ()) (setq p_o (getvar "lastpoint")))

(initget "Dans Avec _In With")

(if (eq (getkword "\nPente [Dans/Avec] le plan XY : ") "With")

(setq flag T)

(progn

(setvar "snapang" (atan (/ d_pc 100.0)))

(setvar "orthomode" 1)

(setq flag nil)

)

)

(initget 41)

(setq p_f (getpoint p_o "\nPoint final : "))

(setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384)))

(if flag

(progn

(setq dlt_x (sqrt (+ (* (- (car p_o) (car p_f)) (- (car p_o) (car p_f))) (* (- (cadr p_o) (cadr p_f)) (- (cadr p_o) (cadr p_f))))))

(setq d (* dlt_x (/ (sin (atan (/ d_pc 100.0))) (cos (atan (/ d_pc 100.0))))))

(setq p_f (list (car p_f) (cadr p_f) (+ (caddr p_o) d)))

(command "_.line" p_o p_f "")

 

)

(progn

(setq dlt_x (- (car p_f) (car p_o)))

(setq d (/ dlt_x (cos (atan (/ d_pc 100.0)))))

(command "_.line" p_o (polar p_o (atan (/ d_pc 100.0)) d) "")

)

)

(setvar "cmdecho" v1)

(setvar "orthomode" v2)

(setvar "osmode" v3)

(setvar "blipmode" v4)

(setvar "snapang" v5)

(setq *error* olderr)

(prin1)

)

Lien vers le commentaire
Partager sur d’autres sites

bonjour

 

je n'ai pas 2009, mais sous autocad 2010, le chargement de ton fichier me dit aussi une erreur de syntaxe.

 

la cause : remplace

(defun C: pte

par

(defun C:pte

 

il y a un esapce en trop entre c: et pte

 

Mais à mon avis, tu ne dois pas utiliser le bon fichier lsp, car avec Autocad 2006, j'ai exactement le même message d'erreur.

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

orio à raison! C'est l'espace entre ":" et "pte" qui provoque l'erreur de syntaxe.

 

Rajoute aussi dans les déclaration des variables "echll" autrement les lignes suivantes risquent de retourner des valeurs incongrues si valider à blanc.

 

(initget 8)

(setq echll (getpoint "\nEchelle du profil en long X,Y <1000,100>: "))

(if (eq echll ()) (setq echll '(1000 100)))

 

donc:

(defun C:pte ( / v1 v2 v3 v4 v5 d_pc echll flag p_o p_f dlt_x d olderr)

sera beaucoup mieux

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

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é