dr.loveless Posté(e) le 22 juillet 2004 Posté(e) le 22 juillet 2004 Salut, je voulais savoir si qq conaitrait une méthode pour executer automatiquement un programme lisp à chaque activation d'un plan ( par ex, je suis sur un plan, je veux changer de plan donc je vais dans fen^tre et je choisis le nouveau plan, à ce moment je voudrais executer un lisp automatiquement. Il existe la fonction startup pour chaque ouverture de plan, mais j'ai rien trouver pour chaque activation de plan!! Ca me parait impossible, mais sait-on jamais !! Merci Le DOC
Patrick_35 Posté(e) le 22 juillet 2004 Posté(e) le 22 juillet 2004 Salut,Par plan tu veux parler de calques ?Enfin, quoi que ce soit, tu peux passer par les reacteurs.Il y a une explication sur ce sujet par bruno_l @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
dr.loveless Posté(e) le 22 juillet 2004 Auteur Posté(e) le 22 juillet 2004 J'ai pas compris le rapport !! Le DOC
Patrick_35 Posté(e) le 22 juillet 2004 Posté(e) le 22 juillet 2004 Je vois qu'on ne se comprend pas. Tout est dans la notion de plan. Un layer, un fichier, une présentation peuvent êtres des plansCe que je te propose sur le lien ci-dessus est un exemple qui détourne une commande autocad en y ajoutant un lisp. Dans l'exemple qui est fournit, quand j'insère un bloc, un attribut qui lui est associé reste toujours sur le même angle, quel que soit l'angle de rotation du bloc. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Pako Posté(e) le 22 juillet 2004 Posté(e) le 22 juillet 2004 Bonne question Doc ! Tu veux faire exécuter un lisp chaque fois que tu change de dessin chargé dans Autocad. Soit pas le menu fenêtre ou par Ctrl-Tab. Il y a surment un façon que j'igrore, désolé. Peut-être en VBA qui lui va exécuter ton Lisp ? l'ACADien ! http://img124.exs.cx/img124/7999/start.gif
didier Posté(e) le 22 juillet 2004 Posté(e) le 22 juillet 2004 hello le Doc,encore une fois, c'est un manque de communication,plan c'est layer ou fichier ou vue ?en vba tu as la possibilité, si c'est au changement de calque.explique toi Éternel débutant... Mon site perso : Programmer dans AutoCAD
dr.loveless Posté(e) le 26 juillet 2004 Auteur Posté(e) le 26 juillet 2004 Je vois que Pako m'a compris, c'est bien çà que je veux faire, des que dans Autocad je change de plan ( donc j'active un nouveau plan ou dessin ) un lisp doit être éxecuté automatiquement. Je comprends pas l'incompréhension de Patrick et Didier ?? Je ne dispose certainement pas d'un vocabulaire suffisant. Pourquoi quand je parle de plan (dessin) , on me parle de layer (calque)?? merci. Je recapèpète : Avec la fonction Startup, on peut executé un Lisp automatiquement à chaque ouverture ou création d'un dessin. Je cherche un moyen d'executé un lisp à chaque activation de celui-ci, j'entends par activation le fait le rendre le dessin "actif" donc d'avoir la possibilité de travailler dessus. Par exemple, j'ouvre le dessin n°1 ( avec Startup, un lisp s'execute ), j'ouvre un autre dessin ( dessin n°2 ; avec startup le même lisp que précédemment s'execute), ensuite je veux pouvoir poursuivre le dessin n°1, donc je vais dans "fenêtre" et en bas je choisis "dessin1" ( donc je l'active), et là le startup ne s'execute plus vu qu'il ne s'execute que lors de l'ouverture du dessin. Je cherche donc le moyen d'executer un lisp systématiquement à ce niveau ( donc à chaque activation d'un dessin). Voilà, j'espère avoir été assez explicit cette fois ci. Merci Le DOC
Patrick_35 Posté(e) le 26 juillet 2004 Posté(e) le 26 juillet 2004 Bonjour à tousC'est bon, j'ai compris ce que tu veux. Je ne peux pas t'aider cette fois ci, car j'ignore comment faire (Pako a été très clair avec le ctrl+tab).Pour l'incompréhension sur le plan, c'est juste qu'il y a différentes manières de travailler, que chacun à ses propres notions et qu'il faut essayer de traduire ce que veux dire la personne. Pour revenir à ton souci, c'est pour faire quoi exactement. il est peut-être possible de ruser autrement que d'essayer de jouer avec le changement de dessin. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
didier Posté(e) le 26 juillet 2004 Posté(e) le 26 juillet 2004 bonsoir,pour expliquer l'incompréhension :un PLAN , c'est l'ancien nom du LAYER mais comme c'est aussi un objet, on fait tous des PLANS ,c'est souvent confondu avec un FICHIER .donc lorsque tu dis : j'ouvre un planil faudrait dire, pour être explicite : j'ouvre un fichier,et dans ce fichier je souhaite créer des CALQUES,et là, c'est clair pour tout le monde.amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 26 juillet 2004 Posté(e) le 26 juillet 2004 re bonsoir,tout à mes explications,je ne t'ai même pas répondu,c'est avec le VBA, que tu auras cette possibilité.ciao Éternel débutant... Mon site perso : Programmer dans AutoCAD
dr.loveless Posté(e) le 27 juillet 2004 Auteur Posté(e) le 27 juillet 2004 OK, merci pour ces explications concernant les "plans". En ce qui concerne le programme va falloir que je fouille en VBA, je vous tiendrai au courant si celle-ci sont fructueuses. Merci encore à tous et bonnes vacances Le DOC
bruno_l Posté(e) le 24 août 2004 Posté(e) le 24 août 2004 c'est possible en lisp avec le reacteur 'vlr-editor-reactor'ca interresse du monde ?
Patrick_35 Posté(e) le 24 août 2004 Posté(e) le 24 août 2004 :D Oui, oui, oui, je suis preneur :D @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bruno_l Posté(e) le 25 août 2004 Posté(e) le 25 août 2004 j'ai lu trop vite la file de discussionen fait j'execute une action a chaque fois qu'un calque (couche de plan est changé)variable clayer mais bon voila toujours le codela partie classique -------------------------------------------------------------(vl-load-com)(vlr-remove-all);;; fonction cleanreac;;; nettoyage de tous les reacteurs (defun CLEANREAC () (mapcar 'vlr-remove-all '(:vlr-acdb-reactor :vlr-editor-reactor :vlr-linker-reactor :vlr-object-reactor ) ) ;_ Fin de mapcar) ;_ Fin de defun;;;;;;fin de la partie classique------------------------------------------------------------------;;;;la focntion appelé par le reacteur(defun CHOIX_REAC (A B) (setq CALQUE_1 (getvar "clayer") VARIABLE (car B) ETAT (cdr B) ) ;_ Fin de setq (if (and (= VARIABLE "CLAYER") (/= CALQUE_0 CALQUE_1)) (progn (alert "le calque à été changé") ;ou n'importe quoi d'autre ... (setq CALQUE_0 CALQUE_1) ; ne pas enlever!!! ) ;_ Fin de progn ) ;_ Fin de if) ;_ Fin de defun;;; fin de la focntion appelé par le reacteur ;; appel de cleanreac(CLEANREAC)(setq CALQUE_0 (getvar "clayer"))(vlr-editor-reactor NIL '((:vlr-sysvarchanged . CHOIX_REAC))) ;|«Visual LISP© Format Options»(72 2 40 2 T "Fin de " 80 9 1 2 1 T T nil T);*** NE PAS AJOUTER de texte au-dessous du commentaire! ***|; bon d'accord je suis hors sujet, mais ... si il n'y a pas de solution c'est qu'il n'y a pas de problème. (devise shadok)
Patrick_35 Posté(e) le 26 août 2004 Posté(e) le 26 août 2004 Merci pour ton lisp, même s’il est hors sujet, ça permet de comprendre certaines fonctionnalités Il y a juste une chose que je ne comprends pas(72 2 40 2 T "Fin de " 80 9 1 2 1 T T nil T) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bruno_l Posté(e) le 26 août 2004 Posté(e) le 26 août 2004 c'est juste l'editeur visual lisp qui ajoute ses lignes, quand je met a jour la mise en page du codeen faii il fait des ajouts sur tous le code lisp du style;_ Fin de defun;_ Fin de if... c'est l'option formater le code dans l'editeur du menu outilsc'est super utile pour la lisibilité du code
bruno_l Posté(e) le 9 septembre 2004 Posté(e) le 9 septembre 2004 j'ai trouvé le reacteur had hocc'est "vlr-docmanager-reactor" et sont event name ":vlr-documentbecamecurrent" un petit test(defun CHOIX_REAC (A B) (alert "salut") ;_ Fin de cond )(vlr-docmanager-reactor NIL '((:vlr-documentbecamecurrent . CHOIX_REAC))) quand on passe sur le plan ou a été executé le code une case de dialogue apparait
dr.loveless Posté(e) le 7 octobre 2004 Auteur Posté(e) le 7 octobre 2004 Merci je viens juste de prendre connaissance de ta soluce, mais çà devrait fonctionner Le DOC
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