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

15/06/2019

Как управлять установками GRAPHICSCONFIG при помощи .NET

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

Вот пример для включения сглаживания линий (LineSmoothing)

Код - 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 =
  23.             new Autodesk.AutoCAD.GraphicsSystem.Configuration())
  24.     {
  25.         if (!config.IsHardwareAccelerationAvailable())
  26.         {
  27.             Application.ShowAlertDialog("Проверьте вашу видео карту ");
  28.             return;
  29.         }
  30.         // Если аппаратное ускорение не включено - включим его.
  31.         if (!config.IsHardwareAccelerationEnabled())
  32.         {
  33.             config.setHardwareAcceleration(true);
  34.         }
  35.         foreach (EffectStatus effStatus in config.GetEffectList(EffectListType.kEL_Current))
  36.         {
  37.             var effectName = effStatus.EffectName;
  38.             var unqString = effStatus.EffectUniqueString;
  39.             int featureLevel = effStatus.FeatureLevel;
  40.             var isEnabled = effStatus.Enabled;
  41.             ed.WriteMessage($"\n{effectName}\t{featureLevel}\t{isEnabled}");
  42.         }
  43.         // Включаем сглаживание линий (LineSmoothing)
  44.         UniqueString featureString = UniqueString.Intern("ACAD_LineSmoothing");
  45.         if (config.IsFeatureAvailable(featureString))
  46.         {
  47.             if (!config.IsFeatureEnabled(featureString))
  48.                 config.SetFeatureEnabled(featureString, true);
  49.  
  50.         }
  51.     }
  52. }

 

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

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

Обсуждение: http://adn-cis.org/forum/index.php?topic=

Опубликовано 15.06.2019