Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 11/04/2024 dans toutes les zones

  1. Je viens de trouver la version 2005 sur les internet autocad-2005-customization-guide.pdf
    2 points
  2. Salut, Je vais essayer de faire ici la synthèse de ce que j'ai pu dire ici ou là pour automatiser le chargement des DLLs .NET pour AutoCAD. Préambule Dans tous les cas (excepté l'utilisation de la technique AutoLoader), si la DLL n'est pas placée dans un répertoire des chemins de support il est nécessaire de spécifier le chemin complet. Dans les exemples suivants, on considèrera que le fichier : "SuperApplication.DLL" est dans un répertoire des chemins de support. Pour AutoCAD 2014 (et plus probablement), il faut aussi ajouter le chemin du répertoire dans les Emplacements approuvés (commande Options... > Fichiers ou variable TRUSTEDPATHS). Si le chemin du dossier se termine par "\...", tous ses sous-dossiers sont également approuvé. Le dossier d'installation AutoCAD et les dossiers de plug-ins (voir Autoloader plus bas), ainsi que tous leurs sous-dossiers, sont toujours implicitement approuvés. Les applications .NET n'ont pas besoin d'être chargées pour chaque document (comme les applications AutoLISP). Utilisation du fichier "acad.lsp" Un fichier nommé "acad.lsp" (à créer s'il n'existe pas) placé dans les chemins de support est automatiquement chargé et exécuté au démarrage d'AutoCAD. Il suffit donc d'ajouter à ce fichier une expression LISP qui charge la DLL avec la commande NETLOAD : (command "netload" "SuperApplication.dll") Utilisation de la base de registre Il est possible d'automatiser le chargement d'une DLL .NET en créant quelques clés dans la base de registre. Cette méthode permet une exécution plus rapide et plus silencieuse du chargement et aussi de pouvoir ne charger l'application qu'au premier appel d'une commande qui y est définie (un peu comme la fonction LISP autoload). Dans les deux cas, si les clés sont créées dans HKEY_CURRENT_USER le chargement ne se fera que pour l'utilisateur, si elles sont créées dans HKEY_LOCAL_MACHINE (droit d'administrateur requis) le chargement se fera pour tous les utilisateurs. Pour charger l'application systématiquement au démarrage. Créer une clé dans : "HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\\\Applications" avec le nom de l'application (SuperApplication, par exemple). Ajouter 4 valeurs das cette clé : DESCRIPTION (valeur chaîne) : une description de l'application LOADCTRLS (valeur DWORD) : 2 dans ce cas LOADER (valeur chaîne) : le nom du fichier (éventuellement le chemin complet) MANAGED (valeur DWORD) : toujours 1 pour les applications .NET On peut utiliser la routine LISP suivante pour créer la clé dans HKEY_CURRENT_USER ;;; 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) (defun NetStartupAutoLoad (key descr filename / fullpath) (vl-load-com) (if (setq fullpath (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 fullpath 1) ) (princ (strcat "\nLe fichier \"" filename "\" est introuvable")) ) ) Exemple : (NetStartupAutoLoad "SuperApplication" "Fait plein de supers trucs dans AutoCAD" "SuperApplication.dll" ) Utilisation du mécanisme Autoloader Depuis AutoCAD 2012, il est possible d'utiliser une nouvelle technique de chargement automatique des applications .NET (mais aussi LISP ou ObjectARX). Cette technique facilite grandement le déploiement d'applications elle est recommandée par Autodesk qui l'utilise pour les applications d'Exchange Apps Store. La variable système APPAUTOLOAD gère la manière dont les plug-ins sont chargés. Elle doit avoir le code binaire 2 actif pour que les plug-ins soient chargés au démarrage (défaut 14 = 8 + 4 +2). Il s'agit d'un dossier avec l'extension : .bundle qui doit être placé dans un des répertoires suivant (les chemins sont spécifié avec les variables d'environnement Windows, il suffit de les copier dans la barre d'adresse de l'explorer quel que soit l'OS -XP, 7 ou 8-). Pour désinstaller l'application, il suffit de supprimer le dossier.bundle. Pour l'utilisateur courant : %appdata%\Autodesk\ApplicationPlugins\ [*]Pour tous les utilisateurs : %allusersprofile%\Autodesk\ApplicationPlugins\ %programdata%\Autodesk\ApplicationPlugins\ (Windows 7 ou 8) %programfiles%\Autodesk\ApplicationPlugins\ Le dossier .bundle doit contenir un fichier PackageContents.xml et tous les fichiers nécessaires à l'application (ceux-ci peuvent être répartis dans différents sous-dossiers). Le fichier PackageContents.xml est un fichier XML qui désigne les différents composants de l'application et décrit comment l'application est chargée. Ce fichier doit contenir les nœuds suivants : ApplicationPackage CompanyDetails (facultatif) Components RuntimeRequirements ComponentEntry (un noeud par composant) Exemple pour un dossier .bundle de base : Le dossier SuperApplication.bundle contient le fichier PackageContents.xml le sous-dossier Contents qui contient le fichier SuperApplication.dll le sous-dossier Help qui contient un fichier d'aide SuperApplicationHelp.html Le fichier PackageContents.xml - dans le nœud ApplicationPackage, l'attribut ProductCode doit être un GUID unique (il y a un générateur de GUID dans les outils de Visual Studio et de nombreux autres sur le net) - dans le nœud RuntimeRequirement, l'attribut SupportPath permet d'ajouter le dossier .\Help\ aux chemins de recherche. <?xml version="1.0" encoding="utf-8" ?> <ApplicationPackage SchemaVersion="1.0" AppVersion="1.0" Author="SuperMan" ProductCode="{Ajouter un GUID unique ici}" Name="Super Application" > <CompanyDetails Name="SuperMan, Inc." /> <Components> <RuntimeRequirements SupportPath="./Help"/> <ComponentEntry AppName="SuperApplication" ModuleName="./Contents/SuperApplication.dll" /> </Components> </ApplicationPackage> Pour plus de renseignements sur le mécanisme Autoloader, voir l'aide : A2012 : Guide de personnalisation > Introduction aux interfaces de programmation > Installer et désinstaller des applications plug-in A2013/2014 (et tant qu'on ne retrouvera pas de table des matières dans l'aide...) Rechercher : ApplicationPlugins
    1 point
  3. Coucou, Je n'aurais pas le temps de m'en occuper rapidement, mais je vais voir ce qu'il est possible de faire. En effet, rajouter un attribut Altitude_Fe me semble être la meilleure solution (car aucune perte d'information et/ou risque d'erreur !), mais dans ce cas, il faudrait que tu t'occupes de mettre à jour tes blocs pour le prendre en compte (envoi d'un .dwg corrigé ?). Pour la largeur globale, c'est impossible car tes réseaux sont des polylignes 3D or cette propriété n'existe que pour des polylignes 2D. Bisous, Luna
    1 point
×
×
  • 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é