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. Bonjour à tous Il est évident que le principal reste le lisp. Mais avoir un menu, des rubans, voir une boite de dialogue qui recense les lisps, ça en jette quand même. Et cela facilite aussi l'utilisateur, qui sait ce qu'il a, à sa disposition. @+
  2. Alors la fonction READ est ton amie Par exemple (mapcar 'type (list (read "123") (read "123.456") (read "Test"))) @+
  3. Il manque un quote (defun c:testechelle ( / ech1) (setq ech1 200) (if (and (= (type ech1) 'INT) (> ech1 0)) ;_ Fin:and (princ "\nNombre strictement supérieur à 0") (princ "\nCe n'est pas un nombre ou inférieur ou égale à 0") ) ;_ Fin de if (princ) ) ;_ Fin de defun @+
  4. Salut Avec la fonction TYPE Par exemple (setq var1 0 var2 0.0 var3 "Test" ) (mapcar 'type (list var1 var2 var3)) @+
  5. Salut Un exemple qui décale une polyligne existante de 5.0 (setq poly (vlax-ename->vla-object (car (entsel)))) (vlax-invoke poly 'offset 5.0) ; Pour décaler d'un coté (vlax-invoke poly 'offset -5.0) ; Pour décaler de l'autre coté @+
  6. Patrick_35

    options MLEADER

    Salut Tu peux utiliser la fonction entmake avec les codes dxf Un exemple @+
  7. Salut Tu peux utiliser ce lisp qui génère les mises en pages (onglets). Ensuite, tu peux te servir de la commande publier ou bien des lisps comme par exemple MPL qui recopie la mise en page d'une présentation (onglet) vers d'autres présentations. @+
  8. Tu as raison (gile). J'avais oublié qu'on pouvait le faire directement. @+
  9. Salut Pour savoir si une fonction lisp est chargé en mémoire (eval ma_fonction) Par exemple avec le lisp CAT (if (eval c:cat) (alert "Lisp CAT déjà chargé")) @+
  10. Patrick_35

    Lisps de Patrick_35

    Tu as raison :D @+
  11. Salut On peut e,core simplifier en utilisant (cons 0 "*TEXT") @+
  12. Patrick_35

    Lisps de Patrick_35

    Salut Pas mieux que Lili @+
  13. Patrick_35

    Lisps de Patrick_35

    Salut C'est en utilisant quelle fonction ? @+
  14. Salut Je ne sais pas quelle valeur tu attends en retour, mais tu peux aussi verifier si le process est toujours actif. Un exemple qui détruit un process en cours... (defun kill(qui / item meth1 meth2 obj WMI) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_Process") ) (vlax-for item meth2 (and (setq obj (vlax-get item 'CommandLine)) (vl-string-search (strcase qui) (strcase obj)) (if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list item 'Terminate))) (vlax-invoke item 'Terminate) ) ) ) (foreach item (list WMI meth1 meth2) (vlax-release-object item) ) ) Par exemple (kill "PDFCreator.exe") @+
  15. Patrick_35

    Nouveau Site Perso

    Bonjour Bonne année et bonne santé à vous tous. que 2018 vous apporte le bonheur pour vous et vos proches. Didier, tu as ce site. @+
  16. Salut @Denishen Je pense que maintenant, tu es plus qu'un novice, au vu de ce que tu partages. Tu es mure pour comprendre les fonctions type mapcar, lambda, etc... @+
  17. mapcar est une boucle lambda définit une fonction anonyme Si par exemple, je souhaite ajouter 1 à tous les éléments de cette liste '(1 2 3 4 5), je fais (mapcar '1+ '(1 2 3 4 5)) Maintenant, si je souhaite ajouter 2, je fais (mapcar '(lambda(x) (+ x 2)) '(1 2 3 4 5)) @+
  18. Tu as raison mon crabinou On peut aussi faire ceci (mapcar '(lambda(x) (vlax-get x 'textstring)) (vl-remove-if-not '(lambda(x) (vl-position (vla-get-tagstring x) '("PROF" "ZGS"))) (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'getattributes))) @+
  19. Salut Regarde la fonction getpropertyvalue @+
  20. Patrick_35

    Nouveau Site Perso

    Bonjour Bravo Didier. Tu te lances dans un sacré projet. Le site est prometteur et si tu vas au bout, il va devenir une référence. @+
  21. Salut Tu as aussi la fonction vl-position. @+
  22. Patrick_35

    Lisps de Patrick_35

    Salut Je veux bien un exemple. A tout hasars, je met la dernière version (defun c:grf(/ att bg col dirbox dix diy doc eh fen hd KillBigFont lay lcr lst obj old px py rep rgn sel sui tab tot x y) (defun dirbox(txt / cdl rep) (if (setq cdl (vlax-create-object "Shell.Application")) (progn (and (setq rep (vlax-invoke cdl 'browseforfolder 0 txt 512 "")) (setq rep (vlax-get-property (vlax-get-property rep 'self) 'path)) ) (vlax-release-object cdl) ) ) rep ) (defun KillBigFont (stname / ) (setq styl (tblobjname "style" stname)) (setq stlist (entget styl)) (entmod (subst (cons 4 "")(assoc 4 stlist) stlist)) (entupd styl) (princ) ) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object)) col 1 tot 1 x 0.0 y 0.0 eh 1.0 ; Scale rgn (getvar "LAYOUTREGENCTL") lcr (getvar "LAYOUTCREATEVIEWPORT") ) (vla-startundomark doc) (and (setq rep (dirbox "Sélectionnez le répertoire pour grouper les folios")) (setq lst (vl-directory-files rep "*.dwg" 1)) (progn (setq rep (vl-string-translate "\\" "/" rep) old (layoutlist) ) (or (eq (substr rep (strlen rep) 1) "/") (setq rep (strcat rep "/"))) (setvar "LAYOUTREGENCTL" 0) (setvar "LAYOUTCREATEVIEWPORT" 0) (foreach ele (acad_strlsort lst) (setq obj (vla-insertblock (vla-get-modelspace doc) (vlax-3d-point (list x y 0.0)) (findfile (strcat rep ele)) 1 1 1 0 ) ) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'bg 'hd))) (vlax-for sui (vla-get-textstyles doc) (or (eq (vla-get-bigfontfile sui) "") (findfile (vla-get-bigfontfile sui)) (KillBigFont (vla-get-name sui)) ) ) ) (vla-getboundingbox obj 'bg 'hd) (setq bg (vlax-safearray->list bg) hd (vlax-safearray->list hd) dix (- (car hd) (car bg)) diy (- (cadr hd) (cadr bg)) px (* dix 1.05) py (* diy 1.05) lay (itoa tot) ) (while (< (strlen lay) 2) (setq lay (strcat "0" lay)) ) (or (vl-catch-all-error-p (setq sel (vl-catch-all-apply 'vlax-invoke (list obj 'explode)))) (vla-delete obj) ) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-add (list (vla-get-layouts doc) lay))) (ssget "x" (list (cons 410 lay))) (progn (vlax-map-collection (setq sel (vla-get-activeselectionset doc)) 'vla-delete) (vla-delete sel) (setq old (vl-remove lay old)) ) ) (vla-put-activelayout doc (setq tab (vla-item (vla-get-layouts doc) lay))) (setq fen (vla-addpviewport (vla-get-block tab) (vlax-3d-point (mapcar '(lambda(a B) (/ (+ a B) 2.0)) '(0.0 0.0 0.0) (list dix diy 0.0))) dix diy)) (vla-put-layer fen "0") (vla-put-color fen "256") (vla-put-viewporton fen :vlax-true) (vla-zoomextents (vlax-get-acad-object)) (vla-display fen :vlax-false) (vla-display fen :vlax-true) (vla-put-mspace doc :vlax-true) (vla-zoomWindow (vlax-get-acad-object) (vlax-3d-point bg) (vlax-3d-point hd)) (vla-put-customscale fen eh) (vla-put-mspace doc :vlax-false) (vla-put-displaylocked fen :vlax-true) (setq tot (1+ tot) col (1+ col) x (+ x px) ) (and (eq col 11) (setq x 0.0 y (+ y py) col 1 ) ) ) (setvar "LAYOUTREGENCTL" rgn) (setvar "LAYOUTCREATEVIEWPORT" lcr) (foreach lay old (vla-delete (vla-item (vla-get-layouts doc) lay)) ) (vla-purgeall doc) ) ) (vla-endundomark doc) (princ) ) @+
  23. Salut Tu as deux modifs à faire. Ensuite, pour les blocs imbriqués, c'est normal car le nom du bloc imbriqué n'est pas le même que celui qui est inséré. Donc pas de changement car la sélection se fait par nom. @+
  24. Patrick_35

    Lisps de Patrick_35

    Salut Peut-tu nous donner un exemple qui ne fonctionne pas avec Grf ? @+
  25. Salut Tu remplaces (member (vla-get-name bl) lst) par (member (nombl bl) lst) @+
×
×
  • 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é