Aller au contenu

[Résolu] style de texte


speedy

Messages recommandés

Bonjour à toutes et à tous

Je reçois souvent les mêmes styles de documents que j'aimerais formater automatiquement.

1 - en premier j'utilise mes filtres et je converti, mais là je ne sais pas en lisp comment changer une selection de textes depuis un calque défini en Arial avec hauteur de 2.5 et forcer la couleur en 7.

 

2 - J'ai le même problème avec les hachures :

Comment ajouter l'echelle à 0.3 dans ce code (41 . 0.3)?

;Remplace toutes les hachures solide par une Ansi31
(defun c:all2ansi (/ ss n elst)
(setq ss (ssget "_X" '((0 . "HATCH") (2 . "SOLID"))))
 (repeat (setq n (sslength ss))
   (setq elst (entget (ssname ss (setq n (1- n)))))
   (entmod (subst '(2 . "ANSI31") '(2 . "SOLID") elst))
)
 (princ)
)

 

j'aimerai éviter de passer par les propriétés et qui m'engendre plusieurs manipulations.

 

Merci de votre aide

 

Michel a

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Passer du motif SOLID à un motif par trait n'est pas le plus aisé en DXF.

En effet le motif SOLID a une définition plus proche du motif "gradient" ou même des MPOLYGON de map.

Dans ce motif il n'y a pas de notion d'échelle ou d'orientation, par contre d'autre code sont utilisés.

 

Je pense pas que (entmod) soit le plus approprié pour faire ce que tu désire, car la structure des élément doit être rigoureuse pour que cela fonctionne.

 

Peut être comme ceci cela pourrait fonctionner; pas testé outre mesure.

(defun c:all2ansi (/ ss n elst lremov)
(setq ss (ssget "_X" '((0 . "HATCH") (2 . "SOLID"))))
 (repeat (setq n (sslength ss))
   (setq elst (entget (ssname ss (setq n (1- n)))))
   (setq elst (subst '(2 . "ANSI31") '(2 . "SOLID") elst))
   (setq elst (subst '(70 . 1) '(70 . 0) elst))
   (setq lremov nil)
   (foreach n elst (if (member (car n) '(450 451 460 461 452 462 453 463 63 421 463 63 421 470)) (setq lremov (cons (car n) lremov))))
   (foreach m lremov
     (setq elst (vl-remove (assoc m elst) elst))
   )
   (setq elst (append elst '((52 . 0) (41 . 1.0) (77 . 0) (78 . 1) (53 . 0.785398) (43 . 0.0) (44 . 0.0) (45 . -0.224506) (46 . 0.224506) (79 . 0))))
   (entmod elst)
 )
 (princ)
)

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

Bonjour à toutes et à tous

 

Pour ma question 1

J'ai essayé de cette manière et je n'arrive toujours pas....

(command "changer" (ssget "X" '((0 . "*TEXT") (8 . "moncalque") "P" "CO" "7" "")))

la commande me demande toujours de selectionner les objets ?

 

Cordialement

Michel

Lien vers le commentaire
Partager sur d’autres sites

C'est ta sélection d'objet qui n'est pas achevée et tes parenthèses mal appariées.

 

(command "_.change" (ssget "_X" '((0 . "*TEXT") (8 . "moncalque"))) "" "_properties" "_color" "7" "")

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é