---
title: "KompasObject - Интерфейс API КОМПАС"
type: interface
api: [api7]
tags: [interface, api7, kompasobject]
sources:
  - kompasobject.html
---

*API интерфейсов. Версия 5*


## KompasObject - Интерфейс API КОМПАС

Интерфейс событий...
Примечание:
Получить интерфейс KompasObject можно:
•для обычных *.rtw библиотек - применив экспортную функцию IDispatch* CreateKompasObject();
•для ActiveX библиотек - после вызова команды библиотеки и выполнения функции ExternalRunCommand;
•при работе под управлением внешнего приложения (контроллера) - после вызова стандартной системной функции.


## ActiveDocument2D - Получить указатель на интерфейс текущего графического документа

Синтаксис Automation:
```
LPDISPATCH ActiveDocument2D();
Возвращаемое значение:
- указатель на интерфейс графического документа ksDocument2D.
```
Примечание:
Если документ не активен, функция возвращает NULL.


## ActiveDocument3D - Получить указатель на интерфейс текущего документа трехмерной модели

Аналог данного метода при использовании API экспортных функций - ksGetActive3dDocument.
Синтаксис Automation:
```
LPDISPATCH ActiveDocument3D();
Возвращаемое значение:
- указатель на интерфейс документа трехмерной модели ksDocument3D.
```
Синтаксис COM:
```
Чтобы получить интерфейс текущего документа трехмерной модели при программировании на COM, нужно использовать экспортную функцию LPDOCUMENT3D ksGetActive3dDocument();
Возвращаемое значение:
- указатель на интерфейс документа трехмерной модели IDocument3D.
```
Примечание:
Если документ трехмерной модели не активен, функция возвращает NULL.


## ActiveDocumentTxt - Получить указатель на интерфейс текущего текстового документа

Синтаксис Automation:
```
LPDISPATCH ActiveDocumentTxt();
Входные параметры:
- Указатель на интерфейс текстового документа ksDocumentTxt
```
Примечание:
Если документ не активен, функция возвращает NULL.


## currentDirectory - Текущий каталог

Тип данных: BOOL
Синтаксис:
```
currentDirectory = Object.currentDirectory    Получить свойство (* )
Object.currentDirectory = currentDirectory    Установить свойство (* )
currentDirectory = Object.GetСurrentDirectory()    Получить свойство (**)
Object.SetСurrentDirectory( currentDirectory )    Установить свойство (**)
```


## DataBaseObject - Получить указатель на интерфейс ksDataBaseObject для работы с базами данных

Синтаксис Automation:
```
LPDISPATCH DataBaseObject();
Возвращаемое значение:
- указатель на интерфейс ksDataBaseObjec для работы с базами данных.
```


## Document2D - Получить указатель на интерфейс графического документа

Синтаксис Automation:
```
LPDISPATCH Document2D();
Возвращаемое значение:
- указатель на интерфейс графического документа ksDocument2D.
```


## Document3D - Получить указатель на интерфейс документа трехмерной модели

Синтаксис Automation:
```
LPDISPATCH Document3D();
Возвращаемое значение:
- указатель на интерфейс документа трехмерной модели ksDocument3D.
```
Синтаксис COM:
```
Чтобы получить интерфейс документа трехмерной модели при программировании на COM, нужно использовать экспортную функцию ksGet3dDocument.
Возвращаемое значение:
- указатель на интерфейс документа трехмерной модели IIDocument3D.
```


## DocumentTxt - Получить указатель на интерфейс текстового документа

Синтаксис Automation:
```
LPDISPATCH DocumentTxt();
Входные параметры:
- Указатель на интерфейс текстового документа ksDocumentTxt
```


## ksDrawKompasDocumentByReference - Отрисовать КОМПАС-документ как слайд в присланном окне

Аналог данного метода при использовании API экспортных функций - ksDrawKompasDocumentByReference.
Синтаксис Automation:
```
long ksDrawKompasDocumentByReference (long HWindow, long pDoc);
Входной параметр:
Hwindow    - несущее окно,
pDoc    - указатель на документ.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Если pDoc = 0, отрисовывается текущий документ.


## GetAttributeObject - Получить указатель на интерфейс для работы с атрибутами

Синтаксис Automation:
```
LPDISPATCH GetAttributeObject();
Возвращаемое значение:
- указатель на интерфейс ksAttributeObject.
```


## GetDynamicArray - Получить указатель на интерфейс динамического массива ksDynamicArray

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH GetDynamicArray (long type);
Входной параметр:
type    - тип динамического массива.
Возвращаемое значение:
- указатель на интерфейс динамического массива ksDynamicArray.
BOOL preview,
long typeDir);
Входные параметры:
ext    - расширение имени файла,
filter    - фильтр поиска (0 - фильтр формируется автоматически),
preview    - признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна,
typeDir    - стартовая папка.
Возвращаемое значение:
- строка с именем файла.
```
Примечание:
Параметр typeDir может иметь значения sptSYSTEM_FILES и sptLIBS_FILES; во всех остальных случаях открывается текущая папка.


## GetFragmentLibrary - Получить указатель на интерфейс библиотеки фрагментов

Синтаксис Automation:
```
LPDISPATCH GetFragmentLibrary();
Возвращаемое значение:
- указатель на интерфейс ksFragmentLibrary.
```


## GetIterator - Получить указатель на интерфейс ksIterator для навигации по объектам

Синтаксис Automation:
```
LPDISPATCH GetIterator();
Возвращаемое значение:
- указатель на интерфейс ksIterator.
```


## GetMathematic2D - Получить указатель на интерфейс для работы с математическими функциями

Синтаксис Automation:
```
LPDISPATCH GetMathematic2D();
Возвращаемое значение:
- указатель на интерфейс ksMathematic2D.
```


## GetModelLibrary - Получить указатель на интерфейс библиотеки моделей

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetModelLibrary.
Синтаксис Automation:
```
LPDISPATCH GetModelLibrary();
Возвращаемое значение:
- указатель на интерфейс ksModelLibrary.
```


## GetParamStruct - Получить указатель на интерфейс структуры параметров объекта нужного типа

Синтаксис Automation:
```
LPDISPATCH GetParamStruct (short structType);
Входной параметр:
structType    - тип интерфейса параметров
Возвращаемое значение:
- указатель на интерфейс указанного типа из StructType2D.
```


## ksAttachKompasLibrary - Подключить библиотеку

Синтаксис Automation:
```
long ksAttachKompasLibrary (BSTR libname);
Входные параметры:
libname    - полное имя файла библиотеки.
Возвращаемое значение:
уникальный номер библиотеки    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
После успешного выполнения метода имя библиотеки появится в меню "Библиотеки".


## ksCalculate - Подсчитать значение выражения

Аналог данного метода при использовании API экспортных функций - ksCalculate.
Синтаксис Automation:
```
long ksCalculate (BSTR s, double* res);
Входные параметры:
s    - строка с выражением,
res    - результат расчета.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
1. Поддерживаются функции и переменные:
•SIN, COS, TAN, ATAN - тригонометрические функции (аргумент в радианах),
•SIND, COSD, TAND, ATAND - тригонометрические функции (аргумент в градусах),
•SQRT, EXP, LN, ABS - корень квадратный, экспонента, натуральный логарифм, абсолютное значение.
2. Если s = "A1 = 100", то будет заведена переменная A1 cо значением 100; переменных может быть неограниченное количество.


## ksCalculateReset - Очистить массив переменных калькулятора

