CADEditorX. Начало работы

Стандартный интерфейс CADEditorX:

Стандартный интерфейс CADEditorX

  1. Скачайте CADEditorX нужной версии: 32bit или 64bit
  2. Установите программу
  3. Для регистрации элемента управления в системе в командной строке Windows выполните:
    regsvr32 <полный путь к библиотеке CADEditorLib.ocx>

    Например, для регистрации CADEditorX 64bit в операционной системе Windows 7 64-bit следует выполнить:

    regsvr32 "c:\Program Files\CADSoftTools\CADEditorX 11\CADEditorLib.ocx"

    Примечание: регистрация компонента CADEditorLib.ocx в системе выполняется на этапе установки. Ручная регистрация компонента в системе может понадобиться, если вы тестируете разные версии CADEditorX. Подробнее о служебной программе Regsvr32 можно узнать по ссылке: https://support.microsoft.com/ru-ru/kb/249873

  4. Из меню Пуск запустите демо-приложение XML IDE. Это приложение позволит ознакомиться с возможностями CADEditorX и предоставляет доступ к большому количеству примеров XML.
    Окно XML IDE
  5. В списке примеров слева выберите пример Add.xml и нажмите кнопку Execute XML.
  6. В результате выполнения XML из примера Add.xml было добавлено два объекта: текст CADSoftTools и горизонтальная линия длиной 10.
    Результат выполнения XML-примера Add.xml
  7. Создание текста, линии и других объектов также можно выполнить непосредственно при помощи инструментов построения, встроенных в элемент управления CADEditorX. Например, выберите инструмент "Линия" и добавьте ее в нужное место чертежа при помощи мыши.
  8. Откройте демо-проекты, в которых продемонстрировано как запускать наиболее распространенные команды
    Delphi demo CADEditorX

Как обрабатывать XML

Программное взаимодействие с элементом управления CADEditorX основано на использовании одной функции ProcessXML и одного события OnProcess.

Функция ProcessXML

Функция ProcessXML используется для обработки XML-инструкций. Она принимает входной XML в качестве аргумента, обрабатывает его и возвращает результат выполнения в XML формате. Примеры XML-инструкций представлены в демо-приложении XML IDE.

Синтаксис:

Delphi
function ProcessXML(const AInput: WideString): WideString

C#
public string ProcessXML(string AInput)

VB.NET
Public Function ProcessXML(aInput As String) As String

C++
BSTR ProcessXML(BSTR AInput)

JScript
public function ProcessXML(AInput : String) : String

AInput - входной XML документ; возвращаемое значение - XML-документ, который содержит некоторые входные данные.

Пример на C#:

private void button1_Click(object sender, EventArgs e)
{
  string command ="<?xml version =\"1.0\" encoding=\"utf-8\"?><cadsofttools version =\"2\">" +
                  "<command text =\"HideAllInterface\"/>" +
                  "</cadsofttools>";
  Process(command);
}    
 
private void Process(string arg)
{
  string result = axSgCADEditor1.ProcessXML(arg);
  label1.Text = result;
}

Событие OnProcess

Событие OnProcess срабатывает в следующих случаях:

  • в конце выполнения функции ProcessXML
  • при срабатывании одного из внутренних событий CADEditorX в случае если внутреннее событие было активировано ранее (была выполнена "подписка" на событие).

Это делает событие OnProcess полезным для обработки данных, возвращаемых в виде XML.

Синтаксис:

Delphi
property OnProcess = procedure(ASender: TObject; const AXML: WideString) of object

C#
public event AxCADEditorLib.ISgCADEditorEvents_OnProcessEventHandler OnProcess
public delegate void ISgCADEditorEvents_OnProcessEventHandler(object ASender,AxCADEditorLib.ISgCADEditorEvents_OnProcessEvent e)

VB.NET
Public Event OnProcess(ByVal aSender As Object, ByVal e As AxCADEditorLib.ISgCADEditorEvents_OnProcessEvent)

C++
public IDispEventSimpleImpl<1, CCADEditorXEvents, &__uuidof(CADEditorLib::ISgCADEditorEvents)>

JScript
public event OnProcess(ASender : Object, AXML: String)

ASender – контрол, предоставляющий данные; AXML – XML-документ, содержащий выходные данные.

Пример на C#:

public Form1()
{
    InitializeComponent();
    axSgCADEditor1.OnProcess += new AxCADEditorLib.ISgCADEditorEvents_OnProcessEventHandler(axSgCADEditor1_OnProcess);
}

private void axSgCADEditor1_OnProcess(object sender, AxCADEditorLib.ISgCADEditorEvents_OnProcessEvent e)
{
    label2.Text = e.aXML;
}

private void button2_Click(object sender, EventArgs e)
{
    string sMouseDown = "<?xml version =\"1.0\" encoding=\"UTF-8\"?><cadsofttools version =\"2\">" +
                        "<signtoevent Event =\"OnMouseDown\" Enabled =\"True\"/>" +
                        "</cadsofttools>";            
    Process(sMouseDown);

// Событие OnMouseDown - внутреннее событие CADEditorX

}

Для выполнения сложных задач с помощью CAD XML API рекомендуется использовать XML-анализатор для обработки выходного XML. Существует большое количество XML парсеров для всех популярных языков программирования. MicrosoftWindows имеет технологию DOM для обработки XML, которая является довольно мощной, но медленной. Также имеется большое количество простых и быстрых парсеров XML, которые предложены в качестве OpenSource для многих языков программирования.