Aller au contenu

[<= 2011] Rendre les calques verrouillés non sélectionnables (variable système)


Messages recommandés

Salut,

 

Suite à ce sujet, j'ai voulu essayer une nouvelle API .NET d'AutoCAD 2011 qui permet de créer de véritables variables système.

 

LAYLOCKSEL est une véritable variable système qui permet de rendre les objets sur les calques verrouillés non sélectionnables.

Valeurs :

- 0 : les objets sur les calques verrouillés sont sélectionnables (défaut).

- 1 : les objets sur les calques verrouillés ne sont pas sélectionnables.

La variable est accessible et modifiable en entrant son nom en ligne de commande ou en LISP avec les fonctions getvar et setvar.

 

Comme dit ci-dessus, ça ne fonctionnera que sur les versions 2011 et postérieures.

 

Nouvelle version.

 

Un installeur : LayLockSel.msi crée la variable système LAYLOCKSEL pour toutes les versions d'AutoCAD (>= 2011) installée sur le poste (y compris 2015).

 

Pour désinstaller, ré-exécuter LayLockSel.msi ou passer par le Panneau de configuration > Ajout et suppression de programmes.

 

Télécharger LayLockSel.zip

 

Plus d'informations et les codes source sur AcadLabs

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 77
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Re,

 

Ok !

 

Merci pour la réponse,

 

Autre question, puisque j'utilise MAP V 12 et AutoCAD 2008, je vais charger la.dll comme dis sur ton message plus haut, mais ne risque t-il pas d'y avoir un conflit avec Autoloader (Page N° 2 Réponse N° 6) sur ma V12 ?

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Autre question, puisque j'utilise MAP V 12 et AutoCAD 2008, je vais charger la.dll comme dis sur ton message plus haut, mais ne risque t-il pas d'y avoir un conflit avec Autoloader (Page N° 2 Réponse N° 6) sur ma V12 ?

 

 

Oui, il y a un risque de "conflit" entre les deux plug-in , les deux agissent sur le même évènement. Mais ceci n'a rien à voir avec le mode chargement, on ne peut pas utiliser l'Autoloader pour cette application qui, à l'installation, doit créer la variable système dans la base de registre.

 

Mais pourquoi multiplier les fonctions qui font la même chose ?

 

Petit récapitulatif :

 

- LayerSelectionHandler (ici) définit deux simples commandes LAYSELON et LAYSELOFF qui ne sont actives que dans le dessin pendant la session.

 

- LayLockSelectVariable (ici) définit une commande : LAYLOCKSELECT qui fonctionne comme une variable système, la valeur enregistrée dans la base de registre elle est passée d'un dessin à l'autre, d'une session à l'autre.

 

- LayLockSel (premier message de ce post) est une véritable variable système AutoCAD, son comportement est sensiblement le même que celui de LAYLOCKSELECT à ceci près que c'est AutoCAD et non le programme qui s'occupe de conserver la valeur et que cette est directement accessible en programmation (avec getvar et setvar en LISP par exemple).

 

Donc, il faut n'en choisir qu'une :

- soit on préfère une simple commande et c'est LayerSelectionHandler.dll qu'il faut utiliser ;

- soit on préfère une variable système et, à mon avis, si on a AutoCAD 2011 ou 2012, il vaut mieux utiliser LAYLOCKSEL, sinon, se "contenter" de LAYLOCKSELECT.

 

Dans tous les cas, le mode de chargement n'est qu'accessoire...

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

C'est tout à fait génial :D

Ca fonctionne nickel sur AA2011 :D

J'essayerai sur AA2012 lorsque je serai au bureau.

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

Bah, et pourquoi ça n'existe pas de base sur cacad ?

Par contre, je n'arrive pas à télécharger le fichier joint, on me dit "Vous n’êtes pas autorisé à télécharger cette pièce jointe". Suis-je un paria ?:rolleyes:

 

edit : ah oui j'avais pas vu, je suppose qu'il faut s'inscrire...