Аналог данного метода при использовании API экспортных функций - ksCalculateReset.
Синтаксис Automation:
```
long ksCalculateReset();
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksChoiceFile - Показать диалог и выбрать в нем имя файла для чтения

Аналог данного метода при использовании API экспортных функций - ksChoiceFile.
Синтаксис Automation:
```
BSTR ksChoiceFile (BSTR ext,
BSTR filter,
BOOL preview);
Входные параметры:
ext    - расширение имени файла,
filter    - фильтр поиска (0 - формируется автоматически),
preview    - признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Возвращаемое значение:
строка с именем файла    - в случае удачного завершения,
NULL    - в случае отказа от выбора.
```


## ksChoiceFileAppointedDir - Выдать папку и выбрать имя файла для открытия

Аналог данного метода при использовании API экспортных функций - ksChoiceFileAppointedDir.
Синтаксис Automation:
```
BSTR ksChoiceFileAppointedDir (BSTR ext,
BSTR filter,
BOOL preview,
long typeDir);
Входные параметры:
ext    - расширение имени файла,
filter    - фильтр поиска (0 - формируется автоматически),
preview    - признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна,
typeDir    стартовая папка.
Возвращаемое значение:
- строка с именем файла.
Примечание.
Параметр typeDir может иметь значения sptSYSTEM_FILES и sptLIBS_FILES; во всех остальных случаях открывается текущая папка.
```


## ksChoiceFiles - Выдать диалог выбора файлов для открытия

Интерфейс....
Аналог данного метода при использовании API экспортных функций - ksChoiceFiles.
Синтаксис Automation:
```
long ksChoiceFiles (BSTR ext,
BSTR filter,
LPDISPATCH p,
BOOL preview);
Входные параметры:
ext    - расширение имени файла,
filter    - фильтр поиска (0 - формируется автоматически),
preview    - признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Выходной параметр:
p    - указатель на интерфейс динамического массива ksDynamicArray типа CHAR_STR_ARR.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksConvertLangMenu - Конвертировать меню в соответствии с текущим словарем

Аналог данного метода при использовании экспортных функций ksConvertLangMenu.
Синтаксис Automation:
```
long ksConvertLangMenu (long hMenu);
Входной параметр:
hMenu    - дескриптор исходного меню.
Возвращаемое значение:
- дескриптор переведённого меню.
```


## ksConvertLangStr - Конвертировать строку src в dst в соответствии с текущим словарем

Аналог данного метода при использовании экспортных функций ksConvertLangStr.
Синтаксис Automation:
```
BSTR ksConvertLangStr (BSTR src);
Входной параметр:
src    - исходная строка.
Возвращаемое значение:
- переведенная строка.
Примечание.
Словарь сохраняется в файле с расширением dic. Строки файла должны иметь следующий формат:
"Вращение"="Rotation"
"Параметры"="Parameters"
...
...
"Перемещение"="Moving"
Строки файла должны быть отсортированы по алфавиту.
```


## ksConvertLangStrEx - Конвертировать строку с идентификатором в соответствии с текущим словарем

Аналог данного метода при использовании экспортных функций ksConvertLangStrEx.
Синтаксис Automation:
```
BSTR ksConvertLangStrEx (long hInstance, long strID);
Входной параметр:
hInstance    - HINSTANCE модуля, в котором находится переводимая строка,
strID    - идентификатор строки.
Возвращаемое значение:
- переведенная строка.
```


## ksConvertLangStrEx2 - Конвертировать строку в соответствии с текущим словарем

Аналог данного метода при использовании экспортных функций ksConvertLangStrEx.
Синтаксис Automation:
```
BSTR ksConvertLangStrEx2( VARIANT hInstance, long strID );
Входные параметры:
hInstance    - HINSTANCE модуля, в котором находится переводимая строка,
strID    - идентификатор строки.
Возвращаемое значение:
- переведенная строка.
```
Примечание:
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо KompasObject::ksConvertLangStrEx.


## ksConvertLangWindow - Конвертировать окно с входящими дочерними окнами в соответствии с текущим словарем

Аналог данного метода при использовании экспортных функций ksConvertLangWindow.
Синтаксис Automation:
```
BOOL ksConvertLangWindow (long hWnd);
Входной параметр:
hWnd    - дескриптор окна.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```


## ksConvertLangWindowEx - Конвертировать окно с входящими дочерними окнами в соответствии с текущим словарем

Аналог данного метода при использовании экспортных функций ksConvertLangWindowEx.
Синтаксис Automation:
```
BOOL ksConvertLangWindowEx (long hWnd,
long hInstance,
BSTR dlgID);
Входной параметр:
hWnd    - дескриптор окна,
hInstance    - HINSTANCE модуля, в котором находится переводимый диалог,
dlgID    - имя ресурса диалога.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64. Рекомендуется использовать функцию KompasObject::ksConvertLangWindowEx2.


## ksConvertLangWindowEx2 - Конвертировать окно в соответствии с текущим словарем

Аналог данного метода при использовании экспортных функций ksConvertLangWindowEx.
Синтаксис Automation:
```
BOOL ksConvertLangWindowEx2(long hWnd, VARIANT hInstance, BSTR dlgID);
Входной параметр:
hWnd    - дескриптор окна,
hInstance    - HINSTANCE модуля, в котором находится переводимый диалог,
dlgID    - имя ресурса диалога.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64.
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо KompasObject::ksConvertLangWindowEx.


## ksCreateInsertionFragment - Создать вставку фрагмента

Синтаксис Automation:
```
int LIB_FUNC ksCreateInsertionFragment( char * fileName );
Входные параметры:
fileName    - полное имя файла фрагмента.
Возвращаемое значение:
1    - в случае удачи.
```
Примечание:
Допускается fileName следующего вида: "c:\_f\gr\lib1.lfr|детали|литье|фланец", где:
•c:\_f\gr\lib1.lfr - имя файла библиотеки фрагментов,
•|детали|литье|- разделы, подразделы внутри библиотеки фрагментов,
•фланец - имя фрагмента.
Функция запускает процесс вставки фрагмента из файла. Функция не ждет завершения процесса вставки.


## ksDrawBitmap - Отрисовать растровый слайд

Аналог данного метода при использовании API экспортных функций - DrawBitmap.
Синтаксис Automation:
```
long ksDrawBitmap (long HWindow,
long bitmapId);
Входные параметры:
HWindow    - дескриптор окна, в котором нужно отрисовать BITMAP-слайд,
bitmapId    - идентификатор BITMAP-слайда в файле ресурсов.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksDrawBitmapEx - Отрисовать растровый слайд в заданном окне

Аналог данного метода при использовании API экспортных функций - ksDrawBitmapEx.
Синтаксис Automation:
```
long ksDrawBitmapEx (long HWindow, long bitmapId, long hInst);
Входные параметры:
Hwindow    - дескриптор окна, в котором нужно отрисовать BITMAP-слайд,
bitmapId    - идентификатор BITMAP-слайда в файле ресурсов,
hInst    - hInstance текущей библиотеки или NULL, если она одна.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64.
Рекомендуется использовать функцию KompasObject::ksDrawBitmapEx2.


## ksDrawBitmapEx2 - Отрисовать BMP с идентификатором bitmapId в заданном окне(hWindow)

Аналог данного метода при использовании API экспортных функций - ksDrawBitmapEx.
Синтаксис Automation:
```
long ksDrawBitmapEx2(long HWindow, long bitmapId, VARIANT hInst);
Входные параметры:
Hwindow    - дескриптор окна, в котором нужно отрисовать BITMAP-слайд,
bitmapId    - идентификатор BITMAP-слайда в файле ресурсов,
hInst    - hInstance библиотеки, в которой расположен слайд.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64. Для правильного формирования _variant_t HINSTANCE нужно передавать его через приведение к (LONG_PTR).
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо KompasObject::ksDrawBitmapEx.


## ksDrawKompasDocument - Отрисовать документ системы КОМПАС как слайд в присланном окне

Аналог данного метода при использовании API экспортных функций - ksDrawKompasDocument.
Синтаксис Automation:
```
long ksDrawKompasDocument (long HWindow,
BSTR docFileName);
Входные параметры:
Hwindow    - несущее окно,
docFileName    - полное имя файла документа.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Действие метода распространяется также на фрагменты и модели из библиотек. При этом имя файла должно иметь вид "c:\gr\lib1.l3d|детали|литье|фланец",
где
•c:\gr\lib1.l3d - имя файла библиотеки,
•|детали|литье| - разделы, подразделы внутри библиотеки,
•фланец - имя фрагмента или модели.


## ksDrawKompasText - Отрисовать текст в формате КОМПАС в присланном окне

