pixel61 Posté(e) le 17 septembre 2006 Posté(e) le 17 septembre 2006 Bonsoir à tous Dans Autocad j’aimerais savoir si c'est possible en sélectionnant un texte d'en récupérer son point d'insertion et donc tracer une ligne depuis ce point, (et ceci en lisp). Merci pour votre aide :) A+
(gile) Posté(e) le 17 septembre 2006 Posté(e) le 17 septembre 2006 Salut et bienvenue, Le point d'insertion d'un texte (ou mtexte) est contenu dans le code de groupe 10 de la liste de données DXF de l'entité, la liste retournée par la fonction entget. Exemple : (if (and (setq ent (car (entsel))) ; Sélection d'une entité (wcmatch (cdr (assoc 0 (entget ent))) "*TEXT") ; Type d'entité : TEXT ou MTEXT ) (setq ins_pt (cdr (assoc 10 (entget ent)))) ; Point d'insertion ) [Edité le 17/9/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
pixel61 Posté(e) le 18 septembre 2006 Auteur Posté(e) le 18 septembre 2006 Bonjour à tous Merci Gile je vais mettre en pratique ce code A+
pixel61 Posté(e) le 18 septembre 2006 Auteur Posté(e) le 18 septembre 2006 Salut Gile J'ai essaié ce code en ajoutant la commande Ligne et en utilisant le "ins_pt" comme point d'insertionmais ça ne marche pas. why ????? :) MerciA+
(gile) Posté(e) le 18 septembre 2006 Posté(e) le 18 septembre 2006 Salut, Pourrais tu préciser ce que tu entends par "ça ne marche pas" ou ce que tu veux faire avec ta ligne (souligner, surligner ?). Le point retourné par le code est le point d'insertion d'un texte multiligne (en haut à gauche) ou le premier point d'alignement d'un texte simple (en bas à gauche), celui qui se "grippe" quand on sélectionne le texte. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
pixel61 Posté(e) le 19 septembre 2006 Auteur Posté(e) le 19 septembre 2006 Salut gile Ton code fonctionne très bien, j'avais mal écrit la partie que j'ai ajouté.Par contre lorsque je sélectionne un texte le point d'insertion reste toujours à gauche même si le texte a un point d'insertion centre, c'est possible de corriger cela ? Encore merci pour ton aideA+
(gile) Posté(e) le 19 septembre 2006 Posté(e) le 19 septembre 2006 Salut, les entités texte et mtexte ayant des différences marquées à ce niveau, pourrait tu me dire si c'est avec les uns, les autres ou les deux que tu veux travailler. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 19 septembre 2006 Posté(e) le 19 septembre 2006 Tu dois utilser des textes simples, sinon tu n'aurais pas ce soucis de point d'insertion, j'ai répondu un peu vite, ci dessus. Dz toutes façons voilà un petit LISP qui fonctionne avec les deux types de texte, le point tient compte de la justification et est retourné en coordonnées du SCU courant pour la fonction (command ...) (defun c:test (/ ent e_lst ins_pt) (while (not (and (setq ent (car (entsel))) (wcmatch (cdr (assoc 0 (setq e_lst (entget ent)))) "*TEXT") ) ) ) (if (= (cdr (assoc 0 e_lst)) "TEXT") (if (and (zerop (cdr (assoc 72 e_lst))) (zerop (cdr (assoc 73 e_lst))) ) (setq ins_pt (trans (cdr (assoc 10 e_lst)) ent 1)) (setq ins_pt (trans (cdr (assoc 11 e_lst)) ent 1)) ) (setq ins_pt (trans (cdr (assoc 10 e_lst)) 0 1)) ) (command "_line" "_non" ins_pt pause "") (princ) ) [Edité le 20/9/2006 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
pixel61 Posté(e) le 20 septembre 2006 Auteur Posté(e) le 20 septembre 2006 Salut gile :) Impeccable :) Je te remercie beaucoup pour ton aide, c'est effectivement ce que je cherchait à faire.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant