Aller au contenu

[Résolu] Explication d'erreur


Messages recommandés

Posté(e)

Bonjour,

 

je rencontre un problème que l'éditeur de lisp me trouve :

[VERIFICATION du TEXTE Chargement de tube - Copie.lsp...]

.........

; erreur: placement incorrect d'un point en entrée

; Vérification terminée.

 

 

comment savoir où se trouve l'erreur et pourquoi ?

 

voici mon code :

 

;dessiner un tube
(defun c:tbp()



(setq id (load_dialog "tubpvc.dcl"))
(new_dialog "PVC_EVAC" id)
(action_tile "cancel" "(done_dialog)")
(action_tile "culotte" "(Embranchement_f)")

(start_dialog)








(unload_dialog id)







;;;  ICI il manquerait l'enregistrement de l'état de OSMODE
 (setq diam_pvc (getint "Diamètre :"))
 (setq P1 (getpoint "premier point :"))
 (setq P2 (getpoint "second point :"))
 (command "_line" P1 P2 "")


 (setq courant_tubpvc (getvar "INSUNITS"))

 (if (= courant_tubpvc 6)
   (setq diam_pvc (/ diam_pvc 100))
 )


 (command "_offset"
      (/ diam_pvc 2)
      (entlast)
      "M"
      "@-1,0"
      "@0,-1000"
      "Q"
 )



 (initget "Embranchement Coude Sortir")
 (setq choix (getkword "\nEmbranchement/Sortir/Coude <Sortir> :"))
 (if (= choix "Embranchement")
   (Embranchement_f)
 )
 (if (= choix "Coude")
   (Coude_f)
 )
;;;Et ici sa restitution


)








(defun Embranchement_f ()

(setq diam_pvc (getint "Diamètre :"))

;transformer la variable diam_pvc en chaine de caractère pour la comparer par la suite
(setq str_diam_pvc (itoa diam_pvc))


(unload_dialog id)

(initget  "Gauche Droite")
(setq choix (getkword "\nGauche/Droite <Gauche> :"))
(if(= choix "Gauche")

 	(command "_insert"
              (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg")
               	((= str_diam_pvc  "110")"culotte_bv144_back.dwg")
               	((= str_diam_pvc  "125")"culotte_bx144_back.dwg")
               	(T"culotte_onsaitjamais.dwg"))
              P2
              -1 1 P1)
)

(if(= choix "Droite")

 	(command "_insert"
              (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg")
               	((= str_diam_pvc  "110")"culotte_bv144_back.dwg")
               	((= str_diam_pvc  "125")"culotte_bx144_back.dwg")
               	(T"culotte_onsaitjamais.dwg"))
              P2
              -1 -1 P1)
)

)

(defun Coude_f ()

;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite
(setq str_diam_pvc (itoa diam_pvc))


(initget  "Gauche Droite")
(setq choix (getkword "\nGauche/Droite <Gauche> :"))
(if(= choix "Gauche")

 	(command "_insert"
              (cond((= str_diam_pvc "100")"coude_ct44_back")
               	((= str_diam_pvc  "110")"coude_cv44_back")
               	((= str_diam_pvc  "125")"coude_cx44_back")
               	(T"coude_onsaitjamais.dwg"))
              P2
              -1 1 P1)
)

(if(= choix "Droite")

 	(command "_insert"
              (cond((= str_diam_pvc "100")"coude_ct44_back")
               	((= str_diam_pvc  "110")"coude_cv44_back")
               	((= str_diam_pvc  "125")"coude_cx44_back")
               	(T"coude_onsaitjamais.dwg"))
              P2
              -1 -1 P1)
)

)[VERIFICATION du TEXTE Chargement de tube.lsp...]
...
; Vérification terminée.

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

La vérification de la fenêtre via l'IDE me renvoie l'erreur, pas besoin des blocs, le code s'arrête avant l'insertion. je te donne le tubpvc.dcl :

 

 

PVC_EVAC :dialog{

 label = "PVC_EVAC";


   :row{



       :button{label = "RESEAU"; key = "reseau"; fixed_width = true;}

       :button{label = "CULOTTE"; key = "culotte"; fixed_width = true;}

       :button{label = "COUDE"; key = "coude"; fixed_width = true;}

       :button{label = "PIED DE CHUTTE"; key = "pied_de_chute"; fixed_width = true;}

       :button{label = "TAMPON"; key = "tampon"; fixed_width = true;}

       :button{label = "ASSEMBLAGE"; key = "assemblage"; fixed_width = true;}

       :button{label = "REGARD"; key = "regard"; fixed_width = true;}


 }

       :button{label = "ANNULER"; key = "cancel"; is_default = false; is_cancel = true;}



} 

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

Salut,

 

En regardant vite fait, il me semble que ton erreur vient de l'expression :

(command "_offset" (/ diam -2.0) der )

der contient la liste dxf de la dernière entité or la commande _offset attend un nom d'entité.

Fais plutôt :

(command "_offset" (/ diam -2.0) (entlast))

 