Аналог данного метода при использовании API экспортных функций - ksDrawKompasText.
Синтаксис Automation:
```
long ksDrawKompasText(long HWindow, BSTR text);
Входные параметры:
HWindow    - дескриптор окна для отрисовки слайда,
text    - текст.
```


## ksDrawSlide - Отрисовать слайд в заданном окне

Интерфейс..
Аналог данного метода при использовании API экспортных функций - DrawSlide.
Синтаксис Automation:
```
long ksDrawSlide (long HWindow, long slideId);
Входные параметры:
HWindow    - дескриптор окна,
slideId    - идентификатор слайда.
Возвращаемое значение:
1    - в случае удачного завершения.
```
Примечание:
Слайд должен быть описан в ресурсном файле библиотеки при помощи объекта RCDATA.


## ksDrawSlideEx - Отрисовать указанный слайд в заданном окне

Аналог данного метода при использовании API экспортных функций - ksDrawSlideEx.
Синтаксис Automation:
```
long ksDrawSlideEx (long HWindow,
long slideId,
long hInst);
Входные параметры:
HWindow    - дескриптор окна,
slideId    - идентификатор слайда,
hInst    - hInstance текущей библиотеки или NULL, если она одна.
Возвращаемое значение:
1    - в случае успешного завершения.
```
Примечание:
Слайд должен быть описан в ресурсном файле библиотеки при помощи объекта RCDATA.
Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64. Рекомендуется использовать функцию KompasObject::ksDrawSlideEx2.


## ksDrawSlideEx2 - Отрисовать указанный слайд в заданном окне

Аналог данного метода при использовании API экспортных функций ksDrawSlideEx.
Синтаксис Automation:
```
long ksDrawSlideEx2(long HWindow, long slideId, VARIANT hInst);
Входные параметры:
HWindow    - дескриптор окна, в котором нужно отрисовать BITMAP-слайд,
slideId    - идентификатор BITMAP-слайда в файле ресурсов,
hInst    - hInstance библиотеки, в которой расположен слайд.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Слайд должен быть описан в ресурсном файле библиотеки при помощи объекта RCDATA. HINSTANCE библиотеки нужно передать через VARIANT как VT_I4 в Win32 и VT_I8 в x64.
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо KompasObject::ksDrawSlideEx.


## ksDrawSlideFromFile - Отрисовать слайд в окне из текстового файла, содержащего блок RCDATA

Аналог данного метода при использовании API экспортных функций - ksDrawSlideFromFile.
Синтаксис Automation:
```
long ksDrawSlideFromFile (long HWindow,
BSTR fileName);
Входные параметры:
HWindow    - дескриптор окна,
fileName    - полное имя файла.
Возвращаемое значение:
1    - в случае удачного завершения.
```
Примечание:
Функция предназначена для отладки слайдов. Позволяет просмотреть отредактированный слайд в окне диалога без перетрансляции тестовой библиотеки.


## ksEditTextLine - Вызвать диалог редактирования сложноструктурированного текста

Аналог данного метода при использовании API экспортных функций - ksEditTextLine.
Синтаксис Automation:
```
BSTR ksEditTextLine (long HWindow, long* res, BSTR str);
Входные параметры:
Hwindow    - дескриптор окна,
str    - входная строка текста.
Выходные параметры:
res    - строка текста.
Возвращаемое значение:
1    - выход из диалога по кнопке OK,
0    - выход из диалога по кнопке Отмена.
```


## ksEnableTaskAccess - Разрешить или запретить доступ к задаче со стороны пользователя

Аналог данного метода при использовании API экспортных функций - EnableTaskAccess.
Синтаксис Automation:
```
BOOL ksEnableTaskAccess(long enable);
Входной параметр:
enable    - признак разрешения доступа к задаче со стороны пользователя: 1 - доступ разрешен, 0 - доступ запрещен.
Возвращаемое значение:
TRUE
```
Примечание:
См. также KompasObject::ksIsEnableTaskAccess.


## ksError - Выдать сообщение об ошибке

Аналог данного метода при использовании API экспортных функций - Error.
Синтаксис Automation:
```
BOOL ksError(BSTR message);
Входной параметр:
message    - строка с текстом сообщения об ошибке.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## ksExecDialPredefinedText - Получить предопределенный текст из файла текстовых шаблонов (с расширением tdp)

Аналог данного метода при использовании API экспортных функций - ksExecDialPredefinedText.
Синтаксис Automation:
```
BSTR ksExecDialPredefinedText (long HWindow, long FAR* res);
Входной параметр:
Hwindow    - несущее окно.
Выходной параметр:
res    - результат работы функции: 1 - в случае успеха, 0 - в случае неудачи.
Возвращаемое значение:
указатель на интерфейс ksDynamicArray массива строк, тип массива - TEXT_LINE_ARR.    - в случае успеха,
NULL    - в случае неудачи.
```
Примечание:
Метод возвращает все строки. Они складываются в одну с переводом строки "\n"


## ksExecDialPredefinedTextEx - Получить предопределенный текст из файла текстовых шаблонов (с расширением tdp)

Аналог данного метода при использовании API экспортных функций - ksExecDialPredefinedTextEx.
Синтаксис Automation:
```
LPDISPATCH ksExecDialPredefinedTextEx (long HWindow);
Входной параметр:
Hwindow    - несущее окно.
Возвращаемое значение:
указатель на интерфейс ksDynamicArray массива строк, тип массива - TEXT_LINE_ARR.    - в случае успеха,
NULL    - в случае неудачи.
```


## ksExecDialSpecialSymbol - Вызов диалога Вставка спецзнака

Аналог данного метода при использовании API экспортных функций - ksExecDialSpecialSymbol.
Синтаксис Automation:
```
int ksExecDialSpecialSymbol( long HWindow );
Входные параметры:
HWindow    - дескриптор окна.
Возвращаемое значение:
Номер спецзнака    - в случае успешного завершения,
-1    - в случае неудачи или закрытии диалога по отмене.
```


## ksExecDialSymbol - Вызов диалога Вставка символа

Аналог данного метода при использовании API экспортных функций - ksExecDialSymbol.
Синтаксис Automation:
```
BSTR ksExecDialSymbol( long HWindow, long * symb, BSTR font );
Входные параметры:
HWindow    - дескриптор окна,
symb    - номер символа, на котором будет стоять курсор,
font    - имя шрифта в диалоге.
Выходные параметры:
symb    - номер выбранного символа.
Возвращаемое значение:
Имя шрифта    - в случае успешного завершения,
NULL    - в случае неудачи или закрытии диалога по отмене.
```


## ksExecQualityDialog - Вызов диалога Выбор квалитета

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksExecQualityDialog.
Синтаксис Automation:
```
BOOL ksExecQualityDialog( long HWindow, BSTR curQual, double * dimValue, long inMM, LPDISPATCH param );
Входные параметры:
HWindow    - дескриптор окна,
curQual    - текущее значение квалитета,
dimValue    - значение для которого требуется выбрать квалитет или NULL,
inMM    - размерность параметров dimValue, high, low: 1 - миллиметры, 0 - единицы измерения текущего документа.
Выходной параметр:
param    - указатель на интерфейс структуры параметров квалитета ksQualityContensParam.
Возвращаемое значение:
TRUE    - в случае выбора квалитета,
FALSE    - отмены выбора или ошибки.
```


## ksExecuteKompasCommand - Выполнить команду системы КОМПАС

Аналог данного метода при использовании API экспортных функций - ksExecuteKompasCommand.
Синтаксис Automation:
```
BOOL ksExecuteKompasCommand (long commandID, BOOL post);
Входные параметры:
commandID    - константа из перечисления ProcessTypeEnum или ksKompasCommandEnum,
post    - true - запуск команды через PostMessage, - false - через SendMessage.
Возвращаемое значение:
TRUE    - в случае удачи,
FALSE    - в случае ошибки.
```
Примечание:
1. Проверить доступность команды можно с помощью функции KompasObject::ksIsKompasCommandEnable.
2. Проверить, нажата ли в данный момент кнопка команды, можно с помощью KompasObject::ksIsKompasCommandCheck.


