Aller au contenu

[Résolu] Justifier un texte par la droite


Messages recommandés

Posté(e)

Bonjour,

 

j'ai des hauteurs qui s'affichent sur un pylône.

Ces hauteurs s'écrivent des fois à droite, et des fois à gauche.

 

Je voudrais justifier le texte de la hauteur par la droite, mais je suis complètement bloqué.

 

J'ai essayé plusieurs possibilités à base de modifications d'attribut. Mais je ne dois pas utiliser la bonne manière, car le résultat s'écrit très loin de mon point de base.

 

L'insertion du texte seul fonctionne, mais pas avec la modif de l'attribut

 

Avez-vous une idée ?

 

Merci par avance !

 

------------------------------------------

 

voila l'extrait du code en question :

(setq noutext (vla-addText
	    	*ModelSpace*; Global Definition for Model Space
	    	"test"
	    	vinstexta 'un point variant composé des coordonnées du texte
	    	3.75
	  	) ;_ end of vla-addtedxt
   	)
   	(vlax-put-property
     	noutext
     	'Layer
     	calqtexttet
   	)				;changement de calque

[color="#FF0000"]        	(vlax-put-property
     	noutext
     	'Alignment
     	"2" 
   	) ; changement qui ne fonctionne pas.[/color]

Posté(e)

Hello

 

En passant vitesse Grand V, SVP as tu essaye la routine JU de notre indispensable Gilles !

 

Elle justifie a peu pres tout : Texte, MTexte, Attribut, etc ...

avec une selection AutoCAD classique !

 

MERCI Gilles, Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

Merci pour vos retours !

 

Je cherche depuis tout à l'heure, mais sans succès...

 

J'ai cherché dans la liste des lisp de (gile), et dans celles d'autres lispeurs connus, en recherche globale sur le forum avec divers mots-clés, sur les pages persos (celles que je connaissais)... mais rien :o(

 

Je ne cherches pas au bon endroit, ou alors je dois changer mes yeux...

 

Si vous avez un lien en réserve..., je suis preneur ;o)

 

@lili: Synchronisation des attributs, que veux-tu dire par là ?

 

Merci pour tout info.

 

Si vous avez un moyen d'enregistrer ses action dans une macro... pour faire des tests... je suis preneur aussi..

Dans Autocad, je sais où c'est (Texte sélectionné, propriété de la zone texte, justifier...) mais pas moyen de le retrouver par code...

Posté(e)

Merci beaucoup !!!

Je regarde ça...

 

En fait, ma fonction est presque correcte, j'arrive bien à faire la justification par la droite...

 

Ce qui cloche, c'est que ça positionne le texte au point 0,0,0... c'est à dire à 6653789.88 de son point prévu... un peu loin pour le lire ;o)

 

J'ai peut-être un point à lui préciser en plus... j'ai essayé, mais il n'a pas aimé mes essais.. je vais creuser ça aussi...

 

Merci encore !

 

Je reviendrai pour la solution...

Posté(e)

Salut

 

Fonctionne pour un Texte (et non mtext ni attribut)

(vlax-put noutext 'alignment 2)

 

Fonctionne pour un attribut

(setq position (vlax-get noutext 'insertionpoint))
(vlax-put noutext 'alignment 2)
(vlax-put noutext 'textalignmentpoint position)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Merci Patrick !

 

je revenais pour donner la solution que j'avais trouvé... pas forcément la meilleure, mais ça fonctionne, et c'est le principal... ;o)

 

effectivement, en épluchant le reste du code (c'est une mise à jour d'un gros projet existant) pour une autre modif, j'ai percuté sur un code de repositionnement :

 (vlax-put-property
      noutext
      'TextAlignmentPoint
      thepoint
    ) 

 

 

Dans mon cas, c'est bien un texte seul (enfin je crois hihihi), L'alignement fonctionnait, mais la fonction d'alignement le positionnait en 0,0,0. Il me suffisait donc de repositionner dans ma position voulu APRES l'avoir aligné !!! CQFD

 

Si je n'avais pas trouvé juste avant comment me sortir d’embarras, ta réponse m'aurais bien aidé !!! Merci beaucoup !!!

 

Ca faisait 2 jours que je bloquais dessus, je comprenait pas pourquoi mon texte disparaissait. En fait il sortait bien loin de ma fenêtre visible... c'est un zoom étendu qui me l'a révélé. Je ne sais pas pourquoi cela arrive, mais je sais maintenant comment le remettre en ordre...

 

Merci encore à tous !

 

Je passe en résolu. Si vous avez des précisions sur le pourquoi du déplacement, je veux bien comprendre...

 

En attendant de comprendre le pourquoi, voila donc le code fonctionnel pour moi ;o) :

 

(setq noutext (vla-addText
*ModelSpace*; Global Definition for Model Space
"test"
vinstexta 'un point variant composé des coordonnées du texte
3.75
) ;_ end of vla-addtedxt
)
(vlax-put-property
noutext
'Layer
calqtexttet
)	;changement de calque

(vlax-put-property
noutext
'Alignment
"2" 
)	;changement d'alignement. Attention, seule, cette fonction déplace le texte en 0,0,0.

(vlax-put-property
     noutext
     'TextAlignmentPoint
     vinstexta
) 			;Repositionnement suite alignement au même point que précédent.

Posté(e)

Si tu as trouvé tout seul, bravo, c'est comme cela qu'on progresse vite.

 

Je remarque que tu fais la création d'un texte et qu'ensuite tu changes plusieurs choses.

Tu as déjà regardé la fonction lisp entmake ?

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

@Patrick : Quand vous parlez d'attribut Lili et toi, ce sont les attributs d'un bloc ? ou ça peut être autre chose ?

 

Vu que je fais un Addtext, je pensais peut-être bêtement que c’était un texte, non ?

 

 

Je débute dans la manipulation des objets Autocad, je ne demande qu'à apprendre :ange:

Posté(e)

@Patrick : Quand vous parlez d'attribut Lili et toi, ce sont les attributs d'un bloc ? ou ça peut être autre chose ?

 

Vu que je fais un Addtext, je pensais peut-être bêtement que c’était un texte, non ?

 

 

Je débute dans la manipulation des objets Autocad, je ne demande qu'à apprendre :ange:

C'est bien cela, mais on se méfie des abus de langage. (AddAttribute pour des attributs)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

désolé pour le délai de réponse..., beaucoup de boulot, maintenant que j'étais débloqué, j'ai bien avancé.

 

pour revenir sur ta réponse, tu as bien raison de te méfier des abus de langage, en programmation, cela peut apporter beaucoup de confusion...

 

Merci pour le entmake, si j'ai bien compris, c'est une fonction qui va me créer l'objet et les paramètres associés, en une fois... et rien du tout s'il y a une erreur en route... Ca peut être très pratique !

 

Là, je dois faire évoluer un programme existant, donc je repars... de l'existant ;o)

Mais dès qu'il y a de gros morceaux à modifier, je m'en servirai certainement !

 

A pluche !

Ahimsa

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é