ЛАБОРАТОРНАЯ РАБОТА №18

«Разработка прикладных библиотек КОМПАС

в Visual Studio. Модель документа КОМПАС»

Тема: Модель графического документа КОМПАС.

Цель работы: ознакомление с основными типами документов КОМПАС. В работе рассматривается структура документа, операции с файлами документов, операции с видами и со слоями, а также рассматриваются группы элементов чертежа и работа с именованной группой.

Лабораторная работа выполняется в операционной системе Windows ХР/200х/7 с использованием интегрированной инструментальной системы программирования Visual Studio и системы автоматизированного проектирования конструкторской и технологической документации KOMПAC-3D.

1. ТЕОРЕТИЧЕСКМЕ СВЕДЕНИЯ

Основными подсистемами КОМПАС являются чертежно-конструкторский редактор КОМПАС-ГРАФИК и редактор трехмерных твердотельных моделей КОМПAC-3D. Вес подсистемы объединены в единой программной среде с общим пользовательским интерфейсом.

К графическим документам в КОМПАС принято относить листы чертежа и фрагменты. Эти документы обрабатываются подсистемой КОМПАС-ГРАФИК - с ее помощью пользователь в интерактивном режиме добавляет в документ геометриче­ские элементы, редактирует или удаляет их. Кроме геометрических элементов, на листе чертежа могут располагаться элементы оформления (например, штамп и технические требования).

На чертежах сложных изделий количество элементов может быть очень много, но конструктор обычно может выполнить логическое объединение этих элементов в более крупные совокупности (например, детали или их части). Может быть удобно рассматривать эти совокупности элементов как самостоятельные компоненты чертежа - например, чтобы перемешать изображения деталей на чертеже, включать или выключать их отображение, переносить в другие чертежи или сохранять в отдельных файлах. Для подобных задач, т. е. для удобного редактирования чертежей, в модели документа КОМПАС предусмотрены компоненты для логического объединения элементов чертежа - виды, слои, группы.

НЕ нашли? Не то? Что вы ищете?

Все компоненты - геометрические элементы, компоненты для группировки геометрических элементов, элементы оформления чертежа - вместе образуют модель графического документа. В КОМПАС-ГРАФИК сеть специальные команды меню для работы со всеми компонентами модели. Для разработчика RTW-библиотек в КОМПАС-МАСТЕР предусмотрены функции, позволяющие создавать компоненты графического документа и изменять их свойства.

1.1 Структура графического документа

Основным документом в подсистеме КОМПАС-ГРАФИК является лист чертежа. Чертежи хранятся в отдельных файлах специаль­ного формата с расширением *.cdw. Чертежи сложных изделий могут состоять из нескольких листов, тогда эти листы создаются и обрабатываются отдельно (в различных файлах).

Каждый чертеж состоит из набора визуально различимых компонент: видов, технических требований, основной надписи (штампа чертежа), спецификации и обозначения шероховатости неуказанных поверхностей детали (знака неуказанной шероховатости). На конкретном чертеже часть перечисленных компонент может отсутствовать.

Вид - любое изолированное изображение на чертеже. Это могут быть различные проекции детали (вид слева, вид спереди, вид сверху). Для удобства редактирования чертежа на нем можно создать любое количество видов. Фактически, вид в КОМПАС - ГРАФИК - это отдельная система координат, заданная относительно системы координат чертежа ("абсолютной системы координат"). Абсолютная система координат-правая система координат (ось X направлена вправо, ось Y - вверх) с началом отсчета в левом нижнем углу чертежа. Положение каждого вида в абсолютной системе координат определяется точкой привязки (координатами начала отсчета вида), углом поворота и масштабом.

При создании нового чертежа автоматически создается специальный системный вид с номером 0, и пользователь может приступать к вычерчиванию элементов, которые будут помешаться в этот нулевой вид.

В каждом виде можно создавать до 255 слоев для удобного размещения и обработки изображения. Все слои принадлежат виду. Вид можно переместить на чертеже, и все его слои переместятся вместе с ним.

Слой можно назвать уровнем, на котором размещена часть элементов фрагмента или вида чертежа. Слои применяются во многих графических программах, по аналогии с созданием изображения путем наложения друг на друга нескольких прозрачных листов (при обычном проектировании на кульмане используются накладываемые друг на друга кальки).

Каждый вид и слой может иметь уникальное название для облегчения поиска и выбора. Виды и слои могут находиться в различных состояниях (текущий, фоновый, невидимый).

