Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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 plans

Ce 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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

Posté(e)

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

Posté(e)

Bonjour à tous

C'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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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 plan

il 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

 

Posté(e)

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

  • 4 semaines après...
Posté(e)

j'ai lu trop vite la file de discussion

en fait j'execute une action a chaque fois qu'un calque (couche de plan est changé)

variable clayer

 

mais bon voila toujours le code

la 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)

 

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

c'est juste l'editeur visual lisp qui ajoute ses lignes, quand je met a jour la mise en page du code

en 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 outils

c'est super utile pour la lisibilité du code

  • 2 semaines après...
Posté(e)

j'ai trouvé le reacteur had hoc

c'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

 

  • 4 semaines aprè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 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é