Aller au contenu

Modifier le calque des étiquette d'attribut dans un bloc


nen

Messages recommandés

Bonjour le forum,

J'ai besoin de votre aide😀.
J'ai un bloc sur le calque "0-INFO-LOCAL" composé de trois attributs sur le calque "0".

J'aimerais par un lisp ou toutes autres commandes changer le calque des étiquettes de l'attributs "0" en "0-INFO-LOCAL" ou tout autre calque de mon choix.
Il y a bien la commande "DEFDUCALQUE" le problème c'est que cela déplace uniquement sur DUCALQUE ou DUBLOC.
J'ai essayé aussi de changer directement dans mon bloc d'origine, de le réimporter et de redéfinir tous les blocs malheureusement cela ne fonctionne pas.

Est-ce quelqu'un à une astuce ou un lisp, car j'ai des plans avec des dizaines d'attributs à changer.

PS: bloc dans le fichier ci-joint


Merci d'avance pour votre aide
Meilleures salutations

Bloc01.dwg

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Maxime063,

Merci pour ton aide👍
Oui cette solution cela fonctionne nickel, je connaissais pas😃.
N'est-il pas possible d'automatiser avec un lisp ou macro ?🤔
En effet j'ai plusieurs dizaines de plans à modifier ses manipulations vont être fastidieuses vu le nombre de plan.😟
 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour le forum,

J’ai essayé de créer une macro avec la ligne de commande ci-dessous :
Malheureusement elle s’arrête juste après « MODIFBLOC ».

Est-ce que quelqu’un aurait une idée pourquoi ?

^C^C-MODIFBLOC;chprop;TOUT;CA;0-INFO-LOCAL;;

 

Merci d’avance

Meilleures salutations

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Gile,

Oui en effet c'est exactement ce que je veux faire, merci pour ton aide👍.
Je voudrais standardiser plusieurs dizaines de plans reçu de plusieurs prestataires différent et je bloque avec les attributs.
Le problème comment faire quand tu as des dizaines de plans à faire ?🤔

j'aurais voulut automatiser avec un script en lançant lisp et macro.

Si j'ose une petite remarque sur « Edit_Bloc », on change le calque, la couleur, il aurait été sympa d'y trouver la hauteur de texte aussi.😉

Elle est super cette petite appli, je ne connaissais pas, bon boulot bravo.👏

Meilleures salutations

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Dans un script, soit tu charges le LISP suivant et tu appelles la "commande LISP" XXX (tu peux la renommer comme tu veux).

(defun c:xxx (/ e l)
  (if
    (and
      (setq e (cdr (assoc -2 (tblsearch "BLOCK" "INFO-LOCAL_100_200"))))
      (setq l (tblobjname "LAYER" "0-INFO-LOCAL"))
    )
     (while e
       (setpropertyvalue e "LayerId" l)
       (setq e (entnext e))
     )
  )
  (princ)
)

soit tu mets directement dans le script l'expression suivante :

(if
  (and
    (setq e (cdr (assoc -2 (tblsearch "BLOCK" "INFO-LOCAL_100_200"))))
    (setq l (tblobjname "LAYER" "0-INFO-LOCAL"))
  )
   (while e
     (setpropertyvalue e "LayerId" l)
     (setq e (entnext e))
   )
)

 

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

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour😃,

J’ai modifié le lisp en rajoutant la fonction « attsync », j’ai essayé plusieurs fois sans succès, j’ai le message « erreur de syntaxe ».

Ou est mon erreur ?🤔

 

Merci d’avance

Meilleures salutations

(defun c:XXX (/ e l)
  (if
    (and
      (setq e (cdr (assoc -2 (tblsearch "BLOCK" "INFO-LOCAL_100_200"))))
      (setq l (tblobjname "LAYER" "0-INFO-LOCAL"))
    )
     (while e
       (setpropertyvalue e "LayerId" l)
       (setq e (entnext e))
     )
	(vl-cmdf "_.attsync" "_name" (vla-get-name def))
	(vla-endundomark adoc)
  )
  (princ)
)

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Luna😃,

Je te remercie pour ton aide👍.
En effet je voudrais une fois le lisp de Gile exécuté que la fonction attsync synchronise tous les blocs "INFO-LOCAL_100_200".
Je ne sais pas où se trouve l'erreur.
As-tu une idée ?🤔

