Aller au contenu

Variable hauteur de texte par défault


Curlygoth

Messages recommandés

Bonjour,

Quelle est la variable permettant de changer la taille de la police par défault ?

mais si vous savez bien :

image.png.76f38d596ead16078fff880d6ca8760f.png


La hauteur du style de texte !
c'est bien ça ? :
(vla-SetTextHeight 0.4)

pour une hauteur par défault à 0.4 ? par exemple ?

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

En passant la souris au dessus de cette case j’obtiens :

Quote

Définit la taille du texte en fonction de la valeur entrée. Si vous entrez une valeur supérieure 0.0, elle est appliquée à ce style automatiquement. Si vous entrez 0.0, la valeur utilisée par défaut est la dernière valeur de hauteur de texte ou la valeur stockée dans le fichier gabarit de dessin.

Et dans l'aide d'AutoCAD concernant la fonction (vla-put-textheight) :

Quote

TextHeight Property (ActiveX)

Specifies the height for the dimension or tolerance text.

Supported platforms: Windows only

Signature

VBA:


object.TextHeight
object

Type: Dim3PointAngular, DimAligned, DimAngular, DimArcLength, DimDiametric, Dimension, DimOrdinate, DimRadial, DimRadialLarge,DimRotated, MLeader, MLeaderStyle, Tolerance

The objects this property applies to.

Property Value

Read-only: No

Type: Double

The height for the dimension text.

Remarks

The initial value for this property is 0.1800.

If the current text style has a fixed text height, this property is ignored.

Note: This property overrides the value of the DIMTXT system variable for the given dimension.

Je suppose donc que cette fonction ne puisse pas redéfinir cette valeur directement mais uniquement modifier la hauteur d'un objet texte (dimensions, mtext, text) uniquement si cette fameuse variable est nulle...

Peut-être que la variable TEXTSIZE y correspond ?

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

c'est qu'une illusion 😉

j'arrive à lire le lisp maintennant !

donc la seule chose que j'ai à faire c'est de traduire mais chut....

Mais tu sais je refais pas des choses qui existe ! si je trouve ce que je veux en lisp je prends !

mais c'est trop rare... donc je suis obliger de faire de ce language "Dont-on-ne-prononce-pas-le-nom"

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

@Fraid

Oui merci mais j'étais pas sur de la variable à utiliser ! et j'ai bien fait de poster ! merci @Lunamerci @La Lozère

@didier

Quote

c'est du vba pour lisp je dirais simplement.

non ??!? alors je comprends plus le débat de "la fin du VBA est proche"...

ben du coup si vous savez faire du lisp vous savez faire du VBA XD

Lien vers le commentaire
Partager sur d’autres sites

C'est des propriétés et méthodes utilisées en VBA, mais qui utilise la structure de langage de l'AutoLISP, donc (function_name arg1 arg2 ... argn). Donc cela permet d'accéder "autrement" à certaines propriétés accessibles en DXF et à d'autres propriétés donc cela permet "d'apprendre" le vocabulaire du VBA, sans pour autant nous apprendre la conjugaison et la grammaire du VBA ^^"

Pour la comparaison, c'est comme si tu essayais d'apprendre le dictionnaire comme premier langage, tu connais peut-être plein de mots, mais tu n'as aucune idée de comment les utiliser et construire des phrases avec, du coup tu ne sais pas parler :3

Un peu comme "Je s'appelle Groot" mais en VBA xD

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Si je peux me permettre un peu de théorie, l'API* COM** d'AutoCAD est l'API AutoCAD utilisé par le VBA AutoCAD (qui n'accède qu'a celle-ci). Cette API est aussi accessible  en LISP (via les fonctions vla- pour Visual LISP Automation), en NET ou en ObjectARX. S'il s'agit vraiment d'une extension qui apporte un plus en LISP, ce n'est pas vraiment le cas en .NET ou ObjectARX mais certaines fonctionnalités comme les "préférences" (ce qu'on paramètre depuis la commande Options) ne sont accessible que via COM.

* Interface de Programmation pour Application

** parfois appelée Automation ou ActiveX qui est en fait la couche qui permet d'accéder à cette interface. Il s'agit d'une technologie Windows.

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Je savais que (gile) serait plus explicatif que mon raccourci pourri (vba pour lisp), merci beaucoup.

@Curlygoth

1 - Rien à voir avec le VBA (dont l'avenir n'est pas du tout assuré)
2 - ton raccourci est encore plus pourri et encore plus faux que le mien (hihi) (si vous savez faire du lisp vous savez faire du VBA)

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Pour revenir au sujet de départ, la valeur dans la boite de dialogue est la hauteur par défaut du style de texte.
En VBA, ça devrait être un truc du genre :

ThisDrawing.TextStyles.Item("ARIAL").Height = 0.4

La variable système TEXTSIZE stocke la valeur par défaut pour les styles de texte dont la hauteur est 0.0.
En VBA, ça devrait être un truc du genre :

ThisDrawing.SetVariable("TEXTSIZE", 0.4)


 

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

Lien vers le commentaire
Partager sur d’autres sites

Pas tout-à-fait ^^"

