chris32 Posté(e) le 26 avril 2021 Partager Posté(e) le 26 avril 2021 Bonjour la communauté, j'expose mon probléme, je réalise des gros plans de bâtiments dans mon espace Objet, dans l'espace présentation de créer des fenetres de certaine zone. Jusque là c'est classique, or je peux réaliser de nombreuse présentation avec 1 ou 2 fenetres par présentation. La question est de savoir s'il est possible par un lisp de pouvoir automatiquement créer un cadre dans l'espace Objet ( qui représente la fenetre de présentation) avec le numéro du Folio afin de repérer rapidement dans l'espace objet où a été fait la vue (ce cadre serait dans un calque non vue....ça sert juste à rapidement voir où on a zoomé). Merci pour vos retours Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Curlygoth Posté(e) le 26 avril 2021 Partager Posté(e) le 26 avril 2021 mmm... alors non... par contre en programmation c'est faisable ^^ (par contre je fais du VBA) tu pourrais créer tes "fenetres" dans ta/tes présentation, la selectionner pour avoir ton rapport longueur/hauteur et placer ce "zoom" dans ton espace objet pour que le détail rentre dans cette fenetre... Citer Mon site Web (en cours de construction) : Site DA-CODE de @didier Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fraid Posté(e) le 26 avril 2021 Partager Posté(e) le 26 avril 2021 Bonjour, Tu dessine le contour de ta fenêtre et tu tape CHANGESPACE. c'est sans le texte... Citer https://github.com/Fraiddd Lien vers le commentaire Partager sur d’autres sites More sharing options...
chris32 Posté(e) le 26 avril 2021 Auteur Partager Posté(e) le 26 avril 2021 Merci Fraid pour cette fonction, mais cela implique de devoir refaire un rectangle sur ma fenetre de présentation pour lui changer d'espace...de plus cela ne va pas m'inscrire automatiquement le numéro du folio. Curlygoth, je ne suis pas marié avec le lisp...le VBA me va tout aussi bien, l'idée étant bien d'automatiser le principe. Cependant la procédure ne doit pas faire autant de cadre dans l'espace objet que de fois ou je lance la procédure, il doit ainsi reconnaitre si un cadre pour cette fenetre a déjà été réalisé, enfin une fenetre sur l'espace présentation zoom sur une petite portion du plan (espace objet), or il faudrait que dans l'espace objet ce cadre puisse apparaitre plus grand que juste la fenetre de presentation (pour le voir rapidement dans l'espace objet). Ci-dessous un exemple...dans ma présentation la fenetre se limite juste au dessin du milieu, dans l'espace objet mon cadre est bien plus grand Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
didier Posté(e) le 26 avril 2021 Partager Posté(e) le 26 avril 2021 Bonjour @chris32 En commande native cela n'existe pas je confirme la réponse de Curlygoth, il faut programmer. La réponse de Fraid ne devrait pas te satisfaire car CHANGESPACE fait l'inverse de ce que tu demandes, par exemple tu as une FMULT en espace papier, tu dessines une polyligne du cadre et en lançant CHANGESPACE, le cadre que tu viens de dessiner va se retrouver dans l'espace objet, à l'échelle de l'espace objet en fonction de la hauteur de zoom de la FMULT (ZOOMXP). Pour faire ce que tu demandes, il faudra être vigilant sur l'échelle à laquelle tu souhaites voir ton cadre dans l'espace papier en le dessinant en "unités dessin", je m'explique : Espace papier en millimètres et Espace objet en mètres : Un A4 portrait au 1/200 devra être dessiné en espace objet par un rectangle de 59.40 de haut sur 42.0 de large, on est OK ?. Il existe déjà des routines qui font ça, mais je ne sais pas te guider et laisse faire tes recherches, à moins que tu souhaites qu'on te fasse quelque chose et dans cas dis-le. Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
chris32 Posté(e) le 26 avril 2021 Auteur Partager Posté(e) le 26 avril 2021 Bonjour Didier, Je pense bien qu'il doit exister ce type de routine, j'ai bien essayer de chercher sur internet, mais les éléments ne correspondent pas forcement à ma rechercher... chacun demande ces petites spécificités qui leurs sont propres. Aujourd'hui ce travaille je le fais manuellement, ce qui est à la fois chronophage, et pas forcement interessant à faire, d'où cette automatisation pour me concentrer à un vrai travail de recherche. Le top serait que lorsque que l'on fait une fenetre de présentation on a la possibilité de cliquer sur une macro qui ouvre une fenetre "VBA" sur la zone où l'on a pointé le détail et que l'on puisse adapter la taille du rectangle de localisation. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 26 avril 2021 Partager Posté(e) le 26 avril 2021 Salut, Une réponse en LISP. Ça ne correspond peut-être pas exactement à ton cahier des charges (qui est plutôt exigeant) mais libre à toi de peaufiner cette routine. Lancer VP2MS et sélectionner la fenêtre. (defun c:vp2ms (/ ent center width height pts) (if (and (setq ent (car (entsel "\nSélectionnez une fenêtre: "))) (= (cdr (assoc 0 (entget ent))) "VIEWPORT") ) (progn (setq center (getpropertyvalue ent "CenterPoint") width (/ (getpropertyvalue ent "Width") 2.) height (/ (getpropertyvalue ent "Height") 2.) ) (command-s "_.mspace") (setvar 'cvport (getpropertyvalue ent "Number")) (entmake (append (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 410 "Model") (cons 8 "VIEWPORTS") (cons 100 "AcDbPolyline") (cons 90 4) (cons 70 1) ) (setq pts (mapcar '(lambda (p) (cons 10 (trans (trans p 3 2) 2 0)) ) (list (list (- (car center) width) (- (cadr center) height)) (list (+ (car center) width) (- (cadr center) height)) (list (+ (car center) width) (+ (cadr center) height)) (list (- (car center) width) (+ (cadr center) height)) ) ) ) ) ) (entmake (list (cons 0 "TEXT") (cons 100 "AcDbEntity") (cons 410 "Model") (cons 8 "VIEWPORTS") (cons 100 "AcDbText") (car pts) (cons 40 (getvar 'textsize)) (cons 1 (getvar 'ctab)) (cons 7 (getvar 'textstyle)) ) ) (command-s "_.pspace") ) ) (princ) ) Citer Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 26 avril 2021 Partager Posté(e) le 26 avril 2021 Bonsoir à toutes et tous, Il y a lisp de Bred vu et revu par plusieurs programmeurs en fonction de leurs besoins,.. Les derniers échanges à ce propos (entre temps, je n'y suis pas revenu,.) => Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
chris32 Posté(e) le 26 avril 2021 Auteur Partager Posté(e) le 26 avril 2021 merci à vous tous pour vos reponses... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 27 avril 2021 Partager Posté(e) le 27 avril 2021 HELLO commande : CEP4 déplacer ici Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 27 avril 2021 Partager Posté(e) le 27 avril 2021 @lili2006@PHILPHIL C'est peut-être moi qui ait mal compris, mais le LISP de Bred fait exactement l'inverse de celui que j'ai proposé : il crée des fenêtres de présentation à partir de cadres dans l'espace objet. Or il m'a semblé que la demande était de créer des cadres dans l'espace objet correspondant à des fenêtres existant dans l'espace papier. Citer Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
vincentp010 Posté(e) le 27 avril 2021 Partager Posté(e) le 27 avril 2021 J'ai un lisp de Jimmy Bergmark qui me créer une polyligne de la fenêtre que je sélectionne ;;; vp-outline.lsp (VPO) ;;; ;;; Creates a polyline in modelspace that ;;; has the outline of the selected viewport. ;;; Supports clipped viewports. ;;; If vp-outline is called when in mspace it detects ;;; the active viewport. ;;; ;;; c:vp-outline (C:VPO) ;;; ;;; By Jimmy Bergmark ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved ;;; Website: www.jtbworld.com ;;; E-mail: info@jtbworld.com ;;; ;;; 2000-04-10 ;;; 2003-11-19 Added support for drawing the outline in other ucs/view than world/current ;;; ;;; 2006-04-06 Added support for twisted views Tom Beauford ;;; ;;; Tested on AutoCAD 2000, 2000i, 2002, 2004, 2006, 2007 (vl-load-com) (defun dxf (n ed) (cdr (assoc n ed))) (defun ax:List->VariantArray (lst) (vlax-Make-Variant (vlax-SafeArray-Fill (vlax-Make-SafeArray vlax-vbDouble (cons 0 (- (length lst) 1)) ) lst ) ) ) (defun c:VPO (/ ad ss ent pl plist xy n vpbl vpur msbl msur ven vpno ok) (setq ad (vla-get-activedocument (vlax-get-acad-object))) (if (= (getvar "tilemode") 0) (progn (if (= (getvar "cvport") 1) (progn (if (setq ss (ssget ":E:S" '((0 . "VIEWPORT")))) (progn (setq ent (ssname ss 0)) (setq vpno (dxf 69 (entget ent))) (vla-Display (vlax-ename->vla-object ent) :vlax-true) (vla-put-mspace ad :vlax-true) ; equal (command "._mspace") ; this to ensure trans later is working on correct viewport (setvar "cvport" vpno) ; (vla-put-mspace ad :vlax-false) ; equal (command "._pspace") (setq ok T) ) ) ) (setq ent (vlax-vla-object->ename (vla-get-activepviewport ad)) ok T ) ) (if ok (progn (setq ven (vlax-ename->vla-object ent)) (if (/= 1 (logand 1 (dxf 90 (entget ent)))) ; detect perspective (if (= (vla-get-clipped ven) :vlax-false) (progn ; not clipped (vla-getboundingbox ven 'vpbl 'vpur) (setq vpbl (trans (vlax-safearray->list vpbl) 3 2) msbl (trans vpbl 2 1) msbl (trans msbl 1 0) vpur (trans (vlax-safearray->list vpur) 3 2) msur (trans vpur 2 1) msur (trans msur 1 0) vpbr (list (car vpur) (cadr vpbl)0) msbr (trans vpbr 2 1) msbr (trans msbr 1 0) vpul (list (car vpbl) (cadr vpur)0) msul (trans vpul 2 1) msul (trans msul 1 0) plist (list (car msbl) (cadr msbl) (car msbr) (cadr msbr) (car msur) (cadr msur) (car msul) (cadr msul) ) ) ) (progn ; clipped (setq pl (entget (dxf 340 (entget ent))) plist (vla-get-coordinates (vlax-ename->vla-object (dxf -1 pl)) ) plist (vlax-safearray->list (vlax-variant-value plist)) n 0 pl nil ) (repeat (/ (length plist) 2) (setq xy (trans (list (nth n plist) (nth (1+ n) plist)) 3 2) xy (trans xy 2 1) xy (trans xy 1 0) pl (cons (car xy) pl) pl (cons (cadr xy) pl) n (+ n 2) ) ) (setq plist (reverse pl)) ) ) ) (setq plist (ax:List->VariantArray plist)) (vla-Put-Closed (vla-AddLightWeightPolyline (vla-get-ModelSpace ad) plist ) :vlax-True ) ) ) ) ) (if ss(vla-put-mspace ad :vlax-false)) ; equal (command "._pspace")) (princ) ) Citer Aide au téléchargement du cadastre dgfip-download-helper Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0 Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js Lien vers le commentaire Partager sur d’autres sites More sharing options...
chris32 Posté(e) le 27 avril 2021 Auteur Partager Posté(e) le 27 avril 2021 Le lisp se rapprochant le plus de ma demande et celui de Gile (merci Gile)... Il me reste plus qu'a attribut un calque à la fenetre crée, deplacer la position du texte du nom du Folio ainsi que sa taille. Merci à tous pour votre contribution Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 27 avril 2021 Partager Posté(e) le 27 avril 2021 hello autant pour moi je vais mettre mon post ailleurs sinon lee-mac en a ecrit trois aussi. a+ Phil VPOutlineV1-3.lsp Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
chris32 Posté(e) le 27 avril 2021 Auteur Partager Posté(e) le 27 avril 2021 Le lisp de lee-mac, est pas mal car il permet de réaliser tous les cadres en une seul opération, il ne lui manque plus que la possibilité de mettre le numéro du Folio. A voir la possibilité de la combiner avec celui de Gile Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
lili2006 Posté(e) le 27 avril 2021 Partager Posté(e) le 27 avril 2021 Bonjour à toutes et tous, Quote mais le LISP de Bred fait exactement l'inverse de celui que j'ai proposé Oups, désolé, c'est moi qui me suis trompé et j'ai également induit PHILPHIL en erreur mais par contre, c'est intéressant à tester cette V4,.. Quote je vais mettre mon post ailleurs Et pourquoi pas à suivre du post pointé,.. Citer Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
BlueB Posté(e) le 21 mars Partager Posté(e) le 21 mars Bonjour à tous, @PHILPHIL @(gile) Est-ce que quelqu'un a une idée de comment je peux ajouter le nom de l'onglet à la polyligne créé, dans le lisp de Lee mac svp ? J'ai essayé de copier qq lignes de VP2MS de Gile vers VPOutlineV1.3 de Lee mais sans succès, je suis novice en lisp 😕 J'ai + de 60 présentations et j'aurais besoin de checker que tout sois bien dans les bonnes fenêtres. En vous remerciant, Blue Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 22 mars Partager Posté(e) le 22 mars (modifié) hello BlueB voici une mise a jour du lisp de LEE MAC ( je prétends pas avoir son niveau en LISP ) vpoout1_4 version LEE MAC ( fenêtre par fenêtre ) vpoout1_4_fenetre_nommee ( fenêtre par fenêtre ) ( place le nom de la fenêtre ( si existant ) et le nom de la présentation dans l'espace objet) vpoout1_4_fenetre_nommee_tournee ( fenêtre par fenêtre ) ( place le nom de la fenêtre ( si existant ) et le nom de la présentation dans l'espace objet)(texte en haut a gauche de la fenetre ) vpooutl1_4 version LEE MAC ( toutes les fenêtres de la présentation active ) vpooutl1_4_fenetre_nommee ( toutes les fenêtres de la présentation active ) ( place le nom de la fenêtre ( si existant ) et le nom de la présentation dans l'espace objet) vpooutl1_4_fenetre_nommee_tournee ( toutes les fenêtres de la présentation active ) ( place le nom de la fenêtre ( si existant ) et le nom de la présentation dans l'espace objet) (texte en haut a gauche de la fenetre ) vpoouta1_4 version LEE MAC ( toutes les fenêtres de toutes les présentations depuis une présentation active ) vpoouta1_4_fenetre_nommee ( toutes les fenêtres de toutes les présentations depuis une présentation active ) ( place le nom de la fenêtre ( si existant ) et le nom de la présentation dans l'espace objet) vpoouta1_4_fenetre_nommee_tournee ( toutes les fenêtres de toutes les présentations depuis une présentation active ) ( place le nom de la fenêtre ( si existant ) et le nom de la présentation dans l'espace objet) (texte en haut a gauche de la fenetre ) vpoouta1_4_choix_presentation_fenetre_nommee_tournee ( toutes les fenêtres en choisissant les présentations depuis une présentation active ) ( place le nom de la fenêtre ( si existant ) et le nom de la présentation dans l'espace objet) (texte en haut a gauche de la fenetre ) VPOutlineV1-4-1.lsp nommer_fenetre_de_presentation nommer_fenetre_de_presentation_suivant_texte renommer_fenetre_de_presentation recuperer_nom_fenetre_de_presentation recuperer_placer_nom_fenetre_de_presentation recuperer_modifier_nom_fenetre_de_presentation NOM_FENETRE_PRESENTATION.LSP Phil Modifié le 9 septembre par PHILPHIL mise a jour des LISP si dessus 2024 09 09 1 Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
rebcao Posté(e) le 24 mars Partager Posté(e) le 24 mars Bonjour, Je m'étais "amusé" à développer une petite Application qui fonctionne avec les versions FULL et LT (sans LISP). J'avais baptisé cela l'ENCARTAGE... Voici cette application en Vidéos : Christian 2 Citer Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @) Lien vers le commentaire Partager sur d’autres sites More sharing options...
BlueB Posté(e) le 25 mars Partager Posté(e) le 25 mars Bonjour, Super, merci beaucoup @PHILPHIL mais j'ai une erreur : "Error: no function definition: X_READ" au lancement des 3 fonctions VPOOUTx1_4_FENETRE_NOMMEE, que puis-je faire ? Merci @rebcao Joli travail, c'est une super application, mais c'est vraiment VPOUT qui me conviens le mieux pour ce que je veux faire , merci 🙂 Belle journée à vous ! Blue Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 25 mars Partager Posté(e) le 25 mars hello BlueB tu as bien lancé les lisp a partir du fichier "VPOutlineV1-4.lsp" ? sans faire un copier collé d'un fichier vers un autre. car a la fin du fichier il y a une fonction de Gile qui fait référence a "X_READ" s'il te manque cette fonction c'est peut etre ca qui fait planter. ;; gc:massoc ;; Retourne la liste de toutes les valeurs pour le code spécifié dans une liste d'association ;; ;; Arguments ;; code : le code de groupe pour les entrées ;; alst : la liste d'association (defun gc:massoc (code alst) (if (setq alst (member (assoc code alst) alst)) (cons (cdar alst) (gc:massoc code (cdr alst))) ) ) Phil Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
BlueB Posté(e) le 25 mars Partager Posté(e) le 25 mars (modifié) Oui @PHILPHIL j'ai bien lancé le lisp en le chargeant via outils/charger une application. Comment je peux faire pour insérer cette fonction ? Merci PS: je travail sous Autocad 2023 En fait il semble qu'elle ne soit pas défini dans le lisp, est-ce qu'il suffit d'ajouter une ligne de code qui la définisse ? Désolé je suis vraiment novice en lisp 😕 Modifié le 25 mars par BlueB Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 25 mars Partager Posté(e) le 25 mars hello BlueB MISE A JOUR DES LISP CI DESSUS fait un copier-coller de la fonction "X_READ" dans le fichier "VPOutlineV1-4.lsp" ca devrait aider dit moi si c'est ca ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ; lit une liste en xdata ; entrées : enam : nom d'entité ; appli: application ; ; retourne : liste XDATA correspondant à l'application ;------------------------------------------------------------------------------ (defun x_read (enam appli / l ent) (regapp appli) (setq ent (entget enam (list appli))) (if (assoc -3 ent) (cdr (assoc appli (cdr (assoc -3 ent)))) ) ) Phil Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
BlueB Posté(e) le 25 mars Partager Posté(e) le 25 mars Salut @PHILPHIL J'ai ce message d'erreur : Commande: VPOOUT1_4_FENETRE_NOMMEE -calque Calque courant: "T_FENETRE" Entrez une option [?/Etablir/CHoisir/Nouv/Renommer/ACtif/INactif/COuleur/TLigne/EPaisseurl/TRANsparence/MAtériau/Tracé/Geler/Libérer/Verrouiller/Déverrouiller/étAt/deScription/RApprocher/Xréf]: ch Entrez le nom du calque à rendre courant ou <sélectionnez un objet>: T_FENETRE Entrez une option [?/Etablir/CHoisir/Nouv/Renommer/ACtif/INactif/COuleur/TLigne/EPaisseurl/TRANsparence/MAtériau/Tracé/Geler/Libérer/Verrouiller/Déverrouiller/étAt/deScription/RApprocher/Xréf]: Select viewport: espaceo Error: type d'argument incorrect: numberp: nil et quand je sélectionne la fenêtre, j'entre dans l'espace objet 😕 Et si je copie/colle la fonction "X_READ" dans la 1ère version du fichier "VPOutlineV1-4.lsp" j'ai directement l'erreur, il ne me demande plus de sélectionner la fenêtre: Commande: VPOOUT1_4_FENETRE_NOMMEE -calque Calque courant: "T_FENETRE" Entrez une option [?/Etablir/CHoisir/Nouv/Renommer/ACtif/INactif/COuleur/TLigne/EPaisseurl/TRANsparence/MAtériau/Tracé/Geler/Libérer/Verrouiller/Déverrouiller/étAt/deScription/RApprocher/Xréf]: ch Entrez le nom du calque à rendre courant ou <sélectionnez un objet>: T_FENETRE Entrez une option [?/Etablir/CHoisir/Nouv/Renommer/ACtif/INactif/COuleur/TLigne/EPaisseurl/TRANsparence/MAtériau/Tracé/Geler/Libérer/Verrouiller/Déverrouiller/étAt/deScription/RApprocher/Xréf]: Command not available in Modelspace.espaceo Déjà dans l'espace objet. Error: type d'argument incorrect: numberp: nil Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 25 mars Partager Posté(e) le 25 mars (modifié) hello il manquait des définitions de paramètres dans les fichiers pour lancer les fonction "VPOO..." il faut etre dans l'espace papier de la présentation, et non double cliquer dans la fenetre de presentation pour se retrouver dans l'espace Objet de cette fenetre. sinon il ne comprend plus la commande "espaceO" et "espaceP" mise a jour des 2 lisps a tester Phil Modifié le 25 mars par PHILPHIL mise a jour des LISP si dessus 2024 03 25 13:48 1 Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés