Aller au contenu

Changement de langage


zara

Messages recommandés

Bonjour,

 

Je travail sur ZwCAD.

J'ai trouvé un lisp sur cadxp (bryce) qui fonctionne très bien pour le changement de style de texte.

Il me passe tout en ARIAL.

Police

Nom: ARIAL -->ok

Style: Normal -->ok

Langage: 1(introuvable) -->pas ok :angry:

 

Du coup autocad ne me reconnais pas la police.

 

Il y a t-il un moyen de forcer le langage en Occidental?

 

Merci par avance.

Zara

 

(defun c:font ( / st acdoc)
 (vl-load-com)
 (setq acdoc (vla-get-activedocument (vlax-get-acad-object))
       st (vla-get-TextStyles acdoc)
 )
 (vlax-for s st
   (vla-put-FontFile s "Arial")
   (vla-put-Height s 0.0)
   (vla-put-Width s 1)
 )
 (vla-regen acdoc 0)
)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

De mon coté après ouverture dans AutoCAD, ça s'affiche quand même, malgré le '1(introuvable)'

 

Après une rapide recherche sur GG, il y avait eu un post à ce sujet voici un bail : voir ici

Cette commande provoque un problème sur la reconnaissance de la police TTF ou SHX

 

Idem sur l'adresse où il cherche la police : https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/adding-truetype-font-with-lisp/td-p/2430883

 

et un code de Gile qui y fait allusion : http://cadxp.com/topic/26386-tblsearch-dans-les-style/

 

Du coup, il semble que si on remplace arial par arial.ttf, il n'y a plus de message.

 

Je pose quand même la question au support de ZWSOFT s'ils ont une solution plus élégante...

 

Cordialement

ZW France est le distributeur de ZWCAD, ZW3D et ARCHLine en France, Belgique francophone, Suisse francophone, et Afrique francophone.

www.zwfrance.fr

Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos réponses. ;)

 

Quand je laisse ARIAL dans le lisp.

 

ZWCAD

 

http://nsa38.casimages.com/img/2017/07/18/17071804461075120.png

 

AUTOCAD

 

http://nsa38.casimages.com/img/2017/07/18/170718044610482331.png

 

En remplacant par ARIAL.TTF ou (C:/windows/fonts/arial.ttf)

 

http://nsa38.casimages.com/img/2017/07/18/170718044610167193.png

 

Autocad ne reconnait pas le arial normal...

 

Merci pour la demande à zwsoft.

 

Cordialement

 

Zara

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

AutoCAD a bien repéré qu'il s'agit d'une police TTF, puisqu'il a gelé l'effet "Vertical"...

 

Curieux comportement...

 

Et si tu clique sur Arial.TTF dans la liste déroulante ? Il te propose un autre Arial ?

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

voici un bout de code de la part de ZWSOFT :

(defun c:font ( / st acdoc tf bold italic cs paf)
 (vl-load-com)
 (setq acdoc (vla-get-activedocument (vlax-get-acad-object))
       st (vla-get-TextStyles acdoc)
 )
 (vlax-for s st
   (vla-getfont s 'tf 'bold 'italic 'cs 'paf)
   (vla-setfont s "Arial" bold italic cs paf)
   (vla-put-Height s 0.0)
   (vla-put-Width s 1)
 )
 (vla-regen acdoc 0)
)

 

Il fonctionne bien et ne crée par d'effet secondaire.

 

Par contre, un petit bémol sans gravité : Si on le teste une première fois, pas de soucis, on voit tout de suite le résultat. Par contre, si on le refait une seconde fois, on ne voit pas le changement à l'écran, même après un Regen. Si qqun a une idée pour améliorer le code ...

 

Cela étant, ce n'est pas grave, car les changements sont bien effectif, et si on sauve pour rouvrir le fichier, il est nickel ...

 

A+

ZW France est le distributeur de ZWCAD, ZW3D et ARCHLine en France, Belgique francophone, Suisse francophone, et Afrique francophone.

www.zwfrance.fr

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Oui fonctionne très bien

 

... Par contre, si on le refait une seconde fois, on ne voit pas le changement à l'écran, même après un Regen. Si qqun a une idée pour améliorer le code ...

 

Pour le retour je n'ai pas réussi à reproduire ce que vous décrivez, première fois comme seconde fois ect.. Ca semble fonctionner pour moi, (testé sous ZWCAD+ 2015Pro)

 

Cdt

VDH-Bruno

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Merci beaucoup ca fonctionne trés bien.

En effet quand je rechange la police en appliquant un nouveau style et relance le lisp visuellement pas de changement mais en fermant et réouvrant le fichier c'est ok.

 

Je souhaité le combiner à ce lisp venant de CADXP (Gile) pour formater la police pour quelle prenne le style du texte sans passer par l'éditeur.

Mais je souhaiterai que ça n'affecte que la police et pas la justification.

Pensez vous cela possible?

 

(defun c:c_txt (/ ss n txt e_lst str start end lst)
 (while (not (setq ss (ssget '((0 . "MTEXT"))))))
 (repeat (setq n (sslength ss))
   (setq txt	(ssname ss (setq n (1- n)))
  e_lst	(entget txt)
  str	(apply
	  'strcat
	  (mapcar
	    'cdr
	    (append
	      (vl-remove-if-not '(lambda (x) (= (car x) 3)) e_lst)
	      (list (assoc 1 e_lst))
	    )
	  )
	)
   )
   (while (setq start (vl-string-search "{\\" str))
     (setq
str (vl-string-subst
      ""
      "{"
      (vl-string-subst "" "}" str start)
      start
    )
     )
   )
   (setq start 0)
   (while (setq start (vl-string-search "\\" str start))
     (cond
((= "\\P" (substr str (1+ start) 2))
 (setq start (1+ start)
       end   (1+ start)
 )
)
((= "\\L" (substr str (1+ start) 2))
 (setq end (+ (vl-string-search "L" str start) 2))
)
((= "\\l" (substr str (1+ start) 2))
 (setq end (+ (vl-string-search "l" str start) 2))
)
(T (setq end (+ (vl-string-search ";" str start) 2)))
     )
     (setq str	(vl-string-subst
	  ""
	  (substr str (1+ start) (- end start 1))
	  str
	)
     )
   )
   (setq lst nil)
   (if	(< 250 (strlen str))
     (progn
(while (< 249 (strlen str))
  (setq	lst (cons (cons 3 (substr str 1 250)) lst)
	str (substr str 251)
  )
)
(setq lst (reverse (cons (cons 1 str) lst)))
     )
     (setq lst (cons (cons 1 str) lst))
   )
   (setq
     e_lst (append (vl-remove-if
	      '(lambda (x) (or (= (car x) 3) (= (car x) 1)))
	      e_lst
	    )
	    lst
    )
   )
   (entmod e_lst)
 )
 (princ)
)

 

Merci encore

 

Cordialement

Zara

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é