nen Posté(e) le 5 novembre 2021 Posté(e) le 5 novembre 2021 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
Maxime063 Posté(e) le 5 novembre 2021 Posté(e) le 5 novembre 2021 Bonjour, Pour modifier le calque des attributs en passant par la modification dans l'éditeur de bloc, il faut ensuite passer par la commande "ATTSYNC" pour que la modification opère. Amicalement.
nen Posté(e) le 5 novembre 2021 Auteur Posté(e) le 5 novembre 2021 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.😟
nen Posté(e) le 9 novembre 2021 Auteur Posté(e) le 9 novembre 2021 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
(gile) Posté(e) le 11 novembre 2021 Posté(e) le 11 novembre 2021 Je ne suis pas certain de comprendre exactement la demande, mais s'il s'agit de modifier le calque des entités d'une définition de bloc, tu peux utiliser Edit_Bloc sur cette page. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
nen Posté(e) le 12 novembre 2021 Auteur Posté(e) le 12 novembre 2021 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
(gile) Posté(e) le 12 novembre 2021 Posté(e) le 12 novembre 2021 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
nen Posté(e) le 15 novembre 2021 Auteur Posté(e) le 15 novembre 2021 Bonjour Gile, Je te remercie pour ton aide😉. C’est exactement ça cela fonctionne impeccable mais est-il possible d’y ajouter la commande "attsync" au code afin de tout synchroniser ? Merci d’avance Meilleures salutations
nen Posté(e) le 23 novembre 2021 Auteur Posté(e) le 23 novembre 2021 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) )
Luna Posté(e) le 23 novembre 2021 Posté(e) le 23 novembre 2021 Coucou, Je pense que ton erreur vient de la variable 'def, car si je m'en tiens uniquement au programme partagé ici, on a def = nil donc cela ne peut pas fonctionner... Je suppose que tu veux (vla-get-name def) = "INFO-LOCAL_100_200", nan ? Bisous, Luna
nen Posté(e) le 23 novembre 2021 Auteur Posté(e) le 23 novembre 2021 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
(gile) Posté(e) le 23 novembre 2021 Posté(e) le 23 novembre 2021 @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
nen Posté(e) le 24 novembre 2021 Auteur Posté(e) le 24 novembre 2021 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
Luna Posté(e) le 24 novembre 2021 Posté(e) le 24 novembre 2021 (modifié) 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é le 24 novembre 2021 par Luna Modification du code
nen Posté(e) le 24 novembre 2021 Auteur Posté(e) le 24 novembre 2021 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
Luna Posté(e) le 24 novembre 2021 Posté(e) le 24 novembre 2021 @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
nen Posté(e) le 24 novembre 2021 Auteur Posté(e) le 24 novembre 2021 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
nen Posté(e) le 27 novembre 2021 Auteur Posté(e) le 27 novembre 2021 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
(gile) Posté(e) le 27 novembre 2021 Posté(e) le 27 novembre 2021 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
nen Posté(e) le 9 décembre 2021 Auteur Posté(e) le 9 décembre 2021 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
didier Posté(e) le 9 décembre 2021 Posté(e) le 9 décembre 2021 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 9 décembre 2021 Posté(e) le 9 décembre 2021 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) où 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))) où # 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
nen Posté(e) le 17 décembre 2021 Auteur Posté(e) le 17 décembre 2021 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
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