Meilleures salutations

Lien vers le commentaire
Partager sur d’autres sites

@Luna t'a dit d'où venait l'erreur :

Il y a 6 heures, nen a dit :
(vl-cmdf "_.attsync" "_name" (vla-get-name def))

Or, def n'existe pas dans ton code, mais par contre, tu connais très bien le nom du bloc... Donc fais simplement :

(command-s "_.attsync" "_name" "INFO-LOCAL_100_200")

 

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Gile😃,

Je te remercie pour ton aide et ce complément d’info
Super merci, j’ai essayé et cela fonctionne impeccable, merci aussi à Luna pour ton aide.👍

Comme exercice, J’ai modifié le bloc avec une hauteur de texte 20 et mon attribut forcé 15. Pour que les soit les deux pareils, j’ai écrit mon code comme ci-dessous et cela ne fonctionne pas ?
La fonction "tblobjname" c’est elle qui me permet de modifier mon bloc, non ?

(setq l (tblobjname "HEIGHT" "15"))

 

Meilleures salutations
 

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Alors non, (tblobjname) permet uniquement de récupérer le nom d'entité d'une entrée située dans une Symbol Table. Il existe 9 Symbol Table :

Symbol tables in each drawing database

Symbol table name

Description

APPID

Registered applications

BLOCK

Blocks (named and anonymous)

DIMSTYLE

Dimension styles

LAYER

Layers

LTYPE

Linetypes

STYLE

Text styles

UCS

Named User Coordinate Systems (UCSs)

VIEW

Named views

VPORT

Named viewports

"Symbol tables are used to store non-graphical information in a drawing’s database.", Aide AutoCAD.
Si tu veux modifier la hauteur d'un attribut, la méthode est un peu différente car il te faut parcourir les sous-objets de la définition de bloc (ce que le programme fait actuellement avec la boucle (while) et le (cdr (assoc -2 (tblsearch ...))) ), mais il te faut surtout retrouver parmi ces objets, l'entité correspondant à ton attribut pour en modifier le code DXF 40 (correspondant à la propriété de hauteur de texte d'un attribut) dans sa liste DXF via (entmod). Ou bien en modifiant la propriété "Height" dans sa liste de propriétés accessibles via (dumpallproperties).
Essaye quelque chose comme ceci :

(defun c:XXX (/ e l)
  (if
    (and
      (setq e (cdr (assoc -2 (tblsearch "BLOCK" "INFO-LOCAL_100_200"))))
      (setq l (tblobjname "LAYER" "0-INFO-LOCAL"))
    )
     (progn
       (while e
         (setpropertyvalue e "LayerId" l)
         (if (= "ATTDEF" (cdr (assoc 0 (entget e)))) ;; Vérifie si le sous-objet est un attribut
		   (setpropertyvalue e "Height" 15) ;; En passant par les propriétés (dumpallproperties)
	     )
         (setq e (entnext e))
       )
	   (command-s "_.attsync" "_name" "INFO-LOCAL_100_200")
     )
  )
  (princ)
)

Je n'ai pas testé mais à voir. J'ai également supprimé la ligne

(vla-endundomark adoc)

vu que la variable 'adoc est elle aussi non définie dans ton programme donc cette ligne est inutile en l'état. Tu peux éventuellement remplacer cette ligne par

(vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object)))

Je pense que avant de te pencher sur l'aide concernant les fonctions et méthodes du Visual LISP, il faudrait que tu regardes les bases de programmation concernant la déclaration des variables et leur utilisation.
- Site de (gile)
- Site de didier
Ce n'est qu'un début mais cela est déjà pas mal 😉
Tu pourras ensuite checker le site de didier, il a justement fait une partie sur le langage Visual LISP.

Bisous,
Luna

Modifié par Luna
Modification du code
Lien vers le commentaire
Partager sur d’autres sites

Bonjour Luna,

Merci pour ton aide et ses précieuses informations😉👍.
En effet je consulte de temps en temps ce genre de site, malheureusement je n’arrive pas à acquérir les bases pour progresser.😟

