Aller au contenu

Messages recommandés

Posté(e)

Bonjour

j'ai des cartouches constitués d'attribut 'texte' mais chaque fois que j'e modifie mon texte tout se met en majuscule ???

 

y'a t'il un moyen de transformer ces attributs en texte, ou comment faire pour qu'il garde le texte sans tout transformer en majuscule ??

 

@+

 

Michel a

Posté(e)

Bonjour,

Si cela peut te servir en attendant mieux..... [surligneur]DECBLOC.lsp[/surligneur]

Décompose un bloc composé d'attributs et récupère toutes les valeurs des attributs sous la forme d'objet texte

 

; DECBLOC.LSP

; ===============================
; recuperation des valeurs des attributs
; d'un bloc en le décomposant
; Remplace attribut par texte
;
; Dominique VAQUAND 
; le 28.05.96
; ===============================

(defun c:DECBLOC ()
  
  ; mise en mémoire du plan courant
  
  
  (setvar "cmdecho" 0)
  
  (setq derplan (getvar "clayer"))
  
  ; sélection du bloc
  
  (setq ent_bloc (entsel "\nSélectionnez le bloc: "))
  
  (setq ent_bloc (car ent_bloc))
  
  (if (= (cdr (assoc 0 (entget ent_bloc))) "INSERT")
     (progn
        
        (if (= (cdr (assoc 66 (entget ent_bloc))) 1)
           (progn
              
              (setq ent_att (entnext ent_bloc))
              
              ; récupération des informations de l'attribut 
              
              (while (/= (cdr (assoc 0 (entget ent_att))) "SEQEND")
                 
                 ; nom étiquette
                 (setq att_etiq (cdr (assoc 2 (entget ent_att))))      
                 
                 
                 ; valeur du contenu de l'attribut
                 (setq att_val (cdr (assoc 1 (entget ent_att))))
                 
                 
                 ; justification du texte
                 (setq flag72 (cdr (assoc 72 (entget ent_att))))
                 
                 
                 ; style texte
                 (setq att_style (cdr (assoc 7 (entget ent_att))))
                 
                 ; position x10
                 (setq att_x10 (cdr (assoc 10 (entget ent_att))))
                 
                 ; position x11
                 (setq att_x11 (cdr (assoc 11 (entget ent_att))))
                 
                 ;hauteur texte
                 (setq att_htxt (cdr (assoc 40 (entget ent_att))))
                 
                 ;nom du plan
                 (setq att_plan (cdr (assoc 8 (entget ent_att))))
                 
                 
                 (command "_layer" "_m" att_plan "")
                 
                 
                 (if (= (cdr (assoc 70 (entget ent_att))) 0)
                    (progn
                       
                       (setq h_style (cdr (assoc 40 (tblsearch "style" att_style))))
                       
                       (cond 
                          
                          ((= flag72 0)
                             (if (= h_style 0)
                                (command "texte" "st" att_style att_x10 att_htxt 0 att_val)
                                (command "texte" "st" att_style att_x10 0 att_val)
                             )
                          )
                          
                          ((= flag72 1)
                             (if (= h_style 0)
                                (command "texte" "st" att_style "c" att_x11 att_htxt 0 att_val)
                                (command "texte" "st" att_style "c" att_x11 0 att_val)
                             )
                          )
                          
                          ((= flag72 2)
                             (if (= h_style 0)
                                (command "texte" "st" att_style "d" att_x11 att_htxt 0 att_val)
                                (command "texte" "st" att_style "d" att_x11 0 att_val)
                             )
                          )
                          
                          ((= flag72 3)
                             (if (= h_style 0)
                                (command "texte" "st" att_style "A" att_x10 att_x11 att_htxt  att_val)
                                (command "texte" "st" att_style "A" att_x10 att_x11 att_val)
                             )
                          )
                          
                          ((= flag72 4)
                             (if (= h_style 0)
                                (command "texte" "st" att_style "M" att_x11 att_htxt 0 att_val)
                                (command "texte" "st" att_style "M" att_x11 0 att_val)
                             )
                          )
                          
                          ((= flag72 5)
                             (if (= h_style 0)
                                (command "texte" "st" att_style "F" att_x10 att_x11 att_htxt att_val)
                                (command "texte" "st" att_style "F" att_x10 att_x11 att_val)
                             )
                          )
                          
                       );end cond
                       
                       
                       
                    );end progn
                    
                 );end if
                 
                 
                 
                 (setq ent_att (entnext ent_att))
                 
                 
                 
              );end while
              
              
              ; on décompose le bloc
              
              (command "decompos" ent_bloc )
              
              
              ; on efface tous les attributs
              
              (command "effacer" (ssget "x" (list (cons 0 "ATTDEF"))) "")
              
              (command "redess")
              
              ; on se replace sur le plan courant
              (command "_layer" "_m" derplan "")
              
              
              
           );progn
           
           (alert "Ce bloc ne contient pas d'attribut. Pour le décomposer\nutilisez simplement la commande DECOMPOS.")
           
        );if
        
     );progn
     
     (alert "Ce n'est pas un objet bloc.")
     
  );if
  

 (princ)
  
  
);defun


; =================== END DEFUN


(princ "\n==> DECBLOC")
(princ)

 

Oran

Posté(e)

Merci de ta réponse oran, ce ne sont pas des blocs ce sont que des attributs,

avec etiquette et invité tout simplement, je cherche le moyen de convertir att2txt.......

 

le code dxf "((0 . "ATTDEF") (2 . "Mon titre") (7 . "Style") (8 . "calque") (210 0.0 0.0 1.0))"

 

@+

 

Michel a

 

Posté(e)

Salut,

 

En fait c'est l'étiquette de l'attribut que tu semble utiliser (code de groupe DXF 2).

Dans ce cas je ne comprends pas l'intérêt par rapport à un texte simple :casstet:

 

Un LISP qui transforme les définitions d'atribut sélectionnées en texte :

 

(defun c:att2txt (/ ss n elst)
 (and
   (setq ss (ssget '((0 . "ATTDEF"))))
   (repeat (setq n (sslength ss))
     (setq elst (entget (ssname ss (setq n (1- n)))))
     (entmake
(cons
  '(0 . "TEXT")
  (cons
    (cons 1 (cdr (assoc 2 elst)))
    (vl-remove-if-not
      '(lambda (x)
	 (member (car x) '(67 410 8 10 40 50 41 51 7 71 11 210))
       )
      elst
    )
  )
)
     )
     (entdel (cdr (assoc -1 elst)))
   )
 )
 (princ)
) 

 

mais si tu préfères conserver des definitions d'attributs, en modifiant l'étquette par la fenêtre des propriétés, la casse est conservée.

 

[Edité le 30/7/2007 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci beaucoup Gile

 

ça fonctionne, c'était pour éviter de refaire les cartouches, ils sont tous en textes maintenant et il n'y aura plus de différence entre eux.

 

en cliquant simplement sur un texte ou changer un caractère tout venait en majuscule ??? c'était génant en final de l'uniformisation des cartouches.

 

@+

 

Michel a

 

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é