Modifié par LUDWIG

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Oups, ça ne fonctionne pas chez moi (ou alors j'ai pas compris le but de la variable).

J'ai bien fermer et rouvert autocad (2 fois même).

La variable existe mais j'ai beau changer la valeur, le comportement reste le même : l'objet sur le calque verrouillé reste sélectionnable mais non modifiable...

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Je l'ai téléchargé aujourd'hui, je pense que c'est la dernière version.

Je suis sur autocad 2012.

Est-qu'une autre variable pourrait poser problème ?

 

Dans le comportement, l'objet sur calque verrouillé est sélectionné dans le sens ou il est grisé à l'écran (sélection) et que la palette de propriéré affiche les propriété de cet objet. J'imagine que ce n'est pas le comportement voulu par cette variable.

 

Je ressayerais demain, ça ira peut-être mieux après un redémarrage...

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Par quelle version, je faisais référence à la réponse 5.

 

- LayerSelectionHandler (ici) définit deux simples commandes LAYSELON et LAYSELOFF qui ne sont actives que dans le dessin pendant la session.

 

- LayLockSelectVariable (ici) définit une commande : LAYLOCKSELECT qui fonctionne comme une variable système, la valeur enregistrée dans la base de registre elle est passée d'un dessin à l'autre, d'une session à l'autre.

 

- LayLockSel (premier message de ce post) est une véritable variable système AutoCAD, son comportement est sensiblement le même que celui de LAYLOCKSELECT à ceci près que c'est AutoCAD et non le programme qui s'occupe de conserver la valeur et que cette est directement accessible en programmation (avec getvar et setvar en LISP par exemple).

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Je n'utilise ni LayerSelectionHandler ni LayLockSelectVariable.

 

Toujours pas de changement ce matin.

 

J'ai bien la variable créée et la possibilité de changer le valeur, mais sans effet.

 

OU alors je n'ai pas compris et je dois charger quelque chose d'autre ?

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Salut Gile

 

J'ai installé laylockselec mais ça ne fonctionne pas même en changeant la valeur de la variable. J'ai désinstallé avec LaylockSel_Uninstall.exe puis réinstallé, le tout en quittant et relaçant AutoCAD mais ça ne fonctionne toujours pas :(

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Franchement, je ne vois pas où peut être le problème, je viens de refaire des tests avec succès...

 

Rappel de la procédure d'installation.

 

- Extraire les fichier (exe et dll) dans le même répertoire (en local), c'est indispensable parce que l'installeur inscrit dans la base de registre le chemin vers ce répertoire qui servira à retrouver la dll.

- Fermer AutoCAD

- Lancer l'installeur (LaylockSel_Install.exe)

- Une boite de dialogue doit vous confirmer que l'installation s'est bien passée

- Sous Windows 7, il se peut qu'une autre boite de dialogue (Windows) vous raconte que l'installation ne s'est peut-être pas bien passé. N'en tenez pas compte.

- À la réouverture d'AutoCAD la variable système devrait être opérationnelle.

 

Ce que fait l'installeur :

Création de deux clés dans le registre, un pour définir la variable :

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9001:40C\Variables\LAYLOCKSEL

et une autre pour le chargement automatique :

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9001:40C\Applications\LAYLOCKSEL

 

PS: pour ceux qui ont plusieurs AutoCAD sur leur poste, l'installation ne se fait que pour la "version courante" à savoir la dernière à avoir été lancée.

 

PPS: il me semble que steven avait utilisé avec succès les versions précédentes (LayerSelectionHandle et/ou LayLockSelectVariable) qui utilisent exactement le même gestionnaire d'évènement...

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Hello,

 

Ca a l'air bien pratique ce truc là ! Mais il ne fonctionne pas chez moi non plus... :huh:

 

Ah, ben j'ai relancé la bécane, et mainteneant c'est bon !

 

Cool, merci ! :D

 

Juste un petit plus, il n'y a pas moyen de faire que l'accrochage aux objets ne soit pas actif sur les calques gelés ? Se serait parfait !

Seuls nous allons vite, ensemble nous allons plus loin...

CPU Intel 3,5Go / Nvidia RTX-3090

AutoCad (Architecture) 2022 - Lumion PRO

BMW R-1200-RT, c'est moche, oui... je sais...

 

www.neda.ch

Lien vers le commentaire
Partager sur d’autres sites

Bon, je crois avoir trouver le problème : quand j'installe depuis un emplacement "extérieur" (réseau), ça ne fonctionne pas. Quand j'installe depuis un emplacement en local (disque dur), ça fonctionne. Nickel même ! Voilà, je ne sais pas s'il y a quelque chose à changer, en attendant, je le laisse en local !

Autocad 2021 - Revit 2022 - Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Franchement, je ne vois pas où peut être le problème, je viens de refaire des tests avec succès...

 

Rappel de la procédure d'installation.

 

- Extraire les fichier (exe et dll) dans le même répertoire (en local), c'est indispensable parce que l'installeur inscrit dans la base de registre le chemin vers ce répertoire qui servira à retrouver la dll.

- Fermer AutoCAD

- Lancer l'installeur (LaylockSel_Install.exe)

- Une boite de dialogue doit vous confirmer que l'installation s'est bien passée

- Sous Windows 7, il se peut qu'une autre boite de dialogue (Windows) vous raconte que l'installation ne s'est peut-être pas bien passé. N'en tenez pas compte.

- À la réouverture d'AutoCAD la variable système devrait être opérationnelle.

 

Ce que fait l'installeur :

Création de deux clés dans le registre, un pour définir la variable :

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9001:40C\Variables\LAYLOCKSEL

et une autre pour le chargement automatique :

HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9001:40C\Applications\LAYLOCKSEL

 

PS: pour ceux qui ont plusieurs AutoCAD sur leur poste, l'installation ne se fait que pour la "version courante" à savoir la dernière à avoir été lancée.

 

PPS: il me semble que steven avait utilisé avec succès les versions précédentes (LayerSelectionHandle et/ou LayLockSelectVariable) qui utilisent exactement le même gestionnaire d'évènement...

 

 

Salut Gile,

 

LayerSelectionHandle fonctionne bien sous AA2011 mais pas sur AA2012.

 

Pour ce qui est de Laylocksel, je ne comprends pas, je suis bien la procédure, la variable est bien là mais que je la mette à 0 ou 1, je peux toujours sélectionner les objets vérouillés.

 

J'ai bien mis tous les fichiers en local sur mon C, j'ai relancé AA2012, j'ai même redémarrer mon PC mais sans résultat :(

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Ca y est, ça fonctionne enfin :D

 

J'ai redésinstallé avec LaylockSel_Uninstall.exe. j'ai reinstallé, j'ai relancé AA2012 qu lui ne voulais polus se lancé. Il y avait bien le splachscreen qui s'affichait puis qui disparaissait mais pas de AA2012. Je me suis déconnecté de ma session Windows puis reconnecté et maintenant, ça fonctionne.

Merci à toi pour cette variable ;)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Bon, je crois avoir trouver le problème : quand j'installe depuis un emplacement "extérieur" (réseau), ça ne fonctionne pas. Quand j'installe depuis un emplacement en local (disque dur), ça fonctionne. Nickel même ! Voilà, je ne sais pas s'il y a quelque chose à changer, en attendant, je le laisse en local !

 

Il est plus simple d'enregistrer les assemblies .NET (exe ou dll) en local, mais il est possible de les installer sur un serveur à condition de modifier les autorisations, voir ce sujet.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

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é