06/03/2015
Получение информации обо всех системных переменных .NET
В AutoCAD 2015 появилось новое API для получения системных переменных – AcEdSysVarIterator в ObjectARX и SystemVariableEnumerator в AutoCAD .
Как использовать AcEdSysVarIterator мы показали в предыдущей статье. Здесь мы покажем как тоже самое можно сделать при помощи AutoCAD .NET API:
Код - C#: [Выделить]
- using System;
- using System.Runtime.InteropServices;
- using System.Reflection;
- using Autodesk.AutoCAD.Runtime;
- using Autodesk.AutoCAD.ApplicationServices;
- using Autodesk.AutoCAD.DatabaseServices;
- using Autodesk.AutoCAD.Geometry;
- using Autodesk.AutoCAD.EditorInput;
- using AcRx = Autodesk.AutoCAD.Runtime;
- using AcAp = Autodesk.AutoCAD.ApplicationServices;
- using AcDb = Autodesk.AutoCAD.DatabaseServices;
- using AcGe = Autodesk.AutoCAD.Geometry;
- using AcEd = Autodesk.AutoCAD.EditorInput;
- [assembly: CommandClass(typeof(Rivilis.SysVars))]
- namespace Rivilis
- {
- public class SysVars
- {
- [CommandMethod("EnumVars")]
- public void EnumVars()
- {
- AcEd.Editor ed = AcAp.Application.DocumentManager.MdiActiveDocument.Editor;
- using (AcRx.SystemVariableEnumerator iter = new AcRx.SystemVariableEnumerator())
- {
- iter.Reset(); // Устанавливаем в начало
- ed.WriteMessage("\n******** Информация о системной переменной *************");
- while (iter.MoveNext())
- {
- AcRx.Variable v = iter.Current;
- ed.WriteMessage("\nИмя переменной: {0}", v.Name);
- switch (v.Storage)
- {
- case AcRx.Variable.StorageType.PerSession:
- ed.WriteMessage("\nТип хранения: Приложение, не сохраняется");
- break;
- case AcRx.Variable.StorageType.PerUser:
- ed.WriteMessage("\nТип хранения: Приложение, сохраняется для каждого пользователя");
- break;
- case AcRx.Variable.StorageType.PerProfile:
- ed.WriteMessage("\nТип хранения: Приложение, сохраняется в каждом профиле");
- break;
- case AcRx.Variable.StorageType.PerDatabase:
- ed.WriteMessage("\nТип хранения: Чертеж");
- break;
- case AcRx.Variable.StorageType.PerViewport:
- ed.WriteMessage("\nТип хранения: Для каждого вида в чертеже");
- break;
- }
- ed.WriteMessage("\nТип переменной: {0}", v.PrimaryType);
- ed.WriteMessage("\nФлаги: {0}", v.TypeFlags);
- if (v.Range != null)
- {
- ed.WriteMessage("\nДиапазон: от {0} до {1}", v.Range.LowerBound, v.Range.UpperBound);
- }
- // ed.WriteMessage("\nЗначение переменной: {0}", v.Value); // <- В AutoCAD 2015 не реализовано
- ed.WriteMessage("\nВторичный тип: {0}", v.SecondaryType);
- }
- }
- }
- }
- }
Информация о системных переменных в командной строке:
Автор: Александр Ривилис
Автор перевода: Александр Ривилис
Отредактировано 07.03.2015 в 14:09:02
Автор перевода: Александр Ривилис
Обсуждение: http://adn-cis.org/forum/index.php?topic=1913
Опубликовано 06.03.2015Отредактировано 07.03.2015 в 14:09:02