Aller au contenu

Inactive dans un xref selon sélection


Messages recommandés

Posté(e)

Bonjour

 

La j'ai besoin de quelqu'un pour m'aider sur un lisp.

j'ai récupéré je ne sais plus sur quelle site un lisp me permettant lorsque je lancé la commande de :

 

Sélectionner un élément qui se trouve dans un XREF et de L'INACTIVER.

le lisp marché lorsque j'étais en autocad 2004 je crois, mais depuis la 2005 je crois qu'il ne marche plus, lorsque je lance le lisp il me sélectionne pas l'élément à l'intérieur du xref mais l'ensemble du XREF.

 

voila le lisp :

 

(defun c:inx (/ nb lisplan lis ent)

 

(setvar "CMDECHO" 0)

(setq nb 0

lisplan "")

(prompt "\nGInactiver les plans choisis")

(setq lis (ssget))

(repeat (sslength lis)

(setq ent (ssname lis nb))

(setq ent (entget ent))

(setq ent (cdr (assoc 8 ent)))

(if (= ent (getvar "clayer"))(setq gtcha t))

(setq lisplan (strcat lisplan (if (> nb 0) "," "") ent))

(setq nb (1+ nb))

) ; repeat

 

(if gtcha

(progn

(princ "\nImpossible d'inactiver le plan courant; 0 deviendra le plan courant")

(command "_layer" "_t" 0 "_on" 0 "_s" 0 "_f" lisplan "")

) ; progn

(command "-calque" "in" lisplan "")

) ; if

(setvar "CMDECHO" 1)

(prin1)

 

) ; inx

Posté(e)

RE

je reviens ici pour poser une autre question.

maintenant que j'ai LAYOFF ou plus courament CALQUEINAC

 

j'ai transformé cette commande grace à un LISP pour le renomer en IN (afin de ne pas perdre mes habitude par rapport à mon premier LISP)

 

ça donne :

 

(defun c:IN () (command "CALQUEINAC" ))

 

Rien de très méchant, j'aimerai l'améliorer et c'est la que j'ai besoin d'aide,

peut t'on dire au lisp de sélectionner un calque à INACTIVER grace à CALQUEINAC mais qu'il me demander une confirmation pour être sur que c'est le bon calque qu'on veut inactiver.

Car CALQUEINAC en lui même inactive tout de suite le calque sans demander si c'est le bon élément, et si nous sommes en XREF c'est vraiment pas pratique car il est difficile de choisir un bon calque sans le shift+barre espace

 

pour info le LISP du premier message me demandé une confirmation même losrqu'on est en XREF.

 

 

 

Posté(e)

bonsoir,

 

voici peut etre ce que tu recherches ?

 

 (defun c:test (/ nomcalque ms)
(setq nomcalque (cdr(assoc 8 (entget(car(entsel "\nSélectionne un élément:"))))))
(setq ms (strcat "Le nom du calque est: " nomcalque))
(alert ms)
(initget "Oui Non")
(setq reponse (getkword "\nVoulez vous geler ce calque (Oui/Non):"))
(if (= reponse "Oui") (command "-calque" "in" nomcalque "") "")
)

 

@plus[Edité le 3/2/2008 par lovecraft]

 

[Edité le 3/2/2008 par lovecraft]

Posté(e)

Woua j'ai pas reçu de message d'alerte pour dire qu'il y a quelqu'un qui a posté un nouveau post.

heureusement que je passe par hazar ici sinon j'aurai jamais su qu'un lispeur viendrai m'aider.

 

merci pour le lisp mais c'est pas exactement ce que je recherche,

ton lisp est bon mais il pose trop de question en fait, la selection en en pointillé est suffisant

 

en fait il faut un lisp exactement pareil que celle ci mais compatible avec les XREF.

ce lisp permet de GELER les calques choisis :

moi j'ai essayé de le modifier mais je connais pas assé en lisp pour l'adapter.

 

 (defun c:gu (/ nb lisplan lis ent)

 (setvar "CMDECHO" 0)
 (setq nb 0
lisplan "")
 (prompt "\nGeler les plans choisis")
 (setq lis (ssget))
 (repeat (sslength lis)
   (setq ent (ssname lis nb))
   (setq ent (entget ent))
   (setq ent (cdr (assoc 8 ent)))
   (if (= ent (getvar "clayer"))(setq gtcha t))
   (setq lisplan (strcat lisplan (if (> nb 0) "," "") ent))
   (setq nb (1+ nb))
 ) ; repeat

 (if gtcha
   (progn
     (princ "\nImpossible de geler le plan courant; 0 deviendra le plan courant")
     (command "_layer" "_t" 0 "_on" 0 "_s" 0 "_f" lisplan "")
   ) ; progn
  (command "_layer" "_f" lisplan "")
 ) ; if
 (setvar "CMDECHO" 1)
 (prin1)

) ; gu

 

[Edité le 3/2/2008 par yusukens82]

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é