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

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

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

#1 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2 784
  • Inscrit(e) : 28-juin 06
  • LocationVienne (38) - Etude APA - A480

Posté 26 janvier 2021 - 15:08

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 2018 - Covadis/Autopiste V17.0d - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#2 L'utilisateur est hors-ligne   Maxime063 

  • ceinture verte
  • Groupe : Membres
  • Messages : 62
  • Inscrit(e) : 03-juin 20

Posté 27 janvier 2021 - 11:41

Voir le messageLa Lozère, le 26 janvier 2021 - 15:08 , dit :

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
0

#3 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2 784
  • Inscrit(e) : 28-juin 06
  • LocationVienne (38) - Etude APA - A480

Posté 27 janvier 2021 - 19:04

Voir le messageMaxime063, le 27 janvier 2021 - 11:41 , dit :

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 2018 - Covadis/Autopiste V17.0d - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#4 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 9 431
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42) Forez

Posté 27 janvier 2021 - 19:09

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
0

#5 L'utilisateur est hors-ligne   Maxime063 

  • ceinture verte
  • Groupe : Membres
  • Messages : 62
  • Inscrit(e) : 03-juin 20

Posté 28 janvier 2021 - 08:22

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)
0

#6 L'utilisateur est hors-ligne   La Lozère 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2 784
  • Inscrit(e) : 28-juin 06
  • LocationVienne (38) - Etude APA - A480

Posté 04 février 2021 - 12:53

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 2018 - Covadis/Autopiste V17.0d - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
0

#7 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 9 431
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42) Forez

Posté 04 février 2021 - 13:18

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
0

#8 L'utilisateur est hors-ligne   Maxime063 

  • ceinture verte
  • Groupe : Membres
  • Messages : 62
  • Inscrit(e) : 03-juin 20

Posté 04 février 2021 - 14:07

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.
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)