Модель чертежа можно представить с помощью иерархической структурной схемы, на которой показана принадлежность компонент. Числа около стрелки обозначают кратность отношения принадлежности (одному виду может принадлежать от I до 255 слоев; технические требования присутствуют на чертеже либо в единственном экземпляре, либо отсутствуют вообще; штамп на чертеже есть обязательно, и только один).

Рис.1. Структура чертежа.

Вторая разновидность графических документов КОМПАС-ГРАФИК - Фраг­мент. Во фрагменте нет рамки, основной надписи, знака шероховатости и технических требований. Вид во фрагменте только один, но, как и вид чертежа, он может содержать до 255 слоев.

Начало абсолютной системы координат чертежа всегда находится в левой нижней точке габаритной рамки формата. Начало системы координат фрагмента не имеет такой четкой привязки, как в случае чертежа. Поэтому, когда открывается новый фрагмент в окне КОМПАС-ГРАФИК, точка начала его системы координат автоматически отображается в центре окна. Фактически фрагмент можно считать видом чертежа, сохраненным в отдельном файле (с расширением *. frw).

Фрагмент идеально подходит для хранения изображений, которые не нужно оформлять как лист чертежа (эскизные прорисовки, разработки и т. д.). Кроме того, во фрагментах удобно сохранять созданные типовые решения и конструкции для последующего использования в других документах. КОМПАС-ГРАФИК позволяет ссылаться на внешний фрагмент без его физического копирования в документ, при этом после редактирования внешнего фрагмента автоматически будет откорректирован и документ, в который вставлен этот фрагмент.

2. ПРАКТИЧЕСКАЯ РАБОТА

В КОМПАС-МАСТЕР интерфейс ksDocument2D является наиболее обширным, т. к. именно его методы предоставляют прикладному программисту доступ к модели графического документа. В нем также есть метод для получения дескриптора любого компонента чертежа - ksGetReferenceDocumentPart.

Функционально методы ksDocunent2D для работы с компонентами чертежа эквивалентны командам меню КОМПАС-ГРАФИК, подобно тому, как методы ksDocunent2D для рисования геометрических элементов аналогичны командам геометрических построений КОМПАС-ГРАФИК.

2.1 Операции с файлами документов

В интерфейсе Document2D нет методов, явно предназначенных для работы с файлами чертежей. Чертеж является разновидностью документа КОМПАС, а для всех документов в Document2D предусмотрены одни и те же методы (табл. 1). Специфика документа проявляется при его создании, поэтому метод CreateDocumentT является наиболее сложным в использовании. При создании документа требуется указать его параметры с помощью интерфейса DocumentParamT.

Таблица 1.

Имя метода

Назначение

OpenDocumentT

Открыть документ (чертеж, фрагмент, специфи-кацию, текстовый документ, деталь или сборку).

SaveDocumentT

Сохранить документ

CloseDocumentT

Закрыть документ

CreateDocumentT

Создать документ

В листинге
1 приведен пример процедуры, в которой демонстрируется создание нового чертежа, выполнение в нем геометрических построений и сохранение файла.

Листинг 1.

//-------

// Работа с документом

// ---

void WorkDocument()

