ADN Open CIS
Сообщество программистов Autodesk в СНГ

28/07/2019

Как изменить установки ГРАФИКАНАСТР при помощи .NET

Вам следует использовать GraphicsSystem.Configuration API для включения и выключения различных эффектов графической системы.

Вот пример включения «Сглаживания линий»:

Код - C#: [Выделить]
  1. public string[] FeatureName = {
  2.  
  3.    "ACAD_Configlevel",
  4.    "ACAD_2DRetainModeLevel",
  5.    "ACAD_HQGeom",
  6.    "ACAD_PerPixelLighting",
  7.    "ACAD_AdvancedMaterial",
  8.    "ACAD_FullShadows",
  9.    "ACAD_TextureCompression",
  10.    "ACAD_LineSmoothing",
  11.    "ACAD_LineFading",
  12.    "ACAD_GlowHighlighting",
  13.    "ACAD_2DRetainMode",
  14.    "ACAD_GPULineType",
  15.    "ACAD_GPUHatch"
  16. };
  17.  
  18. [CommandMethod("GSTEST")]
  19. public void GsConfigTest()
  20. {
  21.     Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  22.     using (Autodesk.AutoCAD.GraphicsSystem.Configuration config = new Autodesk.AutoCAD.GraphicsSystem.Configuration())
  23.     {
  24.         if (!config.IsHardwareAccelerationAvailable())
  25.         {
  26.             Application.ShowAlertDialog("Проверьте вашу видеокарту");
  27.             return;
  28.         }
  29.         // Если аппаратное ускорение доступно, включим его.
  30.         if (!config.IsHardwareAccelerationEnabled())
  31.         {
  32.             config.setHardwareAcceleration(true);
  33.         }
  34.         foreach (EffectStatus effStatus in config.GetEffectList(EffectListType.kEL_Current))
  35.         {
  36.             var effectName = effStatus.EffectName;
  37.             var unqString = effStatus.EffectUniqueString;
  38.             int featureLevel = effStatus.FeatureLevel;
  39.             var isEnabled = effStatus.Enabled;
  40.             ed.WriteMessage($"\n{effectName}\t{featureLevel}\t{isEnabled}");
  41.         }
  42.         // Включаем "Сглаживание линий"
  43.         UniqueString featureString = UniqueString.Intern("ACAD_LineSmoothing");
  44.         if (config.IsFeatureAvailable(featureString))
  45.         {
  46.             if (!config.IsFeatureEnabled(featureString))
  47.                 config.SetFeatureEnabled(featureString, true);
  48.  
  49.         }
  50.     }
  51. }

Источник: https://adndevblog.typepad.com/autocad/2019/06/how-to-set-the-graphicsconfig-setting-with-net.html

 

Автор перевода: Александр Ривилис
Опубликовано 28.07.2019