Bred Posté(e) le 18 janvier 2007 Posté(e) le 18 janvier 2007 Salut,Patrick_35 m'a montré comment utiliser les réacteurs de commandes, mais j'ai un souci à une commande :ceci ne fonctionne pas : (setq Rea_FIN_Commandes (vlr-command-reactor nil (list (cons :vlr-commandEnded (function Reacteur_FIN_Commandes))))) (defun Reacteur_FIN_Commandes (Rea Cde) (cond ((equal (car Cde) "DIMLINEAR")(command "_change" (entlast) "" "p" "ca" "Cotation" "")) (t nil) ) ) j'ai une erreur : erreur: invalid AutoCAD command: nil :casstet: je ne comprends pas...merci de votre aide... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 18 janvier 2007 Posté(e) le 18 janvier 2007 SalutPas de "command" dans les réacteurs. Que des expressions lisp ou vlisp @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 18 janvier 2007 Posté(e) le 18 janvier 2007 Salut, Essaye comme ça : (setq Rea_FIN_Commandes (vlr-command-reactor nil '((:vlr-commandEnded . Reacteur_FIN_Commandes)) ) ) (defun Reacteur_FIN_Commandes (Rea Cde) (if (equal (car Cde) "DIMLINEAR") (entmod (subst (cons 8 "cotation") (assoc 8 (entget (entlast))) (entget (entlast)) ) ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 18 janvier 2007 Auteur Posté(e) le 18 janvier 2007 Pas de "command" dans les réacteurs. Que des expressions lisp ou vlispc'est que j'avais fini par déceler, merci .... j'étais en train de regarder en vlisp quand ... Essaye comme ça :(gile) est arrivé est m'a offert la solution... Merci !!!!!(gile ne serait plus en recherche d'emploi :D ???... on le voit moins souvent dernierement ;) !!!....) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Bred Posté(e) le 18 janvier 2007 Auteur Posté(e) le 18 janvier 2007 Ah.... maintenant j'ai un problème pour les cotations continus..... (defun Reacteur_FIN_Commandes (Rea Cde / obj) (setq obj (entlast)) (cond ((equal (car Cde) "DIMLINEAR")(entmod (subst (cons 8 "Cotation")(assoc 8 (entget obj))(entget obj)))) ;cotation [b] ((equal (car Cde) "DIMCONTINUE")(progn (setq obj (entnext obj)) (while obj (entmod (subst (cons 8 "Cotation")(assoc 8 (entget obj)) (entget obj))) (setq obj (entnext obj)) ) ) ) [/b];cotation continue (t nil) ) ) ça fonctionne "en direct" (chargement de la boucle while seule), mais pas quand je charge le programme.... :casstet: Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 18 janvier 2007 Posté(e) le 18 janvier 2007 Il faut que tu fasses ton (entlast) en début de commande car un _dimcontinue peut faire plusieurs cotes avant de finir/quitter la commande, ce qui fait que l'entlast ne prends plus le bon dernier ps : tu as pensé à regarder du coté de vlr-acdb-reactor en :vlr-objectAppended, qui ne prends que ce qui a été ajouté @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Bred Posté(e) le 18 janvier 2007 Auteur Posté(e) le 18 janvier 2007 Il faut que tu fasses ton (entlast) en début de commande (....)OK !!!! super ça marche !!! merci !!! (defun Reacteur_FIN_Commandes (Rea Cde / obj) (cond ((equal (car Cde) "DIMLINEAR")(entmod (subst (cons 8 "1 Cotation")(assoc 8 (entget (entlast)))(entget (entlast))))) ((equal (car Cde) "DIMCONTINUE")(progn (setq dernier_obj (entnext dernier_obj)) (while dernier_obj (entmod (subst (cons 8 "1 Cotation")(assoc 8 (entget dernier_obj)) (entget dernier_obj))) (setq dernier_obj (entnext dernier_obj)) ) ) ) (t nil) ) ) (defun Reacteur_Commandes (Rea Cde) [b] (setq dernier_obj (entlast))[/b] ) (if (not Rea_Commandes) (setq Rea_Commandes (vlr-command-reactor nil (list (cons :vlr-commandWillStart (function Reacteur_Commandes))))) ) (if (not Rea_FIN_Commandes) (setq Rea_FIN_Commandes (vlr-command-reactor nil (list (cons :vlr-commandEnded (function Reacteur_FIN_Commandes))))) ) ps : tu as pensé à regarder du coté de vlr-acdb-reactor en :vlr-objectAppended, qui ne prends que ce qui a été ajoutéhein ? pensé ?.... moi je ne pense plus.... :( Comment fait-tu pour comprendre (et trouvé) ces fonctions alors que j'ai vu dans un de tes messages que tu avais du mal en Anglais ??? :casstet: [Edité le 18/1/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 18 janvier 2007 Posté(e) le 18 janvier 2007 Comment fait-tu pour comprendre (et trouvé) ces fonctions alors que j'ai vu dans un de tes messages que tu avais du mal en Anglais ??? :casstet: C'est que je faisais comme toi avant que l'on me montre cette fonction :cool: @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 18 janvier 2007 Posté(e) le 18 janvier 2007 Comment fait-tu pour comprendre (et trouvé) ces fonctions alors que j'ai vu dans un de tes messages que tu avais du mal en Anglais ??? En fait, il apprend l'anglais (comme moi, d'ailleurs) sur TheSwamp Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 18 janvier 2007 Posté(e) le 18 janvier 2007 Et aussi grace au traducteur de google ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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