{

DocumentParamT parDocument; // Структура параметров документа

_tcscpy( parDocument. fileName, _T("c:\\1.cdw") ); // Имя файла документа

_tcscpy( ment, _T("Create document") ); // Комментарий к документу

_tcscpy( parDocument. author, _T("User") ); // Автор документа

parDocument. regim = 0; // Режим (0 - видимый, 1 - слепой )

parDocument. type = lt_DocSheetStandart; // Тип документа - чертеж стандартный

// Структура параметров оформления документов ( параметры листа чертежа стандартного формата )

parDocument. sheet. stPar. format = 3; // Формат листа 0( АА4)

parDocument. sheet. stPar. multiply = 1; // Кратность формата

parDocument. sheet. stPar. direct = 0; // Расположение штампа ( 0 - вдоль короткой стороны, 1 - вдоль длинной )

parDocument. sheet. shtType = 1; // Тип штампа из указанной библиотеки для спецификации ( номер стиля из указанной библиотеки )

parDocument. sheet. layoutName[0] = _T('\0'); // Имя библиотеки оформления (Graphic. lyt)

// Создаем документ: лист, формат А3, горизонтально расположенный и с системным штампом 1

reference rDocument = CreateDocumentT( &parDocument );

/*

reference rDocument = OpenDocumentT( _T("c:\\1.cdw"), 1 );

*/

ViewParamT parView; // Структура параметров вида

memset( &parView, 0, sizeof(parView) );

parView. x = 10; // Точка привязки вида

parView. y = 20;

parView. scale = 0.5; // Масштаб вида

parView. ang = 45; // Угол поворота вида

parView. color = RGB( 10, 20, 10 ); // Цвет вида в активном состоянии

parView. state = stACTIVE; // Состояние вида

_tcscpy( parView. name, _T("User view") ); // Имя вида

// У документа создадим вид с номером 2, масштабом 0.5, под углом 45 гр.

int number = 2;

CreateSheetViewT( &parView, &number );

// Создадим слой с номером 5

Layer( 5 );

// Отрисовка отрезков

LineSeg( 20, 10, 40, 10, 1 );

LineSeg( 40, 10, 40, 30, 1 );

LineSeg( 40, 30, 20, 30, 1 );

LineSeg( 20, 30, 20, 10, 1 );

// Получить параметры документа

GetObjParam( rDocument, &parDocument, sizeof( parDocument ), ALLPARAM_T );

TCHAR buf[ 255 ];

_stprintf( buf, _T("type = %d, sheet. stPar. format = %d,\nsheet. stPar. multiply = %d, sheet. stPar. direct = %d,\nfileName = %s,\ncomment = %s,\nauthor = %s"),

parDocument. type, parDocument. sheet. stPar. format,

parDocument. sheet. stPar. multiply, parDocument. sheet. stPar. direct,

parDocument. fileName, ment, parDocument. author );

MessageT( buf );

// Сохраним документ

// SaveDocument( 0, "" );

// Закрыть документ

CloseDocument( rDocument );

}

Разработайте программу и добавьте в библиотеку команду «Операции с файлами документов».

2.2 Операции с видами

Bee методы работы с видами находятся в интерфейсе Document2D. Среди них есть методы для преобразования координат точек, методы для манипуляций е видами по номерам и дескрипторам, и др. (табл.2).

Таблица 2.

Имя метода

Назначение

CreateSheetViewT

Создать вид

GetViewReferenceT

Получить дескриптор вида по его номеру

GetViewNumberT

Получить номер вида по его дескриптору

OpenViewT

Сделать текущим существующий виде указанным номером

NewViewNumberT

Определить номер следующею вида (т. к. при создании нового вида требуется указывать ею номер)

GetViewObjCountT

Получить количество элементов, принадлежащих виду

SheetToViewT

Преобразовать координаты точки из абсолютной системы координат в систему координат текущего вида

ViewToSheetT

Преобразован, координаты точки из СК текущего вида в абс. СК

На листинге 2 показано создание нового вида в текущем документе (это обязательно должен быть лист чертежа, иначе КОМПАС-ГРАФИК выдаст сообщение об ошибке) и выполнение нескольких простых построений в этом виде.

Листинг 2.

//-------

// Создать вид

// ---

void DrawView()

{

ViewParamT parView; // Структура параметров вида

parView. x = 10; // Точка привязки вида

parView. y = 20;

parView. scale = 0.5; // Масштаб вида

parView. ang = 45; // Угол поворота вида

parView. color = RGB( 10, 20, 10 ); // Цвет вида в активном состоянии

parView. state = stACTIVE; // Состояние вида

_tcscpy( parView. name, _T("User view") ); // Имя вида

// Создание группы объектов, type - тип группы ( 0 - определяет модельный, 1 - временный )

reference rGroup = NewGroup( 0 );

LineSeg( 20, 10, 20, 30, 1 );

LineSeg( 20, 30, 40, 30, 1 );

LineSeg( 40, 30, 40, 10, 1 );

LineSeg( 40, 10, 20, 10, 1 );

EndGroup(); // Завершить создание группы объектов

// Создадим вид с номером 5, масштабом 0.5, под углом 45 гр.

int number = 5;

reference rView = CreateSheetViewT( &parView, &number );

// Добавим вид в группу

MessageT( _T("Добавим вид в группу") );

AddObjGroup( rGroup, rView );

MessageBoxResult(); // Выдать сообщение об ошибке на экран

// Создадим отрезок в новом виде

reference p = LineSeg( 10, 10, 30, 30, 0 );

AddObjGroup( rGroup, p );

MessageT( _T("добавили эл в группу") );

//должно быть сообщение о повторном включении объекта в группу - вид уже включон

MessageBoxResult();

// Повернуть группу на -45 градусов вокруг точки ( 0, 0 )

RotateObj( rGroup, 0, 0, -45 );

// Получить параметры видa

GetObjParam( rView, &parView, sizeof( parView ), ALLPARAM_T );

number = GetViewNumber( rView );

TCHAR buf[255];

_stprintf( buf, _T("x = %4.2f, y = %4.2f, scale = %4.2f, ang = %4.2f, color = %x, state = %d, name = %s, number = %d"),

parView. x, parView. y, parView. scale, parView. ang, parView. color, parView. state, parView. name, number );

MessageT( buf );

// Сделать текущим системный вид ( номер 0 )

OpenView( 0 );

MessageT( _T("Изменить состояние вида") );

// Изменить состояние вида ( только чтение )

int state = stREADONLY;

SetObjParam( rView, &state, sizeof( state ), VIEW_LAYER_STATE );

}