## ksExecuteKompasLibraryCommand - Выполнить команду библиотеки

Синтаксис Automation:
```
long ksExecuteKompasLibraryCommand (long libId, long command);
Входные параметры:
libId    - уникальный номер библиотеки, полученный при выполнении ksAttachKompasLibrary,
command    - номер команды из библиотеки.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
В отличии от функции ksExecuteLibraryCommand выполняется команда у подключенной ранее библиотеки. ksExecuteLibraryCommand - подключает библиотеку, выполняет команду, если защита позволяет и отключает библиотеку.


## ksExecuteKompasLibraryCommandEx - Выполнить команду библиотеки

Интерфейс..
Синтаксис Automation:
```
long ksExecuteKompasLibraryCommandEx (long libId, long command, LPDISPATCH external);
Входные параметры:
libId    - уникальный номер библиотеки, полученный при выполнении ksAttachKompasLibrary,
command    - номер команды из библиотеки,
external    - указатель на интерфейс связи между библиотеками (приложениями).
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksExecuteLibraryCommand - Выполнить команду другой библиотеки

Аналог данного метода при использовании API экспортных функций - ksExecuteLibraryCommand.
Синтаксис Automation:
```
long ksExecuteLibraryCommand (BSTR fileName, long command);
Входные параметры:
fileName    - имя файла прикладной библиотеки,
command    - номер команды из библиотеки.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
Если задано короткое имя файла прикладной библиотеки (без пути), то эта библиотека ищется в подпапке ..\Libs главной папки системы КОМПАС.


## ksFullFileName - Проверить имя файла и, если оно не полное, добавить к нему имя текущей папки

Аналог данного метода при использовании API экспортных функций - FullFileName.
Синтаксис Automation:
```
BSTR ksFullFileName (BSTR oldName);
Входной параметр:
oldName    - старое имя файла.
Возвращаемое значение:
- полное имя файла.
```


## ksGet3dDocumentFromRef - Получить указатель на интерфейс ksDocument3D, соответствующий присланному указателю на документ

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGet3dDocumentFromReference.
Синтаксис Automation:
```
LPDISPATCH ksGet3dDocumentFromRef(long doc);
Входной параметр:
doc    - указатель на документ.
Возвращаемое значение:
указатель на интерфейс ksDocument3D    - в случае удачного завершения,
NULL    - если такого документа нет.
```


## ksGetApplication7 - Получить указатель интерфейса приложения API версии 7

Аналог данного метода при использовании экспортных функций CreateKompasApplication.
Синтаксис Automation:
```
LPDISPATCH ksGetApplication7();
Возвращаемое значение:
Указатель на интерфейс API версии 7 IApplication.
```


## ksGetDocOptions - Получить настройки текущего документа

Аналог данного метода при использовании API экспортных функций - GetDocOptions.
Синтаксис Automation:
```
long ksGetDocOptions (long optionsType, LPDISPATCH param);
Входной параметр:
optionsType    - тип настройки.
Выходной параметр:
param    - указатель на интерфейс параметров.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Соответствие входных и выходных параметров...
```


## ksGetDocumentByReference - Получить интерфейс документа по указателю на документ

Синтаксис Automation:
```
LPDISPATCH ksGetDocumentByReference (long docRef);
Входной параметр:
docRef    - указатель на документ.
Возвращаемое значение:
Указатель на интерфейс документа
```
Примечание:
Если docRef = 0, возвращается указатель на интерфейс IDispatch активного документа.


## ksGetDocumentType - Получить тип документа

Аналог данного метода при использовании API экспортных функций - ksGetDocumentType.
Синтаксис Automation:
```
long ksGetDocumentType (long doc);
Входной параметр:
doc    - указатель на документ.
Возвращаемое значение:
тип документа DocType    - при успешном завершении,
0    - в случае неудачи.
```
Примечание:
Если указатель doc = 0, возвращается тип активного документа.


## ksGetDocumentTypeByName - Получить тип документа DocType

Получить тип документа DocType
Аналог данного метода при использовании API экспортных функций - ksGetDocumentTypeByName.
Синтаксис Automation:
```
long ksGetDocumentTypeByName (BSTR fileName);
Входной параметр:
(BSTR) fileName    - полное имя файла документа.
Возвращаемое значение:
тип документа DocType "ldefin2d.h"    - при успешном завершении,
0    - в случае неудачи.
```
Примечание:
1. Документ при вызове этой функции не создается.
2. Независимо от используемого оформления возвращается:
| для чертежа | lt_DocSheetStandart |
| --- | --- |
| для спецификации | lt_DocSpc |
| для текстового документа | lt_DocTxtStandart |


## ksGetDocumentTypeByNameEx - Получить тип и специализацию документа по имени файла

Синтаксис Automation:
```
BSTR ksGetDocumentTypeByNameEx( BSTR fileName, long * docType, long * errorId );
Входные параметры:
fileName    - полное имя файла документа.
Выходные параметры:
docType    - тип документа DocType "ldefin2d.h",
errorId    - номер ошибки, если не удалось получить тип документа.
Возвращаемое значение:
- Специализация документа.
```
Примечание:
Возможные ошибки получения типа документа:
•etError64 64 - Документ не найден или неверная структура файла,
•etError217 217 - Документ создан более поздней версией,
•etError218 218 - Файл защищен с помощью приложения КОМПАС-Защита.


## ksGetExternalInterface - Получить указатель внешнего интерфейса

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetExternalInterface.
Синтаксис Automation:
```
LPDISPATCH ksGetExternalInterface();
Возвращаемое значение:
- указатель на интерфейс IDispatch связи между библиотеками (приложениями).
```
Примечание:
1. Метод не выполняет Addref на выдаваемый интерфейс.
2. Внешний интерфейс можно использовать для обмена данными между двумя приложениями. Первое приложение передает интерфейс при вызове метода KompasObject::ksExecuteKompasLibraryCommandEx.
3. После выполнения KompasObject::ksExecuteKompasLibraryCommandEx метод ksGetExternalInterface возвращает NULL.


## ksGetFullPathFromRelativePath - Сформировать полный путь к файлу из заданного пути к задающему файлу и относительного пути к файлу

Аналог данного метода при использовании API экспортных функций - GetFullPathFromRelativePath.
Синтаксис Automation:
```
BSTR ksGetFullPathFromRelativePath (BSTR mainFilePath, BSTR relativePath);
Входные параметры:
mainFilePath    - полный путь к задающему файлу,
relativePath    - относительный путь к требуемому файлу (без общей с задающим файлом части пути).
Возвращаемое значение:
- полный путь к файлу.
```


## ksGetFullPathFromSystemPath - Сформировать полный путь к файлу из заданного относительного пути к файлу и системного пути установленного типа

Интерфейс....
Аналог данного метода при использовании API экспортных функций - ksGetFullPathFromSystemPath.
Синтаксис Automation:
```
BSTR ksGetFullPathFromSystemPath (BSTR relativePath, long pathType);
Входные параметры:
relativePath    - относительный путь к файлу,
pathType    - тип системной папки.
Возвращаемое значение:
- полный путь к файлу.
```


## ksGetHWindow - Получить дескриптор главного окна КОМПАС-ГРАФИК

Аналог данного метода при использовании API экспортных функций - GetHWindow.
Синтаксис Automation:
```
long ksGetHWindow();
Возвращаемое значение:
- дескриптор главного окна, который используется функциями WINDOWS для работы с окнами.
```


## ksGetLibraryStylesArray - Получить указатель на интерфейс динамического массива стилей заданного типа, находящихся в заданной библиотеке стилей ksDynamicArray типа LIBRARY_STYLE_ARR

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetLibraryStylesArray,
Синтаксис Automation:
```
LPDISPATCH ksGetLibraryStylesArray (BSTR libraryName,
short libraryType);
Входные параметры:
libraryName    - полное имя библиотеки стилей,
libraryType    - тип библиотеки стиля.
Возвращаемое значение:
- указатель на интерфейс динамического массива ksDynamicArray типа LIBRARY_STYLE_ARR.
```


## ksGetLibraryTreeStruct - Получить структуру дерева библиотеки документов и библиотеки атрибутов

Аналог данного метода при использовании экспортных функций ksGetLibraryTreeStruct.
Синтаксис Automation:
```
BOOL ksGetLibraryTreeStruct (BSTR libName, LPDISPATCH root);
Входной параметр:
libName    - полное имя файла библиотеки моделей, фрагментов, атрибутов,
root    - указатель на интерфейс ksTreeNodeParam параметров корневого узла дерева.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetObjectsFilter3D - Получить интерфейс фильтрации объектов-моделей

