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

11/02/2014

Использование стандартных диалогов AutoCAD для выбора цвета, типа линии, веса линии в .NET

AutoCAD имеет ряд удобных диалоговых окон, доступных в пространстве имен "Autodesk.AutoCAD.Windows". Следующий код показывает, как использовать три из них, в частности: ColorDialog, LinetypeDialog и LineWeightDialog. Эти три класса позволяют очень легко реализовать пользовательский интерфейс выбора соответствующих свойств.

Вот C# код:

Код - C#: [Выделить]
  1. using Autodesk.AutoCAD.Runtime;
  2. using Autodesk.AutoCAD.ApplicationServices;
  3. using Autodesk.AutoCAD.DatabaseServices;
  4. using Autodesk.AutoCAD.EditorInput;
  5. using Autodesk.AutoCAD.Windows;
  6.  
  7. namespace AutoCADDialogs
  8. {
  9.   public class Commands
  10.   {
  11.     [CommandMethod("CDL")]
  12.     public void ShowColorDialog()
  13.     {
  14.       Document doc =
  15.         Application.DocumentManager.MdiActiveDocument;
  16.       Database db = doc.Database;
  17.       Editor ed = doc.Editor;
  18.  
  19.       ColorDialog cd = new ColorDialog();
  20.       System.Windows.Forms.DialogResult dr =
  21.         cd.ShowDialog();
  22.       if (dr == System.Windows.Forms.DialogResult.OK)
  23.       {
  24.         ed.WriteMessage(
  25.           "\nВыбран цвет: " +
  26.           cd.Color.ToString()
  27.         );
  28.       }
  29.     }
  30.  
  31.     [CommandMethod("LTDL")]
  32.     public void ShowLinetypeDialog()
  33.     {
  34.       Document doc =
  35.         Application.DocumentManager.MdiActiveDocument;
  36.       Database db = doc.Database;
  37.       Editor ed = doc.Editor;
  38.  
  39.       LinetypeDialog ltd = new LinetypeDialog();
  40.       System.Windows.Forms.DialogResult dr =
  41.         ltd.ShowDialog();
  42.       if (dr == System.Windows.Forms.DialogResult.OK)
  43.       {
  44.         ed.WriteMessage(
  45.           "\nВыбран тип линии: " +
  46.           ltd.Linetype.ToString()
  47.         );
  48.       }
  49.     }
  50.  
  51.     [CommandMethod("LWDL")]
  52.     public void ShowLineWeightDialog()
  53.     {
  54.       Document doc =
  55.         Application.DocumentManager.MdiActiveDocument;
  56.       Database db = doc.Database;
  57.       Editor ed = doc.Editor;
  58.  
  59.       LineWeightDialog lwd = new LineWeightDialog();
  60.       System.Windows.Forms.DialogResult dr =
  61.         lwd.ShowDialog();
  62.       if (dr == System.Windows.Forms.DialogResult.OK)
  63.       {
  64.         ed.WriteMessage(
  65.           "\nВыбран вес линии: " +
  66.           lwd.LineWeight.ToString()
  67.         );
  68.       }
  69.     }
  70.   }
  71. }

Когда запущена команда CDL, у нас есть три доступных вкладки:

 


А вот диалог, который появится при запуске команды LTDL:

 

И для команды LWDL:

 

А вот что будет в командной строке:

Команда: CDL
Выбран цвет: 91
Command: CDL
Выбран цвет: 56,166,199
Команда: CDL
Выбран цвет: DIC 266
Команда: LTDL
Выбран тип линии: (2130316464)
Команда: LWDL
Выбран вес линии: LineWeight009

В следующей статье мы посмотри как использовать эти диалоги для задания свойств примитивам.

Источник: http://through-the-interface.typepad.com/through_the_interface/2008/02/using-standard.html

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

Опубликовано 11.02.2014
Отредактировано 11.02.2014 в 17:14:06