zebulon_ Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Bonjour, je fais très souvent des plans sous forme de cahiers A3, chaque page étant un onglet dont le nom est significatif de ce qu'il représente ("vue en plan", "coupe", etc...). Je numérote chaque page en rajoutant un texte en bas de la feuille 1/5, 2/5... 5/5. C'est un peu fastidieux quand on a 40 présentations et je souhaite automatiser cette "corvée". En utilisant les champs, on arrive à récupérer la variable CTAB, mais du coup les présentations se nommeraient "1", "2", "3" etc..., sans rapport avec ce qu'elles représentent. En plus, pour avoir le nombre total de pages, je ne vois pas bien comment y arriver avec un champ. L'idée est de nommer les présentations en mettant entre parenthèses le numéro de page : "vue en plan (1)", "coupe (2)" etc..., de mettre un bloc avec 2 attributs (un pour le numéro de page, un pour le nombre de page totales) sur chaque présentation et d'utiliser un programme lisp pour renseigner ces 2 attributs. Voirhttp://www.neufgiga.com/n/50-17/share/LNK4818521472a1be441/pour avoir le bloc et voir l'organisation des noms d'onglets. (vl-load-com) (defun modif_attrib (E ETIQ VALEUR / LATT ATT) (if (= (type E) 'ENAME) (setq E (vlax-ename->vla-object E)) ) (setq LATT (vlax-invoke E 'getAttributes)) (foreach ATT LATT (if (= (strcase (vla-get-TagString ATT)) (strcase ETIQ)) (vla-put-TextString ATT VALEUR) ) ) ) (defun GetLayNum (LAY / P1 P2 RES) (setq P1 (vl-string-position (ascii "(") LAY)) (setq P2 (vl-string-position (ascii ")") LAY)) (if (and P1 P2) (setq RES (atoi (substr LAY (+ P1 2) (- P2 P1 1)))) ) RES ) (defun c:vl_pagi (/ ss I LNUM LLAY e LAYOUT NUM) (vla-StartUndoMark (vla-get-activedocument (vlax-get-acad-object))) (setq ss (ssget "_X" '((0 . "INSERT") (2 . "vl_pagi")))) (setq I 0) ;; boucle pour changer l'attribut "Numéro de page" (repeat (sslength ss) (setq e (ssname ss I)) (setq I (+ I 1)) (setq LAYOUT (cdr (assoc 410 (entget e)))) ;; nom de la présentation (if (setq NUM (GetLayNum LAYOUT)) (progn (setq LNUM (cons NUM LNUM)) (setq LLAY (cons e LLAY)) (modif_attrib e "P" (itoa NUM)) ) ) ) ;; boucle pour changer l'attribut "nombre de pages totale" uniquement sur les présentations avec un numéro (setq I 0) (repeat (length LLAY) (setq e (nth I LLAY)) (setq I (+ I 1)) (modif_attrib e "TP" (itoa (apply 'max LNUM))) ) (if (/= (length LLAY) (apply 'max LNUM)) (alert "Incohérence de numérotation") ) (alert (strcat (itoa (length LLAY)) " blocs modifiés")) (vla-EndUndoMark (vla-get-activedocument (vlax-get-acad-object))) (princ) ) Cela répond déjà pas mal à la demande de départ, mais l'étape suivante est de rendre cela encore plus transparent pour l'utilisateur. L'utilisation d'un réacteur me semble donc s'imposer, mais lequel ? S'il faut espionner :- la création d'un nouvel onglet- la supression d'un onglet- l'insertion d'un bloc de pagination- etc...cela commence à faire beaucoup de chose. Je me dis que le plus simple est de modifier les blocs au moment d'une impression et lors d'une publication. Qu'en dites-vous ? AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Fundream Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 J'utilise le lisp RON qui fonctionne très bien pour numéroter les onglet puis : (defun C:PAGING( / nombloc attpage attnumpage adoc numtabs atts id lay_field) ; Paramètres (setq nombloc "N°_PAGE") ; nom du bloc cartouche (setq attpage "PAGE") ; étiquette de l'attribut numéro de page (setq attnumpage "#PAGE") ; ; étiquette de l'attribut nombre de pages ; Fin paramètres (vl-load-com) (setq adoc (vla-get-activedocument (vlax-get-acad-object))) (setq numtabs (itoa (length (layoutlist)))) (vlax-for lt (vla-get-layouts adoc) ;(vla-put-activelayout adoc lt) ; optionnel (vlax-for obj (vla-get-block lt) (if (and (= "AcDbBlockReference" (vla-get-objectname obj)) (= nombloc (vla-get-effectivename obj)) (= :vlax-true (vla-get-hasattributes obj) )) (progn (setq atts (vlax-invoke obj 'getattributes)) (foreach x atts (if (= attpage (vla-get-tagstring x)) (progn (setq id (vla-get-objectid (vla-get-layout (vla-objectidtoobject adoc (vla-get-ownerid obj))))) (setq lay_field (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id)">%).Taborder \\f \"%tc1\">%")) (vla-put-textstring x lay_field) ) ) (if (= attnumpage (vla-get-tagstring x)) (vla-put-textstring x numtabs) ) ) ) ) ) ) ;(vla-put-activelayout adoc (vla-item (vla-get-layouts adoc) 0)) ; activer Layout1, optionnel (princ) ) (prompt "\nCommande à utiliser : PAGING") (princ) Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
Goldorak44 Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Salut, effectivement la pagination des présentations est un problème. Personnelement, je nomme mes présentation 1,2,3,... (c'est pas terrible !) et je récupère la valeur CTAB avec les champs.Pour le nombre de pages, je créer une variable dans fichier/propriété du dessin/personnalisé.Cette vraiable est ensuite récupérée via un champ. Tu as oublié le dwg ! PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
Goldorak44 Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Super ton lisp FUNDREAM. ;) PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
zebulon_ Posté(e) le 22 août 2013 Auteur Posté(e) le 22 août 2013 j'ai rajouté le dwg : l'insertion d'un fichier joint n'a pas fonctionné C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Fundream Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Merci, je ne sais plus de qui il est, perso je n'y comprend rien, mais il marche très bien. Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
Patrick_35 Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Salut Le réacteur me parait bien lourd (pour répondre quand même à la question, avec vlr-acdb-reactor par exemple)Avec les exemples fournis, tu peux faire une routine qui numérote l'attribut en fonction de la position de l'onglet (vla-get-taborder ...) ps : pour FundreamDommage d'utiliser (layoutlist) pour déterminer le nombre d'onglets alors que l'on à l'info dans (vla-get-count (vla-get-layouts adoc)) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Fundream Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Chinois patrick, pour moi c'est du chinois ^^ Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
Patrick_35 Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Chinois patrick, pour moi c'est du chinois ^^C'est comme toutes les langues, il faut bien commencer un jour ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VDH-Bruno Posté(e) le 22 août 2013 Posté(e) le 22 août 2013 Bonsoir zebulon_ Pour la position et le nombre de présentation, pas mieux que le vla-get-taborder et le vla-get-count rappelé par Patrick_35, par contre pour ce qui est de tes interrogations sur le choix du réacteur, j’aurais plus tenté un vlr-miscellaneous-reactor et son événement vlr-layoutswitched (déclenché chaque fois que l’utilisateur change de présentation). Cela me semble beaucoup plus simple et plus économe qu’un vlr-acdb-reactor et suffisamment robuste pour le besoin.. A+ Apprendre => Prendre => Rendre
Patrick_35 Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Salut Bruno J'avais songé à ce réacteur, mais dans le cas de création/suppression d'onglets ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
capde06 Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Salut patrickil y a quelque temps on a eu un post sur ce sujetca a donné ce prog ca renomme les onglets1er "cartouche2 eme "page 01 sur xxetc.... il suffit ensuite de mettre un champ "ctab" dans les presentationsje l'utilise pour faire des carnets de coupes (defun c:ren-onglet (/ doc express lay lst n i txt) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object)) n -1 i 1 prefix "0" txt nil long (itoa (- (length (layoutlist)) 1)) ) ;_ Fin de setq (vla-startundomark doc) (if (eval 'acet-ui-progress-done) (progn (acet-ui-progress-init "" (1- (vla-get-count (vla-get-layouts doc))) ) ;_ Fin de acet-ui-progress-init (setq express T) ) ;_ Fin de progn (progn (princ "\nTravail en cours...") (princ) ) ;_ Fin de progn ) ;_ Fin de if (vlax-for lay (vla-get-layouts doc) (setq lst (cons (list (vla-get-taborder lay) lay) lst)) ) ;_ Fin de vlax-for (while (setq lay (assoc i lst)) (cond ((eq n -1) (setq txt "Cartouche") ) ((>= n 0) (setq txt1 (itoa (+ n 1))) (if (< (strlen txt1) 2) (setq txt1 (strcat "0" txt1)) ) (if (< (strlen long) 2) (setq long (strcat "0" long)) ) (setq txt (strcat "Page " txt1 " sur " long) ) ;_ Fin de setq ) ) ;_ Fin de cond ;_ Fin de while (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-name (list (cadr lay) txt)) ) ;_ Fin de vl-catch-all-error-p (progn (vla-put-name (vla-item (vla-get-layouts doc) txt) (strcat "c" txt) ;(strcat txt) ) ;_ Fin de vla-put-name (vla-put-name (cadr lay) txt) ) ;_ Fin de progn ) ;_ Fin de if (and express (acet-ui-progress-safe i)) (setq n (1+ n) i (1+ i) ) ;_ Fin de setq ) ;_ Fin de if (and express (acet-ui-progress-done)) (princ (strcat "\nRenumérotation de " (itoa (1+ n)) " présentation(s)." ) ;_ Fin de strcat ) ;_ Fin de princ (vla-endundomark doc) (princ) ) Vous fîtes ce que vous pûtes et vous m'épatâtes !!!!
VDH-Bruno Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Salut, J'avais songé à ce réacteur, mais dans le cas de création/suppression d'onglets ? Je me doute bien que tu y avais songé, dans le cas de la création je ne crois pas que cela soit un problème car il va bien falloir aller dedans pour régler la vue sur l’EO, après effectivement dans le cas de déplacement ou suppression d’onglet, c’est plus délicat..Dans pour les impressions pas de problème, par contre pour une publication, il faudrait tester.. C’est pourquoi je parlais de code relativement robuste. (Au pire un changement d’onglet résout le soucis) Ce qui m’ennuie le plus vis-à-vis de mon environnement de travail et de celui des collègues dessinateurs que je connais c’est d’écrire une routine pour un type de bloc et d’attribut spécifique. Car bien souvent les tailles (A0 A1 … A4), ainsi que pour les types de plans (plan d’ensembles, détails, accessoires, fiches de coffrage, plans de ferraillage) les noms des cartouches et d’attributs diffèrent.J’ai même réalisé des documents de présentation ou les numéros de page sont écrits dans des entités textes. Sur ce point j’ai bien quelques idées mais cela mérite quelques testes avant de m’avancer plus, et prochainement le temps risque de me manquer, en ce moment je renforce régulièrement le B.E .T en production car il prend un petit peu l’eau (doux euphémisme). Voilà si j’ai un peu plus de temps, j’essayerais de regarder une variante plus proche de mon environnement de travail, a moins que quelqu’un d’autre s'y colle. A+ Apprendre => Prendre => Rendre
zebulon_ Posté(e) le 23 août 2013 Auteur Posté(e) le 23 août 2013 Bonjour, Pour la position et le nombre de présentation, pas mieux que le vla-get-taborder et le vla-get-count rappelé par Patrick_35 j'y vois quand même un inconvénient. Il arrive de faire des présentations qu'on ne souhaite pas diffuser. Si je mets un numéro dans le nom de l'onglet, il sera compté sinon il est laissé de côté. De mon côté, je me suis dit que la numérotation des pages doit être nickel avant l'impression ou la publication. Donc, un réacteur qui épie la commande PLOT me parait convenir. ;;; Lisp à charger uniquement ... ne pas exécuter !!! (vlr-command-reactor "modifie numero" '((:vlr-commandWillStart . StartPlot))) (defun StartPlot (calling-reactor StartCommandInfo / TheCommandStart) (setq TheCommandStart (nth 0 StartCommandInfo)) (if (= TheCommandStart "PLOT") (progn (alert "début PLOT") ) ) ) Mais quid de la commande PUBLISH ? Ce n'est pas une commande ? Car elle n'est pas transmise par le vlr-command-reactor ? AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Patrick_35 Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Mais quid de la commande PUBLISH ? Ce n'est pas une commande ? Car elle n'est pas transmise par le vlr-command-reactor ?Par exemple (defun StartPlot (calling-reactor StartCommandInfo) (and (member (car StartCommandInfo) '("PLOT" "PUBLISH")) (alert "début PLOT/PUBLISH") ) ) ps : Affecte une variable à ton réacteur si tu as besoin de le supprimer ou pour vérifier qu'il n'est pas déjà actif. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VDH-Bruno Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Par exemple (defun StartPlot (calling-reactor StartCommandInfo) (and (member (car StartCommandInfo) '("PLOT" "PUBLISH")) (alert "début PLOT/PUBLISH") ) ) ps : Affecte une variable à ton réacteur si tu as besoin de le supprimer ou pour vérifier qu'il n'est pas déjà actif. @+ Je pense que zébulon parlait lorsque l'on sélectionne les onglets que l'on passe par un clic-bouton-droit dans le menu déroulant et non sur la ligne de commande. A+ Apprendre => Prendre => Rendre
zebulon_ Posté(e) le 23 août 2013 Auteur Posté(e) le 23 août 2013 Je pense que zébulon parlait lorsque l'on sélectionne les onglets que l'on passe par un clic-bouton-droit dans le menu déroulant et non sur la ligne de commande. A+ Je me suis mal exprimé. C'est effectivement lorsque je fais un clic droit sur les onglets sélectionnés pour les publier que rien ne se passe. Je ne me sers jamais de la commande PUBLIER en dehors de ce cas Si quelqu'un a une idée pour espionner l'événement : "publier les présentations sélectionnées..." AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
Patrick_35 Posté(e) le 23 août 2013 Posté(e) le 23 août 2013 Ah oui, effectivement.Alors, la seule solution est d'utiliser le réacteur proposé par Bruno.C'est lors de l'activation de ma présentation que je mets à jour les attributs. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
zebulon_ Posté(e) le 23 août 2013 Auteur Posté(e) le 23 août 2013 Je vais m'orienter vers ce que propose Bruno, d'autant que, quand je sélectionne les onglets pour les publier, il doit bien se passer quelque chose au niveau du réacteur proposé ? A voir. MerciAmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
VDH-Bruno Posté(e) le 27 août 2013 Posté(e) le 27 août 2013 (modifié) Re,Voilà si j’ai un peu plus de temps, j’essayerais de regarder une variante plus proche de mon environnement de travail, a moins que quelqu’un d’autre s'y colle. J’ai un peu survolé les différentes solutions proposé, celle de faire un bloc spécifique ne me convenant que moyennement, et celle de renommé tous les onglets de présentation pas beaucoup plus. Donc je propose ma variante (un premier jet encore un peu brut), qui répond au fonctionnement suivants :- La commande PAGINE demande de pointer un texte ou un attribut d’une référence de bloc quelconque, qu’elle édite automatiquement comme un élément de pagination pour la présentation de définition de l'élement.- Les éléments ainsi sélectionné devenant des " références" de pagination au moyen de xdata, ils sont automatiquement mis à jour à chaque changement d’onglet au moyen d'un réacteur d'évènement.- L’espace Objet étant considéré comme espace de conception, il est volontairement décompté et est supposé valoir 0. Le code à tester : ;; VDH-Bruno le: 28-08-2013 ;; ------------------------------- PAGINE V 2.00 ----------------------------------- ;; Transforme l'entité (texte ou attribut) sélectionné en objet de pagination ;; automatique pour la présentation dans laquelle il est définie. (vl-load-com) ;; Déclaration du réacteur ;; (vlr-remove *command-reactor-pagine*) (or *command-reactor-pagine* (setq *command-reactor-pagine* (vlr-command-reactor "Pagination Automatique" '((:vlr-commandEnded . pagine-callback)))) ) ;; Routine de pagination automatique (defun pagine-callback (rea evenement) (or *acaddoc* (setq *acaddoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (and (eq (car evenement) "LAYOUT_CONTROL") (ssget "_X" '((0 . "INSERT,*TEXT") (-3 ("PaginationData")))) (vla-delete (vlax-map-collection (vla-get-ActiveSelectionSet *acaddoc*) '(lambda (obj / xtypeOut xdataOut etiquette obj att) ;; Obtention des Xdata attaché à l'objet (vla-GetXData obj "PaginationData" 'xtypeOut 'xdataOut) ;; Teste si etquette="" c'est un texte à traiter, sinon c'est un attribut (if (= "" (setq etiquette (cadr (mapcar 'vlax-variant-value (vlax-safearray->list xdataOut))))) (vla-put-textstring obj (bv:GetTaborder "" obj)) (foreach att (vlax-invoke obj 'GetAttributes) (if (= etiquette (vla-get-tagstring att)) (vla-put-textstring att (bv:GetTaborder "" obj)) ) ) ) ) ) ) ) (princ) ) ;; Numérotation de la présentation de l'objet (defun bv:GetTaborder (pref obj) (or *acaddoc* (setq *acaddoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (if (= (type obj) 'ENAME) (setq obj (vlax-ename->vla-object obj)) ) (strcat pref (itoa (vla-get-taborder (vla-get-layout (vla-objectidtoobject *acaddoc* (vla-get-ownerid obj))))) "/" (itoa (1- (vla-get-count (vla-get-layouts *acaddoc*)))) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;; Programme principal ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Programme de pagination (defun c:pagine (/ ent) ;; vérifié si pas de plantage encas dabsence d'application non enregstrer (or (tblsearch "APPID" "PaginationData") (regapp "PaginationData")) (setq loop T) ;; sélection utilisateur (while loop (setq ent (car (nentsel "\nSélectionnez l'élément (texte ou attribut) à paginer: ")) loop (cond ((not ent) (princ "\nPas d'objet sélectionné !")) ((wcmatch (cdr (assoc 0 (setq ent (entget ent)))) "ATTRIB,*TEXT") nil) ((princ "\nSélectionnez un texte ou un attribut !")) ) ) ) ;; ajout des données étendues de l'application "PaginationData" (if (= (cdr (assoc 0 ent)) "ATTRIB") (entmod (append (entget (cdr (assoc 330 ent))) (list (list -3 (list "PaginationData" (cons 1000 (cdr (assoc 2 ent)))))) ) ) (entmod (append ent (list (list -3 (list "PaginationData" (cons 1000 "")))))) ) ;; pagination automatique (pagine-callback nil (list "LAYOUT_CONTROL")) ) ;; Code de dépagination d'un objet (defun c:unpagine (/ ent) ;; sélection utilisateur (while (not (setq ent (car (entsel "\nSélectionnez l'élément à supprimer des références d'objet à paginer: "))) ) (princ "\nPas d'objet sélectionné !") ) (entmod (append (entget ent) (list (list -3 (list "PaginationData"))))) (princ) ) (prompt "\nPAGINE / UNPAGINE commande à saisir pour convertir (ou pas) une entité textes/attribut en référence de pagination automatique." ) (princ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; A+ Bruno Edit: Version modifié pour faire suite au post de Patrick_35 en changeant le réacteur vlr-miscellaneous-reactor par le réacteur vlr-command-reactor.pagine.LSP Modifié le 28 août 2013 par VDH-Bruno Apprendre => Prendre => Rendre
VDH-Bruno Posté(e) le 27 août 2013 Posté(e) le 27 août 2013 Je vais m'orienter vers ce que propose Bruno, d'autant que, quand je sélectionne les onglets pour les publier, il doit bien se passer quelque chose au niveau du réacteur proposé ? A voir. MerciAmicalementVincent Pour avoir testé, il ne se passe rien lors de la sélection des onglets...A+ Apprendre => Prendre => Rendre
Patrick_35 Posté(e) le 28 août 2013 Posté(e) le 28 août 2013 Salut Bruno Cela me parait bien compliqué.J'ai donc regardé de plus près les réacteurs. (defun pagine (rea cde) (and (eq (car cde) "LAYOUT_CONTROL") (alert "Changement/Sélection d'onglet(s)") ) ) (setq p35 (vlr-command-reactor nil '((:vlr-commandWillStart . pagine)))) Pour supprimer le réacteur(vlr-remove p35) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VDH-Bruno Posté(e) le 28 août 2013 Posté(e) le 28 août 2013 Merci beaucoup Patrick_35, je suis heureux de ton intervention, je viens de tester ton réacteur sur la commande "LAYOUT_CONTROL" sans jamais le prendre en défaut, je pense que tu as trouvé la meilleur solution au problème. Commande "LAYOUT_CONTROL" que je ne connaissais pas, ce qui m’a donné l’idée d’écrire ces quelques lignes pour connaître le nom des commandes envoyer par l’évènement vlr-commandWillStart (defun inspecteCommandWillStart (rea cde) (alert (strcat "La commande " (car cde) " va être executé..") ) ) (setq inspecte (vlr-command-reactor nil '((:vlr-commandWillStart . inspecteCommandWillStart)))) (Ps : Je pense que c’est avec un code similaire que tu l’as débusqué ;) )A+ Bruno Apprendre => Prendre => Rendre
Patrick_35 Posté(e) le 28 août 2013 Posté(e) le 28 août 2013 (Ps : Je pense que c’est avec un code similaire que tu l’as débusqué ;) )Tout à fait, sauf que je n'utilise pas la fonction alert afin de faire un copier/coller de la commande (mode fainéant) ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VDH-Bruno Posté(e) le 28 août 2013 Posté(e) le 28 août 2013 Tout à fait, sauf que je n'utilise pas la fonction alert afin de faire un copier/coller de la commande (mode fainéant) ;)+1 :D :D :D Apprendre => Prendre => Rendre
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