Аналог данного метода при использовании API экспортных функций - ksGetObjectsFilter3D.
Синтаксис Automation:
```
IObjectsFilter3D * GetObjectsFilter3D();
Возвращаемое значение:
- указатель на интерфейс ksObjectsFilter3D.
```


## ksGetQualityContensParam - Получить параметры квалитета

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetQualityContensParam.
Синтаксис Automation:
```
long ksGetQualityContensParam (BSTR name, LPDISPATCH param, short inMM);
Входные параметры:
name    - поле допуска,
inMM    - размерность параметров minLimit, maxLimit, high, low: 1 - миллиметры, 0 - единицы измерения текущего документа.
Выходной параметр:
param    - указатель на интерфейс структуры параметров квалитета ksQualityContensParam.
Возвращаемое значение:
TRUE    - в случае выбора квалитета,
FALSE    - отмены выбора или ошибки.
```


## ksGetQualityDefects - Получить отклонения

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetQualityDefects.
Синтаксис Automation:
```
long ksGetQualityDefects (BSTR name,
double dimValue,
double* high,
double* low,
short inMM);
Входные параметры:
name    - поле допуска,
dimValue    - значение размера,
inMM    - размерность параметров dimValue, high, low: 1 - миллиметры, 0 - единицы измерения текущего документа.
Выходные параметры:
high    - верхнее отклонение,
low    - нижнее отклонение.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetQualityNames - Получить указатель на динамический массив полей допусков ksDynamicArray, которые поддерживают размер dimValue и не превышают указанных отклонений

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetQualityNames.
Синтаксис Automation:
```
long ksGetQualityNames (LPDISPATCH names,
double dimValue,
double high,
double low,
short system,
short withLimitation);
Входные параметры:
names    - указатель на динамический массив ksDynamicArray типа CHAR_STR_ARR,
dimValue    - номинал,
high    - верхнее отклонение,
low    - нижнее отклонение,
system    - система: 1 - отверстия, 0 - вала,
withLimitation    - признак учета ограничений: 0 - без учёта ограничений, 1 - с учётом ограничений, наложенных в системе.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksGetRelativePathFromFullPath - Сформировать относительный путь к файлу из полного пути к задающему файлу и полного пути к файлу

Интерфейс....
Аналог данного метода при использовании API экспортных функций - GetRelativePathFromFullPath.
Синтаксис Automation:
```
BSTR ksGetRelativePathFromFullPath (BSTR mainFilePath,
BSTR sourcePath);
Входные параметры:
mainFilePath    - полный путь к задающему файлу,
sourcePath    - полный путь к требуемому файлу.
Возвращаемое значение:
- относительный путь к файлу.
```


## ksGetRelativePathFromSystemPath - Сформировать относительный путь к файлу из заданного полного пути к файлу и системного пути установленного типа

Аналог данного метода при использовании API экспортных функций - ksGetRelativePathFromSystemPath.
Синтаксис Automation:
```
BSTR ksGetRelativePathFromSystemPath (BSTR sourcePath, long pathType);
Входные параметры:
sourcePath    - полный путь к файлу,
pathType    - тип системной папки.
Возвращаемое значение:
- относительный путь к файлу.
```


## ksGetSelectedEmbodimentAdditionalNumber - Вернуть дополнительный номер исполнения, выбранный в диалоге выбора файла (ksSelectD3Model)

Аналог данного метода при использовании API экспортных функций - ksGetSelectedEmbodimentAdditionalNumber.
Синтаксис Automation:
```
BSTR ksGetSelectedEmbodimentAdditionalNumber();
Возвращаемое значение:
- дополнительный номер исполнения.
```
Примечание:
1. В диалоге выбора файла KompasObject::ksSelectD3Model могут быть выбраны также обозначения исполнения, если они были созданы в файле модели.
2. Получить выбранное обозначение исполнения можно с помощью функции KompasObject::ksGetSelectedEmbodimentMarking.


## ksGetSelectedEmbodimentMarking - Вернуть обозначение исполнения, выбранное в диалоге выбора файла (ksSelectD3Model)

Аналог данного метода при использовании API экспортных функций - ksGetSelectedEmbodimentMarking.
Синтаксис Automation:
```
BSTR ksGetSelectedEmbodimentMarking();
Возвращаемое значение:
- обозначение исполнения.
```
Примечание:
1. В диалоге выбора файла KompasObject::ksSelectD3Model могут быть выбраны также дополнительные номера, если они были созданы в файле модели.
2. Получить выбранный дополнительный номер исполнения можно с помощью функции KompasObject::ksGetSelectedEmbodimentAdditionalNumber.


## ksGetSysOptions - Получить системные настройки

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetSysOptions.
Синтаксис Automation:
```
long ksGetSysOptions (long optionsType, LPDISPATCH param);
Входной параметр:
optionsType    - тип настройки.
Выходные параметры:
param    - указатель на интерфейс параметров, соответствующий настройке.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Соответствие входных и выходных параметров...
```


## ksGetSystemControlStartResult - Проверить запущен SystemControlStart или нет

Аналог данного метода при использовании API экспортных функций - ksGetSystemControlStartResult.
Синтаксис Automation:
```
long ksGetSystemControlStartResult();
Входные параметры:
- не используется.
Возвращаемое значение:
тип выхода из режима работы под управлением системы КОМПАС.
```


## ksGetSystemProfileString - Получить строку из файла инициализации системы или из реестра

Интерфейс....
Аналог данного метода при использовании API экспортных функций - ksGetSystemProfileString.
Синтаксис Automation:
```
BSTR ksGetSystemProfileString (BSTR lpSection,
BSTR lpKey);
Входные параметры:
lpSection    - имя секции,
lpKey    - имя ключа.
Возвращаемое значение:
строка из файла инициализации системы (kompasw.ini) или из реестра (Registry)    - в случае успеха,
NULL    - если секция или ключ не найдены.
```
Пример:
```vb
lpSection = "Directories"
lpKey = "Sys"
Результат: lpReturnedString = "c:\Program Files\Kompas54\Sys"
```


## ksGetSystemVersion - Получить номер версии системы

Интерфейс....
Аналог данного метода при использовании API экспортных функций - ksGetSystemVersion.
Синтаксис Automation:
```
long ksGetSystemVersion (long* iMajor,
long* iMinor,
long* iRelease,
long* iBuild);
Выходные параметры:
iMajor    - старшее слово версии,
iMinor    - младшее слово версии,
iRelease    - номер выпуска внутри одной версии,
iBuild    - номер сборки внутри одного выпуска.
Возвращаемое значение:
1    - в случае удачного завершения.
```
Пример:
```vb
Для версии 5.4 Release 2 Build 1
iMajor = 5
iMinor = 4
iRelease = 2
iBuild = 1
```
Примечание:
Любой из указателей может быть равен 0, тогда соответствующее ему значение не выдается.


## ksGetWorkWindowColor - Получить цвет фона рабочего окна КОМПАС-ГРАФИК

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksGetWorkWindowColor.
Синтаксис Automation:
```
long ksGetWorkWindowColor();
Возвращаемое значение:
- цвет фона рабочего окна.
```


## ksIsEnableTaskAccess - Определить, разрешен ли доступ к задаче со стороны пользователя

Интерфейс....
Аналог данного метода при использовании API экспортных функций - IsEnableTaskAccess.
Синтаксис Automation:
```
long ksIsEnableTaskAccess();
Возвращаемое значение:
0    - доступ к задаче со стороны пользователя запрещен,
1    - доступ к задаче со стороны пользователя разрешен.
```
Примечание:
См. также KompasObject::ksEnableTaskAccess.


