Aller au contenu

Cacher une boite DCL et laisser complètement la main


alexbrabo

Messages recommandés

Bonsoir à tous !

 

Je suis en train de fabriquer une application pour permettre de corriger la charte graphique d'un plan donné, sur la base d'une liste de calques standardisés (une fonction proche de la mise au norme d'AutoCAD mais en beaucoup plus souple rolleyes.gif).

 

L'objectif est qu'en fonction d'un calque "layer" (non normé) sélectionné dans une listbox , on quitte provisoirement la DCL pour que l'utilisateur consulte le contenu du calque, éventuellement supprime certains éléments ou les change de calque manuellement, avant de retourner sur la DCL pour traiter d'autres calques (ou faire d'autre actions sur ce calque : le supprimer, le fusionner ...).

 

Je coince sur le retour à la DCL une fois que mon utilisateur a fait toutes les manip sur les éléments. Je souhaiterai revenir à la DCL en appuyant sur la touche BACKSPACE (voir boucle while). Mais le code que j'ai écrit ne fonctionne pas correctement (il faut cliquer en même temps qu'on appuie sur BACKSPACE ...angry.gif et encore cela ne marche pas tout le temps)

 

Quelle syntaxe pourrais-je utiliser ? Voyez-vous un moyen plus élégant pour revenir à la DCL ?

 

Merci d'avance pour votre aide !

 

(setq ss (ssget "_X" (list (cons 8 layer))))
(setvar "LAYLOCKFADECTL" 90)
(command "-CALQUE" "L" layer "")
(command "_LAYISO" (ssname ss 0) "")
	(while (/= -128 (acet-sys-keystate 8))
  		     (command pause)
	);while	
(command "_LAYUNISO")

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Avec DCL on ne peut faire que des boites de dialogue modales qu'il est possible de masquer la boite de dialogue pour laisser l'utilisateur effectuer une action précise à l'écran (spécifier un point, sélectionner un ou plusieurs objets, ...) et la boite s'affiche à nouveau une fois cette action terminée.

Pour ce que tu veux faire, il faudrait une fenêtre non-modale (type palette par exemple) ce qui ne peut se faire directement en DCL. Il te faudrait utiliser une application tierce (OpenDCL ou ObjectDCL) ou un autre environnement de programmation.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir Gilles !

 

Merci pour ton aide et ta réponse très précise!

Je vais du coup tourner l'application un peu différemment car nous n'avons pas de module BRX sur nos licences BricsCAD Classic. Je vais tout de suite faire une demande d'Upgrade à la version Pro rolleyes.gif, et en attendant j'ajuste mon code en fermant la fenêtre ... !

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é