Разработайте программу и добавьте в библиотеку команду «Операции с видами».

2.3 Операции со слоями

Слои, как и виды, имеют номера, имена и дескрипторы. Имена - символьные строки - могут быть полезны в качестве комментариев для пользователя, чтобы на­помнить ему назначение слоя или вида. Номера удобны в качестве быстрого способа указания слоя или вида (например, в строке текущего состояния в главном окне КОМПАС-ГРАФИК есть выпадающие списки с номерами видов и слоев). Номера доступны как пользователю, как и в КОМПАС-МАСТЕР. Номера слоев и видов не обязательно должны быть последовательными. Номер 0 зарезервирован для служеб­ных целей - это номер системного вида и системного слоя (их нельзя удалить).

Дескрипторы пользователю недоступны и используются исключительно при вызове функций КОМПАС-МАСТЕР, когда требуется выполнить над слоем или ви­дом действие, выполнимое над любыми элементами чертежа - например, выделить элемент цветом или добавить в группу.

Слой может находиться в 4-х различных состояниях: активный (види-мый+фоновый); фоновый; невидимый (погашенный) и текущий. Текущий слой может быть только один, в этом слое выполняются геометрические построения. Элементы фоновых слоев на чертеже обычно показываются пунктирной линией, и эти слои за­щищены от изменений.

Методы интерфейса Document2D для работы со слоями приведены в таблице 3.

Таблица 3.

Имя метода

Назначение

ksLayer

Сделать слой с заданным номером текущим слоем (если слоя с таким номером нет, он будет создан)

JcsGetLayer Reference

Получить указатель на слой текущего вида по номеру слоя

JcsGetLayer Number

Получить номер слоя но его дескриптору

ksChangeObjectLayer

Изменить слой одного объекта

В листинге 3 приведены примеры операций со слоями и показано выполнение следую­щих действий:

создание в текущем виде слоя с номером, введенным пользователем;

выделение слоя;

изменение имени, цвета и состояния слоя.

Листинг 3.

//---

// Создать слой

// ---

void DrawLayer()

