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. Patrick_35

    publier 15 pages

    Ca fonctionne bien sur ma 2014. je viens de regarder le lisp et il y a des "command". Selon ce sujet (n'ayant pas de 2015), il faut remplacer dans le lisp tous les command par command-s @+
  2. Patrick_35

    publier 15 pages

    Salut On peut revenir aux bonne vieilles méthodes avec ONG @+ Ong-v3.10.zip
  3. Salut Un autre lien. Bonne question. Si tu regardes bien, tu peux donner jusqu'a 12 arguments pour la commande saveas, mais 8 sont requis au minimum sinon --> ; erreur: nombre de paramètres réels insuffisant. @+
  4. Salut Cela veut dire que le répertoire où est mis le lisp et son DCL ne sont pas dans les chemins de recherches. Un (findfile "FOG.DCL") doit indiquer nil, donc Outils --> Options --> Chemin de recherche de fichiers de support en cours d'utilisation --> Ajouter @+
  5. Je plussoie :D @+
  6. Salut Après une recherche C'est le type de fichier. 51 pour le xlsx Pour retrouver tes petits : (setq xls (vlax-get-or-create-object "excel.application")) Ensuite, il reste pluq qu'a lire ;) (vlax-dump-object xls T) Libérer ou supprimer Excel de la mémoire (s'il n'a pas été lancé auparavant) (vlax-release-object xls) @+
  7. Oui, j'avais compris. C'est juste l'affichage qui pose problème. C'est comme la réponse de _zebulon à 06:43 et quand il est cité, à 18:43 :D @+
  8. Bonjour C'est hors sujet, mais je trouve amusant la date et heure de la réponse #7 et #10 :D Bruno nous fait de la bilocation ;) @+
  9. Patrick_35

    Superposition de bloc

    Oui, mais de cette manière (wcmatch (vlax-get (cdr ele) 'layer) "* PHASE B") et (wcmatch (vlax-get (cdr deb) 'layer) "* PHASE B") @+
  10. Patrick_35

    Superposition de bloc

    Tu as pris la dernière version ? Sinon, il n'est plus question d'ordre de création. Il faut alors remplacer. (if (< (vlax-get (cdr deb) 'handle) (vlax-get (cdr ele) 'handle)) (vla-put-layer (cdr ele) "Patrick_35") (vla-put-layer (cdr deb) "Patrick_35") ) Par (cond ((eq (vlax-get (cdr ele) 'layer) "*NOM DU CALQUE* PHASE B") (vla-put-layer (cdr ele) "Patrick_35") ) ((eq (vlax-get (cdr deb) 'layer) "*NOM DU CALQUE* PHASE B") (vla-put-layer (cdr deb) "Patrick_35") ) ) @+
  11. Patrick_35

    Superposition de bloc

    Une version avec une tolérance de 1e-7, soit 0.0000001 (defun c:dou(/ deb doc ele lst sel) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (or (tblsearch "layer" "Patrick_35") (vla-add (vla-get-layers doc) "Patrick_35") ) (and (ssget "x" (list (cons 0 "insert"))) (progn (vlax-for ele (setq sel (vla-get-activeselectionset doc)) (setq lst (cons (cons (vlax-get ele 'insertionpoint) ele) lst)) ) (vla-delete sel) (while lst (setq deb (car lst) lst (cdr lst) ) (foreach ele (vl-remove-if-not '(lambda(x) (equal (car x) (car deb) 1e-7)) lst) (if (< (vlax-get (cdr deb) 'handle) (vlax-get (cdr ele) 'handle)) (vla-put-layer (cdr ele) "Patrick_35") (vla-put-layer (cdr deb) "Patrick_35") ) (setq lst (vl-remove ele lst)) ) ) ) ) (vla-endundomark doc) (princ) ) @+
  12. Patrick_35

    Superposition de bloc

    Une version qui place les blocs superposés sur le calque Patrick_35 (defun c:dou(/ deb doc ele lst sel) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (or (tblsearch "layer" "Patrick_35") (vla-add (vla-get-layers doc) "Patrick_35") ) (and (ssget "x" (list (cons 0 "insert"))) (progn (vlax-for ele (setq sel (vla-get-activeselectionset doc)) (setq lst (cons (cons (vlax-get ele 'insertionpoint) ele) lst)) ) (vla-delete sel) (while lst (setq deb (car lst) lst (cdr lst) ) (while (setq ele (assoc (car deb) lst)) (if (< (vlax-get (cdr deb) 'objectid) (vlax-get (cdr ele) 'objectid)) (vla-put-layer (cdr ele) "Patrick_35") (vla-put-layer (cdr deb) "Patrick_35") ) (setq lst (vl-remove ele lst)) ) ) ) ) (vla-endundomark doc) (princ) ) @+
  13. Patrick_35

    Superposition de bloc

    Salut Regarde avec ce lisp, pour voir. Fait une sauvegarde auparavant et regarde bien avant de valider (defun c:dou(/ deb doc ele lst sel) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (ssget "x" (list (cons 0 "insert"))) (progn (vlax-for ele (setq sel (vla-get-activeselectionset doc)) (setq lst (cons (cons (vlax-get ele 'insertionpoint) ele) lst)) ) (vla-delete sel) (while lst (setq deb (car lst) lst (cdr lst) ) (while (setq ele (assoc (car deb) lst)) (if (< (vlax-get (cdr deb) 'objectid) (vlax-get (cdr ele) 'objectid)) (vla-delete (cdr ele)) (vla-delete (cdr deb)) ) (setq lst (vl-remove ele lst)) ) ) ) ) (vla-endundomark doc) (princ) ) @+
  14. Salut C'est très bien de vouloir optimiser sa boite de dialogue, mais commence par le plus simple. Un tuto sur les DCL. @+
  15. Salut Avec un lisp par exemple qui recopie sur le calque courant. (defun c:copie(/ der ele) (setq der (entlast)) (vl-cmdf "_.pasteclip" pause) (while (setq der (entnext der)) (setq ele (entget der) ele (subst (cons 8 (getvar "clayer")) (assoc 8 ele) ele) ) (entmod ele) ) (princ) ) @+
  16. Je préfère les itératives, plus simple et plus fiable à mon gout. Cela n'empêche pas que des récursives s'imposent quand on fait une recherche de type arborescence (répertoires, blocs imbriqués, ...) ps : je vois que deviens une pointure en lisp, même si c'est inspiré à l'origine de (gile). Ben, quand on lit ça (setq bl (tblnext "BLOCK" t)) (while bl (write-line (cdr(assoc 2 bl)) fich_log) (setq bl (tblnext "BLOCK")) ) (setq SCUS (tblnext "UCS" t)) (while SCUS (write-line (cdr(assoc 2 SCUS)) fich_log) (setq SCUS (tblnext "UCS")) ) on peut très bien imaginer une sous-routine (defun ecrire_table(tbl / ele) (setq ele (tblnext tbl t)) (while ele (write-line (cdr (assoc 2 ele)) fich_log) (setq ele (tblnext tbl)) ) ) appellé par (ecrire_table "BLOCK") (ecrire_table "UCS") Ou (foreach ele '("BLOCK" "UCS") (ecrire_table ele) ) Ou (mapcar 'ecrire_table '("BLOCK" "UCS")) @+
  17. N'oublie pas aussi de remercier Bruno, qui a pris la peine de te lire et de te répondre. Regarde aussi ses réponses, elles sont pleines d'enseignements. @+
  18. Bravo :D D'habitude, tu reponds en autolisp et moi en vlisp. Là c'est le contraire :(rires forts): @+
  19. Ou encore (setq cal (tblnext "layer" t)) (while cal (write-line (cdr (assoc 2 cal)) fich_log) (setq cal (tblnext "layer")) ) @+
  20. Salut Pour pointer sur le 1er calque (tblnext "layer" t) @+
  21. Patrick_35

    Attribut invisible.

    Salut Cela veut dire qu'une personne a effacée les attributs dans l'éditeur de bloc sans refaire une synchro avec le dessin. @+
  22. Salut Si, sans problème, mais comme je ne l'utilise pas, le retour d'expérience est vite fait. @+
  23. Salut LATT est basé sur les réacteurs et lors de sa conception, les blocs dynamiques n'existaient pas. Je pense que je vais devoir revoir le code. @+
  24. Salut Et avec IAT ? @+
  25. Je suis comme toi, j'en profite en ce moment :D Tu as tord car c'est pour tous les niveaux, même très bon. @+
×
×
  • 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é