## ksIsKompasCommandCheck - Проверить, нажата ли кнопка команды

Аналог данного метода при использовании API экспортных функций - ksIsKompasCommandCheck.
Синтаксис Automation:
```
int LIB_FUNC ksIsKompasCommandCheck (long commandID);
Входные параметры:
commandID    - константа из перечисления ProcessTypeEnum или ksKompasCommandEnum.
Возвращаемое значение:
1    - кнопка нажата,
0    - кнопка отжата.
```


## ksIsKompasCommandEnable - Проверить доступность выполнения команды

Аналог данного метода при использовании API экспортных функций - ksIsKompasCommandEnable.
Синтаксис Automation:
```
BOOL ksIsKompasCommandEnable (long commandID);
Входные параметры:
commandID    - константа из перечисления ProcessTypeEnum или ksKompasCommandEnum.
Возвращаемое значение:
TRUE    - команда доступна,
FALSE    - команда недоступна.
```


## ksIsLibraryEnabled - Проверить защиту библиотеки фрагментов и моделей

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksIsLibraryEnabled.
Синтаксис Automation:
```
long ksIsLibraryEnabled(BSTR libName);
Входные параметры:
libName    - имя библиотеки либо полное, либо относительно папки LIBS.
Возвращаемое значение:
1    - выполнить библиотеку можно,
0    - выполнить библиотеку нельзя.
```
Примечание:
Функция применима для библиотек rtw, библиотек фрагментов lfr, библиотек моделей l3d


## ksIsModule3DActive - Проверить, разрешена ли работа с модулем 3D

Аналог данного метода при использовании API экспортных функций - ksIsModule3DActive.
Синтаксис Automation:
```
long ksIsModule3DActive();
Возвращаемое значение:
1    - работа с модулем 3D разрешена,
0    - работа с модулем 3D не разрешена.
```


## ksIsModuleSpecificationActive - Проверить, разрешена ли работа со спецификацией

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksIsModuleSpecificationActive.
Синтаксис Automation:
```
long ksIsModuleSpecificationActive();
Возвращаемое значение:
1    - работа со спецификацией разрешена,
0    - работа со спецификацией запрещена.
```
Примечание:
Если ksIsModuleSpecificationActive == FALSE, работа со спецификацией запрещена.
Для включения работы со спецификацией используйте метод KompasObject::ksModuleSpecification. Этот же метод позволяет отключить работу со спецификацией.


## ksLockFileCache - Выключить/включить кеширование поиска файлов

Синтаксис Automation:
```
BOOL ksLockFileCache( BOOL lock );
Входные параметры:
lock    - TRUE - запретить кеширование, - FALSE - разрешить кеширование.
Возвращаемое значение:
Предыдущее значение флага
```
Примечание:
Кеширование включается при запуске библиотечной команды.


## ksMaterialDlg - Проверить на получение и получить материал и его плотность из справочника материалов

Аналог данного метода при использовании API экспортных функций - ksMaterialDlg.
Синтаксис Automation:
```
BSTR ksMaterialDlg (long HWindow,
long* res,
double* plt,
double* kod_size_1,
double* kod_size_2,
double* kod_size_3,
double* kod_size_4,
BSTR kod_tip);
Входные параметры:
Hwindow    - дескриптор окна,
kod_tip    - строка кодов типов сортаментов для отображения (через запятую) (0 - отображается все).
Выходные параметры:
res    - результат работы функции: - 1 - справочник материалов не подключился, 0 - выход из диалога справочника материалов по отмене, 1- успешное завершение,
plt    - плотность выбранного материала,
kod_size_1    - код вида типоразмера: 1 - толщина, 2 - диаметр, 0 - вид не определен,
kod_size_2    - значение размера вида толщина, диаметр, диаметр вписанной окружности, значение А типоразмеров вида АхВ или АхВхС,
kod_size_3    - значение В типоразмеров вида АхВ или АхВхС,
kod_size_4    - значение С типоразмеров вида АхВхС.
Возвращаемое значение:
строка с обозначением материала    - в случае успешного завершения,
NULL    - в случае неудачи.
```
Примечание:
Метод устарел и не используется. Предназначался для работы со справочником материалов, который в настоящее время не входит в комплект поставки.


## ksMessage - Выдать сообщение

Аналог данного метода при использовании API экспортных функций - Message.
Синтаксис Automation:
```
BOOL ksMessage (BSTR message);
Входной параметр:
message    - строка с текстом сообщения.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## ksMessageBoxResult - Вывести сообщение, соответствующее результату работы библиотеки (с кодом ошибки)

Интерфейс..
Вывести сообщение, соответствующее результату работы библиотеки (с кодом ошибки).
Аналог данного метода при использовании API экспортных функций - MessageBoxResult.
Синтаксис Automation:
```
BOOL ksMessageBoxResult();
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Функция сбрасывает флаг ошибки в случае, если эта ошибка не является фатальной.


## ksModule3D - Подключить 3D модуль для режима сетевой работы системы

Аналог данного метода при использовании API экспортных функций - ksModule3D.
Синтаксис Automation:
```
long ksModule3D (BOOL attach);
Входные параметры:
attach    TRUE - включить работу с 3D модулем, FALSE - отключить.
Возвращаемое значение:
1    - если был инициирован процесс подключения или отключения 3D модуля,
0    - в случае неудачи.
```


## ksModuleSpecification - Управление возможностью работы со спецификацией

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksModuleSpecification.
Синтаксис Automation:
```
long ksModuleSpecification (BOOL attach);
Входной параметр:
Attach    - признак выполняемого действия: 1 - включить работу со спецификацией, 0 - выключить работу со спецификацией.
Возвращаемое значение:
1    - если был инициирован процесс включения или отключения возможности работы со спецификацией,
0    - в случае неудачного завершения.
```
Примечание:
Проверить, включена или отключена возможность работы со спецификацией, можно с помощью метода KompasObject.


## ksOpenHelpFile - Открыть файл справки

Интерфейс....
Аналог данного метода при использовании API экспортных функций - ksOpenHelpFile.
Синтаксис Automation:
```
BOOL ksOpenHelpFile (BSTR file, long command, long id);
Входные параметры:
file    - полное имя файла Справки,
command    - тип Справки (контекстная, по команде и т.д.),
id    - идентификатор страницы справки.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```
Примечание:
1. Синтаксис соответствует WinHelp.
2. Функция открывает файл Справки КОМПАС.
3. При закрытии системы окно Справки закроется автоматически.


## ksPrintKompasDocument - Печать КОМПАС-документа

Аналог данного метода при использовании API экспортных функций - ksPrintKompasDocument.
Синтаксис Automation:
```
long ksPrintKompasDocument (BSTR fileName,
BSTR toFile,
double scale);
Входные параметры:
fileName    - полное имя файла печатаемого документа,
toFile    - имя файла, в который требуется выводить документ (*.prn и т.д.), или NULL, если нужно вывести сразу на принтер,
scale    - масштаб вывода.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## ksPrintKompasDocumentEx - Печать КОМПАС-документа

Аналог данного метода при использовании API экспортных функций - ksPrintKompasDocumentEx.
Синтаксис Automation:
```
long ksPrintKompasDocument (BSTR fileName,
BSTR toFile,
double scale,
BOOL fKompasPrinter);
Входные параметры:
fileName    - полное имя файла печатаемого документа,
toFile    - имя файла, в который требуется выводить документ (*.prn и т.д.), или NULL, если нужно вывести сразу на принтер,
scale    - масштаб вывода,
fKompasPrint    - TRUE используем принтер Компас, - FALSE - умолчательный принтер Windows.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Развитие метода KompasObject::ksPrintKompasDocument.


## ksPrintPreviewWindow - Открыть окно предварительного просмотра документа перед печатью

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksPrintPreviewWindow.
Синтаксис Automation:
```
long ksPrintPreviewWindow (LPDISPATCH docsArr, long inquiry);
Входные параметры:
docsArr    - указатель на интерфейс динамического массива ksDynamicArray типа CHAR_STR_ARR,
inquiry    - признак запроса документов: 1 - если docsArr = NULL или массив пуст, запросить документы у пользователя, 0 - показать документы без запроса.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```


