Aller au contenu

Messages recommandés

Posté(e)

bonjour

Je voudrais retrouver les commandes lisp qui permettent de tronquer une chaine

de carateres a partir d'un caractere donne ex "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. texte}"

et obtenir "texte"

Je sais qu'on peu calculer la longueur du texte et qu'on peut calculer la position de ";" mais j'ai oublie

merci

ps je cherche un bon bouquin sur autolisp ou vba le mien date de matusalem

 

Posté(e)

Salut,

une possibilité :

 (vl-string-subst "" "}" (vl-string-subst "" "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. " "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. texte}"))

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

(setq str "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. texte}")
(substr str(1+(1+(vl-string-search ";" str))))

 

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Identique à Tramber, c'est une routine que j'ai proposée récemment, qui permet de lancer la commande MTEXT en reprenant le 1er style forcé (si celui-ci en contient) d'un MTEXT sélectionné.

 

(defun c:match_mtext ( / e_text ins_pt v_text)
(while (not (setq e_text (nentsel "\nSélectionner un Texte-Multiligne: "))))
(setq e_text (entget (car e_text)))
(cond
	((eq (cdr (assoc 0 e_text)) "MTEXT")
		(initget 9)
		(setq ins_pt (getpoint "\nPoint d'insertion du Texte-Multiligne?: "))
		(setq
			e_text (subst (cons 10 ins_pt) (assoc 10 e_text) e_text)
			v_text (cdr (assoc 1 e_text))
		)
		(if (setq pos (vl-string-search ";" v_text))
			(setq v_text (strcat (substr v_text 1 pos) "; }"))
			(setq v_text "")
		)
		(setq e_text (subst (cons 1 v_text) (assoc 1 e_text) e_text))
		(foreach n e_text
			(if (eq (car n) 3)
				(setq e_text (vl-remove n e_text))
			)
		)
		(entmake e_text)
		(command "_.mtedit" (entlast))
	)
	(T
		(princ "\nCe n'est pas un Texte-Multiligne!")
	)
)
(prin1)
)

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

Posté(e)
(entmakex
'((0 . "MTEXT")
  (100 . "AcDbEntity")
  (67 . 0)
  (410 . "Model")
  (8 . "Kb_")
  (100 . "AcDbMText")
  (10 0. 0. 0.0)
  (40 . 0.2)
  (41 . 24.4136)
  (46 . 0.0)
  (71 . 1)
  (72 . 5)
  (1
   .
   "\\pt5;{\\H15x;\\C1;E\\C3;l\\fArial Black|b0|i0|c0|p34;\\C256;p\\fArial Narrow|b0|i0|c0|p34;a\\fArial|b0|i0|c204|p34;\\C5;n\\H1.167x;ov\\fTimes New Roman|b0|i0|c204|p18;\\H0.8571x;\\C256;Evgeni\\H1.167x;y}"
  )
  (7 . "Standard")
  (210 0.0 0.0 1.0)
  (11 1.0 0.0 0.0)
  (42 . 30.7032)
  (43 . 4.61776)
  (50 . 0.0)
  (73 . 1)
  (44 . 1.0)
 )
) 

Evgeniy

Posté(e)

Il me semble que l'on ne comprend pas tous la même chose quant à la demande de Tiboulen.

 

S'il s'agit bien de supprimer tous les formatages de Mtextes le LISP C_TXT semble fonctionner.

 

Exemple avec le texte créé par la routine de Evgeniy :

 

http://xs511.xs.to/xs511/07045/texte1.1.png.xs.jpg

 

après C_txt :

 

http://xs511.xs.to/xs511/07045/texte2.1.png.xs.jpg

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

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é