Aller au contenu

Restauration des états de calques en C#


Messages recommandés

Bonjour,

 

je m'énerve depuis hier sur la restauration des états de calques par fenêtre dans les présentations en .Net.

 

Je suis l'exemple fourni dans la doc .net


using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;

[CommandMethod("RestoreLayerState")]
public static void RestoreLayerState()
{
   // Get the current document
   Document acDoc = Application.DocumentManager.MdiActiveDocument;

   LayerStateManager acLyrStMan;
   acLyrStMan = acDoc.Database.LayerStateManager;

   string sLyrStName = "ColorLinetype";

   if (acLyrStMan.HasLayerState(sLyrStName) == true)
   {
       acLyrStMan.RestoreLayerState(sLyrStName,
                                	ObjectId.Null,
                                	1,
                                	LayerStateMasks.Color |
                                	LayerStateMasks.LineType);
   }
}

 

 

A prori le 2ème argument est l'id de la viewport dans laquelle on souhaite restaurer l'état de calque nommé, extrait de l'aide :

"The first value is the name of the layer state to restore, and the second value is the object id of the viewport whose layer settings you want to restore." Cependant le code précédent fait apparaître un ObjectId null en tant que paramètre.

Moi je l'ai remplacé par l'objectid de ma fenêtre, mais rien n'y fait. L'état de calque est restauré dans la viewport courante. C'est à dire que si je suis sur l'onglet Objet, l'état est restauré dans mon espace objet, si je suis sur un onglet de présentation, l'état de calque est restauré dans la viewport "Espace papier" , mais pas dans l'objet Viewport dessiné. Ceci confirmerait que le second paramètre ne sert à rien et n'a pas été implémenté dans l'API (ObjectId.null). ce qui est fort dommage.angry.gif

 

Est-ce que quelqu'un s'est déjà attaqué avec succès à la restauration d'un état de calque via le LayerStateManager?

 

Merci

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines aprè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 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é