J'ai dû déplacer la ligne de commande "(command-s "_.attsync" "_name" "INFO-LOCAL_100_200")" et le placer juste en dessous de la ligne "(setq e (entnext e))".
Par contre, pour la hauteur du texte il le fait dans l’autre sens, cela ne change pas la hauteur du texte du bloc en 15, mais change la hauteur du texte de l'attribut en 20.🤔
Je joins un dwg avec le bloc.
 

Meilleures salutations

Dessin1.dwg

Lien vers le commentaire
Partager sur d’autres sites

@nen, vui désolée la position du (command-s ...) était dans le sinon du (if) donc c'était une erreur. J'ai donc ajouté un (progn) pour pouvoir avoir le (while) et le (command) qui s'exécute si VRAI (et éviter de faire un ATTSYNC à chaque sous-objet de ton bloc...). J'ai également corrigé le type d'objet qui est "ATTDEF" et non "ATTRIB". Sinon je ne comprends pas ton histoire de hauteur du texte du bloc et de hauteur du texte de l'attribut... Ici le programme modifie la hauteur de l'attribut situé dans la définition du bloc et c'est tout !

PS Le code modifié est sur mon post précédent.

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Luna,

Je te remercie pour ton aide et me permets de supprimer le précédent post je n'avais pas tout vérifié, désolé.

Avec la modification du code, j'ai fait plusieurs tests sur diffèrent plan dans certain plan le lisp fonctionne à merveille et sur d'autre il me change par exemple le facteur de largeur du texte en 0.9 ?

Je me rends compte que j'aurais des différents problèmes suivant l'origine du plan.

J'ai essayé de changer la couleur, j'ai modifié le code "(setpropertyvalue e "Color" 5)", cela fonctionne, maintenant je voudrais rajouter ce code au précédent ou dois-je le placer, j'ai essayé sans succès ?

Je désire aussi changer le facteur de largeur, angle oblique, style de texte, etc. ou est-ce que peut trouver ses infos "Libellé" ?

 

Meilleures salutations

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Par rapport au code plus haut dans le post, je remercie Gile et Luna.

J'aimerais modifier quelques options supplémentaires du texte des attributs.
Pour la couleur et la rotation, j'ai trouvé c'est --> (setpropertyvalue e "Color" 5) et (setpropertyvalue e "rotation" 0)

Je voudrais savoir comment s'appellent les options suivantes (ou comment les trouver) : --> Style de texte, facteur de largeur, angle oblique, etc.

Pour le facteur de largeur que j'ai essayé (setpropertyvalue e "width" 0,75), cela ne fonctionne pas.


Merci de votre aide.
Bon weekend
 

Img1.png

Lien vers le commentaire
Partager sur d’autres sites

La fonction dumpallproperties permet de connaitre toutes les propriétés accessible avec getpropertyvalue ou getpropertyvalue pour l'objet passé en argument (le résultat s'affiche dans la fenêtre de texte (F2)).

Pour sélectionner un attribut de bloc, tu peux utiliser nentsel :

(dumpallproperties (car (nentsel)))

 

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

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour,

Je te remercie Gile pour ton aide.
Malheureusement, je n'ai pas compris l'aide disponible avec F2 ?
Dans AutoCAD ou dans l'éditeur visual LISP ?
Dans l'exemple il répertorie les propriétés disponibles pour un objet de type ligne comment dois-je faire pour obtenir celle des attributs ?

PS: joint une liste des fonctions lisp trouvé sur le net


Merci d'avance
Meilleures salutations

Liste des fonctions par ordre alphabétique du AutoLISP.xlsx

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @nen

Oui le F2 est l'espace "texte" de AutoCAD
Le souci ne viendrait-il pas du séparateur décimal du système, en effet je vois que le facteur de largeur de l'attribut est exprimé 0,75.
Avez-vous essayé avec 0.75, la virgule n'est pas le séparateur décimal qui va bien pour AutoCAD.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

F2 correspond à la touche de fonction permettant d'afficher l'historique des commandes (juste au dessus de la ligne de commande, sinon en format fenêtre windows via CTRL+F2). Ce que t'as suggérer (gile) c'est de copier

(dumpallproperties (car (nentsel)))

