-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
[Challenge] Suite de Fibonacci
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
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) ) @+ -
[Challenge] Suite de Fibonacci
Patrick_35 a répondu à un(e) sujet de (gile) dans Pour aller plus loin en LISP
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 @+ -
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)) ) ) ) @+
-
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
-
Salut Sauf que tu n'as pas regroupé les deux patrick On considère que chaque élément d'une liste corresponds à l'autre @+
-
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")) @+
-
Salut C'est du vlisp appelant une appli externe en api, donc faisable en vba. @+
-
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`* @+
-
Si tu souhaites utiliser l'étoile comme caractère, il faut utiliser le quote inversé (` --> AltGr + 7) devant l'étoile. @+
-
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
-
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) ) ) @+
-
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) @+
-
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 ? @+
-
DWGVersion 6.5, ajout du clic droit
Patrick_35 a répondu à un(e) sujet de Eric dans Programmer en s'amusant
Oui. C'est juste un addon sur l'explorateur de windows qui permet plusieurs onglets au lieu de plusieurs fenêtres. Très pratique. @+ -
DWGVersion 6.5, ajout du clic droit
Patrick_35 a répondu à un(e) sujet de Eric dans Programmer en s'amusant
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. @+ -
DWGVersion 6.5, ajout du clic droit
Patrick_35 a répondu à un(e) sujet de Eric dans Programmer en s'amusant
Testé dans HKEY_CLASSES_ROOT\*\Shell @+ -
DWGVersion 6.5, ajout du clic droit
Patrick_35 a répondu à un(e) sujet de Eric dans Programmer en s'amusant
Pourtant, certains logiciels arrivent à ajouter des raccourcis Quand tu veux ajouter le clic droit, le - est grisé et inversement @+ -
DWGVersion 6.5, ajout du clic droit
Patrick_35 a répondu à un(e) sujet de Eric dans Programmer en s'amusant
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 @+ -
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. @+
-
Salut Regarde ce sujet @+
-
où trouver le fichier "acad.pgp"
Patrick_35 a répondu à un(e) sujet de a.etudes dans AutoCAD LT 2015
Salut Le plus simple est de faire en ligne de commande (findfile "acad.pgp") @+ -
Style de texte impossible a supprimer
Patrick_35 a répondu à un(e) sujet de Ye-Woof dans AutoCAD LT 2012
Salut Avec JAV, tu passes à 16Ko @+ -
[Résolu] Création de plusieurs présentations
Patrick_35 a répondu à un(e) sujet de Giropode dans LISP et Visual LISP
Par exemple (initget 1 "Oui Non") (setq question (getkword "Êtes-vous content [Oui/Non] : ")) Oui @lili2006 : V @+ -
[Résolu] Création de plusieurs présentations
Patrick_35 a répondu à un(e) sujet de Giropode dans LISP et Visual LISP
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. @+ -
Point de vue 3D SCU courant
Patrick_35 a répondu à un(e) sujet de fauxsuisse dans LISP et Visual LISP
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) ) @+
