sechanbask Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 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 Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
didier Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 coucou je n'ai pas les blocs nécessaires pour testermais je n'arrive pas à reproduire le problème de quoi parles-tu exactement ? de la vérification de la fenêtre via l'IDE ?ou bien d'un dysfonctionnement du programme ? amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
sechanbask Posté(e) le 18 novembre 2011 Auteur Posté(e) le 18 novembre 2011 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 Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
(gile) Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 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
sechanbask Posté(e) le 18 novembre 2011 Auteur Posté(e) le 18 novembre 2011 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 Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
VDH-Bruno Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 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
VDH-Bruno Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 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
sechanbask Posté(e) le 23 novembre 2011 Auteur Posté(e) le 23 novembre 2011 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 Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
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