ЛАБОРАТОРНАЯ РАБОТА №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 библиотеки.


