Aller au contenu

Comment utiliser la commande "Rechercher" en ligne de commande


Messages recommandés

Posté(e)

Bonjour à tous,

 

Voilà, je cherche à faire un LiSP en utilisant la commance "rechercher", mais j'ai l'impression qu'elle n'existe pas en ligne de commande.

 

J'aimerais remplacer "0000" par "" (rien) pour la totalité du dwg...

 

Merci d'avance,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

salut,

tu peux parcourir ton dessin à la recherche des chaines de texte, code 1, et remplacer la chaine par une autre et entmod

des exemples de ces utilitaires :

il faut adapter avec un wcmatch

Gégé

 

; ****************************************************************************
;;§/dxf/balaye les blocs et supprime l'inclinaison des textes dans leur définition/none
;
(defun c:supp_textincline_blocs (   / modif eg ent first)

(defun modif ()
 (while ent
(setq eg (entget ent))
(if (= (cdr (assoc 0 eg)) "TEXT")
 (progn	  
  (setq eg (subst '(51 . 0) (assoc 51 eg) eg))
  (print (entmod eg))
  (entupd ent)
 )
)

(setq ent (entnext ent))
 )
)
(setq first (tblnext "block" 't))
(setq ent (cdr ( assoc -2 first )))
(modif)
(while (setq ent (tblnext "block" ))
 (setq ent (cdr ( assoc -2 ent )))
 (modif)
)
)

et celui là, encore plus rudimentaire :

 ; ****************************************************************************
;;§/dxf/balaye le dessin entier remplace prop1 par prop2/prop1 prop2 
;;prop1 et 2 : code assoc dxf
(defun big_clean ( prop1 prop2 / )

(defun modif ()
 (setq eg (entget ent))
 (if (equal (assoc (car prop1) eg) prop1)
    (if prop2
(progn
 (setq eg (subst prop2 prop1 eg))
 ;(print eg)
 (entmod eg)
)
    )
 )
)
(setq ent (entnext))
(modif)
;(print eg)
(while (/= nil (setq ent (entnext ent)))
 (print "p")
 (modif)
 ;(print eg)
)
)

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Posté(e)

Salut

 

Quatre routines dans ma besace

 

; Remplacer un morceau de texte dans un bloc
(defun c:atx(/ blo doc ent tx1 tx2 txt)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (and	(ssget (list (cons 0 "insert") (cons 66 1)))
(setq tx1 (getstring T "\nTexte à rechercher : "))
(setq tx2 (getstring T "\nTexte remplacant : "))
   (progn
     (vlax-for blo (setq sel (vla-get-activeselectionset doc))
(foreach ent (vlax-invoke blo 'getattributes)
  (and (wcmatch (setq txt (vla-get-textstring ent)) (strcat "*" tx1 "*"))
    (cond
      ((wcmatch txt (strcat tx1 "*"))
	(setq txt (strcat tx2 (substr txt (1+ (strlen tx1)))))
      )
      ((wcmatch txt (strcat "*" tx1))
	(setq txt (strcat (substr txt 1 (- (strlen txt) (strlen tx1))) tx2))
      )
      (T
	(setq txt (strcat (substr txt 1 (vl-string-search tx1 txt))
			  tx2
			  (substr txt (+ (vl-string-search tx1 txt) (strlen tx1) 1))
		  )
	)
      )
    )
    (vla-put-textstring ent txt)
  )
)
     )
     (vla-delete sel)
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

; Remplacer un morceau de texte
(defun c:rtx(/ doc ent tx1 tx2 txt)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (and	(ssget (list (cons 0 "TEXT,MTEXT")))
(setq tx1 (getstring T "\nTexte à rechercher : "))
(setq tx2 (getstring T "\nTexte remplacant : "))
   (progn
     (vlax-for ent (setq sel (vla-get-activeselectionset doc))
(and (wcmatch (setq txt (vla-get-textstring ent)) (strcat "*" tx1 "*"))
  (cond
    ((wcmatch txt (strcat tx1 "*"))
      (setq txt (strcat tx2 (substr txt (1+ (strlen tx1)))))
    )
    ((wcmatch txt (strcat "*" tx1))
      (setq txt (strcat (substr txt 1 (- (strlen txt) (strlen tx1))) tx2))
    )
    (T
      (setq txt (strcat (substr txt 1 (vl-string-search tx1 txt))
			tx2
			(substr txt (+ (vl-string-search tx1 txt) (strlen tx1) 1))
		)
      )
    )
  )
  (vla-put-textstring ent txt)
)
     )
     (vla-delete sel)
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

; Ajouter un morceau de texte (prefix)
(defun c:ptx(/ doc ent tx1 tx2 txt)
 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (and	(ssget (list (cons 0 "TEXT,MTEXT")))
(setq tx1 (getstring "\nTexte à ajouter : "))
   (progn
     (vlax-for ent (setq sel (vla-get-activeselectionset doc))
(vla-put-textstring ent (strcat tx1 (vla-get-textstring ent)))
     )
     (vla-delete sel)
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

; Ajouter un morceau de texte (suffix)
(defun c:stx(/ doc ent tx1 tx2 txt)
 (vl-load-com)
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark doc)
 (and	(ssget (list (cons 0 "TEXT,MTEXT")))
(setq tx1 (getstring "\nTexte à ajouter : "))
   (progn
     (vlax-for ent (setq sel (vla-get-activeselectionset doc))
(vla-put-textstring ent (strcat (vla-get-textstring ent) tx1))
     )
     (vla-delete sel)
   )
 )
 (vla-endundomark doc)
 (princ)
)

 

@+

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)

Bonjour à vous et merci... J'ai pu intégrer un bout de routine dans mon LiSP :

  ;;Remplace les "0000" par rien dans les numéros de matricules......
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (and (ssget "_X" '((0 . "TEXT,MTEXT")))
      (setq tx1 "0000"
            tx2 ""
      ) ;_ Fin de setq
      (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc))
               (and (wcmatch (setq txt (vla-get-textstring ent)) (strcat "*" tx1 "*"))
                    (cond ((wcmatch txt (strcat tx1 "*"))
                           (setq txt (strcat tx2 (substr txt (1+ (strlen tx1)))))
                          )
                          ((wcmatch txt (strcat "*" tx1))
                           (setq txt (strcat (substr txt 1 (- (strlen txt) (strlen tx1))) tx2))
                          )
                          (T
                           (setq txt (strcat (substr txt 1 (vl-string-search tx1 txt))
                                             tx2
                                             (substr txt (+ (vl-string-search tx1 txt) (strlen tx1) 1))
                                     ) ;_ Fin de strcat
                           ) ;_ Fin de setq
                          )
                    ) ;_ Fin de cond
                    (vla-put-textstring ent txt)
               ) ;_ Fin de and
             ) ;_ Fin de vlax-for
             (vla-delete sel)
      ) ;_ Fin de progn
 ) ;_ Fin de and

 

Merci encore...

 

Mais maintenant, j'aimerais faire le même genre de recherche pour sélectionner, parmis les textes de mon DWG tout ceux commençant par "RUE", "ALLEE" ou "PLACE" afin de les placer dans le calque "TOPO_NOM_RUE"...

 

Je pense que ça doit se situer dans le "(ssget" mais je ne sais pas comment faire le tri... Si quelqu'un a un conseil...

 

Je fais fouiller les code de vos post.

 

Merci encore...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Je pense que ça doit se situer dans le "(ssget" mais je ne sais pas comment faire le tri... Si quelqu'un a un conseil...

Non.

 

Dans le lisp que tu as modifié, tu fais un jeu de sélection sur les textes.

Ensuite, tu parcoures ce jeu de sélection pour y regarder si les caractères "0000" s'y trouvent pour ensuite les remplacer par rien. C'est au moment où tu regardes tes caractères que tu peux inclure d'autres chaines de caractères pour y faire autre chose.

 

Synopsis

1) Selection des textes

2) Début de la boucle pour regarder le jeu de sélection

2.1) Regarder la chaine de caractères

2.1.1) Correspond à "0000"

2.1.1.1) Les supprimer

2.1.2) Correspond à ....

2.1.2.1) Mon action

2.1.3) Etc...

 

@+

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)

Bonjour Patrick_35 et merci de m'apporter ton aide,

 

Pour ne pas aller dans la mauvaise direction, dois-je faire un "setq LstTxt (ssadd...." par exemple ?

 

En LiSP, on peut dire que j'ai le niveau bidouille / débutant.

 

Car j'ai plutôt eu de la "chance" en adaptant le code, je l'ai commenté, j'aimerai savoir si je me trompe avant de partir dans l'inconnu :

 ;Sélection de tous les objets du dwg
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
  ;j'avoue ne pas savoir ce que fait ce (and
      ;sélection de tous les Text et Mtext
 (and (ssget "_X" '((0 . "TEXT,MTEXT")))
      (setq tx1 "0000" ;attribution de la valeur "0000" à txt1
            tx2 "" ;attribution de la valeur "" à txt2
      ) ;_ Fin de setq
      (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc));fouille le dessin ?
               ; pareil que le (and précédent... 
               ; je ne sais pas utiliser les (and (or... en dehors d'un (if ou d'un (cond
               ; et je ne connais rien sur (vlax-for, mais je pense que ce doit être le début d'une boucle
                    ;(wcmatch : comparaison de variables avec des caractères génériques
                             ;txt contient tous les textes contenant "*0000*"
               (and (wcmatch (setq txt (vla-get-textstring ent)) (strcat "*" tx1 "*"))
                            ; compare les textes contenant "0000" au début de chaine
                    (cond ((wcmatch txt (strcat tx1 "*"))
                            ;remplace les 4 premier caractères au début de txt par rien
                           (setq txt (strcat tx2 (substr txt (1+ (strlen tx1)))))
                          )
                           ; compare les textes contenant "0000" en fin de chaine
                          ((wcmatch txt (strcat "*" tx1))
                            ;remplace les 4 derniers caractères à la fin de txt par rien
                           (setq txt (strcat (substr txt 1 (- (strlen txt) (strlen tx1))) tx2))
                          )
                          (T ;si vrai, là, j'ai pas compris
                                 ;c'est compliqué, mais j'ai compris qu'il remplace "0000" par rien en milieu de chaine txt
                           (setq txt (strcat (substr txt 1 (vl-string-search tx1 txt))
                                             tx2
                                             (substr txt (+ (vl-string-search tx1 txt) (strlen tx1) 1))
                                     ) ;_ Fin de strcat
                           ) ;_ Fin de setq
                          )
                    ) ;_ Fin de cond
                    ; effectu le remplacement "physique" dans l'objet Texte
                    (vla-put-textstring ent txt)
               ) ;_ Fin de and
             ) ;_ Fin de vlax-for
             , vide la séléction sel
             (vla-delete sel)
      ) ;_ Fin de progn
 ) ;_ Fin de and

 

Je ne sais pas si je dois intégrer mon "setq LstTxt (ssadd...." dans la boucle (vlax-for ou si je dois refaire la recherche "(setq doc (vla-get-activedocument (vlax-get-acad-object)))" ailleurs. Ce qui sera, je pense, plus de mon pauvre niveau.

 

En tous cas, merci encore de m'avoir répondu, je testerais demain ces options

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Je viens de trouvé dans l'exellent "Introduction_a_AutoLISP.pdf" de (gile) de l'aide sur "(and" et "(or"...

 

J'y apprend qu'il réagissent un peu comme un "(if" en renvoyant nil ou T selon ???...

 

Je suis dubitatif...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonjour à tous,

 

N'arrivant pas à dormir hier, ça me travail ce truc, je pense avoir trouvé. A mon avis, je devrai faire un truc comme ça :

(setq doc (vla-get-activedocument (vlax-get-acad-object)))
 (and (ssget "_X" '((0 . "TEXT,MTEXT")))
      (setq tx1 "0000"
            tx2 ""
      ) ;_ Fin de setq
      (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc))
               (or (progn (wcmatch (setq txt (vla-get-textstring ent)) (strcat "RUE" "*"))
                          (wcmatch (setq txt (vla-get-textstring ent)) (strcat "ALLEE" "*"))
                          (wcmatch (setq txt (vla-get-textstring ent)) (strcat "PLACE" "*"))
                   ) ;_ Fin de progn
                   (setq LstTxt (ssadd ent))
               ) ;_ Fin de vlax-for
               (and (wcmatch (setq txt (vla-get-textstring ent)) (strcat "*" tx1 "*"))
                    (cond ((wcmatch txt (strcat tx1 "*"))
                           (setq txt (strcat tx2 (substr txt (1+ (strlen tx1)))))
                          )
                          ((wcmatch txt (strcat "*" tx1))
                           (setq txt (strcat (substr txt 1 (- (strlen txt) (strlen tx1))) tx2))
                          )
                          (T
                           (setq txt (strcat (substr txt 1 (vl-string-search tx1 txt))
                                             tx2
                                             (substr txt (+ (vl-string-search tx1 txt) (strlen tx1) 1))
                                     ) ;_ Fin de strcat
                           ) ;_ Fin de setq
                          )
                    ) ;_ Fin de cond
                    (vla-put-textstring ent txt)
               ) ;_ Fin de and
             ) ;_ Fin de vlax-for
             (vla-delete sel)
      ) ;_ Fin de progn
 ) ;_ Fin de and

 

Mais AutoCAD me répond :

; erreur: type d'argument incorrect: lentityp #<VLA-OBJECT IAcadText 0000000075c33228>

 

Je ne sais pas trop quoi faire avec ça...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut ,

 

si tu utilise le ssget, autant trier sur les chaines directement:

 

(ssget "x" '(
(0 . "TEXT,MTEXT")
(1 . "*1ere chaine*,*autre chaine*,`,")));_selectionne 1ere chaine autre chaine et ,

puis de lancer une série de

(vl-string-subst new-str pattern string [start-pos])

sans tester auparavant par vl-string-search, puisqu'on sait que ça contient ce qu'on veut changer.

 

mais je préfère personnellement pour une action comme celle ci parcourir bêtement la base, comme dans mon 1er exemple, car des textes à changer peuvent être dans des blocs, des cotations, des lignes repères, à des niveaux d'imbrication insensé (genre export all_plan ...)

 

Gégé

  • Upvote 1

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Posté(e)

Salut

 

Par rapport à tes commentaires

j'avoue ne pas savoir ce que fait ce (and

(and  (ssget (list (cons 0 "TEXT,MTEXT"))); Si je sélectionne des textes
       (setq tx1 (getstring T "\nTexte à rechercher : ")); Si j'indique le texte à rechercher
       (setq tx2 (getstring T "\nTexte remplacant : ")); Si j'indique le texte remplacant
   (progn ; alors ....

L'idée du and est que tant que la condition est remplie, il passe au suivant.

Si je sélectionne un/des texte(s) --> Si j'indique le texte à rechercher --> Si j'indique le texte remplacant --> alors...

fouille le dessin ?

Non, parcours la sélection (vla-get-activeselectionset ...) avec une boucle (vlax-for ...)

(T ;si vrai, là, j'ai pas compris

Un cond fonctionne de la manière suivante.

Si la première condition est remplie, je fais ce qui est demandé et je sors du cond sinon je passe à la condition suivante.

Si la seconde condition est remplie, je fais ce qui est demandé et je sors du cond sinon je passe à la condition suivante.

etc...

L'idée du T est de dire, comme les autres conditions ne sont pas remplie, c'est forcément celle-ci.

Dans la recherche de texte; je regarde le début, la fin et comme ce n'est ni l'un, ni l'autre, c'est forcément à l'intérieur

 

@+

  • Upvote 1

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)

Bonjour Gégé et merci de m'aider,

 

mais je préfère personnellement pour une action comme celle ci parcourir bêtement la base, comme dans mon 1er exemple, car des textes à changer peuvent être dans des blocs, des cotations, des lignes repères, à des niveaux d'imbrication insensé (genre export all_plan ...)

 

Pour mon cas, il n'y a que du texte, rien n'est dans les blocs, cotations, lignes de repères...

 

Et il était plus "facile" pour moi d'adapter le code de Patrick_35.

 

Maintenant, grace à cette astuce, j'ai écris ça qui fonctionne très bien :

  (ssget "_X" '((0 . "TEXT,MTEXT") (1 . "RUE*,PLACE*,ALLEE*,BVD*,BOULEVARD*,IMPASSE*,QUAI*,RUELLE*,AVENUE*")))
 (command "-calque" "n" "TOPO_NOM_RUE" "")
 (command "chprop" "_P" "" "ca" "TOPO_NOM_RUE" "")

 

Mais je n'ai qu'un piètre niveau en LiSP...

 

Merci encore,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonjour Patrick_35,

 

Effectivement, ton explication du "(cond" est limpide, je ne le voyais pas du tout comme ça... C'est nettement plus clair pour moi maintenant...

 

Mais pour le "(vlax-for" et le "(and", c'est encore un peu complex pour moi à mettre en oeuvre dans un LiSP que j'aurais écris entièrement.

 

Merci encore...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut

 

Je n'avais pas compris que tu souhaitais changer le calque de certains textes.

La solution de Gégé est la plus simple.

 

Pour le niveau de lisp, qu'importe, seul le résultat compte.

C'est à force d'en faire que l'on se perfectionne et que l'on prend de l'assurance.

 

@+

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 pas faute d'essayer ! ! ;-)

 

Une petite question subsidiaire, dans "(ssget "_X" '((0 . "TEXT,MTEXT") (1 . "RUE*...."))), le 0 et le 1, c'est du code DXF ?

 

Où trouver cette liste, car j'aimerais, maintenant que je commence à comprendre, compléter mon LiSP...

 

Comme la taile des textes, leurs style...

 

Merci encore à tous,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut,

Je n'avais pas compris que tu souhaitais changer le calque de certains textes.

moi non plus, puisqu'au début il voulait remplacer des textes par d'autre ...

ce Gaston Denis nous fait tourner Fantasio !

 

Pour mon cas, il n'y a que du texte, rien n'est dans les blocs, cotations, lignes de repères...

Dans ce cas, tu as de la chance, et quand j'ai vu ton sujet, j'ai pensé à ces fond de plan composite que je reçois, où sous la même apparence, j'ai de tout : texte, mtext, attribut, texte ou mtext dans un bloc, un bloc imbriqué etc ...

sans oublier une partie des entité dans l'espace papier ...

 

 

Gégé

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Posté(e)

Une petite question subsidiaire, dans "(ssget "_X" '((0 . "TEXT,MTEXT") (1 . "RUE*...."))), le 0 et le 1, c'est du code DXF ?

Oui

 

Où trouver cette liste, car j'aimerais, maintenant que je commence à comprendre, compléter mon LiSP...

Dans l'aide ou ici

 

@+

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)

Re,

 

Je présente mes plus humbles excuses au forum, mais effectivement, j'aurais dû préciser qu'il n'y avait que des textes. Aucun MText ni bloc contenant des attributs.

 

En fait, pour expliquer un peu, je travaille sur des levés topo que l'on fait dans ma boite avec du matériel d'après guerre... Et le post-traitement va avec.

 

On passe par un logiciel, DecaTop, qui traite les données terrain et en fait un DGN que l'on sauvegarde en DWG depuis MicroStation. Les noms de calques ne sont que des numéros, rien d'explicite.

 

Je refais donc un traitement du DWG entier pour tout bien ranger et corriger certains bugs...

 

Merci Patrick_35, je m'en doutais un peu...

 

Je joint mon LiSP pour la communauté, au cas ou...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é