Aller au contenu

Arrière plan cote/ligne de repère/texte avec couleur transparente


Messages recommandés

Posté(e)

Bonjour,

Petite question toute bête. Est-il possible de mettre une couleur transparente d'arrière plan à un texte, une côte et une ligne de repère ?

 

Merci.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Bonjour,

Petite question toute bête. Est-il possible de mettre une couleur transparente d'arrière plan à un texte, une côte et une ligne de repère ?

 

Merci.

 

 

Bonjour,

Une couleur transparente ? c'est à dire ?

Il est possible de forcer la couleur du fond d'un Mtext ou alors pour un texte d'une ligne de repère et un Mtext on peut y mètre la couleur du fond de plan

Posté(e)

Bonjour,

Une couleur transparente ? c'est à dire ?

Il est possible de forcer la couleur du fond d'un Mtext ou alors pour un texte d'une ligne de repère et un Mtext on peut y mètre la couleur du fond de plan

Merci Maxime,

Oui, je connais pour mettre une couleur de fond, mais je voudrais qu'il y ait un effet de transparence sur ce fond afin de voir légèrement les objets situés en dessous. Peut-être n'est pas possible.

Après, il faut que je regarde, comme on peut mettre de la transparence de manière globale à l'objet peut-être que ça peut le faire.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Hello

 

SI je pense que c possible avec les CTB par exemple !?

 

Tu choisis une couleur ACI (1-255) d arriere plan speciale bien precise !

( et INUTILISEE partout ailleurs )

ET cette couleur sera imprimee / tracee avec une projection de 05-20%

 

A tester ... SVP toujours travailler sur une copie du AutoCAD.CTB !

 

LA SANTE, Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Dans ce cas la, que ce soit avec un CTB, un calque prédéfinit qui met une transparence ou bien en le modifiant à la main, il est possible une fois que la couleur du fond est choisi d' y ajouter une transparence et donc de voir les objets en dessous. (sans oublier de tracer avec la transparence)

Posté(e)

Bonjour,

Merci à vous pour ces retours. Effectivement, avec les CTB il y a moyen de faire quelque chose. Mais je n'utilise plus les CTB depuis 15 ans. Je n'en ai plus l'utilité. Du coup, je cherchais une solution simple. Et comme ce n'est pas fondamental, je vais continuer comme ça. Au pire je mettrais une hachure solide avec transparence sous mon texte.

Merci encore.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Hello

 

Au fait je te joins ci-apres une routine CT_MT de Gilles que j'adore !

Elle cree un cadre (en LWPOLYLINE) et/ou un SOLID Aplat couleur derriere les TEXTs / MTEXTs selectionnes

C simple et beton ...

 

LA SANTE, Bye, lecrabe

 


;; 
;; Une routine pour placer un cadre ou un masque d'arrière plan (hachure SOLID) 
;; sur les textes (simples ou multilignes).
;;
;; CT & MT par GC 15/11/07 + 18/11/07 + 20/11/07
;; 
;; http://www.cadxp.com/sujetXForum-17530.htm
;; 
;; Fonctionnent avec textes simples et multilignes
;; Les Parametres (couleur et la distance de Decalage)
;; sont conservées dans le dessin pendant la session
;;
;; EDIT : Tout bien pesé, je pense qu'il vaut mieux 2 commandes séparées 
;; (CT pour les cadres et MT pour les masques) : moins d'options à valider ou modifier.
;;
;; EDIT : Nouvelles versions, fonctionnent avec les "couleurs vraies" pour les version 2004 
;; et plus, en couleurs de l'index pour les version antérieures.
;;
;; EDIT : Ajout d'une option Wipeout dans MT
;;
;; EDIT : Ajout d'une option Largeur (de polyligne) dans CT
;; 

;; 
;; CT Encadre les textes Selectionnés
;; 