{

int number;

if ( ReadIntT( _T("Введите номер создавоемого слоя"), 1, 0, 255, &number ) )

{

// Переопределение текущего слоя, если слоя с заданным номером

// нет, такой слой создается. Слой становится текущим

reference rLayer = Layer( number );

Mtr( 20, 15, 0, 1 ); // Матрица преобразования координат ( 20 по оси OX, 15 по оси OY )

LineSeg( -10, 0, 10, 0, 1 );

LineSeg( 10, 0, 10, 20, 1 );

LineSeg( 10, 20, -10, 20, 1 );

LineSeg( -10, 20, -10, 0, 1 );

DeleteMtr(); // Отключение матрицы преобразования координат

// Подсветить слой

LightObj( rLayer, 1 );

// Получить номер слоя по указателю и указатель по номеру

number = GetLayerNumber( rLayer ); // Получить номер слоя по указателю

rLayer = GetLayerReference( number ); // Получить указатель слоя по номеру

LayerParamT parLayer; // Структура параметров слоя

// Получить параметры слоя

GetObjParam( rLayer, &parLayer, sizeof( parLayer ), ALLPARAM );

TCHAR buf [255];

_stprintf( buf, _T("number = %d, rLayer = %d,\nstate = %d, color = %x, name = %s"),

number, rLayer, parLayer. color, parLayer. state, parLayer. name );

MessageT( buf );

// Установить параметры слоя

parLayer. color = RGB( 0, 255, 0 ); // Цвет слоя в активном состоянии

parLayer. state = stACTIVE; // Состояние слоя

_tcscpy ( parLayer. name, _T("Зеленый") ); // Имя слоя

MessageT( _T("Изменим параметры слоя") );

// Параметры текущего слоя изменить нельзя поэтому переключаемся на нулевой слой

Layer( 0 );

if ( !SetObjParam( rLayer, &parLayer, sizeof( parLayer ), ALLPARAM ) )

MessageBoxResult(); // Выдать сообщение об ошибке на экран

else {

// Получить параметры слоя

GetObjParam( rLayer, &parLayer, sizeof( parLayer ), ALLPARAM );

_stprintf( buf, _T("number = %d, rLayer = %d,\nstate = %d, color = %x, name = %s"),

number, rLayer, parLayer. color, parLayer. state, parLayer. name );

MessageT( buf );

}

// Снять выделение слоя

LightObj( rLayer, 0 );

MessageT( _T("Изменить состояние слоя") );

// Изменить состояние слоя ( активизировать слой )

int state = stACTIVE ;

SetObjParam( rLayer, &state, sizeof( state ), VIEW_LAYER_STATE );

}

}

Разработайте программу и добавьте в библиотеку команду «Операции со слоями».

2.4 Группы элементов чертежа

Группа - это объединение логически связанных между собой элементов чертежа для их удобного одновременного поиска и редактирования. Группа может иметь название, по которому ее можно выбирать в списке групп.

Элементы, входящие в группу, пользователь может выделять и редактировать по отдельности. Один и тот же элемент чертежа может одновременно входить в не­сколько разных групп. Группа может объединять элементы, принадлежащие различ­ным слоям и видам чертежа, а также отдельные виды, технические требования и основную надпись штампа или ее отдельные графы.

Для работы с группами в меню КОМПАС-ГРАФИК предназначены команды Операции=>Группы (эта команда входит и в контекстное меню выделенного элемен­та) и Выделить =>Группу.

С точки зрения прикладного программиста, группа очень похожа на составной элемент чертежа. Формирование группы начинается с вызова метода Document2D::NewGroup, которому указывается тип группы - модельный или временный. В отличие от большинства составных элементов, формирование группы завершайся вызовом метода EndGroup, а не EndObj (т. к. в группу могут входить составные элементы).

При создании новой группы необязательно закрывать предыдущую (т. е. под­держивается вложенность групп).

После вызова EndGroup элементы модельной группы помещаются на чер­теж, а элементы временной группы запоминаются во временном списке и на экране не отображаются. Для дальнейшей обработки группы используются те же функции редактирования, что и для отдельных элементов, так как дескриптор группы ничем не отличается от дескрипторов остальных элементов чертежа.

В КОМПАС-МАСТЕР принято соглашение, по которому дескриптор 0 имеет служебная группа селектирования, содержащая все выделенные в данный момент элементы чертежа.

Элементы временной группы сохраняются только до завершения работы соз­дающей их библиотечной функции. Временная группа служит чаще всего для отрисовки фантомного изображения - например, когда пользователь добавляет на чертеж какую-либо деталь из библиотеки, то в процессе размещения этой детали на чертеже показывается ее фантомное изображение, состоящее из сплошных однотипных линий. После успешного завершения команды вставки детали вместо фантомного изображе­ния на чертеже создается полное изображение детали.

Методы интерфейса Document2D для работы с группами приведены в таблице 4.

Таблица 4.

Имя метода

Назначение

NewGroup

Создать новую группу элементов чертежа

EndGroup

Завершить создание группы

AddObjGroup

Добавить элемент в группу

ClearGroup

Очистить группу

DrawKompasGroup

Нарисовать группу как слайд в заданном окне Windows

ExcludeObjGroup

Исключить элемент из группы

ExistGroupObj

Проверить, не является ли группа пустой

GetGroup

Получить дескриптор группы

GetGroupName

Получить имя группы по ее дескриптору

ReadGroupFromClip

Получить элементы чертежа из буфера обмена и поместить их во временную группе

SaveGroup

Сохранить модельную группу в документе (преобразовать ее в именованную группу)

SelectGroup

Сформировать группу из элементов, попадающих в заданный габаритный прямоугольник

