CADxp: Activé ou inactivé un calque par une touche - CADxp

Aller au contenu

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

Activé ou inactivé un calque par une touche

#1 L'utilisateur est hors-ligne   willy95 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 141
  • Inscrit(e) : 24-septembre 08

Posté 17 août 2017 - 08:56

Bonjour,

Pour me simplifier la vie j'aimerai pouvoir activer ou inactiver un calque avec un nom bien précis avec une simple lettre (un peu comme un raccourci clavier), j'ai écris ces quelques lignes pour me dépanner mais j'aimerai avoir juste à taper "K" pour activer et "K" pour désactivé.

Quelqu'un peut-il m'aider sur ce sujet ?

(Defun C:KK (/)
(Command "_-Layer" "IN" "moncalque" ""))

(Defun C:K (/)
(Command "_-Layer" "AC" "moncalque" ""))


Merci par avance
0

#2 L'utilisateur est hors-ligne   VDH-Bruno 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 899
  • Inscrit(e) : 29-avril 10

Posté 17 août 2017 - 09:41

Voir le messagewilly95, le 17 août 2017 - 08:56 , dit :

Bonjour,

Pour me simplifier la vie j'aimerai pouvoir activer ou inactiver un calque avec un nom bien précis avec une simple lettre (un peu comme un raccourci clavier), j'ai écris ces quelques lignes pour me dépanner mais j'aimerai avoir juste à taper "K" pour activer et "K" pour désactivé.


Bonjour,

Une solution parmi d'autres est de jouer avec le code de groupe dxf 62, définie dans la table des calques, si le code 62 (Numéro de couleur du calque) est positif, le calque est actif sinon il est désactivé.

Pour l'exemple:

(defun C:K (/ e dxf)
  (and (setq e (tblobjname "LAYER" "moncalque"))
       (setq dxf (entget e))
       (entmod
	 (append dxf (list (cons 62 (- (cdr (assoc 62 dxf))))))
       )
  )
  (princ)
)


A+
Apprendre => Prendre => Rendre
0

#3 L'utilisateur est hors-ligne   willy95 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 141
  • Inscrit(e) : 24-septembre 08

Posté 17 août 2017 - 11:24

C'est génial, ce code réponds exactement à mon souhait et fonctionne parfaitement.

Un GRAND MERCI à toi "VDH-Bruno" pour cette réponse parfaite et super rapide.


PS : Je comprends l'idée mais l'écriture et la recherche dans la liste est encore trop complexe pour moi :)
0

#4 L'utilisateur est hors-ligne   willy95 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 141
  • Inscrit(e) : 24-septembre 08

Posté 22 novembre 2017 - 09:35

Bonjour à tous,

Comment puis-je rajouter le Verrouillage du calque quand il est actif seulement ?

Merci pour vos réponse
0

#5 L'utilisateur est hors-ligne   willy95 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 141
  • Inscrit(e) : 24-septembre 08

Posté 22 novembre 2017 - 18:01

Le Code de "Gile" ci-dessous correspond presque, mais je souhaite verrouiller dès que le calque est actif.

(defun exclusive (l1 l2)

  (if l1

    (if (member (car l1) l2)

      (exclusive (cdr l1) l2)

      (cons (car l1) (exclusive (cdr l1) l2))

    )

  )

)


(setq lst1 (entget (tblobjname "LAYER" "Calque")))

(entmod (subst (cons 70 (Boole 6 4 (cdr (assoc 70 lst1))))

               (assoc 70 lst1)

               lst1

        )

)

(setq lst2 (entget (tblobjname "LAYER" "Calque")))

(exclusive lst1 lst2) 


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)