Aller au contenu

Style de texte -> ( Vertical? <N> )


l56

Messages recommandés

Bonjour,

 

Command savoir par avance qu'une police va générer dans la

commande "style" la question : ( Vertical? )

 

Cette dernière question est posé en fonction de la police.

 

En générale une police SHX la pose mais pas une TTF.

 

Mais il arrive qu'une SHX ne la pose pas (ex: ISOCP.SHX).

 

Que faire pour le savoir ?

Existe-t-il une autre methode de création de style permettant d'éviter ce probleme.

 

Par avance merci.

laurent

Lien vers le commentaire
Partager sur d’autres sites

En effet, j'ai vu que la propriété s'applique arbitrairement à certaines polices.

 

Ici, c'est visual Lisp qui est une technique différente.

Mais parlons Autolisp !

 

Je vois dans le code DXF 70, le bit 4.

Il te faut ce code.

 

 

Chez moi :

 

 

(member 4(bits_lst(cdr(assoc 70(TBLSEARCH "STYLE" "STANDARD"))))); renvoie nil

(member 4(bits_lst(cdr(assoc 70(TBLSEARCH "STYLE" "ASHADE"))))); renvoie une liste donc T (il y a une propriété de verticalité)

 

Tu peux donc appeler ton COMMAND de 2 manières avec un IF en toute tranquilité je pense.

 

 

 

[Edité le 13/12/2006 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Dans un fichier de police SHP (avant compilation) voici comment est définie une police:

Extrait de l'aide AutoCAD

*0,4,nom-police

au-dessus,au-dessous,modes,0

La valeur au-dessus précise le nombre de longueurs de vecteur dont les lettres majuscules dépassent la ligne de base, et au-dessous indique jusqu'à quel niveau les lettres minuscules descendent sous la ligne de base. Le concept de la ligne de base est similaire à celui des lignes d'un papier à lettres. Ces valeurs définissent la taille des caractères de base et sont utilisées comme facteurs d'échelle pour la hauteur spécifiée par la commande TEXTE.

 

L'octet modes doit être 0 pour une police orientée horizontalement et 2 pour une police à double orientation (horizontale ou verticale).

 

Il doit être possible d'identifier également ceci dans un SHX, mais je n'ai pas la solution (l'info doit être au début du fichier). Si j'ai le temps, j'essayerais de regarder comment l'identifier.

 

Cela éviterais de créer un style avec une police pour savoir si celle ci peut être orientée dans les 2 sens.

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Merci,

 

Bonuscad, je ne sais pas ou trouver les polices non compilés.

 

Tramber, le code 70 peut être identique quelquesoit la police.

 

((0 . "STYLE") (2 . "ARIAL") (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0)

(42 . 2.5) (3 . "ARIAL.TTF") (4 . ""))

 

((0 . "STYLE") (2 . "ROMANS") (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0)

(42 . 2.5) (3 . "romans.shx") (4 . ""))

 

J'ai sauver dans un fichier texte ces deux listes pour pouvoir re-créer plus tard dans un autre fichier dwg les styles concernés.

 

Mais quand j'utilise la command style, dans le 1er cas elle ne me pose pas la quetion de verticalité:

 

_-style

Entrez le nom du style de texte ou [?] : arial

Spécifiez le nom de police complet ou le nom de fichier de polices (TTF ou SHX) :

Spécifiez la hauteur de texte <0.0000>:

Spécifiez le facteur d'extension <1.0000>:

Spécifiez l'angle d'inclinaison <0>:

Afficher le texte inversé ? [Oui/Non] :

Afficher le texte renversé ? [Oui/Non] :

"ARIAL" est maintenant le style de texte courant.

 

-STYLE

Entrez le nom du style de texte ou [?] : romand

Spécifiez le nom de police complet ou le nom de fichier de polices (TTF ou SHX) :

Spécifiez la hauteur de texte <0.0000>:

Spécifiez le facteur d'extension <1.0000>:

Spécifiez l'angle d'inclinaison <0>:

Afficher le texte inversé ? [Oui/Non] :

Afficher le texte renversé ? [Oui/Non] :

Vertical?

"ROMAND" est maintenant le style de texte courant.

 

Voila le probleme ! Il n'y a aucune differences dans les listes mais la command style réagit de 2 manieres differentes. :casstet:

Lien vers le commentaire
Partager sur d’autres sites

Voici ce que j'ai pu faire, cela me semble correct, mais sous réserve quand même.

 

((lambda ( / all_path end_pos id_path fonts_path all_path file_shx f caracter)
(setq all_path (getenv "ACAD"))
(while (setq end_pos (vl-string-position (ascii ";") all_path))
	(setq id_path (substr all_path 1 end_pos))
	(if (wcmatch (strcase id_path) "*FONTS*")
		(setq fonts_path (strcat id_path "\\"))
	)
	(setq all_path (substr all_path (+ 2 end_pos)))
)
(setq file_shx (getfiled "Selectionnez un fichier de police" fonts_path "shx" 8))
(cond
	(file_shx
		(setq f (open file_shx "r"))
		(while (setq caracter (read-char f)))
		(setq caracter (read-char f))
		(setq caracter (read-char f))
		(if (zerop caracter)
			(princ "\nPolice NE pouvant PAS être orienté verticalement")
			(princ "\nPolice pouvant être orienté verticalement")
		)
		(close f)
	)
)
(prin1)
))

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

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é