(gile) Posté(e) le 18 décembre 2013 Posté(e) le 18 décembre 2013 Salut, Le dernier sujet sur le blog de Kean Walmsley m'a fait repenser à un vieux sujet. Il s'avère que c'était mon cadeau de fin d'année il y deux ans. Donc cette année le traditionnel cadeau sera le même qu'alors mais en mieux abouti. Toujours deux commandes bascule pour activer/désactiver les accrochages aux objets sur les calques verrouillés (LOKO) ou les références externes (XROS). Ces commandes peuvent être appelées de manière transparente ('LOKO ou 'XROS). Les problèmes avec l'accrochage 'Intersection' sont résolus (merci Kean) mais je n'ai pas encore trouvé pour les composants des cotes sur un calque verrouillé. Attention, la désactivation des accrochages sur de gros fichiers peut provoquer un ralentissement. Cette nouvelle mouture semble stable sur AutoCAD 2012, 2013 et 2014, mais comme j'ai eu des plantages sévères avec AutoCAD 2011, elle sera réservé à ces versions Ceci permet d'utiliser la technique Autoloader pour faciliter l'installation. Installation : Télecharger LockOsnap.zip. Débloquer le zip (clic droit -> Propriétés -> onglet Général -> Débloquer Lancer l'installeur LockOsnapSetup.msi (Un dossier LockOsnap.bundle est créé dans : %appdata%\Autodesk\ApplicationPlugins Désinstallation : Désinstaller via le Panneau de configuration. Le code: // (C) Copyright 2012 by Gilles Chanteau // using System; using System.Collections.Generic; using System.Linq; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; using AcAp = Autodesk.AutoCAD.ApplicationServices.Application; [assembly: CommandClass(typeof(Gile.LockOsnap.CommandMethods))] namespace Gile.LockOsnap { public class CommandMethods { private OSOverrule lokoOSOverrule, xrosOSOverrule; private IntOverrule lokoIntOverrule, xrosIntOverrule; [CommandMethod("LOKO", CommandFlags.Modal | CommandFlags.Transparent)] public void LockOsnapCmd() { ToggleOsnaps(ref lokoOSOverrule, ref lokoIntOverrule, lokoPromptingForPoint, LockedUpdate, "calques verrouillés"); } [CommandMethod("XROS", CommandFlags.Modal | CommandFlags.Transparent)] public void XrefOsnapCmd() { ToggleOsnaps(ref xrosOSOverrule, ref xrosIntOverrule, xrosPromptingForPoint, XrefUpdate, "références externes"); } void lokoPromptingForPoint(object sender, PromptPointOptionsEventArgs e) { LockedUpdate(); } void xrosPromptingForPoint(object sender, PromptPointOptionsEventArgs e) { XrefUpdate(); } private void ToggleOsnaps( ref OSOverrule osOverrule, ref IntOverrule intOverrule, PromptPointOptionsEventHandler handler, Action update, string msg) { Editor ed = AcAp.DocumentManager.MdiActiveDocument.Editor; RXClass entityClass = RXClass.GetClass(typeof(Entity)); if (osOverrule == null) { ed.PromptingForPoint += handler; osOverrule = new OSOverrule(); Overrule.AddOverrule(entityClass, osOverrule, false); intOverrule = new IntOverrule(); Overrule.AddOverrule(entityClass, intOverrule, false); ed.WriteMessage(string.Format("\nAccrochages sur les {0} désactivés.", msg)); update(); Overrule.Overruling = true; } else { ed.PromptingForPoint -= xrosPromptingForPoint; Overrule.RemoveOverrule(entityClass, osOverrule); osOverrule = null; Overrule.RemoveOverrule(entityClass, intOverrule); intOverrule = null; ed.WriteMessage(string.Format("\nAccrochages sur les {0} activés.", msg)); } } private void LockedUpdate() { if (lokoOSOverrule != null) { Database db = HostApplicationServices.WorkingDatabase; using (Transaction tr = db.TransactionManager.StartOpenCloseTransaction()) { HashSet<string> layers = new HashSet<string>( ((LayerTable)tr.GetObject(db.LayerTableId, OpenMode.ForRead)) .Cast<ObjectId>() .Select(id => (LayerTableRecord)tr.GetObject(id, OpenMode.ForRead)) .Where(ltr => ltr.IsLocked) .Select(ltr => ltr.Name)); ObjectId[] onLocked = ((BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForRead)) .Cast<ObjectId>() .Where(id => layers.Contains(((Entity)tr.GetObject(id, OpenMode.ForRead)).Layer)) .ToArray(); lokoOSOverrule.SetIdFilter(onLocked); lokoIntOverrule.SetIdFilter(onLocked); tr.Commit(); } } } private void XrefUpdate() { if (xrosOSOverrule != null) { Database db = HostApplicationServices.WorkingDatabase; using (Transaction tr = db.TransactionManager.StartOpenCloseTransaction()) { ObjectId[] xrIds = ((BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead)) .Cast<ObjectId>() .Select(id => (BlockTableRecord)tr.GetObject(id, OpenMode.ForRead)) .Where(btr => btr.IsFromExternalReference) .SelectMany(btr => btr.GetBlockReferenceIds(true, false).Cast<ObjectId>()) .ToArray(); xrosOSOverrule.SetIdFilter(xrIds); xrosIntOverrule.SetIdFilter(xrIds); tr.Commit(); } } } class OSOverrule : OsnapOverrule { public override void GetObjectSnapPoints( Entity ent, ObjectSnapModes mode, IntPtr gsm, Point3d pick, Point3d last, Matrix3d view, Point3dCollection snap, IntegerCollection geomIds) { } public override void GetObjectSnapPoints( Entity ent, ObjectSnapModes mode, IntPtr gsm, Point3d pick, Point3d last, Matrix3d view, Point3dCollection snaps, IntegerCollection geomIds, Matrix3d insertion) { } public override bool IsContentSnappable(Entity entity) { return false; } } class IntOverrule : GeometryOverrule { public override void IntersectWith( Entity ent1, Entity ent2, Intersect intType, Plane proj, Point3dCollection points, IntPtr thisGsm, IntPtr otherGsm) { } public override void IntersectWith( Entity ent1, Entity ent2, Intersect intType, Point3dCollection points, IntPtr thisGsm, IntPtr otherGsm) { } } } } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 18 décembre 2013 Posté(e) le 18 décembre 2013 Hello Gilles MERCI, je sens que je vais jouer un peu beaucoup avec ton nouveau gadget avec du MAP 2012/2013/2014 64 bits et en plus sur des GROS fichiers pour voir !mais malheureusement pas tout de suite ... Bonnes Fetes et surtout la Sante, Bye, lecrabe Autodesk Expert Elite Team
lecrabe Posté(e) le 18 décembre 2013 Posté(e) le 18 décembre 2013 Hello Pour Info, avoir une nouvelle case/option dans la grande case de gestion des calques :OSNAP (ACCROBJ) On/Off fait partie depuis longtemps de la WishList mondiale AutoCAD MAIS cela n'a jamais ete implemente par Autodesk ! Je me demande pourquoi ?? Cela poserait peut etre qq problemes subtils !? Bye, lecrabe Autodesk Expert Elite Team
jalna Posté(e) le 18 décembre 2013 Posté(e) le 18 décembre 2013 Effectivement très bon programme (surtout accrochage xref)!! attention Autodesk va te piquer ton idée....... "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
x_all Posté(e) le 18 décembre 2013 Posté(e) le 18 décembre 2013 et bien merci et joyeuses fêtes :) quelques trucs sur autocad
La Lozère Posté(e) le 18 décembre 2013 Posté(e) le 18 décembre 2013 Salut, GRAND MERCI (GILE), avec LayLocSel on obtient quelque chose de fantastique lorsqu'on utilise, comme moi, beaucoup les Xref. Par contre j'ai un petit bug. J'explique: Loko-Accrochage activé et xros-Accrochage activé: RAS Loko-Accrochage désactivé et xros-Accrochage activé: RAS, je n'ai plus l'accroche sur les calques verrouillé Loko-Accrochage activé et xros-Accrochage désactivé: Bug, plus aucuns accrochages ne marchent, quelque soit l'objet et le calque Loko-Accrochage désactivé et xros-Accrochage désactivé: RAS, je n'ai plus d'accrochage ni sur les xref ni sur les calques vérouillés De plus, quand j'ai plusieurs fichier ouvert. Que je fais des réglage dans l'un, pas de soucis ça marche dans l'autre. Mais si je change une variable dans l'autre, voici ce que j'obtiens:http://img.imagesia.com/fichiers/ef/capture_imagesia-com_efc1_large.JPG Et tout cas, MERCI A plus. www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas
(gile) Posté(e) le 18 décembre 2013 Auteur Posté(e) le 18 décembre 2013 Merci pour les retours. J'ai corrigé le bug signalé par La Lozère :Loko-Accrochage activé et xros-Accrochage désactivé: Bug, plus aucuns accrochages ne marchent, quelque soit l'objet et le calquePour l'autre, je ne comprends pas bien, mais j'ai modifié le code pour que les commandes fonctionnent "par dessin". Recharger LockOsnap.zip (le lien du premier message est mis à jour), supprimer l'ancien dossier Gile_Lockosnap.bundle et le remplacer par le nouveau. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
La Lozère Posté(e) le 19 décembre 2013 Posté(e) le 19 décembre 2013 Super, merci. Petite question, comment peut-on faire en sorte que les bascules passent sur désactivé directement à l'ouverture ou à la création d'un nouveau fichier? Faut-il passer par AutoCAD.lsp ou acadiso.lsp? A plus. www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas
thierry.garré Posté(e) le 19 décembre 2013 Posté(e) le 19 décembre 2013 Bravo Gile, Super Cadeau ! encore Merci Thierry Garré Géorail-Covadis-Autopiste-Autocad-Autocad Map-Infraworks 360- Navisworks -Recap
LUDWIG Posté(e) le 13 mai 2014 Posté(e) le 13 mai 2014 Bonjour, Je n'arrive pas à installer cette merveille... Il n'y a a pas d' "install', à part placer le dossier dans le répertoire mentionné ? De fichiers à charger dans autocad ? J'ai déclaré le répertoire dans les emplacements de recherches de fichiers et les emplacements approuvés mais rien... Merci pour votre aide Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 13 mai 2014 Auteur Posté(e) le 13 mai 2014 Salut, Normalement, avec AutoCAD 2012 à 2015, il n'y a rien d'autre à faire que de placer le dossier "Gile_LockOsnap.bundle" dans un des dossiers suivant : Pour l'utilisateur courant :%appdata%\Autodesk\ApplicationPlugins\[*]Pour tous les utilisateurs :%allusersprofile%\Autodesk\ApplicationPlugins\ (Windows XP)%programdata%\Autodesk\ApplicationPlugins\ (Windows 7 ou 8)%programfiles%\Autodesk\ApplicationPlugins\ Tous ces dossiers (et leurs sous-dossiers) sont, par défaut, dans les chemins de recherche et dans les emplacements approuvés.AutoCAD s'occupe du chargement automatique des applications placées dans ces dossiers. Plus détails sur le mécanisme AutoLoader. Cette application n'est pas chargée au démarrage, elle n'est chargée qu'au premier appel de la commande LOKO ou XROS. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
LUDWIG Posté(e) le 21 mai 2014 Posté(e) le 21 mai 2014 Bonjour, Pas de changement chez moi... Appautoload 14 Commande: CHARGEAUTOAPPEntrez une action de chargement automatique (Autoloader) [Liste/Recharger] <Liste>: l3 lots d'application chargés.C:\ProgramData\Autodesk\ApplicationPlugins\Autodesk AppManager.bundleC:\ProgramData\Autodesk\ApplicationPlugins\Autodesk FeaturedApps.bundleC:\ProgramData\Autodesk\ApplicationPlugins\Autodesk ImportSkp.bundle J'ai pourtant mis le package LockOsnap.bundle aussi dans le dossier C:\ProgramData\Autodesk\ApplicationPlugins\ mais rien...Un paramètre doit bien Le code que tu donnes dans ton premier message est inclus dans la dll ou il faut le charger quelque part ? Salutations Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 21 mai 2014 Auteur Posté(e) le 21 mai 2014 Comme je le dis juste au dessus : "Cette application n'est pas chargée au démarrage, elle n'est chargée qu'au premier appel de la commande LOKO ou XROS."Il est donc normal que l'application n'apparaisse pas dans la liste. As-tu essayé de lancer la commande LOKO, tu devrais avoir : "Accrochages sur les calques verrouillés désactivés." affiché en ligne de commande. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
LUDWIG Posté(e) le 22 mai 2014 Posté(e) le 22 mai 2014 Bien sûr, autocad répond "commande inconnue". Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 22 mai 2014 Auteur Posté(e) le 22 mai 2014 Essaye de charger la DLL avec NETLOAD ou en exécutant cette expression LISP :((lambda (filename) (if (findfile filename) (command "netload" filename) (alert "Fichier introuvable") ) ) (strcat (getenv "appdata") "\\Autodesk\\ApplicationPlugins\\Gile_LockOsnap.bundle\\Contents\\LockOsnap_19.dll" ) ) Il se peut que tu aies un message d'erreur du genre :Impossible de charger l'assemblage. Détails de l'erreur:System.IO.FileLoadException: Impossible de charger le fichier ou l'assembly...Dans ce cas, il faut débloquer les fichiers PackageContents.xml LockOsnap_18.dll et LockOsnap_19.dll. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Raph_38 Posté(e) le 22 mai 2014 Posté(e) le 22 mai 2014 Pour ma part, ça fonctionne très bien chez moi ;) Raph. Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !
LUDWIG Posté(e) le 22 mai 2014 Posté(e) le 22 mai 2014 Hello ! En essayant NETLOAD, j'avais effectivement un message d'erreur. J'ai donc débloqué les DLL tel que tu le décrit. Après relance d'autocad, le chargement automatique fonctionne !! Je n'ai plus qu'a essayé la bête ! Merci (gile). Autocad 2021 - Revit 2022 - Windows 10
LUDWIG Posté(e) le 3 avril 2015 Posté(e) le 3 avril 2015 Hello (Gile) Est-ce que LOKO et XROS sont censés fonctionnés "tel quel" sur Autocad 2016 ou as tu prévu une nouvelle version prochainement ? Je pense que tu vas te faire "piquer" le concept par Autodesk un de ces jours, tes commandes sont tellement utiles ! A bientôt Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 3 avril 2015 Auteur Posté(e) le 3 avril 2015 Salut, En l'état, le plug-in ne se chargera pas sur AutoCAD 2016.Pour un fonctionnement avec A2016, il faut : - soit recharger le ZIP mis à jour dans le premier message (possiblement le débloquer) et ensuite :-- soit remplacer tout le dossier Gile_LockOsnap.bundle ;-- soit remplacer uniquement le fichier PackageContents.xml ; - soit ouvrir le fichier PackageContents.xml du dossier Gile_LockOsnap.bundle déjà installé dans un éditeur de texte et remplacer : SerieMax="R20.0" par : SerieMax="R20.1" dans le nœud : Components Description="2013 parts"/RuntimeRequirements Je n'ai fait que quelques tests, mais il ne semble pas y avoir de problèmes avec cette version d'AutoCAD. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Giropode Posté(e) le 26 août 2015 Posté(e) le 26 août 2015 Bonjour bonjour, Voila des années que je cherche le moyen de désactiver les accrochages objets sur les xrefs et enfin j'ai trouvé ! Merci mille fois ! Cependant, je suis sous AutoCAD 2016 et lorsque je passe à un autre dessin, que j'utilise aussi la commande XROS et que je reviens au premier dessin j'ai le message d'erreur suivant: En cliquant sur Ignorer tout rentre dans l'ordre. Bonne journée et merci encore ! Mon pense bête : Mon blog fourre-toutMa bible : Aide AutoCADMon futur calvaire : Revit
La Lozère Posté(e) le 2 août 2016 Posté(e) le 2 août 2016 Bonjour (gile),C'est 2 petites commandes fonctionne-t-elle sous Autocad 2017? Merci www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas
(gile) Posté(e) le 2 août 2016 Auteur Posté(e) le 2 août 2016 Salut, Je viens de mettre à jour le téléchargement dans le premier message (penser à nettoyer le cache en régénérant la page). Pour AutoCAD 2017, le SP1 a introduit un bug qui cause des dysfonctionnements avec le mécanisme Autoloader (celui-là même qu'Autodesk préconise). Donc si le SP1 est installé, il faut aussi probablement installer le hotfix qui corrige ce bug.Voir ce sujet. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
La Lozère Posté(e) le 2 août 2016 Posté(e) le 2 août 2016 Parfait. Merci (gile). www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas
LUDWIG Posté(e) le 11 septembre 2017 Posté(e) le 11 septembre 2017 Bonjour (Gile) J'ai essayé d'installé LOCKOSNAP sur 2018 et après avoir bataillé un peu, je crois que j'y suis arrivé, donc je partage : - copie des éléments dans C:\ProgramData\Autodesk\ApplicationPlugins\Gile_LockOsnap.bundle- débloquage du fichier XML (clic droit, onglet général, débloquer)- j'ai "approuvé" le répertoire et sous répertoire dans autocad- J'ai édité le fichier PackageContents.XML avec SeriesMax="R22.0" pour l'utilisation de LockOsnap_19.dll <?xml version="1.0" encoding="utf-8"?> <ApplicationPackage SchemaVersion="1.0" AppVersion="1.0.0" Author="Gilles Chanteau" ProductCode="{571BB84F-1A52-45EF-8147-04D88D67DB54}" UpgradeCode="{4478325A-CE28-4075-B0BB-DA468D25C266}" Name="LockOsnap" AppDescription="Activer ou désactiver les accrochages aux objets sur les calques verrouillés et/ou sur les xrefs."> <CompanyDetails Name="Gilles Chanteau" courriel="gilecad@orange.fr" url="http://gilecad.azurewebsites.net" /> <Components Description="2012 parts"> <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R18.2" SeriesMax="R18.2" /> <ComponentEntry AppName="LockOsnap" Version="1.0.0" ModuleName="./Contents/LockOsnap_18.dll" AppDescription="Activer ou désactiver les accrochages aux objets sur les calques verrouillés et/ou sur les xrefs." LoadOnCommandInvocation="True"> <Commands> <Command Global="LOKO" /> <Command Global="XROS" /> </Commands> </ComponentEntry> </Components> <Components Description="2013 to 2017 parts"> <RuntimeRequirements OS="Win32|Win64" Platform="AutoCAD|AutoCAD*" SeriesMin="R19.0" SeriesMax="R22.0" /> <ComponentEntry AppName="LockOsnap" Version="1.0.0" ModuleName="./Contents/LockOsnap_19.dll" AppDescription="Activer ou désactiver les accrochages aux objets sur les calques verrouillés et/ou sur les xrefs." LoadOnCommandInvocation="True"> <Commands> <Command Global="LOKO" /> <Command Global="XROS" /> </Commands> </ComponentEntry> </Components> </ApplicationPackage> Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 11 septembre 2017 Auteur Posté(e) le 11 septembre 2017 Salut, Bravo et merci d'avoir signalé le problème.Le nouveau téléchargement est à jour pour A2018 maintenant. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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