-
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
-
Ah oui, autant pour moi, je n'avais pas fait attention. @+
-
Salut Oui, sans lisp avec la commande -calque --> ? et des copier/coller d'autocad vers le bloc note, word, etc... @+
-
Décomposer le dernier bloc crée
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Version simple, en pur autolisp. (defun c:exp(/ der ent dxf) (if (and (setq ent (entsel "\nSélectionnez un bloc : ")) (setq dxf (entget (car ent))) (= (cdr (assoc 0 dxf)) "INSERT") ) (progn (setq der (entlast)) (vl-cmdf "_.explode" (car ent)) (setq ent (entnext der)) (while ent (setq ent (entget ent)) (if (not (vl-position (cdr (assoc 0 ent)) '("ATTRIB" "SEQEND"))) (entmod (subst (cons 8 (getvar "clayer")) (assoc 8 ent) ent)) ) (setq ent (entnext (cdr (assoc -1 ent)))) ) ) ) (princ) ) Version sans if, avec utilisation du and et du or comme condition if. (defun c:exp(/ der ent dxf) (and (setq ent (entsel "\nSélectionnez un bloc : ")) (setq dxf (entget (car ent))) (= (cdr (assoc 0 dxf)) "INSERT") (progn (setq der (entlast)) (vl-cmdf "_.explode" (car ent)) (setq ent (entnext der)) (while ent (setq ent (entget ent)) (or (vl-position (cdr (assoc 0 ent)) '("ATTRIB" "SEQEND")) (entmod (subst (cons 8 (getvar "clayer")) (assoc 8 ent) ent)) ) (setq ent (entnext (cdr (assoc -1 ent)))) ) ) ) (princ) ) Version vlisp, car (vlax-invoke ent 'explode) retourne directement la liste des objets décomposés. C'est quand même plus simple. (defun c:exp(/ ent new) (and (setq ent (entsel "\nSélectionnez un bloc : ")) (setq ent (vlax-ename->vla-object (car ent))) (= (vla-get-objectname ent) "AcDbBlockReference") (progn (foreach new (vlax-invoke ent 'explode) (vla-put-layer new (getvar "clayer")) ) (vla-delete ent) ) ) (princ) ) ps : je t'ai laissé travailler avec le code dxf -2, mais regarde quand tu en as besoin. Perso, jamais. pps : L'idée de mattoti (et suggéré par La Lozère) d'utiliser le (ssget "_p") est excellente. J'avais complétement zappé cette solution. A force de faire du vlisp ;) @+ -
Tout à fait, et aussi à une musique d'acid house (toute ma jeunesse). @+
-
Bonjour Je lance un appel à notre administrateur pour qu'il ouvre enfin les forums concernant les versions 2019 d'Autocad. Je vois qu'il y a de plus en plus de messages concernant cette version et qu'ils sont postés dans le forum 2018 (ça va être simple de s'y retrouver). Cadmin, si tu nous lis. @+
-
[Résolu] Ajouter des options à une commande LISP
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Je l'ai fait et de 3 manière afin de mieux expliquer. Je peux te les donner afin que tu vois ce qui a pu poser problème. @+ -
Ouvrir DWGVersion depuis mon menu perso
Patrick_35 a répondu à un(e) sujet de nen dans LISP et Visual LISP
Salut Le tout est de trouver :D @+ -
[Résolu] Ajouter des options à une commande LISP
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Salut Oui, avec les fonctions type getkword, getstring, getint, etc... ps : ça avance pour la décomposition du bloc ? @+ -
Ouvrir DWGVersion depuis mon menu perso
Patrick_35 a répondu à un(e) sujet de nen dans LISP et Visual LISP
Salut Après une recherche. @+ -
Décomposer le dernier bloc crée
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Oui, mais tu ne pourras plus exploiter 253. @+ -
Décomposer le dernier bloc crée
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Justement, c'est pour trouver le 1er élément décomposé --> (entnext der) Pas pour l'utiliser vu qu'il a été décomposé. @+ -
A part mon problème de délai (frappe clavier) et de la notification, je n'ai rien remarqué de spécial. La sélection en fenêtre ou capture fonctionne normalement (pour l'instant). @+
-
Bonjour J'ai fait la mise à jour d'autocad avec l'update 19.1.1 (avec le lien donné par Lecrabe et aussi téléchargé pour mes collègues) Quand je regarde la fenêtre A propos d'Autocad 2019, je vois bien que j'ai Autocad 2019.1.1. Donc l'update a bien été installé. Sur l'onglet début, dans la notification, il est indiqué une mise à jour, donc je vais voir et l'update est en 2019.0.1 :blink: Il n'y aurait pas comme un léger bug ? @+
-
Saisie de commande dans Autocad 2019
Patrick_35 a répondu à un(e) sujet de Patrick_35 dans AutoCAD 2018
Merci pour vos réponses. Oui, mais refaire la modif à chaque changement de version, même si on peut importer des profils, j'ai pris d'utiliser les alias par défaut. Cela me sert aussi quand je vais sur le poste d'un collègue. C'était déjà fait avant de poser la question, mais cela ne résolvait pas le problème. @+ -
Décomposer le dernier bloc crée
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Salut C'est beaucoup plus simple que tu ne le pense. Tu prends un exemple et tu fais ton lisp au pas à pas, en effectuant chaque étape. Par exemple Je sélectionne mon bloc qui est le dernier objet de mon dessin. (setq ent (entlast)) J'indique que c'est aussi de dernier objet du dessin (setq der ent) Je décompose mon bloc (vl-cmdf "_.explode" ent) Je recherche le 1er objet de mon bloc décomposé (setq ent (entnext der)) Je fais une boucle pour voir tout les types d'objets décomposés (while ent (princ (strcat "\n" (cdr (assoc 0 (entget ent))))) (setq ent (entnext ent)) ) Et tu vas comprendre comment faire. @+ -
Recupérer seulement une partie d'un nom d'un calque dans un champs ou RTEXT
Patrick_35 a répondu à un(e) sujet de Tryks dans Personnalisation, macros, DIESEL
Tu fais bien une 1ere manip en copiant (ctrl + c) puis coller (ctrl + v) ? @+ -
Saisie de commande dans Autocad 2019
Patrick_35 a répondu à un(e) sujet de Patrick_35 dans AutoCAD 2018
Merci mon crabinou J'ai passé la variable INPUTSEARCHDELAY à 400 et ça fonctionne nickel. Tu es non seulement le maitre des Lisps (3000), mais aussi celui des variables 3 D :D @+ -
Recupérer seulement une partie d'un nom d'un calque dans un champs ou RTEXT
Patrick_35 a répondu à un(e) sujet de Tryks dans Personnalisation, macros, DIESEL
Change le 5 3 en 7 1 comme l'indique BonusCad. Ou même 7 2 @+ -
Bonjour Il y a un certain délai entre le moment où l'on tape au clavier une commande et la réponse d'autocad pour une liste de choix de différentes commandes. Y a-t-il une variable, un paramètre qui permette de changer ce délai. Car 9 fois sur 10, quand je tape cp pour copier, je me retrouve à faire un cercle. Comme le P est éloigné du C, soit je suis très rapide, soit j'attends la liste de choix pour saisir mon P et cela commence à me (beeeeeeep). @+
-
Recupérer seulement une partie d'un nom d'un calque dans un champs ou RTEXT
Patrick_35 a répondu à un(e) sujet de Tryks dans Personnalisation, macros, DIESEL
Ben non, comme je te l'ai indiqué, pas d'expression diesel qui permette d'utiliser une partie du nom du calque. Je m'étais amusé à faire ceci. Insérer un champ --> Objet --> Sélection du texte --> Calque --> Puis un copier de la formule dans Expression de champ (ctrl + c). Annuler Insérer un champ --> Expression diesel --> $(substr,$( + le copier du champ (ctrl + v) + ),5,3) --> valider Graphiquement, ça marche, mais si tu édites ton texte, tu te rends compte que tu n'as que la partie de texte qui t'intéresse et que si tu changes de calque ton objet + regen, et bien cela ne fonctionne plus. Donc, aucun intérêt. @+ -
Recupérer seulement une partie d'un nom d'un calque dans un champs ou RTEXT
Patrick_35 a répondu à un(e) sujet de Tryks dans Personnalisation, macros, DIESEL
La réponse va être rapide, non, pas en rtext. Par contre, tu peux utiliser les champs, mais pas de formule diesel dans ce cas. @+ -
Salut Clique sur la flèche bas à droite du type de fichiers pour choisir l'extension .xlsx @+
-
Décomposer le dernier bloc crée
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Alors, tu ne décomposes que le 1er. Pas besoin de tester si c'est un bloc imbriqué. Pour le SEQEND, au clavier Sélection d'un bloc (setq ent (car (entsel))) Codes dxf (entget ent) Entité suivante (setq ent (entnext ent)) Codes dxf --> Attribut (entget ent) Entité suivante (setq ent (entnext ent)) Codes dxf --> Attribut (entget ent) ... Entité suivante (setq ent (entnext ent)) Codes dxf --> SEQEND (entget ent) Autre exemple (setq ent (car (entsel))) (setq ent (entget ent)) (while (/= (cdr (assoc 0 ent)) "SEQEND") (princ (strcat "\n" (cdr (assoc 0 ent)))) (setq ent (entget (entnext (cdr (assoc -1 ent))))) ) @+ -
Décomposer le dernier bloc crée
Patrick_35 a répondu à un(e) sujet de Aleck_Ultimate dans Débuter en LISP
Le SEQEND est là pour indiquer la fin des attributs. Pour ce qui est des blocs imbriqués, il suffit simplement de les décomposer au fur et a mesure que tu les trouvent. Les objets décomposés seront ajoutés à la suite du dernier et comme tu es dans une boucle. Par contre, dans ce cas, attention aux objets non décomposables (boucle infinie). @+ -
Recupérer seulement une partie d'un nom d'un calque dans un champs ou RTEXT
Patrick_35 a répondu à un(e) sujet de Tryks dans Personnalisation, macros, DIESEL
Salut La formule est bonne, il faut juste, quand tu lances la commande rtext, choisir l'option D pour diesel. @+