dans ta ligne de commande, et tu cliques sur un de tes attributs de blocs (en étant dans l'espace objet, pas besoin d'être dans l'éditeur de bloc). Cela va te donner dans l'historique de commande l'ensemble des propriétés accessibles via (getpropertyvalue) et (setpropertyvalue). Cela va renvoyer quelque chose comme ceci :

Choix de l'objet: Begin dumping object (class: AcDbAttribute)
AlignmentPoint/X (type: double)  (RO)  (LocalName: Alignement du texte X) = Failed to get value
AlignmentPoint/Y (type: double)  (RO)  (LocalName: Alignement du texte Y) = Failed to get value
AlignmentPoint/Z (type: double)  (RO)  (LocalName: Alignement du texte Z) = Failed to get value
Annotative (type: bool)  (LocalName: Annotatif) = 0
AnnotativeScale (type: AcString)  (RO)  (LocalName: Echelle annotative) = Failed to get value
BlockId (type: AcDbObjectId)  (RO) = 27906925980
CastShadows (type: bool) = 0
ClassName (type: AcString)  (RO) =
CollisionType (type: AcDb::CollisionType)  (RO) = 1
Color (type: AcCmColor)  (LocalName: Couleur) = DUCALQUE
ExtensionDictionary (type: AcDbObjectId)  (RO) = 0
FieldLength (type: int) = 0
FlowDirection (type: AcDbMText::FlowDirection)  (RO)  (LocalName: Direction) = 5
Handle (type: AcDbHandle)  (RO) = 3212b2
HasFields (type: bool)  (RO) = 0
HasSaveVersionOverride (type: bool) = 0
Height (type: double)  (LocalName: Hauteur) = 1.000000
HorizontalMode (type: AcDb::TextHorzMode) = 1
Hyperlinks (type: AcDbHyperlink*)
Invisible (type: bool)  (RO)  (LocalName: Invisible) = 0
IsA (type: AcRxClass*)  (RO) = AcDbAttribute
IsAProxy (type: bool)  (RO) = 0
IsCancelling (type: bool)  (RO) = 0
IsDefaultAlignment (type: bool)  (RO) = 0
IsEraseStatusToggled (type: bool)  (RO) = 0
IsErased (type: bool)  (RO) = 0
IsMTextAttribute (type: bool)  (RO)  (LocalName: Lignes multiples) = 0
IsMirroredInX (type: bool)  (LocalName: Symétrie horizontale) = 0
IsMirroredInY (type: bool)  (LocalName: Symétrie verticale) = 0
IsModified (type: bool)  (RO) = 0
IsModifiedGraphics (type: bool)  (RO) = 0
IsModifiedXData (type: bool)  (RO) = 0
IsNewObject (type: bool)  (RO) = 0
IsNotifyEnabled (type: bool)  (RO) = 0
IsNotifying (type: bool)  (RO) = 0
IsObjectIdsInFlux (type: bool)  (RO) = 0
IsPersistent (type: bool)  (RO) = 1
IsPlanar (type: bool)  (RO) = 1
IsPreset (type: bool)  (RO) = 0
IsReadEnabled (type: bool)  (RO) = 1
IsReallyClosing (type: bool)  (RO) = 1
IsTransactionResident (type: bool)  (RO) = 0
IsUndoing (type: bool)  (RO) = 0
IsVerifiable (type: bool)  (RO) = 0
IsWriteEnabled (type: bool)  (RO) = 0
Justify (type: AcDbText::AcTextAlignment)  (LocalName: Justifier) = 7
LayerId (type: AcDbObjectId)  (LocalName: Calque) = 2790eb09940
LineWeight (type: AcDb::LineWeight)  (LocalName: Epaisseur de ligne) = -1
LinetypeId (type: AcDbObjectId)  (LocalName: Type de ligne) = 279119e8150
LinetypeScale (type: double)  (LocalName: Echelle du type de ligne) = 0.100000
LocalizedName (type: AcString)  (RO) = Attribut
LockPositionInBlock (type: bool)  (RO)  (LocalName: Verrouiller la position) = 1
MTextJustify (type: AcDbAttDef::MTextJustity)  (LocalName: Justifier) = Failed to get value
MatchOrientationToLayout (type: bool)  (LocalName: Faire correspondre l'orientation à la présentation) = Failed to get value
MaterialId (type: AcDbObjectId)  (LocalName: Matériau) = Failed to get value
MergeStyle (type: AcDb::DuplicateRecordCloning)  (RO) = 1
ModelTextHeight (type: double)  (LocalName: Hauteur du texte 3D) = Failed to get value
Normal/X (type: double) = 0.000000
Normal/Y (type: double) = 0.000000
Normal/Z (type: double) = 1.000000
ObjectId (type: AcDbObjectId)  (RO) = 2790696aa20
Oblique (type: double)  (LocalName: Inclinaison) = 0.000000
OwnerId (type: AcDbObjectId)  (RO) = 2790696a9b0
PaperTextHeight (type: double)  (LocalName: Hauteur du texte sur le papier) = Failed to get value
PlotStyleName (type: AcString)  (RO)  (LocalName: Style de tracé) = ParCouleur
Position/X (type: double)  (RO)  (LocalName: Position X) = Failed to get value
Position/Y (type: double)  (RO)  (LocalName: Position Y) = Failed to get value
Position/Z (type: double)  (RO)  (LocalName: Position Z) = Failed to get value
ReceiveShadows (type: bool) = 0
Rotation (type: double)  (LocalName: Rotation) = 0.000000
ShadowDisplay (type: AcDb::ShadowFlags)  (RO)  (LocalName: Affichage des ombres) = Failed to get value
Tag (type: AcString)  (RO)  (LocalName: Etiquette) = REPERE
TextString (type: AcString) = G37 - P11
TextStyleId (type: AcDbObjectId)  (LocalName: Style) = 279119e1050
Thickness (type: double)  (LocalName: Epaisseur) = Failed to get value
Transparency (type: AcCmTransparency)  (LocalName: Transparence) = Failed to get value
Value (type: AcString)  (LocalName: Valeur) = G37 - P11
VerticalMode (type: AcDb::TextVertMode) = 3
Visible (type: AcDb::Visibility) = 0
Width (type: double)  (RO)  (LocalName: Largeur du texte multiligne) = 0.000000
WidthFactor (type: double)  (LocalName: Facteur de largeur) = 1.000000
End object dump

Je te laisse chercher les propriétés dont tu as besoin dans la liste et ensuite tu as compris le fonctionnement de (setpropertyvalue). Attention tout de même car certaines propriétés utilise l'ID et non le nom souhaité (par exemple la propriété correspondant au calque est "LayerID" donc tu n'as pas simplement le nom du calque). Dans ces cas-là, il faut vérifier si ces infos ne sont pas récupérable dans la liste DXF de l'objet dispo via

(entget (car (nentsel)))

Cela te donnera à peu près un résultat comme ceci (je l'ai mis en forme histoire que cela soit plus lisible) :

Explore DXF in progress from "ATTRIB" (<Nom d'entité: 2790696aa20>) :
|      (-1 . <Nom d'entité: 2790696aa20>)
|      (0 . "ATTRIB")
|      (330 . <Nom d'entité: 2790696a9b0>)
|      (5 . "3212B2")
|      (100 . "AcDbEntity")
|      (67 . 0)
|      (8 . "UBS-900-Texte (Poteau)")
|      (48 . 0.1)
|      (100 . "AcDbText")
|      (10 115.601 0.0103753 1.79366e-43)
|      (40 . 1.0)
|      (1 . "G37 - P11")
|      (50 . 3.83476e-17)
|      (41 . 1.0)
|      (51 . 3.83476e-17)
|      (7 . "UBS - Defaut - Verdana")
|      (71 . 0)
|      (72 . 1)
|      (11 119.094 1.01038 1.79366e-43)
|      (210 0.0 0.0 1.0)
|      (100 . "AcDbAttribute")
|      (280 . 0)
|      (2 . "REPERE")
|      (70 . 0)
|      (73 . 0)
|      (74 . 3)
|      (280 . 1)
|
End of exploration...

Il te suffit ensuite d'ouvrir l'aide AutoCAD et de chercher ce qui est écrit dans la paire pointée 0 (ici c'est ATTRIB) et d'ajouter DXF dans la barre de recherche (donc si tu cherches "ATTRIB DXF") et tu obtiens l'aide suivante :
 

ATTRIB (DXF)

Les codes de groupe suivants s'appliquent aux entités attrib (attributs).

Codes de groupe attrib

Code de groupe

Description

100

Marqueur de sous-classe (AcDbText)

39

Epaisseur (facultatif, valeur par défaut = 0)

10

Point de départ du texte (dans le SCO)

DXF : valeur X ; APP : point 3D

20, 30

DXF : valeurs Y et Z du point de départ du texte (dans le SCO)

40

Hauteur du texte

1

Valeur par défaut (chaîne)

100

Marqueur de sous-classe (AcDbAttribute)

280

Numéro de version :

0 = 2010

2

Etiquette d'attribut (chaîne ; ne peut contenir d'espaces)

70

Drapeaux d'attribut :

1 = Attribut invisible (non affiché)

2 = Attribut constant

4 = Vérification de la saisie de l'attribut

8 = Attribut prédéfini (aucune invite pendant l'insertion)

73

Longueur de champ (facultatif ; par défaut = 0) (rarement utilisée)

50

Rotation de texte (facultatif, valeur par défaut = 0).

41

Facteur d'échelle relative (largeur) de l'axe des X (facultatif ; valeur par défaut = 1). Cette valeur est également adaptée si l'on utilise un texte de type ajusté

51

Angle d'inclinaison (facultatif, valeur par défaut = 0)

7

Nom du style de texte (facultatif ; valeur par défaut = STANDARD)

71

Drapeaux de génération de texte (facultatif ; valeur par défaut = 0). Voir TEXT, codes de groupe

72

Justification horizontale du texte (facultatif ; valeur par défaut = 0). Voir TEXT, codes de groupe

74

Type de justification horizontale du texte (facultatif ; valeur par défaut = 0). Voir le code de groupe 73 à la section TEXT

11

Point d'alignement (dans le SCO) (facultatif)

DXF : valeur X ; APP : point 3D

Présent seulement si le groupe 72 ou 74 est présent et non nul

21, 31

DXF : valeurs Y et Z du point d'alignement (dans le SCO) (facultatif)

210

Direction d'extrusion. Présent seulement si la direction d'extrusion de l'entité n'est pas parallèle à l'axe des Z dans le SCG (facultatif, par défaut = 0, 0, 1)

DXF : valeur X ; APP : vecteur 3D

220, 230

DXF : valeurs Y et Z de la direction d'extrusion (facultatif)

280

Verrouiller le drapeau de position Verrouille la position de l'attribut dans la référence du bloc

100

Marqueur de sous-classe (AcDbXrecord)

280

Drapeau de clonage d'enregistrement dupliqué (indique comment fusionner les entrées en double) :

1 = Conserver l'élément existant

70

Indicateur textmult :

2 = attribut de texte multiligne

4 = définition d'attribut de texte multiligne de constante

70

Indicateur isReallyLocked :

0 = déverrouillé

1 = verrouillé

70

Nombre d'attributs secondaires de définitions d'attributs

340

Id de pointeur matériel d'attribut secondaire ou de définition d'attribut

10

Point d'alignement de l'attibut ou de la définition d'attribut

DXF : valeur X ; APP : point 3D

20,30

DXF : valeurs Y et Z du point d'insertion

40

échelle d'annotation courante

2

contenu de l'étiquette de l'attribut ou de la définition d'attribut

0

Type d'entité (TEXTMULT)

100

Marqueur de sous-classe (AcDbEntity)

67

Absent ou zéro indique que l'entité est dans l'espace objet. 1 indique que l'entité est dans l'espace papier (facultatif)

8

Nom du calque

100

Marqueur de sous-classe (AcDbMText)

10

Point d'insertion

DXF : valeur X ; APP : point 3D

20,30

DXF : valeurs Y et Z du point d'insertion

40

Hauteur de texte nominale (initiale)

41

Largeur du rectangle de référence

46

Hauteur d'annotation définie

71

Point d'attache :

1 = En haut à gauche ; 2 = En haut au centre ; 3 = En haut à droite

4 = Au milieu à gauche ; 5 = Au milieu au centre ; 6 = Au milieu à droite

7 = En bas à gauche ; 8 = En bas au centre ; 9 = En bas à droite

72

Direction du dessin :

1 = De gauche à droite

3 = De haut en bas

5 = Par style (la direction est héritée du style de texte associé)

1

Chaîne de texte

Si la chaîne de texte est inférieure à 250 caractères, tous les caractères apparaissent dans le groupe 1. Si elle est supérieure à 250 caractères, la chaîne est divisée en 250 blocs de caractères, lesquels apparaissent dans un ou plusieurs des codes de groupe 3. Si l'on utilise des codes de groupe 3, le dernier groupe est un groupe 1 et contient moins de 250 caractères.

3

Texte supplémentaire (toujours en blocs de 250 caractères) (facultatif)

7

DXF : valeur X ; APP : nom de style vectText 3D (STANDARD si non fourni) (facultatif)

210

Direction d'extrusion (facultatif ; valeur par défaut = 0, 0, 1)

DXF : valeur X ; APP : vecteur 3D

220,230

DXF : valeurs Y et Z de la direction d'extrusion (facultatif)

11

Vecteur de direction de l'axe des X (dans le SCG)

DXF : valeur X ; APP : vecteur 3D

21,31

DXF : valeurs Y et Z du vecteur de direction de l'axe des X (dans le SCG)

42

Largeur horizontale des caractères qui constituent l'entité mtext.

Cette valeur doit être inférieure ou égale à celle du code de groupe 41 (lecture seule, valeur ignorée si entrée).

43

Hauteur verticale de l'entité mtext (lecture seule, valeur ignorée si entrée).

50

Angle de rotation en radians

73

Style d'espacement des lignes de l'entité MTEXT (facultatif) :

1 = Minimum (les caractères de taille plus grande sont prioritaires)

2 = Exactement (les caractères de taille plus grande ne sont pas prioritaires)

44

Facteur d'espacement des lignes de l'entité MTEXT (facultatif) :

Pourcentage de l'espacement par défaut (3 sur 5) à appliquer.

Les valeurs admises vont de 0,25 à 4

90

Configuration du remplissage d'arrière-plan :

0 = Remplissage d'arrière-plan désactivé

1 = Utiliser la couleur du remplissage d'arrière-plan

2 = Utiliser la couleur de la fenêtre de dessin comme couleur de remplissage d'arrière-plan

63

Couleur d'arrière-plan (si numéro d'index des couleurs)

420-429

Couleur d'arrière-plan (si couleur RVB)

430-439

Couleur d'arrière-plan (si nom de la couleur)

45

Echelle de la zone de remplissage (facultatif) :

Détermine le type de bordure entourant le texte.

63

Couleur de remplissage d'arrière-plan (facultatif) :

Couleur à utiliser pour le remplissage d'arrière-plan lorsque le code de groupe 90 est 1.

441

Transparence de la couleur de remplissage d'arrière-plan (non appliquée)

Si les valeurs de groupe 72 et/ou 74 sont différentes de zéro, les valeurs du point d'insertion de texte sont ignorées et AutoCAD calcule de nouvelles valeurs à partir du point d'alignement du texte, ainsi que de la longueur et de la hauteur de la chaîne de texte proprement dite (après application du style de texte). Si les valeurs 72 et 74 sont égales à zéro ou manquantes, le point d'alignement du texte est ignoré et recalculé à partir du point d'insertion du texte et de la longueur de la chaîne de texte elle-même (après application du style de texte).

Pour modifier les propriétés accessible via (dumpallproperties (car (nentsel))), il faut utiliser la fonction (setpropertyvalue ename "PropertyName" value)ename correspond au nom d'entité de l'objet, "PropertyName" correspond au nom de la propriété défini par (dumpallproperties) et value la valeur souhaité (attention au format attendu !). Pour modifier les propriétés accessible via (entget (car (nentsel))), il faut utiliser la fonction (entmod (subst (cons # value) (assoc # (entget ename)) (entget ename)))# correspond au code DXF défini par l'aide AutoCAD, value la valeur souhaitée (attention au format attendu !) et ename le nom d'entité de l'objet.
J'espère que c'est assez claire désormais. Je ne pourrais pas vraiment faire grand chose de plus...

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour,

Je te remercie Luna pour ton aide précieuse😛.
Là tu m’as donné la totale, en effet j’ai trouvé la propriété que je cherchais👍.
Il va falloir que j’analyse tout ça, grâce à vous j’ai appris beaucoup de choses.

Est-ce que ses propriétés sont définitives ou cela change avec des nouvelles versions d’AutoCAD ?🤔
Cela vaut-il la peine d’en faire un catalogue (excel par exemple) ?

je remercie aussi Gile et Didier 🙂

Merci infiniment

Meilleures salutations

Lien vers le commentaire
Partager sur d’autres sites

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é