## ksPumpWaitingMessages - Обработать все сообщения, имеющиеся в очереди сообщений задачи

Аналог данного метода при использовании API экспортных функций - PumpWaitingMessages.
Синтаксис Automation:
```
BOOL ksPumpWaitingMessages();
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## ksReadDouble - Запросить ввод вещественного числа с контролем попадания значения в заданный интервал

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ReadDouble.
Синтаксис Automation:
```
long ksReadDouble (BSTR mess,
double defValue,
double min,
double max,
double* value);
Входные параметры:
mess    - строка приглашения,
defValue    - предлагаемое значение по умолчанию,
min, max    - интервал возможных значений.
Выходной параметр:
value    - результат ввода.
Возвращаемое значение:
1    - в случае удачного завершения.
```


## ksReadInt - Запросить ввод целого числа с контролем попадания значения в заданный интервал

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ReadInt.
Синтаксис Automation:
```
long ksReadInt (BSTR mess,
long defValue,
long min,
long max,
long* value);
Входные параметры:
mess    - строка приглашения,
defValue    - предлагаемое значение по умолчанию,
min, max    - интервал возможных значений.
Выходной параметр:
value    - результат ввода.
Возвращаемое значение:
1    - в случае удачного завершения.
```


## ksReadString - Запросить ввод строки

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ReadString.
Синтаксис Automation:
```
BSTR ksReadString (BSTR mess,
BSTR defValue);
Входные параметры:
mess    - строка приглашения,
defValue    - предлагаемое значение по умолчанию.
Возвращаемое значение:
- результат ввода.
```


## ksRefreshActiveWindow - Обновить активное окно документа

Аналог данного метода при использовании API экспортных функций - ksRefreshActiveWindow.
Синтаксис Automation:
```
long ksRefreshActiveWindow();
Возвращаемое значение:
1    - в случае удачного завершения.
0    - в случае неудачи.
```


## ksRemoveUniqueFile - Удалить уникальный служебный файл

Интерфейс..
Аналог данного метода при использовании API экспортных функций - RemoveUniqueFile.
Синтаксис Automation:
```
BOOL ksRemoveUniqueFile (BSTR fileName);
Входной параметр:
fileName    - имя служебного файла.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```
Примечание:
Удалить служебный файл с уникальным именем, предварительно полученным с помощью функции ksUniqueFileName.


## ksResultNULL - Обнулить результат работы библиотеки, если ошибка не фатальная

Интерфейс....
Аналог данного метода при использовании API экспортных функций - ResultNULL.
Синтаксис Automation:
```
long ksResultNULL();
Возвращаемое значение:
0    - если ошибок не обнаружено,
1    - если ошибка была обнулена.
```


## ksReturnResult - Получить результат работы библиотеки

Аналог данного метода при использовании API экспортных функций - ReturnResult.
Синтаксис Automation:
```
long ksReturnResult();
Возвращаемое значение:
- Код ошибки в зависимости от типа документа: графического или документа-модели при выполнении библиотечной программы.
```
Примечание:
1. Коды ошибок документа-модели и графического документа частично совпадают, поэтому их нужно обрабатывать в зависимости от выполняемых операций.
2. Ошибка с номером >0 не является фатальной. Отрицательный номер ошибки приводит к завершению программы.
3. Текст ошибок можно получить методом KompasObject::ksStrResult.
4. Сообщение с текстом ошибки можно получить, используя метод KompasObject_ksMessageBoxResult.
5. Сбросить ошибку, если она не фатальная, можно, используя метод KompasObject_ksResultNULL.


## ksSaveFile - Выдать диалог выбора файла для сохранения

Аналог данного метода при использовании API экспортных функций - ksSaveFile.
Синтаксис Automation:
```
BSTR ksSaveFile (BSTR ext,
BSTR oldName,
BSTR filter,
BOOL preview);
Входные параметры:
ext    - расширение имени файла,
oldName    - имя файла по умолчанию,
filter    - фильтр поиска (0 - формируется автоматически),
preview    - признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Возвращаемое значение:
- строка с именем файла.
```


## ksSelectD3Model - Выбрать из списка открытых или из файла модели

Аналог данного метода при использовании API экспортных функций - ksSelectD3Model.
Синтаксис Automation:
```
BSTR ksSelectD3Model( BOOL onlyDetail, BOOL showAddNum );
Возвращаемое значение:
- имя файла,
Входные параметры:
onlyDetail    - только файлы деталей,
showAddNum    - отображать комбобокс выбора дополнительного номера.
```
Примечание:
1. В диалоге выбора файла могут быть выбраны также обозначение исполнения и дополнительный номер исполнения, если они были созданы в файле модели.
2. Получить выбранное обозначение исполнения можно с помощью метода KompasObject::ksGetSelectedEmbodimentMarking.
3. Получить выбранный дополнительный номер исполнения можно с помощью метода KompasObject::ksGetSelectedEmbodimentAdditionalNumber.


## ksSetCriticalProcess - Установить критический процесс

Аналог данного метода при использовании API экспортных функций - ksSetCriticalProcess.
Синтаксис Automation:
```
long ksSetCriticalProcess();
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
```
Примечание:
До завершения ksCursor, ksPlacement или конца библиотечной команды системе не разрешается принудительно завершать работу библиотеки.


## ksSetDebugMessagesMode - Включить/выключить режим автоматического вывода сообщений о результатах работы библиотеки

Аналог данного метода при использовании API экспортных функций - ksSetDebugMessagesMode.
Синтаксис Automation:
```
BOOL ksSetDebugMessagesMode( BOOL debugMode );
Возвращаемое значение:
- предыдущее состояние флага режима.
```


## ksSetDocOptions - Задать тип настройки текущего документа

Аналог данного метода при использовании API экспортных функций - SetDocOptions.
Синтаксис Automation:
```
long ksSetDocOptions (long optionsType, LPDISPATCH param);
Входной параметр:
optionsType    - тип настройки.
Выходной параметр:
param    - указатель на интерфейс параметров.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Соответствие входных и выходных параметров...
```


## ksSetSysOptions - Установить системные настройки

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksSetSysOptions.
Синтаксис Automation:
```
long ksSetSysOptions (long optionsType, LPDISPATCH param);
Входные параметры:
optionsType    - тип настройки.
Выходные параметры:
param    - указатель на интерфейс параметров, соответствующий настройке.
Возвращаемое значение:
1    - в случае удачного завершения,
0    - в случае неудачи.
Соответствие входных и выходных параметров...
```


## ksSlideBackground - Установить цвет фона по умолчанию для отрисовки слайда

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksSlideBackground.
Синтаксис Automation:
```
BOOL ksSlideBackground (long color);
Входной параметр:
color    - цвет фона слайда.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```


## ksStrResult - Получить строку сообщения, соответствующую результату работы библиотеки (с кодом ошибки)

Аналог данного метода при использовании API экспортных функций - StrResult.
Синтаксис Automation:
```
BSTR ksStrResult();
Возвращаемое значение:
- строка сообщения, соответствующая результату работы библиотеки.
```
Примечание:
Функция сбрасывает флаг ошибки в случае, если эта ошибка не является фатальной.


## ksSystemControlStart - Перейти под управление КОМПАС-ГРАФИК

Аналог данного метода при использовании API экспортных функций - SystemControlStart.
Синтаксис Automation:
```
long ksSystemControlStart (BSTR menuCommand);
Входной параметр:
menuCommand    - строка, помещаемая в меню для возврата в библиотеку.
Возвращаемое значение:
тип выхода из режима работы под управлением системы КОМПАС.
```
Примечание:
В результате вызова этого метода управление передается системе КОМПАС. В случае выполнения в системе КОМПАС одного из действий, описываемых возвращаемым значением, управление вновь передается библиотеке, и она должна соответствующим образом отреагировать на внешнее воздействие. Например, если пользователь вызовет команду закрытия КОМПАС, библиотека должна прекратить свои действия.


## ksSystemControlStop - Отдать управление библиотеке

Интерфейс..
Аналог данного метода при использовании API экспортных функций - SystemControlStop Синтаксис Automation:
BOOL ksSystemControlStop();
Возвращаемое значение:
| TRUE | - в случае удачного завершения. |
| --- | --- |
Примечание:
Функция принудительно передает управление библиотечной функции, запущенной в режиме немодального диалога (в этом случае управление может переходить от библиотеки к системе и наоборот).


## ksSystemPath - Получить системный путь установленного типа

Аналог данного метода при использовании API экспортных функций - ksSystemPath.
Синтаксис Automation:
```
BSTR ksSystemPath(long folderType);
Входной параметр:
folderType    - тип запрашиваемой системной папки.
Возвращаемое значение:
- строка с запрашиваемым путем.
```


## ksUniqueFileName - Получить уникальное имя файла

Аналог данного метода при использовании API экспортных функций - UniqueFileName.
Синтаксис Automation:
```
BSTR ksUniqueFileName();
Возвращаемое значение:
- строка с именем файла.
```
Примечание:
Получить уникальное имя для создания служебного файла в процессе работы библиотеки. Имя регистрируется и запоминается системой. По окончании работы в случае, если файл с таким именем существует, он будет автоматически удален.


## ksViewGetDensity - Выбрать из диалога плотность

Интерфейс..
Аналог данного метода при использовании API экспортных функций - ksViewGetDensity.
Синтаксис Automation:
```
double ksViewGetDensity (long HWindow);
Входной параметр:
HWindow    - дескриптор "родительского" окна или NULL.
Возвращаемое значение:
плотность (г/куб.мм)    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Плотность выбирается из системного файла плотностей graphic.dns.


