Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. La voila en itérative (defun fib (a / b c d e) (setq b 0) (while (<= b a) (cond ((eq b 0) (setq c 0 d 0)) ((member b '(1 2)) (setq c 0 d 1)) (T (setq e c c d d (+ d e))) ) (setq b (1+ B)) ) (+ c d) ) @+
  2. Oui, mais le plus interressant est de trouver par soi-même. Pour le moment, je suis en train de poser sur papier la logique @+
  3. Patrick_35

    Challenge

    Bravo Bonus, la tienne est plus concise que la mienne (defun asso (l1 l2 / a b e l n) (setq l (mapcar 'list l1 l2)) (while l (setq e (car l) l (cdr l) ) (while (setq n (assoc (car e) l)) (setq a (cons (cadr n) a) l (vl-remove n l) ) ) (and a (setq e (append e (reverse a)))) (setq a nil b (append b (list e)) ) ) ) @+
  4. Patrick_35

    Challenge

    Bravo pour ta double récursive (gile). Toujours au top :D Bravo Bonus, mais si tu as plus de deux doublons dans la liste des personnes, cela ne fonctionne plus. (asso '("pierre" "patrick" "sébastien" "sophie" "patrick" "julie" "patrick") '("compta" "be" "chantier" "secrétaire" "autocad" "facturation" "grumph..je reste poli")) @+ ps : comme d'habitude, je reste sur des itératives ;) pps : Bonus, je sais que tu vas le faire :D
  5. Patrick_35

    Challenge

    Salut Sauf que tu n'as pas regroupé les deux patrick On considère que chaque élément d'une liste corresponds à l'autre @+
  6. Patrick_35

    Challenge

    Bonjour Une idée de challenge (Ca faisait longtemps) C'est d'associer deux listes et de savoir si une même personne fait plusieurs choses. Exemples : (asso '("pierre" "patrick" "sébastien" "sophie" "patrick" "julie") '("compta" "be" "chantier" "secrétaire" "autocad" "facturation")) --> (("pierre" "compta") ("patrick" "be" "autocad") ("sébastien" "chantier") ("sophie" "secrétaire") ("julie" "facturation")) (asso '("pauline" "mathieu" "pauline" "jym" "feat") '("phylo" "algebre" "math" "python" "archi")) --> (("pauline" "phylo" "math") ("mathieu" "algebre") ("jym" "python") ("feat" "archi")) (asso '("e1" "e2" "e4" "e3" "e2" "e5") '("c1" "c2" "c3" "c4" "c5" "c6")) --> (("e1" "c1") ("e2" "c2" "c5") ("e4" "c3") ("e3" "c4") ("e5" "c6")) @+
  7. Salut C'est du vlisp appelant une appli externe en api, donc faisable en vba. @+
  8. Patrick_35

    Lisps de Patrick_35

    Salut Si tu souhaites traiter tous les noms commencant "*" --> `** Si tu souhaites traiter tous les noms commencant par "*abc_123" --> `*abc_123* Si tu souhaites traiter tous les noms contenant "abc_123" --> *abc_123* Si tu souhaites traiter tous les noms terminant par "abc_123*" --> *abc_123`* @+
  9. Patrick_35

    Lisps de Patrick_35

    Si tu souhaites utiliser l'étoile comme caractère, il faut utiliser le quote inversé (` --> AltGr + 7) devant l'étoile. @+
  10. Patrick_35

    Lisps de Patrick_35

    Salut Rbloc n'est pas scriptable et ne permet pas les caractères génériques Essaye ceci (defun rbc(ancien nouveau / doc ent nombl sel) (defun nombl(blo) (if (vlax-property-available-p blo 'effectivename) (vla-get-effectivename blo) (vla-get-name blo) ) ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (tblsearch "block" nouveau) (ssget "x" (list (cons 0 "insert"))) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (and (wcmatch (nombl ent) ancien) (vla-put-name ent nouveau) ) ) (vla-delete sel) ) ) (vla-endundomark doc) (princ) ) Pour tester (rbc "Un_nom*" "Mes_nouveaux_blocs") @+ ps : pour les caractères génériques, tu peux utiliser les wild-cards
  11. Salut C'est complétement différent depuis la version 2 Les modifs à adapter selon les besoins. Initialisation de PdfCreator (kill "PDFCreator.exe") (if (setq pdf (vlax-get-or-create-object "PDFCreator.clsPDFCreator")) (progn (vlax-invoke pdf 'cstart "/NoProcessingAtStartup") (vlax-put pdf 'cPrinterStop :vlax-false) (vlax-put pdf 'cPrinterStop :vlax-true) (vlax-put pdf 'cWindowState 0) (vlax-invoke pdf 'cClearCache) (vlax-put-property pdf 'cOption "savefilename" (vlax-make-variant (vl-filename-base (getvar "dwgname")))) (setq tot 0) ) (progn (setq pdf2 (vlax-get-or-create-object "PDFCreatorBeta.JobQueue")) (if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list pdf2 'initialize))) (progn (vlax-invoke pdf2 'releasecom) (vlax-invoke pdf2 'initialize) ) ) (setq tot 0) ) La suite de vos lisps pour imprimer. Attendre la fin de l'impression et éviter ainsi un mélange (cond (pdf (while (/= (vlax-get pdf 'cCountOfPrintjobs) (1+ tot))) (setq tot (1+ tot)) ) (pdf2 (vlax-invoke-method pdf2 'waitforjobs (setq tot (1+ tot)) 10) ) ) Impressions terminées --> Regrouper les pdf et sauvegarde (cond (pdf (vlax-invoke pdf 'cCombineAll) (vlax-release-object pdf) ) (pdf2 (vlax-invoke pdf2 'mergealljobs) (and (setq fic (getfiled "Nom du PDF" (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) ".pdf") "PDF" 1)) (vlax-invoke (vlax-get pdf2 'nextjob) 'convertto fic) ) (vlax-invoke pdf2 'releasecom) (vlax-release-object pdf2) ) ) @+
  12. Salut Pour compléter la réponse de vincentp010, tu peux aussi ajouter cette ligne après ton (unload_dialog Dcl_Id) (vl-file-delete tempo) @+
  13. Salut Tout dépend depuis où tu les bougent. Si c'est depuis l'éditeur de bloc, c'est normal. Il faut faire ensuite une synchro ps : Par quel biais, vu que tu as posté ton message pendant que je rédigeai le mien ? @+
  14. Oui. C'est juste un addon sur l'explorateur de windows qui permet plusieurs onglets au lieu de plusieurs fenêtres. Très pratique. @+
  15. Autant pour moi. Ca fonctionne sur un dossier et non sur un fichier. Je pensais que l'on pouvais faire une sélection --> clic droit --> DwgVersion Fonctionne aussi en réseau. @+
  16. Testé dans HKEY_CLASSES_ROOT\*\Shell @+
  17. Pourtant, certains logiciels arrivent à ajouter des raccourcis Quand tu veux ajouter le clic droit, le - est grisé et inversement @+
  18. Salut Ben, ca marche pas chez moi, aussi bien en local qu'en réseau (Windows 7). Par contre, j'utilise Clover comme explorateur Ps : Un bouton grisé pour le plus ou le moins serait parfait pour indiquer ajouter ou retirer le clic droit @+
  19. Salut Tu ne commences pas par le plus facile en lisp. Fais déjà un 1er lisp sans utiliser comme base PAT.lsp et qui fonctionne sur le dessin courant Quelque chose du style (defun c:redef_blocs(/ blo lst new) (setq lst '(bloc1 bloc2 bloc3)) ; Liste des blocs à redéfinir (foreach blo lst ; Parcourir la liste des blocs (boucle) (and (tblsearch "block" blo) ; Test si le bloc existe dans le dessin (setq new (findfile (strcat blo ".dwg"))) ; Test si on trouve le nouveau bloc (progn (command "_.insert ....) ; Redéfinition du bloc (entdel (entlast)) ; Effacer le dernier objet (logiquement, le bloc inséré) .... ; Faire d'autres commandes ? ) ) ) ) Et ensuite, tu utilises SuperAutoScript qui appelle le lisp sur une sélection de fichiers. @+
  20. Patrick_35

    Plans du dwg perdu de vue

    Salut Regarde ce sujet @+
  21. Salut Le plus simple est de faire en ligne de commande (findfile "acad.pgp") @+
  22. Salut Avec JAV, tu passes à 16Ko @+
  23. Par exemple (initget 1 "Oui Non") (setq question (getkword "Êtes-vous content [Oui/Non] : ")) Oui @lili2006 : V @+
  24. Salut C'est sympa de partager ses codes. Le principal est qu'il fonctionne et qu'il te satisfasse. Comme tu le demandes, quelques pistes (cond ( (= FEUILLET_TypeOriginal "N") (setq FEUILLET_TypeOriginal 1) ) ( (= FEUILLET_TypeOriginal "n") (setq FEUILLET_TypeOriginal 1) ) ( (= FEUILLET_TypeOriginal "Non") (setq FEUILLET_TypeOriginal 1) ) ( (= FEUILLET_TypeOriginal "O") (setq FEUILLET_TypeOriginal 0) ) ( (= FEUILLET_TypeOriginal "o") (setq FEUILLET_TypeOriginal 0) ) ( (= FEUILLET_TypeOriginal "Oui") (setq FEUILLET_TypeOriginal 0) ) ) Par exemple (if (vl-position FEUILLET_TypeOriginal '("N" "n" "Non")) (setq FEUILLET_TypeOriginal 1) (setq FEUILLET_TypeOriginal 0) ) ou encore, pour simplifier (a placer avant la question) (initget 1 "Oui Non") Tu peux intégrer une gestion des erreurs, redéfinir la variable cmdecho afin de ne pas voir le défilement des commandes (variable que l'on restaure à l'état initial en fin de programme ou en cas d'erreur, d'où la gestion des erreurs) J'ai remarqué aussi que si tu as juste une fonction après un if, inutile d'ajouter un progn. Une dernière chose est que tu utilises abondamment des eval et read. A la lecture de ton lisp, ces fonctions n'apportent rien. Tu sais si tes variables sont des chaines de caractères, des réels ou autres. @+
  25. Salut Je ne comprends pas trop le sens de ton message car que tu donnes la réponse (defun c:rp2 () (setvar "cmdecho" 0) (setq h (getvar "viewsize")) (setq ce (trans (getvar "viewctr") 1 0)) (command "repere" "") (command "_zoom" "_c" (trans ce 0 1) h) (command "_plan" "c") (princ) ) @+
×
×
  • 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é