ObjectARX, AutoCAD. Среда программирования библиотеки C++



         

Формирование Иерархии Монопольных использований


Следующий пример иллюстрирует, как формировать иерархию монопольных использований, используя функции ObjectARX. Пример показывает заголовку и исходным файлам для нового класса, OwnerDemo, который иллюстрирует, как создать дерево монопольных использований. Этот класс имеет два компонента данных, простое целое число, чтобы представить нормальные данные, и жесткое монопольное использование компонент данных ИДЕНТИФИКАТОРА, чтобы провести{*держать*} объект ID находящегося в собственности объекта. Функции

Обеспечиваются для получения и установки значений обоих компонентов данных.

Пример также отменяет четыре требуемых виртуальных функции:

dwgInFields(), dwgOutFields(), dxfInFields(), и  dxfOutFields().

Иерархия монопольных использований установлена в createObjs () подпрограмма к концу примера. Объект имеет объект B. Объект B имеет объект C. Объект добавлен к словарю (ASDK_DICT) в названном объектном словаре. printOut() и listTree () подпрограммы печатает информацию относительно объектов в ASDK_DICT словаре.

ObjectARX Example

// Class declarations

//

class AsdkOwnerDemo : public AcDbObject

// This is a custom object class to demonstrate what is

// necessary to create ownership trees.

//

// To keep it simple, this class has two data members: a

// simple integer to represent normal data, and a hard

// ownership ID data member to hold the object ID of an owned

// object.

//

// Get and set functions are provided for both data members.

//

{

public:

ACRX_DECLARE_MEMBERS(AsdkOwnerDemo);

AsdkOwnerDemo(): mIntval(0) {};

AsdkOwnerDemo(const Adesk::Int16& val): mIntval(val) {};

Adesk::Int16 intData();

Acad::ErrorStatus setIntData(const Adesk::Int16&);

AcDbHardOwnershipId idData();

Acad::ErrorStatus setIdData(const AcDbHardOwnershipId&);

Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);

Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;

Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);

Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;




Содержание  Назад  Вперед