La variable TEXTSIZE correspond bel et bien à ce que tu recherches je suppose (un texte nouvellement créé aura une hauteur par défaut correpondant à TEXTSIZE).
Ce que je disais c'est que la propriété TextHeight n'est applicable que pour un objet précis, sans impacter les nouveaux par exemple. En revanche (gile) parle de la propriété "fixe" de chaque style de texte. L'aide AutoCAD défini que cette propriété, si elle vaut 0.0, est égale à la variable TEXTSIZE, mais si cette valeur est non nulle, alors chaque texte créé à partir de ce style de texte précis (Arial, Verdana, etc...) aura la hauteur fixe définie. Auquel cas, la valeur de TEXTSIZE est ignorée.

J'avais oublié que les styles sont défini dans la Symbol Table "STYLE", donc chaque style est défini par une liste DXF (ci-dessous l'aide d'AutoCAD) :

Quote

STYLE (DXF)

The following group codes apply to STYLE symbol table entries.

STYLE group codes

Group code

Description

100

Subclass marker (AcDbTextStyleTableRecord)

2

Style name

70

Standard flag values (bit-coded values):

1 = If set, this entry describes a shape

4 = Vertical text

16 = If set, table entry is externally dependent on an xref

32 = If both this bit and bit 16 are set, the externally dependent xref has been successfully resolved

64 = If set, the table entry was referenced by at least one entity in the drawing the last time the drawing was edited. (This flag is for the benefit of AutoCAD commands. It can be ignored by most programs that read DXF files and need not be set by programs that write DXF files)

40

Fixed text height; 0 if not fixed

41

Width factor

50

Oblique angle

71

Text generation flags:

2 = Text is backward (mirrored in X)

4 = Text is upside down (mirrored in Y)

42

Last height used

3

Primary font file name

4

Bigfont file name; blank if none

1071

A long value which contains a truetype font’s pitch and family, character set, and italic and bold flags

A STYLE table item is also used to record shape file LOAD command requests. In this case the first bit (1) is set in the 70 group flags and only the 3 group (shape file name) is meaningful (all the other groups are output, however).

Donc (gile) t'a donné l'accès à cette propriété en VBA, et si on regarde le tableau ci-dessus, on peut également dire que cette propriété est accessible au code 40 concernant le Style souhaité.
L'exemple ci-dessous correspond à la version LISP concernant la propriété de hauteur fixe :

Commande: (setq arial (tblsearch "STYLE" "Arial"))
((0 . "STYLE") (2 . "arial") (70 . 0) (40 . 0.0) (41 . 0.99) (50 . 0.0) (71 . 0) (42 . 1.0) (3 . "arial.ttf") (4 . ""))
Commande: (setq arial (subst (cons 40 0.4) (assoc 40 arial) arial))
((0 . "STYLE") (2 . "arial") (70 . 0) (40 . 0.4) (41 . 0.99) (50 . 0.0) (71 . 0) (42 . 1.0) (3 . "arial.ttf") (4 . ""))
Commande: (entmod arial)
((0 . "STYLE") (2 . "arial") (70 . 0) (40 . 0.4) (41 . 0.99) (50 . 0.0) (71 . 0) (42 . 1.0) (3 . "arial.ttf") (4 . ""))

Bref, (gile) t'as donné les 2 solutions VBA, à voir laquelle correspond le mieux à ta demande :3

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Quelle modestie @Luna !!!

Alors, en effet @(gile) à mieux répondu pour modifier la variable demander lors de mon poste ! et je le remercie pour ça !

Néanmoins ! vu que mes styles de texte (générer ou non) ont une propriété hauteur toujours a 0#

Modifier une variable système ça m’évite de vérifier si le style existe ! (Je fais en sortes qu'on est pas besoin de changer de style durant le dessin)

En conclusion :

C'est tellement plus facile de faire "getvar" pour avoir la valeur d'origine pour la re "setvar" (donner) à la fin de ma(mes) procédure(s)...

Que je vais rester sur l'idée que tu m'as donnée !

 

Fin : pour les curieux voici l'histoire complète (contexte) :

tu dis :

Quote

TextHeight n'est applicable que pour un objet précis

Oui je sais.. dit toi qu'avant de poster ce post j'ai mon programme qui fait :

L'utilisateur implante le point d'insertion d'un texte issu d'une base de données suivant l'objet sélectionné (donc avec plus ou moins de ligne et plus ou moins de longueur de caractere).

le texte est implanter en H=2.5 (forcément quand on connait pas la variable miracle...)

donc je modifiais sa taille pour le mettre a une valeur suivant son échelle de dessin presentation (mettons 0.4 pour rester dans l'exemple)

mais il restait a gérer la différence d’échelle (et donc la différence entre le point du millieu du texte a 2.5 et le milieu du texte à 0.4 !!!)

(ben faut bien que le texte soit la ou l'utilisateur veut le mettre non ?)

en fonction du nombre de ligne etc...et avec plus ou mois la rotation du SCU ou du folio contenant le texte !

mais bon j'en avais besoin donc je l'ai fait à la mode : " je m'en fous, j'aime les maths ! Vive la trigo !"

et donc aujourd'hui... vu que je pars de ma boite dans 7 semaines et que je suis à jour de mon taf (vive mes outils automatisés) : je me dit que je devrais peut-être améliorer et revoir certains codes notamment les premiers XD
 

 

 

 

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é