## ksViewGetDensityAndMaterial - Выбрать из диалога плотность и наименование материала

Аналог данного метода при использовании API экспортных функций - ksViewGetDensityAndMaterial.
Синтаксис Automation:
```
BSTR ksViewGetDensityAndMaterial (double *density, long HWindow);
Входные параметры:
Hwindow    - дескриптор окна.
Выходные параметры:
density    - плотность (г/куб.мм)
Возвращаемое значение:
Строка с обозначением материала    - в случае успешного завершения,
NULL    - в случае неудачи.
```
Примечание:
Плотность выбирается из системного файла плотностей graphic.dns.


## ksWriteSlide - Записать выделенные объекты чертежа в формате векторного слайда КОМПАС

Интерфейс..
Аналог данного метода при использовании API экспортных функций - WriteSlide.
Синтаксис Automation:
```
long ksWriteSlide (BSTR fileName,
long slideId,
double x,
double y);
Входные параметры:
filename    - имя файла для записи,
slideId    - идентификатор слайда в файле ресурсов,
x, y    - координаты базовой точки.
Возвращаемое значение:
1    - в случае удачного завершения.
```
Примечание:
Функция выводит выделенные объекты изображения чертежа в формат векторного слайда КОМПАС.
Документ должен быть открыт с отображением на экране.


## ksYesNo - Подтвердить действие или отказаться от него

Аналог данного метода при использовании API экспортных функций - YesNo.
Синтаксис Automation:
```
long ksYesNo (BSTR s);
Входной параметр:
s    - строка сообщения.
Возвращаемое значение:
1    - при подтверждении действия,
0    - при отказе,
-1    - при отмене действия.
```
Примечание:
Подтверждение означает нажатие в диалоге кнопки Да (Yes, OK); отказ - нажатие кнопки Нет (No); отмена действия - нажатие кнопки Отмена (Cansel).


## LoadDSK - Загрузить dsk КОМПАС

Синтаксис Automation:
```
BOOL LoadDSK();
Возвращаемое значение:
TRUE    - в случае удачного открытия dsk,
FALSE    dsk не открыт, возможно открыт ранее.
```
Примечание:
При открытии dsk будут подгружены документы и библиотеки, которые были подключены в последнем сеансе работы КОМПАС.


## lookStyle - Тип отрисовки визуальной части приложения КОМПАС

Тип данных: long
Синтаксис Automation:
```
lookStyle = iKompasObject.lookStyle    Получить свойство (* )
iKompasObject.lookStyle = lookStyle    Установить свойство (* )
lookStyle = iKompasObject.GetLookStyle()    Получить свойство (**)
iKompasObject.SetLookStyle( lookStyle )    Установить свойство (**)
```
Примечание:
Свойство lookStyle может принимать или возвращать значения из ksTypeLookStyle.


## Quit - Закрыть приложение

Синтаксис Automation:
```
void Quit();
Входные параметры:
- не используется.
Возвращаемое значение:
- не используется.
```


## SpcActiveDocument - Получить указатель на интерфейс для текущего документа-спецификации

Синтаксис Automation:
```
LPDISPATCH SpcActiveDocument();
Возвращаемое значение:
- указатель на интерфейс ksSpcDocument.
```
Примечание:
Если документ спецификации не активен, функция возвращает NULL.


## SpcDocument - Получить указатель на интерфейс документа-спецификации

Синтаксис Automation:
```
LPDISPATCH SpcDocument();
Возвращаемое значение:
- указатель на интерфейс ksSpcDocument.
```


## TransferInterface - Преобразовать интерфейсный объект одного типа API в интерфейсный объект API другого типа

Аналог данного метода при использовании API экспортных функций - ksTransferInterface.
Тип данных: LPUNKNOWN
Синтаксис Automation:
```
LPUNKNOWN TransferInterface (LPUNKNOWN obj,
long newApiType,
long objNewType);
Входные параметры:
obj    - интерфейс 3D COM, API5 Auto или API7,
apiNewType    - тип API, к которому преобразуется исходный интерфейс, может принимать значения из ksAPITypeEnum,
objNewType    - тип объекта в интерфейсе, к которому преобразуется исходный объект (может быть задан 0).
Возвращаемое значение:
- указатель на интерфейс объекта в API заданного типа.
```
Описание:
Метод позволяет получить интерфейс объекта заданного типа objNewType в API заданного типа apiNewType по присланному объекту obj.
Примечание:
1. Исходным объектом может быть интерфейс 3D COM, API5 Auto или API7.
2. Если новый тип API совпадает с API присланного объекта, возвращается присланный объект.
3. Если задан новый тип API как неопределенный (0), возвращается присланный объект.
4. Если задан новый тип API значением вне допустимого множества значений, возвращается NULL.
5. Если задан новый тип объекта значением вне допустимого множества значений, возвращается NULL.
6. Если задан новый тип объекта неопределенным значением (0), возвращается интерфейс базового объекта, совпадающий по типу с требуемым объектом, либо требуемый объект может быть получен от базового через QueryInterface; рекомендуется явно указывать требуемый тип объекта.


## TransferReference - Преобразовать объект по reference из API5 в интерфейсный объект API7

Аналог данного метода при использовании API экспортных функций - ksTransferReference.
Тип данных LPUNKNOWN
Синтаксис Automation:
```
LPUNKNOWN ksTransferReference( long obj, long doc );
Входные параметры:
obj    - указатель на объект в API5,
doc    - указатель на документ, где находится объект.
Возвращаемое значение:
- указатель на интерфейс объекта в API7 (Тип данных:LPUNKNOWN).
```
Описание:
Функция позволяет получить интерфейс объекта в API7 по присланному указателю obj в API5.
Примечание:
1. Функция реализована пока для документов и объектов вида графического документа. В остальных случаях возвращается NULL.
2. Если obj - указатель на документ, параметр doc игнорируется.
3. Если параметр doc = 0, берется текущий документ.


## visible - Свойство видимости приложения

Тип данных: BOOL
Синтаксис Automation:
```
visible = iKompasObject.Visible    Получить свойство (* )
iKompasObject.Visible = visible    Установить свойство (* )
visible = iKompasObject.GetVisible()    Получить свойство (**)
iKompasObject.SetVisible (visible)    Установить свойство (**)
```
Примечание:
Позволяет получить и установить свойство видимости приложения КОМПАС-3D.
