Curlygoth Posté(e) le 7 mai 2021 Posté(e) le 7 mai 2021 Bonjour, Auriez-vous un possibilité en lisp : Pour activer le masque d’arrière plan avec une valeur disons 1 pour le facteur de décalage de bordure, et affecter une couleur de remplissage ou non ? Mon site Web (en cours de construction) : Site DA-CODE de @didier
philsogood Posté(e) le 7 mai 2021 Posté(e) le 7 mai 2021 hello le lisp ne date pas d'hier (vl-load-com) (vlr-command-reactor "Masque texte" '((:vlr-commandEnded . EndMtextMleader))) (defun EndMtextMleader (calling-reactor endcommandInfo / thecommandend enam elst obj d) (setq thecommandend (nth 0 endcommandInfo)) (setq enam (entlast)) (setq obj (vlax-ename->vla-object enam)) (setq d 1.15) ;; valeur de l'offset (cond ((= thecommandend "MTEXT") (if (eq (vla-get-backgroundfill obj) :vlax-false) (progn ;; changer backgroundfill à vrai (vla-put-backgroundfill obj :vlax-true) ;; entmod offset (setq elst (entget enam)) (entmod (subst (cons 45 d) (assoc 45 elst) elst ) ;_ subst ) ;_ entmod ) ;_ progn ) ;_ if ) ((= thecommandend "MLEADER") (if (eq (vla-get-TextBackgroundFill obj) :vlax-false) (progn ;; changer backgroundfill à vrai (vla-put-TextBackgroundFill obj :vlax-true) ;; entmod offset (setq elst (entget enam)) (entmod (subst (cons 141 d) (assoc 141 elst) elst ) ;_ subst ) ;_ entmod ) ;_ progn ) ;_ if ) ) ;_ cond ) Phil Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 7 mai 2021 Posté(e) le 7 mai 2021 1 hour ago, Curlygoth said: Auriez-vous un possibilité en lisp : Pour activer le masque d’arrière plan avec une valeur disons 1 pour le facteur de décalage de bordure, et affecter une couleur de remplissage ou non ? Ce que tu demandes est possible, mais il faudrait préciser ce que tu appelles "un possibilité". Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Curlygoth Posté(e) le 7 mai 2021 Auteur Posté(e) le 7 mai 2021 ok je reformule : Auriez-vous une possibilité pour activer le masque d’arrière plan et mettre une valeur pour le facteur de décalage de bordure à 1 ou autre, Affecter une couleur de remplissage ou conserver la couleur de l'arrière plan. a savoir que le texte que je génère a besoin parfois d'un masque d'arriere plan à 1 (ou autre) avec une couleur définis (7,1,2,3,etc...) suivant un nombre de paramètre que je ne détaillerais pas ici...XD Le tout pouvant être appeller via VBA pour agir directement dessus via son handle ou via la collection ou autre ... peu importe... je vais regarder ton code @philsogood d'ailleurs la command pour le lancer c'est bien ça : EndMtextMleader Mon site Web (en cours de construction) : Site DA-CODE de @didier
lecrabe Posté(e) le 7 mai 2021 Posté(e) le 7 mai 2021 Hello Et voici la routine "MBlank" tiree de mon stock de 3001 routines ... ; ; This will set the color to match the background ;; (entmod (append dxf_ent '((90 . 3) (63 . 256) (45 . 1.1) (441 . 0)))) La Sante, Bye, lecrabe (triste & fatigue) ;; ;; http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/mtext-background-mask-settings-lisp/td-p/5998702 ;; ;; Routine: MBlank for MTEXT - Add/Modify Background Mask ;; ;; Background Color = 9 ou 61 ou xxx ;; ;; Border = 1.3 ( Default = 1.5 ) ;; (defun c:MBlank ( / js n dxf_ent) (setq js (ssget '((0 . "MTEXT")))) (cond (js (repeat (setq n (sslength js)) (setq dxf_ent (entget (ssname js (setq n (1- n))))) (entmod (append dxf_ent '( (90 . 1) (63 . 61) (45 . 1.3) (441 . 0) ))) ) ) ) ) 1 Autodesk Expert Elite Team
Curlygoth Posté(e) le 7 mai 2021 Auteur Posté(e) le 7 mai 2021 merci maitre des crustacés @lecrabe mais j'ai l'impression qu'il change toutes les entité Mtext du dessin non ? Mon site Web (en cours de construction) : Site DA-CODE de @didier
(gile) Posté(e) le 7 mai 2021 Posté(e) le 7 mai 2021 Ça devrait répondre à ta demande. ;; setBackground ;; Masque d'arrière plan de texte multiligne ;; ;; Arguments ;; handle : handle du mtext ;; fill : type de remplissage 1 ou 3 (1 pour la couleur spécifiée ; 3 pour la couleur de l'arrière plan ;; color : couleur de l'index entre 1 et 255 ;; scale : facteur d'achelle du masque ;; ;; Exemple : (setBackground "2AE9" 1 31 1.2) (defun setBackground (handle fill color scale / l) (setq l (entget (handent handle))) (entmod (append (vl-remove-if (function (lambda (x) (member (car x) '(90 63 421 431 45 441))) ) l ) (list (cons 90 fill) (cons 63 color) (cons 45 scale) ) ) ) ) 1 Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Curlygoth Posté(e) le 7 mai 2021 Auteur Posté(e) le 7 mai 2021 malgres le chargement avec appload... il me dit que la commande setBackground n'existe pas... ou alors j'ai ça : (setBackground 56DBC 3 2 1) ; erreur: type d'argument incorrect: stringp nil Mon site Web (en cours de construction) : Site DA-CODE de @didier
(gile) Posté(e) le 7 mai 2021 Posté(e) le 7 mai 2021 Ce n'est pas une commande. C'est une fonction LISP avec arguments (lis les commentaires). Tu dis vouloir paramétrer la couleur et/ou le décalage, il faut bien passer ces paramètres en argument. Dans ta macro VBA, pour mettre un masque en couleur 31 avec un décalage de 1.2 sur un MTEXT dont le handle est assigné à la variable 'handle', ça devrait être un truc comme ça : ThisDrawing.SendCommand("(setBackground & Chr34 & handle & Chr34 & "1 31 1.2)") ThisDrawing.SendCommand("(setBackground & Chr34 & handle & Chr34 & "1 31 1.2)") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Curlygoth Posté(e) le 7 mai 2021 Auteur Posté(e) le 7 mai 2021 Oui c'est Tout bon je pensais qu les parenthèse c'était pour insister sur l'exemple XD mais c'est bon ça marche du tonnerre ! merci beaucoup Maitre @(gile)! 🤩🤩🤩 Mon site Web (en cours de construction) : Site DA-CODE de @didier
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