(defun c:CT (/ of col wid opt par wo n ss n tx elst plst)
(or *TextFrameOffset*
(setq *TextFrameOffset* (/ (getvar "TEXTSIZE") 5.0))
)
(or *TextFrameColor*
(setq *TextFrameColor* (list '(62 . 256)))
)
(or *TextFrameWidth*
(setq *TextFrameWidth* 0.0)
)
(setq of *TextFrameOffset*
col *TextFrameColor*
wid *TextFrameWidth*
)
(while
(and (princ (strcat "\nDecalage: "
(rtos of)
"\tCouleur: "
(TrueColor2String col)
"\tLargeur: "
(rtos wid)
"\nSelectionnez les textes ou <Parametres> "
)
)
(not (setq ss (ssget '((0 . "MTEXT,TEXT")))))
)
(initget 1 "Decalage Couleur Largeur")
(setq par (getkword
"\nChoix de l'option [Decalage/Couleur/Largeur]: "
)
)
(cond
((= par "Couleur")
(if (< 15 (atoi (substr (getvar "ACADVER") 1 2)))
(if (setq col (acad_truecolordlg
(cond
((assoc 420 col))
((assoc 62 col))
)
)
)
(setq *TextFrameColor* col)
(setq col *TextFrameColor*)
)
(if (setq col (acad_colordlg (cdr (assoc 62 col))))
(setq *TextFrameColor* (setq col (list (cons 62 col))))
(setq col *TextFrameColor*)
)
)
)
((= par "Decalage")
(if (setq of (getdist (strcat "\nSpecifiez le Decalage du cadre <"
(rtos of)
">: "
)
)
)
(setq *TextFrameOffset* of)
(setq of *TextFrameOffset*)
)
)
(T
(if (setq wid (getdist (strcat "\nSpecifiez la largeur du cadre <"
(rtos wid)
">: "
)
)
)
(setq *TextFrameWidth* wid)
(setq wid *TextFrameWidth*)
)
)
)
)
(setq n -1)
(while (setq tx (ssname ss (setq n (1+ n))))
(setq elst (entget tx)
plst (text2box-plst elst of)
)
(make-frame elst col wid plst)
)
(princ)
)

;; ==========================================================;;

;; 
;; MT Place un masque (hachure SOLID ou wipeout) derrière les textes Selectionnés
;; 

(defun c:MT (/ of col par n ss n tx elst plst ec)
(or *TextMaskOffset*
(setq *TextMaskOffset* (/ (getvar "TEXTSIZE") 5.0))
)
(or *TextMaskColor*
(setq *TextMaskColor* (list '(62 . 1)))
)
(setq of *TextMaskOffset*
col *TextMaskColor*
)
(while
(and (princ (strcat "\nDecalage: "
(rtos of)
"\tCouleur: "
(TrueColor2String col)
"\nSelectionnez les textes ou <Parametres> "
)
)
(not (setq ss (ssget '((0 . "MTEXT,TEXT")))))
)
(initget 1 "Decalage Couleur Wipeout")
(setq par (getkword
"\nChoix de l'option [Decalage/Couleur/Wipeout]: "
)
)
(cond
((= par "Wipeout")
(setq *TextMaskColor* (setq col (list (cons 430 "Wipeout"))))
)
((= par "Couleur")
(if (< 15 (atoi (substr (getvar "ACADVER") 1 2)))
(if (setq col (acad_truecolordlg
(cond
((assoc 420 col))
((assoc 62 col))
(T '(62 . 1))
)
)
)
(setq *TextMaskColor* col)
(setq col *TextMaskColor*)
)
(if (setq col (acad_colordlg
(cond ((cdr (assoc 62 col)))
(T 1)
)
)
)
(setq *TextMaskColor* (setq col (list (cons 62 col))))
(setq col *TextMaskColor*)
)
)
)
(T
(setq of (getdist (strcat "\nSpecifiez le Decalage du cadre <"
(rtos of)
">: "
)
)
)
(setq *TextMaskOffset* of)
(setq of *TextMaskOffset*)
)
)
)
(setq n -1)
(while (setq tx (ssname ss (setq n (1+ n))))
(setq elst (entget tx)
plst (text2box-plst elst of)
)
(make-mask elst col plst)
)
(setq ec (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(command "_draworder" ss "" "_f")
(setvar "CMDECHO" ec)
(princ)
)

;; ==========================================================;;

;; Text2Box-plst
;; Retourne la liste des sommets (coordonnées SCO) de la boite
;; englobant le texte après Decalage
;;
;; Arguments
;; elst : liste DXF de l'entité
;; of : distance de Decalage

(defun Text2box-plst (elst of / nor ref rot wid hgt jus org box plst)
(if (= "MTEXT" (cdr (assoc 0 elst)))
(setq nor (cdr (assoc 210 elst))
ref (trans (cdr (assoc 10 elst)) 0 nor)
rot (angle '(0 0 0) (trans (cdr (assoc 11 elst)) 0 nor))
wid (cdr (assoc 42 elst))
hgt (cdr (assoc 43 elst))
jus (cdr (assoc 71 elst))
org (list
(cond
((member jus '(2 5 8)) (/ wid -2))
((member jus '(3 6 9)) (- wid))
(T 0.0)
)
(cond
((member jus '(1 2 3)) (- hgt))
((member jus '(4 5 6)) (/ hgt -2))
(T 0.0)
)
)
plst (mapcar
(function
(lambda (p)
(mapcar '+ org p)
)
)
(list
(list (- of) (- of))
(list (+ wid of) (- of))
(list (+ wid of) (+ hgt of))
(list (- of) (+ hgt of))
)
)
)
(setq box (textbox elst)
ref (cdr (assoc 10 elst))
rot (cdr (assoc 50 elst))
plst (list
(list (- (caar box) of) (- (cadar box) of))
(list (+ (caadr box) of) (- (cadar box) of))
(list (+ (caadr box) of) (+ (cadadr box) of))
(list (- (caar box) of) (+ (cadadr box) of))
)
)
)
(setq mat (list (list (cos rot) (- (sin rot)) 0)
(list (sin rot) (cos rot) 0)
'(0 0 1)
)
plst (mapcar
(function
(lambda (p)
(mapcar '+ (mxv mat p) (list (car ref) (cadr ref)))
)
)
plst
)
)
)

;; ==========================================================;;

;; Make-Frame
;; Crée une polyligne encadrant le texte
;;
;; Arguments
;; elst : liste DXF de l'entité
;; col : couleur de la polyligne
;; plst : liste des sommets

(defun make-frame (elst col wid plst / nor elv)
(setq nor (cdr (assoc 210 elst)))
(if (= "MTEXT" (cdr (assoc 0 elst)))
(setq elv (caddr (trans (cdr (assoc 10 elst)) 0 nor)))
(setq elv (caddr (cdr (assoc 10 elst))))
)
(entmake
(append
(list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
(assoc 8 elst)
(if (and (< 15 (atoi (substr (getvar "ACADVER") 1 2)))
(assoc 420 col)
)
(assoc 420 col)
(assoc 62 col)
)
'(100 . "AcDbPolyline")
'(90 . 4)
'(70 . 1)
(cons 43 wid)
(cons 38 elv)
(cons 210 nor)
)
(mapcar (function (lambda (x) (cons 10 x))) plst)
)
)
)

;; ==========================================================;;

;; Make-Mask
;; Crée une hachure SOLID figurant un masque d'arrière plan
;;
;; Arguments
;; elst : liste DXF de l'entité texte
;; col : couleur de la hachure
;; plst : liste des sommets

(defun make-mask (elst col plst / nor elv)
(setq nor (cdr (assoc 210 elst)))
(if (= "MTEXT" (cdr (assoc 0 elst)))
(setq elv (caddr (trans (cdr (assoc 10 elst)) 0 nor)))
(setq elv (caddr (cdr (assoc 10 elst))))
)
(if (= (cdr (assoc 430 col)) "Wipeout")
(MakeWipeout
(mapcar
(function
(lambda (p)
(list (car p) (cadr p) elv)
)
)
plst
)
nor
(cdr (assoc 8 elst))
)
(entmake
(list
'(0 . "HATCH")
'(100 . "AcDbEntity")
(assoc 8 elst)
(if (and (< 15 (atoi (substr (getvar "ACADVER") 1 2)))
(assoc 420 col)
)
(assoc 420 col)
(assoc 62 col)
)
'(100 . "AcDbHatch")
(list 10 0.0 0.0 elv)
(cons 210 nor)
'(2 . "SOLID")
'(70 . 1)
'(71 . 0)
'(91 . 1)
'(92 . 1)
'(93 . 4)
'(72 . 1)
(cons 10 (car plst))
(cons 11 (cadr plst))
'(72 . 1)
(cons 10 (cadr plst))
(cons 11 (caddr plst))
'(72 . 1)
(cons 10 (caddr plst))
(cons 11 (cadddr plst))
'(72 . 1)
(cons 10 (cadddr plst))
(cons 11 (car plst))
'(97 . 0)
'(75 . 0)
'(76 . 1)
'(98 . 1)
'(10 0.0 0.0 0.0)
)
)
)
)




;; ==========================================================;;
;; MakeWipeout crée un objet "wipeout" à partir d'une liste de points 
;; et du vecteur normal de l'objet

(defun MakeWipeout (pt_lst nor lay / dxf10 max_dist cen dxf_14)
(or (member "acwipeout.arx" (arx)) (arxload "acwipeout.arx"))
(setq dxf10 (list (apply 'min (mapcar 'car pt_lst))
(apply 'min (mapcar 'cadr pt_lst))
(caddar pt_lst)
)
)
(setq
max_dist
(float
(apply 'max
(mapcar '- (apply 'mapcar (cons 'max pt_lst)) dxf10)
)
)
)
(setq cen (mapcar '+ dxf10 (list (/ max_dist 2) (/ max_dist 2) 0.0)))
(setq
dxf14 (mapcar
'(lambda (p)
(mapcar '/
(mapcar '- p cen)
(list max_dist (- max_dist) 1.0)
)
)
pt_lst
)
)
(setq dxf14 (reverse (cons (car dxf14) (reverse dxf14))))
(entmake (append (list '(0 . "WIPEOUT")
'(100 . "AcDbEntity")
(cons 8 lay)
'(100 . "AcDbWipeout")
'(90 . 0)
(cons 10 (trans dxf10 nor 0))
(cons 11 (trans (list max_dist 0.0 0.0) nor 0))
(cons 12 (trans (list 0.0 max_dist 0.0) nor 0))
'(13 1.0 1.0 0.0)
'(70 . 7)
'(280 . 1)
'(71 . 2)
(cons 91 (length dxf14))
)
(mapcar '(lambda (p) (cons 14 p)) dxf14)
)
)
)

;; ==========================================================;;
;; Applique une matrice de transformation à un vecteur (Vladimir Nesterovsky) 

(defun mxv (m v)
(mapcar (function (lambda (r) (apply '+ (mapcar '* r v))))
m
)
)

;; ==========================================================;;
;; Retourne une chaîne indiquant l'index de la couleur ou les valeurs RVB 

(defun TrueColor2String (lst / ind)
(setq ind (cond ((cdr (assoc 430 lst)))
((cdr (assoc 420 lst)))
((cdr (assoc 62 lst)))
(T 256)
)
)
(cond
((= (type ind) 'STR) ind)
((= ind 256) "DuCalque")
((= ind 0) "DuBloc")
((< 256 ind)
(strcat (itoa (lsh ind -16))
","
(itoa (lsh (lsh ind 16) -24))
","
(itoa (lsh (lsh ind 24) -24))
)
)
((itoa ind))
)
)  

Autodesk Expert Elite Team

Posté(e)

Une autre solution manuelle serait de décomposé la ligne de repère.

Après cela le texte devient un Mtext, et on peut donc y mettre un masque d'arrière plan B)

Attention toute fois, si on copie les propriétés d'un Mtext vers un autre, la justification du Mtext sera le même que celui qui était définit sur la ligne de repère.

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é