28/07/2019
Как изменить установки ГРАФИКАНАСТР при помощи .NET
Вам следует использовать GraphicsSystem.Configuration API для включения и выключения различных эффектов графической системы.
Вот пример включения «Сглаживания линий»:
Код - C#: [Выделить]
- public string[] FeatureName = {
- "ACAD_Configlevel",
- "ACAD_2DRetainModeLevel",
- "ACAD_HQGeom",
- "ACAD_PerPixelLighting",
- "ACAD_AdvancedMaterial",
- "ACAD_FullShadows",
- "ACAD_TextureCompression",
- "ACAD_LineSmoothing",
- "ACAD_LineFading",
- "ACAD_GlowHighlighting",
- "ACAD_2DRetainMode",
- "ACAD_GPULineType",
- "ACAD_GPUHatch"
- };
- [CommandMethod("GSTEST")]
- public void GsConfigTest()
- {
- Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
- using (Autodesk.AutoCAD.GraphicsSystem.Configuration config = new Autodesk.AutoCAD.GraphicsSystem.Configuration())
- {
- if (!config.IsHardwareAccelerationAvailable())
- {
- Application.ShowAlertDialog("Проверьте вашу видеокарту");
- return;
- }
- // Если аппаратное ускорение доступно, включим его.
- if (!config.IsHardwareAccelerationEnabled())
- {
- config.setHardwareAcceleration(true);
- }
- foreach (EffectStatus effStatus in config.GetEffectList(EffectListType.kEL_Current))
- {
- var effectName = effStatus.EffectName;
- var unqString = effStatus.EffectUniqueString;
- int featureLevel = effStatus.FeatureLevel;
- var isEnabled = effStatus.Enabled;
- ed.WriteMessage($"\n{effectName}\t{featureLevel}\t{isEnabled}");
- }
- // Включаем "Сглаживание линий"
- UniqueString featureString = UniqueString.Intern("ACAD_LineSmoothing");
- if (config.IsFeatureAvailable(featureString))
- {
- if (!config.IsFeatureEnabled(featureString))
- config.SetFeatureEnabled(featureString, true);
- }
- }
- }
Источник: https://adndevblog.typepad.com/autocad/2019/06/how-to-set-the-graphicsconfig-setting-with-net.html
Автор перевода: Александр Ривилис
Обсуждение: http://adn-cis.org/forum/index.php?topic=
Опубликовано 28.07.2019