StoreTmpGroup

Вставить временную группу в документ

В листинге 4 приведен пример работы с группой.

Листинг 4.

//-------

// Работа с группой

// ---

void DrawGroup()

{

// Создание группы объектов, type - тип группы ( 0 - определяет модельный, 1 - временный )

reference rGroup = NewGroup( 0 );

LineSeg( 10, 10, 10, 20, 0 );

EndGroup(); // Завершить создание группы объектов

MoveObj( rGroup, 10, 0 );

MessageT( _T("Cдвинули группу на 10 мм") );

RotateObj( rGroup, 20, 10, 45 );

MessageT( _T("Повернули группу на 45 гр") );

// Вернем группу на место

RotateObj( rGroup, 20, 10, -45 );

MessageT( _T("Повернули группу на -45 гр") );

MoveObj( rGroup, -10, 0 );

MessageT( _T("Сдвинули группу на -10 мм"));

MessageT( _T("Очистили группу ( объекты исключаются из группы )") );

// Очистили группу ( объекты исключаются из группы )

ClearGroup( rGroup );

// Создание отрезка

reference rLineSeg = LineSeg( 10, 10, 20, 10, 0 );

// Добавить новый объект в группу

AddObjGroup( rGroup, rLineSeg );

// Подсветить группу

LightObj( rGroup, 1 );

MessageT( _T("Снять выделение группы") );

// Снять выделение группы

LightObj( rGroup, 0 );

// Удалим группу ( объекты удалятся тоже )

DeleteObj( rGroup );

}

Разработайте программу и добавьте в библиотеку команду «Группы элементов чертежа».

2.5 Работа с именованной группой

На уровне функций КОМПАС-МАСТЕР для создания именованной группы приходится выполнять два действия:

создать модельную группу (модельные группы удаляются после завершения работы функции RTW-библиотеки);

сохранить модельную группу в документе - при этом указывается имя группы, и она становится именованной и будет включена в список групп (например, вызываемый командой Выделить=>Группу.

В листинге 5 показан пример, в котором демонстрируется создание именованной группы, добавление элемента в уже созданную группу и геометрическое преобразо­вание группы как обычного элемента чертежа.

Листинг 5.

//-------

// Работа с именнованной группой

// ---

void WorkNameGroup()

{

// Создание группы объектов, type - тип группы ( 0 - определяет модельный, 1 - временный )

reference rGroup = NewGroup( 0 );

LineSeg( 20, 20, 40, 20, 1 );

LineSeg( 40, 20, 40, 40, 1 );

LineSeg( 40, 40, 20, 40, 1 );

LineSeg( 20, 40, 20, 20, 1 );

EndGroup(); // Завершить создание группы объектов

// Сохранить группу объектов в модели с указанным именем

// Группа автоматически сохраняется в чертеже при его записи

// В противном случае группа действительна только в текущем сеансе работы

// Если указатель группы равен нулю, то сохраняется группа селектирования

// КОМПАС-ГРАФИК (выделенные объекты чертежа).

if ( !SaveGroupT( rGroup, _T("Group") ) )

exit( EXIT_SUCCESS );

rGroup = GetGroupT( _T("Group") );

if ( !rGroup )

exit( EXIT_SUCCESS );

// Создание окружности

reference rCircle = Circle( 30, 30, 10, 1 );

// Добавить новый объект в группу

AddObjGroup( rGroup, rCircle );

LightObj( rGroup, 1 );

MessageT( _T("Был добавлен объект в именную группу") );

LightObj( rGroup, 0 );

// Исключить объект из группы

ExcludeObjGroup( rGroup, rCircle );

LightObj( rGroup, 1 );

MessageT( _T("Объект был исключен из именной группы") );

LightObj( rGroup, 0 );

}

Разработайте программу и добавьте в библиотеку команду «Работа с именованной группой».

3. ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

Задание 1.

Создайте новый чертеж и нарисуйте на нем 4-5 различных элементов. Выделите часть из них и с помощью команды Операции=>Группы объедините эти элементы в именованную группу. Выясните, как командой Выделить=>Группу можно выделить сразу все элементы, входящие в именованную группу.

Задание 2.

Создайте новый чертеж и создайте на нем Bezier сплайн.

Отчет по лабораторной работе

Оформить отчет о выполнении заданий лабораторной работы с приведением исходных кодов проекта программы, распечатки результатов работы прикладной RTW библиотеки.