Par ailleurs, je vois que tu utilises des variables globales pour faire passer des valeurs à tes fonctions.

C'est une très mauvaise habitude, il vaut beaucoup mieux utiliser des attributs (paramètres) et déclarer les variables en local pour limiter la portée et "isoler" ces symboles.

 

Exemple, appel de la fonction :

(Embranchement_f diam_pvc P1 P2)

 

Définition de fonction :

(defun Embranchement_f (diam_pvc P1 P2 / str_diam_pvc choix) ...)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

QUEL BOULET JE SUIS :

 

Je n'ai pas envoyé le bon code : voici le code qui pose problème :

 

 

;dessiner un tube
(defun c:tbp()



(setq id (load_dialog "tubpvc.dcl"))
(new_dialog "PVC_EVAC" id)
(action_tile "cancel" "(done_dialog)")
(action_tile "culotte" "(Embranchement_f)")

(start_dialog)








(unload_dialog id)







;;;  ICI il manquerait l'enregistrement de l'état de OSMODE
 (setq diam_pvc (getint "Diamètre :"))
 (setq P1 (getpoint "premier point :"))
 (setq P2 (getpoint "second point :"))
 (command "_line" P1 P2 "")


 (setq courant_tubpvc (getvar "INSUNITS"))

 (if (= courant_tubpvc 6)
   (setq diam_pvc (/ diam_pvc 100))
 )


 (command "_offset"
   (/ diam_pvc 2)
   (entlast)
   "M"
   "@-1,0"
   "@0,-1000"
   "Q"
 )



 (initget "Embranchement Coude Sortir")
 (setq choix (getkword "\nEmbranchement/Sortir/Coude <Sortir> :"))
 (if (= choix "Embranchement")
   (Embranchement_f)
 )
 (if (= choix "Coude")
   (Coude_f)
 )
;;;Et ici sa restitution


)








(defun Embranchement_f ()

(setq diam_pvc (getint "Diamètre :"))

;transformer la variable diam_pvc en chaine de caractère pour la comparer par la suite
(setq str_diam_pvc (itoa diam_pvc))


(unload_dialog id)

(initget  "Gauche Droite")
(setq choix (getkword "\nGauche/Droite <Gauche> :"))
(if(= choix "Gauche")

  (command "_insert"
           (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg")
                ((= str_diam_pvc  "110")"culotte_bv144_back.dwg")
                ((= str_diam_pvc  "125")"culotte_bx144_back.dwg")
                (T"culotte_onsaitjamais.dwg"))
           P2
           -1 1 P1)
)

(if(= choix "Droite")

  (command "_insert"
           (cond((= str_diam_pvc "100")"culotte_bt144_back.dwg")
                ((= str_diam_pvc  "110")"culotte_bv144_back.dwg")
                ((= str_diam_pvc  "125")"culotte_bx144_back.dwg")
                (T"culotte_onsaitjamais.dwg"))
           P2
           -1 -1 P1)
)

)

(defun Coude_f ()

;transformer la variable diam_pvc en chaine de carctère pour la comparer par la suite
(setq str_diam_pvc (itoa diam_pvc))


(initget  "Gauche Droite")
(setq choix (getkword "\nGauche/Droite <Gauche> :"))
(if(= choix "Gauche")

  (command "_insert"
           (cond((= str_diam_pvc "100")"coude_ct44_back")
                ((= str_diam_pvc  "110")"coude_cv44_back")
                ((= str_diam_pvc  "125")"coude_cx44_back")
                (T"coude_onsaitjamais.dwg"))
           P2
           -1 1 P1)
)

(if(= choix "Droite")

  (command "_insert"
           (cond((= str_diam_pvc "100")"coude_ct44_back")
                ((= str_diam_pvc  "110")"coude_cv44_back")
                ((= str_diam_pvc  "125")"coude_cx44_back")
                (T"coude_onsaitjamais.dwg"))
           P2
           -1 -1 P1)
)

)[VERIFICATION du TEXTE Chargement de tube.lsp...]
...
; Vérification terminée.

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

Bonjour,

 

(command "_offset" (/ diam -2.0) der )

 

Pour compléter les propos des (gile),

(/ diam -2.0) risque de retourner un nombre négatif, et donc une erreur, de plus il te manque un troisième argument qui est le côté du décalage..

 

Je t’invite à relire ma réponse que je t’avais ici sur ce sujet..

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Re,

 

QUEL BOULET JE SUIS :

Je n'ai pas envoyé le bon code :

 

Ca arrive, visiblement nos post ce sont croisés, quelque part ça me rassure car avec tes lignes de codes précédentes je n’y comprenais plus rien, désolé de n’avoir plus trop de temps pour regarder ton nouveau code, plus tard peut être…

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Problème corrigé, c'était lié à la fin du code, une ligne en trop qui vient de l'éditeur LISP :

 

[VERIFICATION du TEXTE Chargement de tube.lsp...]
...
; Vérification terminée.

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

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é