(gile) Posté(e) le 15 juin 2011 Posté(e) le 15 juin 2011 Salut, Un petit truc vite fait en .NET (qui fournit une gestion d'évènement qui permet d'interagir pendant les sélections).On pourrait faire plus élaboré avec une interface (palette ou boite de dialogue) pour spécifier les calques à rendre sélectionnable ou non, mais ce petit programme semble déjà répondre à la demande. La commande LAYSELON active un 'réacteur' qui rend les objets sur les calques verrouillés non sélectionnables. La commande LAYSELOFF désactive ce 'réacteur'. LayerSelectionHandler.zip contient la DLL à charger avec NETLOAD. Le code source est sur AcadLabs Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 15 juin 2011 Posté(e) le 15 juin 2011 Re, Cool Gilles, Je suis pressé de tester ça (peut pas en ce moment mon AutoCAD tourne toujours pour une petite vidéo de 1000 images =>plus de 12 h00 !!! :o ),... Bonne nuit, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
rebcao Posté(e) le 16 juin 2011 Posté(e) le 16 juin 2011 Bonjour, Merci Gilles toujours aussi réactif... c'est normal à force de jouer avec des réacteurs... Du grand n'importe quoi oui,... ça doit etre le soleil !?§ mais je ne vois qui a écrit ça Lilian ? :casstet: ChrisTiTiTianTian (c'est un nouveau celui là) Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Steven Posté(e) le 16 juin 2011 Auteur Posté(e) le 16 juin 2011 Salut à tous. Bah ça tombe bien, j'en ai besoin tout desuite du réacteur et je viens de faire un essai.C'est tout simplement, heu, comment dirais-je... GENIAL !!! :D C'est pile poils ce qu'il fallait. Plus besoin de passer par l'espace papier pour aller bosser dans l'espace objet. Merci Gile ;) 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.
lili2006 Posté(e) le 16 juin 2011 Posté(e) le 16 juin 2011 Re, En voilà une bonne nouvelle ! (Mais je n'en doutais pas une seconde,... ;) ) Peux pas encore tester AutoCAD est plus qu'occupé en ce moment,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Steven Posté(e) le 16 juin 2011 Auteur Posté(e) le 16 juin 2011 Comment faire pour que le fichier dll se charge automatiquement lors de l'ouverture d'AutoCAD? J'ai voulu le mettre dans le dossier d'installation d'AutoCAD, en l'occurence sur mon poste: C:\Program Files\Autodesk\AutoCAD Architecture 2011, mais ça n'a pas fonctionné lorsque j'ai relancé AutoCAD. J'ai du le recharger manuellement. 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.
(gile) Posté(e) le 16 juin 2011 Posté(e) le 16 juin 2011 Comment faire pour que le fichier dll se charge automatiquement lors de l'ouverture d'AutoCAD? Tu met la DLL dans un répertoire du chemin de recherche et colles le code ci-dessous à la ligne de commande d'AutoCAD. Une nouvelle clé sera créée dans la base de registre, avec 4 variables : HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R18.2\ACAD-9001:40C\Applications\LayerSelectionHandler ((lambda (/ filename) (if (setq filename (findfile "LayerSelectionHandler.dll")) (mapcar '(lambda (k v) (vl-registry-write (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Applications\\LayerSelectionHandler" ) k v ) ) '("DESCRIPTION" "LOADCTRLS" "LOADER" "MANAGED") (list "Rendre les calques verrouillés non sélectionnables" 2 filename 1) ) (princ (strcat "\nLe fichier 'LayerSelectionHandler.dll' est introuvable")) ) ) ) Je vais essayer de faire une version plus élaborée avec une sorte de variable système, je lui ajouterai deux commandes pour créer ou supprimer la clé. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Steven Posté(e) le 16 juin 2011 Auteur Posté(e) le 16 juin 2011 Ca marche nickel :D j'attends de voir la suite si c'est encore plus élaboré. Mais là, c'est déjà super :) 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.
(gile) Posté(e) le 16 juin 2011 Posté(e) le 16 juin 2011 Voilà, LAYLOCKSELECT fonctionne comme une variable système enregistrée dans le registre pour l'utilisateur courant (HKEY_CURRENT_USER\Software\Gile\LayLockSelect).Les valeurs possibles sont :0 : les claques verrouillés sont sélectionnables1 : les claques verrouillés ne sont pas sélectionnables Deux commandes ont été ajoutées :LayLockSelRegister : crée une clé dans la base de registre pour le chargement automatique de la DLL (qui doit être enregistrée dans une répertoire de recherche d'AutoCAD).LayLockSelUnregister : supprime cette clé du registre. Nouvelle version (optimisations mineures) LayLockSelectVariable.zip. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 16 juin 2011 Posté(e) le 16 juin 2011 Re, Et si je gère dans mon AutoCAD.lsp, comme les autres ".dll" avec (command "_netload" "LayerSelectionHandler.dll ") C'est "suffisant", je suppose ?! Je teste demain ! Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Bien sûr (command "NETLOAD" ...) dans AutoCAD.lsp fonctionne aussi, mais l'enregistrement dans la base de registre est "plus propre" (c'est comme ça que les DLL .NET AutoCAD natives sont chargées) et avec cette dernière version, il suffit de lancer la commande LayLockSelRegister pour que l'enregistrement se fasse. Je sais qu'avec 2012, est arrivé un nouveau système de déploiement des applications (Autoloader) beaucoup plus pratique mais je ne l'ai pas encore testé. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re, Merci Gilles, avec cette dernière version, il suffit de lancer la commande LayLockSelRegister pour que l'enregistrement se fasse. Pour les autres ":dll" que tu as faites et que j'utilise, je peux alors reprendre l'expression donnée (réponse 2 de cette page) ci_dessus en changeant le nom de la ":dll", ce sera mieux que sur le "acad.lsp" ou est-ce inutile ? un nouveau système de déploiement des applications Peux_tu nous en dire plus ? Ou au moins ou trouver l'info,... Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Pour les autres ":dll" que tu as faites et que j'utilise, je peux alors reprendre l'expression donnée (réponse 2 de cette page) ci_dessus en changeant le nom de la ":dll", ce sera mieux que sur le "acad.lsp" ou est-ce inutile ? C'est comme tu veux, tu peux aussi utiliser ce LISP : ;;; NetStartupAutoLoad ;;; Inscrit une application .NET dans la base de registre pour ;;; un chargement automatique au démarrage ;;; ;;; Arguments ;;; key : la clé de l'application (string) ;;; descr : une description (string) ;;; filename : le chemin complet de la dll ou le nom du fichier avec l'extension .dll ;;; si le fichier est dans un chemin de recherche (string) ;;; ;;; Exemple: ;;; (NetStartupAutoLoad "LayLockSelect" ;;; "Sélection des calques verrouillés" ;;; "LayLockSelectVariable.dll" ;;; ) (defun NetStartupAutoLoad (key descr filename / fullname) (vl-load-com) (if (setq fullname (findfile filename)) (mapcar '(lambda (k v) (vl-registry-write (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Applications\\" key ) k v ) ) '("DESCRIPTION" "LOADCTRLS" "LOADER" "MANAGED") (list descr 2 filename 1) ) (princ (strcat "\nLe fichier \"" filename "\" est introuvable")) ) ) Et pour supprimer la clé : ;;; NetUnReg ;;; Supprime la clé et toutes les sous clés de la base de registre ;;; ;;; Arguments ;;; key : la clé de l'application (string) ;;; ;;; Exemple: (NetUnReg "MyApp2") (defun NetUnReg (key / regpath) (vl-load-com) (setq regpath (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Applications\\" key ) ) (foreach k (vl-registry-descendents regpath) (vl-registry-delete (strcat regpath "\\" k)) ) (vl-registry-delete regpath) ) Peux_tu nous en dire plus ? Ou au moins ou trouver l'info,... Voir ici par exemple. Ou faire une recherche sur Google avec 'AutoCAD 2012 Autoloader'. AutoCAD 2012 possède deux nouveaux répertoires dans lesquels il suffit de placer des dossiers (*.bundle) pour que ceci soient automatiquement chargés - pour l'utilisateur courant : Windows XP : C:\Documents and Settings\[login]\Application Data\Roaming\Autodesk\ApplicationPlugins\ Windows 7 : C:\Users\[login]\AppData\Roaming\Autodesk\ApplicationPlugins\ - ou pour tous les utilisateurs : C:\Program Files\Autodesk\ApplicationPlugins\ Chaque dossier (*.bundle) contient un sous dossier (Contents) qui contient le(s) fichier(s) de l'application (.dll, lsp, vlx, etc...) et un fichier XML (PackageContents.xml) qui décrit l'application et la façon de la charger. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re, Ok ! C'est comme tu veux, tu peux aussi utiliser ce LISP : Donc l'une ou l'autre solution n'a pas d'influence sur quoi que ce soit ? Merci pour les précisions sur "Autoloader" Mais c'est quoi exactement la révolution ? (Et la vidéo en anglais ne m'a guerre éclairé, ...) Plus de AutoCAD.lsp perso ? Désolé mais je n'ai pas assez de connaissances en la matière pour comprendre l'intérêt du truc,...:exclam: Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Donc l'une ou l'autre solution n'a pas d'influence sur quoi que ce soit ? Passer par la base de registre est plus discret et (un peu) plus rapide (pas d'appel de commande). Mais c'est quoi exactement la révolution ? (Et la vidéo en anglais ne m'a guerre éclairé, ...) Plus de AutoCAD.lsp perso ? Pour l'utilisateur lambda, ça devrait simplifier considérablement les problèmes de déploiement et de chargement automatique.Si le développeur fournit un dossier *.bundle pour son application, l'utilisateur n'a qu'à le copier dans le bon répertoire sans se soucier de savoir si l'application est un LISP, une DLL .NET, un ARX... et de comment la charger automatiquement (les clés dans le registre sont créées automatiquement). Pour supprimer l'application, il suffit de supprimer le dossier (la clé devrait être automatiquement supprimée).Ces dossier seront automatiquement migrés lors de mises à jour d'AutoCAD. Pour le développeur, c'est un peu plus de travail que de fournir simplement le fichier .lsp, .dll ou autre, il faut écrire le fichier XML, mais beaucoup moins que de faire un setup qui s'occuperait de tout ça. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re, (En attendant, je crois que je vais garder mon AutoCAD.lsp,....) Ah oui ! Grosse évolution quand même....:o Merci Gilles pour ce développement, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Ça c'est que j'ai compris avec les différents sujets sur internet, mais je n'ai pas testé. Si quelqu'un ayant une version 2012 voulait bien essayer avec ce dossier :http://dl.free.fr/vK01vxV38à décompresser dans un répertoire "ApplicationPlugins" d'Autodesk. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re, J'ai un map 2012, Je teste dés que mon AutoCAD est dispo, C'est quoi le but du test ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 C'est quoi le but du test ? Sans utiliser d'autre technique de chargement, mettre le dossier 'LayLockSelVar.bundle' dans le dossier :C:\Program Files\Autodesk\ApplicationPlugins\, par exemple, ouvrir AutoCAD 2012 et voir si la commande/variable système LAYLOCKSELECT fonctionne Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re, Ok, je devrai bientôt pouvoir reprendre la main ! (Je suis encore dans mes satanés vidéos, si tu as suivi un peu mes derniers posts,....) Je reviens dés que c'est ok ! Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re, J'ai testé mais la commande ne fonctionne pas ! Peut_être est ce lié au chemin d'install ? En ce qui me concerne => D:\_LOGICIEL MAP 3D 2012\AutoCAD Map 3D 2012 Dans le doute j'ai copié également le dossier ApplicationPlugins C:\Documents and Settings\All Users\Application Data\Autodesk\AutoCAD Map 3D 2012\R18.2\fra\ApplicationPlugins\LayLockSelVar.bundle Ainsi que dans : C:\Documents and Settings\Lilian LESCOUËT\Application Data\Autodesk\AutoCAD Map 3D 2012\R18.2\fra\ApplicationPlugins Commande: LAYLOCKSELECTCommande inconnue "LAYLOCKSELECT". Appuyez sur F1 pour obtenir de l'aide. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 J'ai peut-être fait quelque chose de travers, mais je viens de regarder à nouveau cette video et je ne vois pas quoi... J'essaye de mieux expliquer la procédure :Avec AutoCAD fermé (même s'il semble que ça fonctionne aussi avec AutoCAD ouvert), copier le dossier "LayLockSelVar.bundle" soit dans :C:\Documents and Settings\[login]\Application Data\Roaming\Autodesk\ApplicationPluginssoit dans :C:\Program Files\Autodesk\ApplicationPlugins Les répertoires ApplicationPlugins devraient être présents par défaut (note qu'il n'est pas question du répertoire d'AutoCAD 2012 ou d'AutoCAD MAP 3D 2012 mais du dossier parent Autodesk) Puis relancer AutoCAD ou MAP) et la DLL devrait être chargée. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re , OUPS ! Désolé de t'avoir fait perdre ton temps,.... :cool: Je n'avais pas compris ça => (note qu'il n'est pas question du répertoire d'AutoCAD 2012 ou d'AutoCAD MAP 3D 2012 mais du dossier parent Autodesk) Et en regardant dans ce dossier, il y à bien : Les répertoires ApplicationPlugins devraient être présents par défaut (même s'il semble que ça fonctionne aussi avec AutoCAD ouvert) Je confirme ! Mon MAP était ouvert lorsque j'ai inséré le dossier "LayLockSelVar.bundle" dans le bon répertoire,.... TOUT fonctionne à merveille maintenant ! Commande:LAYLOCKSELECTEntrez une nouvelle valeur pour LAYLOCKSELECT : 1 Commande:LAYLOCKSELECTEntrez une nouvelle valeur pour LAYLOCKSELECT : O Et bien entendu le prog joue son rôle,//// Peut_être(vraisemblablement même !) un peu plus de travail pour le développeur mais alors quelle simplicité pour l'utilisateur "Lambda" (dont je fais partie). Le placement du dossier au bon endroit(:cool: ) et hop, ça roule, Du coup, le lisp que tu préconises plus haut n'a plus lieu d'être à partir de cette version,... Un truc Sympa de la part d'Autodesk, non ? Pour les non développeurs mais utilisateur de prog perso glannés ci et là, (Heu, tu vas me dire encore faut-il que le programmeur se donne la peine de faire le "xml" et que tout le monde fasse comme toi, s'y mettre, c'est pas gagné,...) Bravo Gilles tu est encore à la pointe des nouveautés ! :P :D Et encore désolé, :( Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Content que ça marche :D Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 17 juin 2011 Posté(e) le 17 juin 2011 Re, Ben moi aussi ! [PS: J'ai édité ma réponse ci_dessus (rien de fondamentalement différent mais plus "clair" peut-être pour ceux qui me lirons par la suite,....)] Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant