Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Je souhaite pouvoir geler ou dégeler certain calque en fonction des x ref que j'attribus au dessin

 

dans mon exemple je dispose de deux niveaux avec deux calques qui dispose d'entité soit du

 

niv 1 soit du niv 2 mon but étant qu' a chaque déchargement du niv 1 les entité du calque niv1

 

se géle soit dans le dessin soit en fenêtre active ....

 

Si quelq'un dispose d'une solution via lisp ou autre merci de me répondre ....

 

 

 

Cordialement

Posté(e)

Hello

 

je crains de ne pas comprendre ta question,

car expliquée telle quelle elle est sans fondement.

 

une XREF étant déchargée

TOUTES les entités qui la composent disparaîssent du fichier.

 

que ce soit dans les fenêtres ou ailleurs !!!

 

explicite ton désir.

 

amicalement

Posté(e)

Bonjour

 

Didier

Je pense que des objets sont dessinés sur un calque par exemple Niveau_1_Objets.

Quand je décharge le xref correspondant au niveau 1, je devine que dedolu souhaite que ce calque Niveau_1_Objets soit lui aussi gelé.

Je recharge le xref, le calque est dégelé.

 

C'est faisable par un lisp, car il faut associer le xref avec les calques présents et en utilisant les réacteurs, mais je n'ai pas le temps en ce moment.

 

Il est aussi envisageable d'insérer le xref sur le calque des objets correspondant au niveau, et au lieu de décharger, un gèle du calque suffit.

Et si c'est avec plusieurs calques, en utilisant lman des express tools.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

MERCI de vos réponses.....

En effet la solution de placer la xref dans le calque c pas mal ceci dit j'attendais un lisp...

Ceci dit est ce compliquer de créer un lisp quel language de prog s'y rapproche le plus ...

Avait vous des informations ou liens qui puisse m'aider à programmer moi même mais propre envie..???

 

Patrick peut tu me définir un réacteur????

 

cordialement

Posté(e)

Re

 

Un réacteur est un bout de code que l'on intègre dans une commande.

Dans ton besoin, le réacteur à modifier est vlr-xref-reactor avec l'évenement :VLR-xrefSubcommandReloadItem pour charger et :VLR-xrefSubcommandUnloadItem pour décharger avec en plus des vlax-ldata pour stocker les calques à geler en fonction du xref.

Pas très simple à faire

 

Voici un exemple qui fait parler autocad sur n'importe quelle commande

 

(defun autocad_qui_parle (texte / sapi)
 (setq sapi (vlax-create-object "Sapi.SpVoice"))
 (vlax-invoke sapi "Speak" texte 0)
 (vlax-release-object sapi)
)

(defun autocad_qui_parle_debut (rea cde)
 (autocad_qui_parle (strcat "La commande ," (getcname (strcat "_" (car cde))) " commence"))
)

(defun autocad_qui_parle_inconnu (rea cde)
 (autocad_qui_parle (strcat "Commande inconnu ," (car cde)))
)

(defun autocad_qui_parle_cancel (rea cde)
 (autocad_qui_parle (strcat "La commande ," (getcname (strcat "_" (car cde))) " est abandonnée"))
)

(defun autocad_qui_parle_failed (rea cde)
 (autocad_qui_parle (strcat "La commande ," (getcname (strcat "_" (car cde))) " est interrompue"))
)

(defun autocad_qui_parle_fin (rea cde)
 (autocad_qui_parle (strcat "La commande ," (getcname (strcat "_" (car cde))) " est terminée"))
)

(if (not pourrir_la_vie)
 (setq pourrir_la_vie (vlr-command-reactor nil (list	(cons :vlr-commandWillStart (function autocad_qui_parle_debut))
					       	(cons :vlr-unknownCommand   (function autocad_qui_parle_inconnu))
					       	(cons :vlr-commandCancelled (function autocad_qui_parle_cancel))
					       	(cons :vlr-commandFailed    (function autocad_qui_parle_failed))
					       	(cons :vlr-commandEnded     (function autocad_qui_parle_fin))
					 )
 		       )
 )
)
(princ)

 

Un exemple concret de réacteur ;)

 

Pour l'effacer, tu fais sur la ligne de commande

(vlr-remove pourrir_la_vie)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é