Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Je commence à développer mon petit projet.

Je voulais savoir si il est possible d'avoir 2 "assembly" dans un plugin (.dll) ?

 

Dans mon projet sous Visual Studio, j'ai :

myCommands.cs

[assembly: CommandClass(typeof(Test.Commands))]

 

myPlugin.cs

[assembly: ExtensionApplication(typeof(Test.Plugin))]

 

Pourquoi cette question ? Bin car :

  • Mon bundle est bien chargé car mon ruban partiel est convenablement chargé
  • La partie "ExtensionApplication" est chargée car je viens de régler mon problème d'Erreur fatale en commentant une ligne de code :D
  • En cliquant sur un bouton de mon ruban, la commande associée est introuvable ; je l'ai déclaré dans mon bundle

 

J'ai également défini un préfixe ObjectARX que j'ai retiré dans les sources :P

 

PackageContents.xml

<?xml version="1.0" encoding="utf-8" ?> 
<ApplicationPackage SchemaVersion="1.0" ProductType="Application" 
                   Name="Test" AppVersion="0.0.1" 
                   Description="Test Plugin" Author="Daiz" 
                   Icon="./Contents/TestIcon_32.bmp" OnlineDocumentation="http://<site>" 
                   HelpFile="./Contents/Test.html" ProductCode="<GUID>" UpgradeCode=" ">
 <CompanyDetails Name="<Company Name>" Phone=" " 
                   Url="<site>" 
                   courriel="<courriel>"/>
 <Components>
   <RuntimeRequirements SupportPath="./Contents" OS="Win32" SeriesMin="R20" SeriesMax="R20"/>
   <ComponentEntry AppName="Test" ModuleName="./Contents/Test.dll" AppDescription="Test Plugin" LoadOnAutoCADStartup="True">
     <Commands GroupName="<GROUPNAME>">
       <Command Local="<CMDNAME>" Global="<GROUPNAME>_<CMDNAME>"/>
     </Commands>
   </ComponentEntry>
   <ComponentEntry AppName="TestCUI" ModuleName="./Contents/TestPluginCUI.cuix" LoadOnAutoCADStartup="True" />
 </Components>
</ApplicationPackage>

Posté(e)

Salut,

 

Tout d'abord, qu'on soit bien d'accord sur le vocabulaire, en jargon .NET, un assembly représente une DLL (ou un EXE) ce qui correspond à un projet Visual Studio.

Le projet peut contenir plusieurs fichiers de code source .cs (une convention voudrait un fichier par classe, mais il est tout à fait possible de définir plusieurs classes dans un même fichier).

 

Concernant ton problème, avant d'utiliser le bundle pour le chargement automatique, as-tu testé ton code en le lançant depuis Visual studio ?

L'initialisation et la commande fonctionnent-elle bien dans ce contexte ?

Si ce n'est pas le cas, débogue ton code avant de t'occuper de CUIX et de chargement automatique.

 

Ensuite, à propos du bundle, tu peux déjà supprimer le noeud du fichier PackageContents.xml. Ce noeud n'est utile que si on utilise LoadOnCommandInvocation="True".

 

Sinon, as tu essayé de lancer la commande en entrant son nom ?

Si elle démarre depuis la ligne de commande et pas depuis le ruban, le problème vient du CUIX.

  • Upvote 1

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

Posté(e)

(gile), tes explications sont limpides :) Merci

 

J'ai donc défini 3 projets sous Visual Studio

 

PackageContents.xml

<?xml version="1.0" encoding="utf-8" ?>
<ApplicationPackage SchemaVersion="1.0" ProductType="Application"
                   Name="Test" AppVersion="0.0.1"
                   Description="Test Plugin" Author="Daiz"
                   Icon="./Contents/TestIcon_32.bmp" OnlineDocumentation="http://<site>"
                   HelpFile="./Contents/Test.html" ProductCode="<GUID>" UpgradeCode=" ">
 <CompanyDetails Name="<company>" Phone=" "
                   Url="<site>"
                   courriel="<mail>"/>
 <Components>
   <RuntimeRequirements SupportPath="./Contents" OS="Win32" SeriesMin="R20" SeriesMax="R20"/>
   <ComponentEntry AppName="TestCommands" ModuleName="./Contents/TestCommands.dll" AppDescription="Test Plugin" LoadOnInvocation="True">
     <Commands GroupName="<group>">
       <Command Local="ARDBOARD" Global="<prefix>_ARDBOARD"/>
       <Command Local="ARD_NEW" Global="<prefix>_ARD_NEW"/>
       <Command Local="ARD_PUBLISH" Global="<prefix>_ARD_PUBLISH"/>
     </Commands>
   </ComponentEntry>
   <ComponentEntry AppName="TestApplication" ModuleName="./Contents/TestApplication.dll" LoadOnAutoCADStartup="True" />
   <ComponentEntry AppName="Commons" ModuleName="./Contents/Commons.dll" LoadOnAutoCADStartup="True" />
   <ComponentEntry AppName="TestCUI" ModuleName="./Contents/TestPluginCUI.cuix" LoadOnAutoCADStartup="True" />
 </Components>
</ApplicationPackage>

 

J'y avais codé l'ouverture d'une fenêtre non DWG telle que décrite sur AutoCAD DevBlog et ça fonctionne à présent. Dès que je clique sur cette fenêtre le ruban se désactive pour information

 

J'ai plus qu'à attaquer mon UserControl :D

 

Merci

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é