CADxp: dxf/lisp - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

dxf/lisp

#1 L'utilisateur est hors-ligne   Thelduin 

  • ceinture orange
  • Groupe : Membres
  • Messages : 29
  • Inscrit(e) : 22-février 18

Posté 24 février 2018 - 16:52

Bonjour !

Je reviens vers vous (encore :D) car j'aimerais changer l'echelle du type de ligne d'une ligne ou polyligne. Je sais que le code dxf 48 correspond à l'echelle du type de ligne, seulement, il apparaît uniquement si l'echelle est différente de 1.

J'ai donc voulu ajouter à la liste dxf, la clé 48 avec une valeur quelconque pour pouvoir la changer par la suite avec subst. Le couple (48 . x) s'ajoute bien à la liste dxf, j'arrive à changer le x avec subst, mais quand je lance entmod, ça ne change rien, comme si ça ne prenait pas en compte l'echelle.

(setq dxlist(entget(entlast)))
(setq dxlist(cons 48 1.0)(cons dxlist))
(subst (cons 48 3) (assoc 48 dxlist) dxlist))
(entmod dxlist)


J'arrive à changer d'autres paramètres avec subst puis entmod, je vois le changement se faire, mais là vraiment, pour l'echelle du type de ligne, je sèche complètement ...

Merci d'avance,

Guillaume
0

#2 L'utilisateur est hors-ligne   didier 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 7861
  • Inscrit(e) : 18-décembre 02
  • LocationPlanète : Terre

Posté 24 février 2018 - 17:21

Coucou

Pas besoin de mettre une valeur bidon dans l'échelle de ligne
Il suffit de faire un test de présence, s'il y en a on la change et on la met s'il n'y en a pas
Par exemple :

(setq ent (entlast))
(setq ent-liste (entget ent))
(if (assoc 48 ent)
  (entmod (subst (cons 48 5) (assoc 48 ent) ent-liste)))
  (entmod (append ent-liste (list (cons 48 5))))  
)
(entupd ent)


Amicalement
Éternel débutant ...
Les bases AutoLisp
0

#3 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8029
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 24 février 2018 - 17:34

Hello

Un truc SEMBLABLE provenant de Gilles (gile) ou on voit bien qu'il teste la presence du code DXF 48 :
- Si present alors ENTMOD ...
- Si absent alors ENTMOD (append ...

MERCI Gilles, Bye, lecrabe

    (if    (setq lts (assoc 48 dxf))
      (entmod (subst (cons 48 (* scl (cdr lts))) lts dxf))
      (entmod (append dxf (list (cons 48 scl))))
    )

Autodesk Expert Elite Team
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)