---
title: "Элементарные тела"
type: guide
api: [api7]
domain: [3d]
tags: [guide, api7, 3d, simple]
sources:
  - simple_bodies.html
---

*API интерфейсов. Версия 7 > Документ 3D *


## Элементарные тела

Интерфейс IElementaryBody
Интерфейс IElementaryBodies
Интерфейс IBlockByPoints
Интерфейс IBlockBySizes
Интерфейс IConeByAngle
Интерфейс IConeByHeight
Интерфейс ICylinder
Интерфейс ISphere


## Пример простейшей программы в среде VC++, оформленной в виде библиотеки КОМПАС

#ifndef __LIBTOOL_H
#include «libtool.h»
#endif
char * WINAPI LIBRARYNAME()
{
return "Самая простая библиотека";
}
void WINAPI LIBRARYENTRY( unsigned int comm )
{
Message("Строим отрезок!");
LineSeg( 10, 10, 100, 100, 1 ); // x1, y1, x2, y2, тип линии - основная
}
Функция LIBRARYENTRY является точкой входа в библиотеку при вызове из КОМПАС. Наличие этой функции обязательно, так как именно ей передает управление КОМПАС при обращении к библиотеке. В данном случае она обеспечивает выдачу сообщения и построение одного единственного объекта чертежа - отрезка.
Все функции оформления библиотек должны быть объявлены в def файле как экспортные, например:
EXPORTS
LIBRARYID @1
LIBRARYENTRY @2
Функции


## Общие сведения о библиотеках типа AddIn

Пример...
Это обычная библиотека, но она регистрируется в реестре и загружается при запуске системы КОМПАС.
Без регистрации в реестре библиотеки такого типа работают как стандартные прикладные библиотеки КОМПАС.
Регистрация осуществляется в разделе HKEY_CURRENT_USER\\Software\\ASCON\\KOMPAS-3D\\AddIns или HKEY_LOCAL_MACHINE\\Software\\ASCON\\KOMPAS-3D\\AddIns. Для регистрации создается подраздел с уникальным именем (например, именем самой библиотеки). В этом разделе должны быть два значения:
•Тип значения REG_SZ:
"ProgID" - для ActiveX библиотек или "Path" - полный путь к файлу для простых библиотек. Если есть оба значения "ProgID" и "Path", то "Path" игнорируется. ActiveX библиотека должна быть зарегистрирована.
•Тип значения REG_DWORD:
"AutoConnect" - 1 - подключать библиотеку при запуске КОМПАС, 0 - не подключать. Если в реестре этого значения нет, то оно по умолчанию принимается равным 1.
Существует два способа регистрации библиотеки в реестре:
•при помощью функций DllRegisterServer.
•вызов команды regsvr32.exe libname.
Чтобы отменить регистрацию, необходимо использовать функцию DllUnregisterServer или вызвать команду regsvr32.exe \u libname.
AddIn библиотеки работают в режиме "Меню". Сменить режим нельзя, так же как и отключить библиотеку.


## Пример простейшей программы в среде VB, оформленной в виде ActiveX библиотеки КОМПАС

Dim iKompasObject As Object 'KompasObject
Dim iDocument2D As Object 'ksDocument2D
Public Function GetLibraryName() As String
GetLibraryName = “Самая простая библиотека”
End Function
Public Sub ExternalRunCommand(ByVal command As Integer, ByVal mode As Integer, ByVal Kompas As Object)
Set iKompasObject = Kompas
If iKompasObject Is Nothing Then
Exit Sub
End If
Set iDocument2D = iKompasObject.ActiveDocument2D
If iDocument2D Is Nothing Then
Exit Sub
End If
iKompasObject.ksMessage “Строим отрезок!”
iDocument2D.ksLineSeg 10, 10, 100, 100, 1 ' x1, y1, x2, y2, тип линии - основная
End Sub
Функция ExternalRunCommand - аналог функции LibraryEntry. Ее наличие обязательно, так как именно ему передает управление КОМПАС при обращении к библиотеке. В данном случае она обеспечивает выдачу сообщения и построение одного единственного объекта чертежа - отрезка.
Функции
