-
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
-
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 @+
-
Salut On peut revenir aux bonne vieilles méthodes avec ONG @+ Ong-v3.10.zip
-
Autocad vers Excel avec fichier deja existant et emplacement choisi
Patrick_35 a répondu à un(e) sujet de Nono64 dans AutoCAD 2008
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. @+ -
[résolu]Trouver sa présentation quand on a 50 à 60 présentations
Patrick_35 a répondu à un(e) sujet de Circus dans AutoCAD 2014
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 @+ -
Je plussoie :D @+
-
Autocad vers Excel avec fichier deja existant et emplacement choisi
Patrick_35 a répondu à un(e) sujet de Nono64 dans AutoCAD 2008
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) @+ -
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 @+
-
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 ;) @+
-
Oui, mais de cette manière (wcmatch (vlax-get (cdr ele) 'layer) "* PHASE B") et (wcmatch (vlax-get (cdr deb) 'layer) "* PHASE B") @+
-
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") ) ) @+
-
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) ) @+
-
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) ) @+
-
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) ) @+
-
Convertisseur / DCL
Patrick_35 a répondu à un(e) sujet de CadFrank dans Pour aller plus loin en LISP
Salut C'est très bien de vouloir optimiser sa boite de dialogue, mais commence par le plus simple. Un tuto sur les DCL. @+ -
Débutant buttant sur quelques trucs.
Patrick_35 a répondu à un(e) sujet de Oïnk Oïnk dans AutoCAD 2015
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) ) @+ -
Lister l'ensemble des calques
Patrick_35 a répondu à un(e) sujet de Olivier_CEA_Grenoble dans Débuter en LISP
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")) @+ -
Lister l'ensemble des calques
Patrick_35 a répondu à un(e) sujet de Olivier_CEA_Grenoble dans Débuter en LISP
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. @+ -
Lister l'ensemble des calques
Patrick_35 a répondu à un(e) sujet de Olivier_CEA_Grenoble dans Débuter en LISP
Bravo :D D'habitude, tu reponds en autolisp et moi en vlisp. Là c'est le contraire :(rires forts): @+ -
Lister l'ensemble des calques
Patrick_35 a répondu à un(e) sujet de Olivier_CEA_Grenoble dans Débuter en LISP
Ou encore (setq cal (tblnext "layer" t)) (while cal (write-line (cdr (assoc 2 cal)) fich_log) (setq cal (tblnext "layer")) ) @+ -
Lister l'ensemble des calques
Patrick_35 a répondu à un(e) sujet de Olivier_CEA_Grenoble dans Débuter en LISP
Salut Pour pointer sur le 1er calque (tblnext "layer" t) @+ -
Salut Cela veut dire qu'une personne a effacée les attributs dans l'éditeur de bloc sans refaire une synchro avec le dessin. @+
-
Textes et styles annotatifs : retours d'expérience ?
Patrick_35 a répondu à un(e) sujet de GEGEMATIC dans AutoCAD 2015
Salut Si, sans problème, mais comme je ne l'utilise pas, le retour d'expérience est vite fait. @+ -
[Résolu] Comment lister tous les lisp au démarage d'AutoCAD
Patrick_35 a répondu à un(e) sujet de Steven dans AutoCAD 2015
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. @+ -
Incrémenter un attribut choisis
Patrick_35 a répondu à un(e) sujet de nG! Hebus dans LISP et Visual LISP
Salut Et avec IAT ? @+ -
[Résolu] Insérer un bloc par rapport à l'attribut d'un autre bloc
Patrick_35 a répondu à un(e) sujet de Blabla dans AutoCAD 2011
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. @+
