Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 50092.doc
Скачиваний:
17
Добавлен:
30.04.2022
Размер:
4.95 Mб
Скачать

6. Твердотельное моделирование объектов в компас 3d

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

Для того, что начать работу с документом 3D, необходимо внести в проект файл kAPI3D5.lib. Указанный файл размещен в папке lib каталога SDK. Проект можно создать с помощью мастера проектов (об этом подробно написано в разделе по созданию 2D документов) или изменить имеющиеся проекты примеров из папки Examples SDK VisualC++. Кроме того, требуется импортировать пути для подключаемых библиотек, указав их месторасположение на диске. Все изменения необходимо произвести в файле StdAfx.h.

#ifndef __STDAFX_H

#define __STDAFX_H

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#define VC_EXTRALEAN //Exclude rarely-used stuff from headers

#include <afxwin.h> // MFC core and standard components

#include <afxext.h> // MFC extensions

#ifndef _AFX_NO_OLE_SUPPORT

#include <afxole.h> // MFC OLE classes

#include <afxodlgs.h> // MFC OLE dialog classes

#include <afxdisp.h> // MFC Automation classes

#endif // _AFX_NO_OLE_SUPPORT

#ifndef _AFX_NO_DB_SUPPORT

#include <afxdb.h> // MFC ODBC database classes

#endif // _AFX_NO_DB_SUPPORT

#pragma warning( disable : 4192 )

//Указать пути расположения библиотек!

#import "d:\SDK\lib\ksConstants3D.tlb" no_namespace named_guids

#import "d:\SDK\lib\ksConstants.tlb" no_namespace named_guids

#import "d:\SDK\lib\kAPI2D5COM.tlb" no_namespace named_guids

#import "d:\SDK\lib\kAPI3D5COM.tlb" no_namespace named_guids

#import "d:\SDK\lib\kAPI7.tlb" no_namespace named_guids

#pragma warning( once : 4192 )

#ifndef __LHEAD3D_H

#include <LHead3d.h>

#endif

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

//{{AFX_INSERT_LOCATION}}

#endif // !defined(__STDAFX_H)

Далее приводится пример кода, позволяющий создать новый документ в 3D-деталь с указанием одноименного имени.

// Головная функция библиотеки

void WINAPI LIBRARYENTRY( UINT comm )

{

IDocument3DPtr Doc3d( ksGet3dDocument(), false );

Doc3d->Create( false, true );

Doc3d->SetAuthor( _T( "Иванов Андрей" ) );

Doc3d->

SetComment(_T("Проектирование прикладных библиотек в API 3D"));

Doc3d->SetFileName(_T("C:\\Деталь.m3d" ));

Doc3d->UpdateDocumentParam();

Doc3d->Save();

Doc3d->Close();

}

В первой строке вышеприведенного кода создается указатель на интерфейс IDocument3DPtr трехмерного документа, который в последствии необходимо использовать для обращения к методам и свойствам указанного интерфейса. Далее по методу Create в прикладной библиотеке производится создание документа. Первый параметр указывает на признак режима редактирования документа (TRUE - невидимый режим, FALSE - видимый режим), второй параметр отвечает за тип документа (TRUE - деталь, FALSE - сборка). Следующие несколько строк отвечают за свойства документа (имя автора - SetAuthor, комментарий к проекту- SetComment, имя файла для записи- SetFileName). За обновление документа, запись модели на носитель информации и закрытие документа отвечают последние три метода в тексте функции (UpdateDocumentParam, Save, Close).