TPS001 Posté(e) le 28 juin 2010 Posté(e) le 28 juin 2010 Bonjour à toutes et à tous. je ne connais rien sur la programmation lisp et Comme indiqué en titre, j'ai trouvé ce lisp dans une forum c'est un lisp qui créer des gaines flexibles et quand je le charger ,je dessine un ligne et je fais le choix d'objet et quand je selectionne la ligne il me demande duct size et il indique sur la boite de commande les erreures suivantes : choix des objets: Duct size : 100Commande inconnue "PLINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "PLINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "FX". Appuyez sur F1 pour obtenir de l'aide.Commande inconnue "LINE". Appuyez sur F1 pour obtenir de l'aide.; erreur: Fonction annuléeest ce qu'il y a quelqu'un qui peut m'aider et merci pour touts
(gile) Posté(e) le 28 juin 2010 Posté(e) le 28 juin 2010 Salut, Le LISP que tu as trouvé a certainement été écrit pour une version anglaise.Par exemple : (command "PLINE" ...) ne fonctionne que sur une version anglaise(command "POLYLIGN" ...) ne fonctionne que sur une version française(command "_PLINE" ...) fonctionnera sur toutes les versions Tu peux donc essayer "d'internationaliser" le code en faisant précéder tous les noms de commande et de leurs options par un underscore (_). Il n'est pas certain que ce soit suffisant pour que le LISP fonctionne bien, mais ça me semble incontournable.Tu peux aussi t'adresser à l'auteur du LISP, pour lui expliquer le problème. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
TPS001 Posté(e) le 28 juin 2010 Auteur Posté(e) le 28 juin 2010 Merci pour votre reponse mais je ne sait pas comment adresser a le programmaur de ce lisp mais monsieur gile est ce que vous pouvez corrigé ce lisp si c'est possible et merci pour tout
(gile) Posté(e) le 28 juin 2010 Posté(e) le 28 juin 2010 J'ai expliqué ce qu'il fallait faire pour corriger : Tu peux donc essayer "d'internationaliser" le code en faisant précéder tous les noms de commande et de leurs options par un underscore (_). Il suffit donc de remplacer, par exemple : (command "ucs" "w") par (command "_ucs" "_w") de même pour (command "pline" ...) et (command "line" ...) (defun dtr (d) (/ (* d pi) 180) ) (defun rtd (r) (/ (* r 180) pi) ) (defun C:FX () (setvar "osmode" 0) (command "_ucs" "_w") (setq ar_ents (ssget '((0 . "ARC,LINE")))) (setq d_sz (getreal "\nDuct size : ")) (setq flex_ctr 0 flex_len (sslength ar_ents) ) (repeat flex_len (setq ar_ent (ssname ar_ents flex_ctr)) (setq ar_data (entget ar_ent) e_typ (cdr (assoc 0 ar_data)) j_d 50 pt1_lst '() pt2_lst '() ) (if (= e_typ "ARC") (progn (setq ar_rad (cdr (assoc 40 ar_data)) ar_cpt (cdr (assoc 10 ar_data)) s_ang (rtd (cdr (assoc 50 ar_data))) e_ang (rtd (cdr (assoc 51 ar_data))) ar_ang (+ (- e_ang s_ang) 360) ) (if (>= ar_ang 360) (setq ar_ang (- ar_ang 360)) ) (setq a_len (/ (* 2 pi ar_rad ar_ang) 360.0)) (setq n_jo (atoi (rtos (/ a_len j_d) 2 0))) (setq di_ang (/ ar_ang n_jo 2.0) st_ang s_ang ) (repeat n_jo (setq pt_1 (polar ar_cpt (dtr st_ang) (- ar_rad (/ d_sz 2.0))) ) (setq pt1_lst (append pt1_lst (list pt_1))) (setq pt_2 (polar ar_cpt (dtr st_ang) (+ ar_rad (/ d_sz 2.0))) ) (setq pt2_lst (append pt2_lst (list pt_2))) (setq st_ang (+ st_ang di_ang)) (setq pt_3 (polar ar_cpt (dtr st_ang) (+ (- ar_rad (/ d_sz 2.0)) (/ j_d 2.0)) ) ) (setq pt1_lst (append pt1_lst (list pt_3))) (setq pt_4 (polar ar_cpt (dtr st_ang) (- (+ ar_rad (/ d_sz 2.0)) (/ j_d 2.0)) ) ) (setq pt2_lst (append pt2_lst (list pt_4))) (setq st_ang (+ st_ang di_ang)) ) (setq pt_1 (polar ar_cpt (dtr st_ang) (- ar_rad (/ d_sz 2.0)))) (setq pt1_lst (append pt1_lst (list pt_1))) (setq pt_2 (polar ar_cpt (dtr st_ang) (+ ar_rad (/ d_sz 2.0)))) (setq pt2_lst (append pt2_lst (list pt_2))) ) ) (if (= e_typ "LINE") (progn (setq l_stpt (cdr (assoc 10 ar_data)) l_enpt (cdr (assoc 11 ar_data)) l_leng (distance l_stpt l_enpt) n_jo (atoi (rtos (/ l_leng j_d) 2 0)) j_dis (/ l_leng n_jo 2.0) f_ang (angle l_stpt l_enpt) lpt_1 l_stpt ) (repeat n_jo (setq jpt_1 (polar lpt_1 (+ (dtr 90) f_ang) (/ d_sz 2.0))) (setq pt1_lst (append pt1_lst (list jpt_1))) (setq jpt_2 (polar lpt_1 (+ (dtr 270) f_ang) (/ d_sz 2.0))) (setq pt2_lst (append pt2_lst (list jpt_2))) (setq lpt_1 (polar lpt_1 f_ang j_dis)) (setq jpt_3 (polar lpt_1 (+ (dtr 90) f_ang) (- (/ d_sz 2.0) (/ j_d 2.0)) ) ) (setq pt1_lst (append pt1_lst (list jpt_3))) (setq jpt_4 (polar lpt_1 (+ (dtr 270) f_ang) (- (/ d_sz 2.0) (/ j_d 2.0)) ) ) (setq pt2_lst (append pt2_lst (list jpt_4))) (setq lpt_1 (polar lpt_1 f_ang j_dis)) ) (setq jpt_1 (polar lpt_1 (+ (dtr 90) f_ang) (/ d_sz 2.0))) (setq pt1_lst (append pt1_lst (list jpt_1))) (setq jpt_2 (polar lpt_1 (+ (dtr 270) f_ang) (/ d_sz 2.0))) (setq pt2_lst (append pt2_lst (list jpt_2))) ) ) (command "_pline" (foreach n pt1_lst (command n))) (command "_pline" (foreach n pt2_lst (command n))) (setq l_ctr 0) (repeat (+ (* n_jo 2) 1) (command "_line" (nth l_ctr pt1_lst) (nth l_ctr pt2_lst) "") (setq l_ctr (1+ l_ctr)) ) (setq flex_ctr (1+ flex_ctr)) ) ;repeat ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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