Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 27 January 2015 14:01

ofabre81
Juste Inscrit !
Date d'inscription: 13 Jan 2015
Messages: 6

[ACAD] Modifier la taille de TEXT avec code LISP

Bonjour à tous,
Je suis en train d'essayer, pour pouvoir activer la recherche des textes en pdf, de modifier mes polices autocad en arial avec un facteur de largeur de 1.
J'ai déjà trouvé le code qui me permet de faire ça mais je voudrais l'adapter pour que lorsque je modifie le facteur de largeur je modifie également la hauteur du texte (en la multipliant par le facteur de largeur original avant de passer celui ci à 1).
le code que j'ai, et qui fonctionne, est le suivant :

Code:

:Première partie du code pour modifier les zone de texte
(setq blocks (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))))
(vlax-for item blocks
(if (/= "*" (substr (vla-get-Name item) 1 1))
(vlax-for item1 (vla-item blocks (vla-get-Name item))
(if (= "AcDbText" (vla-get-objectname item1)) 
(vla-put-ScaleFactor item1 1.0)
)
)
)
)
(mapcar '(lambda(x) (vla-put-ScaleFactor (vlax-ename->vla-object x) 1.0))
(vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_X" '((0 . "TEXT")))))))
(vl-cmdf "regen")

;Deuxième partie du code pour modifier les textes dans des blocs
(foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "X" '((0 . "INSERT")(66 . 1))))))
(while (and (setq ent (entnext ent))
(/= (cdr (assoc 0 (entget ent))) "SEQEND"))
(if (= "AcDbAttribute" (vla-get-objectname (setq obj (vlax-ename->vla-object ent))))
(vla-put-ScaleFactor obj 1.0)
)
)
)

J'ai tenté de récupérer la hauteur du texte avec le code suivant intégré mais je n'y arrive pas :

Code:

(setf hauteur (vla-get-TextHeight item1))
(setf factor (vla-get-ScaleFactor item1))
(setf NewHauteur hauteur)
(* NewHauteur factor)
(vla-put-Height item1 NewHauteur)

Merci d'avance pour votre aide.
Bonne journée.

Olivier

Hors ligne

 

#2 Tue 27 January 2015 15:43

Robin
GeoRezo forever
Lieu: France
Date d'inscription: 31 Aug 2005
Messages: 13614
Site web

Re: [ACAD] Modifier la taille de TEXT avec code LISP

Bonjour,

Vous aurez plus de succès sur CADXP par exemple.
Ce forum ci est dédié aux .. SIG !

Merci de votre compréhension,
robin, pour la modération.

PS : Suivi du sujet sur les forums Autodesk
http://forums.autodesk.com/t5/autocad-f … -p/5485490

Hors ligne

 

#3 Tue 27 January 2015 16:18

ofabre81
Juste Inscrit !
Date d'inscription: 13 Jan 2015
Messages: 6

Re: [ACAD] Modifier la taille de TEXT avec code LISP

Merci, je vais essayer.
Désolé.

Hors ligne

 

Pied de page des forums

Powered by FluxBB