КОМПАС-МАСТЕР

КОМПАС-МАСТЕР - это ориентированные на прикладного программиста инструментальные средства разработки приложений (библиотек конструктивов, прикладных САПР) на базе системы КОМПАС.

КОМПАС-МАСТЕР включает в свой состав 2D API и 3D API.

2D API обеспечивает доступ к системе КОМПАС для формирования и обработки двухмерных графических документов. В его состав входят следующие варианты реализации:

1. Набор экспортных функций, оформленных в виде динамически подключаемых DLL-модулей.

2. Автоматизация.

3D API обеспечивает доступ к системе КОМПАС для создания и редактирования трехмерных моделей. В его состав входят следующие варианты реализации:

1. Стандартные COM-объекты. Использование COM-интерфейсов позволяет получить максимальную производительность системы.

2. Автоматизация.


Автоматизация
Автоматизация (Automation)

Технология Automation реализована в API системы КОМПАС через интерфейсы IDispatch.

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

Dispath-интерфейсы могут быть использованы при программировании в большинстве современных сред: Visual Basic, Visual C++, C++ Builder, Delphi.


Создание библиотеки с использованием КОМПАС-Макро
Последовательность шагов для создания библиотеки
с использованием КОМПАС-Макро

Чтобы создать библиотеку, нужно выполнить следующие действия.

1. Запустить систему КОМПАС.

2. Подключить библиотеку КОМПАС-Макро.

3. Вызвать команду библиотеки macro catalog.

4. В появившемся на экране диалоге Макрос нажать кнопку Создать.

5. Ввести имя файла создаваемой библиотеки.

Будет запущен PythonWin, в котором активизировано окно создаваемого файла.

4. Для создания КОМПАС-библиотеки необходимо вставить функции библиотеки. и сохранить файл. Имя файла появится в списе Меню диалога Макрос.

5. Чтобы запустить библиотеку, следует выделить имя файла и нажать кнопку Выполнить.

Примеры реализации библиотек расположены в папке ..\SDK\PIK10.


Создание библиотеки в среде Borland C++ 5.0
Последовательность шагов для создания библиотеки
в среде Borland C++

Чтобы создать библиотеку, нужно выполнить следующие действия.

1. Вызвать команду File - New - Project..., указать имя проекта. Включить опции проекта MultiThread.

2. В настройках проекта установить выравнивание:
Project Options - 32-bit Compiler - Processor - Data Alignment = Byte.

3. В настройках проекта или в дальнейшем после компиляции изменить расширение файла библиотеки с dll на rtw.

4. Для создания КОМПАС-библиотеки необходимо вставить несколько экспортных функций.

Пример реализации простейшей библиотеки расположен в папке ..\SDK\С++\Borlandc\Step1.


Создание библиотеки в среде Delphi 5.0
Последовательность шагов для создания библиотеки
в среде Delphi 5.0

Чтобы создать библиотеку, нужно выполнить следующие действия.

1. Вызвать команду File - New.... Выбрать тип DLL на вкладке NEW.

2. В настройках проекта установить выравнивание: выключить опцию
Project Options - Compiler - Code Generation - Aligned Record fields.

3. В настройках проекта или в дальнейшем после компиляции изменить расширение файла библиотеки с dll на rtw.

4. Для создания КОМПАС-библиотеки необходимо вставить несколько экспортных функций.

Примеры реализации простейшей библиотеки расположены в папках:

-..SDK\PASCAL\DELPHIAUTO\Step1 (библиотека написана с использованием Автоматизации);

-..SDK\PASCAL\DELPHI\Step1 (библиотека написана с использованием экспортных функций).


Создание библиотеки в среде С++ Builder 5.0
Последовательность шагов для создания библиотеки
в среде С++ Builder 5.0

1. Вызвать из меню File команду New...  Выбрать тип DLL Wizard на вкладке NEW. Другие настройки на этой вкладке оставить без изменения.

2. В настройках проекта установить выравнивание:
Project Options - Advanced Compiler - Data Alignment = Byte

3. В настройках проекта или в дальнейшем после компиляции изменить расширение файла библиотеки с dll на rtw.

4. Для создания КОМПАС-библиотеки необходимо вставить несколько экспортных функций.

Пример реализации простейшей библиотеки расположен в папках:
- ..SDK\С++\CBUILDERAUTO\Step1 (библиотека написана с использованием Автоматизации);
-..SDK\С++\CBUILDER\Step1 (библиотека написана с использованием экспортных функций).


Создание библиотеки в среде VBasic 6.0
Последовательность шагов для создания библиотеки
в среде VBasic 6.0

1. Вызвать из меню File команду New - Project, тип ActiveX DLL.

2. Для создания КОМПАС-библиотеки необходимо вставить несколько функций.

3. Библиотеки данного типа подключаются к КОМПАС на вкладке ActiveX, где их необходимо зарегистрировать при первом подключении, нажав кнопку Добавить.

Пример реализации простейшей библиотеки расположен в папке ..SDK\Basic\Step1 (библиотека написана с использованием Автоматизации).


Создание библиотеки в среде VС++ 6.0
Последовательность шагов для создания библиотеки
в среде VС++ 6.0

1. Вызвать из меню File команду New.

2. На вкладке Projects выбрать из списка вариант MFC AppWizard (dll). Ввести в поле Project Name: имя проекта и нажать кнопку OK.

3. В появившемся на экране диалоге MFC AppWizard - Step 1 of 1 выбрать в группе What type of DLL would you like to create? вариант MFC Extension DLL (using shared MFC DLL). Другие настройки этого диалога оставить без изменения и нажать кнопку Finish.

4. Вызвать команду Project - Settings....

5. В появившемся диалоге Project Settings раскрыть вкладку C/C++.

6. Выбрать из раскрывающегося списка Category вариант General. В поле Preprocessor definition подстроку _DEBUG заменить на NDEBUG.

7. Выбрать из раскрывающегося списка Category вариант Code Generation. Выбрать из раскрывающегося списка Use run-time library вариант Multithread DLL.

8. Закрыть диалог, нажав кнопку OK.

9. Для создания КОМПАС- библиотеки необходимо вставить несколько функций.

10. В настройках проекта или в дальнейшем после компиляции изменить расширение файла библиотеки с dll на rtw.

Пример реализации простейшей библиотеки расположен в папках
- ..\SDK\С++\VisualcAUTO\Step1 (библиотека написана с использованием Автоматизации);
- ..SDK\С++\Visualc\Step1 (библиотека написана с использованием экспортных функций).


CommandWindow- Создание меню в диалоговом окне
CommandWindow  	Пример...

Создание меню в диалоговом окне.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCommandWindow.

Синтаксис:

int CommandWindow(RequestInfo *info);

Входные параметры:

info	-указатель на структуру параметров запроса к системе RequestInfo,
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция создает окно с деревом команд, определяемых строкой команд в структуре info или идентификатором меню из файла ресурсов. Команды в строке разделены пробелом или восклицательным знаком. Функции обратной связи передается управление после выбора команды или отказа. В случае, если callBack равен NULL, управление из CommandWindow возвращается немедленно после выбора команды. В противном случае управление вернется, если пользователь закроет окно или функция обратной связи вернет FALSE. Функция возвращает идентификатор выбранной команды, определенный в файле ресурсов, или порядковый номер в строке команд.


CommandWindow - пример использования

void CommandWindow_Example (void) {

RequestInfo  info;

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

info.commands = "!Окружность !Отрезок ";

info.commands = Объекты

int j=CommandWindow(&info);

  switch (j) {

     case 1:

       Circle(10,10,10,1);

       break;

     case 2:

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

       break;

  }

}; /* CommandWindow_Example */


Функции работы с калькулятором

Данные функции позволяют использовать калькулятор системы КОМПАС.


Функции работы с калькулятором
Функции

ksCalculate

ksCalculateReset


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksCalculate.

Синтаксис:

int ksCalculate (char *s, double * rez);

Входные параметры:

s	- строка с выражением,
Выходные параметры:

rez	- результат расчета.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

1. Поддерживаются функции и переменные:

SIN, COS, TAN, ATAN - тригонометрическине функции (аргумент в радианах),

SIND, COSD, TAND, ATAND - тригонометрическине функции (аргумент в градусах),

SQRT, EXP, LN, ABS - корень квадратный, экспонента, натуральный логарифм, абсолютное значение.

2. Наименования функций можно писать в любом регистре (например, как COS, так и cos)

3. Если s = "A1 = 100 ", будет заведена переменная A1 c значением 100.

4. В именах переменных различается регист букв (например, А1 и а1 - разные переменные).

5. Количество переменных не ограничено.


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksCalculateReset.

Синтаксис:

int ksCalculateReset();

Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksCalculate_example - пример использования
ksCalculate, ksCalculateReset - пример использования

//очистить массив переменных

  ksCalculateReset ();

  char buf [128];

  double resD;

  //добавить переменную A1 = 100

  int  rezI =  ksCalculate ("A1 = 100", &resD);

  sprintf (buf,"resD = %f rezI = %d", resD, rezI);

  Message (buf);

  //добавить переменную A2 = 200

  rezI = ksCalculate ("A2 = 200", &resD);

  sprintf (buf,"resD = %f rezI = %d", resD, rezI);

  Message (buf);

  //подсчитать результат выражения

  rezI = ksCalculate ("(A1 + A2) * sqrt(4)", &resD);

  sprintf (buf,"resD = %f rezI = %d", resD, rezI);

  Message (buf);


Демонстрационные примеры КОМПАС-МАСТЕР

В комплект поставки КОМПАС-МАСТЕР включены демонстрационные примеры:

I. Демонстрационные примеры применения 2D API:

STEP1.RTW	- самая простая библиотека

STEP2.RTW	- математика

STEP2a.RTW	- массив неопределенной длины

STEP3.RTW	- объекты

STEP3a.RTW	- объекты - a

STEP4.RTW	- приемы работы

(STEP4_1.CPP)	- процессы Cursor и Placement

(STEP4_2.CPP)	- пример диалога отрисовки слайда, растрового изображения или КОМПАС-документа

STEP5.RTW	- редактирование

STEP6.RTW	- запоминание указателя

STEP7.RTW	- навигация по модели

STEP8.RTW	- работа с атрибутами

STEP9.RTW	- размеры и технологические обозначения

STEP10.RTW	- работа с объектами спецификации

STEP11.RTW	- пример запроса на создание командного окна

SLIDEWRK.RTW	- пример обработки слайдов

GAYKA.RTW	- пример построения изображения стандартного изделия (гайки).

II. Демонстрационные примеры применения 3D API:

STEP3D1.rtw	- операции (создание формообразующих элементов)

STEP3D2.rtw	- работа с компонентом (деталью или подсборкой)

STEP3D3.rtw	- конструктивные оси и плоскости

STUDS3D.rtw	- пример построения модели стандартного изделия (шпильки).

III. Демонстрационные примеры создания контроллера для КОМПАС:

ksContrl.exe	- контроллер

IV. Демонстрационные примеры использования управляющего элемента ActiveX КОМПАС:

ksActiveX.exe	- пример использования управляющего элемента ActiveX КОМПАС

V. Демонстрационные примеры обработки событий КОМПАС:

eventCom.rtw	- пример обработки событий КОМПАС (COM)

eventAuto.rtw	- пример обработки событий КОМПАС (Автоматизация)

VI. - Демонстрационные примеры, использующие API7:

Gayka1.rtw - пример построения изображения стандартного изделия (гайки) с использованием аппликативности и Панели свойств.

Step12.rtw - пример создания Панели свойств.

Cube.rtw - пример использования OpenGL.

STUDS3D1.rtw - пример построения модели стандартного изделия (шпильки) с использованием Панели свойств.

Примеры написаны на Borland C++ 5.01, VC++, C++ Builder, VB, и Delphi, с использованием экспортных функций и интерфейсов.

Для проектов под управлением КОМПАС-LT в названия добавлен суффикс LT.

VII. - Демонстрационные примеры, использующие Библиотеку КОМПАС-Макро:

STEP2.CDM

STEP2a.CDM

STEP3.CDM

STEP3a.CDM

STEP4.CDM

STEP5.CDM

STEP6.CDM

STEP7.CDM

STEP8.CDM

STEP9.CDM


DisplayLibraryName - Получить имя библиотеки
DisplayLibraryName

Получить имя библиотеки, отображаемое при работе КОМПАС.

Синтаксис:

extern "C" char * WINAPI __export DisplayLibraryName();

Возвращаемое значение:

	Имя библиотеки, отображаемое на дисплее во время работы КОМПАС
Примечание:

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


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

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

Синтаксис:

LPDISPATCH LIB_FUNC ksGetExternalInterface();

Примечание:

1. Функция не выполняет Addref на выдаваемый интерфейс.

2. Внешний интерфейс можно использовать для обмена данными между двумя приложениями. Первое приложение передает интерфейс при вызове метода KompasObject::ksExecuteKompasLibraryCommandEx.

3. После выполнения KompasObject::ksExecuteKompasLibraryCommandEx, функция ksGetExternalInterface возвращает NULL.


GetImageHeight - пример использования
Пример использования функции GetImageHeight

Public Function GetImageHeight() As Long

GetImageHeight = 100

End Function


GetImageWidth - пример использования
Пример использования функции GetImageWidth

Public Function GetImageWidth() As Long

GetImageWidth = 100

End Function


GetLibraryName - пример использования
Пример использования функции GetLibraryName

Public Function GetLibraryName() As String

GetLibraryName = "Самая простая библиотека"

End Function


ExternalMenuItem - пример использования
Пример использования функции ExternalMenuItem

Public Function ExternalMenuItem(ByVal number As Integer, itemType As Integer, command As Integer) As String

itemType = 3 '"ENDMENU"'

ExternalMenuItem = ""

command = -1

Select Case number

Case 1

itemType = 1 'MENUITEM'

ExternalMenuItem = "Создать деталь"

command = 1

Case 2

itemType = 2 'POPUP'

ExternalMenuItem = "Выпадающее меню_1"

command = -1

Case 3

itemType = 1 'MENUITEM'

ExternalMenuItem = "Деталь с фасками"

command = 2

Case 4

itemType = 0 'SEPARATOR'

ExternalMenuItem = ""

command = -1

Case 5

itemType = 1 'MENUITEM'

ExternalMenuItem = "Команда_3"

command = 3

Case 6

itemType = 3 'ENDMENU'

ExternalMenuItem = ""

command = -1

Case 7

itemType = 2 '"POPUP"'

ExternalMenuItem = "Выпадающее меню_2"

command = -1

Case 8

itemType = 1 '"MENUITEM"'

ExternalMenuItem = "Команда_4"

command = 4

Case 9

itemType = 3 '"ENDMENU"'

ExternalMenuItem = ""

command = -1

End Select

End Function


ExternalGetImage - пример использования
Пример использования функции ExternalGetImage

Public Function ExternalGetImage(ByVal command As Integer, enableDelete As Integer) As OLE_HANDLE

Select Case command

Case 1

ExternalGetImage = Image1.Picture.Handle

Case 2

ExternalGetImage = Image2.Picture.Handle

Case 3

ExternalGetImage = Image3.Picture.Handle

Case 4

ExternalGetImage = Image4.Picture.Handle

Case Else

ExternalGetImage = Image5.Picture.Handle

End Select

enableDelete = FALSE

End Function


ExternalRunCommand - пример использования
Пример использования функции ExternalRunCommand

Public Sub ExternalRunCommand(ByVal command As Integer, ByVal mode As Integer, ByVal Kompas As Object)

Select Case command

Case 1

Dim document As Object	'КОМПАС-документ

Set document = Kompas.Document3D	'3D-документ

If Not document is Nothing Then

Kompas.ksMessage "Получен 3D-документ"

End If

Set document = Nothing	'освободить документ

Case Else

MsgBox "Команда " + Str(command) + " не выполнена"

End Select

End Sub


Типы выдавливания

etBlind	= 0	строго на глубину
etThroughAll	= 1	через всю деталь
etUpToVertexTo	= 2	на расстояние до вершины
etUpToVertexFrom	= 3	на расстояние за вершину
etUpToSurfaceTo	= 4	на расстояние до поверхности
etUpToSurfaceFrom	= 5	на расстояние за поверхность
etUpToNearSurface	= 6	до ближайшей поверхности
Примечание:

При типах выдавливания etUpToVertexTo, etUpToVertexFrom, etUpToSurfaceTo и etUpToSurfaceFrom в методах SetSideParam и GetSideParam параметр depth интерпретируется как глубина, вычитаемая или добавляемая к расстоянию до указанного объекта. Объект, определяющий глубину, задается с помощью метода SetDepthObject.


Типы направлений выдавливания
DirectionTypes

Типы направлений выдавливания

dtNormal	= 0	прямое направление  (для тонкой стенки - наружу)
dtReverse	= 1	обратное направление (для тонкой стенки - внутрь)
dtBoth	= 2	в обе стороны
dtMiddlePlane	= 3	от средней плоскости
Примечание:

При типе направления dtMiddlePlane в методах SetSideParam и GetSideParam параметр depth интерпретируется как общая глубина выдавливания и задается следующим образом:

SetSideParam(TRUE, etBlind, depth, ...)


Определения для конвертации в дополнительные форматы
D3FormatConvType

Определения для конвертации в дополнительные форматы jgs, sat, xt, step, stl, VRML

format_SAT	1	формат SAT
format_XT	2	формат XT
format_STEP	3	формат STEP
format_IGES	4	формат IGES
format_VRML	5	формат VRML
format_STL	6	формат STL


Тип перемещения
Positioner_Type

Тип перемещения

pnMove	0	сдвиг
pnRotate	1	вращение


Типы компонентов
PartType

Типы компонентов

pInPlace_Part	= -4	компонент, редактируемый на месте
pNew_Part	= -3	новый компонент
pEdit_Part	= -2	редактируемый компонент
pTop_Part	= -1	главный компонент, в составе которого находится новый или редактируемый или указанный компонент (например, сборка, в составе которой находится редактируемая деталь)


Типы сопряжений
MateConstraintType

Типы сопряжений

mc_Coincidence	= 0	совпадение объектов
mc_Parallel	= 1	параллельность
mc_Perpendicular	= 2	перпендикулярность
mc_Tangency	= 3	касательность
mc_Concentric	= 4	концентричность
mc_Distance	= 5	постоянное расстояние между объектами
mc_Angle	= 6	постоянный угол между объектами
mc_InPlace	= 7	создание компонента "на месте" (эквивалентно совпадению системы координат плоскости, на которой создается компонент, и системы координат плоскости первого эскиза этого компонента)


Типы используемого цвета
UseColor

Типы используемого цвета

useColorUnknown	= -1	тип не определен
useColorOur	= 0	собственный цвет
useColorOwner	= 1	цвет хозяина
useColorSource	= 2	цвет источника


ksTypeLookStyle - Тип отрисовки визуальной части
ksTypeLookStyle

Тип отрисовки визуальной части

tls_VisualStudio_97	= 0	Microsoft Office 2000
tls_VisualStudio_NET	= 1	Microsoft Office XP
tls_Office_2003	= 2	Microsoft Office 2003


Способы отображения моделей
ViewMode

Способы отображения моделей

vm_Wireframe	= 0	каркас
vm_HiddenRemoved	= 1	без невидимых линий
vm_HiddenThin	= 2	невидимые линии тонкие
vm_Shaded	= 3	полутоновой


Типы объектов документа-модели
Obj3dType

Типы объектов документа-модели

Идентификатор объекта	Название объекта	Интерфейс параметров
o3d_unknown	0	неизвестный (включает все объекты)
o3d_planeXOY	1	плоскость XOY	ksPlaneParam
o3d_planeXOZ	2	плоскость XOZ	ksPlaneParam
o3d_planeYOZ	3	плоскость YOZ	ksPlaneParam
o3d_pointCS	4	точка начала системы координат
Элементы детали

o3d_sketch	5	эскиз	ksSketchDefinition
o3d_face	6	поверхность	ksFaceDefinition
o3d_edge	7	ребро	ksEdgeDefinition
o3d_vertex	8	вершина	ksVertexDefinition
Конструктивные элементы

o3d_axis2Planes	9	ось по двум плоскостям	ksAxis2PlanesDefinition
o3d_axis2Points	10	ось по двум точкам	ksAxis2PointsDefinition
o3d_axisConeFace	11	ось конической грани	ksAxisConefaceDefinition
o3d_axisEdge	12	ось, проходящая через ребро	ksAxisEdgeDefinition
o3d_axisOperation	13	ось операции	ksAxisOperationsDefinition
o3d_planeOffset	14	смещённая плоскость	ksPlaneOffsetDefinition
o3d_planeAngle	15	плоскость под углом	ksPlaneAngleDefinition
o3d_plane3Points	16	плоскость по 3-м точкам	ksPlane3PointsDefinition
o3d_planeNormal	17	нормальная плоскость	ksPlaneNormalToSurfaceDefinition
o3d_planeTangent	18	касательная плоскость	ksPlaneTangentToSurfaceDefinition
o3d_planeEdgePoint	19	плоскость через ребро и вершину	ksPlaneEdgePointDefinition
o3d_planeParallel	20	плоскость через вершину параллельно другой плоскости	ksPlaneParallelDefinition
o3d_planePerpendicular	21	плоскость через вершину перпендикулярно ребру	ksPlanePerpendicularDefinition
o3d_planeLineToEdge	22	плоскость через ребро параллельно /перпендикулярно другому ребру	ksPlaneLineToEdgeDefinition
o3d_planeLineToPlane	23	плоскость через ребро параллельно /перпендикулярно грани	ksPlaneLineToPlaneDefinition
o3d_baseExtrusion	24	базовая операция выдавливания	ksBaseExtrusionDefinition
o3d_bossExtrusion	25	приклеивание выдавливанием	ksBossExtrusionDefinition
o3d_cutExtrusion	26	вырезать выдавливанием	ksCutExtrusionDefinition
o3d_baseRotated	27	базовая операция вращения	ksBaseRotatedDefinition
o3d_bossRotated	28	приклеивание вращением	ksBossRotatedDefinition
o3d_cutRotated	29	вырезать вращением	ksCutRotatedDefinition
o3d_baseLoft	30	базовая операция по сечениям	ksBaseLoftDefinition
o3d_bossLoft	31	приклеивание по сечениям	ksBossLoftDefinition
o3d_cutLoft	32	вырезать по сечениям	ksCutLoftDefinition
o3d_chamfer	33	операция "фаска"	ksChamferDefinition
o3d_fillet	34	операция "скругление"	ksFilletDefinition
o3d_meshCopy	35	операция копирования по сетке	ksMeshCopyDefinition
o3d_circularCopy	36	операция копирования по концентрической сетке	ksCircularCopyDefinition
o3d_curveCopy	37	операция копирования по кривой	ksCopyCurveDefinition
o3d_circPartArray	38	операция массив по концентрической сетке для сборки	ksCircularPartArrayDefinition
o3d_meshPartArray	39	операция массив по сетке для сборки	ksMeshPartArrayDefinition
o3d_curvePartArray	40	операция массив по кривой для сборки	ksCurvePartArrayDefinition
o3d_derivPartArray	41	операция массив по образцу для сборки	ksDerivativePartArrayDefinition
o3d_incline	42	операция "уклон"	ksInclineDefinition
o3d_shellOperation	43	операция "оболочка"	ksShellDefinition
o3d_ribOperation	44	операция "ребро жесткости"	ksRibDefinition
o3d_baseEvolution	45	кинематическая операция	ksBaseEvolutionDefinition
o3d_bossEvolution	46	приклеить кинематически	ksBossEvolutionDefinition
o3d_cutEvolution	47	вырезать кинематически	ksCutEvolutionDefinition
o3d_mirrorOperation	48	операция "зеркальный массив"	ksMirrorDefinition
o3d_mirrorAllOperation	49	операция "зеркально отразить все"	ksMirrorAllDefinition
o3d_cutByPlane	50	операция "сечение поверхностью"	ksCutByPlaneDefinition
o3d_cutBySketch	51	операция "сечение эскизом"	ksCutBySketchDefinition
o3d_holeOperation	52	отверстие
Кривые

o3d_polyline	53	ломаная	ksPolyLineDefinition
o3d_conicSpiral	54	коническая спираль	ksConicSpiralDefinition
o3d_spline	55	сплайн	ksSplineDefinition
o3d_cylindricSpiral	56	цилиндрическая спираль	ksCylindricSpiralDefinition
o3d_importedSurface	57	импортирванная поверхность	ksImportedSurfaceDefinition
o3d_thread	58	условное изображение резьбы	ksThreadDefinition
o3d_EvolutionSurface	59	кинематическая поверхность	ksEvolutionSurfaceDefinition
o3d_ExtrusionSurface	60	поверхность выдавливания	ksExtrusionSurfaceDefinition
o3d_RotatedSurface	61	поверхность вращения	ksRotatedSurfaceDefinition
o3d_LoftSurface	62	поверхность по сечениям	ksLoftSurfaceDefinition
o3d_MacroObject	63	макрообъект 3D	ksMacro3DDefinition
o3d_UnionComponents	64	Операция объединения компонентов	ksUnionComponentsDefinition
o3d_MoldCavity	65	Операция вычитания компонентов	ksMoldCavityDefinition
o3d_planeMiddle	66	Средняя плоскость	ksPlaneMiddleDefinition
o3d_controlPoint	67	Контрольная точка	ksControlPointDefinition
o3d_conjunctivePoint	68	Присоединительная точка	ksConjunctivePointDefinition
o3d_lastEntityElement	69	всегда последний из Entity!!!
Элементы, не являющиеся Entity

o3d_variable	100	параметрическая переменная	ksVariable
o3d_placement	101	местоположение	ksPlacement
o3d_entityCollection	102	массив трехмерных объектов	ksEntityCollection
o3d_document	103	документ-модель	ksDocument3D
o3d_part	104	деталь	ksPart
o3d_entity	105	объект	ksEntity
o3d_mateConstraint	106	сопряжение	ksMateConstraint
o3d_mateConstraintCollection	107	массив сопряжений	ksMateConstraintCollection
o3d_partCollection	108	массив элементов сборки	ksPartCollection
Объединенные типы объектов для создания EntityCollection

o3d_constrElement	109	конструктивные элементы-плоскости и оси (конструктивные от o3d_axis2Planes до o3d_plane3Points)
o3d_operationElement	110	операции (от o3d_baseExtrusion до o3d_cylindricSpiral)
o3d_curveElement	111	кривые (пространственные и ребра)
o3d_rasterFormat	112	интерфейс параметров для конвертации в растровый формат	ksRasterFormatParam
o3d_additionFormat	113	интерфейс параметров для конвертации в дополнительные форматы: jgs, sat, xt, x_b, step, stl, VRML	ksAdditionFormatParam
o3d_bodyCollection	114	интерфейс массива трехмерных тел	ksBodyCollection
o3d_body	115	интерфейс трехмерного тела	ksBody
o3d_faceCollection	116	интерфейс массива граней	ksFaceCollection
o3d_tessellation	117	интерфейс триангуляции	ksTessellation
o3d_facet	118	интерфейс триангуляционной пластины	ksFacet
o3d_featureCollection	119	интерфейс массива объектов дерева	ksFeatureCollection
o3d_feature	120	интерфейс объекта дерева	ksFeature
o3d_edgeCollection	121	интерфейсмассиваребер	ksEdgeCollection
o3d_orientedEdge	122	интерфейс ориентированного ребра	ksOrientedEdge
o3d_orientedEdgeCollection	123	интерфейс массива ориентированных ребер	ksOrientedEdgeCollection
o3d_loop	124	интерфейс цикла	ksLoop
o3d_loopCollection	125	интерфейс массива циклов	ksLoopCollection
o3d_curve3D	126	интерфейс математической кривой в трехмерном пространстве	ksCurve3D
o3d_surface	127	интерфейс математической поверхности втрехмерном пространстве	ksSurface
o3d_massInertiaParam	128	Интерфейс параметров дл расчета массо-центровочных характеристик	ksMassInertiaParam
o3d_line3dParam	129	Интерфейс параметров 3dLine	ksLineSeg3dParam
o3d_circle3dParam	130	Интерфейс параметров 3dCircle	ksCircle3dParam
o3d_ellipse3dParam	131	Интерфейс параметров 3dEllipce	ksEllipse3dParam
o3d_nurbsPoint3dParam	132	Интерфейс параметров точки для трехмерной NURBS	ksNurbsPoint3dParam
o3d_nurbsPoint3dCollection	133	Интерфейс массива точек для трехмерной NURBS	ksNurbsPoint3dCollection
o3d_nurbsPoint3dCollCollection	134	Интерфейс массива массивов точек для трехмерной NURBS поверхности	ksNurbsPoint3dCollCollection
o3d_nurbsKnotCollection	135	Интерфейс массива узлов для трехмерного NURBS	ksNurbsKnotCollection
o3d_nurbs3dParam	136	Интерфейс параметров трехмерного NURBS	ksNurbs3dParam
o3d_planeParam	137	Интерфейс параметров плоскости	ksPlaneParam
o3d_coneParam	138	Интерфейс параметров конической поверхности	ksConeParam
o3d_cylinderParam	139	Интерфейс параметров цилиндрической поверхности	ksCylinderParam
o3d_sphereParam	140	Интерфейс параметров сферы	ksSphereParam
o3d_torusParam	141	Интерфейс параметров тора	ksTorusParam
o3d_nurbsSurfaceParam	142	Интерфейс параметров NURBS-поверхности	ksNurbsSurfaceParam
o3d_mateConstraintGroup	143	Объект дерева: группа сопряжений	ksMateConstraintCollection
o3d_measurer	144	Интерфейс для измерений расстояния и угла между двумя примитивами (гранями, ребрами, вершинами)	ksMeasurer
o3d_selectionMng	145	Интерфейс менеджера выделенных объектов	ksSelectionMng
o3d_chooseMng	146	Интерфейс менеджера выбора (подсветки) объектов	ksChooseMng
o3d_arc3dParam	147	Интерфейс параметров трехмерной дуги	ksArc3dParam
o3d_deletedCopyCollection	148	Интерфейс массива удаленных индексов для оперций копирования и массивов компонент	ksDeletedCopyCollection
o3d_viewProjection	149	Интерфейс проекции отображения модели в окне	ksViewProjection
o3d_viewProjectionCollection	150	Интерфейс массива проекций отображения модели в окне	ksViewProjectionCollection
o3d_attribute	151	Интерфейс атрибута объекта модели	ksAttribute3D
o3d_attributeCollection	152	Интерфейс массива атрибутов объекта модели	ksAttribute3DCollection
o3d_coordinate3dCollection	156	Интерфейс колекции координат	ksCoordinate3dCollection


Типы трехмерных объектов для ksDocument3D::EntityCollection
Obj3dType
для ksDocument3d::EntityCollection

Типы объектов документа-модели

Идентификатор объекта	Название объекта
o3d_unknown	0	неизвестный (включает все объекты)
o3d_planeXOY	1	плоскость XOY
o3d_planeXOZ	2	плоскость XOZ
o3d_planeYOZ	3	плоскость YOZ
o3d_pointCS	4	точка начала системы координат
Элементы детали

o3d_sketch	5	эскиз
o3d_face	6	поверхность
o3d_edge	7	ребро
o3d_vertex	8	вершина
Конструктивные элементы

o3d_axis2Planes	9	ось по двум плоскостям
o3d_axis2Points	10	ось по двум точкам
o3d_axisConeFace	11	ось конической грани
o3d_axisEdge	12	ось, проходящая через ребро
o3d_axisOperation	13	ось операции
o3d_planeOffset	14	смещённая плоскость
o3d_planeAngle	15	плоскость под углом
o3d_plane3Points	16	плоскость по 3-м точкам
o3d_planeNormal	17	нормальная плоскость
o3d_planeTangent	18	касательная плоскость
o3d_planeEdgePoint	19	плоскость через ребро и вершину
o3d_planeParallel	20	плоскость через вершину параллельно другой плоскости
o3d_planePerpendicular	21	плоскость через вершину перпендикулярно ребру
o3d_planeLineToEdge	22	плоскость через ребро параллельно /перпендикулярно другому ребру
o3d_planeLineToPlane	23	плоскость через ребро параллельно /перпендикулярно грани
Операции

o3d_baseExtrusion	24	базовая операция выдавливания
o3d_bossExtrusion	25	приклеивание выдавливанием
o3d_cutExtrusion	26	вырезать выдавливанием
o3d_baseRotated	27	базовая операция вращения
o3d_bossRotated	28	приклеивание вращением
o3d_cutRotated	29	вырезать вращением
o3d_baseLoft	30	базовая операция по сечениям
o3d_bossLoft	31	приклеивание по сечениям
o3d_cutLoft	32	вырезать по сечениям
o3d_chamfer	33	операция "фаска"
o3d_fillet	34	операция "скругление"
o3d_meshCopy	35	операция копирования по сетке
o3d_circularCopy	36	операция копирования по концентрической сетке
o3d_curveCopy	37	операция копирования по кривой
o3d_circPartArray	38	операция массив по концентрической сетке для сборки
o3d_meshPartArray	39	операция массив по сетке для сборки
o3d_curvePartArray	40	операция массив по кривой для сборки
o3d_derivPartArray	41	операция массив по образцу для сборки
o3d_incline	42	операция "уклон"
o3d_shellOperation	43	операция "оболочка"
o3d_ribOperation	44	операция "ребро жесткости"
o3d_baseEvolution	45	кинематическая операция
o3d_bossEvolution	46	приклеить кинематически
o3d_cutEvolution	47	вырезать кинематически
o3d_mirrorOperation	48	операция "зеркальный массив"
o3d_mirrorAllOperation	49	операция "зеркально отразить все"
o3d_cutByPlane	50	операция "сечение поверхностью"
o3d_cutBySketch	51	операция "сечение эскизом"
o3d_holeOperation	52	отверстие
Кривые

o3d_polyline	53	ломаная
o3d_conicSpiral	54	коническая спираль
o3d_spline	55	сплайн
o3d_cylindricSpiral	56	цилиндрическая спираль
o3d_importedSurface	57	импортированная поверхность
o3d_thread	58	условное изображение резьбы
o3d_EvolutionSurface	59	кинематическая поверхность
o3d_ExtrusionSurface	60	поверхность выдавливания
o3d_RotatedSurface	61	поверхность вращения
o3d_LoftSurface	62	поверхность по сечениям
o3d_MacroObject	63	макрообъект 3D
o3d_UnionComponents	64	операция объединения компонентов
o3d_MoldCavity	65	операция вычитания компонентов
Объединенные типы объектов для создания EntityCollection

o3d_constrElement	109	конструктивные элементы-плоскости и оси (конструктивные от o3d_axis2Planes до o3d_plane3Points)
o3d_operationElement	110	операции (от o3d_baseExtrusion до o3d_cylindricSpiral)
o3d_curveElement	111	кривые (пространственные и ребра)


Типы трехмерных объектов для ksPart::NewEntity
Obj3dType
для ksPart::NewEntity

Типы объектов документа-модели

Идентификатор объекта	Название объекта

Элементы детали

o3d_sketch	5	эскиз
Конструктивные элементы

o3d_axis2Planes	9	ось по двум плоскостям
o3d_axis2Points	10	ось по двум точкам
o3d_axisConeFace	11	ось конической грани
o3d_axisEdge	12	ось, проходящая через ребро
o3d_axisOperation	13	ось операции
o3d_planeOffset	14	смещённая плоскость
o3d_planeAngle	15	плоскость под углом
o3d_plane3Points	16	плоскость по 3-м точкам
o3d_planeNormal	17	нормальная плоскость
o3d_planeTangent	18	касательная плоскость
o3d_planeEdgePoint	19	плоскость через ребро и вершину
o3d_planeParallel	20	плоскость через вершину параллельно другой плоскости
o3d_planePerpendicular	21	плоскость через вершину перпендикулярно ребру
o3d_planeLineToEdge	22	плоскость через ребро параллельно /перпендикулярно другому ребру
o3d_planeLineToPlane	23	плоскость через ребро параллельно /перпендикулярно грани
Операции

o3d_baseExtrusion	24	базовая операция выдавливания
o3d_bossExtrusion	25	приклеивание выдавливанием
o3d_cutExtrusion	26	вырезать выдавливанием
o3d_baseRotated	27	базовая операция вращения
o3d_bossRotated	28	приклеивание вращением
o3d_cutRotated	29	вырезать вращением
o3d_baseLoft	30	базовая операция по сечениям
o3d_bossLoft	31	приклеивание по сечениям
o3d_cutLoft	32	вырезать по сечениям
o3d_chamfer	33	операция "фаска"
o3d_fillet	34	операция "скругление"
o3d_meshCopy	35	операция копирования по сетке
o3d_circularCopy	36	операция копирования по концентрической сетке
o3d_curveCopy	37	операция копирования по кривой
o3d_circPartArray	38	операция массив по концентрической сетке для сборки
o3d_meshPartArray	39	операция массив по сетке для сборки
o3d_curvePartArray	40	операция массив по кривой для сборки
o3d_derivPartArray	41	операция массив по образцу для сборки
o3d_incline	42	операция "уклон"
o3d_shellOperation	43	операция "оболочка"
o3d_ribOperation	44	операция "ребро жесткости"
o3d_baseEvolution	45	кинематическая операция
o3d_bossEvolution	46	приклеить кинематически
o3d_cutEvolution	47	вырезать кинематически
o3d_mirrorOperation	48	операция "зеркальный массив"
o3d_mirrorAllOperation	49	операция "зеркально отразить все"
o3d_cutByPlane	50	операция "сечение поверхностью"
o3d_cutBySketch	51	операция "сечение эскизом"
o3d_holeOperation	52	отверстие
Кривые

o3d_polyline	53	ломаная
o3d_conicSpiral	54	коническая спираль
o3d_spline	55	сплайн
o3d_cylindricSpiral	56	цилиндрическая спираль
o3d_importedSurface	57	импортирванная поверхность
o3d_thread	58	условное изображение резьбы
Поверхности

o3d_EvolutionSurface	59	кинематическая поверхность
o3d_ExtrusionSurface	60	поверхность выдавливания
o3d_RotatedSurface	61	поверхность вращения
o3d_LoftSurface	62	поверхность по сечениям
o3d_MacroObject	63	макрообъект 3D
o3d_UnionComponents	64	операция объединения компонентов
o3d_MoldCavity	65	операция вычитания компонентов


Общий свет

Этот параметр характеризует свет, отраженный и рассеиваемый другими объектами.

Например, в комнате с белыми стенами и рассеянным освещением значение общего света больше, чем в области, освещенной направленным источником света.


Диффузия

Этот параметр характеризует степень рассеивания света поверхностью (при этом считается, что свет рассеивается равномерно во всех направлениях).


Зеркальность

Этот параметр характеризует способность поверхности воспроизводить отражение яркого света.

Чем меньше значение параметра зеркальности, тем более тусклая поверхность.

Чем больше значение параметра, тем более зеркальная поверхность.


Блеск

Этот параметр характеризует блеск поверхности, остроту бликов на ней.

Чем меньше значение параметра зеркальности, тем более матовая поверхность.

Чем больше значение параметра, тем более блестящая, глянцевая поверхность.


Прозрачность

Этот параметр характеризует способность поверхности пропускать падающий на нее свет.

Если значение этого параметра равно 1 (или 100%), то поверхность совершенно непрозрачная.

При моделировании деталей из стекла, органического стекла, слюды, бесцветного полиэтилена и подобных материалов значение прозрачности выбирают из диапазона между 0 и 1. Если значение этого параметра равно 0,5 (или 50%), то поверхность полупрозрачная.

Если значение этого параметра равно 0, то поверхность полностью прозрачная. Такая поверхность невидима.


Излучение

Этот параметр характеризует способность поверхности излучать свет.


В системах, поддерживающих работу со свойствами,
например, Visual Basic, Delphi, Builder


В системах, не поддерживающих работу со свойствами,
например, C++


Типы стилей и интерфейсы
Типы стилей

CURVE_STYLE	1	- стиль кривых	ksCurveStyleParam
HATCH_STYLE	2	- стиль штриховок	ksHatchStyleParam
TEXT_STYLE	3	- стиль текста	ksTextStyleParam
STAMP_STYLE	4	- тип основной надписи	В настоящее время не реализовано.
CURVE_STYLE_EX	5	- расширенный стиль кривых	ksCurveStyleParam


Типы настроек

DIMENTION_OPTIONS	1
SNAP_OPTIONS	1
ARROWFILLING_OPTIONS	2
SHEET_OPTIONS	3
SHEET_OPTIONS_EX	4
LENGTHUNITS_OPTIONS	5
SNAP_OPTIONS_EX	6
VIEWCOLOR_OPTIONS	7
TEXTEDIT_VIEWCOLOR_OPTIONS	8
MODEL_VIEWCOLOR_OPTIONS	9
OVERLAP_OBJECT_OPTIONS	10
DIMENTION_OPTIONS_EX	11


Типы библиотек стилей

Параметр libraryType может иметь следующие значения для выбора типа библиотеки стиля:

CURVE_STYLE_LIBRARY	1	- библиотека стилей кривых    (*.lcs)
HATCH_STYLE_LIBRARY	2	- библиотека стилей штриховок    (*.lhs)
TEXT_STYLE_LIBRARY	3	- библиотека стилей текстов    (*.lts)
STAMP_LAYOUT_STYLE_LIBRARY	4	- библиотека основных надписей  (*.lyt)
GRAPHIC_LAYOUT_STYLE_LIBRARY	5	- библиотека оформлений  графических документов  (*.lyt)
TEXT_LAYOUT_STYLE_LIBRARY	6	- библиотека оформлений   текстовых документов   (*.lyt)
SPC_LAYOUT_STYLE_LIBRARY	7	- библиотека стилей спецификаций  (*.lyt)


Размерности и типы тел

Параметр bitVector может иметь следующие значения для выбора размерности и типа тела при расчете МЦХ:

ST_MIX_MM	0x1	- миллиметры
ST_MIX_SM	0	- сантиметры
ST_MIX_DM	0x2	- дециметры
ST_MIX_M	0x3	- метры
ST_MIX_GR	0	- граммы
ST_MIX_KG	0x10	- килограммы
ST_MIX_EXT	0	- тело выдавливания
ST_MIX_RV	0x20	- тело вращения


Размерности длины

ST_MIX_MM	0x1	- миллиметры
ST_MIX_SM	0	- сантиметры
ST_MIX_DM	0x2	- дециметры
ST_MIX_M	0x3	- метры


Типы параметрических ограничений

Параметр constrType может иметь следующие значения для выбора типа параметрического ограничения:

CONSTRAINT_FIXED_POINT	1	- фиксация точки
CONSTRAINT_POINT_ON_CURVE	2	- точка на кривой
CONSTRAINT_HORIZONTAL	3	- горизонталь
CONSTRAINT_VERTICAL	4	- вертикаль
CONSTRAINT_PARALLEL	5	- параллельность двух прямых или отрезков
CONSTRAINT_PERPENDICULAR	6	- перпендикулярность двух прямых или отрезков
CONSTRAINT_EQUAL_LENGTH	7	- равенство длин двух отрезков
CONSTRAINT_EQUAL_RADIUS	8	- равенство радиусов двух дуг или окружностей
CONSTRAINT_HOR_ALIGN_POINTS	9	- выравнивание двух точек по горизонтали
CONSTRAINT_VER_ALIGN_POINTS	10	- выравнивание двух точек по вертикали
CONSTRAINT_MERGE_POINTS	11	- совпадение двух точек


Типы элементов массива LTVariant

ltv_Char	1	- символ,
ltv_Uchar	2	- байт,
ltv_Int	3	- целое,
ltv_Uint	4	- беззнаковое целое,
ltv_Long	5	- длинное целое,
ltv_Float	6	- вещественное,
ltv_Double	7	- двойное вещественное,
ltv_Str	8	- строка 255 символов,
ltv_Short	10	- короткое целое.


Типы действий с библиотеками моделей и фрагментов
EndType

Типы действий с библиотекой моделей или фрагментов

-1	- закрыть без сохранения,
0	- закрыть с сохранением,
1	- открыть,
2	- редактировать модель или фрагмент,
3	- удалить модель или фрагмент из библиотеки,
4	- минимизировать окно библиотекаря   (в КОМПАС V6 не поддерживается),
5	- создать файл библиотеки фрагментов.
6	- создать файл библиотеки моделей,
7	- создать фрагмент в библиотеке фрагментов,
8	- создать деталь в библиотеке фрагментов,
9	- создать сборку в библиотеке фрагментов,


Типы пути в библиотеке моделей

0	- отказ от выбора пути,
1	- "корень" библиотеки,
2	- папка библиотеки,
3	- трехмерная модель в библиотеке.


Типы объектов и интерфейсы

Идентификатор объекта	Название объекта	Тип параметров	Структура параметров	Интерфейс параметров
ALL_OBJ	0	все объекты,кроме вспомогательных, которые могут входить в вид
LINESEG_OBJ	1	отрезок	ALLPARAM	LineSegParam	ksLineSegParam
CIRCLE_OBJ	2	окружность	ALLPARAM	CircleParam	ksCircleParam
ARC_OBJ	3	дуга окружности	ALLPARAM	ArcParam	ksArcByAngleParam
			POINT_ARC_PARAM	ArcParam1	ksArcByPointParam
TEXT_OBJ	4	текст	ALLPARAM	TextParam	ksTextParam
			Индекс строки текста (начиная с 0)	TextLineParam	ksTextLineParam
POINT_OBJ	5	точка	ALLPARAM	PointParam	ksPointParam
HATCH_OBJ	7	штриховка	ALLPARAM	HatchParam	ksHatchParam
			HATCH_PARAM_EX	HatchParamEx	ksHatchParam
BEZIER_OBJ	8	кривая Безье	ALLPARAM	BezierParam	ksBezierParam
			Индекс узл кривой (начиная с 0)	BezierPointParam	ksBezierPointParam
LDIMENSION_OBJ	9	линейный размер	ALLPARAM	LdimParam	ksLDimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	LDimSource	ksLDimSourceParam
			DIM_DRAW_PARAM	DimDrawing	ksDimDrawingParam
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
ADIMENSION_OBJ	10	угловой размер	ALLPARAM	AdimParam	ksADimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	ADimSource	ksADimSourceParam
			DIM_DRAW_PARAM	DimDrawing	ksDimDrawingParam
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
DDIMENSION_OBJ	13	диаметральный размер	ALLPARAM	RdimParam	ksRDimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	RDimSource	ksRDimSourceParam
			DIM_DRAW_PARAM	RDimDrawing	ksRDimDrawingParam
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
RDIMENSION_OBJ	14	радиальный размер	ALLPARAM	RdimParam	ksRDimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	RDimSource	ksRDimSourceParam
			DIM_DRAW_PARAM	RDimDrawing	ksRDimDrawingParam
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
RBREAKDIMENSION_OBJ	15	радиальный размер с изломом	ALLPARAM	RbreakDimParam	ksRBreakDimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	RDimSource	ksRDimSourceParam
			DIM_DRAW_PARAM	RBreakDrawing	ksRBreakDrawingParam
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
ROUGH_OBJ	16	обозначение шероховатости	ALLPARAM	RoughParam	ksRoughParam
BASE_OBJ	17	обозначение базы	ALLPARAM	BaseParam	ksBaseParam
WPOINTER_OBJ	18	стрелка направления взгляда	ALLPARAM	ViewPointerParam	ksViewPointerParam
CUT_OBJ	19	линия разреза	ALLPARAM	CutLineParam	ksCutLineParam
LEADER_OBJ	20	линия-выноска	ALLPARAM	LeaderParam	ksLeaderParam
POSLEADER_OBJ	21	позиционная линия-выноска	ALLPARAM	PosLeaderParam	ksPosLeaderParam
BRANDLEADER_OBJ	22	линия-выноска для обозначения клеймения	ALLPARAM	BrandLeaderParam	ksBrandLeaderParam
MARKERLEADER_OBJ	23	линия-выноска для обозначения маркирования	ALLPARAM	MarkerLeaderParam	ksMarkerLeaderParam
TOLERANCE_OBJ	24	обозначение допуска формы	ALLPARAM	ToleranceParam	ksToleranceParam
TABLE_OBJ	25	таблица в графическом документе	ALLPARAM	нереализовано	нереализовано
CONTOUR_OBJ	26	контур	ALLPARAM	short (стиль)	ksContourParam
MACRO_OBJ	27	нетипизированный макроэлемент	ALLPARAM	нереализовано	нереализовано
LINE_OBJ	28	прямая	ALLPARAM	LineParam	ksLineParam
LAYER_OBJ	29	слой	ALLPARAM	LayerParam	ksLayerParam
			VIEW_LAYER_STATE	int (состояние слоя)	ksLtVariant(состояние слоя)
FRAGMENT_OBJ	30	вставленный фрагмент	ALLPARAM	InsertFragmentParamEx	ksInsertFragmentParam
POLYLINE_OBJ	31	ломаная линия	ALLPARAM	PolylineParamEx	ksPolylineParam
ELLIPSE_OBJ	32	эллипс	ALLPARAM	EllipseParam	ksEllipseParam
NURBS_OBJ	33	кривая NURBS	ALLPARAM, NURBS_CLAMPED_PARAM	NurbsParam	ksNurbsParam
ELLIPSE_ARC_OBJ	34	дуга эллипса	ALLPARAM	EllipseArcParam	ksEllipseArcParam
			POINT_ARC_PARAM	EllipseArcParam1	ksEllipseArcParam1
RECTANGLE_OBJ	35	прямоугольник	ALLPARAM	RectangleParam	ksRectangleParam
REGULARPOLYGON_OBJ	36	правильный многоугольник	ALLPARAM	RegularPolygonParam	ksRegularPolygonParam
EQUID_OBJ	37	эквидистанта	ALLPARAM	EquidistantParam	ksEquidistantParam
LBREAKDIMENSION_OBJ	38	линейный размер с обрывом	ALLPARAM	LbreakDimParam	ksLBreakDimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	LBreakDimSource	ksLBreakDimSource
			DIM_DRAW_PARAM	BreakDimDrawing	ksBreakDimDrawing
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
ABREAKDIMENSION_OBJ	39	угловой размер с обрывом	ALLPARAM	AbreakDimParam	ksABreakDimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	ADimSource	ksADimSourceParam
			DIM_DRAW_PARAM	BreakDimDrawing	ksBreakDimDrawing
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
ORDINATEDIMENSION_OBJ	40	размер высоты	ALLPARAM	OrdinatedDimParam	ksOrdinatedDimParam
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	OrdinatedSource	ksOrdinatedSourceParam
			DIM_DRAW_PARAM	OrdinatedDrawing	ksOrdinatedDrawingParam
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
COLORFILL_OBJ	41	фоновая заливка цветом	ALLPARAM	long (цвет)	ksLtVariant (цвет)
CENTREMARKER_OBJ	42	обозначение центра	ALLPARAM	CentreParam	ksCentreParam
ARCDIMENSION_OBJ	43	размер длины дуги	ALLPARAM	нереализовано	нереализовано
			DIM_TEXT_PARAM	DimText	ksDimTextParam
			DIM_SOURSE_PARAM	нереализовано	нереализовано
			DIM_DRAW_PARAM	нереализовано	нереализовано
			DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			SHEET_DIM_PARTS	DimensionPartsParam	ksDimensionPartsParam
			DIM_VALUE	double	ksDoubleValue
SPC_OBJ	44	объект спецификации	ALLPARAM	SpcObjParam	ksSpcObjParam
RASTER_OBJ	45	растровый объект	ALLPARAM	RasterParam	ksRasterParam
CHANGE_LEADER_OBJ	46	обозначениеизменения	ALLPARAM	нереализовано	нереализовано
REMOTE_ELEMENT_OBJ	47	выноснойэлемент	ALLPARAM	RemoteElementParam	ksRemoteElementParam
AXISLINE_OBJ	48	осевая линия	ALLPARAM	AxisLineParam	ksAxisLineParam
OLEOBJECT_OBJ	49	Вставка OLE объекта	ALLPARAM
SPECIFICATION_OBJ	121	спецификация на листе	ALLPARAM	нереализовано	нереализовано
SPECROUGH_OBJ	122	обозначение неуказанной шероховатости	ALLPARAM	SpecRoughParam	ksSpecRoughParam
VIEW_OBJ	123	вид	ALLPARAM	ViewParam	ksViewParam
			ASSOCIATION_VIEW_PARAM	AssociationViewParam	ksAssociationViewParam
			VIEW_LAYER_STATE	int (состояние вида)	ksLtVariant (состояние вида)
DOCUMENT_OBJ	124	графический документ (чертеж или фрагмент)	ALLPARAM	DocumentParam	ksDocumentParam
			DOCUMENT_SIZE (только для чертежа)	SheetSize	ksSheetSize
			DOCUMENT_STATE	int (состояние документа)	ksLtVariant (состояние документа)
TECHNICALDEMAND_OBJ	125	технические требования	ALLPARAM или TECHNICAL_DEMAND_PAR	TechnicalDemandParam	ksTechnicalDemandParam
			меньше TT_FIRST_STR	reference (массив строк TEXT_LINE_ARR)	ksDynamicArray (массив строк TEXT_LINE_ARR)
			начиная с TT_FIRST_STR и далее	TextLineParam (строки по индексу)	ksTextLineParam (строки по индексу)
STAMP_OBJ	126	основная надпись	ALLPARAM	нереализовано	нереализовано
SELECT_GROUP_OBJ	127	группа выбора	ALLPARAM	нереализовано	нереализовано
NAME_GROUP_OBJ	128	именованная группа	ALLPARAM	нереализовано	нереализовано
WORK_GROUP_OBJ	129	рабочая группа	ALLPARAM	нереализовано	нереализовано
SPC_DOCUMENT_OBJ	130	документ-спецификация	ALLPARAM	DocumentParam	ksDocumentParam
			DOCUMENT_SIZE	SheetSize	ksSheetSize
			DOCUMENT_STATE	int (состояние документа)	ksLtVariant (состояние документа)
D3_DOCUMENT_OBJ	131	документ-модель (деталь или сборка).	ALLPARAM	DocumentParam	ksDocumentParam
			DOCUMENT_STATE	int (состояние документа)	ksLtVariant (состояние документа)
CHANGE_LIST_OBJ	132	таблица изменений	ALLPARAM	нереализовано	нереализовано
TXT_DOCUMENT_OBJ	133	текстовый документ	ALLPARAM	TextDocumentParam	ksTextDocumentParam
ALL_DOCUMENTS	134	все документы
Примечание:

Для SHEET_ALLPARAM используются те же структуры, что и для ALLPARAM


*
структура не заполняется, создается массив строк


**
структура не заполняется, определяется только цвет штриховки


Типы динамических массивов

Идентификатор объекта	Для automation	Для API экспортных функций
CHAR_STR_ARR	1	- динамический массив указателей на интерфейсы ksChar255	- динамический массив указателей на строки символов
POINT_ARR	2	- динамический массив указателей на интерфейсы ksMathPointParam	- динамический массив указателей на математические точки (структура MathPointParam)
CURVE_PATTERN_ARR	2	- динамический массив указателей на интерфейсы ksCurvePattern	- динамический массив указателей на участки штриховой линии (структура CurvePattern)
TEXT_LINE_ARR	3	- динамический массив указателей на интерфейсы ksTextLineParam	- динамический массив строк текста (структура TextLineParam)
TEXT_ITEM_ARR	4	- динамический массив указателей на интерфейсы ksTextItemParam	- динамический массив компонент строк текста (структура TextItemParam)
ATTR_COLUMN_ARR	5	- динамический массив указателей на интерфейсы ksColumnInfoParam	- динамический массив колонок атрибутов (структура ColumnInfo)
USER_ARR	6	- динамический пользовательский массив	- динамический пользовательский массив
POLYLINE_ARR	7	- динамический массив указателей на интерфейсы ksDynamicArray типа POINT_ARR	- динамический массив полилиний (указателей массивов POINT_ARR)
RECT_ARR	8	- динамический массив указателей на интерфейсы ksRectParam	- динамический массив габаритных прямоугольников (структура RectParam)
LIBRARY_STYLE_ARR	9	- динамический массив указателей на интерфейсы ksLibraryStyleParam	- динамический массив структур параметров для стиля в библиотеке стилей(LibraryStyleParam)
VARIABLE_ARR	10	- динамический массив указателей на интерфейсы ksVariable	- динамический массив структур параметров параметрических переменных (VariableParam)
CURVE_PATTERN_ARR_EX	11	- динамический массив указателей на интерфейсы ksCurvePatternEx	- динамический массив указателей на участки штриховой линии (структура CurvePatternEx)
LIBRARY_ATTR_TYPE_ARR	12	- динамический массив указателей на интерфейсы ksLibraryAttrTypeParam	- динамический массив структур параметров для типа атрибута в библиотеке типов атрибутов (LibraryAttrTypeParam)
NURBS_POINT_ARR	13	- динамический массив указателей на интерфейсы ksNurbsPointParam	- динамический массив структур точек кривой NURBS (NurbsPointParam)
DOUBLE_ARR	14	- динамический массив указателей на интерфейсы ksDoubleValue	- динамический массив значений типа double
CONSTRAINT_ARR	15	- динамический массив указателей на интерфейсы ksConstraintParam	- динамический массив структур параметрических ограничений (ConstraintParam)
CORNER_ARR	16	- динамический массив указателей на интерфейсы ksCornerParam	- динамический массив структур параметров скругленных (или усеченных) углов прямоугольников и многоугольников (CornerParam) Пример работы со структурой CornerParam и массивом CORNER_ARR
DOC_SPCOBJ_ARR	17	- динамический массив указателей на интерфейсы ksDocAttachedSpcParam	- динамический массив структур параметров документов, подключенных к объекту спецификации (DocAttachedSpcParam)
SPCSUBSECTION_ARR	18	- динамический массив указателей на интерфейсы ksSpcSubSectionParam	- динамический массив структур параметров подраздела спецификации (SpcSubSectionParam)
SPCTUNINGSEC_ARR	19	- динамический массив указателей на интерфейсы ksSpcTuningSectionParam	- динамический массив структур параметров настройки раздела спецификации (SpcTuningSectionParam)
SPCSTYLECOLUMN_ARR	20	- динамический массив указателей на интерфейсы ksSpcStyleColumnParam	- динамический массив структур параметров стиля колонки спецификации (SpcStyleColumnParam)
SPCSTYLESEC_ARR	21	- динамический массив указателей на интерфейсы ksSpcStyleSectionParam	- динамический массив структур параметров стиля разделa спецификации (SpcStyleSectionParam)
QUALITYITEM_ARR	22	- динамический массив указателей на интерфейсы ksQualityItemParam	динамический массив структур параметров интервала квалитета (QualityItemParam)
LTVARIANT_ARR	23	- динамический массив указателей на интерфейсы ksLtVariant	- динамический массив структур для хранения данных некоторого типа (LtVariant)
TOLERANCEBRANCH_ARR	24	- динамический массив указателей на интерфейсы ksToleranceBranch	- динамический массив структур параметров "опоры" допуска формы (ToleranceBranch)
HATCHLINE_ARR	25	- динамический массив указателей на интерфейсы ksHatchLineParam	- динамический массив структур (HatchLineParam)
TREENODEPARAM_ARR	26	- динамический массив указателей на интерфейсы ksHatchLineParam	- динамический массив структур узла дерева TreeNodeParam


Типы интерфейсов
StructType2D

Типы интерфейсов, создаваемых методом GetParamStruct объекта KompasObject

ko_Type1	1	ksType1
ko_Type2	2	ksType2
ko_Type3	3	ksType3
ko_Type5	4	ksType5
ko_Type6	5	ksType6
ko_Phantom	6	ksPhantom
ko_PlacementParam	7	ksPlacementParam
ko_ViewParam	8	ksViewParam
ko_LayerParam	9	ksLayerParam
ko_RequestInfo	10	ksRequestInfo
ko_LineSegParam	11	ksLineSegParam
ko_ArcByAngleParam	12	ksArcByAngleParam
ko_ArcByPointParam	13	ksArcByPointParam
ko_MathPointParam	14	ksMathPointParam
ko_RectParam	15	ksRectParam
ko_PointParam	16	ksPointParam
ko_BezierPointParam	17	ksBezierPointParam
ko_NurbsPointParam	18	ksNurbsPointParam
ko_BezierParam	19	ksBezierParam
ko_CircleParam	20	ksCircleParam
ko_LineParam	21	ksLineParam
ko_EllipseParam	22	ksEllipseParam
ko_EllipsArcParam	23	ksEllipseArcParam
ko_EllipsArcParam1	24	ksEllipseArcParam1
ko_EquidParam	25	ksEquidistantParam
ko_HatchParam	26	ksHatchParam
ko_ParagraphParam	27	ksParagraphParam
ko_TextParam	28	ksTextParam
ko_TextLineParam	29	ksTextLineParam
ko_TextItemFont	30	ksTextItemFont
ko_TextItemParam	31	ksTextItemParam
ko_StandartSheet	32	ksStandartSheet
ko_SheetSize	33	ksSheetSize
ko_SheetPar	34	ksSheetPar
ko_DocumentParam	35	ksDocumentParam
ko_ColumnInfoParam	36	ksColumnInfoParam
ko_AttributeType	37	ksAttributeTypeParam
ko_Attribute	38	ksAttributeParam
ko_LibraryAttrTypeParam	39	ksLibraryAttrTypeParam
ko_TAN	40	ksTAN
ko_CON	41	ksCON
ko_DimText	42	ksDimTextParam
ko_LDimSource	43	ksLDimSourceParam
ko_DimDrawing	44	ksDimDrawingParam
ko_LDimParam	45	ksLDimParam
ko_LBreakDimSource	46	ksLBreakDimSource
ko_BreakDimDrawing	47	ksBreakDimDrawing
ko_LBreakDimParam	48	ksLBreakDimParam
ko_ADimSourceParam	49	ksADimSourceParam
ko_ADimParam	50	ksADimParam
ko_ABreakDimParam	51	ksABreakDimParam
ko_RDimSource	52	ksRDimSourceParam
ko_RDimDrawing	53	ksRDimDrawingParam
ko_RDimParam	54	ksRDimParam
ko_RBreakDrawing	55	ksRBreakDrawingParam
ko_RBreakDimParam	56	ksRBreakDimParam
ko_RoughPar	57	ksRoughPar
ko_ShelfPar	58	ksShelfPar
ko_RoughParam	59	ksRoughParam
ko_LeaderParam	60	ksLeaderParam
ko_PosLeaderParam	61	ksPosLeaderParam
ko_BrandLeaderParam	62	ksBrandLeaderParam
ko_MarkerLeaderParam	63	ksMarkerLeaderParam
ko_BaseParam	64	ksBaseParam
ko_CutLineParam	65	ksCutLineParam
ko_ViewPointerParam	66	ksViewPointerParam
ko_ToleranceBranch	67	ksToleranceBranch
ko_ToleranceParam	68	ksToleranceParam
ko_CurvePattern	69	ksCurvePattern
ko_CurvePicture	70	ksCurvePicture
ko_CurvePatternEx	71	ksCurvePatternEx
ko_CurveStyleParam	72	ksCurveStyleParam
ko_DimensionPartsParam	73	ksDimensionPartsParam
ko_TextStyleParam	74	ksTextStyleParam
ko_ConicArcParam	75	ksConicArcParam
ko_PolylineParam	76	ksPolylineParam
ko_LibStyle	77	ksLibStyle
ko_TechnicalDemandParam	78	ksTechnicalDemandParam
ko_SpecRoughParam	79	ksSpecRoughParam
ko_DimensionOptions	80	ksDimensionsOptions
ko_SpcColumnParam	81	ksSpcColumnParam
ko_LibraryStyleParam	82	ksLibraryStyleParam
ko_InertiaParam	83	ksInertiaParam
ko_MassInertiaParam	84	ksMassInertiaParam
ko_VariableParam	85	ksVariable
ko_SnapOptions	86	ksSnapOptions
ko_NurbsParam	87	ksNurbsParam
ko_InsertFragmentParam	88	ksInsertFragmentParam
ko_ConstraintParam	89	ksConstraintParam
ko_CornerParam	90	ksCornerParam
ko_RectangleParam	91	ksRectangleParam
ko_RegularPolygonParam	92	ksRegularPolygonParam
ko_CentreParam	93	ksCentreParam
ko_DocAttachSpcParam	94	ksDocAttachedSpcParam
ko_SpcObjParam	95	ksSpcObjParam
ko_RasterParam	96	ksRasterParam
ko_RecordTypeAttrParam	97	ksRecordTypeAttrParam
ko_NumberTypeAttrParam	98	ksNumberTypeAttrParam
ko_SpcStyleColumnParam	99	ksSpcStyleColumnParam
ko_SpcStyleSectionParam	100	ksSpcStyleSectionParam
ko_SpcSubSectionParam	101	ksSpcSubSectionParam
ko_SpcTuningSectionParam	102	ksSpcTuningSectionParam
ko_SpcTuningStyleParam	103	ksSpcTuningStyleParam
ko_SpcStyleParam	104	ksSpcStyleParam
ko_SpcDescrParam	105	ksSpcDescrParam
ko_QualityItemParam	106	ksQualityItemParam
ko_QualityContensParam	107	ksQualityContensParam
ko_LtVariant	108	ksLtVariant
ko_ContourParam	109	ksContourParam
ko_DoubleValue	110	ksDoubleValue
ko_Char255	111	ksChar255
ko_UserParam	112	ksUserParam
ko_HatchLineParam	113	ksHatchLineParam
ko_HatchStyleParam	114	ksHatchStyleParam
ko_OrdinatedSourceParam	115	ksOrdinatedSourceParam
ko_OrdinatedDrawingParam	116	ksOrdinatedDrawingParam
ko_OrdinatedDimParam	117	ksOrdinatedDimParam
ko_SheetOptions	118	ksSheetOptions
ko_InsertFragmentParamEx	119	ksInsertFragmentParamEx
ko_TreeNodeParam	120	ksTreeNodeParam
ko_AssociationViewParam	121	ksAssociationViewParam
ko_HatchLineParam	122	ksHatchLineParam
ko_AxisLineParam	123	ksAxisLineParam
ko_CopyObjectParam	126	ksCopyObjectParam
ko_OverlapObjectOptions	127	ksOverlapObjectOptions
ko_ParametrizationParam	9000	ksParametrizationParam


Типы выхода из режима ksSystemControlStart
Типы выхода из режима

scsSTOPPED_FOR_MENU_COMMAND	1	- выполнена команда меню "Остановить работу библиотеки",
scsSTOPPED_FOR_SYSTEM_STOP	0	- идет закрытие системы КОМПАС,
scsSTOPPED_FOR_ITSELF	-1	- вызов функции SystemControlStop из-под библиотеки,
scsSTOPPED_FOR_START_THIS_LIB	-2	- управление системе КОМПАС уже передано той же библиотекой,
scsSTOPPED_FOR_START_ANOTHER_LIB	-3	- управление системе КОМПАС уже передано другой библиотекой.


Типы системных каталогов

sptSYSTEM_FILES	0	- каталог системных файлов,
sptLIBS_FILES	1	- каталог файлов библиотек,
sptTEMP_FILES	2	- каталог хранения временных файлов,
sptCONFIG_FILE	3	- каталог хранения файлов конфигурации системы.
sptINI_FILE	4	- каталог хранения INI-файла системы.
sptBIN_FILE	5	- каталог исполняемых файлов системы
sptPROJECT_FILES	6	- каталог сохранения kompas.prj
sptDESKTOP_FILES	7	- каталог сохранения kompas.dsk
sptTEMPLATES_FILES	8	- на каталог шаблонов КОМПАС-документов
sptPROFILES_FILES	9	- на каталог сохранения профилей пользователя


Коды типов сортаментов

Черные металлы	1	Фасонный
	2	Листовой
	3	Ленты
	4	Проволока
	5	Профильный прокат
	6	Трубы
	7	Сетки
Цветные металлы	8	Прутки
	9	Трубы
	10	Проволока
	11	Листы
	12	Плиты
	13	Ленты
	14	Фольги
	15	Профили
	16	Сетки
Пластмассы	17	Пленки
	18	Трубы
	19	Плиты
	20	Ленты
	21	Листы
	22	Трубки
	23	Прутки
Резины и кожи	24	Листы
	25	Трубки
	26	Прутки
Стекло и минералы	27	Листы
	28	Трубки
	29	Прутки
Материалы разные	30	Пиломатериалы
	31	Бумаги разные
	32	Стройматериалы
	33	Текстиль


MathPointParam - структура параметров математической точки
MathPointParam

Структура параметров математической точки

double	x, y	координаты точки


InsertFragmentParam - структура параметров вставки фрагмента
InsertFragmentParam

Структура параметров вставки фрагмента

Аналог данных параметров при использовании Automation - интерфейс ksInsertFragmentParam.

PlacementParam	place	положение вставки фрагмента (PlacementParam)
unsigned char	insertType	тип вставки фрагмента (0 - взять в документ,  1 - внешней ссылкой,  3 - локальный фрагмент)
unsigned char	multiLayer	признак размещения объектов фрагмента по слоям (0 - объекты на одном слое,  1 - объекты на разных слоях
char	fileName [MAX_TEXT_LENGTH]	имя файла фрагмента или "\0" для локального фрагмента
char	comment [MAX_TEXT_LENGTH	имя вставки
Структура параметров положения вставки (PlacementParam)...>Interfc


InsertFragmentParamEx - расширенная структура параметров вставки фрагмента
InsertFragmentParamEx

Структура параметров вставки фрагмента (расширенная)

Аналог данных параметров при использовании Automation - интерфейс ksInsertFragmentParam.

PlacementParam	place	положение вставки фрагмента (PlacementParam)
unsigned  char	insertType	тип вставки фрагмента (0 - взять в документ,  1 - внешней ссылкой,  3 - локальный фрагмент)
unsigned char	multiLayer	признак размещения объектов фрагмента по слоям (0 - объекты на одном слое,  1 - объекты на разных слоях)
char	fileName [MAX_TEXT_LENGTH]	имя файла фрагмента или "\0" для локального фрагмента
char	comment [MAX_TEXT_LENGTH]	имя вставки
unsigned char	scaleProjLinesSize	признак масштабирования длины выносных линий размеров: (1 - выносные линии масштабируются,  0 - выносные линии не масштабируются)
Структура параметров положения вставки (PlacementParam)...>Interfc


LibStyle - структура параметров для подключения стиля из библиотеки
LibStyle

Структура параметров для подключения стиля из библиотеки

Аналог данных параметров при использовании Automation - интерфейс ksLibStyle.

char	fileName [MAX_TEXT_LENGTH]	имя файла библиотеки
int	styleNumber	номер стиля в библиотеке
unsigned char	typeAllocation	тип размещения стиля в документе  (0 - телом; 1 - ссылкой на  библиотеку)


LibraryStyleParam - структура параметров стиля в библиотеке стилей
LibraryStyleParam

Структура параметров стиля в библиотеке стилей

Аналог данных параметров при использовании Automation - интерфейс ksLibraryStyleParam.

char	styleName [MAX_TEXT_LENGTH]	имя стиля
unsigned int	styleId	номер стиля в библиотеке


InertiaParam - структура параметров для расчета МЦХ плоской фигуры
InertiaParam

Структура параметров для расчета МЦХ плоской фигуры

Аналог данных параметров при использовании Automation - интерфейс ksInertiaParam.

double	xc, yc	координаты центра тяжести фигуры
double	f	площадь
double	ly, lx	моменты инерции относительно исходных осей x и y
double	lxy	центробежный момент инерции относительно исходных осей x и y
double	my, mx	моменты инерции относительно осей, параллельных осям x и y и проходящих через центр тяжести
double	mxy	центробежный момент инерции относительно осей, параллельных осям x и y и проходящих черех центр тяжести
double	jy, jx	главные центральные моменты инерции
double	a	угол между первой главной осью и осью x


MassInertiaParam - структура параметров для расчета МЦХ тел вращения и выдавливания
MassInertiaParam

Структура параметров для расчета МЦХ тел вращения и выдавливания

Аналог данных параметров при использовании Automation - интерфейс ksMassInertiaParam.

double	r	плотность материала
double	m	масса тела
double	v	объем тела
double	xc, yc, zc	координаты центра тяжести
double	lxy, lxz, lyz	центробежные моменты инерции относительно исходных осей
double	lx, ly, lz	осевые моменты инерции относительно исходных осей
double	jy0z, jx0z, jx0y	плоскостные моменты инерции
double	jxy, jxz, jyz	центробежные моменты инерции относительно главных осей
double	jx, jy, jz	осевые моменты инерции относительно главных осей


VariableParam - структура параметров параметрической переменной
VariableParam

Структура параметров параметрической переменной

char	name [MAX_TEXT_LENGTH]	имя переменной
double	value	значение переменной
char	note [MAX_TEXT_LENGTH]	комментарий


ConstraintParam - структура параметрических связей и ограничений
ConstraintParam

Структура параметрических связей и ограничений:

Аналог данных параметров при использовании Automation - интерфейс ksConstraintParam.

unsigned short	constrType	тип параметрического ограничения
int	index	индекс точки на объекте (нумерация начинается с 0, у дуги и окружности 0 - центр)
reference	partner	указатель на второй объект, участвующий в параметрической связи
int	partnerIndex	индекс точки на втором объекте (нумерация начинается с 0, у дуги и окружности 0 - центр)
Типы параметрических ограничений...


RequestInfo - структура параметров запроса к системе
RequestInfo

Структура параметров запроса к системе

Аналог данных параметров при использовании Automation - интерфейс ksRequestInfo.

char	*title	строка или идентификатор строки заголовка окна
char	*commands	строка или идентификатор меню состава команд
char	*prompt	строка или идентификатор приглашения
char	*cursor	строка с именем или идентификатор стандартного курсора
void	*callBack	указатель на функцию обратной связи
int	dynamic	признак динамического запроса (1 - динамический запрос, 0 - статический)
HINSTANCE	commInstance	идентификатор модуля, в котором размещен состав команд
Примечание:

Эта структура используется в функциях Cursor, Placement, CommandWindow.


LtVariant - структура параметров для хранения данных некоторого типа
LtVariant

Структура параметров для хранения данных некоторого типа

Аналог данных параметров при использовании Automation - интерфейс ksLtVariant.

LtVariantType	vType	тип хранимого данного
short	colVisible	для спецификации: 1 - видимая колонка,  0 - невидимая колонка
short	sortKey	ключ сортировки для колонки спецификации (0 - сортировки нет),
short	wReserved3	параметр зарезервировн для дальнейшего использования
char	chVal	символ
unsigned char	ucVal	байт
int	iVal	целое число
unsigned int	uiVal	беззнаковое целое число
long	lVal	длинное целое число
float	fVal	вещественное число
double	dVal	двойное число
char	strVal[MAX_TEXT_LENGTH]	строка
short	shVal	короткое целое число


Типы узла дерева библиотеки документов
LtNodeType

Типы узла дерева библиотеки документов

tn_root	0	- корень дерева
tn_dir	1	- папка
tn_file	2	- документ (файл)


Типы данных для LtVariant
LtVariantType

Типы данных для LtVariant

ltv_Char	1	символ
ltv_UChar	2	байт
ltv_Int	3	целое
ltv_UInt	4	беззнаковое целое
ltv_Long	5	длинное целое
ltv_Float	6	вешественное
ltv_Double	7	двойное вешественное
ltv_Str	8	строка 255 символов
ltv_NoUsed	9	пока не используется
ltv_Short	10	короткое целое


Структура параметров узла дерева библиотеки документов, библиотеки атрибутов
StructTreeNodeParam

Структура параметров узла дерева библиотеки документов, библиотеки атрибутов

Аналог данных параметров при использовании Automation - интерфейс ksTreeNodeParam.

long	type	- тип узла: корень, директория, файл (из LtNodeType)
char	name [MAX_TEXT_LENGTH]	- имя узла
reference	comment	- комментарий - динамический массив CHAR_STR_ARR (динамический массив строк символов)
reference	nodes	- динамический массив узлов TreeNodeParam


Типы валидатора

1	- char
2	- int
3	- long
4	- float
5	- double


Интерфейсы ksRasterFormatParam, IRasterFormatParam
ksRasterFormatParam,
IRasterFormatParam

Интерфейс параметров для записи документа в растровом формате.

ksRasterFormatParam	- интерфейс Automation
IRasterFormatParam	- интерфейс COM
Аналог данных параметров при использовании API экспортных функций - RasterFormatParam.

Свойства...

Методы...


ksRasterFormatParam::props
ksRasterFormatParam
свойства

colorBPP

colorType

extResolution

extScale

format

greyScale

multiPageOutput

onlyThinLine

pages

rangeIndex


ksRasterFormatParam::methods
ksRasterFormatParam
методы

Init


ksRasterFormatParam::format
IRasterFormatParam::format

Формат растра.

Тип данных - short.

Значения свойства...

Синтаксис Automation:

format = iRasterFormatParam.format	Получить свойство (*)
iRasterFormatParam.format = format	Установить свойство (*)
format = iRasterFormatParam.GetFormat()	Получить свойство (**)
iRasterFormatParam.SetFormat(format)	Установить свойство (**)


ksRasterFormatParam::colorBPP
IRasterFormatParam::colorBPP

Цветность растра.

Тип данных - short.

Значения свойства...

Синтаксис Automation:

colorBPP = iRasterFormatParam.colorBPP	Получить свойство (*)
iRasterFormatParam.colorBPP = colorBPP	Установить свойство (*)
colorBPP = iRasterFormatParam.GetColorBPP()	Получить свойство (**)
iRasterFormatParam.SetColorBPP(colorBPP)	Установить свойство (**)


ksRasterFormatParam::greyScale
IRasterFormatParam::greyScale

Признак сохранения в оттенках серого.

Тип данных - BOOL.

Значения свойства:

TRUE	- использовать оттенки серого,
FALSE	- сохранять цветной растр.
Синтаксис Automation:

greyScale = iRasterFormatParam.greyScale	Получить свойство (*)
iRasterFormatParam.greyScale = greyScale	Установить свойство (*)
greyScale = iRasterFormatParam.GetGreyScale()	Получить свойство (**)
iRasterFormatParam.SetGreyScale(greyScale)	Установить свойство (**)


ksRasterFormatParam::extResolution
IRasterFormatParam::extResolution

Разрешение растра.

Тип данных - long.

Синтаксис Automation:

extResolution = iRasterFormatParam.extResolution	Получить свойство (*)
iRasterFormatParam.extResolution = extResolution	Установить свойство (*)
extResolution = iRasterFormatParam.GetExtResolution()	Получить свойство (**)
iRasterFormatParam.SetExtResolution(extResolution)	Установить свойство (**)
Примечание:

Значение 0 соответствует текущему экранному разрешению.


ksRasterFormatParam::extScale
IRasterFormatParam::extScale

Масштаб.

Тип данных - double.

Синтаксис Automation:

extScale = iRasterFormatParam.extScale	Получить свойство (*)
iRasterFormatParam.extScale = extScale	Установить свойство (*)
extScale = iRasterFormatParam.GetExtScale()	Получить свойство (**)
iRasterFormatParam.SetExtScale(extScale)	Установить свойство (**)


ksRasterFormatParam::сolorType
IRasterFormatParam::сolorType

Цвет вывода объектов.

Тип данных - short.

Значения свойства...

Синтаксис Automation:

сolorType = iRasterFormatParam.сolorType	Получить свойство (*)
iRasterFormatParam.сolorType = сolorType	Установить свойство (*)
сolorType = iRasterFormatParam.GetСolorType()	Получить свойство (**)
iRasterFormatParam.SetСolorType(сolorType)	Установить свойство (**)


ksRasterFormatParam::onlyThinLine
IRasterFormatParam::onlyThinLine

Признак вывода всех линий тонкими.

Тип данных - BOOL.

Значения свойства:

TRUE	- выводить все только тонкими линиями,
FALSE	- использовать установленные для объектов толщины линий.
Синтаксис Automation:

onlyThinLine = iRasterFormatParam.onlyThinLine	Получить свойство (*)
iRasterFormatParam.onlyThinLine = onlyThinLine	Установить свойство (*)
onlyThinLine = iRasterFormatParam.GetOnlyThinLine()	Получить свойство (**)
iRasterFormatParam.SetOnlyThinLine(onlyThinLine)	Установить свойство (**)


ksRasterFormatParam::pages
IRasterFormatParam::pages

Список диапазонов выводимых страниц.

Тип данных - строка.

Значения свойства:

Формат списка - "beg1-end1, beg2-end2, beg3-end3, ...",

где begN - начало N-го интервала, endN - конец  N-го интервала.

Например, "1-18, 24-25".

Синтаксис Automation:

pages = iRasterFormatParam.pages	Получить свойство (*)
iRasterFormatParam.pages = pages	Установить свойство (*)
pages = iRasterFormatParam.GetPages()	Получить свойство (**)
iRasterFormatParam.SetPages(pages)	Установить свойство (**)
Примечание:

1. Свойство используется для многолистовых документов (текстовых документов и спецификаций).

2. Если строка пуста - свойство не используется.


ksRasterFormatParam::rangeIndex
IRasterFormatParam::rangeIndex

Признак выбора стороны страниц.

Тип данных - short.

Значения свойства:

0	- все страницы,
1	- нечетные страницы,
2	- четные страницы.
Синтаксис Automation:

rangeIndex = iRasterFormatParam.rangeIndex	Получить свойство (*)
iRasterFormatParam.rangeIndex = rangeIndex	Установить свойство (*)
rangeIndex = iRasterFormatParam.GetRangeIndex()	Получить свойство (**)
iRasterFormatParam.SetRangeIndex(rangeIndex)	Установить свойство (**)
Примечание:

1. Свойство используется для многолистовых документов (текстовых документов и спецификаций).


ksRasterFormatParam::multiPageOutput
IRasterFormatParam::multiPageOutput

Признак сохранения всех листов в одном файле.

Тип данных - BOOL.

Значения свойства:

TRUE	- сохранять все листы в одном файле,
FALSE	- сохранять листы в отдельных файлах.
Синтаксис Automation:

multiPageOutput = iRasterFormatParam.multiPageOutput	Получить свойство (*)
iRasterFormatParam.multiPageOutput = multiPageOutput	Установить свойство (*)
multiPageOutput = iRasterFormatParam.GetMultiPageOutput()	Получить свойство (**)
iRasterFormatParam.SetMultiPageOutput(multiPageOutput)	Установить свойство (**)
Примечание:

1. Свойство используется только для формата TIFF.


ksRasterFormatParam::Init
IRasterFormatParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Синтаксис COM:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры записи документа в растровом формате.


Интерфейсы ksAxis2PlanesDefinition, IAxis2PlanesDefinition
ksAxis2PlanesDefinition,
IAxis2PlanesDefinition

Интерфейс параметров вспомогательной оси на пересечении двух плоскостей.

ksAxis2PlanesDefinition	- интерфейс Automation
IAxis2PlanesDefinition	- интерфейс COM
Методы...


ksAxis2PlanesDefinition::methods
ksAxis2PlanesDefinition
методы

GetPlane

GetCurve3D

SetPlane


ksAxis2PlanesDefinition::GetPlane
IAxis2PlanesDefinition::GetPlane

Получить указатель на интерфейс базовой плоскости с указанным номером.

Синтаксис Automation:

LPDISPATCH GetPlane (long number);

Синтаксис COM:

LPENTITY GetPlane (long number);

Входной параметр:

number	- номер плоскости (1 или 2).
Возвращаемое значение:

	указатель на интерфейс плоскости ksEntity или IEntity.


ksAxis2PlanesDefinition::SetPlane
IAxis2PlanesDefinition::SetPlane

Изменить указатель на интерфейс базовой плоскости с указанным номером.

Синтаксис Automation:

BOOL SetPlane(long number, LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane(long number, LPENTITY plane);

Входные параметры:

plane	указатель на интерфейс плоскости ksEntity или IEntity.
number	- номер плоскости (1 или 2).
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksAxis2PlanesDefinition::GetCurve3D
IAxis2PlanesDefinition::GetCurve3D

Получить указатель на интерфейс математической кривой.

Синтаксис Automation:

LPDISPATCH GetCurve3D();

Синтаксис COM:

LPCURVE3D GetCurve3D();

Возвращаемое значение:

	указатель на интерфейс ksCurve3D или iCurve3D.


Интерфейсы ksAxis2PointsDefinition, IAxis2PointsDefinition
ksAxis2PointsDefinition,
IAxis2PointsDefinition

Интерфейс параметров вспомогательной оси, проходящей через две точки.

ksAxis2PointsDefinition	- интерфейс Automation
IAxis2PointsDefinition	- интерфейс COM
Методы...


ksAxis2PointsDefinition::methods
ksAxis2PointsDefinition
методы

GetCurve3D

GetPoint

SetPoint


ksAxis2PointsDefinition::GetPoint
IAxis2PointsDefinition::GetPoint

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

Синтаксис Automation:

LPDISPATCH GetPoint (long number);

Синтаксис COM:

LPENTITY GetPoint (long number);

Входной параметр:

number	- номер точки (1 или 2).
Возвращаемое значение:

	указатель на интерфейс точки ksEntity или IEntity.


ksAxis2PointsDefinition::SetPoint
IAxis2PointsDefinition::SetPoint

Изменить указатель на интерфейс точки с указанным номером.

Синтаксис Automation:

BOOL SetPoint (long number, LPDISPATCH point);

Синтаксис COM:

BOOL SetPoint (long number, LPENTITY point);

Входные параметры:

point	указатель на интерфейс точки ksEntity или IEntity.
number	- номер точки (1 или 2).
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksAxis2PointsDefinition::GetCurve3D
IAxis2PointsDefinition::GetCurve3D

Получить указатель на интерфейс математической кривой.

Синтаксис Automation:

LPDISPATCH GetCurve3D();

Синтаксис COM:

LPCURVE3D GetCurve3D();

Возвращаемое значение:

	указатель на интерфейс ksCurve3D или iCurve3D.


Интерфейсы ksAxisConefaceDefinition, IAxisConefaceDefinition
ksAxisConefaceDefinition,
IAxisConefaceDefinition

Интерфейс параметров конструктивной оси конической грани.

ksAxisConefaceDefinition	- интерфейс Automation
IAxisConefaceDefinition	- интерфейс COM
Методы...


ksAxisConefaceDefinition::methods
ksAxisConefaceDefinition
методы

GetCurve3D

GetFace

SetFace


ksAxisConefaceDefinition::GetFace
IAxisConefaceDefinition::GetFace

Получить указатель на базовую коническую поверхность.

Синтаксис Automation:

LPDISPATCH GetFace();

Синтаксис COM:

LPENTITY GetFace();

Возвращаемое значение:

	указатель на интерфейс поверхности ksEntity или IEntity.


ksAxisConefaceDefinition::SetFace
IAxisConefaceDefinition::SetFace

Установить указатель на базовую коническую поверхность.

Синтаксис Automation:

BOOL SetFace (LPDISPATCH face);

Синтаксис COM:

BOOL SetFace (LPENTITY face);

Входной параметр:

face	- указатель на интерфейс поверхности ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksAxisConefaceDefinition::GetCurve3D
IAxisConefaceDefinition::GetCurve3D

Получить указатель на интерфейс математической кривой.

Синтаксис Automation:

LPDISPATCH GetCurve3D();

Синтаксис COM:

LPCURVE3D GetCurve3D();

Возвращаемое значение:

	указатель на интерфейс ksCurve3D или iCurve3D.


Интерфейсы ksAxisEdgeDefinition, IAxisEdgeDefinition
ksAxisEdgeDefinition,
IAxisEdgeDefinition

Интерфейс параметров вспомогательной оси, проходящей через прямолинейное ребро.

ksAxisEdgeDefinition	- интерфейс Automation
IAxisEdgeDefinition	- интерфейс COM
Методы...


ksAxisEdgeDefinition::methods
ksAxisEdgeDefinition
методы

GetCurve3D

GetEdge

SetEdge


ksAxisEdgeDefinition::GetEdge
IAxisEdgeDefinition::GetEdge

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

Синтаксис Automation:

LPDISPATCH GetEdge();

Синтаксис COM:

LPENTITY GetEdge();

Возвращаемое значение:

	указатель на интерфейс ребра ksEntity или IEntity.


ksAxisEdgeDefinition::SetEdge
IAxisEdgeDefinition::SetEdge

Изменить указатель на интерфейс базового ребра

Синтаксис Automation:

BOOL SetEdge (LPDISPATCH edge);

Синтаксис COM:

BOOL SetEdge (LPENTITY edge);

Входной параметр:

edge	- указатель на интерфейс ребра ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksAxisEdgeDefinition::GetCurve3D
IAxisEdgeDefinition::GetCurve3D

Получить указатель на интерфейс математической кривой.

Синтаксис Automation:

LPDISPATCH GetCurve3D();

Синтаксис COM:

LPCURVE3D GetCurve3D();

Возвращаемое значение:

	указатель на интерфейс ksCurve3D или iCurve3D.


Интерфейс ksAxisOperationsDefinition, IAxisOperationsDefinition
ksAxisOperationsDefinition,
IAxisOperationsDefinition

Интерфейс параметров оси формообразующего элемента.

ksAxisOperationsDefinition	- интерфейс Automation
IAxisOperationsDefinition	- интерфейс COM
Методы...


ksAxisOperationsDefinition::methods
ksAxisOperationsDefinition
методы

GetCurve3D

GetOperation

SetOperation


ksAxisOperationsDefinition::GetOperation
IAxisOperationsDefinition::GetOperation

Получить базовый формообразующий элемент.

Синтаксис Automation:

LPDISPATCH GetOperation();

Синтаксис COM:

LPENTITY GetOperation();

Возвращаемое значение:

	указатель на интерфейс элемента ksEntity или IEntity.


ksAxisOperationsDefinition::SetOperation
IAxisOperationsDefinition::SetOperation

Изменить базовый формообразующий элемент.

Синтаксис Automation:

BOOL SetOperation (LPDISPATCH operation);

Синтаксис COM:

BOOL SetOperation (LPENTITY operation);

Входной параметр:

operation	- указатель на интерфейс базового формообразующего элемента ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksAxisOperationsDefinition::GetCurve3D
IAxisOperationsDefinition::GetCurve3D

Получить указатель на интерфейс математической кривой.

Синтаксис Automation:

LPDISPATCH GetCurve3D();

Синтаксис COM:

LPCURVE3D GetCurve3D();

Возвращаемое значение:

	указатель на интерфейс ksCurve3D или iCurve3D.


Интерфейсы ksBaseEvolutionDefinition, IBaseEvolutionDefinition
ksBaseEvolutionDefinition,
IBaseEvolutionDefinition

Интерфейс параметров основания - кинематического элемента.

ksBaseEvolutionDefinition	- интерфейс Automation
IBaseEvolutionDefinition	- интерфейс COM
Свойства...

Методы...


ksBaseEvolutionDefinition::props
ksBaseEvolutionDefinition
свойства

sketchShiftType


ksBaseEvolutionDefinition::methods
ksBaseEvolutionDefinition
методы

GetSketch

GetThinParam

PathPartArray

SetSketch

SetThinParam

ThinParam


ksBaseEvolutionDefinition::sketchShiftType
IBaseEvolutionDefinition::sketchShiftType

Тип движения сечения по траектории.

Тип данных - short.

Значения свойства:

0	- образующая переносится параллельно самой себе,
1	- образующая при переносе сохраняет исходный угол с направляющей,
2	- плоскость образующей выставляется и сохраняется ортогональной направляющей.
Синтаксис Automation:

sketchShiftType = iEvolution.sketchShiftType	Получить свойство (*)
iEvolution.sketchShiftType = sketchShiftType	Установить свойство (*)
sketchShiftType = iEvolution.GetSketchShiftType()	Получить свойство (**)
iEvolution.SetSketchShiftType(sketchShiftType)	Установить свойство (**)


ksBaseEvolutionDefinition::PathPartArray
IBaseEvolutionDefinition::PathPartArray

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

Синтаксис Automation:

IDispatch * PathPartArray();

Синтаксис COM:

LPENTITYCOLLECTION PathPartArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива кривых ksEntityCollection или IEntityCollection.


ksBaseEvolutionDefinition::GetSketch
IBaseEvolutionDefinition::GetSketch

Получить указатель на интерфейс эскиза сечения кинематического элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksBaseEvolutionDefinition::SetSketch
IBaseEvolutionDefinition::SetSketch

Установить эскиз сечения кинематического элемента.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseEvolutionDefinition::GetThinParam
IBaseEvolutionDefinition::GetThinParam

Получить параметры тонкой стенки.

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

BYTE *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseEvolutionDefinition::SetThinParam
IBaseEvolutionDefinition::SetThinParam

Установить параметры тонкой стенки.

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

BYTE thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseEvolutionDefinition::ThinParam
IBaseEvolutionDefinition::ThinParam

Получить указатель на интерфейс тонкой стенки.

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPROPERTY ThinParam();

Возвращаемое значение:

	указатель на интерфейс тонкой стенки ksThinParam или IThinParam.


Интерфейсы ksBaseLoftDefinition, IBaseLoftDefinition
ksBaseLoftDefinition,
IBaseLoftDefinition

Интерфейс параметров основания - элемента по сечениям.

ksBaseLoftDefinition	- интерфейс Automation
IBaseLoftDefinition	- интерфейс COM
Методы...


ksBaseLoftDefinition::methods
ksBaseLoftDefinition
методы

GetLoftParam

SetLoftParam

GetThinParam

SetThinParam

ThinParam

Sketches


ksBaseLoftDefinition::GetLoftParam
IBaseLoftDefinition::GetLoftParam

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

Синтаксис Automation:

BOOL GetLoftParam (BOOL *closed,

BOOL *flipVertex,

BOOL *autoPath);

Синтаксис COM:

BOOL GetLoftParam (BOOL *closed,

BOOL *flipVertex,

BOOL *autoPath);

Выходные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseLoftDefinition::SetLoftParam
IBaseLoftDefinition::SetLoftParam

Изменить параметры операции по сечениям

Синтаксис Automation:

BOOL SetLoftParam (BOOL closed,

BOOL flipVertex,

BOOL autoPath);

Синтаксис COM:

BOOL SetLoftParam (BOOL closed,

BOOL flipVertex,

BOOL autoPath);

Входные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseLoftDefinition::GetThinParam
IBaseLoftDefinition::GetThinParam

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

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseLoftDefinition::SetThinParam
IBaseLoftDefinition::SetThinParam

Изменить параметры тонкой стенки

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseLoftDefinition::ThinParam
IBaseLoftDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksBaseLoftDefinition::Sketches
IBaseLoftDefinition::Sketches

Получить указатель на интерфейс массива эскизов элемента по сечениям.

Синтаксис Automation:

LPDISPATCH Sketches();

Синтаксис COM:

LPENTITYCOLLECTION Sketches();

Возвращаемое значение:

	указатель на интерфейс массива эскизов ksEntityCollection или IEntityCollection.
Примечания:

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

2. Эскизы из данного массива используются для построения элемента по сечениям.


Интерфейсы ksBaseRotatedDefinition, IBaseRotatedDefinition
ksBaseRotatedDefinition,
IBaseRotatedDefinition

Интерфейс параметров основания - элемента вращения.

ksBaseRotatedDefinition	- интерфейс Automation
IBaseRotatedDefinition	- интерфейс COM
Свойства...

Методы...


ksBaseRotatedDefinition::props
ksBaseRotatedDefinition
свойства

directionType

toroidShapeType


ksBaseRotatedDefinition::methods
ksBaseRotatedDefinition
методы

GetSideParam

GetSketch

GetThinParam

RotatedParam

SetSideParam

SetSketch

SetThinParam

ThinParam


ksBaseRotatedDefinition::directionType
IBaseRotatedDefinition::directionType

Направление вращения.

Типы направлений...

Примечание:

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

Нормаль, проведенная к поверхности тела, всегда выходит из тела.


ksBaseRotatedDefinition::toroidShapeType
IBaseRotatedDefinition::toroidShapeType

Признак тороида.

Тип данных - BOOL.

Значения свойства:

TRUE	- тороид,
FALSE	- сфероид.


ksBaseRotatedDefinition::GetSketch
IBaseRotatedDefinition::GetSketch

Получить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksBaseRotatedDefinition::SetSketch
IBaseRotatedDefinition::SetSketch

Изменить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseRotatedDefinition::GetSideParam
IBaseRotatedDefinition::GetSideParam

Получить параметры вращения в одном направлении

Синтаксис Automation:

BOOL GetSideParam (BOOL forward,

double *angle);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

double * angle);

Входной параметр:

forward	- направление вращения: TRUE - прямое, FALSE - обратное.
Выходной параметр:

angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseRotatedDefinition::SetSideParam
IBaseRotatedDefinition::SetSideParam

Изменить параметры вращения в одном направлении.

Синтаксис Automation:

BOOL SetSideParam (short forward, double angle);

Синтаксис COM:

BOOL SetSideParam (BOOL forward, double angle);

Входные параметры:

forward	- направление вращения: TRUE - прямое, FALSE - обратное.
angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseRotatedDefinition::GetThinParam
IBaseRotatedDefinition::GetThinParam

Получить параметры тонкой стенки элемента.

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseRotatedDefinition::SetThinParam
IBaseRotatedDefinition::SetThinParam

Изменить параметры тонкой стенки элемента

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBaseRotatedDefinition::ThinParam
IBaseRotatedDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksBaseRotatedDefinition::RotatedParam
IBaseRotatedDefinition::RotatedParam

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

Синтаксис Automation:

LPDISPATCH RotatedParam();

Синтаксис COM:

LPROTATEDPARAM RotatedParam();

Возвращаемое значение:

	указатель на интерфейс ksRotatedParam или IRotatedParam.


Интерфейсы ksAdditionFormatParam, IAdditionFormatParam
ksAdditionFormatParam,
IAdditionFormatParam

Интерфейс параметров для записи модели в форматы IGES, SAT, XT, X_B, STEP, STL, VRML.

ksAdditionFormatParam	- интерфейс Automation
IadditionFormatParam	- интерфейс COM
Свойства...

Методы...


ksAdditionFormatParam::props
ksAdditionFormatParam
свойства

format

formatBinary

topolgyIncluded


ksAdditionFormatParam::methods
ksAdditionFormatParam
методы

Init


ksAdditionFormatParam::format
IAdditionFormatParam::format

Формат файла для записи модели.

Тип данных - short.

Значения свойства...

Синтаксис Automation:

format = iAdditionFormatParam.format	Получить свойство (*)
iAdditionFormatParam.format = format	Установить свойство (*)
format = iAdditionFormatParam.GetFormat()	Получить свойство (**)
iAdditionFormatParam.SetFormat(format)	Установить свойство (**)


ksAdditionFormatParam::formatBinary
IAdditionFormatParam::formatBinary

Признак, определяющий тип файла (двоичный или текстовый).

Тип данных - BOOL.

Значения свойства:

TRUE	- двоичный формат,
FALSE	- текстовый формат.
Синтаксис Automation:

formatBinary = iAdditionFormatParam.formatBinary	Получить свойство (*)
iAdditionFormatParam.formatBinary = formatBinary	Установить свойство (*)
formatBinary = iAdditionFormatParam.GetFormatBinary()	Получить свойство (**)
iAdditionFormatParam.SetFormatBinary(formatBinary)	Установить свойство (**)
Примечание:

Свойство используется при записи в форматы XT, X_B, STL.


ksAdditionFormatParam::topolgyIncluded
IAdditionFormatParam::topolgyIncluded

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

Тип данных - BOOL.

Значения свойства:

TRUE	- включить топологию,
FALSE	- не включать топологию.
Синтаксис Automation:

topolgyIncluded = iAdditionFormatParam.topolgyIncluded	Получить свойство (*)
iAdditionFormatParam.topolgyIncluded = topolgyIncluded	Установить свойство (*)
topolgyIncluded = iAdditionFormatParam.GetTopolgyIncluded()	Получить свойство (**)
iAdditionFormatParam.SetTopolgyIncluded(topolgyIncluded)	Установить свойство (**)
Примечание:

Свойство используется при записи в формат IGES.


ksAdditionFormatParam::Init
IAdditionFormatParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Синтаксис COM:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры записи модели в дополнительные форматы.


Интерфейсы ksBaseExtrusionDefinition, IBaseExtrusionDefinition
ksBaseExtrusionDefinition,
IBaseExtrusionDefinition

Интерфейс параметров основания - элемента выдавливания.

ksBaseExtrusionDefinition	- интерфейс Automation
IBaseExtrusionDefinition	- интерфейс COM
Свойства...

Методы...


ksBaseExtrusionDefinition::props
ksBaseExtrusionDefinition
свойства

directionType


ksBaseExtrusionDefinition::methods
ksBaseExtrusionDefinition
методы

ExtrusionParam

GetDepthObject

GetSideParam

GetSketch

GetThinParam

ResetDepthObject

SetDepthObject

SetSideParam

SetSketch

SetThinParam

ThinParam


ksBaseExtrusionDefinition::directionType
IBaseExtrusionDefinition::directionType

Направление выдавливания.

Прямое направление совпадает с нормалью, проведенной к плоскости эскиза.

Для вырезаемого элемента выдавливания направление противоположно нормали.

Примечание:

Нормаль, проведенная к грани, всегда направлена наружу ("из тела детали").

Типы направлений...


ksBaseExtrusionDefinition::GetSketch
IBaseExtrusionDefinition::GetSketch

Получить указатель на интерфейс эскиза элемента

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksBaseExtrusionDefinition::SetSketch
IBaseExtrusionDefinition::SetSketch

Изменить указатель на интерфейс эскиза элемента

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksBaseExtrusionDefinition::GetSideParam
IBaseExtrusionDefinition::GetSideParam

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

Синтаксис Automation:

BOOL GetSideParam (BOOL forward,

short *type,

double *depth,

double *draftValue,

BOOL *draftOutward);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

short *type,

double *depth,

double *draftValue,

BOOL *draftOutward);

Входной параметр:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
Выходные параметры:

type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksBaseExtrusionDefinition::SetSideParam
IBaseExtrusionDefinition::SetSideParam

Изменить параметры выдавливания в одном направлении.

Синтаксис Automation:

BOOL SetSideParam (BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Синтаксис COM:

BOOL SetSideParam (BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Входные параметры:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksBaseExtrusionDefinition::GetThinParam
IBaseExtrusionDefinition::GetThinParam

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

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksBaseExtrusionDefinition::SetThinParam
IBaseExtrusionDefinition::SetThinParam

Изменить параметры тонкой стенки.

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksBaseExtrusionDefinition::ThinParam
IBaseExtrusionDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksBaseExtrusionDefinition::ExtrusionParam
IBaseExtrusionDefinition::ExtrusionParam

Получить указатель на интерфейс параметров элемента выдавливания.

Синтаксис Automation:

LPDISPATCH ExtrusionParam();

Синтаксис COM:

LPEXTRUSIONPARAM ExtrusionParam();

Возвращаемое значение:

	указатель на интерфейс ksExtrusionParam или IExtrusionParam.


ksBaseExtrusionDefinition::GetDepthObject
IBaseExtrusionDefinition::GetDepthObject

Получить объект, задающий глубину выдавливания.

Синтаксис Automation:

LPDISPATCH GetDepthObject (BOOL normal);

Синтаксис COM:

LPENTITY GetDepthObject (BOOL normal);

Входные параметры:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
Возвращаемое значение:

	указатель на интерфейс объекта глубины выдавливания ksEntity или IEntity.


ksBaseExtrusionDefinition::SetDepthObject
IBaseExtrusionDefinition::SetDepthObject

Установить объект, задающий глубину выдавливания.

Синтаксис Automation:

BOOL SetDepthObject (BOOL normal, LPDISPATCH obj);

Синтаксис COM:

BOOL SetDepthObject (BOOL normal, LPENTITY obj);

Входные параметры:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
obj	- указатель на интерфейс объекта глубины выдавливания ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksBaseExtrusionDefinition::ResetDepthObject
IBaseExtrusionDefinition::ResetDepthObject

Отказаться от установленного методом SetDepthObject объекта, задающего глубину выдавливания.

Синтаксис Automation:

BOOL ResetDepthObject (BOOL normal);

Синтаксис COM:

BOOL ResetDepthObject (BOOL normal);

Входные параметры:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


Интерфейсы ksBossExtrusionDefinition, IBossExtrusionDefinition
ksBossExtrusionDefinition,
IBossExtrusionDefinition

Интерфейс параметров приклеенного элемента выдавливания.

ksBossExtrusionDefinition	- интерфейс Automation
IBossExtrusionDefinition	- интерфейс COM
Свойства...

Методы...


ksBossExtrusionDefinition::props
ksBossExtrusionDefinition
свойства

directionType


ksBossExtrusionDefinition::methods
ksBossExtrusionDefinition
методы

ExtrusionParam

GetDepthObject

GetSideParam

GetSketch

GetThinParam

ResetDepthObject

SetDepthObject

SetSideParam

SetSketch

SetThinParam

ThinParam


ksBossExtrusionDefinition::directionType
IBossExtrusionDefinition::directionType

Направление выдавливания.

Прямое направление совпадает с нормалью, проведенной к плоскости эскиза.

Для вырезаемого элемента выдавливания направление противоположно нормали.

Примечание:

Нормаль, проведенная к грани, всегда направлена наружу ("из тела детали").

Типы направлений...


ksBossExtrusionDefinition::GetSketch
IBossExtrusionDefinition::GetSketch

Получить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksBossExtrusionDefinition::SetSketch
IBossExtrusionDefinition::SetSketch

Изменить указатель на интерфейс эскиза элемента

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossExtrusionDefinition::GetSideParam
IBossExtrusionDefinition::GetSideParam

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

Синтаксис Automation:

BOOL GetSideParam (BOOL forward,

short *type,

double *depth,

double *draftValue,

BOOL *draftOutward);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

short *type,

double *depth,

double *draftValue,

BOOL *draftOutward);

Входной параметр:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
Выходные параметры:

type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Типы выдавливания...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossExtrusionDefinition::SetSideParam
IBossExtrusionDefinition::SetSideParam

Изменить параметры выдавливания в одном направлении

Синтаксис Automation:

BOOL SetSideParam (BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Синтаксис COM:

BOOL SetSideParam (BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Входные параметры:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossExtrusionDefinition::GetThinParam
IBossExtrusionDefinition::GetThinParam

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

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossExtrusionDefinition::SetThinParam
IBossExtrusionDefinition::SetThinParam

Изменить параметры тонкой стенки

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossExtrusionDefinition::ThinParam
IBossExtrusionDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksBossExtrusionDefinition::ExtrusionParam
IBossExtrusionDefinition::ExtrusionParam

Получить указатель на интерфейс параметров элемента выдавливания.

Синтаксис Automation:

LPDISPATCH ExtrusionParam();

Синтаксис COM:

LPEXTRUSIONPARAM ExtrusionParam();

Возвращаемое значение:

	указатель на интерфейс ksExtrusionParam или IExtrusionParam.


ksBossExtrusionDefinition::GetDepthObject
IBossExtrusionDefinition::GetDepthObject

Получить объект, задающий глубину выдавливания.

Синтаксис Automation:

LPDISPATCH GetDepthObject (BOOL normal);

Синтаксис COM:

LPENTITY GetDepthObject (BOOL normal);

Входные параметры:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksBossExtrusionDefinition::SetDepthObject
IBossExtrusionDefinition::SetDepthObject

Установить объект, задающий глубину выдавливания.

Синтаксис Automation:

BOOL SetDepthObject (BOOL normal, LPDISPATCH obj);

Синтаксис COM:

BOOL SetDepthObject (BOOL normal, LPENTITY obj);

Входные параметры:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
obj	указатель на интерфейс объекта ksEntity
Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity или IEntity.


ksBossExtrusionDefinition::ResetDepthObject
IBossExtrusionDefinition::ResetDepthObject

Отказаться от установленного методом SetDepthObject объекта, задающего глубину выдавливания.

Синтаксис Automation:

BOOL ResetDepthObject (BOOL normal);

Синтаксис COM:

BOOL ResetDepthObject (BOOL normal);

Входные параметры:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


Интерфейсы ksBossEvolutionDefinition, IBossEvolutionDefinition
ksBossEvolutionDefinition,
IBossEvolutionDefinition

Интерфейс приклеенного кинематического элемента.

ksBossEvolutionDefinition	- интерфейс Automation
IBossEvolutionDefinition	- интерфейс COM
Свойства...

Методы...


ksBossEvolutionDefinition::props
ksBossEvolutionDefinition
свойства

sketchShiftType


ksBossEvolutionDefinition::methods
ksBossEvolutionDefinition
методы

GetSketch

GetThinParam

PathPartArray

SetSketch

SetThinParam

ThinParam


ksBossEvolutionDefinition::sketchShiftType
IBossEvolutionDefinition::sketchShiftType

Тип движения сечения по траектории.

Тип данных - short.

Значения свойства:

0	- образующая переносится параллельно самой себе,
1	- образующая при переносе сохраняет исходный угол с направляющей,
2	- плоскость образующей выставляется и сохраняется ортогональной направляющей.
Синтаксис Automation:

sketchShiftType = iEvolution.sketchShiftType	Получить свойство (*)
iEvolution.sketchShiftType = sketchShiftType	Установить свойство (*)
sketchShiftType = iEvolution.GetSketchShiftType()	Получить свойство (**)
iEvolution.SetSketchShiftType(sketchShiftType)	Установить свойство (**)


ksBossEvolutionDefinition::PathPartArray
IBossEvolutionDefinition::PathPartArray

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

Синтаксис Automation:

IDispatch * PathPartArray();

Синтаксис COM:

LPENTITYCOLLECTION PathPartArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива кривых ksEntityCollection или IEntityCollection.


ksBossEvolutionDefinition::GetSketch
IBossEvolutionDefinition::GetSketch

Получить указатель на интерфейс эскиза сечения кинематического элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза элемента ksEntity или IEntity.


ksBossEvolutionDefinition::SetSketch
IBossEvolutionDefinition::SetSketch

Установить эскиз сечения кинематического элемента.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза элемента ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossEvolutionDefinition::GetThinParam
IBossEvolutionDefinition::GetThinParam

Получить параметры тонкой стенки.

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

BYTE *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossEvolutionDefinition::SetThinParam
IBossEvolutionDefinition::SetThinParam

Установить параметры тонкой стенки.

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

BYTE thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossEvolutionDefinition::ThinParam
IBossEvolutionDefinition::ThinParam

Получить указатель на интерфейс тонкой стенки.

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPROPERTY ThinParam();

Возвращаемое значение:

	указатель на интерфейс тонкой стенки ksThinParam или IThinParam.


Интерфейсы ksBossLoftDefinition, IBossLoftDefinition
ksBossLoftDefinition,
IBossLoftDefinition

Интерфейс приклеенного элемента по сечениям.

ksBossLoftDefinition	- интерфейс Automation
IBossLoftDefinition	- интерфейс COM
Методы...


ksBossLoftDefinition::methods
ksBossLoftDefinition
методы

GetLoftParam

GetThinParam

SetLoftParam

SetThinParam

Sketches

ThinParam


ksBossLoftDefinition::GetLoftParam
IBossLoftDefinition::GetLoftParam

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

Синтаксис Automation:

BOOL GetLoftParam (BOOL *closed,

BOOL *flipVertex,

BOOL *autoPath);

Синтаксис COM:

BOOL GetLoftParam (BOOL *closed,

BOOL *flipVertex,

BOOL *autoPath);

Выходные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossLoftDefinition::SetLoftParam
IBossLoftDefinition::SetLoftParam

Изменить параметры приклеенного элемента по сечениям

Синтаксис Automation:

BOOL SetLoftParam (BOOL closed,

BOOL flipVertex,

BOOL autoPath);

Синтаксис COM:

BOOL SetLoftParam (BOOL closed,

BOOL flipVertex,

BOOL autoPath);

Входные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossLoftDefinition::GetThinParam
IBossLoftDefinition::GetThinParam

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

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossLoftDefinition::SetThinParam
IBossLoftDefinition::SetThinParam

Изменить параметры тонкой стенки

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossLoftDefinition::ThinParam
IBossLoftDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки.

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksBossLoftDefinition::Sketches
IBossLoftDefinition::Sketches

Получить указатель на интерфейс массива эскизов элемента по сечениям.

Синтаксис Automation:

LPDISPATCH Sketches();

Синтаксис COM:

LPENTITYCOLLECTION Sketches();

Возвращаемое значение:

	указатель на интерфейс массива эскизов ksEntityCollection или IEntityCollection.
Примечание:

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

Эскизы из данного массива используются для построения элемента по сечениям.


Интерфейсы ksBossRotatedDefinition, IBossRotatedDefinition
ksBossRotatedDefinition,
IBossRotatedDefinition

Интерфейс приклеенного элемента вращения.

ksBossRotatedDefinition	- интерфейс Automation
IBossRotatedDefinition	- интерфейс COM
Свойства...

Методы...


ksBossRotatedDefinition::props
ksBossRotatedDefinition
свойства

directionType

toroidShapeType


ksBossRotatedDefinition::methods
ksBossRotatedDefinition
методы

GetSideParam

GetSketch

GetThinParam

RotatedParam

SetSideParam

SetSketch

SetThinParam

ThinParam


ksBossRotatedDefinition::directionType
IBossRotatedDefinition::directionType

Направление вращения.

Типы направлений...

Примечание:

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

Нормаль, проведенная к поверхности тела, всегда выходит из тела.


ksBossRotatedDefinition::toroidShapeType
IBossRotatedDefinition::toroidShapeType

Признак тороида.

Тип данных - BOOL.

Значения свойства:

TRUE	- тороид,
FALSE	- сфероид.


ksBossRotatedDefinition::GetSketch
IBossRotatedDefinition::GetSketch

Получить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksBossRotatedDefinition::SetSketch
IBossRotatedDefinition::SetSketch

Изменить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossRotatedDefinition::GetSideParam
IBossRotatedDefinition::GetSideParam

Получить параметры вращения в одном направлении

Синтаксис Automation:

BOOL GetSideParam (BOOL forward,

double *angle);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

double * angle);

Входной параметр:

forward	- направление вращения: TRUE - прямое, FALSE - обратное.
Выходной параметр:

angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossRotatedDefinition::SetSideParam
IBossRotatedDefinition::SetSideParam

Изменить параметры вращения в одном направлении

Синтаксис Automation:

BOOL SetSideParam (short forward,

double angle);

Синтаксис COM:

BOOL SetSideParam (BOOL forward,

double angle);

Входные параметры:

forward	- направление вращения: TRUE - прямое, FALSE - обратное.
angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossRotatedDefinition::GetThinParam
IBossRotatedDefinition::GetThinParam

Получить параметры тонкой стенки элемента

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossRotatedDefinition::SetThinParam
IBossRotatedDefinition::SetThinParam

Изменить параметры тонкой стенки элемента

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksBossRotatedDefinition::ThinParam
IBossRotatedDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksBossRotatedDefinition::RotatedParam
IBossRotatedDefinition::RotatedParam

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

Синтаксис Automation:

LPDISPATCH RotatedParam();

Синтаксис COM:

LPROTATEDPARAM RotatedParam();

Возвращаемое значение:

	указатель на интерфейс ksRotatedParam или IRotatedParam.


Интерфейсы ksChamferDefinition, IChamferDefinition
ksChamferDefinition,
IChamferDefinition

Интерфейс параметров фаски.

ksChamferDefinition	- интерфейс Automation
IChamferDefinition	- интерфейс COM
Свойства...

Методы...


ksChamferDefinition::props
ksChamferDefinition
свойства

tangent


ksChamferDefinition::methods
ksChamferDefinition
методы

Array

GetChamferParam

SetChamferParam


ksChamferDefinition::tangent
IChamferDefinition::tangent

Признак продолжения фаски по касательным ребрам.

Тип данных - BOOL.

Значения свойства:

TRUE	- продолжать фаску по касательным ребрам,
FALSE	- не продолжать фаску по касательным ребрам.


ksChamferDefinition::Array
IChamferDefinition::Array

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

Синтаксис Automation:

LPDISPATCH Array();

Синтаксис COM:

LPENTITYCOLLECTION Array();

Возвращаемое значение:

	указатель на интерфейс ksEntityCollection или IEntityCollection.
Примечание:

В полученный с помощью данного метода массив нельзя добавлять нулевые указатели.


ksChamferDefinition::GetChamferParam
IChamferDefinition::GetChamferParam

Получить параметры фаски.

Синтаксис Automation:

BOOL GetChamferParam (BOOL *transfer,

double *distance1,

double *distance2);

Синтаксис COM:

BOOL GetChamferParam (BOOL *transfer,

double *distance1,

double *distance2);

Выходные параметры:

transfer	- признак направления фаски,
distance1	- размер первого катета фаски,
distance2	- размер второго катета фаски.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksChamferDefinition::SetChamferParam
IChamferDefinition::SetChamferParam

Изменить параметры фаски

Синтаксис Automation:

BOOL SetChamferParam (BOOL transferTRUE,

double distance1,

double distance2);

Синтаксис COM:

BOOL SetChamferParam (BOOL transferTRUE,

double distance1,

double distance2);

Входные параметры:

transfer	- признак направления фаски,
distance1	- размер первого катета фаски,
distance2	- размер второго катета фаски.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksCircularCopyDefinition, ICopyCircularDefinition
ksCircularCopyDefinition,
ICopyCircularDefinition

Интерфейс операции копирования по окружности.

ksCircularCopyDefinition	- интерфейс Automation
ICircularCopyDefinition	- интерфейс COM
Свойства...

Методы...


ksCircularCopyDefinition::props
ksCircularCopyDefinition
свойства

count1

count2

factor1

factor2

geomArray

inverce

step1

step2


ksCircularCopyDefinition::methods
ksCircularCopyDefinition
методы

DeletedCollection

GetAxis

GetCopyParamAlongDir

OperationArray

SetAxis

SetCopyParamAlongDir


ksCircularCopyDefinition::count1
ICircularCopyDefinition::count1

Количество копий в радиальном направлении.

Тип данных - long.

Синтаксис Automation:

count1 = iCopyCirc.count1	Получить свойство (*)
iCopyCirc.count1 = count1	Установить свойство (*)
count1 = iCopyCirc.GetCount1()	Получить свойство (**)
iCopyCirc.SetCount1(count1)	Установить свойство (**)


ksCircularCopyDefinition::step1
ICircularCopyDefinition::step1

Шаг копирования в радиальном направлении.

Тип данных - double.

Синтаксис Automation:

step1 = iCopyCirc.step1	Получить свойство (*)
iCopyCirc.step1 = stept1	Установить свойство (*)
step1 = iCopyCirc.GetStep1()	Получить свойство (**)
iCopyCirc.SetStep1(step1)	Установить свойство (**)


ksCircularCopyDefinition::factor1
ICircularCopyDefinition::factor1

Признак полного шага в радиальном направлении.

Тип данных - BOOL.

Значения свойства:

TRUE	- свойство step1 устанавливает расстояние между крайними элементами массива в радиальном направлении,
FALSE	- свойство step1 устанавливает расстояние между соседними элементами массива в радиальном направлении.
Синтаксис Automation:

factor1 = iCopyCirc.factor1	Получить свойство (*)
iCopyCirc.factor1 = factor1	Установить свойство (*)
factor1 = iCopyCirc.GetFactor1()	Получить свойство (**)
iCopyCirc.SetFactor1(factor1)	Установить свойство (**)


ksCircularCopyDefinition::count2
ICircularCopyDefinition::count2

Количество копий в кольцевом направлении.

Тип данных - long.

Синтаксис Automation:

count2 = iCopyCirc.count2	Получить свойство (*)
iCopyCirc.count2 = count2	Установить свойство (*)
count2 = iCopyCirc.GetCount2()	Получить свойство (**)
iCopyCirc.SetCount2(count2)	Установить свойство (**)


ksCircularCopyDefinition::step2
ICircularCopyDefinition::step2

Шаг в кольцевом направлении.

Тип данных - long.

Синтаксис Automation:

step2 = iCopyCirc.step2	Получить свойство (*)
iCopyCirc.step2 = stept2	Установить свойство (*)
step2 = iCopyCirc.GetStep2()	Получить свойство (**)
iCopyCirc.SetStep2(step2)	Установить свойство (**)


ksCircularCopyDefinition::factor2
ICircularCopyDefinition::factor2

Признак полного шага в кольцевом направлении.

Тип данных - BOOL.

Значения свойства:

TRUE	- свойство step2 устанавливает расстояние между крайними элементами массива в кольцевом направлении,
FALSE	- свойство step2 устанавливает расстояние между соседними элементами массива в кольцевом направлении.
Синтаксис Automation:

factor2 = iCopyCirc.factor2	Получить свойство (*)
iCopyCirc.factor2 = factor2	Установить свойство (*)
factor2 = iCopyCirc.GetFactor2()	Получить свойство (**)
iCopyCirc.SetFactor2(factor2)	Установить свойство (**)


ksCircularCopyDefinition::inverce
ICircularCopyDefinition::inverce

Признак направления копирования.

Тип данных - BOOL.

Значения свойства:

TRUE	- обратное направление,
FALSE	- прямое направление.
Синтаксис Automation:

inverce = iCopyCirc.inverce	Получить свойство (*)
iCopyCirc.inverce = inverce	Установить свойство (*)
inverce = iCopyCirc.GetInverce()	Получить свойство (**)
iCopyCirc.SetInverce(inverce)	Установить свойство (**)


ksCircularCopyDefinition::geomArray
ICircularCopyDefinition::geomArray

Признак использования геометрического копирования.

Тип данных - BOOL.

Значения свойства:

TRUE	- использовать геометрическое копирование. Содержимое оперций источников( грани, ребра ) копируется без пересчета. В простых случаях операция ускоряется, но возможны ошибки при копировании скруглений и фасок на криволинейных поверхностях.
FALSE	- при копировании все операции-источники строятся заново, т.е. производится полноценный расчет.
Синтаксис Automation:

geomArray = iMeshCopyDefinition.geomArray	Получить свойство (*)
iMeshCopyDefinition.geomArray = geomArray	Установить свойство (*)
geomArray = iMeshCopyDefinition.GetGeomArray()	Получить свойство (**)
iMeshCopyDefinition.SetGeomArray( geomArray)	Установить свойство (**)


ksCircularCopyDefinition::OperationArray
ICircularCopyDefinition::OperationArray

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

Синтаксис Automation:

LPDISPATCH OperationArray();

Синтаксис COM:

LPENTITYCOLLECTION OperationArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива элементов, подлежащих копированию ksEntityCollection или IEntityCollection.


ksCircularCopyDefinition::GetAxis
ICircularCopyDefinition::GetAxis

Получить ось копирования.

Синтаксис Automation:

LPDISPATCH GetAxis();

Синтаксис COM:

LPENTITY  GetAxis();

Возвращаемое значение:

	указатель на интерфейс оси ksEntity или IEntity.


ksCircularCopyDefinition::SetAxis
ICircularCopyDefinition::SetAxis

Установить ось копирования.

Синтаксис Automation:

BOOL SetAxis(LPDISPATCH axis);

Синтаксис COM:

BOOL SetAxis(LPENTITY axis);

Входной параметр:

axis	- указатель на интерфейс оси ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCircularCopyDefinition::GetCopyParamAlongDir
ICircularCopyDefinition::GetCopyParamAlongDir

Получить параметры копирования.

Синтаксис Automation:

BOOL GetCopyParamAlongDir (long* count,

double* step,

BOOL* factor,

BOOL dir);

Синтаксис COM:

BOOL GetCopyParamAlongDir (long* count,

double* step,

BOOL* factor,

BOOL dir)

Выходные параметры:

count	- количество копий,
step	- шаг,
factor	- признак полного шага,
dir	- направление копирования.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCircularCopyDefinition::SetCopyParamAlongDir
ICircularCopyDefinition::SetCopyParamAlongDir

Установить параметры копирования.

Синтаксис Automation:

BOOL SetCopyParamAlongDir (long count,

double step,

BOOL factor,

BOOL dir);

Синтаксис COM:

BOOL SetCopyParamAlongDir (long count,

double step,

BOOL factor,

BOOL dir)

Входные параметры:

count	- количество копий,
step	- шаг,
factor	- признак полного шага,
dir	- направление копирования.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCircularCopyDefinition::DeletedCollection
ICircularCopyDefinition::DeletedCollection

Получить массив индексов удаленных копий.

Синтаксис Automation:

LPDISPATCH DeletedCollection();

Синтаксис COM:

LPDELETEDCOPYCOLLECTION DeletedCollection();

Возвращаемое значение:

указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection	- в случае успешного завершения.
NULL	- в случае неудачи
Примечание:

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


Интерфейсы ksCircularPartArrayDefinition, ICircularPartArrayDefinition
ksCircularPartArrayDefinition,
ICircularPartArrayDefinition

Интерфейс копирования компонентов сборки по концентрической сетке.

ksCircularPartArrayDefinition	- интерфейс Automation
ICircularPartArrayDefinition	- интерфейс COM
Свойства...

Методы...


ksCircularPartArrayDefinition::props
ksCircularPartArrayDefinition
свойства

count1

count2

factor1

factor2

inverce

keepAngle

step1

step2


ksCircularPartArrayDefinition::methods
ksCircularPartArrayDefinition
методы

DeletedCollection

GetAxis

GetCopyParamAlongDir

PartArray

SetAxis

SetCopyParamAlongDir


ksCircularPartArrayDefinition::count1
ICircularPartArrayDefinition::count1

Количество копий в радиальном направлении.

Тип данных - long.

Синтаксис Automation:

count1 = iArrayCirc.count1	Получить свойство (*)
iArrayCirc.count1 = count1	Установить свойство (*)
count1 = iArrayCirc.GetCount1()	Получить свойство (**)
iArrayCirc.SetCount1(count1)	Установить свойство (**)


ksCircularPartArrayDefinition::step1
ICircularPartArrayDefinition::step1

Шаг копирования в радиальном направлении.

Тип данных - double.

Синтаксис Automation:

step1 = iArrayCirc.step1	Получить свойство (*)
iArrayCirc.step1 = stept1	Установить свойство (*)
step1 = iArrayCirc.GetStep1()	Получить свойство (**)
iArrayCirc.SetStep1(step1)	Установить свойство (**)


ksCircularPartArrayDefinition::factor1
ICircularPartArrayDefinition::factor1

Признак полного шага в радиальном направлении.

Тип данных - BOOL.

Значения свойства:

TRUE	- свойство step1 задает расстояние между крайними в радиальном направлении копиями,
FALSE	- свойство step1 задает расстояние между соседними в радиальном направлении копиями.
Синтаксис Automation:

factor1 = iArrayCirc.factor1	Получить свойство (*)
iArrayCirc.factor1 = factor1	Установить свойство (*)
factor1 = iArrayCirc.GetFactor1()	Получить свойство (**)
iArrayCirc.SetFactor1(factor1)	Установить свойство (**)


ksCircularPartArrayDefinition::count2
ICircularPartArrayDefinition::count2

Количество копий в кольцевом направлении.

Тип данных - long.

Синтаксис Automation:

count2 = iArrayCirc.count2	Получить свойство (*)
iArrayCirc.count2 = count2	Установить свойство (*)
count2 = iArrayCirc.GetCount2()	Получить свойство (**)
iArrayCirc.SetCount2(count2)	Установить свойство (**)


ksCircularPartArrayDefinition::step2
ICircularPartArrayDefinition::step2

Шаг копирования в кольцевом направлении.

Тип данных - double.

Синтаксис Automation:

step2 = iArrayCirc.step2	Получить свойство (*)
iArrayCirc.step2 = stept2	Установить свойство (*)
step2 = iArrayCirc.GetStep2()	Получить свойство (**)
iArrayCirc.SetStep2(step2)	Установить свойство (**)


ksCircularPartArrayDefinition::factor2
ICircularPartArrayDefinition::factor2

Признак полного шага в кольцевом направлении.

Тип данных - BOOL.

Значения свойства:

TRUE	свойство step2 задает угол между крайними лучами сетки,
FALSE	свойство step2 задает угол между соседними лучами сетки.
Синтаксис Automation:

factor2 = iArrayCirc.factor2	Получить свойство (*)
iArrayCirc.factor2 = factor2	Установить свойство (*)
factor2 = iArrayCirc.GetFactor2()	Получить свойство (**)
iArrayCirc.SetFactor2(factor2)	Установить свойство (**)


ksCircularPartArrayDefinition::inverce
ICircularPartArrayDefinition::inverce

Признак направления копирования.

Тип данных - BOOL.

Значения свойства:

TRUE	- обратное направление,
FALSE	- прямое направление.
Синтаксис Automation:

inverce = iArrayCirc.inverce	Получить свойство (*)
iArrayCirc.inverce = inverce	Установить свойство (*)
inverce = iArrayCirc.GetInverce()	Получить свойство (**)
iArrayCirc.SetInverce(inverce)	Установить свойство (**)


ksCircularPartArrayDefinition::keepAngle
ICircularPartArrayDefinition::keepAngle

Признак сохранения угла копий.

Тип данных - BOOL.

Значения свойства:

TRUE	- обратное направление,
FALSE	- прямое направление.
Синтаксис Automation:

keepAngle = iCircularPartArray.keepAngle	Получить свойство (*)
iCircularPartArray.keepAngle = keepAngle	Установить свойство (*)
keepAngle = iCircularPartArray.GetKeepAngle()	Получить свойство (**)
iCircularPartArray.SetKeepAngle( keepAngle )	Установить свойство (**)
Примечание:

Если значение свойства равно TRUE, то необходимо сохранять угол копий.


ksCircularPartArrayDefinition::PartArray
ICircularPartArrayDefinition::PartArray

Указатель на массив компонентов для копирования.

Синтаксис Automation:

LPDISPATCH PartArray();

Синтаксис COM:

LPPARTCOLLECTION PartArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива операций, подлежащих копированию ksPartCollection или IPartCollection.


ksCircularPartArrayDefinition::GetAxis
ICircularPartArrayDefinition::GetAxis

Получить указатель на ось копирования.

Синтаксис Automation:

LPDISPATCH GetAxis();

Синтаксис COM:

LPENTITY GetAxis();

Возвращаемое значение:

	указатель на интерфейс оси ksEntity или IEntity.


ksCircularPartArrayDefinition::SetAxis
ICircularPartArrayDefinition::SetAxis

Установить указатель на ось копирования.

Синтаксис Automation:

BOOL SetAxis (LPDISPATCH axis);

Синтаксис COM:

BOOL SetAxis (LPENTITY axis);

Входной параметр:

axis	- указатель на интерфейс оси ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCircularPartArrayDefinition::GetCopyParamAlongDir
ICircularPartArrayDefinition::GetCopyParamAlongDir

Получить параметры копирования.

Синтаксис Automation:

BOOL GetCopyParamAlongDir (long* count,

double* step,

BOOL* factor,

BOOL dir);

Синтаксис COM:

BOOL GetCopyParamAlongDir (long* count,

double* step,

BOOL* factor,

BOOL dir)

Выходные параметры:

count	- количество копий,
step	- шаг,
factor	- признак полного шага,
dir	- направление.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCircularPartArrayDefinition::SetCopyParamAlongDir
ICircularPartArrayDefinition::SetCopyParamAlongDir

Установить параметры копирования.

Синтаксис Automation:

BOOL SetCopyParamAlongDir (long count,

double step,

BOOL factor,

BOOL dir);

Синтаксис COM:

BOOL SetCopyParamAlongDir (long count,

double step,

BOOL factor,

BOOL dir)

Входные параметры:

count	- количество копий,
step	- шаг,
factor	- признак полного шага,
dir	- направление.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCircularPartArrayDefinition::DeletedCollection
ICircularPartArrayDefinition::DeletedCollection

Получить массив индексов удаленных копий.

Синтаксис Automation:

LPDISPATCH DeletedCollection();

Синтаксис COM:

LPDELETEDCOPYCOLLECTION DeletedCollection();

Возвращаемое значение:

указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection	- в случае успешного завершения.
NULL	- в случае неудачи
Примечание:

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


Интерфейсы ksColorParam, IColorParam
ksColorParam,
IColorParam

Интерфейс параметров цвета и визуальных свойств материала.

ksColorParam	- интерфейс Automation
IColorParam	- интерфейс COM
Свойства...


ksColor::props
ksColorParam
свойства

ambient

color

diffuse

emission

shininess

specularity

transparency


ksColor::color
ksColorParam::color
IColorParam::color

Цвет.

Тип данных - long.


ksColor::ambient
ksColorParam::ambient
IColorParam::ambient

Общий свет (от 0 до 1).

Тип данных - double.


ksColor::diffuse
ksColorParam::diffuse
IColorParam::diffuse

Диффузия (от 0 до 1).

Тип данных - double.


ksColor::specularity
ksColorParam::specularity
IColorParam::specularity

Зеркальность (от 0 до 1).

Тип данных - double.


ksColor::shininess
ksColorParam::shininess
IColorParam::shininess

Блеск (от 0 до 1).

Тип данных - double.


ksColor::transparency
ksColorParam::transparency
IColorParam::transparency

Прозрачность (от 0 до 1).

Тип данных - double.


ksColor::emission
ksColorParam::emission
IColorParam::emission

Излучение (от 0 до 1).

Тип данных - double.


Интерфейсы ksConicSpiralDefinition, IConicSpiralDefinition
ksConicSpiralDefinition,
IConicSpiralDefinition

Интерфейс параметров конической спирали.

ksConicSpiralDefinition	- интерфейс Automation
IConicSpiralDefinition	- интерфейс COM
Свойства...

Методы...


ksConicSpiralDefinition::props
ksConicSpiralDefinition
свойства

buildDir

buildMode

firstAngle

heightAddHow

heightAdd

height

heightType

initialDiam

initialDiamType

step

terminalDiam

terminalDiamType

tiltAngleHow

tiltAngle

turnDir

turn


ksConicSpiralDefinition::methods
ksConicSpiralDefinition
методы

GetHeightObject

GetInitialDiamObject

GetLocation

GetPlane

GetTerminalDiamObject

SetHeightObject

SetInitialDiamObject

SetLocation

SetPlane

SetTerminalDiamObject


ksConicSpiralDefinition::turn
IConicSpiralDefinition::turn

Количество витков спирали.

Тип данных - double.

Синтаксис Automation:

turn = iConicSpiral.turn	Получить свойство (*)
iConicSpiral.turn = turn	Установить свойство (*)
turn = iConicSpiral.GetTurn()	Получить свойство (**)
iConicSpiral.SetTurn(turn)	Установить свойство (**)


ksConicSpiralDefinition::step
IConicSpiralDefinition::step

Шаг витков спирали.

Тип данных - double.

Синтаксис Automation:

step = iConicSpiral.step	Получить свойство (*)
iConicSpiral.step = step	Установить свойство (*)
step = iConicSpiral.GetStep()	Получить свойство (**)
iConicSpiral.SetStep(step)	Установить свойство (**)


ksConicSpiralDefinition::turnDir
IConicSpiralDefinition::turnDir

Направление навивки спирали

Тип данных - BOOL.

Значения свойства:

TRUE	- по часовой стрелке,
FALSE	- против часовой стрелки.
Синтаксис Automation:

turnDir = iConicSpiral.turnDir()	Получить свойство (*)
iConicSpiral.turnDir = turnDir	Установить свойство (*)
turnDir = iConicSpiral.GetTurnDir()	Получить свойство (**)
iConicSpiral.SetTurnDir(turnDir)	Установить свойство (**)


ksConicSpiralDefinition::buildMode
IConicSpiralDefinition::buildMode

Способ построения спирали:

Тип данных - short.

Значения свойства:

0	- по шагу и количеству витков,
1	- по шагу и высоте,
2	- по количеству витков и высоте.
Синтаксис Automation:

buildMode = iConicSpiral.buildMode	Получить свойство (*)
iConicSpiral.buildMode = buildMode	Установить свойство (*)
buildMode = iConicSpiral.GetBuildMode()	Получить свойство (**)
iConicSpiral.SetBuildMode(buildMode)	Установить свойство (**)


ksConicSpiralDefinition::buildDir
IConicSpiralDefinition::buildDir

Направление построения спирали:

Тип данных - BOOL.

Значения свойства:

TRUE	- нормальное (совпадающее с положительным направлением нормали к базовой плоскости спирали),
FALSE	- обратное.
Синтаксис Automation:

buildDir = iConicSpiral.buildDir	Получить свойство (*)
iConicSpiral.buildDir = buildDir	Установить свойство (*)
buildDir = iConicSpiral.GetBuildDir()	Получить свойство (**)
iConicSpiral.SetBuildDir(buildDir)	Установить свойство (**)


ksConicSpiralDefinition::height
IConicSpiralDefinition::height

Высота спирали.

Тип данных - double.

Синтаксис Automation:

height = iConicSpiral.height	Получить свойство (*)
iConicSpiral.height = height	Установить свойство (*)
height = iConicSpiral.GetHeight()	Получить свойство (**)
iConicSpiral.SetHeight(height)	Установить свойство (**)


ksConicSpiralDefinition::heightType
IConicSpiralDefinition::heightType

Способ задания высоты.

Тип данных - short.

Значения свойства:

0	- по размеру,
1	- по объекту.
Синтаксис Automation:

heightType = iConicSpiral.heightType	Получить свойство (*)
iConicSpiral.heightType = heightType	Установить свойство (*)
heightType = iConicSpiral.GetHeightType()	Получить свойство (**)
iConicSpiral.SetHeightType(heightType)	Установить свойство (**)


ksConicSpiralDefinition::heightAdd
IConicSpiralDefinition::heightAdd

Дополнительная высота.

Тип данных - double.

Синтаксис Automation:

heightAdd = iConicSpiral.heightAdd	Получить свойство (*)
iConicSpiral.heightAdd = heightAdd	Установить свойство (*)
heightAdd = iConicSpiral.GetHeightAdd()	Получить свойство (**)
iConicSpiral.SetHeightAdd(heightAdd)	Установить свойство (**)


ksConicSpiralDefinition::heightAddHow
IConicSpiralDefinition::heightAddHow

Признак дополнительной высоты.

Тип данных - BOOL.

Значения свойства:

TRUE	- продолжить за объект,
FALSE	- не доходя до объекта.
Синтаксис Automation:

heightAddHow = iConicSpiral.heightAddHow	Получить свойство (*)
iConicSpiral.heightAddHow = heightAddHow	Установить свойство (*)
heightAddHow = iConicSpiral.GetHeightAddHow()	Получить свойство (**)
iConicSpiral.SetHeightAddHow(heightAddHow)	Установить свойство (**)
Примечание:

Данное свойство используется только при способе задания высоты "по объекту" (heightType = 1).


ksConicSpiralDefinition::initialDiam
IConicSpiralDefinition::initialDiam

Начальный диаметр спирали.

Тип данных - double.

Синтаксис Automation:

initialDiam = iConicSpiral.initialDiam	Получить свойство (*)
iConicSpiral.initialDiam = initialDiam	Установить свойство (*)
initialDiam = iConicSpiral.GetInitialDiam()	Получить свойство (**)
iConicSpiral.SetInitialDiam(initialDiam)	Установить свойство (**)


ksConicSpiralDefinition::initialDiamType
IConicSpiralDefinition::initialDiamType

Способ задания начального диаметра

Тип данных - short.

Значения свойства:

0	- по размеру,
1	- по объекту.
Синтаксис Automation:

initialDiamType = iConicSpiral.initialDiamType	Получить свойство (*)
iConicSpiral.initialDiamType = initialDiamType	Установить свойство (*)
initialDiamType = iConicSpiral.GetInitialDiamType()	Получить свойство (**)
iConicSpiral.SetInitialDiamType(initialDiamType)	Установить свойство (**)


ksConicSpiralDefinition::terminalDiam
IConicSpiralDefinition::terminalDiam

Конечный диаметр спирали.

Тип данных - double.

Синтаксис Automation:

terminalDiam = iConicSpiral.terminalDiam	Получить свойство (*)
iConicSpiral.terminalDiam = terminalDiam	Установить свойство (*)
terminalDiam = iConicSpiral.GetTerminalDiam()	Получить свойство (**)
iConicSpiral.SetTerminalDiam(terminalDiam)	Установить свойство (**)


ksConicSpiralDefinition::terminalDiamType
IConicSpiralDefinition::terminalDiamType

Способ задания конечного диаметра.

Тип данных - short.

Значения свойства:

0	- по размеру,
1	- по объекту,
2	- по углу наклона образующей.
Синтаксис Automation:

terminalDiamType = iConicSpiral.terminalDiamType	Получить свойство (*)
iConicSpiral.terminalDiamType = terminalDiamType	Установить свойство (*)
terminalDiamType = iConicSpiral.GetTerminalDiamType()	Получить свойство (**)
iConicSpiral.SetTerminalDiamType(terminalDiamType)	Установить свойство (**)


ksConicSpiralDefinition::tiltAngle
IConicSpiralDefinition::tiltAngle

Угол наклона образующей спирали.

Тип данных - double.

Синтаксис Automation:

tiltAngle = iConicSpiral.tiltAngle	Получить свойство (*)
iConicSpiral.tiltAngle = tiltAngle	Установить свойство (*)
tiltAngle = iConicSpiral.GetTiltAngle()	Получить свойство (**)
iConicSpiral.SetTiltAngle(tiltAngle)	Установить свойство (**)


ksConicSpiralDefinition::tiltAngleHow
IConicSpiralDefinition::tiltAngleHow

Направление отсчета угла наклона образующей.

Тип данных - BOOL.

Значения свойства:

TRUE	- наружу,
FALSE	- внутрь (к оси спирали).
Синтаксис Automation:

tiltAngleHow = iConicSpiral.tiltAngleHow	Получить свойство (*)
iConicSpiral.tiltAngleHow = tiltAngleHow	Установить свойство (*)
tiltAngleHow = iConicSpiral.GetTiltAngleHow()	Получить свойство (**)
iConicSpiral.SetTiltAngleHow(tiltAngleHow)	Установить свойство (**)


ksConicSpiralDefinition::firstAngle
IConicSpiralDefinition::firstAngle

Начальный угол (или угол поворота спирали вокруг своей оси).

Тип данных - double.

Синтаксис Automation:

firstAngle = iConicSpiral.firstAngle	Получить свойство (*)
iConicSpiral.firstAngle = firstAngle	Установить свойство (*)
firstAngle = iConicSpiral.GetFirstAngle()	Получить свойство (**)
iConicSpiral.SetFirstAngle(firstAngle)	Установить свойство (**)


ksConicSpiralDefinition::GetPlane
IConicSpiralDefinition::GetPlane

Получить указатель на базовую плоскость спирали.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс спирали ksEntity или IEntity.


ksConicSpiralDefinition::SetPlane
IConicSpiralDefinition::SetPlane

Установить указатель на базовую плоскость спирали.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс спирали ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksConicSpiralDefinition::GetLocation
IConicSpiralDefinition::GetLocation

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

Синтаксис Automation:

BOOL GetLocation (double* x,

double* y);

Синтаксис COM:

BOOL GetLocation (double* x,

double* y);

Выходные параметры:

x, y	координаты точки привязки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksConicSpiralDefinition::SetLocation
IConicSpiralDefinition::SetLocation

Установить точку привязки спирали на базовой плоскости (точку пересечения оси спирали с базовой плоскостью).

Синтаксис Automatiхon:

BOOL SetLocation (double x,

double y);

Синтаксис COM:

BOOL SetLocation (double x,

double y);

Входные параметры:

x, y	координаты точки привязки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksConicSpiralDefinition::GetHeightObject
IConicSpiralDefinition::GetHeightObject

Получить объект, задающий высоту.

Синтаксис Automation:

LPDISPATCH GetHeightObject();

Синтаксис COM:

LPENTITY GetHeightObject();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksConicSpiralDefinition::SetHeightObject
IConicSpiralDefinition::SetHeightObject

Установить объект, задающий высоту.

Синтаксис Automation:

BOOL SetHeightObject (LPDISPATCH heightObject);

Синтаксис COM:

BOOL SetHeightObject (LPENTITY heightObject);

Входной параметр:

heightObject	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksConicSpiralDefinition::GetInitialDiamObject
IConicSpiralDefinition::GetInitialDiamObject

Получить объект, задающий начальный диаметр.

Синтаксис Automation:

LPDISPATCH GetInitialDiamObject();

Синтаксис COM:

LPENTITY GetInitialDiamObject();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksConicSpiralDefinition::SetInitialDiamObject
IConicSpiralDefinition::SetInitialDiamObject

Установить объект, задающий начальный диаметр.

Синтаксис Automation:

BOOL SetInitialDiamObject (LPDISPATCH initialDiamObject);

Синтаксис COM:

BOOL SetInitialDiamObject (LPENTITY initialDiamObject);

Входной параметр:

initialDiamObject	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksConicSpiralDefinition::GetTerminalDiamObject
IConicSpiralDefinition::GetTerminalDiamObject

Получить объект, задающий конечный диаметр.

Синтаксис Automation:

LPDISPATCH GetTerminalDiamObject();

Синтаксис COM:

LPENTITY GetTerminalDiamObject();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksConicSpiralDefinition::SetTerminalDiamObject
IConicSpiralDefinition::SetTerminalDiamObject

Установить объект, задающий конечный диаметр.

Синтаксис Automation:

BOOL SetTerminalDiamObject (LPDISPATCH TerminalDiamObject);

Синтаксис COM:

BOOL SetTerminalDiamObject (LPENTITY terminalDiamObject);

Входной параметр:

terminalDiamObject	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksCurvePartArrayDefinition, ICurvePartArrayDefinition
ksCurvePartArrayDefinition,
ICurvePartArrayDefinition

Интерфейс операции копирования компонентов сборки по кривой.

ksCurvePartArrayDefinition	- интерфейс Automation
ICurvePartArrayDefinition	- интерфейс COM
Свойства...

Методы...


ksCurvePartArrayDefinition::props
ksCurvePartArrayDefinition
свойства

count

factor

fullCurve

keepAngle

sence

step


ksCurvePartArrayDefinition::methods
ksCurvePartArrayDefinition
методы

CurveArray

DeletedCollection

GetPartArray


ksCurvePartArrayDefinition::count
ICurvePartArrayDefinition::count

Количество копий.

Тип данных - long.

Синтаксис Automation:

count = iArrayCurve.count	Получить свойство (*)
iArrayCurve.count = count	Установить свойство (*)
count = iArrayCurve.GetСount()	Получить свойство (**)
iArrayCurve.SetСount(count)	Установить свойство (**)


ksCurvePartArrayDefinition::step
ICurvePartArrayDefinition::step

Шаг копирования.

Тип данных - double.

Синтаксис Automation:

step = iArrayCurve.step	Получить свойство (*)
iArrayCurve.step = step	Установить свойство (*)
step = iArrayCurve.GetStep()	Получить свойство (**)
iArrayCurve.SetStep(step)	Установить свойство (**)


ksCurvePartArrayDefinition::factor
ICurvePartArrayDefinition::factor

Признак полного шага.

Тип данных - BOOL.

Значения свойства:

TRUE	- свойство step устанавливает расстояние между крайними элементами массива вдоль траектории,
FALSE	- свойство step устанавливает расстояние между соседними элементами массива вдоль траектории.
Синтаксис Automation:

factor = iArrayCurve.factor	Получить свойство (*)
iArrayCurve.factor = factor	Установить свойство (*)
factor = iArrayCurve.GetFactor()	Получить свойство (**)
iArrayCurve.SetFactor(factor)	Установить свойство (**)


ksCurvePartArrayDefinition::keepAngle
ICurvePartArrayDefinition::keepAngle

Признак сохранения угла между исходным элементом и траекторией в начальной точке.

Тип данных - BOOL.

Значения свойства:

TRUE	- угол сохраняется,
FALSE	- угол не сохраняется.
Синтаксис Automation:

keepAngle = iArrayCurve.keepAngle	Получить свойство (*)
iArrayCurve.keepAngle = keepAngle	Установить свойство (*)
keepAngle = iArrayCurve.GetKeepAngle()	Получить свойство (**)
iArrayCurve.SetKeepAngle(keepAngle)	Установить свойство (**)


ksCurvePartArrayDefinition::fullCurve
ICurvePartArrayDefinition::fullCurve

Признак расположения копий вдоль всей траектории.

Тип данных - BOOL.

Значения свойства:

TRUE	- первый и последний элементы массива располагаются соответственно в начальной и конечной точках траектории. Свойства step и factor определяются автоматически с учетом условия count.
FALSE	- элементы массива располагаются вдоль траектории в соответствии со свойствами step, factor и count.
Синтаксис Automation:

fullCurve = iArrayCurve.fullCurve	Получить свойство (*)
iArrayCurve.fullCurve = fullCurve	Установить свойство (*)
fullCurve = iArrayCurve.GetFullCurve()	Получить свойство (**)
iArrayCurve.SetFullCurve(fullCurve)	Установить свойство (**)


ksCurvePartArrayDefinition::sence
ICurvePartArrayDefinition::sence

Направление копирования.

Тип данных - BOOL.

Значения свойства:

TRUE	- прямое направление,
FALSE	- обратное направление.
Синтаксис Automation:

sence = iArrayCurve.sence	Получить свойство (*)
iArrayCurve.sence = sence	Установить свойство (*)
sence = iArrayCurve.GetSence()	Получить свойство (**)
iArrayCurve.SetSence(sence)	Установить свойство (**)


ksCurvePartArrayDefinition::GetPartArray
ICurvePartArrayDefinition::GetPartArray

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

Синтаксис Automation:

LPDISPATCH GetPartArray();

Синтаксис COM:

LPPARTCOLLECTION GetPartArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива операций, подлежащих копированию ksPartCollection или IPartCollection.


ksCurvePartArrayDefinition::CurveArray
ICurvePartArrayDefinition::CurveArray

Получить указатель на массив кривых, определяющих траекторию копирования.

Синтаксис Automation:

LPDISPATCH CurveArray();

Синтаксис COM:

LPDISPATCH CurveArray();

Возвращаемое значение:

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


ksCurvePartArrayDefinition::DeletedCollection
ICurvePartArrayDefinition::DeletedCollection

Получить массив индексов удаленных копий.

Синтаксис Automation:

LPDISPATCH DeletedCollection();

Синтаксис COM:

LPDELETEDCOPYCOLLECTION DeletedCollection();

Возвращаемое значение:

указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection	- в случае успешного завершения.
NULL	- в случае неудачи
Примечание:

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


Интерфейсы ksCutByPlaneDefinition, ICutByPlaneDefinition
ksCutByPlaneDefinition,
ICutByPlaneDefinition

Интерфейс операции сечения плоскостью.

ksCutByPlaneDefinition	- интерфейс Automation
ICutByPlaneDefinition	- интерфейс COM
Свойства...

Методы...


ksCutByPlaneDefinition::props
ksCutByPlaneDefinition
свойства

direction


ksCutByPlaneDefinition::methods
ksCutByPlaneDefinition
методы

GetPlane

SetPlane


ksCutByPlaneDefinition::GetPlane
ICutByPlaneDefinition::GetPlane

Получить секущую плоскость.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс секущей плоскости ksEntity или IEntity.


ksCutByPlaneDefinition::SetPlane
ICutByPlaneDefinition::SetPlane

Установить секущую плоскость.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс секущей плоскости ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutByPlaneDefinition::direction
ICutByPlaneDefinition::direction

Направление отсечения.

Тип данных - BOOL.

Значения свойства:

TRUE	- прямое направление,
FALSE	- обратное направление.
Синтаксис Automation:

direction = iCutByPlane.direction	Получить свойство (*)
iCutByPlane.direction = direction	Установить свойство (*)
direction = iCutByPlane.GetDirection()	Получить свойство (**)
iCutByPlane.SetDirection(direction)	Установить свойство (**)


Интерфейсы ksCutBySketchDefinition, ICutBySketchDefinition
ksCutBySketchDefinition,
ICutBySketchDefinition

Интерфейс операции сечения эскизом.

ksCutBySketchDefinition	- интерфейс Automation
ICutBySketchDefinition	- интерфейс COM
Свойства...

Методы...


ksCutBySketchDefinition::props
ksCutBySketchDefinition
свойства

direction


ksCutBySketchDefinition::methods
ksCutBySketchDefinition
методы

GetSketch

SetSketch


ksCutBySketchDefinition::GetSketch
ICutBySketchDefinition::GetSketch

Получить эскиз секущей поверхности.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза секущей поверхности ksEntity или IEntity.


ksCutBySketchDefinition::SetSketch
ICutBySketchDefinition::SetSketch

Установить эскиз секущей поверхности.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

plane	- указатель на интерфейс эскиза секущей поверхности ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutBySketchDefinition::direction
ICutBySketchDefinition::direction

Направление отсечения.

Тип данных - BOOL.

Значения свойства:

TRUE	- прямое направление,
FALSE	- обратное направление.
Синтаксис Automation:

direction = iCutBySketch.direction	Получить свойство (*)
iCutBySketch.direction = direction	Установить свойство (*)
direction = iCutBySketch.GetDirection()	Получить свойство (**)
iCutBySketch.SetDirection(direction)	Установить свойство (**)


Интерфейсы ksCutEvolutionDefinition, ICutEvolutionDefinition
ksCutEvolutionDefinition,
ICutEvolutionDefinition

Интерфейс вырезанного кинематического элемента.

ksCutEvolutionDefinition	- интерфейс Automation
ICutEvolutionDefinition	- интерфейс COM
Свойства...

Методы...


ksCutEvolutionDefinition::props
ksCutEvolutionDefinition
свойства

cut

sketchShiftType


ksCutEvolutionDefinition::methods
ksCutEvolutionDefinition
методы

GetSketch

GetThinParam

PathPartArray

SetSketch

SetThinParam

ThinParam


ksCutEvolutionDefinition::sketchShiftType
ICutEvolutionDefinition::sketchShiftType

Тип движения сечения по траектории.

Тип данных - short.

Значения свойства:

0	- образующая переносится параллельно самой себе,
1	- образующая при переносе сохраняет исходный угол с направляющей,
2	- плоскость образующей выставляется и сохраняется ортогональной направляющей.
Синтаксис Automation:

sketchShiftType = iEvolution.sketchShiftType	Получить свойство (*)
iEvolution.sketchShiftType = sketchShiftType	Установить свойство (*)
sketchShiftType = iEvolution.GetSketchShiftType()	Получить свойство (**)
iEvolution.SetSketchShiftType(sketchShiftType)	Установить свойство (**)


ksCutEvolutionDefinition::cut
ICutEvolutionDefinition::cut

Признак результата операции.

Тип данных - BOOL.

Значения свойства:

TRUE	- результат операции - вычитание элемента,
FALSE	- результат операции - пересечение элементов.
Синтаксис Automation:

cut = iEvolution.cut	Получить свойство (*)
iEvolution.cut = cut	Установить свойство (*)
cut = iEvolution.GetCut()	Получить свойство (**)
iEvolution.SetCut(cut)	Установить свойство (**)


ksCutEvolutionDefinition::PathPartArray
ICutEvolutionDefinition::PathPartArray

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

Синтаксис Automation:

IDispatch * PathPartArray();

Синтаксис COM:

LPENTITYCOLLECTION PathPartArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива кривых ksEntityCollection или IEntityCollection.


ksCutEvolutionDefinition::GetSketch
ICutEvolutionDefinition::GetSketch

Получить указатель на интерфейс эскиза сечения кинематического элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksCutEvolutionDefinition::SetSketch
ICutEvolutionDefinition::SetSketch

Установить эскиз сечения кинематического элемента.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutEvolutionDefinition::GetThinParam
ICutEvolutionDefinition::GetThinParam

Получить параметры тонкой стенки.

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

BYTE *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutEvolutionDefinition::SetThinParam
ICutEvolutionDefinition::SetThinParam

Установить параметры тонкой стенки.

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

BYTE thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutEvolutionDefinition::ThinParam
ICutEvolutionDefinition::ThinParam

Получить указатель на интерфейс тонкой стенки.

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPROPERTY ThinParam();

Возвращаемое значение:

	указатель на интерфейс тонкой стенки ksThinParam или IThinParam.


Интерфейсы ksCutExtrusionDefinition, ICutExtrusionDefinition
ksCutExtrusionDefinition,
ICutExtrusionDefinition

Интерфейс параметров вырезанного элемента выдавливания.

ksCutExtrusionDefinition	- интерфейс Automation
ICutExtrusionDefinition	- интерфейс COM
Свойства...

Методы...


ksCutExtrusionDefinition::props
ksCutExtrusionDefinition
свойства

cut

directionType


ksCutExtrusionDefinition::methods
ksCutExtrusionDefinition
методы

ExtrusionParam

GetDepthObject

GetSideParam

GetSketch

GetThinParam

ResetDepthObject

SetDepthObject

SetSideParam

SetSketch

SetThinParam

ThinParam


ksCutExtrusionDefinition::directionType
ICutExtrusionDefinition::directionType

Направление выдавливания.

Прямое направление совпадает с нормалью, проведенной к плоскости эскиза.

Для вырезаемого элемента выдавливания направление противоположно нормали.

Примечание:

Нормаль, проведенная к грани, всегда направлена наружу ("из тела детали").

Типы направлений...


ksCutExtrusionDefinition::GetSketch
ICutExtrusionDefinition::GetSketch

Получить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksCutExtrusionDefinition::SetSketch
ICutExtrusionDefinition::SetSketch

Изменить указатель на интерфейс эскиза элемента

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutExtrusionDefinition::GetSideParam
ICutExtrusionDefinition::GetSideParam

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

Синтаксис Automation:

BOOL GetSideParam (BOOL forward,

short *type,

double *depth,

double *draftValue,

BOOL *draftOutward);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

short *type,

double *depth,

double *draftValue,

BOOL *draftOutward);

Входной параметр:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
Выходные параметры:

type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Типы выдавливания...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutExtrusionDefinition::SetSideParam
ICutExtrusionDefinition::SetSideParam

Изменить параметры выдавливания в одном направлении

Синтаксис Automation:

BOOL SetSideParam (BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Синтаксис COM:

BOOL SetSideParam (BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Входные параметры:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Типы выдавливания...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutExtrusionDefinition::GetThinParam
ICutExtrusionDefinition::GetThinParam

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

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutExtrusionDefinition::SetThinParam
ICutExtrusionDefinition::SetThinParam

Изменить параметры тонкой стенки

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutExtrusionDefinition::ThinParam
ICutExtrusionDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksCutExtrusionDefinition::ExtrusionParam
ICutExtrusionDefinition::ExtrusionParam

Получить указатель на интерфейс параметров элемента выдавливания.

Синтаксис Automation:

LPDISPATCH ExtrusionParam();

Синтаксис COM:

LPEXTRUSIONPARAM ExtrusionParam();

Возвращаемое значение:

	указатель на интерфейс ksExtrusionParam или IExtrusionParam.


ksCutExtrusionDefinition::GetDepthObject
ICutExtrusionDefinition::GetDepthObject

Получить объект, задающий глубину выдавливания.

Синтаксис Automation:

LPDISPATCH GetDepthObject (BOOL normal);

Синтаксис COM:

LPEXTRUSIONPARAM ExtrusionParam();

Входной параметр:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksCutExtrusionDefinition::SetDepthObject
ICutExtrusionDefinition::SetDepthObject

Установить объект, задающий глубину выдавливания.

Синтаксис Automation:

BOOL SetDepthObject (BOOL normal, LPDISPATCH obj);

Синтаксис COM:

BOOL SetDepthObject (BOOL normal, LPENTITY obj);

Входной параметр:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
obj	- указатель на интерфейс ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutExtrusionDefinition::ResetDepthObject
ICutExtrusionDefinition::ResetDepthObject

Отказаться от установленного методом SetDepthObject объекта, задающего глубину выдавливания.

Синтаксис Automation:

BOOL ResetDepthObject (BOOL normal);

Синтаксис COM:

BOOL ResetDepthObject (BOOL normal);

Входной параметр:

normal	- направление выдавливания: (TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза).
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutExtrusionDefinition::cut
ICutExtrusionDefinition::cut

Признак результата операции.

Тип данных - BOOL.

Значения свойства:

TRUE	- результат операции - вычитание элемента,
FALSE	- результат операции - пересечение элементов.
Синтаксис Automation:

cut = iEvolution.cut	Получить свойство (*)
iEvolution.cut = cut	Установить свойство (*)
cut = iEvolution.GetCut()	Получить свойство (**)
iEvolution.SetCut(cut)	Установить свойство (**)


Интерфейсы ksCutLoftDefinition, ICutLoftDefinition
ksCutLoftDefinition,
ICutLoftDefinition

Интерфейс параметров вырезанного элемента по сечениям.

ksCutLoftDefinition	- интерфейс Automation
ICutLoftDefinition	- интерфейс COM
Свойства...

Методы...


ksCutLoftDefinition::props
ksCutLoftDefinition
свойства

cut


ksCutLoftDefinition::methods
ksCutLoftDefinition
методы

GetLoftParam

GetThinParam

SetLoftParam

SetThinParam

Sketches

ThinParam


ksCutLoftDefinition::GetLoftParam
ICutLoftDefinition::GetLoftParam

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

Синтаксис Automation:

BOOL GetLoftParam (BOOL *closed,

BOOL *flipVertex,

BOOL *autoPath);

Синтаксис COM:

BOOL GetLoftParam (BOOL *closed,

BOOL *flipVertex,

BOOL *autoPath);

Выходные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutLoftDefinition::SetLoftParam
ICutLoftDefinition::SetLoftParam

Изменить параметры вырезанного элемента по сечениям

Синтаксис Automation:

BOOL SetLoftParam (BOOL closed,

BOOL flipVertex,

BOOL autoPath);

Синтаксис COM:

BOOL SetLoftParam (BOOL closed,

BOOL flipVertex,

BOOL autoPath);

Входные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutLoftDefinition::GetThinParam
ICutLoftDefinition::GetThinParam

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

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutLoftDefinition::SetThinParam
ICutLoftDefinition::SetThinParam

Изменить параметры тонкой стенки

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutLoftDefinition::ThinParam
ICutLoftDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksCutLoftDefinition::Sketches
ICutLoftDefinition::Sketches

Получить указатель на интерфейс массива эскизов элемента по сечениям.

Синтаксис Automation:

LPDISPATCH Sketches();

Синтаксис COM:

LPENTITYCOLLECTION Sketches();

Возвращаемое значение:

	указатель на интерфейс массива эскизов ksEntityCollection или IEntityCollection.
Примечания:

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

2. Эскизы из данного массива используются для построения элемента по сечениям.


ksCutLoftDefinition::cut
ICutLoftDefinition::cut

Признак результата операции.

Тип данных - BOOL.

Значения свойства:

TRUE	- результат операции - вычитание элемента,
FALSE	- результат операции - пересечение элементов.
Синтаксис Automation:

cut = iEvolution.cut	Получить свойство (*)
iEvolution.cut = cut	Установить свойство (*)
cut = iEvolution.GetCut()	Получить свойство (**)
iEvolution.SetCut(cut)	Установить свойство (**)


Интерфейсы ksCutRotatedDefinition, ICutRotatedDefinition
ksCutRotatedDefinition,
ICutRotatedDefinition

Интерфейс вырезанного элемента вращения.

ksCutRotatedDefinition	- интерфейс Automation
ICutRotatedDefinition	- интерфейс COM
Свойства...

Методы...


ksCutRotatedDefinition::props
ksCutRotatedDefinition
свойства

cut

directionType

toroidShapeType


ksCutRotatedDefinition::methods
ksCutRotatedDefinition
методы

GetSideParam

GetSketch

GetThinParam

RotatedParam

SetSideParam

SetSketch

SetThinParam

ThinParam


ksCutRotatedDefinition::directionType
ICutRotatedDefinition::directionType

Направление вращения.

Типы направлений...

Примечание:

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

Нормаль, проведенная к поверхности тела, всегда выходит из тела.


ksCutRotatedDefinition::cut
ICutRotatedDefinition::cut

Признак результата операции.

Тип данных - BOOL.

Значения свойства:

TRUE	- результат операции - вычитание объекта,
FALSE	- результат операции - пересечение объектов.
Синтаксис Automation:

cut = iEvolution.cut	Получить свойство (*)
iEvolution.cut = cut	Установить свойство (*)
cut = iEvolution.GetCut()	Получить свойство (**)
iEvolution.SetCut(cut)	Установить свойство (**)


ksCutRotatedDefinition::toroidShapeType
ICutRotatedDefinition::toroidShapeType

Признак тороида.

Тип данных - BOOL.

Значения свойства:

TRUE	- тороид,
FALSE	- сфероид.


ksCutRotatedDefinition::GetSketch
ICutRotatedDefinition::GetSketch

Получить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ksEntity или IEntity.


ksCutRotatedDefinition::SetSketch
ICutRotatedDefinition::SetSketch

Изменить указатель на интерфейс эскиза элемента.

Синтаксис Automation:

BOOL SetSketch(LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch(LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutRotatedDefinition::GetSideParam
ICutRotatedDefinition::GetSideParam

Получить параметры вращения в одном направлении.

Синтаксис Automation:

BOOL GetSideParam (BOOL forward,

double *angle);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

double * angle);

Входной параметр:

forward	- направление вращения: TRUE - прямое, FALSE - обратное.
Выходной параметр:

angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutRotatedDefinition::SetSideParam
ICutRotatedDefinition::SetSideParam

Изменить параметры вращения в одном направлении

Синтаксис Automation:

BOOL SetSideParam (short forward,

double angle);

Синтаксис COM:

BOOL SetSideParam (BOOL forward,

double angle);

Входные параметры:

forward	- направление вращения: TRUE - прямое, FALSE - обратное.
angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutRotatedDefinition::GetThinParam
ICutRotatedDefinition::GetThinParam

Получить параметры тонкой стенки элемента

Синтаксис Automation:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Синтаксис COM:

BOOL GetThinParam (BOOL *thin,

short *thinType,

double *normalThickness,

double *reverseThickness);

Выходные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutRotatedDefinition::SetThinParam
ICutRotatedDefinition::SetThinParam

Изменить параметры тонкой стенки элемента

Синтаксис Automation:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Синтаксис COM:

BOOL SetThinParam (BOOL thin,

short thinType,

double normalThickness,

double reverseThickness);

Входные параметры:

thin	- признак тонкостенной операции,
thinType	- направление построения тонкой стенки,
normalThickness	- толщина стенки в прямом направлении,
reverseThickness	- толщина стенки в обратном направлении.
Типы направлений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCutRotatedDefinition::ThinParam
ICutRotatedDefinition::ThinParam

Получить указатель на интерфейс параметров тонкой стенки

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPARAM ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksCutRotatedDefinition::RotatedParam
ICutRotatedDefinition::RotatedParam

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

Синтаксис Automation:

LPDISPATCH RotatedParam();

Синтаксис COM:

LPROTATEDPARAM RotatedParam();

Возвращаемое значение:

	указатель на интерфейс ksRotatedParam или IRotatedParam.


Интерфейсы ksCylindricSpiralDefinition, ICylindricSpiralDefinition
ksCylindricSpiralDefinition,
ICylindricSpiralDefinition

Интерфейс параметров цилиндрической спирали.

ksCylindricSpiralDefinition	- интерфейс Automation
ICylindricSpiralDefinition	- интерфейс COM
Свойства...

Методы...


ksCylindricSpiralDefinition::props
ksCylindricSpiralDefinition
свойства

buildDir

buildMode

diam

diamType

firstAngle

heightAddHow

heightAdd

height

heightType

step

turnDir

turn


ksCylindricSpiralDefinition::methods
ksCylindricSpiralDefinition
методы

GetDiamObject

GetHeightObject

GetLocation

GetPlane

SetDiamObject

SetHeightObject

SetLocation

SetPlane


ksCylindricSpiralDefinition::turn
ICylindricSpiralDefinition::turn

Количество витков спирали.

Тип данных - double.

Синтаксис Automation:

turn = iConicSpiral.turn	Получить свойство (*)
iConicSpiral.turn = turn	Установить свойство (*)
turn = iConicSpiral.GetTurn()	Получить свойство (**)
iConicSpiral.SetTurn(turn)	Установить свойство (**)


ksCylindricSpiralDefinition::step
ICylindricSpiralDefinition::step

Шаг витков спирали.

Тип данных - double.

Синтаксис Automation:

step = iConicSpiral.step	Получить свойство (*)
iConicSpiral.step = step	Установить свойство (*)
step = iConicSpiral.GetStep()	Получить свойство (**)
iConicSpiral.SetStep(step)	Установить свойство (**)


ksCylindricSpiralDefinition::turnDir
ICylindricSpiralDefinition::turnDir

Направление навивки спирали

Тип данных - BOOL.

Значения свойства:

TRUE	- по часовой стрелке,
FALSE	- против часовой стреки.
Синтаксис Automation:

turnDir = iConicSpiral.turnDir	Получить свойство (*)
iConicSpiral.turnDir = turnDir	Установить свойство (*)
turnDir = iConicSpiral.GetTurnDir()	Получить свойство (**)
iConicSpiral.SetTurnDir(turnDir)	Установить свойство (**)


ksCylindricSpiralDefinition::buildMode
ICylindricSpiralDefinition::buildMode

Способ построения спирали.

Тип данных - short.

Значения свойства:

0	- по шагу и количеству витков,
1	- по шагу и высоте,
2	- по количеству витков и высоте.
Синтаксис Automation:

buildMode = iConicSpiral.buildMode	Получить свойство (*)
iConicSpiral.buildMode = buildMode	Установить свойство (*)
buildMode = iConicSpiral.GetBuildMode()	Получить свойство (**)
iConicSpiral.SetBuildMode(buildMode)	Установить свойство (**)


ksCylindricSpiralDefinition::buildDir
ICylindricSpiralDefinition::buildDir

Направление построения спирали.

Тип данных - BOOL.

Значения свойства:

TRUE	- нормальное (совпадающее с положительнымнаправленим нормали к базовой плоскости спирали),
FALSE	- обратное.
Синтаксис Automation:

buildDir = iConicSpiral.buildDir	Получить свойство (*)
iConicSpiral.buildDir = buildDir	Установить свойство (*)
buildDir = iConicSpiral.GetBuildDir()	Получить свойство (**)
iConicSpiral.SetBuildDir(buildDir)	Установить свойство (**)


ksCylindricSpiralDefinition::height
ICylindricSpiralDefinition::height

Высота спирали.

Тип данных - double.

Синтаксис Automation:

height = iConicSpiral.height	Получить свойство (*)
iConicSpiral.height = height	Установить свойство (*)
height = iConicSpiral.GetHeight()	Получить свойство (**)
iConicSpiral.SetHeight(height)	Установить свойство (**)


ksCylindricSpiralDefinition::heightType
ICylindricSpiralDefinition::heightType

Способ задания высоты.

Тип данных - short.

Значения свойства:

0	- по размеру,
1	- по объекту.
Синтаксис Automation:

heightType = iConicSpiral.heightType	Получить свойство (*)
iConicSpiral.heightType = heightType	Установить свойство (*)
heightType = iConicSpiral.GetHeightType()	Получить свойство (**)
iConicSpiral.SetHeightType(heightType)	Установить свойство (**)


ksCylindricSpiralDefinition::heightAdd
ICylindricSpiralDefinition::heightAdd

Дополнительная высота.

Тип данных - double.

Синтаксис Automation:

heightAdd = iConicSpiral.heightAdd	Получить свойство (*)
iConicSpiral.heightAdd = heightAdd	Установить свойство (*)
heightAdd = iConicSpiral.GetHeightAdd()	Получить свойство (**)
iConicSpiral.SetHeightAdd(heightAdd)	Установить свойство (**)


ksCylindricSpiralDefinition::heightAddHow
ICylindricSpiralDefinition::heightAddHow

Признак дополнительной высоты

Тип данных - BOOL.

Значения свойства:

TRUE	- продолжить за объект,
FALSE	- не доходя до объекта.
Синтаксис Automation:

heightAddHow = iConicSpiral.heightAddHow	Получить свойство (*)
iConicSpiral.heightAddHow = heightAddHow	Установить свойство (*)
heightAddHow = iConicSpiral.GetHeightAddHow()	Получить свойство (**)
iConicSpiral.SetHeightAddHow(heightAddHow)	Установить свойство (**)
Примечание

Данное свойство используется только при способе задания высоты "по объекту" (heightType = 1)


ksCylindricSpiralDefinition::diam
ICylindricSpiralDefinition::diam

Диаметр спирали.

Тип данных - double.

Синтаксис Automation:

diam = iConicSpiral.diam	Получить свойство (*)
iConicSpiral.diam = diam	Установить свойство (*)
diam = iConicSpiral.GetDiam()	Получить свойство (**)
iConicSpiral.SetDiam(diam)	Установить свойство (**)


ksCylindricSpiralDefinition::diamType
ICylindricSpiralDefinition::diamType

Способ задания диаметра.

Тип данных - short.

Значения свойства:

0	- по размеру,
1	- по объекту.
Синтаксис Automation:

diamType = iConicSpiral.diamType	Получить свойство (*)
iConicSpiral.diamType = diamType	Установить свойство (*)
diamType = iConicSpiral.GetDiamType()	Получить свойство (**)
iConicSpiral.SetDiamType(diamType)	Установить свойство (**)


ksCylindricSpiralDefinition::firstAngle
ICylindricSpiralDefinition::firstAngle

Начальный угол (или угол поворота спирали вокруг своей оси).

Тип данных - double.

Синтаксис Automation:

firstAngle = iConicSpiral.firstAngle	Получить свойство (*)
iConicSpiral.firstAngle = firstAngle	Установить свойство (*)
firstAngle = iConicSpiral.GetFirstAngle()	Получить свойство (**)
iConicSpiral.SetFirstAngle(firstAngle)	Установить свойство (**)


ksCylindricSpiralDefinition::GetPlane
ICylindricSpiralDefinition::GetPlane

Получить базовую плоскость спирали.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntityили IEntity.


ksCylindricSpiralDefinition::SetPlane
ICylindricSpiralDefinition::SetPlane

Установить базовую плоскость спирали.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCylindricSpiralDefinition::GetLocation
ICylindricSpiralDefinition::GetLocation

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

Синтаксис Automation:

BOOL GetLocation (double* x,

double* y);

Синтаксис COM:

BOOL GetLocation (double* x,

double* y);

Выходные параметры:

x, y	координаты точки привязки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCylindricSpiralDefinition::SetLocation
ICylindricSpiralDefinition::SetLocation

Установить точку привязки спирали на базовой плоскости (точку пересечения оси спирали с базовой плоскостью).

Синтаксис Automation:

BOOL SetLocation (double x,

double y);

Синтаксис COM:

BOOL SetLocation (double x,

double y);

Входные параметры:

x, y	координаты точки привязки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCylindricSpiralDefinition::GetHeightObject
ICylindricSpiralDefinition::GetHeightObject

Получить объект, задающий высоту.

Синтаксис Automation:

LPDISPATCH GetHeightObject();

Синтаксис COM:

LPENTITY GetHeightObject();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksCylindricSpiralDefinition::SetHeightObject
ICylindricSpiralDefinition::SetHeightObject

Установить объект, задающий высоту.

Синтаксис Automation:

BOOL SetHeightObject (LPDISPATCH heightObject);

Синтаксис COM:

BOOL SetHeightObject (LPENTITY heightObject);

Входной параметр:

heightObject	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksCylindricSpiralDefinition::GetDiamObject
ICylindricSpiralDefinition::GetDiamObject

Получить объект, задающий диаметр.

Синтаксис Automation:

LPDISPATCH GetDiamObject();

Синтаксис COM:

LPENTITY GetDiamObject();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksCylindricSpiralDefinition::SetDiamObject
ICylindricSpiralDefinition::SetDiamObject

Установить объект, задающий диаметр.

Синтаксис Automation:

BOOL SetDiamObject (LPDISPATCH diamObject);

Синтаксис COM:

BOOL SetDiamObject (LPENTITY diamObject);

Входной параметр:

diamObject	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksDerivativePartArrayDefinition, IDerivativePartArrayDefinition
ksDerivativePartArrayDefinition,
IDerivativePartArrayDefinition

Интерфейс копирования компонентов сборки по образцу.

ksDerivativePartArrayDefinition	- интерфейс Automation
IDerivativePartArrayDefinition	- интерфейс COM
Методы...


ksDerivativePartArrayDefinition::methods
ksDerivativePartArrayDefinition
методы

DeletedCollection

GetDeriv

PartArray

SetDeriv


ksDerivativePartArrayDefinition::PartArray
IDerivativePartArrayDefinition::PartArray

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

Синтаксис Automation:

LPDISPATCH PartArray();

Синтаксис COM:

LPPARTCOLLECTION PartArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива компонентов, подлежащих копированию ksPartCollection или IPartCollection.


ksDerivativePartArrayDefinition::GetDeriv
IDerivativePartArrayDefinition::GetDeriv

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

Синтаксис Automation:

LPDISPATCH GetDeriv();

Синтаксис COM:

LPENTITY GetDeriv();

Возвращаемое значение:

	указатель на интерфейс массива-образца ksEntity или IEntity.


ksDerivativePartArrayDefinition::SetDeriv
IDerivativePartArrayDefinition::SetDeriv

Установить указатель на интерфейс массива-образца.

Синтаксис Automation:

BOOL SetDeriv (LPDISPATCH deriv);

Синтаксис COM:

BOOL SetDeriv (LPENTITY deriv);

Входной параметр:

deriv	- указатель на интерфейс массива-образца ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDerivativePartArrayDefinition::DeletedCollection
IDerivativePartArrayDefinition::DeletedCollection

Получить массив индексов удаленных копий.

Синтаксис Automation:

LPDISPATCH DeletedCollection();

Синтаксис COM:

LPDELETEDCOPYCOLLECTION DeletedCollection();

Возвращаемое значение:

указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection	- в случае успешного завершения.
NULL	- в случае неудачи
Примечание:

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


Интерфейсы ksDocument3D, IDocument3D
ksDocument3D,
IDocument3D

Интерфейс документа модели.

ksDocument3D	- интерфейс Automation
IDocument3D	- интерфейс COM
Свойства...

Методы...

События...


ksDocument3D::properties
ksDocument3D
свойства

author

comment

drawMode

fileName

hideAllAxis

hideAllPlaces

hideAllPlanes

hideAllSketches

hideAllSurfaces

hideAllThreads

invisibleMode

perspective

reference

shadedWireframe


ksDocument3D::methods
ksDocument3D
методы

AddImportedSurfaces

AdditionFormatParam

AddMateConstraint

Close

ComponentPositioner

Create

CreatePartInAssembly

DefaultPlacement

DeleteObject

EntityCollection

GetChooseMng

GetDocument3DNotify

GetInterface

GetObjectType

GetPart

GetRequestInfo

GetSelectionMng

GetSpecification

GetViewProjectionCollection

IsActive

IsDetail

IsEditMode

Open

PartCollection

RasterFormatParam

RemoveMateConstraint

SaveAs

SaveAsToAdditionFormat

SaveAsToRasterFormat

SaveAsToUncompressedRasterFormat

Save

SetActive

SetPartFromFileEx

SetPartFromFile

UpdateDocumentParam

UserGetPlacementAndEntity

UserSelectEntity

ZoomPrevNextOrAll


ksDocument3D::shadedWireframe
IDocument3D::shadedWireframe

Полутоновое изображение с каркасом объектов активного окна документа-модели.

Тип данных - BOOL.

Синтаксис:

shadedWireframe = iDocument3D.shadedWireframe	Получить свойство (*)
iDocument3D.shadedWireframe = shadedWireframe	Установить свойство (*)
shadedWireframe = iDocument3D.GetShadedWireframe()	Получить свойство (**)
iDocument3D.SetShadedWireframe(shadedWireframe)	Установить свойство (**)


ksDocument3D::fileName
IDocument3D::fileName

Имя файла документа (трехмерной модели).

Тип данных - строка.

Синтаксис Automation:

fileName = document.fileName	Получить свойство (*)
document.fileName = fileName	Установить свойство (*)
fileName = document.GetFileName()	Получить свойство (**)
document.SetFileName(fileName)	Установить свойство (**)
Синтаксис COM:

fileName = document->GetFileName()	Получить свойство
document->SetFileName(fileName)	Установить свойство


ksDocument3D::comment
IDocument3D::comment

Комментарий документа.

Тип данных - строка.

Синтаксис Automation:

comment = document.comment	Получить свойство (*)
document.comment = comment	Установить свойство (*)
comment = document.GetComment ()	Получить свойство (**)
document.SetComment (comment)	Установить свойство (**)
Синтаксис COM:

comment = document->GetComment ()	Получить свойство
document->SetComment (comment)	Установить свойство


ksDocument3D::author
IDocument3D::author

Имя автора документа.

Тип данных - строка.

Синтаксис Automation:

author = document.author	Получить свойство (*)
document.author = author	Установить свойство (*)
author = document.GetAuthor ()	Получить свойство (**)
document.SetAuthor(author)	Установить свойство (**)
Синтаксис COM:

author = document->GetAuthor ()	Получить свойство
document->SetAuthor(author)	Установить свойство


ksDocument3D::invisibleMode
IDocument3D::invisibleMode

Режим редактирования документа.

Тип данных - BOOL.

Значения свойства:

TRUE	- невидимый режим,
FALSE	- видимый режим.
Синтаксис Automation:

InvisibleMode = document.invisibleMode	Получить свойство (*)
InvisibleMode = document.GetInvisibleMode ()	Получить свойство (**)
Синтаксис COM:

InvisibleMode = document->GetInvisibleMode ()	Получить свойство
Примечание:

Данное свойство предназначено только для чтения.


ksDocument3D::reference
IDocument3D::reference

Указатель документа-модели (детали, сборки).

Тип данных - long.

Синтаксис Automation:

ref = iDocument3D.reference	Получить свойство (*)
iDocument3D.reference = ref	Установить свойство (*)
ref = document.GetReference ()	Получить свойство (**)
document.SetReference (ref)	Установить свойство (**)
Примечание:

Свойство определяет указатель на трехмерную модель в стиле API графических документов. Позволяет использовать функционал атрибутов и итераторов.


ksDocument3D::perspective
IDocument3D::perspective

Признак отображения модели в перспективной проекции.

Тип данных - BOOL.

Значения свойства:

TRUE	- перспективная проекция включена,
FALSE	- перспективная проекция выключена.
Синтаксис Automation:

perspective = iDocument3D.perspective	Получить свойство (*)
iDocument3D.perspective = perspective	Установить свойство (*)
perspective = iDocument3D.GetPerspective()	Получить свойство (**)
iDocument3D.SetPerspective(perspective)	Установить свойство (**)


ksDocument3D::drawMode
IDocument3D::drawMode

Тип отображения модели.

Тип данных - long.

Значения свойства...

Синтаксис Automation:

drawMode = iDocument3D.drawMode	Получить свойство (*)
iDocument3D.drawMode = drawMode	Установить свойство (*)
drawMode = iDocument3D.GetDrawMode()	Получить свойство (**)
iDocument3D.SetDrawMode(drawMode)	Установить свойство (**)


ksDocument3D::hideAllPlanes
IDocument3D::hideAllPlanes

Скрыть\показать конструктивные плоскости.

Тип данных - BOOL.

Значения свойства:

TRUE	- скрыть конструктивные плоскости,
FALSE	- показать конструктивные плоскости.
Синтаксис Automation:

hideAllPlanes = iDocument3D.hideAllPlanes	Получить свойство (*)
iDocument3D.hideAllPlanes = hideAllPlanes	Установить свойство (*)
hideAllPlanes = iDocument3D.GetHideAllPlanes()	Получить свойство (**)
iDocument3D.SetHideAllPlanes( hideAllPlanes )	Установить свойство (**)


ksDocument3D::hideAllAxis
IDocument3D::hideAllAxis

Скрыть\показать конструктивные оси.

Тип данных - BOOL.

Значения свойства:

TRUE	- скрыть конструктивные оси,
FALSE	- показать конструктивные оси.
Синтаксис Automation:

hideAllAxis = iDocument3D.hideAllAxis	Получить свойство (*)
iDocument3D.hideAllAxis = hideAllAxis	Установить свойство (*)
hideAllAxis = iDocument3D.GetHideAllAxis()	Получить свойство (**)
iDocument3D.SetHideAllAxis(hideAllAxis)	Установить свойство (**)


ksDocument3D::hideAllSketches
IDocument3D::hideAllSketches

Скрыть\показать эскизы.

Тип данных - BOOL.

Значения свойства:

TRUE	- скрыть конструктивные эскизы,
FALSE	- показать конструктивные эскизы.
Синтаксис Automation:

iDocument3D.hideAllSketches	Получить свойство (*)
iDocument3D.hideAllSketches = hideAllSketches	Установить свойство (*)
hideAllSketches = iDocument3D.GetHideAllSketches()	Получить свойство (**)
iDocument3D.SetHideAllSketches(hideAllSketches )	Установить свойство (**)


ksDocument3D::hideAllPlaces
IDocument3D::hideAllPlaces

Скрыть\показать начала координат.

Тип данных - BOOL.

Значения свойства:

TRUE	- скрыть начала координат,
FALSE	- показать начала координат.
Синтаксис Automation:

iDocument3D.hideAllPlaces	Получить свойство (*)
iDocument3D.hideAllPlaces = hideAllPlaces	Установить свойство (*)
hideAllPlaces = iDocument3D.GetHideAllPlaces()	Получить свойство (**)
iDocument3D.SetHideAllPlaces(hideAllPlaces)	Установить свойство (**)


ksDocument3D::hideAllSurfaces
IDocument3D::hideAllSurfaces

Скрыть\показать поверхности.

Тип данных - BOOL.

Значения свойства:

TRUE	- скрыть поверхности,
FALSE	- показать поверхности.
Синтаксис Automation:

hideAllSurfaces = iDocument3D.hideAllSurfaces	Получить свойство (*)
iDocument3D.hideAllSurfaces = hideAllSurfaces	Установить свойство (*)
hideAllSurfaces = iDocument3D.GetHideAllSurfaces()	Получить свойство (**)
iDocument3D.SetHideAllSurfaces(hideAllSurfaces)	Установить свойство (**)


ksDocument3D::hideAllThreads
IDocument3D::hideAllThreads

Скрыть\показать резьбы.

Тип данных - BOOL.

Значения свойства:

TRUE	- скрыть поверхности,
FALSE	- показать поверхности.
Синтаксис Automation:

hideAllThreads = iDocument3D.hideAllThreads	Получить свойство (*)
iDocument3D.hideAllThreads = hideAllThreads	Установить свойство (*)
hideAllThreads = iDocument3D.GetHideAllThreads()	Получить свойство (**)
iDocument3D.SetHideAllThreads(hideAllThreads)	Установить свойство (**)


ksDocument3D::ksIsSlaveSpcOpened
IDocument3D::ksIsSlaveSpcOpened

Открыто ли окно спецификации в Slave режиме для указанного документа.

Синтаксис Automation:

int LIB_FUNC ksIsSlaveSpcOpened (reference doc);

Синтаксис COM:

int ksIsSlaveSpcOpened();

Возвращаемое значение:

0	- окно спецификации в Slave режиме не открыто,
1	- окно спецификации в Slave режиме открыто,
2	- окно спецификации в Slave режиме открыто и активно.
Примечание:

Если doc = 0, то используется активный документ.


ksDocument3D::ksIsSlaveSpcOpened
IDocument3D::ksIsSlaveSpcOpened

Открыто ли окно спецификации в Slave режиме.

Синтаксис Automation:

int ksIsSlaveSpcOpened();

Синтаксис COM:

int ksIsSlaveSpcOpened();

Возвращаемое значение:

0	- окно спецификации в Slave режиме не открыто,
1	- окно спецификации в Slave режиме открыто,
2	- окно спецификации в Slave режиме открыто и активно.


ksDocument3D::ComponentPositioner
IDocument3D::ComponentPositioner

Получить указатель на интерфейс управления положением компонентов в сборке.

Синтаксис Automation:

ksComponentPositioner * ComponentPositioner();

Синтаксис COM:

LPCOMPONENTPOSITIONER ComponentPositioner();

Возвращаемое значение:

	- указатель на интерфейс ksComponentPositioner.


ksDocument3D::IsDetail
IDocument3D::IsDetail

Определить, является ли модель деталью.

Синтаксис Automation:

BOOL IsDetail();

Синтаксис COM:

BOOL IsDetail();

Возвращаемое значение:

TRUE	- деталь,
FALSE	- сборка.


ksDocument3D::IsEditMode
IDocument3D::IsEditMode

Определить, запущен ли какой-либо из компонентов на редактирование через библиотеку.

Синтаксис Automation:

BOOL IsEditMode();

Синтаксис COM:

BOOL IsEditMode();

Возвращаемое значение:

TRUE	- редактирование компонента через библиотеку,
FALSE	- редактируемых компонентов нет.
Примечание:

Редактируемый компонент можно получить методом GetPart (pEdit_Part).


ksDocument3D::UpdateDocumentParam
IDocument3D::UpdateDocumentParam

Активизировать измененные параметры документа

Синтаксис Automation:

BOOL UpdateDocumentParam();

Синтаксис COM:

BOOL UpdateDocumentParam();

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::UserGetPlacementAndEntity
IDocument3D::UserGetPlacementAndEntity

Запустить процесс указания местоположения или объектов.

Синтаксис Automation:

BOOL UserGetPlacementAndEntity(long entityCount);

Синтаксис COM:

BOOL UserGetPlacementAndEntity(long entityCount);

Входной параметр:

entityCount	- максимальное количество объектов, которое может быть одновременно указано в процессе.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Параметры настройки процесса задаются с помощью интерфейса ksRequestInfo3D.

Массив объектов необходимо заполнить вручную в CallBack-функции.

В интерфейсе ksRequestInfo3D определен доступ к массиву объектов, который заполняется в процессе.

Для процесса можно задать строку приглашения и функции обратной связи для фильтрации объектов и выбора объекта.

Алгоритм работы процесса:

Разработчик определяет значение entityCount, текст строки приглашения, функции обратной связи и запускает процесс.

При захвате курсором объекта модели этот объект передается в функцию фильтрации, где можно проверить его тип и сообщить процессу, подходит объект или нет.

Если объект подходит, то он подсвечивается на экране.

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

Объекты, попавшие в массив, выделяются на экране.

После выхода из процесса массив остается доступным до очередного вызова функции GetRequestInfo.


ksDocument3D::SetActive
IDocument3D::SetActive

Сделать документ текущим

Синтаксис Automation:

BOOL SetActive();

Синтаксис COM:

BOOL SetActive();

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::IsActive
IDocument3D::IsActive

Получить состояние документа

Синтаксис Automation:

BOOL IsActive();

Синтаксис COM:

BOOL IsActive();

Возвращаемое значение:

TRUE	- текущий документ.


ksDocument3D::GetRequestInfo
IDocument3D::GetRequestInfo

Получить указатель интерфейса параметров запроса к системе ksRequestInfo3D.

Синтаксис Automation:

LPDISPATCH GetRequestInfo (LPDISPATCH part);

Синтаксис COM:

LPREQUESTINFO GetRequestInfo (LPPART part);

Входной параметр:

part	- указатель на интерфейс компонента (детали или подсборки) ksPart или IPart.
Возвращаемое значение:

	- указатель на интерфейс параметров запроса к системе ksRequestInfo3D или IRequestInfo3D.


ksDocument3D::DefaultPlacement
IDocument3D::DefaultPlacement

Получить указатель на интерфейс умолчательной системы координат.

Синтаксис Automation:

ksPlacement * DefaultPlacement();

Синтаксис COM:

LPPLACEMENT DefaultPlacement();

Возвращаемое значение:

	- указатель на интерфейс ksPlacement.


ksDocument3D::GetPart
IDocument3D::GetPart

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

Синтаксис Automation:

LPDISPATCH GetPart (long type);

Синтаксис COM:

LPPART GetPart(int type);

Входной параметр:

type	- тип компонента.
Типы компонентов...

Возвращаемое значение:

	- указатель на интерфейс компонента ksPart или IPart.
Примечание:

Тип задается для нового, редактируемого или главного компонента либо тип равен номеру компонента в документе.

Функция используется, чтобы получить доступ к компоненту документа.

Деталь или сборка являются компонентами. Сборка, в свою очередь, состоит из компонентов - деталей и подсборок.


ksDocument3D::Create
IDocument3D::Create

Создать документ-модель (деталь или сборку).

Синтаксис Automation:

BOOL Create (BOOL invisible, BOOL typeDoc);

Синтаксис COM:

BOOL Create (BOOL invisible, BOOL _typeDoc);

Входные параметры:

invisible	- признак режима редактирования документа  (TRUE - невидимый режим,  FALSE - видимый режим),
typeDoc	- тип документа  (TRUE - деталь,  FALSE - сборка)
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::Open
IDocument3D::Open

Открыть на редактирование документ-модель (деталь или сборку).

Синтаксис Automation:

BOOL Open (BSTR fileName, BOOL invisible);

Синтаксис COM:

BOOL Open (LPOLESTR fileName, BOOL invisible);

Входные параметры:

fileName	- имя файла открываемого документа,
invisible	- признак режима редактирования документа  (TRUE – невидимый режим,  FALSE - видимый режим)
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::Save
IDocument3D::Save

Cохранить документ-модель (деталь или сборку) в файл с заданным ранее именем.

Синтаксис Automation:

BOOL Save();

Синтаксис COM:

BOOL Save();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Имя файла документа задается свойством fileName.


ksDocument3D::SaveAs
IDocument3D::SaveAs

Cохранить документ-модель (деталь или сборку) с новым именем.

Синтаксис Automation:

BOOL SaveAs (BSTR fileName);

Синтаксис COM:

BOOL SaveAs (LPOLESTR fileName);

Входной параметр:

fileName	- имя файла документа.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::Close
IDocument3D::Close

Закрыть документ-модель (деталь или сборку).

Синтаксис Automation:

BOOL Close();

Синтаксис COM:

BOOL Close();

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::EntityCollection
IDocument3D::EntityCollection

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

Синтаксис Automation:

LPDISPATCH EntityCollection (short objType,

BOOL checkEntity);

Синтаксис COM:

LPENTITYCOLLECTION EntityCollection (short objType,

BOOL checkEntity);

Входные параметры:

objType	- тип объектов, содержащихся в массиве,
checkEntity	- признак проверки для вновь добавляемых объектов на NULL  (TRUE - проверка включена,  FALSE - проверка выключена и в массив можно добавить NULL).
Возвращаемое значение:

	- указатель на интерфейс динамического массива объектов ksEntityCollection или IEntityCollection.
Примечание:

Массив создается пустым. Метод Refresh для полученного массива не работает.

Типы объектов...


ksDocument3D::SetPartFromFile
IDocument3D::SetPartFromFile

Вставить в модель компонент из файла или из библиотеки моделей.

Синтаксис Automation:

BOOL SetPartFromFile (BSTR fileName,

LPDISPATCH part,

BOOL externalFile);

Синтаксис COM:

BOOL SetPartFromFile (LPOLESTR fileName,

LPPART part,

BOOL externalFile);

Входные параметры:

fileName	- имя файла, из которого будет вставлен компонент,
part	- указатель на интерфейс компонента, который будет вставлен в документ (ksPart или IPart),
externalFile	- признак сохранения связи с файлом-источником  (TRUE - вставка со ссылкой на внешний файл,  FALSE - вставка "телом", без сохранения ссылки на источник).
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

При вставке из файла указывается полный путь к файлу. При вставке из библиотеки моделей указывается полный путь к файлу библиотеки и путь внутри библиотеки моделей (например, "C:\\standard.l3d|Крепежные элементы|Болты|Болт_1").


ksDocument3D::AddMateConstraint
IDocument3D::AddMateConstraint

Добавить сопряжение в сборку

Синтаксис Automation:

BOOL AddMateConstraint (long constraintType,

LPDISPATCH object1,

LPDISPATCH object2,

short direction,

short fixed,

double value);

Синтаксис COM:

BOOL AddMateConstraint (long constraintType,

LPENTITY obj1,

LPENTITY obj2,

short direction,

short fixed,

double val);

Входные параметры:

constraintType	- тип сопряжения,
object1	- указатель на интерфейс первого объекта, на который накладывается сопряжение (ksEntity или IEntity),
object2	- указатель на интерфейс второго объекта, на который накладывается сопряжение (ksEntity или ksEntity),
direction	- направление  (1 - объекты однонаправленные,  0 - направление не учитывается,  -1 - объекты разнонаправленные),
fixed	- признак фиксации деталей перед выполнением  (0 - детали не фиксируются,  1 - фиксируется первая деталь, 2 - фиксируется вторая деталь),
value	- параметр для ограничений (расстояние или угол между объектами).
Типы сопряжений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::RemoveMateConstraint
IDocument3D::RemoveMateConstraint

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

Синтаксис Automation:

BOOL RemoveMateConstraint (long constraintType,

LPDISPATCH object1,

LPDISPATCH object2);

Синтаксис COM:

BOOL RemoveMateConstraint (unsigned int constraintType,

LPENTITY obj1,

LPENTITY obj2);

Входные параметры:

constraintType	- тип сопряжения,
object1	- указатель на интерфейс первого объекта, на который наложено сопряжение (ksEntity или IEntity),
object2	- указатель на интерфейс второго объекта, на который наложено сопряжение (ksEntity или ksEntity).
Типы сопряжений...

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::PartCollection
IDocument3D::PartCollection

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

Синтаксис Automation:

LPDISPATCH PartCollection (BOOL refresh)

Синтаксис COM:

LPPARTCOLLECTION PartCollection (BOOL refresh);

Входные параметры:

refresh	TRUE - полученный массив будет заполнен компонентами данной сборки или детали, FALSE - полученный массив будет пустым.
Возвращаемое значение:

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


ksDocument3D::GetSpecification

Получить указатель на интерфейс для работы с объектами спецификации.

Синтаксис Automation:

LPDISPATCH GetSpecification();

Возвращаемое значение:

	указатель на интерфейс для работы с объектами спецификации ksSpecification.


ksDocument3D::CreatePartInAssembly
IDocument3D::CreatePartInAssembly

Получить указатель на интерфейс детали, создаваемой в сборке.

Синтаксис Automation:

LPDISPATCH CreatePartInAssembly (BSTR fileName,

LPDISPATCH plane);

Синтаксис COM:

LPPART CreatePartInAssembly (LPOLESTR fileName,

LPENTITY plane);

Входные параметры:

fileName	- имя детали создаваемой в сборке,
plane	- указатель на интерфейс плоского объекта ksEntity или IEntity.
Возвращаемое значение:

	указатель на интерфейс детали, создаваемой в сборке ksPart или IPart.


ksDocument3D::ZoomPrevNextOrAll
IDocument3D::ZoomPrevNextOrAll

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

Синтаксис Automation:

BOOL ZoomPrevNextOrAll (short type);

Синтаксис COM:

BOOL ZoomPrevNextOrAll (short type);

Входные параметры:

type	- признак устанавливаемого масштаба (0 - следующий масштаб изображения,  1 - предыдущий масштаб изображения,  2 - показать модель полностью).
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

В настоящий момент метод работает только при type=2.


ksDocument3D::UserSelectEntity
IDocument3D::UserSelectEntity

Запустить процесс выбора объекта.

Синтаксис Automation:

LPDISPATCH UserSelectEntity (LPDISPATCH defObject,

LPCTSTR methodName,

LPCTSTR prompt,

long hInstance,

LPDISPATCH dispatchOCX);

Входные параметры:

defObject	- указатель на объект по умолчанию, который будет подсвечен при запуске процесса,
methodName	- название функции фильтрации или NULL,
promt	- строка подсказки или NULL,
hInstance	- hInstance модуля, в котором находится функция фильтрации,
dispatchOCX	- интерфейс, в котором находится функция фильтрации, если hInstance не доступен.
Тип функции фильтрации:

bool WINAPI SELECTFILTERPROC (LPDISPATCH _entity)

Пользователь может указать процессу, подходит ему по каким-то соображениям присланный объект или нет. Если функция фильтрации возвращает TRUE, значит, объект подходит, и он буден подсвечен процессом.

Возвращаемое значение:

указатель на интерфейс ksEntity объекта, который выделили в процессе выбора	- в случае успешного завершения,
NULL	- в случае отказа.
Синтаксис COM:

LPENTITY UserSelectEntity (LPENTITY defObject,

USERSELECTFILTERPROC methodName,

LPOLESTR prompt);

Входные параметры:

defObject	- указатель на объект по умолчанию, который будет подсвечен при запуске процесса,
methodName	- название функции фильтрации или NULL,
promt	- строка приглашения или NULL.
Тип функции фильтрации:

typedef BOOL (__stdcall * USERSELECTFILTERPROC)(LPENTITY);

Пользователь может указать процессу, подходит ему по каким-то соображениям присланный объект или нет. Если функция фильтрации возвращает TRUE, значит, объект подходит, и он буден подсвечен процессом.

Возвращаемое значение:

указатель на интерфейс IEntity объекта, который выделили в процессе выбора	- в случае успешного завершения,
NULL	- в случае отказа.


ksDocument3D::SaveAsToRasterFormat
IDocument3D::SaveAsToRasterFormat

Сохранить документ в растровом файле.

Синтаксис Automation:

BOOL SaveAsToRasterFormat (BSTR fileName,

LPDISPATCH rasterPar);

Синтаксис COM:

BOOL SaveAsToRasterFormat (LPOLESTR fileName,

LPRASTERFORMATPARAM rasterPar );

Входные параметры:

fileName	- полное имя файла, в который сохраняется модель,
rasterPar	- указатель на интерфейс ksRasterFormatParam или IRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::SaveAsToAdditionFormat
IDocument3D::SaveAsToAdditionFormat

Сохранить модель в файле формата SAT, XT, STEP, IGES, VRML, STL.

Синтаксис Automation:

BOOL SaveAsToAdditionFormat (BSTR fileName,

LPDISPATCH additionPar);

Синтаксис COM:

BOOL SaveAsToAdditionFormat (LPOLESTR fileName,

LPADDITIONFORMATPARAM additionPar );

Входные параметры:

fileName	- полное имя файла, в который сохраняется модель,
additionPar	- указатель на интерфейс ksAdditionFormatParam или IAdditionFormatParam, определяющий параметры записи в дополнительный формат.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksDocument3D::RasterFormatParam
IDocument3D::RasterFormatParam

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

Синтаксис Automation:

LPDISPATCH RasterFormatParam();

Синтаксис COM:

LPRASTERFORMATPARAM RasterFormatParam();

Возвращаемое значение:

	указатель на интерфейс ksRasterFormatParam или IRasterFormatParam.


ksDocument3D::AdditionFormatParam
IDocument3D::AdditionFormatParam

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

Синтаксис Automation:

LPDISPATCH AdditionFormatParam();

Синтаксис COM:

LPADDITIONFORMATPARAM AdditionFormatParam();

Возвращаемое значение:

	указатель на интерфейс ksAdditionFormatParam или IAdditionFormatParam.


ksDocument3D::GetViewProjectionCollection
IDocument3D::GetViewProjectionCollection

Получить указатель на интерфейс массива проекций отображения модели в окне.

Синтаксис Automation:

LPDISPATCH GetViewProjectionCollection();

Синтаксис COM:

LPVIEWPROJECTIONCOLLECTION GetViewProjectionCollection();

Возвращаемое значение:

	указатель на интерфейс ksViewProjectionCollection или IViewProjectionCollection.


ksDocument3D::DeleteObject
IDocument3D::DeleteObject

Удалить объект: деталь, операцию, сопряжение.

Синтаксис Automation:

BOOL DeleteObject (LPDISPATCH obj);

Синтаксис COM:

BOOL DeleteObject (LPUNKNOWN obj);

Входной параметр:

obj	указатель на интерфейс IDispatch или IUnknown удаляемого объекта.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечания:

1. Удалить можно любой трехмерный объект.

2. Если в качестве входного параметра переданы поверхность ksFaceDefinition,
ребро ksEdgeDefinition, вершина ksVertexDefinition, то будет удален весь формообразующий элемент, которому принадлежит удаляемый объект.

3. Если в качестве входного параметра передано описание объекта, полученное методом ksEntity::GetDefinition, то после удаления недопустимо использование интерфейса описания удаленного объекта, породившего его интерфейса ksEntity и других интерфейсов удаленного объекта.


ksDocument3D::GetSelectionMng
IDocument3D::GetSelectionMng

Получить указатель на интерфейс менеджера выделенных объектов.

Синтаксис Automation:

LPDISPATCH GetSelectionMng();

Синтаксис COM:

LPSELECTIONMNG GetSelectionMng();

Возвращаемое значение:

	указатель на интерфейс ksSelectionMng или ISelectionMng.


ksDocument3D::GetChooseMng
IDocument3D::GetChooseMng

Получить указатель на интерфейс менеджера выбора (подсветки) объектов.

Синтаксис Automation:

LPDISPATCH  GetChooseMng();

Синтаксис COM:

LPCHOOSEMNG GetChooseMng();

Возвращаемое значение:

	указатель на интерфейс ksChooseMng или IChooseMng.


ksDocument3D::GetObjectType
IDocument3D::GetObjectType

Получить тип объекта.

Синтаксис Automation:

long GetObjectType (LPDISPATCH obj);

Синтаксис COM:

int GetObjectType (LPUNKNOWN obj);

Входной параметр:

obj	указатель на интерфейс IDispatch или IUnknown трехмерного объекта.
Возвращаемое значение:

	тип объекта Obj3dType.
Примечания:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному трехмерному интерфейсу. Зная тип объекта можно привести его к соответствующему интерфейсу.


ksDocument3D::SaveAsToUncompressedRasterFormat
IDocument3D::SaveAsToUncompressedRasterFormat

Cохранить документ в растровый формат.

Синтаксис Automation:

BOOL SaveAsToUncompressedRasterFormat (BSTR fileName, LPDISPATCH rasterPar);

Синтаксис COM:

BOOL SaveAsToUncompressedRasterFormat ( LPOLESTR fileName, LPRASTERFORMATPARAM rasterPar );

Выходные параметры:

fileName	Имя файла документа. Задается полное имя файла.
rasterPar	Указатель на интерфейс ksRasterFormatParam или IRasterFormatParam, определяющий параметры конвертации в растровый формат.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи
Примечания:

Метод позволяет сохранить документ в растровый формат (BMP, GIF, JPG, PNG, TIF, TGA, PCX) без сжатия, с заданными свойствами. Подробнее см. описание интерфейса ksRasterFormatParam. Для API экспортных функций - метод ksSaveAsToUncompressedRasterFormat.


ksDocument3D::AddImportedSurfaces
IDocument3D::AddImportedSurfaces

Cохранить документ в растровый формат.

Синтаксис Automation:

LPDISPATCH AddImportedSurfaces (BSTR fileName, BOOL together)

Синтаксис COM:

LPENTITYCOLLECTION AddImportedSurfaces (LPOLESTR fileName, BOOL together)

Входные параметры:

fileName	имя файла (*.igs, *.sat) импортированной поверхности,
together	Если параметр имеет значение TRUE, то импортированные поверхности будут сшиваться; если параметр имеет значение FALSE, то будет импортирован массив импортированных поверхностей.
Возвращаемое значение:

Указатель на интерфейс ksEntityCollection или IEntityCollection,	- в случае успеха,
NULL	- в случае неудачи
Примечания:

В документ можно вставить импортированную поверхность из файла.


ksDocument3D::GetDocument3DNotify

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

Синтаксис Automation:

Document3DNotify* GetDocument3DNotify();

Возвращаемое значение:

Указатель на интерфейс Document3DNotify	- в случае успеха,


ksDocument3D::SetPartFromFileEx
IDocument3D::SetPartFromFileEx

Вставить в модель компонент из файла или из библиотеки моделей.

Синтаксис Automation:

BOOL SetPartFromFileEx (BSTR fileName, LPDISPATCH part, BOOL externalFile, BOOL redraw);

Синтаксис COM:

BOOL SetPartFromFileEx (LPOLESTR fileName, LPPART part, BOOL externalFile, BOOL redraw);

Входные параметры:

fileName	- имя файла, из которого будет вставлен компонент,
part	- указатель на интерфейс компонента, который будет вставлен в документ (ksPart или IPart),
externalFile	- признак сохранения связи с файлом-источником: (TRUE - вставка со ссылкой на внешний файл,  FALSE - вставка "телом", без сохранения ссылки на источник),
redraw	- признак перестроения документа после вставки компонента: (TRUE - перестроить документ, FALSE - не перестраивать).
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи
Примечания:

При вставке из файла указывается полный путь к файлу. При вставке из библиотеки моделей указывается полный путь к файлу библиотеки и путь внутри библиотеки моделей (например, "C:\\standard.l3d|Крепежные элементы|Болты|Болт_1").


ksDocument3D::GetInterface
IDocument3D::GetInterface

Получить интерфейс 3D объекта по типу.

Синтаксис Automation:

LPDISPATCH GetInterface (long o3dType);

Синтаксис COM:

LPUNKNOWN GetInterface (long o3dType);

Входные параметры:

o3dType	- тип интерфейса.
Возвращаемое значение:

Указатель на заданный интерфейс	- в случае успеха,
NULL	- в случае неудачи
Список интерфейсов возвращаемых функцией GetInterface.


Интерфейсы возвращаемые функцией ksDocument3D::GetInterface
Интерфейсы, возвращаемые функцией
ksDocument3D::GetInterface

Идентификатор объекта	Название объекта	Интерфейс
o3d_coordinate3dCollection	Интерфейс колекции координат	ksCoordinate3dCollection
o3d_faceCollection	Интерфейс колекции граней	ksFaceCollection


Интерфейсы ksEntity, IEntity
ksEntity,
IEntity

Интерфейс элемента модели (оси, плоскости, формообразующего элемента)

ksEntity	- интерфейс Automation
IEntity	- интерфейс COM
Свойства...

Методы...


ksEntity::props
ksEntity
свойства

hidden

name

type


ksEntity::methods
ksEntity
методы

ColorParam

Create

GetAdvancedColor

GetDefinition

GetFeature

GetParent

IsCreated

IsIt

SetAdvancedColor

Update


ksEntity::hidden
IEntity::hidden

Состояние видимости объекта.

Тип данных - BOOL.

Значения свойства:

TRUE	- объект скрытый,
FALSE	- объект видимый.


ksEntity::name
IEntity::name

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

Тип данных - строка.


ksEntity::type
IEntity::type

Тип элемента трехмерной модели.

Тип данных - short.

Значения свойства...

Примечание:

1. Числовой идентификатор типа объекта не должен превышать идентификатора объекта, всегда последнего из Entity.

2. Свойство только для чтения.


Элементы модели
Элементы, существующие в модели по умолчанию

o3d_planeXOY	= 1	плоскость XOY
o3d_planeXOZ	= 2	плоскость XOZ
o3d_planeYOZ	= 3	плоскость YOZ
o3d_pointCS	= 4	точка начала системы координат


ksEntity::IsCreated
IEntity::IsCreated

Получить признак существования объекта.

Синтаксис Automation:

BOOL IsCreated();

Синтаксис COM:

BOOL IsCreated();

Возвращаемое значение:

TRUE	- если объект уже создан.


ksEntity::GetDefinition
IEntity::GetDefinition

Получить указатель на интерфейс параметров объектов и элементов.

Синтаксис Automation:

LPDISPATCH GetDefinition();

Возвращаемое значение:

	указатель на интерфейс IDispatch.
Синтаксис COM:

LPUNKNOWN GetDefinition();

Возвращаемое значение:

	указатель на интерфейс IUnknown.
Примечание:

Для доступа к параметрам объекта полученный интерфейс необходимо привести к соответствующему типу.

Интерфейсы параметров объектов и элементов...


Интерфейсы параметров
Интерфейсы параметров объектов и элементов

Элементы детали...

Вспомогательные оси...

Вспомогательные плоскости...

Формообразующие элементы...


Элементы детали

ksEdgeDefinition  ребро

ksFaceDefinition  грань

ksSketchDefinition  эскиз


Вспомогательные оси:
Вспомогательные оси

ksAxis2PointsDefinition ось через две точки

ksAxis2PlanesDefinition ось на пересечении двух плоскостей

ksAxisOperationsDefinition ось операции

ksAxisEdgeDefinition ось через ребро


Вспомогательные плоскости

ksPlaneOffsetDefinition смещенная плоскость

ksPlane3PointsDefinition плоскость через три вершины

ksPlaneAngleDefinition плоскость под углом к другой плоскости


Формообразующие элементы

ksBaseExtrusionDefinition основание - элемент выдавливания

ksBossExtrusionDefinition приклеенный элемент выдавливания

ksCutExtrusionDefinition вырезанный элемент выдавливания

ksBaseRotatedDefinition основание - элемент вращения

ksBossRotatedDefinition приклеенный элемент вращения

ksCutRotatedDefinition вырезанный элемент вращения

ksBaseLoftDefinition основание - элемент по сечениям

ksBossLoftDefinition приклеенный элемент по сечениям

ksCutLoftDefinition вырезанный элемент по сечениям

ksFilletDefinition скругление

ksChamferDefinition фаска


ksEntity::GetParent
IEntity::GetParent

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

Синтаксис Automation:

LPDISPATCH GetParent()

Синтаксис COM:

LPPART GetParent();

Возвращаемое значение:

	указатель на интерфейс ksPart или IPart.


ksEntity::Create
IEntity::Create

Создать объект в модели.

Синтаксис Automation:

BOOL Create();

Синтаксис COM:

BOOL Create();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Данный метод необходимо вызвать для создания объекта в модели после создания интерфейса с помощью метода NewEntity и изменения параметров создаваемого объекта.

Если до вызова данного метода свойства объекта не изменены, то объект создается с параметрами, принятыми по умолчанию.

Если объект уже создан, то функция вызовет метод Update.


ksEntity::Update
IEntity::Update

Изменить свойства объекта (используя ранее установленные свойства).

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

BOOL Update();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

1. Изменение параметров объекта через интерфейс его параметров не приводит к перестроению модели.

2. Для перестроения объекта в модели (активизации текущих изменений) необходимо вызвать данный метод.

Если свойству ksPart::needRebuild компонента, которому принадлежит данный объект, установлено значение TRUE, то вызов данного метода приведет также к перестроению модели. Если свойству ksPart::needRebuild установлено значение FALSE, то данный метод только передаст изменения свойств модельному объекту, и для реального (визуального) изменения этих свойств нужно вызвать метод ksPart::RebuildModelEx, с параметром redraw равным TRUE.

3. Объект должен быть предварительно создан методом Create.


ksEntity::ColorParam
IEntity::ColorParam

Получить указатель на интерфейс параметров цвета и визуальных свойств объекта.

Синтаксис Automation:

LPDISPATCH ColorParam();

Синтаксис COM:

LPCOLORPARAM ColorParam();

Возвращаемое значение:

	указатель на интерфейс ksColorParam или IColorParam.


ksEntity::GetAdvancedColor
IEntity::GetAdvancedColor

Получить параметры цвета и визуальных свойств объекта.

Синтаксис Automation:

BOOL GetAdvancedColor (long* color,

double* ambient,

double* diffuse,

double* specularity,

double* shininess,

double* transparency,

double* emission);

Синтаксис COM:

BOOL GetAdvancedColor (COLORREF* color,

double* ambient,

double* diffuse,

double* specularity,

double* shininess,

double* transparency,

double* emission);

Выходные параметры:

color	- цвет,
ambient	- общий свет,
diffuse	- диффузия,
specularity	- зеркальность,
shininess	- блеск,
transparency	- прозрачность,
emission	- излучение.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksEntity::SetAdvancedColor
IEntity::SetAdvancedColor

Изменить параметры цвета и визуальных свойств объекта.

Синтаксис Automation:

BOOL SetAdvancedColor (long color,

double ambient,

double diffuse,

double specularity,

double shininess,

double transparency,

double emission);

Синтаксис COM:

BOOL SetAdvancedColor (COLORREF color,

double ambient,

double diffuse,

double specularity,

double shininess,

double transparency,

double emission);

Входные параметры:

color	- цвет,
ambient	- общий свет,
diffuse	- диффузия,
specularity	- зеркальность,
shininess	- блеск,
transparency	- прозрачность,
emission	- излучение.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksEntity::IsIt
IEntity::IsIt

Проверить объект на соответствие указанному типу.

Синтаксис Automation:

BOOL IsIt (short objType);

Синтаксис COM:

BOOL IsIt (short objType)

Входной параметр:

objType	- тип объекта.
Возвращаемое значение:

TRUE	- если тип объекта указан правильно.
Типы объектов...

Примечание:

Числовой идентификатор типа объекта не должен превышать идентификатора объекта, всегда последнего из Entity.


ksEntity::GetFeature
IEntity::GetFeature

Получить указатель на интерфейс параметров цвета и визуальных свойств объекта.

Синтаксис Automation:

LPDISPATCH GetFeature();

Синтаксис COM:

LPFEATURE GetFeature();

Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature - объект дерева, связанный с данным объектом.


Интерфейсы ksExtrusionParam, IExtrusionParam
ksExtrusionParam,
IExtrusionParam

Интерфейс параметров элемента выдавливания.

ksExtrusionParam	- интерфейс Automation
IExtrusionParam	- интерфейс COM
Свойства...


ksExtrusionParam::props
ksExtrusionParam
свойства

depthNormal

depthReverse

direction

draftOutwardNormal

draftOutwardReverse

draftValueNormal

draftValueReverse

typeNormal

typeReverse


ksExtrusionParam::typeNormal
IExtrusionParam::typeNormal

Тип выдавливания в прямом направлении.

Тип данных - short.

Типы выдавливания...


ksExtrusionParam::depthNormal
IExtrusionParam::depthNormal

Глубина выдавливания в прямом направлении.

Тип данных - double.


ksExtrusionParam::draftValueNormal
IExtrusionParam::draftValueNormal

Угол уклона в прямом направлении.

Тип данных - double.


ksExtrusionParam::draftOutwardNormal
IExtrusionParam::draftOutwardNormal

Признак уклона наружу в прямом направлении.

Тип данных - BOOL.

Значения свойства:

TRUE	- уклон наружу,
FALSE	- уклон внутрь.


ksExtrusionParam::typeReverse
IExtrusionParam::typeReverse

Тип выдавливания в обратном направлении.

Тип данных - short.

Типы выдавливания...


ksExtrusionParam::depthReverse
IExtrusionParam::depthReverse

Глубина выдавливания в обратном направлении.

Тип данных - double.


ksExtrusionParam::draftValueReverse
IExtrusionParam::draftValueReverse

Угол уклона в обратном направлении.

Тип данных - double.


ksExtrusionParam::draftOutwardReverse
IExtrusionParam::draftOutwardReverse

Признак уклона наружу в обратном направлении.

Тип данных - BOOL.

Значения свойства:

TRUE	- уклон наружу,
FALSE	- уклон внутрь.


ksExtrusionParam::direction
IExtrusionParam::direction

Направление выдавливания.

Прямое направление совпадает с нормалью, проведенной к плоскости эскиза.

Для вырезаемого элемента выдавливания направление противоположно нормали.

Примечание:

Нормаль, проведенная к грани, всегда направлена наружу ("из тела детали").

Типы направлений...


Интерфейсы ksFaceDefinition, IFaceDefinition
ksFaceDefinition,
IFaceDefinition

Интерфейс свойств грани.

ksFaceDefinition	- интерфейс Automation
IFaceDefinition	- интерфейс COM
Примечание:

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

Свойства...

Методы...


ksFaceDefinition::props
ksFaceDefinition
свойства

normalOrientation


ksFaceDefinition::methods
ksFaceDefinition
методы

ConnectedFaceCollection

EdgeCollection

GetArea

GetCylinderParam

GetNextFace

GetOwnerEntity

GetSurface

GetTessellation

IsCone

IsConnectedWith

IsCylinder

IsNurbsSurface

IsPlanar

IsRevolved

IsSphere

IsSwept

IsTorus

LoopCollection


ksFaceDefinition::normalOrientation
IFaceDefinition::normalOrientation

Признак ориентации нормали.

Тип данных - BOOL.

Синтаксис Automation:

normalOrient = iFaceDefinition.normalOrientation	Получить свойство (*)
iFaceDefinition.GetNormalOrientation()	Получить свойство (**)
Возвращаемое значение:

TRUE	- направление нормали совпадает с направлением нормали атематической поверхности.
FALSE	- направление нормали не совпадает с направлением нормали атематической поверхности ksSurface.
Примечание:

Свойство доступно только для чтения.


ksFaceDefinition::IsPlanar
IFaceDefinition::IsPlanar

Определить, плоская ли грань.

Синтаксис Automation:

BOOL IsPlanar();

Синтаксис COM:

BOOL IsPlanar();

Возвращаемое значение:

TRUE	- грань плоская,
FALSE	- грань не плоская.


ksFaceDefinition::IsCone
IFaceDefinition::IsCone

Определить, коническая ли грань.

Синтаксис Automation:

BOOL IsCone();

Синтаксис COM:

BOOL IsCone();

Возвращаемое значение:

TRUE	- грань коническая,
FALSE	- грань не коническая.


ksFaceDefinition::IsCylinder
IFaceDefinition::IsCylinder

Определить, цилиндрическая ли грань.

Синтаксис Automation:

BOOL IsCylinder();

Синтаксис COM:

BOOL IsCylinder();

Возвращаемое значение:

TRUE	- грань цилиндрическая,
FALSE	- грань не цилиндрическая.


ksFaceDefinition::GetCylinderParam
IFaceDefinition::GetCylinderParam

Получить параметры цилиндрической грани.

Синтаксис Automation:

BOOL GetCylinderParam (double* h,

double* r);

Синтаксис COM:

BOOL GetCylinderParam (double * h,

double * r);

Выходные параметры:

h	- высота цилиндра,
r	- радиус цилиндра
Возвращаемое значение:

TRUE	- в случае успеха,


ksFaceDefinition::GetOwnerEntity
IFaceDefinition::GetOwnerEntity

Получить указатель на объект, породивший цилиндрическую грань.

Синтаксис Automation:

LPDISPATCH GetOwnerEntity();

Синтаксис COM:

LPENTITY GetOwnerEntity();

Возвращаемое значение:

	- указатель на интерфейс объекта ksEntity или IEntity.


ksFaceDefinition::GetSurface
IFaceDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPSURFACE GetSurface();

Возвращаемое значение:

	- указатель на интерфейс ksSurface или ISurface.


ksFaceDefinition::LoopCollection
IFaceDefinition::LoopCollection

Получить указатель на интерфейс массива циклов.

Синтаксис Automation:

LPDISPATCH LoopCollection();

Синтаксис COM:

LPLOOPCOLLECTION LoopCollection();

Возвращаемое значение:

	- указатель на интерфейс ksLoopCollection или ILoopCollection.


ksFaceDefinition::IsConnectedWith
IFaceDefinition::IsConnectedWith

Получить параметры цилиндрической грани.

Синтаксис Automation:

BOOL IsConnectedWith (LPDISPATCH other);

Синтаксис COM:

BOOL IsConnectedWith (LPFACEDEFINITION other);

Входные параметры:

	указатель на интерфейс ksFaceDefinition или IFaceDefinition другой грани.
Возвращаемое значение:

TRUE	- если грани связаны.
FALSE	- если грани не связаны.


ksFaceDefinition::EdgeCollection
ksFaceDefinition::ConnectedFaceCollection
IFaceDefinition::ConnectedFaceCollection

Получить указатель на интерфейс массива граней, стыкующихся с данной гранью.

Синтаксис Automation:

LPDISPATCH ConnectedFaceCollection();

Синтаксис COM:

LPFACECOLLECTION ConnectedFaceCollection();

Возвращаемое значение:

	- указатель на интерфейс ksFaceCollection или IFaceCollection.


ksFaceDefinition::ConnectedFaceCollection
ksFaceDefinition::EdgeCollection
IFaceDefinition::EdgeCollection

Получить указатель на интерфейс массива ребер, ограничивающих грань.

Синтаксис Automation:

LPDISPATCH EdgeCollection();

Синтаксис COM:

LPEDGECOLLECTION EdgeCollection();

Возвращаемое значение:

	- указатель на интерфейс ksEdgeCollection или IEdgeCollection.


ksFaceDefinition::GetNextFace
IFaceDefinition::GetNextFace

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

Синтаксис Automation:

LPDISPATCH GetNextFace();

Синтаксис COM:

LPFACEDEFINITION GetNextFace();

Возвращаемое значение:

	- указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksFaceDefinition::IsTorus
IFaceDefinition::IsTorus

Определить, является ли грань тором.

Синтаксис Automation:

BOOL IsTorus();

Синтаксис COM:

BOOL IsTorus();

Возвращаемое значение:

TRUE	- грань является тором,
FALSE	- грань не является тором.


ksFaceDefinition::IsSphere
IFaceDefinition::IsSphere

Определить, является ли грань сферической.

Синтаксис Automation:

BOOL IsSphere();

Синтаксис COM:

BOOL IsSphere();

Возвращаемое значение:

TRUE	- грань является сферической,
FALSE	- грань не является сферической.


ksFaceDefinition::IsNurbsSurface
IFaceDefinition::IsNurbsSurface

Определить, является ли грань NURBS поверхностью.

Синтаксис Automation:

BOOL IsNurbsSurface();

Синтаксис COM:

BOOL IsNurbsSurface();

Возвращаемое значение:

TRUE	- грань является NURBS поверхностью,
FALSE	- грань не является NURBS поверхностью.


ksFaceDefinition::IsRevolved
IFaceDefinition::IsRevolved

Определить, является ли грань поверхностью вращения.

Синтаксис Automation:

BOOL IsRevolved();

Синтаксис COM:

BOOL IsRevolved();

Возвращаемое значение:

TRUE	- грань является поверхностью вращения,
FALSE	- грань не является поверхностью вращения.


ksFaceDefinition::IsSwept
IFaceDefinition::IsSwept

Определить, задается ли грань поверхностью по траектории.

Синтаксис Automation:

BOOL IsSwept();

Синтаксис COM:

BOOL IsSwept();

Возвращаемое значение:

TRUE	- грань задается поверхностью по траектории,
FALSE	- грань не задается поверхностью по траектории.


ksFaceDefinition::GetTessellation
IFaceDefinition::GetTessellation

Получить указатель на интерфейс триангуляции.

Синтаксис Automation:

LPDISPATCH GetTessellation();

Синтаксис COM:

LPTESSELLATION GetTessellation();

Возвращаемое значение:

	- указатель на интерфейс ksTessellation или ITessellation.


ksFaceDefinition::GetArea
IFaceDefinition::GetArea

Получить площадь грани.

Синтаксис Automation:

double GetArea (long bitVector );

Синтаксис COM:

double GetArea (unsigned long bitVector );

Входные параметры:

bitVector	- единицы измерения в интервале [ST_MIX_MM..ST_MIX_M].
Возвращаемое значение:

площадь грани	- в случае успешного завершения.
0	- в случае неудачи.


Интерфейсы ksFilletDefinition, IFilletDefinition
ksFilletDefinition,
IFilletDefinition

Интерфейс параметров элемента "скругление"

ksFilletDefinition	- интерфейс Automation
ksFilletDefinition	- интерфейс COM
Свойства...

Методы...


ksFilletDefinition::props
ksFilletDefinition
свойства

radius

tangent


ksFilletDefinition::methods
ksFilletDefinition
методы

Array


ksFilletDefinition::radius
IFilletDefinition::radius

Радиус скругления.

Тип данных - double.


ksFilletDefinition::tangent
IFilletDefinition::tangent

Признак продолжения скругления по касательным ребрам.

Тип данных - BOOL.

Значения свойства:

TRUE	- продолжать скругление по касательным ребрам,
FALSE	- не продолжать скругление по касательным ребрам.


ksFilletDefinition::Array
IFilletDefinition::Array

Получить указатель на интерфейс массива скругляемых объектов (граней и ребер).

Синтаксис Automation:

LPDISPATCH Array();

Синтаксис COM:

LPENTITYCOLLECTION Array();

Возвращаемое значение:

	указатель на интерфейс массива объектов ksEntityCollection или IEntityCollection.
Примечание:

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


Интерфейсы ksInclineDefinition, IInclineDefinition
ksInclineDefinition,
IInclineDefinition

Интерфейс уклона.

ksInclineDefinition	- интерфейс Automation
IInclineDefinition	- интерфейс COM
Свойства...

Методы...


ksInclineDefinition::props
ksInclineDefinition
свойства

angle

direction


ksInclineDefinition::methods
ksInclineDefinition
методы

FaceArray

GetPlane

SetPlane


ksInclineDefinition::FaceArray
IInclineDefinition::FaceArray

Получить указатель на интерфейс массива уклоняемых граней.

Синтаксис Automation:

LPDISPATCH FaceArray();

Синтаксис COM:

LPENTITYCOLLECTION FaceArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива граней ksEntityCollection или IEntityCollection.


ksInclineDefinition::GetPlane
IInclineDefinition::GetPlane

Получить указатель на интерфейс плоскости основания уклона.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс плоского объекта ksEntity или IEntity.


ksInclineDefinition::SetPlane
IInclineDefinition::SetPlane

Установить указатель на интерфейс плоскости основания уклона.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс плоскости операции ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksInclineDefinition::angle
IInclineDefinition::angle

Угол уклона.

Тип данных - double.

Синтаксис Automation:

angle = iIncline.angle	Получить свойство (*)
iIncline.angle = angle	Установить свойство (*)
angle = iIncline.GetAngle()	Получить свойство (**)
iIncline.SetAngle(angle)	Установить свойство (**)


ksInclineDefinition::direction
IInclineDefinition::direction

Направление уклона.

Тип данных - BOOL.

Значения свойства:

TRUE	- наружу,
FALSE	- внутрь.
Синтаксис Automation:

direction = iIncline.direction	Получить свойство (*)
iIncline.direction = direction	Установить свойство (*)
direction = iIncline.GetDirection()	Получить свойство (**)
iIncline.SetDirection(direction)	Установить свойство (**)


Интерфейсы ksMateConstraint, IMateConstraint
ksMateConstraint,
IMateConstraint

Интерфейс структуры параметров сопряжения.

ksMateConstraint	- интерфейс Automation
ImateConstraint	- интерфейс COM
Методы...


ksMateConstraint::methods
ksMateConstraint
методы

GetFeature


ksMateConstraint::GetFeature
IMateConstraint::GetFeature

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

Синтаксис Automation:

LPDISPATCH GetFeature();

Синтаксис COM:

LPFEATURE GetFeature();

Возвращаемое значение:

	Указатель на интерфейс ksFeature или IFeature.


Интерфейсы ksMeshCopyDefinition, IMeshCopyDefinition
ksMeshCopyDefinition,
IMeshCopyDefinition

Интерфейс операции копирования по сетке.

ksMeshCopyDefinition	- интерфейс Automation
IMeshCopyDefinition	- интерфейс COM
Свойства...

Методы...


ksMeshCopyDefinition::props
ksMeshCopyDefinition
свойства

angle1

angle2

count1

count2

factor1

factor2

geomArray

insideFlag

step1

step2


ksMeshCopyDefinition::methods
ksMeshCopyDefinition
методы

DeletedCollection

GetAxis1

GetAxis2

GetCopyParamAlongAxis

OperationArray

SetAxis1

SetAxis2

SetCopyParamAlongAxis


ksMeshCopyDefinition::angle1
IMeshCopyDefinition::angle1

Угол наклона первой оси в текущей системе координат.

Тип данных - double.

Синтаксис Automation:

angle1 = iCopyMesh.angle1	Получить свойство (*)
iCopyMesh.angle1 = angle1	Установить свойство (*)
angle1 = iCopyMesh.GetAngle1()	Получить свойство (**)
iCopyMesh.SetAngle1(angle1)	Установить свойство (**)


ksMeshCopyDefinition::count1
IMeshCopyDefinition::count1

Количество копий вдоль первой оси.

Тип данных - long.

Синтаксис Automation:

count1 = iCopyMesh.count1	Получить свойство (*)
iCopyMesh.count1 = count1	Установить свойство (*)
count1 = iCopyMesh.GetCount1()	Получить свойство (**)
iCopyMesh.SetCount1(count1)	Установить свойство (**)


ksMeshCopyDefinition::step1
IMeshCopyDefinition::step1

Шаг вдоль первой оси.

Тип данных - double.

Синтаксис Automation:

step1 = iCopyMesh.step1	Получить свойство (*)
iCopyMesh.step1 = stept1	Установить свойство (*)
step1 = iCopyMesh.GetStep1()	Получить свойство (**)
iCopyMesh.SetStep1(step1)	Установить свойство (**)


ksMeshCopyDefinition::factor1
IMeshCopyDefinition::factor1

Признак полного шага вдоль первой оси.

Тип данных - BOOL.

Значения свойства:

TRUE	- свойство step1 устанавливает расстояние между крайними элементами вдоль первой оси,
FALSE	свойство step1 устанавливает расстояние между соседними элементами вдоль первой оси.
Синтаксис Automation:

factor1 = iCopyMesh.factor1	Получить свойство (*)
iCopyMesh.factor1 = factor1	Установить свойство (*)
factor1 = iCopyMesh.GetFactor1()	Получить свойство (**)
iCopyMesh.SetFactor1(factor1)	Установить свойство (**)


ksMeshCopyDefinition::angle2
IMeshCopyDefinition::angle2

Угол наклона второй оси относительно первой.

Тип данных - double.

Синтаксис Automation:

angle2 = iCopyMesh.angle2	Получить свойство (*)
iCopyMesh.angle2 = angle2	Установить свойство (*)
angle2 = iCopyMesh.GetAngle2()	Получить свойство (**)
iCopyMesh.SetAngle2(angle2)	Установить свойство (**)


ksMeshCopyDefinition::count2
IMeshCopyDefinition::count2

Количество копий вдоль второй оси.

Тип данных - long.

Синтаксис Automation:

count2 = iCopyMesh.count2	Получить свойство (*)
iCopyMesh.count2 = count2	Установить свойство (*)
count2 = iCopyMesh.GetCount2()	Получить свойство (**)
iCopyMesh.SetCount2(count2)	Установить свойство (**)


ksMeshCopyDefinition::step2
IMeshCopyDefinition::step2

Шаг вдоль второй оси.

Тип данных - double.

Синтаксис Automation:

step2 = iCopyMesh.step2	Получить свойство (*)
iCopyMesh.step2 = stept2	Установить свойство (*)
step2 = iCopyMesh.GetStep2()	Получить свойство (**)
iCopyMesh.SetStep2(step2)	Установить свойство (**)


ksMeshCopyDefinition::factor2
IMeshCopyDefinition::factor2

Признак полного шага вдоль второй оси.

Тип данных - BOOL.

Значения свойства:

TRUE	- свойство step2 устанавливает расстояние между крайними элементами вдоль второй оси,
FALSE	- свойство step2 устанавливает расстояние между соседними элементами вдоль второй  оси.
Синтаксис Automation:

factor2 = iCopyMesh.factor2	Получить свойство (*)
iCopyMesh.factor2 = factor2	Установить свойство (*)
factor2 = iCopyMesh.GetFactor2()	Получить свойство (**)
iCopyMesh.SetFactor2(factor2)	Установить свойство (**)


ksMeshCopyDefinition::insideFlag
IMeshCopyDefinition::insideFlag

Признак наличия копий внутри сетки.

Тип данных - BOOL.

Значения свойства:

TRUE	- оставлять копии во всех узлах сетки,
FALSE	- оставлять копии по периметру сетки.
Синтаксис Automation:

insideFlag = iCopyMesh.insideFlag	Получить свойство (*)
iCopyMesh.insideFlag = insideFlag	Установить свойство (*)
insideFlag = iCopyMesh.GetInsideFlag()	Получить свойство (**)
iCopyMesh.SetInsideFlag(insideFlag)	Установить свойство (**)


ksMeshCopyDefinition::geomArray
IMeshCopyDefinition::geomArray

Признак использования геометрического копирования.

Тип данных - BOOL.

Значения свойства:

TRUE	- использовать геометрическое копирование. Содержимое оперций источников( грани, ребра ) копируется без пересчета. В простых случаях операция ускоряется, но возможны ошибки при копировании скруглений и фасок на криволинейных поверхностях.
FALSE	- при копировании все операции-источники строятся заново, т.е. производится полноценный расчет.
Синтаксис Automation:

geomArray = iMeshCopyDefinition.geomArray	Получить свойство (*)
iMeshCopyDefinition.geomArray = geomArray	Установить свойство (*)
geomArray = iMeshCopyDefinition.GetGeomArray()	Получить свойство (**)
iMeshCopyDefinition.SetGeomArray( geomArray)	Установить свойство (**)


ksMeshCopyDefinition::OperationArray
IMeshCopyDefinition::OperationArray

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

Синтаксис Automation:

IDispatch * OperationArray();

Синтаксис COM:

LPENTITYCOLLECTION OperationArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива элементов, подлежащих копированию ksEntityCollection или IEntityCollection.


ksMeshCopyDefinition::GetCopyParamAlongAxis
IMeshCopyDefinition::GetCopyParamAlongAxis

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

Синтаксис Automation:

BOOL GetCopyParamAlongAxis (BOOL firstAxis,

double * angle,

long * count,

double * step,

BOOL * factor);

Синтаксис COM:

BOOL GetCopyParamAlongAxis (BOOL firstAxis,

double * angle,

long * count,

double * step,

BOOL * factor);

Выходные параметры:

firstAxis	- ось: TRUE - первая, FALSE - вторая,
angle	- угол наклона оси,
count	- количество копий,
step	- шаг вдоль оси,
factor	- признак полного шага.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksMeshCopyDefinition::SetCopyParamAlongAxis
IMeshCopyDefinition::SetCopyParamAlongAxis

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

Синтаксис Automation:

BOOL SetCopyParamAlongAxis (BOOL firstAxis,

double angle,

long count,

double step,

BOOL factor);

Синтаксис COM:

BOOL SetCopyParamAlongAxis (BOOL firstAxis,

double angle,

long count,

double step,

BOOL factor);

Входные параметры:

firstAxis	- ось: TRUE - первая, FALSE - вторая,
angle	- угол наклона оси,
count	- количество копий,
step	- шаг вдоль оси,
factor	- признак полного шага.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksMeshCopyDefinition::DeletedCollection
IMeshCopyDefinition::DeletedCollection

Получить массив индексов удаленных копий.

Синтаксис Automation:

LPDISPATCH DeletedCollection();

Синтаксис COM:

LPDELETEDCOPYCOLLECTION DeletedCollection();

Возвращаемое значение:

указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection	- в случае успешного завершения.
NULL	- в случае неудачи
Примечание:

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


ksMeshCopyDefinition::GetAxis1
IMeshCopyDefinition::GetAxis1

Получить первую ось операции.

Синтаксис Automation:

LPDISPATCH GetAxis1();

Синтаксис COM:

LPENTITY GetAxis1();

Возвращаемое значение:

указатель на интерфейс ksEntity или IEntity.	- в случае успешного завершения,
NULL	- в случае неудачи.
Примечание:

Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 1 определена, то игнорируется свойство angle1 (Угол наклона 1-ой оси).


ksMeshCopyDefinition::SetAxis1
IMeshCopyDefinition::SetAxis1

Задать первую ось операции.

Синтаксис Automation:

BOOL SetAxis1 (LPDISPATCH entity);

Синтаксис COM:

BOOL SetAxis1 (LPENTITY);

Входные параметры:

entity	указатель на интерфейс ksEntity или IEntity (ось или прямолинейное ребро).
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 1 определена, то игнорируется свойство angle1 (Угол наклона 1-ой оси).


ksMeshCopyDefinition::GetAxis2
IMeshCopyDefinition::GetAxis2

Получить вторую ось операции.

Синтаксис Automation:

LPDISPATCH GetAxis2();

Синтаксис COM:

LPENTITY GetAxis2();

Возвращаемое значение:

указатель на интерфейс ksEntity или IEntity.	- в случае успешного завершения,
NULL	- в случае неудачи.
Примечание:

Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 1 определена, то игнорируется свойство angle2 (Угол наклона 2-ой оси).


ksMeshCopyDefinition::SetAxis2
IMeshCopyDefinition::SetAxis2

Задать вторую ось операции.

Синтаксис Automation:

BOOL SetAxis2 (LPDISPATCH entity);

Синтаксис COM:

BOOL SetAxis2 (LPENTITY);

Входные параметры:

entity	указатель на интерфейс ksEntity или IEntity (ось или прямолинейное ребро).
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Направление сетки можно определить, указывая ребра или оси, вдоль которых строится сетка. Если ось 1 определена, то игнорируется свойство angle2 (Угол наклона 2-ой оси).


Интерфейсы ksMeshPartArrayDefinition, IMeshPartArrayDefinition
ksMeshPartArrayDefinition,
IMeshPartArrayDefinition

Интерфейс операции копирования компонентов сборки по параллелограммной сетке.

ksMeshPartArrayDefinition	- интерфейс Automation
IMeshPartArrayDefinition	- интерфейс COM
Свойства...

Методы...


ksMeshPartArrayDefinition::props
ksMeshPartArrayDefinition
свойства

angle1

angle2

count1

count2

factor1

factor2

insideFlag

step1

step2


ksMeshPartArrayDefinition::methods
ksMeshPartArrayDefinition
методы

DeletedCollection

GetAxis1

GetAxis2

GetCopyParamAlongAxis

PartArray

SetAxis1

SetAxis2

SetCopyParamAlongAxis


ksMeshPartArrayDefinition::angle1
IMeshPartArrayDefinition::angle1

Угол наклона первой оси в текущей системе координат.

Тип данных - double.

Синтаксис Automation:

angle1 = iMeshArray.angle1	Получить свойство (*)
iMeshArray.angle1 = angle1	Установить свойство (*)
angle1 = iMeshArray.GetAngle1()	Получить свойство (**)
iMeshArray.SetAngle1(angle1)	Установить свойство (**)


ksMeshPartArrayDefinition::count1
IMeshPartArrayDefinition::count1

Количество копий вдоль первой оси.

Тип данных - long.

Синтаксис Automation:

count1 = iMeshArray.count1	Получить свойство (*)
iMeshArray.count1 = count1	Установить свойство (*)
count1 = iMeshArray.GetCount1()	Получить свойство (**)
iMeshArray.SetCount1(count1)	Установить свойство (**)


ksMeshPartArrayDefinition::step1
IMeshPartArrayDefinition::step1

Шаг копирования вдоль первой оси.

Тип данных - double.

Синтаксис Automation:

step1 = iMeshArray.step1	Получить свойство (*)
iMeshArray.step1 = stept1	Установить свойство (*)
step1 = iMeshArray.GetStep1()	Получить свойство (**)
iMeshArray.SetStep1(step1)	Установить свойство (**)


ksMeshPartArrayDefinition::factor1
IMeshPartArrayDefinition::factor1

Признак полного шага копирования вдоль первой оси.

Тип данных - BOOL.

Значения свойства:

TRUE	свойство step1 устанавливает расстояние между крайними элементами вдоль 1-ой оси,
FALSE	свойство step1 устанавливает расстояние между соседними элементами вдоль 1-ой оси.
Синтаксис Automation:

factor1 = iMeshArray.factor1	Получить свойство (*)
iMeshArray.factor1 = factor1	Установить свойство (*)
factor1 = iMeshArray.GetFactor1()	Получить свойство (**)
iMeshArray.SetFactor1(factor1)	Установить свойство (**)


ksMeshPartArrayDefinition::angle2
IMeshPartArrayDefinition::angle2

Угол наклона второй оси сетки относительно первой.

Тип данных - double.

Синтаксис Automation:

angle2 = iMeshArray.angle2	Получить свойство (*)
iMeshArray.angle2 = angle2	Установить свойство (*)
angle2 = iMeshArray.GetAngle2()	Получить свойство (**)
iMeshArray.SetAngle2(angle2)	Установить свойство (**)


ksMeshPartArrayDefinition::count2
IMeshPartArrayDefinition::count2

Количество копий вдоль второй оси.

Тип данных - long.

Синтаксис Automation:

count2 = iMeshArray.count2	Получить свойство (*)
iMeshArray.count2 = count2	Установить свойство (*)
count2 = iMeshArray.GetCount2()	Получить свойство (**)
iMeshArray.SetCount2(count2)	Установить свойство (**)


ksMeshPartArrayDefinition::step2
IMeshPartArrayDefinition::step2

Шаг копирования вдоль второй оси.

Тип данных - double.

Синтаксис Automation:

step2 = iMeshArray.step2	Получить свойство (*)
iMeshArray.step2 = stept2	Установить свойство (*)
step2 = iMeshArray.GetStep2()	Получить свойство (**)
iMeshArray.SetStep2(step2)	Установить свойство (**)


ksMeshPartArrayDefinition::factor2
IMeshPartArrayDefinition::factor2

Признак полного шага копирования вдоль второй оси.

Тип данных - BOOL.

Значения свойства:

TRUE	свойство step2 устанавливает расстояние между крайними элементами вдоль второй оси,
FALSE	свойство step2 устанавливает расстояние между соседними элементами вдоль второй оси.
Синтаксис Automation:

factor2 = iMeshArray.factor2	Получить свойство (*)
iMeshArray.factor2 = factor2	Установить свойство (*)
factor2 = iMeshArray.GetFactor2()	Получить свойство (**)
iMeshArray.SetFactor2(factor2)	Установить свойство (**)


ksMeshPartArrayDefinition::insideFlag
IMeshPartArrayDefinition::insideFlag

Признак наличия копий внутри сетки.

Тип данных - BOOL.

Значения свойства:

TRUE	- оставлять экземпляры копий во всех узлах сетки,
FALSE	- оставлять экземпляры копий только по периметру сетки.
Синтаксис Automation:

insideFlag = iMeshArray.insideFlag	Получить свойство (*)
iMeshArray.insideFlag = insideFlag	Установить свойство (*)
insideFlag = iMeshArray.GetInsideFlag()	Получить свойство (**)
iMeshArray.SetInsideFlag(insideFlag)	Установить свойство (**)


ksMeshPartArrayDefinition::PartArray
IMeshPartArrayDefinition::PartArray

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

Синтаксис Automation:

LPDISPATCH PartArray();

Синтаксис COM:

LPPARTCOLLECTION PartArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива компонентов, подлежащих копированию ksPartCollection или IPartCollection.


ksMeshPartArrayDefinition::GetCopyParamAlongAxis
IMeshPartArrayDefinition::GetCopyParamAlongAxis

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

Синтаксис Automation:

BOOL GetCopyParamAlongAxis (BOOL firstAxis,

double * angle,

long * count,

double * step,

BOOL * factor);

Синтаксис COM:

BOOL GetCopyParamAlongAxis (BOOL firstAxis,

double * angle,

long * count,

double * step,

BOOL * factor);

Выходные параметры:

firstAxis	- ось: TRUE - первая, FALSE - вторая,
angle	- угол наклона оси,
count	- количество копий,
step	- шаг вдоль оси,
factor	- признак полного шага.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksMeshPartArrayDefinition::SetCopyParamAlongAxis
IMeshPartArrayDefinition::SetCopyParamAlongAxis

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

Синтаксис Automation:

BOOL SetCopyParamAlongAxis (BOOL firstAxis,

double angle,

long count,

double step,

BOOL factor);

Синтаксис COM:

BOOL SetCopyParamAlongAxis (BOOL firstAxis,

double angle,

long count,

double step,

BOOL factor);

Входные параметры:

firstAxis	- ось: TRUE - первая, FALSE - вторая,
angle	- угол наклона оси,
count	- количество копий,
step	- шаг вдоль оси,
factor	- признак полного шага.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksMeshPartArrayDefinition::GetAxis1
IMeshPartArrayDefinition::GetAxis1

Получить первую ось сетки.

Синтаксис Automation:

LPDISPATCH GetAxis1();

Синтаксис COM:

LPENTITY GetAxis1();

Возвращаемое значение:

	указатель на интерфейс оси ksEntity или IEntity.


ksMeshPartArrayDefinition::SetAxis1
IMeshPartArrayDefinition::SetAxis1

Установить первую ось сетки.

Синтаксис Automation:

BOOL SetAxis1 (LPDISPATCH axis);

Синтаксис COM:

BOOL SetAxis1 (LPENTITY axis);

Входной параметр:

axis	- указатель на интерфейс оси ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksMeshPartArrayDefinition::GetAxis2
IMeshPartArrayDefinition::GetAxis2

Получить вторую ось сетки.

Синтаксис Automation:

LPDISPATCH GetAxis2();

Синтаксис COM:

LPENTITY GetAxis2();

Возвращаемое значение:

	указатель на интерфейс оси ksEntity или IEntity.


ksMeshPartArrayDefinition::SetAxis2
IMeshPartArrayDefinition::SetAxis2

Установить вторую ось сетки.

Синтаксис Automation:

BOOL SetAxis2 (LPDISPATCH axis);

Синтаксис COM:

BOOL SetAxis2 (LPENTITY axis);

Входной параметр:

axis	- указатель на интерфейс оси операции ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksMeshPartArrayDefinition::DeletedCollection
IMeshPartArrayDefinition::DeletedCollection

Получить массив индексов удаленных копий.

Синтаксис Automation:

LPDISPATCH DeletedCollection();

Синтаксис COM:

LPDELETEDCOPYCOLLECTION DeletedCollection();

Возвращаемое значение:

указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection.	- в случае успешного завершения.
NULL	- в случае неудачи
Примечание:

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


Интерфейсы ksMirrorAllDefinition, IMirrorAllDefinition
ksMirrorAllDefinition,
IMirrorAllDefinition

Интерфейс зеркального отражения всех элементов.

ksMirrorCopyAllDefinition	- интерфейс Automation
IMirrorCopyAllDefinition	- интерфейс COM
Методы...


ksMirrorAllDefinition::methods
ksMirrorAllDefinition
методы

GetPlane

SetPlane


ksMirrorAllDefinition::GetPlane
ksMirrorAllDefinition::GetPlane

Получить плоскость отражения.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс плоскости отражения ksEntity или IEntity.


ksMirrorAllDefinition::SetPlane
ksMirrorAllDefinition::SetPlane

Установить плоскость отражения.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс плоскости отражения ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksMirrorDefinition, IMirrorDefinition
ksMirrorDefinition,
IMirrorDefinition

Интерфейс зеркальной копии.

ksMirrorDefinition	- интерфейс Automation
IMirrorDefinition	- интерфейс COM
Методы:

OperationArray

GetPlane

SetPlane


ksMirrorDefinition::OperationArray
IMirrorDefinition::OperationArray

Получить указатель на интерфейс массива копируемых элементов.

Синтаксис Automation:

LPDISPATCH OperationArray();

Синтаксис COM:

LPENTITYCOLLECTION OperationArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива копируемых элементов ksEntityCollection или IEntityCollection.


ksMirrorDefinition::GetPlane
ksMirrorDefinition::GetPlane

Получить плоскость симметрии (зеркального копирования).

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс плоскости ksEntity или IEntity.


ksMirrorDefinition::SetPlane
ksMirrorDefinition::SetPlane

Установить плоскость симметрии (зеркального копирования).

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс плоскости ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksModelLibrary, IModelLibrary
ksModelLibrary,
IModelLibrary

Интерфейс библиотеки трехмерных моделей.

ksModelLibrary	- интерфейс Automation
IModelLibrary	- интерфейс COM
Методы...

Примечания:

Указатель на этот интерфейс при использовании Automation можно получить при помощи метода KompasObject::GetModelLibrary.

При программировании на COM интерфейс можно получить при помощи экспортной функции ksGetModelLibrary.


ksModelLibrary::methods
ksModelLibrary
методы

AddD3DocumentToLibrary

CheckModelLibrary

ChoiceModelFromLib

ExistModelInLibrary

ModelLibraryOperation


ksModelLibrary::ModelLibraryOperation
IModelLibrary::ModelLibraryOperation

Действия с библиотекой моделей.

Синтаксис Automation:

long ModelLibraryOperation (BSTR libName,

long type);

Синтаксис COM:

long ModelLibraryOperation (LPOLESTR libName,

long type);

Входные параметры:

libName	- имя файла библиотеки моделей,
type	- тип действия.
Типы действий с библиотекой моделей...

Возвращаемое значение:

1	- в случае успешного завершения.
Примечания:

1. При выполнении операций -1, 0, 1, 4, 5 libName - полное имя файла библиотеки моделей.

2. При выполнении операций 2, 3 libName - полное имя файла библиотеки моделей + путь внутри библиотеки с именем редактируемой модели.

3. Допускается задание имени файла библиотеки следующего вида: "c:\gr\lib1.l3d|детали|литье|фланец",
где
c:\gr\lib1.l3d - имя файла библиотеки моделей,

|детали|литье| - разделы, подразделы внутри библиотеки моделей,

фланец - имя модели.


ksModelLibrary::ChoiceModelFromLib
IModelLibrary::ChoiceModelFromLib

Выбор модели из библиотеки.

Синтаксис Automation:

BSTR ChoiceModelFromLib (BSTR libFile,

long* type);

Синтаксис COM:

LPOLESTR ChoiceModelFromLib (LPOLESTR libFile,

long* type);

Входной параметр:

libFile	- путь к файлу в библиотеке моделей.
Выходной параметр:

type	- тип возвращаемого пути.
Типы пути в библиотеке моделей...

Возвращаемое значение:

путь к модели	- в случае успешного завершения.


ksModelLibrary::AddD3DocumentToLibrary
IModelLibrary::AddD3DocumentToLibrary

Добавить модель с указанным именем файла в указанную библиотеку моделей.

Синтаксис Automation:

long AddD3DocumentToLibrary (BSTR libName,

BSTR libFile);

Синтаксис COM:

long AddD3DocumentToLibrary (LPOLESTR libName,

LPOLESTR fileName);

Входные параметры:

libName	- имя файла библиотеки моделей,
libFile	- имя файла модели.
Возвращаемое значение:

1	- в случае успешного завершения.
Примечание:

Имя файла библиотеки моделей должно содержать путь внутри библиотеки и имя модели, например: "c:\gr\lib1.l3d|детали|литье|фланец",
где
c:\gr\lib1.l3d - имя файла библиотеки моделей,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя модели.


ksModelLibrary::CheckModelLibrary
IModelLibrary::CheckModelLibrary

Проверить, открыта ли указанная библиотека моделей.

Синтаксис Automation:

long CheckModelLibrary (BSTR libName,

BOOL possibleMessage);

Синтаксис COM:

long CheckModelLibrary (LPOLESTR libName,

BOOL possibleMessage);

Входные параметры:

libName	- имя файла библиотеки моделей,
possibleMessage	- признак, показывающий, нужно ли выдать сообщение об открытии библиотеки: TRUE - сообщение выдается, FALSE - сообщение не выдается.
Возвращаемое значение:

1	- библиотека открыта (успешное завершение),
0	- библиотека закрыта.


ksModelLibrary::ExistModelInLibrary
IModelLibrary::ExistModelInLibrary

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

Синтаксис Automation:

long ExistModelInLibrary (BSTR name);

Синтаксис COM:

long ExistModelInLibrary (LPOLESTR name);

Входной параметр:

name	- имя файла библиотеки моделей и модели (или папки) в нем.
Возвращаемое значение:

-1	- указанная библиотека не существует,
0	- указанная модель или папка не существует,
1	- модель или папка существует.
Примечание:

Допускается задание имени файла библиотеки следующего вида: "c:\gr\lib1.l3d|детали|литье|фланец",
где
c:\gr\lib1.l3d - имя файла библиотеки моделей,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя модели.


Интерфейсы ksPart, IPart
ksPart,
IPart

Интерфейс детали или подсборки в составе сборки.

ksPart	- интерфейс Automation
IPart	- интерфейс COM
Свойства...

Методы...


ksPart::props
ksPart
свойства

excluded

fileName

fixedComponent

hidden

material

name

needRebuild

standardComponent

useColor


ksPart::methods
ksPart
методы

BeginEdit

BodyCollection

Body

CalcMassInertiaProperties

ColorParam

CurveIntersection

EndEdit

EntityCollection

GetAdvancedColor

GetDefaultEntity

GetDensity

GetFeature

GetMass

GetMateConstraintObjects

GetObject3DNotify

GetObject3DNotifyResult

GetPlacement

GetUserLibraryCommand

GetUserLibraryFileName

GetUserLibraryName

GetUserParam

GetUserParamSize

Measurer

NewEntity

PutStorage

RebuildModel

RebuildModelEx

SetAdvancedColor

SetFileName

SetMateConstraintObjects

SetMaterial

SetPlacement

SetUserParam

TransformPoint

Update

UpdatePlacement

UpdatePlacementEx

VariableCollection


ksPart::name
IPart::name

Имя детали или подсборки в составе сборки.

Тип данных - строка.


ksPart::fixedComponent
IPart::

Состояние фиксации компонента.

Тип данных - BOOL.

Значения свойства:

TRUE	- компонент зафиксирован,
FALSE	- компонент не зафиксирован.
Примечание:

Если компонент зафиксирован, то нельзя изменить его местоположение.


ksPart::standardComponent
IPart::standardComponent

Признак стандартного компонента.

Тип данных - BOOL.

Значения свойства:

TRUE	- компонент стандартный,
FALSE	- компонент нестандартный.
Примечание:

Стандартный компонент не имеет Дерева построения и редактируется только через прикладную библиотеку (если он был создан библиотекой и в нем сохранены имя библиотеки и номер команды редактирования методом SetUserParam).


ksPart::fileName
IPart::fileName

Имя файла компонента.

Тип данных - строка.

Синтаксис Automation:

fileName = iPart.fileName	Получить свойство (*)
iPart.fileName = fileName	Установить свойство (*)
fileName = iPart.GetFileName()	Получить свойство (**)
iPart.SetFileName(fileName)	Установить свойство (**)


ksPart::hidden
IPart::hidden

Состояние видимости объекта.

Тип данных - BOOL.

Значения свойства:

TRUE	- объект скрытый,
FALSE	- объект видимый.
Синтаксис Automation:

hidden = iPart.hidden	Получить свойство (*)
iPart.hidden = hidden	Установить свойство (*)
hidden = iPart.GetHidden()	Получить свойство (**)
iPart.SetHidden (hidden)	Установить свойство (**)


ksPart::material
IPart::material

Материал детали.

Тип данных - строка.

Синтаксис Automation:

material = iPart.material	Получить свойство (*)
material = iPart.GetMaterial()	Получить свойство (**)
Примечания:

1. Данное свойство доступно только для чтения.

2. Обозначение материала можно получить только у детали.


ksPart::useColor
IPart::useColor

Используемый цвет (цвет источника, цвет хозяина, собственный цвет).

Тип данных - long.

Значения свойства...

Синтаксис Automation:

useColor = iPart.useColor	Получить свойство (*)
iPart.useColor = useColor	Установить свойство (*)
useColor = iPart.GetUseColor()	Получить свойство (**)
iPart.SetUseColor(useColor)	Установить свойство (**)
Примечания:

1. Cобственный цвет можно получить или установить, используя методы:

SetAdvancedColor, GetAdvancedColor и ColorParam.

2. Свойство применимо для деталей и подсборок в сборке.


ksPart::needRebuild
IPart::needRebuild

Необходимость перестроения объектов при изменении их свойств.

Тип данных - BOOL.

Значения свойства:

TRUE	- При вызове метода ksEntity::Update после установки модельному объекту новых свойств модель будет перестроена,
FALSE	- модель перестраиваться не будет.
Синтаксис Automation:

needRebuild = iPart.needRebuild	Получить свойство (*)
iPart.needRebuild = needRebuild	Установить свойство (*)
needRebuild = iPart.GetNeedRebuild()	Получить свойство (**)
iPart.SetNeedRebuild (needRebuild)	Установить свойство (**)
Синтаксис COM:

needRebuild = iPart->GetNeedRebuild()	Получить свойство
iPart->SetNeedRebuild (needRebuild)	Установить свойство
Примечания:

Если необходимо изменить свойства нескольких объектов, то достаточно одного перестроения модели после установки новых свойств всем модельным объектам. Для этого перед изменением свойств объектов нужно установить значение этого свойства равным FALSE, поменять свойства объектов и вызвать у каждого из них метод ksEntity::Update, а затем вызвать метод ksPart::RebuildModelEx, с параметром redraw равным TRUE.

Если значению данного свойства установлено FALSE, то после каждого вызова метода ksEntity::Update у объекта модель будет перестраиваться.


ksPart::ColorParam
IPart::ColorParam

Получить указатель на интерфейс параметров цвета и визуальных свойств компонента.

Синтаксис Automation:

LPDISPATCH ColorParam();

Синтаксис COM:

LPCOLORPARAM ColorParam();

Возвращаемое значение:

	указатель на интерфейс ksColorParam или IColorParam.


ksPart::VariableCollection
IPart::VariableCollection

Получить указатель на интерфейс массива внешних переменных.

Синтаксис Automation:

LPDISPATCH VariableCollection();

Синтаксис COM:

LPVARIABLECOLLECTION VariableCollection();

Возвращаемое значение:

	указатель на интерфейс ksVariableCollection или IVariableCollection .
Примечание:

Изменения в полученном массиве не отображаются в модели немедленно. Чтобы изменения вступили в силу, необходимо вызвать метод RebuildModel.


ksPart::Update
IPart::Update

Изменить свойства компонента (используя ранее установленные свойства).

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

BOOL Update();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

После вызова этого метода все изменения отображаются в компоненте.


ksPart::SetUserParam
IPart::SetUserParam

Установить параметры компонента, указанные пользователем.

Синтаксис Automation:

BOOL SetUserParam (LPDISPATCH userPars);

Входной параметр:

userPars	- указатель на интерфейс пользовательских параметров ksUserParam.
Синтаксис COM:

BOOL SetUserParam (void *value,

unsigned int size,

LPOLESTR nameFile,

LPOLESTR nameLib,

int number);

Входные параметры:

value	- указатель на пользовательскую структуру параметров,
size	- размер структуры параметров,
nameFile	- имя файла прикладной библиотеки для последующего редактирования через библиотеку (0 - запоминается текущая библиотека),
nameLib	- имя прикладной библиотеки для последующего редактирования через библиотеку (0 - запоминается текущая библиотека),
number	- номер команды в прикладной библиотеке для последующего редактирования через библиотеку (-1 - запоминается текущая команда).
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

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


ksPart::GetUserParam
IPart::GetUserParam

Возвращает пользовательские параметры, записанные в компоненте.

Синтаксис Automation:

BOOL GetUserParam (LPDISPATCH userPars);

Выходной параметр:

userPars	- указатель на интерфейс пользовательских параметров ksUserParam.
Синтаксис COM:

BOOL GetUserParam (void *value,

unsigned int size);

Входной параметр:

size	- размер структуры параметров.
Выходной параметр :

value	- пользовательская структура параметров.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPart::GetUserParamSize
IPart::GetUserParamSize

Возвращает размер (в байтах) пользовательских параметров, записанных в компоненте.

Синтаксис Automation:

long GetUserParamSize();

Синтаксис COM:

long GetUserParamSize();


ksPart::GetPlacement
ksPart::GetPlacement	Пример
IPart::GetPlacement

Получить указатель на интерфейс местоположения компонента.

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


ksPart::SetPlacement
IPart::SetPlacement

Установить новое местоположение компонента.

Синтаксис Automation:

BOOL SetPlacement (LPDISPATCH placement);

Синтаксис COM:

BOOL SetPlacement (LPPLACEMENT placement);

Входной параметр :

placement	- указатель на интерфейс ksPlacement или IPlacement.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Данный метод вступает в силу после вызова метода UpdatePlacement.


ksPart::UpdatePlacement
ksPart::UpdatePlacement	Пример
IPart::UpdatePlacement

Изменить местоположение компонента, заданное методом SetPlacement.

Синтаксис Automation:

BOOL UpdatePlacement();

Синтаксис COM:

BOOL UpdatePlacement();

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPart::UpdatePlacementEx
IPart::UpdatePlacementEx

Изменить местоположение компонента, заданное методом SetPlacement.

Синтаксис Automation:

BOOL UpdatePlacementEx (BOOL redraw);

Синтаксис COM:

BOOL UpdatePlacementEx (BOOL redraw);

Входные параметры:

redraw	- признак перестроения документа после изменения местоположения компонента: (TRUE - перестроить документ, FALSE - не перестраивать).
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPart::RebuildModel
IPart::RebuildModel

Перестроить модель в соответствии с новыми значениями свойств объектов и внешних переменных.

Синтаксис Automation:

BOOL RebuildModel();

Синтаксис COM:

BOOL RebuildModel();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Если изменены значения внешних переменных компонента, то они будут переданы в модель. Если компонент является фантомом, то он будет перестроен.


ksPart::RebuildModelEx
IPart::RebuildModelEx

Перестроить модель в соответствии с новыми значениями свойств объектов и внешних переменных.

Синтаксис Automation:

BOOL RebuildModelEx (BOOL redraw);

Синтаксис COM:

BOOL RebuildModelEx (BOOL redraw);

Входные параметры:

redraw	- признак перестроения документа: TRUE - перестроить документ, FALSE - не перестраивать.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Если изменены значения внешних переменных компонента, то они будут переданы в модель. Если параметру redraw установлено значение TRUE или компонен является фантомом, то он будет перестроен.


ksPart::GetDefaultEntity
IPart::GetDefaultEntity

Получить указатель на интерфейс объекта, создаваемого системой по умолчанию.

Синтаксис Automation:

LPDISPATCH GetDefaultEntity (short objType);

Синтаксис COM:

LPENTITY GetDefaultEntity (short objType);

Входной параметр :

objType	- тип объекта.
Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.
Типы объектов (objType):

o3d_planeXOY	= 1	плоскость XOY
o3d_planeXOZ	= 2	плоскость XOZ
o3d_planeYOZ	= 3	плоскость YOZ
o3d_pointCS	= 4	точка начала системы координат


ksPart::NewEntity
IPart::NewEntity

Создать новый интерфейс объекта и получить указатель на него.

Синтаксис Automation:

LPDISPATCH NewEntity (short objType);

Синтаксис COM:

LPENTITY NewEntity (short objType);

Входной параметр :

objType	- тип объекта.
Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.
Примечание:

Реальный объект создается в модели после вызова метода Create.

Типы объектов...


ksPart::EntityCollection
IPart::EntityCollection

Формирует массив объектов и возвращает указатель на его интерфейс.

Синтаксис Automation:

LPDISPATCH EntityCollection (short objType);

Синтаксис COM:

LPENTITYCOLLECTION EntityCollection (short objType);

Входной параметр :

objType	- тип объектов, содержащихся в массиве.
Возвращаемое значение:

	указатель на интерфейс ksEntityCollection или IEntityCollection.
Примечания:

1. При создании массив заполняется объектами указанного типа, содержащимися в компоненте.

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

3. Параметр objType необходим для создания массива и для правильной работы метода Refresh.

Типы объектов...


ksPart::GetAdvancedColor
IPart::GetAdvancedColor

Возвращает параметры цвета и визуальных свойств компонента.

Синтаксис Automation:

BOOL GetAdvancedColor (long* color,

double* ambient,

double* diffuse,

double* specularity,

double* shininess,

double* transparency,

double* emission);

Синтаксис COM:

BOOL GetAdvancedColor (COLORREF* color,

double* ambient,

double* diffuse,

double* specularity,

double* shininess,

double* transparency,

double* emission);

Выходные параметры:

color	- цвет,
ambient	- общий свет,
diffuse	- диффузия,
specularity	- зеркальность,
shininess	- блеск,
transparency	- прозрачность,
emission	- излучение.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPart::SetAdvancedColor
IPart::SetAdvancedColor

Устанавливает параметры цвета и визуальных свойств компонента.

Синтаксис Automation:

BOOL SetAdvancedColor (long color,

double ambient,

double diffuse,

double specularity,

double shininess,

double transparency,

double emission);

Синтаксис COM:

BOOL SetAdvancedColor (COLORREF color,

double ambient,

double diffuse,

double specularity,

double shininess,

double transparency,

double emission);

Входные параметры:

color	- цвет,
ambient	- общий свет,
diffuse	- диффузия,
specularity	- зеркальность,
shininess	- блеск,
transparency	- прозрачность,
emission	- излучение.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPart::GetMateConstraintObjects
IPart::GetMateConstraintObjects

Получить массив зависимых объектов для повторного редактирования детали.

Синтаксис Automation:

LPDISPATCH GetMateConstraintObjects();

Синтаксис COM:

LPENTITYCOLLECTION GetMateConstraintObjects();

Возвращаемое значение:

	указатель на интерфейс ksEntityCollection или IEntityCollection.
Примечание:

Функция работает в сборке. Массив объектов формируется в результате работы функции UserGetPlacementAndEntity для данной детали. Как правило, на указанные в процессе объекты накладываются сопряжения с объектами данной детали. Если массив сохранить, то при повторном входе в процесс связанные объекты будут выделены.


ksPart::SetMateConstraintObjects
IPart::SetMateConstraintObjects

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

Синтаксис Automation:

BOOL SetMateConstraintObjects (LPDISPATCH collection);

Синтаксис COM:

BOOL SetMateConstraintObjects (LPENTITYCOLLECTION collection);

Входной параметр:

collection	- указатель на интерфейс ksEntityCollection или IEntityCollection.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Функция работает в сборке. Массив объектов формируется в результате работы процесса UserGetPlacementAndEntity для данной детали. Как правило, на указанные в процессе объекты накладываются сопряжения с объектами данной детали. Если массив сохранить, то при повторном входе в процесс

связанные объекты будут выделены. Если collection = NULL, массив будет взят из документа, который получился после работы процесса UserGetPlacementAndEntity для данной детали.


ksPart::BeginEdit
IPart::BeginEdit

Запустить режим редактирования на месте для данного компонента.

Синтаксис Automation:

IDispatch * BeginEdit();

Синтаксис COM:

LPDOCUMENT3D BeginEdit();

Возвращаемое значение:

	указатель на интерфейс документа ksDocument3D или IDocument3D.
Примечание:

Данный метод работает только для компонента, вставленного в сборку. Для детали и для "верхнего" компонента сборки возвращает NULL.


ksPart::EndEdit
IPart::EndEdit

Закрыть режим редактирования на месте для данного компонента.

Синтаксис Automation:

VARIANT_BOOL EndEdit (VARIANT_BOOL rebuild);

Синтаксис COM:

BOOL EndEdit (BOOL rebuild);

Входные параметры:

rebuild	- перестроить компонент.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Данный метод работает только для компонента, вставленного в сборку.


ksPart::PutStorage
IPart::PutStorage

Вставить деталь-заготовку.

Синтаксис Automation:

BOOL PutStorage (LPOLESTR fileName,

BOOL type,

BOOL mirror);

Синтаксис COM:

BOOL PutStorage (const char* fileName,

BOOL type,

BOOL mirror);

Входные параметры:

fileName	- имя файла детали-заготовки,
type	- тип вставки детали-заготовки (TRUE - внешней ссылкой, FALSE - без истории),
mirror	- признак вставки "зеркальной" детали (TRUE - "зеркальная" деталь, FALSE - деталь в том виде, в котором она существует в файле-источнике).
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPart::GetMass
IPart::GetMass

Получить массу детали.

Синтаксис Automation:

double GetMass();

Синтаксис COM:

double GetMass();

Возвращаемое значение:

масса	- в случае успешного завершения,
0	- в случае неудачи.


ksPart::GetDensity
IPart::GetDensity

Получить плотность детали.

Синтаксис Automation:

double GetDensity()

Синтаксис COM:

double GetDensity();

Возвращаемое значение:

плотность	- в случае успешного завершения,
0	- в случае неудачи (если компонент - не деталь).


ksPart::SetMaterial
IPart::SetMaterial

Установить материал детали.

Синтаксис Automation:

BOOL SetMaterial (BSTR name,

double density);

Синтаксис COM:

BOOL SetMaterial (LPOLESTR name,

double density);

Входные параметры:

name	- название материала,
density	- плотность материала.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечания:

1. Компонент, у которого меняется материал, должен быть деталью.

2. Компонент не должен быть деталью из библиотеки моделей или стандартным элементом.

3. Метод используется в детали для верхнего компонента, в сборках - для вставленных деталей.

4. Изменение материала вступает в силу после вызова метода ksPart::Update.


ksPart::SetFileName
IPart::SetFileName

Установить имя файла детали.

Синтаксис Automation:

BOOL SetFileName (BSTR name);

Синтаксис COM:

BOOL SetFileName (LPOLESTR name);

Входной параметр:

name	- полное имя файла детали,
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечания:

1. Метод используется для компонентов, вставленных в сборку.

2. Документ с указанным именем должен существовать.

3. Компонент не должен быть деталью из библиотеки моделей или стандартным элементом.

4. Изменение материала вступает в силу после вызова метода ksPart::Update.


ksPart::excluded
IPart::excluded

Исключить/вкючить в расчет деталь.

Тип данных - BOOL.

Значения свойства:

TRUE	- исключить деталь из расчета,
FALSE	- включить деталь в расчет.
Синтаксис Automation:

excluded = iEntity.excluded	Получить свойство (*)
iEntity.excluded = excluded	Установить свойство (*)
excluded = iEntity.GetExcluded()	Получить свойство (**)
iEntity.SetExcluded(excluded)	Установить свойство (**)


IPart::GetUserLibraryFileName

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

Аналог данного метода при использовании Automation - ksUserParam::fileName. Пример:.

Синтаксис COM:

LPOLESTR GetUserLibraryFileName();

Возвращаемое значение:

Имя файла пользовательской библиотеки	- в случае успешного завершения,
NULL	- если библиотеки нет.


IPart::GetUserLibraryName

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

Аналог данного метода при использовании Automation - ksUserParam::libName. Пример:.

Синтаксис COM:

LPOLESTR GetUserLibraryName();

Возвращаемое значение:

Имя пользовательской библиотеки	- в случае успешного завершения,
NULL	- если библиотеки нет.


IPart::GetUserLibraryCommand

Получить номер команды пользовательской библиотеки, при помощи которой можно редактировать компонент.

Аналог данного метода при использовании Automation - ksUserParam::number. Пример:.

Синтаксис COM:

long GetUserLibraryCommand();

Возвращаемое значение:

Номер библиотечной команды	- в случае успешного завершения,
-1	- если библиотеки нет.


ksPart::BodyCollection
IPart::BodyCollection

Получить указатель на интерфейс массива тел.

Синтаксис Automation:

LPDISPATCH BodyCollection();

Синтаксис COM:

LPBODYCOLLECTION BodyCollection();

Возвращаемое значение:

	указатель на интерфейс документа ksBodyCollection или IBodyCollection.


ksPart::GetFeature
IPart::GetFeature

Вернуть указатель на интерфейс - объект дерева, связанный с данным объектом.

Синтаксис Automation:

LPDISPATCH GetFeature();

Синтаксис COM:

LPFEATURE GetFeature();

Возвращаемое значение:

	указатель на интерфейс документа ksFeature или IFeature.


ksPart::CalcMassInertiaProperties
IPart::CalcMassInertiaProperties

Определить массо-центровочные характеристики.

Синтаксис Automation:

LPDISPATCH CalcMassInertiaProperties (long bitVector);

Синтаксис COM:

LPMASSINERTIAPARAM CalcMassInertiaProperties (unsigned int bitVector);

Входной параметр:

bitVector	- определяет размерность длины, размерность массы
Возвращаемое значение:

	указатель на интерфейс ksMassInertiaParam или IMassInertiaParam.
Примечания:

Варианты значений для задания значений bitVector находятся в интервале [ST_MIX_MM..ST_MIX_KG]

Пример:

(метры|кг - ST_MIX_M|ST_MIX_KG)


ksPart::Measurer
IPart::Measurer

Получить указатель на интерфейс измерений.

Синтаксис Automation:

LPDISPATCH GetMeasurer();

Синтаксис COM:

LPMEASURER GetMeasurer();

Возвращаемое значение:

	указатель на интерфейс ksMeasurer или IMeasurer.


ksPart::GetMainBody
IPart::GetMainBody

Получить указатель на интерфейс результирующего тела.

Синтаксис Automation:

LPDISPATCH GetMainBody();

Синтаксис COM:

LPBODY GetMainBody();

Возвращаемое значение:

	указатель на интерфейс ksBody или IBody.
Пример:

Деталь имеет массив интерфейсов тел IBody. Используя этот массив интерфейсов, можно получить доступ к математической модели детали (компонента).


ksPart::GetObject3DNotify
IPart::GetObject3DNotify

Получить объект обработки событий для объектов 3D документов.

Синтаксис Automation:

ksObject3DNotify * GetObject3DNotify (long objType, LPDISPATCH obj);

Входные параметры:

Obj	- указатель на объект,
objType	- тип объекта (o3d_unknown...o3d_sketch, o3d_axis2Planes...o3d_thread, o3d_part, o3d_feature).
Возвращаемое значение:

	указатель на интерфейс источника событий ksObject3DNotify.
Примечание:

1. Если задан указатель на объект, события генерируются только для этого объекта. Если задан тип объекта, события генерируются для всех объектов этого типа. Если задан тип o3d_unknown, события генерируются для всех объектов.


ksPart::GetObject3DNotifyResult
IPart::GetObject3DNotifyResult

Получить интерфейс результатов редактирования объекта документа-модели.

Синтаксис Automation:

ksObject3DNotifyResult * GetObject3DNotifyResult();

Синтаксис COM:

IObject3DNotifyResult * GetObject3DNotifyResult();

Возвращаемое значение:

	указатель на интерфейс источника событий ksObject3DNotifyResult или IObject3DNotifyResult.


ksPart::CurveIntersection
IPart::CurveIntersection

Рассчитать пересечения с кривой.

Синтаксис Automation:

BOOL CurveIntersection (LPDISPATCH curve,
LPDISPATCH parts,
LPDISPATCH fases,
LPDISPATCH points);

Синтаксис COM:

BOOL CurveIntersection (LPCURVE3D curve,
LPPARTCOLLECTION parts,
LPFACECOLLECTION faces,
LPCOORDINATE3DCOLLECTION points);

Входные параметры:

curve	- Указатель на интерфейс 3D кривой ICurve3D
Выходные параметры:

parts	- коллекция деталей, пересекаемых кривой IPartCollection.
fases	- коллекция граней, пересекаемых кривой IFaceCollection
points	- коллекция координат точек пересечений ICoordinate3dCollection
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Координаты точек сортируются по параметру кривой t.

2. Параметры parts, faces, points являются не обязательными.

3. Заполняются только присланные коллекции.

4. Интерфейсы коллекций для заполнения нужно получить с помощью функций:

- ksPartCollection - ksDocument3D::PartCollection*/ c параметром refresh = FALSE;

- ksFaceCollection - ksDocument3D::GetInterface с параметром o3dType = o3d_faceCollection;

- ksCoordinate3dCollection - ksDocument3D::GetInterface с параметром o3dType = o3d_coordinate3dCollection.


ksPart::TransformPoint
IPart::TransformPoint

Перевести координаты точки присланной детали part1 в систему координат детали.

Синтаксис Automation:

BOOL TransformPoint (double* x, double* y, double* z, LPDISPATCH part1);

Синтаксис COM:

BOOL TransformPoint (double* x, double* y, double* z, LPPART part1);

Входные параметры:

x, y, z	- координаты точки в системе координат детали part1.
part1	указатель на интерфейс детали ksPart, из системы кооррдинат которой нужно перевести точку.
Выходные параметры:

x, y, z	- координаты точки в системе координат детали.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


Интерфейсы ksPartCollection, IPartCollection
ksPartCollection,
IPartCollection

Интерфейс динамического массива компонентов сборки.

ksPartCollection	- интерфейс Automation
IPartCollection	- интерфейс COM
Методы...


ksPartCollection::methods
ksPartCollection
методы

Add

AddAt

AddBefore

Clear

DetachByBody

DetachByIndex

FindIt

First

GetByIndex

GetByName

GetCount

Last

Next

Prev

Refresh

SetByIndex


ksPartCollection::Refresh
IPartCollection::Refresh

Обновить массив компонентов сборки.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом компонентов и удаляются все предыдущие изменения в массиве.


ksPartCollection::GetCount
IPartCollection::GetCount

Получить количество элементов массива компонентов сборки.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

unsigned long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksPartCollection::First
IPartCollection::First

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

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPPART First();

Возвращаемое значение:

	указатель на интерфейс компонента ksPart или IPart.


ksPartCollection::Last
IPartCollection::Last

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

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPPART Last();

Возвращаемое значение:

	указатель на интерфейс компонента ksPart или IPart.


ksPartCollection::Next
IPartCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPPART Next();

Возвращаемое значение:

	указатель на интерфейс компонента ksPart или IPart.


ksPartCollection::Prev
IPartCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPPART Prev();

Возвращаемое значение:

	указатель на интерфейс компонента ksPart или IPart.


ksPartCollection::GetByName
IPartCollection::GetByName

Получить указатель на интерфейс компонента по имени.

Синтаксис Automation:

LPDISPATCH GetByName (BSTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Синтаксис COM:

LPPART GetByName (LPOLESTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Входные параметры:

name	- имя объекта,
testFullName	- признак полного имени (TRUE - полное имя),
testIgnoreCase	- признак учета регистра: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:

	указатель на интерфейс компонента ksPart или IPart.


ksPartCollection::GetByIndex
IPartCollection::GetByIndex

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

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPPART GetByIndex (unsigned long index);

Входной параметр:

index	- индекс компонента в массиве.
Возвращаемое значение:

	указатель на интерфейс компонента ksPart или IPart.


ksPartCollection::SetByIndex
IPartCollection::SetByIndex

Заменить компонент в массиве по индексу.

Синтаксис Automation:

BOOL SetByIndex (LPDISPATCH part,

long index);

Синтаксис COM:

BOOL SetByIndex (LPPART part,

unsigned long index);

Входные параметры:

part	- указатель на интерфейс заменяющего компонента ksPart или IPart,
index	- индекс заменяемого компонента в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPartCollection::Add
IPartCollection::Add

Добавить компонент в массив.

Синтаксис Automation:

BOOL Add (LPDISPATCH part);

Синтаксис COM:

BOOL Add (LPPART part);

Входной параметр:

part	- указатель на интерфейс компонента ksPart или IPart.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPartCollection::AddAt
IPartCollection::AddAt

Добавить в массив компонент с заданным индексом.

Синтаксис Automation:

BOOL AddAt (LPDISPATCH part,

long index);

Синтаксис COM:

BOOL AddAt (LPPART part,

unsigned long index);

Входные параметры:

part	- указатель на интерфейс компонента ksPart или IPart,
index	- индекс в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPartCollection::AddBefore
IPartCollection::AddBefore

Добавить в массив компонент перед указанным компонентом.

Синтаксис Automation:

BOOL AddBefore (LPDISPATCH entity,

LPDISPATCH base);

Синтаксис COM:

BOOL AddBefore (LPPART entity,

LPPART base);

Входные параметры:

part	- указатель на интерфейс добавляемого компонента ksPart или IPart,
base	- указатель на интерфейс компонента базового объекта ksPart или IPart.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPartCollection::DetachByIndex
IPartCollection::DetachByIndex

Отсоединить от массива компонент с указанным индексом.

Синтаксис Automation:

BOOL DetachByIndex (long index);

Синтаксис COM:

BOOL DetachByIndex (unsigned long index);

Входной параметр:

index	- индекс отсоединяемого компонента в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Элемент массива из модели не удаляется.


ksPartCollection::DetachByBody
IPartCollection::DetachByBody

Отсоединить компонент от массива.

Синтаксис Automation:

BOOL DetachByBody (LPDISPATCH part);

Синтаксис COM:

BOOL DetachByBody (LPPART part);

Входной параметр:

part	- указатель на интерфейс отсоединяемого компонента ksPart или IPart.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Элемент массива из модели не удаляется.


ksPartCollection::Clear
IPartCollection::Clear

Очистить массив.

Синтаксис Automation:

BOOL Clear();

Синтаксис COM:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Элементы массива из модели не удаляются.


ksPartCollection::FindIt
IPartCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt(LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt (LPPART entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksPart или IPart.


Интерфейсы ksPlacement, IPlacement
ksPlacement,
IPlacement

Интерфейс локальной системы координат (положение объекта).

ksPlacement	- интерфейс Automation
IPlacement	- интерфейс COM
Методы...


ksPlacement::methods
ksPlacement
методы

GetAxis

GetOrigin

PointOn

PointProjection

SetAxes

SetAxis

SetOrigin

SetPlacement


ksPlacement::GetOrigin
IPlacement::GetOrigin

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

Синтаксис Automation:

BOOL GetOrigin (double* x,

double* y,

double* z);

Синтаксис COM:

BOOL GetOrigin (double *x,

double *y,

double *z);

Выходные параметры:

x, y, z	- координаты начала локальной системы координат в глобальной системе координат.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Направление осей локальной системы координат можно получить при помощи метода GetAxis.


Placement - пример задания
Пример задания Placement детали

Последовательность установки направления осей задается абсолютными координатами направляющих векторов осей.

Для их задания нужно передавать сумму координат точки привязки и смещения.

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

IPlacement *iPlacement = m_pPart->GetPlacement();

// Установить точку привязки:

iPlacement->SetOrigin(x, y, z);

// Установить направления осей:

iPlacement->SetAxis(

x + 1,

y + 0,

z + 0,

0); // ось X

iPlacement->SetAxis(

x + 0,

y + 1,

z + 0,

1); // ось Y

// Обновить Placement:

m_pPart->UpdatePlacement();


ksPlacement::SetOrigin
ksPlacement::SetOrigin	Пример
IPlacement::SetOrigin

Изменить координаты начала локальной системы координат

Синтаксис Automation:

BOOL SetOrigin (double x,

double y,

double z);

Синтаксис COM:

BOOL SetOrigin (double x,

double y,

double z);

Входные параметры:

x, y, z	- координаты начала локальной системы координат в глобальной системе координат.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlacement::GetAxis
IPlacement::GetAxis

Получить компоненты вектора направления оси OX, OY или OZ локальной системы координат.

Синтаксис Automation:

BOOL GetAxis (double* x,

double* y,

double* z,

long type);

Синтаксис COM:

BOOL GetAxis (double *x,

double *y,

double *z,

long type);

Входной параметр:

type	- тип оси: 0 – OX, 1– OY >1– OZ
Выходные параметры:

x, y, z	- компоненты вектора направления оси.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Положение начала локальной системы координат можно получить при помощи метода GetOrigin.


ksPlacement::SetAxis
ksPlacement::SetAxis	Пример
IPlacement::SetAxis

Установить компоненты вектора направления оси OX, OY или OZ локальной системы координат.

Синтаксис Automation:

BOOL SetAxis (double x,

double y,

double z,

long type);

Синтаксис COM:

BOOL SetAxis (double x,

double y,

double z,

int type);

Входные параметры:

x, y, z	- компоненты вектора направления оси,
type	- тип оси: 0 – OX, >0 – OY.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlacement::SetAxes
ksPlacement::SetAxes	Пример
IPlacement::SetAxes

Установить оси X и Y.

Синтаксис Automation:

VARIANT_BOOL SetAxes (double Xx,
double Xy,
double Xz,
double Yx,
double Yy,
double Yz );

Синтаксис COM:

BOOL SetAxes (double Xx,
double Xy,
double Xz,
double Yx,
double Yy,
double Yz)

Входные параметры:

Xx, Xy, Xz	- координаты точки на оси X,
Yx,Yy,Yz	- координаты точки на оси Y
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlacement::SetPlacement
IPlacement::SetPlacement

Изменить локальную систему координат.

Синтаксис Automation:

BOOL SetPlacement (LPDISPATCH placement);

Синтаксис COM:

BOOL SetPlacement (LPPLACEMENT placement);

Входной параметр:

placement	- указатель на интерфейс ksPlacement или IPlacement.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlacement::PointProjection
IPlacement::PointProjection

Получить проекцию точки на плоскость XY.

Синтаксис Automation:

BOOL PointProjection (double XIn, double YIn, double ZIn, double * XOut, double * YOut);

Синтаксис COM:

BOOL PointProjection (double XIn, double YIn, double ZIn, double * XOut, double * YOut);

Входные параметры:

XIn, YIn, ZIn	- координаты исходной пространственной точки.
Выходные параметры:

XOut, YOut	- координаты точки на плоскости XY.
Возвращаемое значение:

TRUE	- в случае успешного завершения;
FALSE	- вслучае неудачи.


ksPlacement::PointOn
IPlacement::PointOn

Получить пространственную точку по точке на плоскости XY.

Синтаксис Automation:

BOOL PointOn (double XIn, double YIn, double * XOut, double * YOut, double * ZOut);

Синтаксис COM:

BOOL PointOn (double XIn, double YIn, double * XOut, double * YOut, double * ZOut);

Входные параметры:

XIn, YIn	- координаты исходной точки на плоскости XY.
Выходные параметры:

XOut, YOut, ZOut	- координаты пространственной точки.
Возвращаемое значение:

TRUE	- в случае успешного завершения;
FALSE	- вслучае неудачи.


Интерфейсы ksPlane3PointsDefinition, IPlane3PointsDefinition
ksPlane3PointsDefinition,
IPlane3PointsDefinition

Интерфейс параметров вспомогательной плоскости, проходящей через три точки.

ksPlane3PointsDefinition	- интерфейс Automation
IPlane3PointsDefinition	- интерфейс COM
Методы...


ksPlane3PointsDefinition::methods
ksPlane3PointsDefinition
методы

GetPoint

GetSurface

SetPoint


ksPlane3PointsDefinition::GetPoint
IPlane3PointsDefinition::GetPoint

Получить указатель на интерфейс точки с указанным номером.

Синтаксис Automation:

LPDISPATCH GetPoint (long number);

Синтаксис COM:

LPENTITY GetPoint (long number);

Входной параметр:

number	- номер точки (от 1 до 3).
Возвращаемое значение:

	указатель на интерфейс точки ksEntity или IEntity.


ksPlane3PointsDefinition::SetPoint
IPlane3PointsDefinition::SetPoint

Изменить указатель на интерфейс точки с указанным номером

Синтаксис Automation:

BOOL SetPoint (long number, LPDISPATCH point);

Синтаксис COM:

BOOL SetPoint (long number, LPENTITY point);

Входные параметры:

point	указатель на интерфейс точки ksEntity или IEntity.
number	- номер точки (от 1 до 3).
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlane3PointsDefinition::GetSurface
IPlane3PointsDefinition::GetSurface

Получить указатель на интерфейс математической поверхности

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPSURFACE GetSurface();

Возвращаемое значение:

	- указатель на интерфейс ksSurface или ISurface.


Интерфейс ksPlaneAngleDefinition, IPlaneAngleDefinition
ksPlaneAngleDefinition,
IPlaneAngleDefinition

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

ksPlaneAngleDefinition	- интерфейс Automation
IPlaneAngleDefinition	- интерфейс COM
Свойства...

Методы...


ksPlaneAngleDefinition::props
ksPlaneAngleDefinition
свойства

angle


ksPlaneAngleDefinition::methods
ksPlaneAngleDefinition
методы

GetAxis

GetPlane

GetSurface

SetAxis

SetPlane


ksPlaneAngleDefinition::angle
IPlaneAngleDefinition::angle

Угол наклона плоскости относительно базовой плоскости.

Тип данных - double.


ksPlaneAngleDefinition::GetPlane
IPlaneAngleDefinition::GetPlane

Получить указатель на интерфейс базовой плоскости

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс плоскости ksEntity или IEntity.


ksPlaneAngleDefinition::SetPlane
IPlaneAngleDefinition::SetPlane

Изменить указатель на интерфейс базовой плоскости

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс плоскости ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneAngleDefinition::GetAxis
IPlaneAngleDefinition::GetAxis

Получить указатель на интерфейс базовой прямой (оси или ребра)

Синтаксис Automation:

LPDISPATCH GetAxis();

Синтаксис COM:

LPENTITY GetAxis();

Возвращаемое значение:

	указатель на интерфейс прямой ksEntity или IEntity.


ksPlaneAngleDefinition::SetAxis
IPlaneAngleDefinition::SetAxis

Изменить указатель на интерфейс базовой прямой (оси или ребра)

Синтаксис Automation:

BOOL SetAxis (LPDISPATCH axis);

Синтаксис COM:

BOOL SetAxis (LPENTITY axis);

Входной параметр:

axis	- указатель на интерфейс прямой ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneAngleDefinition::GetSurface
IPlaneAngleDefinition::GetSurface

Получить указатель на интерфейс математической поверхности

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPSURFACE GetSurface();

Возвращаемое значение:

	- указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksPlaneEdgePointDefinition, IPlaneEdgePointDefinition
ksPlaneEdgePointDefinition,
IPlaneEdgePointDefinition

Интерфейс параметров плоскости, проходящей через ребро и вершину.

ksPlaneEdgePointDefinition	- интерфейс Automation
IPlaneEdgePointDefinition	- интерфейс COM
Методы...


ksPlaneEdgePointDefinition::methods
ksPlaneEdgePointDefinition
методы

GetEdge

GetPoint

GetSurface

SetEdge

SetPoint


ksPlaneEdgePointDefinition::SetEdge
IPlaneEdgePointDefinition::SetEdge

Установить указатель на интерфейс ребра, через которое требуется построить плоскость.

Синтаксис Automation:

BOOL SetEdge (LPDISPATCH edge);

Синтаксис COM:

BOOL SetEdge (LPENTITY edge);

Входной параметр:

edge	- указатель на интерфейс ребра ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneEdgePointDefinition::GetEdge
IPlaneEdgePointDefinition::GetEdge

Получить указатель на интерфейс ребра, через которое требуется построить плоскость.

Синтаксис Automation:

LPDISPATCH GetEdge();

Синтаксис COM:

LPENTITY GetEdge();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksPlaneEdgePointDefinition::SetPoint
IPlaneEdgePointDefinition::SetPoint

Установить указатель на интерфейс вершины, через которую требуется построить плоскость.

Синтаксис Automation:

BOOL SetPoint (LPDISPATCH point);

Синтаксис COM:

BOOL SetPoint (LPENTITY point);

Входной параметр:

point	- указатель на интерфейс вершины ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneEdgePointDefinition::GetPoint
IPlaneEdgePointDefinition::GetPoint

Получить указатель на интерфейс вершины, через которую требуется построить плоскость.

Синтаксис Automation:

LPDISPATCH GetPoint();

Синтаксис COM:

LPENTITY GetPoint();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksPlaneEdgePointDefinition::GetSurface
IPlaneEdgePointDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPENTITY GetSurface();

Возвращаемое значение:

	указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksPlaneLineToEdgeDefinition, IPlaneLineToEdgeDefinition
ksPlaneLineToEdgeDefinition,
IPlaneLineToEdgeDefinition

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

ksPlaneLineToEdgeDefinition	- интерфейс Automation
IPlaneLineToEdgeDefinition	- интерфейс COM
Свойства...

Методы...


ksPlaneLineToEdgeDefinition::props
ksPlaneLineToEdgeDefinition
свойства

parallel


ksPlaneLineToEdgeDefinition::methods
ksPlaneLineToEdgeDefinition
методы

GetEdge1

GetEdge2

GetSurface

SetEdge1

SetEdge2


ksPlaneLineToEdgeDefinition::parallel
IPlaneLineToEdgeDefinition::parallel

Признак положения плоскости.

Тип данных - BOOL.

Значения свойства:

TRUE	- параллельно второму ребру,
FALSE	- перпендикулярно второму ребру.
Синтаксис Automation:

parallel = iPlaneLineToEdge.parallel	Получить свойство (*)
iPlaneLineToEdge.parallel = parallel	Установить свойство (*)
parallel = iPlaneLineToEdge.GetParallel()	Получить свойство (**)
iPlaneLineToEdge.SetParallel(parallel)	Установить свойство (**)


ksPlaneLineToEdgeDefinition::SetEdge1
IPlaneLineToEdgeDefinition::SetEdge1

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

Синтаксис Automation:

BOOL SetEdge1 (LPDISPATCH edge1);

Синтаксис COM:

BOOL SetEdge1 (LPENTITY edge1);

Входной параметр:

edge1	- указатель на интерфейс  ребра ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneLineToEdgeDefinition::GetEdge1
IPlaneLineToEdgeDefinition::GetEdge1

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

Синтаксис Automation:

LPDISPATCH GetEdge1();

Синтаксис COM:

LPENTITY GetEdge1();

Возвращаемое значение:

	указатель на интерфейс ребра ksEntity или IEntity.


ksPlaneLineToEdgeDefinition::SetEdge2
IPlaneLineToEdgeDefinition::SetEdge2

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

Синтаксис Automation:

BOOL SetEdge2 (LPDISPATCH edge2);

Синтаксис COM:

BOOL SetEdge2 (LPENTITY edge2);

Входной параметр:

edge2	- указатель на интерфейс ребра ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneLineToEdgeDefinition::GetEdge2
IPlaneLineToEdgeDefinition::GetEdge2

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

Синтаксис Automation:

LPDISPATCH GetEdge2();

Синтаксис COM:

LPENTITY GetEdge2();

Возвращаемое значение:

	указатель на интерфейс ребра ksEntity или IEntity.


ksPlaneLineToEdgeDefinition::GetSurface
IPlaneLineToEdgeDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPENTITY GetSurface();

Возвращаемое значение:

	указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksPlaneLineToPlaneDefinition, IPlaneLineToPlaneDefinition
ksPlaneLineToPlaneDefinition,
IPlaneLineToPlaneDefinition

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

ksPlaneLineToPlaneDefinition	- интерфейс Automation
IPlaneLineToPlaneDefinition	- интерфейс COM
Свойства...

Методы...


ksPlaneLineToPlaneDefinition::props
ksPlaneLineToPlaneDefinition
свойства

parallel


ksPlaneLineToPlaneDefinition::methods
ksPlaneLineToPlaneDefinition
методы

GetEdge

GetPlane

GetSurface

SetEdge

SetPlane


ksPlaneLineToPlaneDefinition::parallel
IPlaneLineToPlaneDefinition::parallel

Признак положения плоскости.

Тип данных - BOOL.

Значения свойства:

TRUE	- параллельно грани,
FALSE	- перпендикулярно грани.
Синтаксис Automation:

parallel = iPlaneLineToPlane.parallel	Получить свойство (*)
iPlaneLineToPlane.parallel = parallel	Установить свойство (*)
parallel = iPlaneLineToPlane.GetParallel()	Получить свойство (**)
iPlaneLineToPlane.SetParallel(parallel)	Установить свойство (**)


ksPlaneLineToPlaneDefinition::SetEdge
IPlaneLineToPlaneDefinition::SetEdge

Установить указатель на интерфейс ребра, через которое будет проходить новая плоскость.

Синтаксис Automation:

BOOL SetEdge (LPDISPATCH edge);

Синтаксис COM:

BOOL SetEdge (LPENTITY edge);

Входной параметр:

edge	- указатель на интерфейс ребра ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneLineToPlaneDefinition::GetEdge
IPlaneLineToPlaneDefinition::GetEdge

Получить указатель на интерфейс ребра, через которое будет проходить новая плоскость.

Синтаксис Automation:

LPDISPATCH GetEdge();

Синтаксис COM:

LPDISPATCH GetEdge();

Возвращаемое значение:

	указатель на интерфейс ребра ksEntity или IEntity.


ksPlaneLineToPlaneDefinition::SetPlane
IPlaneLineToPlaneDefinition::SetPlane

Установить указатель на интерфейс плоского объекта, параллельно или перпендикулярно которому будет проходить новая плоскость.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneLineToPlaneDefinition::GetPlane
IPlaneLineToPlaneDefinition::GetPlane

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

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksPlaneLineToPlaneDefinition::GetSurface
IPlaneLineToPlaneDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPENTITY GetSurface();

Возвращаемое значение:

	указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksRequestInfo3D, IRequestInfo3D
ksRequestInfo3D,
IRequestInfo

Интерфейс параметров запроса к системе.

ksRequestInfo3D	- интерфейс Automation
IRequestInfo3D	- интерфейс COM
Свойства...

Методы...

Примечания:

1. Данный интерфейс позволяет установить параметры процесса указания местоположения точки или объектов (UserGetPlacementAndEntity):

2. Указатель на данный интерфейс можно получить методом GetRequestInfo.

3. Методами данного интерфейса можно получить/изменить:

- строку подсказки в процессе.

- функцию обратной связи для фильтрации объектов в процессе указания.

- функцию обратной связи процесса.

4. Методами данного интерфейса можно получить:

- указатель на интерфейс локальной системы координат ksPlacement.

- указатель на интерфейс ksEntityCollection - массив указанных в процессе объектов.


ksRequestInfo3D::props
ksRequestInfo3D
свойства

prompt


ksRequestInfo3D::methods
ksRequestInfo3D
методы

CreatePhantom

GetCallBack

GetCurrentCommand

GetEntityCollection

GetFilterCallBack

GetIPhantom

GetMateConstraintCollection

GetPlacement

SetCallBack

SetFilterCallBack


ksRequestInfo3D::prompt
IRequestInfo3D::prompt

Строка-подсказка процесса.

Тип данных - строка.


ksRequestInfo3D::GetFilterCallBack
IRequestInfo3D::GetFilterCallBack

Получить имя (в Automation) или адрес (в COM) функции обратной связи для фильтрации объектов.

Синтаксис Automation:

BSTR GetFilterCallBack();

Возвращаемое значение:

	имя функции.
Синтаксис COM:

USERSELECTFILTERPROC GetFilterCallBack();

Возвращаемое значение:

	адрес функции.


ksRequestInfo3D::GetCallBack
IRequestInfo3D::GetCallBack

Получить имя (в Automation) или адрес (в COM) функции обратной связи процесса.

Синтаксис Automation:

BSTR GetCallBack();

Возвращаемое значение:

	имя функции.
Синтаксис COM:

USERSELECTCALLBACKPROC GetCallBack();

Возвращаемое значение:

	адрес функции.


ksRequestInfo3D::SetFilterCallBack
IRequestInfo3D::SetFilterCallBack

Изменить имя (в Automation) или адрес (в COM) функции обратной связи для фильтрации объектов.

Синтаксис Automation:

BOOL SetFilterCallBack (BSTR methodName,

long hInst,

LPDISPATCH dispatchOCX);

Входные параметры:

methodName	- имя функции,
hInst	- HINSTANCE модуля, в котором находится функция,
dispatchOCX	- интерфейс, в котором находится функция.
Синтаксис COM:

BOOL SetFilterCallBack (USERSELECTFILTERPROC callBack);

Входной параметр:

callBack	- адрес функции.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Тип функции обратной связи для фильтрации объекта (функции-«фильтра»)

typedef BOOL (__stdcall * USERSELECTFILTERPROC)(LPENTITY);

Прототип FilterCallBack-функции:

Синтаксис Automation (пример для Visual C++):

BOOL WINAPI SELECTFILTERPROC (LPDISPATCH _entity);

Синтаксис COM:

BOOL __stdcall SelectFilterProc (LPENTITY entity);

Входной параметр:

entity	- указатель на интерфейс текущего элемента или объекта ksEntity или IEntity.
Возвращаемое значение:

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


ksRequestInfo3D::SetCallBack
IRequestInfo3D::SetCallBack

Изменить имя (в Automation) или адрес (в COM) функции обратной связи процесса.

Синтаксис Automation:

BOOL SetCallBack (BSTR methodName,

long hInst,

LPDISPATCH dispatchOCX);

Входные параметры:

methodName	- имя функции,
hInst	- HINSTANCE модуля, в котором находится функция,
dispatchOCX	- интерфейс, в котором находится функция.
Синтаксис COM:

BOOL SetCallBack (USERSELECTCALLBACKPROC callBack);

Входной параметр:

callBack	- адрес функции.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Тип функции обратной связи для выбора объекта:

typedef int (__stdcall * USERSELECTCALLBACKPROC)(LPENTITY, LPREQUESTINFO);

Прототип CallBack-функции:

Синтаксис Automation (пример для Visual C++):

int WINAPI SELECTCALLBACKPROC (LPDISPATCH entity,

LPDISPATCH info);

Синтаксис COM:

int __stdcall SelectCallBackProc (LPENTITY entity, LPREQUESTINFO info);

Входные параметры:

entity	- указатель на интерфейс ksEntity или IEntity,
info	- указатель на интерфейс ksRequestInfo3D или IRequestInfo3D.
Функция вызывается по нажатию кнопки мыши на подсвеченном объекте.

Получить доступ к массиву объектов, указываемых в процессе, можно вызовом метода GetEntityCollection у параметра info.

Если входной параметр entity равен 0, то в процессе была указана точка и рекомендуется заполнить массив нулевыми указателями.

Если entity не равен 0, то, при необходимости, можно добавить данный объект в массив.

CallBack-функция должна вернуть 1, если содержимое массива выбранных элементов было изменено (в этом случае будет обновлена подсветка выбранных объектов в модели), и 0, если массив не изменился (в модели никаких изменений не произойдет).


ksRequestInfo3D::GetPlacement
IRequestInfo3D::GetPlacement

Получить указатель на интерфейс локальной системы координат.

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


ksRequestInfo3D::GetEntityCollection
IRequestInfo3D::GetEntityCollection

Получить указатель на интерфейс массива объектов, указанных в процессе.

Синтаксис Automation:

LPDISPATCH GetEntityCollection();

Синтаксис COM:

LPENTITYCOLLECTION GetEntityCollection();

Возвращаемое значение:

	указатель на интерфейс ksEntityCollection или IEntityCollection.
Примечание:

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


ksRequestInfo3D::GetCurrentCommand
IRequestInfo3D::GetCurrentCommand

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

Синтаксис Automation:

long GetCurrentCommand();

Синтаксис COM:

long GetCurrentCommand();

Возвращаемое значение:

	номер текущей команды.


ksRequestInfo3D::GetMateConstraintCollection
IRequestInfo3D::GetMateConstraintCollection

Получить указатель на интерфейс массива временных сопряжений для фантома.

Синтаксис Automation:

LPDISPATCH GetMateConstraintCollection();

Синтаксис COM:

LPMATECONSTRAINTCOLLECTION GetMateConstraintCollection();

Возвращаемое значение:

	указатель на интерфейс ksMateConstraintCollection или ImateConstraintCollection.


ksRequestInfo3D::GetIPhantom
IRequestInfo3D::GetIPhantom

Получить указатель на интерфейс фантома.

Синтаксис Automation:

LPDISPATCH GetIPhantom();

Синтаксис COM:

LPPART GetIPhantom();

Возвращаемое значение:

	указатель на интерфейс ksPart или IPart.


ksRequestInfo3D::CreatePhantom
IRequestInfo3D::CreatePhantom

Создать фантом.

Синтаксис Automation:

BOOL CreatePhantom();

Синтаксис COM:

BOOL CreatePhantom();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


Интерфейсы ksPlaneNormalToSurfaceDefinition, IPlaneNormalToSurfaceDefinition
ksPlaneNormalToSurfaceDefinition,
IPlaneNormalToSurfaceDefinition

Интерфейс параметров нормальной плоскости.

ksPlaneNormalToSurfaceDefinition	- интерфейс Automation
IPlaneNormalToSurfaceDefinition	- интерфейс COM
Свойства...

Методы...


ksPlaneNormalToSurfaceDefinition::props
ksPlaneNormalToSurfaceDefinition
свойства

ang


ksPlaneNormalToSurfaceDefinition::methods
ksPlaneNormalToSurfaceDefinition
методы

GetFace

GetPlane

GetPlane

GetSurface

SetFace

SetPlane


ksPlaneNormalToSurfaceDefinition::ang
IPlaneNormalToSurfaceDefinition::ang

Угол между плоскостью и опорным плоским объектом.

Тип данных - double.

Синтаксис Automation:

ang = iPlaneNormalToSurface.ang	Получить свойство (*)
iPlaneNormalToSurface.ang = ang	Установить свойство (*)
ang = iPlaneNormalToSurface.GetAngle()	Получить свойство (**)
iPlaneNormalToSurface.SetAngle(ang)	Установить свойство (**)


ksPlaneNormalToSurfaceDefinition::SetFace
IPlaneNormalToSurfaceDefinition::SetFace

Установить указатель на интерфейс цилиндрической или конической грани, к которой требуется построить нормальную плоскость.

Синтаксис Automation:

BOOL SetFace (LPDISPATCH face);

Синтаксис COM:

BOOL SetFace (LPENTITY face);

Входной параметр:

plane	- указатель на интерфейс цилиндрической или конической грани ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneNormalToSurfaceDefinition::GetFace
IPlaneNormalToSurfaceDefinition::GetFace

Получить указатель на интерфейс цилиндрической или конической грани, к которой требуется построить нормальную плоскость.

Синтаксис Automation:

LPDISPATCH GetFace();

Синтаксис COM:

LPENTITY GetFace();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksPlaneNormalToSurfaceDefinition::SetPlane
IPlaneNormalToSurfaceDefinition::SetPlane

Установить указатель на интерфейс плоского объекта, параллельно которому должна пройти новая плоскость.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения


ksPlaneNormalToSurfaceDefinition::GetPlane
IPlaneNormalToSurfaceDefinition::GetPlane

Получить указатель на интерфейс плоского объекта, параллельно которому должна пройти новая плоскость.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.


ksPlaneNormalToSurfaceDefinition::GetSurface
IPlaneNormalToSurfaceDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPSURFACE GetSurface();

Возвращаемое значение:

	- указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksPlaneOffsetDefinition, IPlaneOffsetDefinition
ksPlaneOffsetDefinition,
IPlaneOffsetDefinition

Интерфейс параметров смещенной плоскости.

ksPlaneOffsetDefinition	- интерфейс Automation
IPlaneOffsetDefinition	- интерфейс COM
Свойства...

Методы...


ksPlaneOffsetDefinition::props
ksPlaneOffsetDefinition
свойства

direction

offset


ksPlaneOffsetDefinition::methods
ksPlaneOffsetDefinition
методы

GetPlane

GetSurface

SetPlane


ksPlaneOffsetDefinition::direction
IPlaneOffsetDefinition::direction

Направление смещения от базовой плоскости.

Тип данных - BOOL.

Значения свойства:

TRUE	- прямое направление,
FALSE	- обратное направление.
Примечание:

Прямое направление совпадает с направлением нормали к базовой плоскости.


ksPlaneOffsetDefinition::offset
IPlaneOffsetDefinition::offset

Смещение (расстояние) от базовой плоскости.

Тип данных - double.


ksPlaneOffsetDefinition::GetPlane
IPlaneOffsetDefinition::GetPlane

Получить указатель на интерфейс базовой плоскости.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс плоскости ksEntity или IEntity.


ksPlaneOffsetDefinition::SetPlane
IPlaneOffsetDefinition::SetPlane

Изменить указатель на интерфейс базовой плоскости.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс плоскости ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneOffsetDefinition::GetSurface
IPlaneOffsetDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPSURFACE GetSurface();

Возвращаемое значение:

	- указатель на интерфейс математической поверхностиksSurface или ISurface.


Интерфейсы ksPlaneParallelDefinition, IPlaneParallelDefinition
ksPlaneParallelDefinition,
IPlaneParallelDefinition

Интерфейс параметров плоскости, проходящей через вершину параллельно другой плоскости.

ksPlaneParallelDefinition	- интерфейс Automation
IPlaneParallelDefinition	- интерфейс COM
Методы...


ksPlaneParallelDefinition::methods
ksPlaneParallelDefinition
методы

GetPlane

GetPoint

GetSurface

SetPlane

SetPoint


ksPlaneParallelDefinition::SetPlane
IPlaneParallelDefinition::SetPlane

Установить указатель на интерфейс плоскости, параллельно которой будет проходить новая плоскость.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс плоскости ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneParallelDefinition::GetPlane
IPlaneParallelDefinition::GetPlane

Получить указатель на интерфейс плоскости, параллельно которой будет проходить новая плоскость.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс плоскости ksEntity или IEntity.


ksPlaneParallelDefinition::SetPoint
IPlaneParallelDefinition::SetPoint

Установить указатель на интерфейс вершины, через которую будет проходить новая плоскость.

Синтаксис Automation:

BOOL SetPoint (LPDISPATCH point);

Синтаксис COM:

BOOL SetPoint (LPENTITY point);

Входной параметр:

point	- указатель на интерфейс вершины ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneParallelDefinition::GetPoint
IPlaneParallelDefinition::GetPoint

Получить указатель на интерфейс вершины, через которую будет проходить новая плоскость.

Синтаксис Automation:

LPDISPATCH GetPoint();

Синтаксис COM:

LPENTITY GetPoint();

Возвращаемое значение:

	указатель на интерфейс вершины ksEntity или IEntity.


ksPlaneParallelDefinition::GetSurface
IPlaneParallelDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPENTITY GetSurface();

Возвращаемое значение:

	указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksPlanePerpendicularDefinition, IPlanePerpendicularDefinition
ksPlanePerpendicularDefinition,
IPlanePerpendicularDefinition

Интерфейс параметров плоскости, проходящей через вершину перпендикулярно ребру.

ksPlanePerpendicularDefinition	- интерфейс Automation
IPlanePerpendicularDefinition	- интерфейс COM
Методы...


ksPlanePerpendicularDefinition::methods
ksPlanePerpendicularDefinition
методы

GetEdge

GetPoint

GetSurface

SetEdge

SetPoint


ksPlanePerpendicularDefinition::SetEdge
IPlanePerpendicularDefinition::SetEdge

Установить указатель на интерфейс ребра, перпендикулярно которому будет проходить новая плоскость.

Синтаксис Automation:

BOOL SetEdge (LPDISPATCH edge);

Синтаксис COM:

BOOL SetEdge (LPENTITY edge);

Входной параметр:

edge	- указатель на интерфейс ребра ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlanePerpendicularDefinition::GetEdge
IPlanePerpendicularDefinition::GetEdge

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

Синтаксис Automation:

LPDISPATCH GetEdge();

Синтаксис COM:

LPENTITY GetEdge();

Возвращаемое значение:

	указатель на интерфейс ребра ksEntity или IEntity.


ksPlanePerpendicularDefinition::SetPoint
IPlanePerpendicularDefinition::SetPoint

Установить указатель на интерфейс вершины, через которую будет проходить новая плоскость.

Синтаксис Automation:

BOOL SetPoint (LPDISPATCH point);

Синтаксис COM:

BOOL SetPoint (LPENTITY point);

Входной параметр:

point	- указатель на интерфейс вершины ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlanePerpendicularDefinition::GetPoint
IPlanePerpendicularDefinition::GetPoint

Получить указатель на интерфейс вершины, через которую будет проходить новая плоскость.

Синтаксис Automation:

LPDISPATCH GetPoint();

Синтаксис COM:

LPENTITY GetPoint();

Возвращаемое значение:

	указатель на интерфейс вершины ksEntity или IEntity.


ksPlanePerpendicularDefinition::GetSurface
IPlanePerpendicularDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPENTITY GetSurface();

Возвращаемое значение:

	указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksPlaneTangentToSurfaceDefinition, IPlaneTangentToSurfaceDefinition
ksPlaneTangentToSurfaceDefinition,
IPlaneTangentToSurfaceDefinition

Интерфейс параметров касательной плоскости.

ksPlaneTangentToSurfaceDefinition	- интерфейс Automation
IPlaneTangentToSurfaceDefinition	- интерфейс COM
Свойства...

Методы...


ksPlaneTangentToSurfaceDefinition::props
ksPlaneTangentToSurfaceDefinition
свойства

choosePlane


ksPlaneTangentToSurfaceDefinition::methods
ksPlaneTangentToSurfaceDefinition
методы

GetFace

GetPlane

GetSurface

SetFace

SetPlane


ksPlaneTangentToSurfaceDefinition::choosePlane
IPlaneTangentToSurfaceDefinition::choosePlane

Изменение положения касательной плоскости относительно выбранной цилиндрической или конической грани.

Тип данных - long.

Значения свойства:

1	- положение, предложенное по умолчанию,
0	- положение, противоположное предложенному по умолчанию.
Синтаксис Automation:

choosePlane = iPlaneTangentToSurface.choosePlane	Получить свойство (*)
iPlaneTangentToSurface.choosePlane = choosePlane	Установить свойство (*)
choosePlane = iPlaneTangentToSurface.GetChoosePlane()	Получить свойство (**)
iPlaneTangentToSurface.SetChoosePlane(choosePlane)	Установить свойство (**)


ksPlaneTangentToSurfaceDefinition::SetFace
IPlaneTangentToSurfaceDefinition::SetFace

Установить указатель на интерфейс цилиндрической или конической грани, к которой требуется построить касательную плоскость.

Синтаксис Automation:

BOOL SetFace (LPDISPATCH face);

Синтаксис COM:

BOOL SetFace (LPENTITY face);

Входной параметр:

plane	- указатель на интерфейс грани ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneTangentToSurfaceDefinition::GetFace
IPlaneTangentToSurfaceDefinition::GetFace

Получить указатель на интерфейс цилиндрической или конической грани, к которой требуется построить касательную плоскость.

Синтаксис Automation:

LPDISPATCH GetFace();

Синтаксис COM:

LPENTITY GetFace();

Возвращаемое значение:

	указатель на интерфейс грани ksEntity или IEntity.


ksPlaneTangentToSurfaceDefinition::SetPlane
IPlaneTangentToSurfaceDefinition::SetPlane

Установить указатель на интерфейс плоского объекта, параллельно которому должна пройти новая плоскость.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	- указатель на интерфейс плоской грани или плоскости ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPlaneTangentToSurfaceDefinition::GetPlane
IPlaneTangentToSurfaceDefinition::GetPlane

Получить указатель на интерфейс плоского объекта, параллельно которому должна пройти новая плоскость.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	- указатель на интерфейс плоской грани или плоскости ksEntity или IEntity.


ksPlaneTangentToSurfaceDefinition::GetSurface
IPlaneTangentToSurfaceDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPSURFACE GetSurface();

Возвращаемое значение:

	- указатель на интерфейс плоской грани или плоскости ksSurface или ISurface.


Интерфейсы ksRibDefinition, IRibDefinition
ksRibDefinition,
IRibDefinition

Интерфейс ребра жесткости.

ksRibDefinition	- интерфейс Automation
IRibDefinition	- интерфейс COM
Свойства...

Методы...


ksRibDefinition::props
ksRibDefinition
свойства

angle

index

side


ksRibDefinition::methods
ksRibDefinition
методы

GetSketch

SetSketch

ThinParam


ksRibDefinition::index
IRibDefinition::index

Сегмент, задающий направление уклона.

Тип данных - long.

Значения свойства:

0	- первое ребро эскиза,
1, 2,… и т.д.	- последующие ребра эскиза.
Синтаксис Automation:

index = iRib.index	Получить свойство (*)
iRib.index = index	Установить свойство (*)
index = iRib.GetIndex()	Получить свойство (**)
iRib.SetIndex(index)	Установить свойство (**)


ksRibDefinition::angle
IRibDefinition::angle

Угол уклона ребра жесткости.

Тип данных - double.

Синтаксис Automation:

angle = iRib.angle	Получить свойство (*)
iRib.angle = angle	Установить свойство (*)
angle = iRib.GetAngle()	Получить свойство (**)
iRib.SetAngle(angle)	Установить свойство (**)


ksRibDefinition::side
IRibDefinition::side

Направление формирования ребра.

Тип данных - long.

Значения свойства:

0	- прямое направление в плоскости эскиза,
1	- обратное направление в плоскости эскиза,
2	- прямое направление ортогонально эскизу,
3	- обратное направление ортогонально эскизу.
Синтаксис Automation:

side = iRib.side	Получить свойство (*)
iRib.side = side	Установить свойство (*)
side = iRib.GetSide()	Получить свойство (**)
iRib.SetAngle(angle)	Установить свойство (**)


ksRibDefinition::ThinParam
IRibDefinition::ThinParam

Получить указатель на интерфейс тонкой стенки.

Синтаксис Automation:

LPDISPATCH ThinParam();

Синтаксис COM:

LPTHINPROPERTY ThinParam();

Возвращаемое значение:

	указатель на интерфейс ksThinParam или IThinParam.


ksRibDefinition::GetSketch
IRibDefinition::GetSketch

Получить указатель на интерфейс эскиза ребра.

Синтаксис Automation:

LPDISPATCH * GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс эскиза ребра ksEntity или IEntity.


ksRibDefinition::SetSketch
IRibDefinition::SetSketch

Установить эскиз ребра.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс эскиза ребра ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksPolyLineDefinition, IPolygonalLineDefinition
ksPolyLineDefinition,
IPolygonalLineDefinition

Интерфейс параметров ломаной.

ksPolyLineDefinition	- интерфейс Automation
IPolygonalLineDefinition	- интерфейс COM
Свойства...

Методы...


ksPolyLineDefinition::props
ksPolyLineDefinition
свойства

cls


ksPolyLineDefinition::methods
ksPolyLineDefinition
методы

AddVertex

DeleteVertex

Flush

GetCountVertex

GetParamVertex

InsertVertex

ReadFromFile

WriteToFile


ksPolyLineDefinition::cls
IPolygonalLineDefinition::cls

Признак замкнутости ломаной.

Тип данных - BOOL.

Значения свойства:

TRUE	- замкнутая ломаная,
FALSE	- разомкнутая ломаная.
Синтаксис Automation:

cls = iPolyLine.cls	Получить свойство (*)
iPolyLine.cls = cls	Установить свойство (*)
cls = iPolyLine.GetClosed()	Получить свойство (**)
iPolyLine.SetClosed(cls)	Установить свойство (**)


ksPolyLineDefinition::GetCountVertex
IPolygonalLineDefinition::GetCountVertex

Получить количество вершин ломаной.

Синтаксис Automation:

long GetCountVertex();

Синтаксис COM:

long GetCountVertex();

Возвращаемое значение:

	Количество вершин.


ksPolyLineDefinition::AddVertex
IPolygonalLineDefinition::AddVertex

Добавить вершину.

Синтаксис Automation:

BOOL AddVertex (double x,

double y,

double z,

double radius);

Синтаксис COM:

BOOL AddVertex (double x,

double y,

double z,

double radius);

Входные параметры:

X	- x координата вершины,
Y	- y координата вершины,
Z	- z координата вершины,
Radius	- радиус скругления в вершине.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPolyLineDefinition::InsertVertex
IPolygonalLineDefinition::InsertVertex

Вставить вершину перед указанной.

Синтаксис Automation:

BOOL InsertVertex (long index,

double x,

double y,

double z,

double radius);

Синтаксис COM:

BOOL InsertVertex (long index,

double x,

double y,

double z,

double radius);

Входные параметры:

Index	- индекс вершины в массиве,
X	- x координата вершины,
Y	- y координата вершины,
Z	- z координата вершины,
Radius	- радиус скругления в вершине.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPolyLineDefinition::DeleteVertex
IPolygonalLineDefinition::DeleteVertex

Удалить вершину с указанным индексом.

Синтаксис Automation:

BOOL DeleteVertex (long index);

Синтаксис COM:

BOOL DeleteVertex (long index);

Входной параметр:

Index	- индекс вершины в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPolyLineDefinition::GetParamVertex
IPolygonalLineDefinition::GetParamVertex

Получить параметры вершины с указанным индексом.

Синтаксис Automation:

BOOL GetParamVertex (long index,

double* x,

double* y,

double* z,

double* radius);

Синтаксис COM:

BOOL GetParamVertex (long index,

double* x,

double* y,

double* z,

double* radius);

Входной параметр:

Index	- индекс вершины в массиве.
Выходные параметры:

X	- x координата вершины,
Y	- y координата вершины,
Z	- z координата вершины,
Radius	- радиус скругления в вершине.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPolyLineDefinition::Flush
IPolygonalLineDefinition::Flush

Очистить массив вершин ломаной.

Синтаксис Automation:

BOOL Flush();

Синтаксис COM:

BOOL Flush();

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPolyLineDefinition::ReadFromFile
IPolygonalLineDefinition::ReadFromFile

Прочитать параметры вершин из текстового файла.

Синтаксис Automation:

BOOL ReadFromFile (BSTR fileName);

Синтаксис COM:

BOOL ReadFromFile (LPOLESTR fileName);

Входной параметр:

fileName	- имя файла.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksPolyLineDefinition::WriteToFile
IPolygonalLineDefinition::WriteToFile

Записать параметры вершин в текстовый файл.

Синтаксис Automation:

BOOL WriteToFile (LPCTSTR fileName);

Синтаксис COM:

BOOL WriteToFile (LPOLESTR fileName);

Входной параметр:

fileName	- имя файла.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksRotatedParam, IRotatedParam
ksRotatedParam,
IRotatedParam

Интерфейс параметров элемента вращения.

ksRotatedParam	- интерфейс Automation
IRotatedParam	- интерфейс COM
Свойства...


ksRotatedParam::props
ksRotatedParam
свойства

angleNormal

angleReverse

direction

toroidShape


ksRotatedParam::angleNormal
IRotatedParam::angleNormal

Угол вращения в прямом направлении.

Тип данных - double.


ksRotatedParam::angleReverse
IRotatedParam::angleReverse

Угол вращения в обратном направлении.

Тип данных - double.


ksRotatedParam::toroidShape
IRotatedParam::toroidShape

Признак тороида.

Тип данных - BOOL.

Значения свойства:

TRUE	- тороид,
FALSE	- сфероид.


ksRotatedParam::direction
IRotatedParam::direction

Направление вращения.

Типы направлений...

Примечание:

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

Нормаль, проведенная к поверхности тела, всегда выходит из тела.


Интерфейсы ksShellDefinition, IShellDefinition
ksShellDefinition,
IShellDefinition

Интерфейс тонкостенной оболочки.

ksShellDefinition	- интерфейс Automation
IShellDefinition	- интерфейс COM
Свойства...

Методы...


ksShellDefinition::props
ksShellDefinition
свойства

thickness

thinType


ksShellDefinition::methods
ksShellDefinition
методы

FaceArray


ksShellDefinition::FaceArray
IShellDefinition::FaceArray

Получить указатель на интерфейс массива удаляемых граней.

Синтаксис Automation:

LPDISPATCH FaceArray();

Синтаксис COM:

LPENTITYCOLLECTION FaceArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива удаляемых граней ksEntityCollection или IEntityCollection.


ksShellDefinition::thickness
IShellDefinition::thickness

Толщина оболочки.

Тип данных - double.

Синтаксис Automation:

thickness = iShell.thickness	Получить свойство (*)
iShell.thickness = thickness	Установить свойство (*)
thickness = iShell.GetThickness()	Получить свойство (**)
iShell.SetThickness(thickness)	Установить свойство (**)


ksShellDefinition::thinType
IShellDefinition::thinType

Направление построения оболочки.

Тип данных - BOOL.

Значения свойства:

TRUE	- внутрь,
FALSE	- наружу.
Синтаксис Automation:

thinType = iShell.thinType	Получить свойство (*)
iShell.thinType = thinType	Установить свойство (*)
thinType = iEvolution.GetThinType()	Получить свойство (**)
iShell.SetThinType(thinType)	Установить свойство (**)


Интерфейсы ksSketchDefinition, ISketchDefinition
ksSketchDefinition,
ISketchDefinition

Интерфейс параметров эскиза.

ksSketchDefinition	- интерфейс Automation
ISketchDefinition	- интерфейс COM
Свойства...

Методы...


ksSketchDefinition::props
ksSketchDefinition
свойства

angle


ksSketchDefinition::methods
ksSketchDefinition
методы

AddProjectionOf

BeginEdit

EndEdit

GetLocation

GetLoftPoint

GetPlane

GetSurface

SetLocation

SetLoftPoint

SetPlane

UserSetPlacement


ksSketchDefinition::angle
ISketchDefinition::angle

Угол поворота эскиза относительно проекции системы координат модели на плоскость эскиза (в градусах).

Тип данных - double.


ksSketchDefinition::GetPlane
ISketchDefinition::GetPlane

Получить базовую плоскость эскиза.

Синтаксис Automation:

LPDISPATCH GetPlane();

Синтаксис COM:

LPENTITY GetPlane();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksSketchDefinition::SetPlane
ISketchDefinition::SetPlane

Изменить базовую плоскость эскиза

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPENTITY plane);

Входной параметр:

plane	указатель на интерфейс базовой плоскости эскиза ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSketchDefinition::GetLoftPoint
ISketchDefinition::GetLoftPoint

Получить координаты точки в плоскости эскиза

Синтаксис Automation:

BOOL GetLoftPoint (double * x, double * y);

Синтаксис COM:

BOOL GetLoftPoint (double * x, double * y);

Выходные параметры:

x, y	- координаты точки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

При формировании элемента по сечениям (операции ksBaseLoftDefinition, ksBossLoftDefinition, ksCutLoftDefinition) полученная точка определяет ближайшую к ней вершину как точку, через которую пройдет линия, соединяющая эскизы.


ksSketchDefinition::SetLoftPoint
ISketchDefinition::SetLoftPoint

Изменить координаты точки в плоскости эскиза

Синтаксис Automation:

BOOL SetLoftPoint (double x, double y);

Синтаксис COM:

BOOL SetLoftPoint (double x, double y);

Входные параметры:

x, y	- координаты точки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

При формировании элемента по сечениям (операции ksBaseLoftDefinition, ksBossLoftDefinition, ksCutLoftDefinition, ksLoftSurfaceDefinition) указанная точка определяет ближайшую к ней вершину как точку, через которую пройдет линия, соединяющая эскизы.


ksSketchDefinition::GetLocation
ISketchDefinition::GetLocation

Получить смещение системы координат эскиза относительно проекции системы координат модели на плоскость эскиза.

Синтаксис Automation:

BOOL GetLocation (double * x, double * y);

Синтаксис COM:

BOOL GetLocation (double * x, double * y);

Выходные параметры:

x, y	- смещение вдоль осей.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSketchDefinition::SetLocation
ISketchDefinition::SetLocation

Изменить смещение системы координат эскиза относительно проекции системы координат модели на плоскость эскиза

Синтаксис Automation:

BOOL SetLocation (double x, double y);

Синтаксис COM:

BOOL SetLocation (double x, double y);

Входные параметры:

x, y	- смещение вдоль осей.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSketchDefinition::BeginEdit
ISketchDefinition::BeginEdit

Войти в режим редактирования эскиза (ksDocument2D).

Синтаксис Automation:

LPDISPATCH BeginEdit();

Возвращаемое значение:

	указатель на интерфейс эскиза ksDocument2D.
Синтаксис COM:

BOOL BeginEdit();

Возвращаемое значение:

TRUE	- в случае успешного завершения (режим редактирования включен).
Примечание:

После редактирования необходимо вызвать функцию EndEdit.


ksSketchDefinition::EndEdit
ISketchDefinition::EndEdit

Выйти из режима редактирования эскиза

Синтаксис Automation:

BOOL EndEdit();

Синтаксис COM:

BOOL EndEdit();

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSketchDefinition::UserSetPlacement
ISketchDefinition::UserSetPlacement

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

Синтаксис Automation:

BOOL UserSetPlacement (BSTR prompt);

Синтаксис COM:

BOOL UserSetPlacement (LPOLESTR prompt);

Входной параметр:

prompt	- текст строки-подсказки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

После вызова этой функции запускается такой же режим, как после вызова в КОМПАС-3D команды Разместить эскиз.


ksSketchDefinition::AddProjectionOf
ISketchDefinition::AddProjectionOf

Добавить в эскиз проекцию объекта.

Синтаксис Automation:

long AddProjectionOf (LPDISPATCH entity);

Синтаксис COM:

long AddProjectionOf (LPENTITY entity);

Входной параметр:

entity	- указатель на интерфейс объектаksEntity или IEntity.
Возвращаемое значение:

	указатель на группу объектов, получившихся в результате проецирования.
Примечание:

1. Данный метод работает только в режиме редактирования эскиза

2. Параметр entity может быть указателем на ребро, вершину или грань.


ksSketchDefinition::GetSurface
ISketchDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPENTITY GetSurface();

Возвращаемое значение:

	указатель на интерфейс ksSurface или ISurface.


Интерфейсы ksSplineDefinition, ISplineDefinition
ksSplineDefinition,
ISplineDefinition

Интерфейс параметров сплайна.

ksSplineDefinition	- интерфейс Automation
ISplineDefinition	- интерфейс COM
Свойства...

Методы...


ksSplineDefinition::props
ksSplineDefinition
свойства

cls

degree

splineOnPoles


ksSplineDefinition::methods
ksSplineDefinition
методы

AddVertex

DeleteVertex

Flush

GetCountVertex

GetParamVertex

InsertVertex

ReadFromFile

WriteToFile


ksSplineDefinition::cls
ISplineDefinition::cls

Признак замкнутости сплайна.

Тип данных - BOOL.

Значения свойства:

TRUE	- замкнутый сплайн,
FALSE	- разомкнутый сплайн.
Синтаксис Automation:

cls = iSpline.cls	Получить свойство (*)
iSpline.cls = cls	Установить свойство (*)
cls = iSpline.GetClosed()	Получить свойство (**)
iSpline.SetClosed(cls)	Установить свойство (**)


ksSplineDefinition::splineOnPoles
ISplineDefinition::splineOnPoles

Признак способа построения сплайна.

Тип данных - BOOL.

Значения свойства:

TRUE	- по полюсам,
FALSE	- по вершинам.
Синтаксис Automation:

splineOnPoles = iSpline.splineOnPoles	Получить свойство (*)
iSpline.splineOnPoles = splineOnPoles	Установить свойство (*)
splineOnPoles = iSpline.GetSplineOnPoles()	Получить свойство (**)
splineOnPoles = iSpline.GetSplineOnPoles()	Установить свойство (**)


ksSplineDefinition::degree
ISplineDefinition::degree

Порядок сплайна.

Тип данных - long.

Синтаксис Automation:

degree = iSpline.degree	Получить свойство (*)
iSpline.degree = degree	Установить свойство (*)
degree = iSpline.GetDegree()	Получить свойство (**)
iSpline.SetDegree(degree)	Установить свойство (**)


ksSplineDefinition::GetCountVertex
ISplineDefinition::GetCountVertex

Получить количество вершин.

Синтаксис Automation:

long GetCountVertex();

Синтаксис COM:

long GetCountVertex();

Возвращаемое значение:

	количество вершин.


ksSplineDefinition::AddVertex
ISplineDefinition::AddVertex

Добавить вершину.

Синтаксис Automation:

BOOL AddVertex (double x,

double y,

double z,

double weight);

Синтаксис COM:

BOOL AddVertex (double x,

double y,

double z,

double weight);

Входные параметры:

x	- x координата вершины,
y	- y координата вершины,
z	- z координата вершины,
weight	- вес вершины.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSplineDefinition::InsertVertex
ISplineDefinition::InsertVertex

Вставить вершину перед указанной.

Синтаксис Automation:

BOOL InsertVertex (long index,

double x,

double y,

double z,

double weight);

Синтаксис COM:

BOOL InsertVertex (long index,

double x,

double y,

double z,

double weight);

Входные параметры:

index	- индекс вершины в массиве,
x	- x координата вершины,
y	- y координата вершины,
z	- z координата вершины,
weight	- вес вершины.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSplineDefinition::DeleteVertex
ISplineDefinition::DeleteVertex

Удалить вершину с указанным индексом.

Синтаксис Automation:

BOOL DeleteVertex (long index);

Синтаксис COM:

BOOL DeleteVertex (long index);

Входной параметр:

index	- индекс вершины в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSplineDefinition::GetParamVertex
ISplineDefinition::GetParamVertex

Получить параметры вершины с указанным индексом..

Синтаксис Automation:

BOOL GetParamVertex (long index,

double* x,

double* y,

double* z,

double* weight);

Синтаксис COM:

BOOL GetParamVertex (long index,

double* x,

double* y,

double* z,

double* weight);

Входной параметр:

index	- индекс вершины в массиве.
Выходные параметры:

x	- x координата вершины,
y	- y координата вершины,
z	- z координата вершины,
weight	- вес вершины.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSplineDefinition::Flush
ISplineDefinition::Flush

Очистить массив вершин.

Синтаксис Automation:

BOOL Flush();

Синтаксис COM:

BOOL Flush();

Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSplineDefinition::ReadFromFile
ISplineDefinition::ReadFromFile

Прочитать параметры вершин из текстового файла.

Синтаксис Automation:

BOOL ReadFromFile (BSTR fileName);

Синтаксис COM:

BOOL ReadFromFile (LPOLESTR fileName);

Входной параметр:

fileName	- имя файла.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksSplineDefinition::WriteToFile
ISplineDefinition::WriteToFile

Записать параметры вершин в текстовый файл.

Синтаксис Automation:

BOOL WriteToFile (LPCTSTR fileName);

Синтаксис COM:

BOOL WriteToFile (LPOLESTR fileName);

Входной параметр:

fileName	- имя файла.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


Интерфейсы ksThinParam, IThinParam
ksThinParam,
IThinParam

Интерфейс структуры параметров тонкой стенки.

ksThinParam	- интерфейс Automation
IThinParam	- интерфейс COM
Свойства...


ksThinParam::props
ksThinParam
свойства

normalThickness

reverseThickness

thin

thinType


ksThinParam::thin
IThinParam::thin

Признак формирования тонкой стенки элемента.

Тип данных - BOOL.

Значения свойства:

TRUE	- тонкая стенка формируется,
FALSE	- тонкая стенка не формируется.


ksThinParam::thinType
IThinParam::thinType

Направление формирования тонкой стенки.

Тип данных - short.

Типы направлений...


ksThinParam::normalThickness
IThinParam::normalThickness

Толщина стенки в прямом направлении.

Тип данных - double.


ksThinParam::reverseThickness
IThinParam::reverseThickness

Толщина стенки в обратном направлении.

Тип данных - double.


Интерфейсы ksVariable, IVariable
ksVariable,
IVariable

Интерфейс внешней параметрической переменной модели.

ksVariable	- интерфейс Automation
IVariable	- интерфейс COM
Свойства...


ksVariable::props
ksVariable
свойства

name

note

value


ksVariable::value
IVariable::value

Значение переменной.

Тип данных - double.


ksVariable::note
IVariable::note

Комментарий к переменной.

Тип данных - строка.


ksVariable::name
IVariable::name

Имя переменной.

Тип данных - строка.

Примечание:

Свойство только для чтения.


Интерфейсы ksVariableCollection, IVariableCollection
ksVariableCollection,
IVariableCollection

Интерфейс динамического массива внешних переменных.

ksVariableCollection	- интерфейс Automation
IVariableCollection	- интерфейс COM
Методы...


ksVariableCollection::methods
ksVariableCollection::Refresh
IVariableCollection::Refresh

First

GetByIndex

GetByName

GetCount

Last

Next

Prev

Refresh


ksVariableCollection::Refresh
IVariableCollection::Refresh

Обновить массив внешних переменных.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

После вызова данной функции удаляются все изменения в массиве внешних переменных компонента, которые не были закреплены вызовом функции RebuildModel. Таким образом, возникает полное соответствие массива внешних переменных в памяти с массивом внешних переменных компонента.

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


ksVariableCollection::GetCount
IVariableCollection::GetCount

Получить количество элементов массива.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksVariableCollection::First
IVariableCollection::First

Получить указатель на интерфейс первого элемента массива.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPVARIABLE First();

Возвращаемое значение:

	указатель на интерфейс внешней переменной модели ksVariable или IVariable.


ksVariableCollection::Last
IVariableCollection::Last

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

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPVARIABLE Last();

Возвращаемое значение:

	указатель на интерфейс внешней переменной модели ksVariable или IVariable.


ksVariableCollection::Next
IVariableCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPVARIABLE Next();

Возвращаемое значение:

	указатель на интерфейс внешней переменной модели ksVariable или IVariable.


ksVariableCollection::Prev
IVariableCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPVARIABLE Prev();

Возвращаемое значение:

	указатель на интерфейс внешней переменной модели ksVariable или IVariable.


ksVariableCollection::GetByIndex
IVariableCollection::GetByIndex

Получить указатель на интерфейс элемента массива по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPVARIABLE GetByIndex (long index);

Входной параметр:

index	индекс элемента в массиве.
Возвращаемое значение:

	указатель на интерфейс внешней переменной модели ksVariable или IVariable.


ksVariableCollection::GetByName
IVariableCollection::GetByName

Получить указатель на интерфейс элемента массива по имени.

Синтаксис Automation:

LPDISPATCH GetByName (BSTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Синтаксис COM:

LPVARIABLE GetByName (LPOLESTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Входные параметры:

name	- имя объекта,
testFullName	- признак полного имени: TRUE - name - полное имя,  FALSE - имя name может быть частью полного имени,
testIgnoreCase	- признак игнорирования регистра символов имени: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:

	указатель на интерфейс внешней переменной модели ksVariable или IVariable.


Интерфейсы ksMateConstraintCollection, IMateConstraintCollection
ksMateConstraintCollection,
IMateConstraintCollection

Интерфейс параметров массива сопряжений компонента сборки.

ksMateConstraintCollection	- интерфейс Automation
IMateConstraintCollection	- интерфейс COM
Методы...


ksMateConstraintCollection::methods
ksMateConstraintCollection
методы

FindIt

First

GetByIndex

GetCount

Last

Next

PrevksMate

Refresh


ksMateConstraintCollection::Refresh
IMateConstraintCollection::Refresh

Обновить массив сопряжений.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Метод не работает для временного массива (полученного от ksRequestInfo3D::GetMateConstraintCollection).


ksMateConstraintCollection::GetCount
IMateConstraintCollection::GetCount

Получить количество элементов в массиве сопряжений.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

unsigned long GetCount();

Возвращаемое значение:

	количество элементов в массиве сопряжений.


ksMateConstraintCollection::First
IMateConstraintCollection::First

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

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPMATECONSTRAINT First();

Возвращаемое значение:

	указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.


ksMateConstraintCollection::Last
IMateConstraintCollection::Last

Получить указатель на интерфейс последнего объекта в массиве сопряжений.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPMATECONSTRAINT Last();

Возвращаемое значение:

	указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.


ksMateConstraintCollection::Next
IMateConstraintCollection::Next

Получить указатель на интерфейс последнего объекта в массиве сопряжений.

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPMATECONSTRAINT Next();

Возвращаемое значение:

	указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.


ksMateConstraintCollection::Prev
IMateConstraintCollection::Prev

Получить указатель на интерфейс предыдущего объекта в массиве сопряжений.

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPMATECONSTRAINT Prev();

Возвращаемое значение:

	указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.


ksMateConstraintCollection::GetByIndex
IMateConstraintCollection::GetByIndex

Получить указатель на интерфейс объекта с указанным индексом в массиве сопряжений.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPMATECONSTRAINT GetByIndex (long index);

Входной параметр:

index	- индекс сопряжения в массиве.
Возвращаемое значение:

	указатель на интерфейс параметров сопряжения ksMateConstraint или IMateConstraint.


ksMateConstraintCollection::FindIt
IMateConstraintCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt (LPMATECONSTRAINT entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс ksMateConstraint или IMateConstraint.


Интерфейсы ksVertexDefinition, IVertexDefinition
ksVertexDefinition,
IVertexDefinition

Интерфейс описания вершины.

ksVertexDefinition	- интерфейс Automation
IVertexDefinition	- интерфейс COM
Свойства...

Методы...


ksVertexDefinition::props
ksVertexDefinition
свойства

freeVertex

topologyVertex


ksVertexDefinition::methods
ksVertexDefinition
методы

GetOwnerEntity

GetPoint


ksVertexDefinition::topologyVertex

Является ли точка топологической вершиной.

Тип данных - BOOL.

Синтаксис Automation:

topologyVertex = iVertexDefinition.topologyVertex	Получить свойство (*)
topologyVertex = iVertexDefinition.topologyVertex()	Получить свойство (**)
Примечание:

1. Свойство доступно только для чтения.

2. Точка является топологической вершиной, если принадлежит ребру.


ksVertexDefinition::freeVertex

Является ли вершина свободной.

Тип данных - BOOL.

Синтаксис Automation:

freeVertex = iVertexDefinition.freeVertex	Получить свойство (*)
freeVertex = iVertexDefinition.freeVertex()	Получить свойство (**)
Примечание:

1. Свойство доступно только для чтения.

2. Вершина является свободной, если не принадлежит ребру и не принадлежит элементам эскиза (дуги, отрезки, кривые).


ksVertexDefinition::GetPoint
IVertexDefinition::GetPoint

Получить координаты вершины.

Синтаксис Automation:

BOOL GetPoint (double *x, double *y, double *z);

Синтаксис COM:

BOOL GetPoint (double *x, double *y, double *z);

Выходные параметры:

x, y, z	- координаты вершины.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksVertexDefinition::GetOwnerEntity
IVertexDefinition::GetOwnerEntity

Получить указатель на объект, породивший вершину.

Синтаксис Automation:

LPDISPATCH GetOwnerEntity();

Синтаксис COM:

LPENTITY GetOwnerEntity();

Выходные параметры:

x, y, z	- координаты вершины.
Возвращаемое значение:

указатель на интерфейс ksEntity или iEntity.	- в случае успеха,
FALSE	- в случае неудачи.


Интерфейсы ksBody, IBody
ksBody,
IBody

Интерфейс трехмерного тела.

ksBody	- интерфейс Automation
IBody	- интерфейс COM
Примечание:

Твердое тело состоит из массива граней.

Методы...


ksBody::methods
ksBody
методы

CheckIntersectionWithBody

CurveIntersection

FaceCollection

GetGabarit

IsSolid

MassInertiaParam


ksBody::GetGabarit
IBody::GetGabarit

Получить габарит тела.

Синтаксис Automation:

BOOL GetGabarit (double *x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);

Синтаксис COM:

BOOL GetGabarit (double *x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);

Выходные параметры:

x1, y1, z1	- координаты первой вершины габаритного куба.
x2, y2, z2	- координаты второй вершины габаритного куба.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksBody::FaceCollection
IBody::FaceCollection

Получить указатель на интерфейс массива граней, образующих тело.

Синтаксис Automation:

LPDISPATCH FaceCollection();

Синтаксис COM:

LPFACECOLLECTION FaceCollection();

Возвращаемое значение:

	- указатель на интерфейс ksFaceCollection или IFaceCollection.


ksBody::IsSolid
IBody::IsSolid

Является ли объект твердым телом или поверхностью.

Синтаксис Automation:

BOOL IsSolid();

Синтаксис COM:

BOOL IsSolid();

Возвращаемое значение:

TRUE	- объект является твердым телом,
FALSE	- объект является поверхностью.
Примечание:

Твердое тело может состоять из набора поверхностей.


ksBody::MassInertiaParam
IBody::MassInertiaParam

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

Синтаксис Automation:

LPDISPATCH CalcMassInertiaProperties (long bitVector);

Синтаксис COM:

LPMASSINERTIAPARAM CalcMassInertiaProperties (unsigned int bitVector);

Входной параметр:

bitVector	- определяет размерность длины, размерность массы
Возвращаемое значение:

	- указатель на интерфейс ksMassInertiaParam или IMassInertiaParam.
Примечания:

Варианты значений для задания значений bitVector находятся в интервале [ST_MIX_MM..ST_MIX_KG]

Пример:

(метры|кг - ST_MIX_M|ST_MIX_KG)


ksBody::CurveIntersection
IBody::CurveIntersection

Рассчитать пересечения с кривой.

Синтаксис Automation:

BOOL CurveIntersection (LPDISPATCH curve,
LPDISPATCH fases,
LPDISPATCH points);

Синтаксис COM:

BOOL CurveIntersection (LPCURVE3D curve,
LPFACECOLLECTION faces,
LPCOORDINATE3DCOLLECTION points);

Входные параметры:

curve	- Указатель на интерфейс 3D кривой ksCurve3D
Выходные параметры:

faces	- Коллекция граней пересекаемых кривой ksFaceCollection
points	- Коллекция координат точек пересечений ksCoordinate3dCollection
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Координаты точек сортируются по параметру кривой t.

2. Параметры faсes, points являются необязательными.

3. Заполняются только присланные коллекции.

4. Интерфейсы коллекций для заполнения нужно получить с помощью функций:

- ksFaceCollection - ksDocument3D::GetInterface с параметром o3dType = o3d_faceCollection;

- ksCoordinate3dCollection - ksDocument3D::GetInterface с параметром o3dType = o3d_coordinate3dCollection.


ksBody::CheckIntersectionWithBody
IBody::CheckIntersectionWithBody

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

Синтаксис Automation:

LPDISPATCH CheckIntersectionWithBody (LPDISPATCH otherBody,
BOOL checkTangent);

Синтаксис COM:

LPINTERSECTIONRESULT CheckIntersectionWithBody (LPBODY otherBody,
BOOL checkTangent);

Входные параметры:

otherBody	- тело с которым проверяется пересечение,
checkTangent	- считать касания пересечениями.
Возвращаемое значение:

Интерфейс ksIntersectionResult	- в случае успеха,
NULL	- если пересечений нет.


Интерфейсы ksEdgeDefinition, IEdgeDefinition
ksEdgeDefinition,
IEdgeDefinition

Интерфейс свойств ребра.

ksEdgeDefinition	- интерфейс Automation
IEdgeDefinition	- интерфейс COM
Примечание:

Ребро содержит информацию о математической кривой в трехмерном пространстве, о вершинах и о присоединенных гранях. Ориентация ребра относительно грани является положительной, если грань расположена слева от него или отрицательной, если справа.

Методы...


ksEdgeDefinition::methods
ksEdgeDefinition
методы

EdgeCollection

GetAdjacentFace

GetCurve3D

GetOwnerEntity

GetVertex

IsArc

IsCircle

IsEllipse

IsLineSeg

IsNurbs

IsPeriodic

IsStraight

OrientedEdgeCollection


ksEdgeDefinition::IsStraight
IEdgeDefinition::IsStraight

Определить, прямолинейно ли ребро.

Синтаксис Automation:

BOOL IsStraight();

Синтаксис COM:

BOOL IsStraight();

Возвращаемое значение:

TRUE	- ребро прямолинейное,
FALSE	- ребро криволинейное.


ksEdgeDefinition::GetLength
IEdgeDefinition::GetLength

Получить длину ребра.

Синтаксис Automation:

double GetLength (long bitVector);

Синтаксис COM:

double GetLength (unsigned int bitVector);

Входные параметры:

bitVector	- единицы измерения в интервале [ST_MIX_MM...ST_MIX_M]
Возвращаемое значение:

длина ребра	- в случае успеха,
0	- в случае неудачи.


ksEdgeDefinition::GetOwnerEntity
IEdgeDefinition::GetOwnerEntity

Получить указатель на объект, породивший ребро.

Синтаксис Automation:

LPDISPATCH GetOwnerEntity();

Синтаксис COM:

LPENTITY GetOwnerEntity();

Возвращаемое значение:

	- указатель на интерфейс объекта ksEntity или IEntity.


ksEdgeDefinition::GetCurve3D
IEdgeDefinition::GetCurve3D

Получить указатель на интерфейс математической кривой.

Синтаксис Automation:

LPDISPATCH GetCurve3D();

Синтаксис COM:

LPCURVE3D GetCurve3D();

Возвращаемое значение:

	- указатель на интерфейс объекта ksCurve3D или ICurve3D.


ksEdgeDefinition::GetAdjacentFace
IEdgeDefinition::GetAdjacentFace

Получить указатель на интерфейс грани, в цикл которой входит ребро.

Синтаксис Automation:

LPDISPATCH GetAdjacentFace (BOOL facePlus );

Синтаксис COM:

LPFACEDEFINITION GetAdjacentFace (BOOL facePlus );

Входные параметры:

facePlus	TRUE	- ориентация грани относительно отрезка положительная,
facePlus	FALSE	- ориентация грани относительно отрезка отрицательная
Возвращаемое значение:

	- указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksEdgeDefinition::GetVertex
IEdgeDefinition::GetVertex

Получить указатель на интерфейс вершин: начальной и конечной.

Синтаксис Automation:

LPDISPATCH GetVertex (BOOL start);

Синтаксис COM:

LPVERTEXDEFINITION GetVertex (BOOL start);

Входные параметры:

start	TRUE	- начальная вершина,
start	FALSE	- конечная вершина.
Возвращаемое значение:

	- указатель на интерфейс ksVertexDefinition или IVertexDefinition.


ksEdgeDefinition::EdgeCollection
IEdgeDefinition::EdgeCollection

Получить указатель на интерфейс массива ребер, стыкующихся с данным ребром.

Синтаксис Automation:

LPDISPATCH EdgeCollection (BOOL begin);

Синтаксис COM:

LPEDGECOLLECTION EdgeCollection (BOOL begin);

Входные параметры:

begin	TRUE	- в начале ребра,
begin	FALSE	- в конце ребра.
Возвращаемое значение:

	- указатель на интерфейс ksEdgeCollection или IEdgeCollection.


ksEdgeDefinition::OrientedEdgeCollection
IEdgeDefinition::OrientedEdgeCollection

Получить указатель на интерфейс массива ориентированных ребер,
стыкующихся с данным ребром.

Синтаксис Automation:

LPDISPATCH OrientedEdgeCollection();

Синтаксис COM:

LPORIENTEDEDGECOLLECTION OrientedEdgeCollection();

Возвращаемое значение:

	- указатель на интерфейс ksOrientedEdgeCollection или IOrientedEdgeCollection.


ksEdgeDefinition::IsCircle
IEdgeDefinition::IsCircle

Определить, является ли кривая окружностью.

Синтаксис Automation:

BOOL IsCircle();

Синтаксис COM:

BOOL IsCircle();

Возвращаемое значение:

TRUE	- кривая является окружностью,
FALSE	- кривая не является окружностью.


ksEdgeDefinition::IsEllipse
IEdgeDefinition::IsEllipse

Определить, является ли кривая эллипсом.

Синтаксис Automation:

BOOL IsEllipse();

Синтаксис COM:

BOOL IsEllipse();

Возвращаемое значение:

TRUE	- кривая является эллипсом,
FALSE	- кривая не является эллипсом.


ksEdgeDefinition::IsNurbs
IEdgeDefinition::IsNurbs

Определить, является ли кривая NURBS.

Синтаксис Automation:

BOOL IsNurbs();

Синтаксис COM:

BOOL IsNurbs();

Возвращаемое значение:

TRUE	- кривая является NURBS,
FALSE	- кривая не является NURBS.


ksEdgeDefinition::IsArc
IEdgeDefinition::IsArc

Определить, является ли кривая дугой окружности.

Синтаксис Automation:

BOOL IsArc();

Синтаксис COM:

BOOL IsArc();

Возвращаемое значение:

TRUE	- кривая является дугой окружности,
FALSE	- кривая не является окружности.


ksEdgeDefinition::IsLineSeg
IEdgeDefinition::IsLineSeg

Определить, является ли кривая отрезком.

Синтаксис Automation:

BOOL IsLineSeg();

Синтаксис COM:

BOOL IsLineSeg();

Возвращаемое значение:

TRUE	- кривая является отрезком,
FALSE	- кривая не является отрезком.


ksEdgeDefinition::IsPeriodic
IEdgeDefinition::IsPeriodic

Определить, является ли кривая периодичной.

Синтаксис Automation:

BOOL IsPeriodic();

Синтаксис COM:

 BOOL IsPeriodic();

Возвращаемое значение:

TRUE	- кривая периодична,
FALSE	- кривая не периодична.


Интерфейсы ksOrientedEdge, IOrientedEdge
ksOrientedEdge,
IOrientedEdge

Интерфейс ориентированного ребра.

ksOrientedEdge	- интерфейс Automation
IOrientedEdge	- интерфейс COM
Примечание:

Ориентированное ребро является объектом топологии. Содержит информацию о ребре и направлении относительно ребра.

Методы...


ksOrientedEdge::methods
ksOrientedEdge
методы

GetEdge

GetNext

GetOrientation

GetOwnerEntity


ksOrientedEdge::GetEdge
IOrientedEdge::GetEdge

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

Синтаксис Automation:

LPDISPATCH GetEdge();

Синтаксис COM:

LPEDGEDEFINITION GetEdge();

Возвращаемое значение:

	- указатель на интерфейс ksEdgeDefinition или IEdgeDefinition.


ksOrientedEdge::GetOrientation
IOrientedEdge::GetOrientation

Получить направление относительно базового ребра.

Синтаксис Automation:

BOOL GetOrientation();

Синтаксис COM:

BOOL GetOrientation();

Возвращаемое значение:

TRUE	- направления совпадают,
FALSE	- направления не совпадают.


ksOrientedEdge::GetOwnerEntity
IOrientedEdge::GetOwnerEntity

Получить указатель на интерфейс ребра.

Синтаксис Automation:

LPDISPATCH GetOwnerEntity();

Синтаксис COM:

LPENTITY GetOwnerEntity();

Возвращаемое значение:

	- указатель на интерфейс ksEntity или IEntity.


ksOrientedEdge::GetNext
IOrientedEdge::GetNext

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

Синтаксис Automation:

LPDISPATCH GetNext();

Синтаксис COM:

LPORIENTEDEDGE GetNext();

Возвращаемое значение:

	- указатель на интерфейс ksOrientedEdge или IOrientedEdge.


Интерфейсы ksNurbsPoint3dParam, INurbsPoint3dParam
ksNurbsPoint3dParam,
INurbsPoint3dParam

Интерфейс параметров точки для трехмерных NURBS.

ksNurbsPoint3dParam	- интерфейс Automation
INurbsPoint3dParam	- интерфейс COM
Методы...


ksNurbsPoint3dParam::methods
ksNurbsPoint3dParam
методы

GetPoint

GetWeight


ksNurbsPoint3dParam::GetPoint
INurbsPoint3dParam::GetPoint

Получить координаты базовой точки.

Синтаксис Automation:

BOOL GetPoint (double * x, double *y, double *z);

Синтаксис COM:

BOOL GetPoint (double * x, double *y, double *z);

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Выходные параметры:

x, y, z	- координаты базовой точки.


ksNurbsPoint3dParam::GetWeight
INurbsPoint3dParam::GetWeight

Получить вес точки.

Синтаксис Automation:

double GetWeight();

Синтаксис COM:

double GetWeight();

Возвращаемое значение:

вес точки	- в случае успеха,
0	- в случае неудачи.


Интерфейсы ksEntityCollection, IEntityCollection
ksEntityCollection,
IEntityCollection

Интерфейс массива объектов модели.

ksEntityCollection	- интерфейс Automation
IEntityCollection	- интерфейс COM
Методы...


ksEntityCollection::methods
ksEntityCollection
методы

AddAt

AddBefore

Add

Clear

DetachByBody

DetachByIndex

FindIt

First

GetByIndex

GetByName

GetCount

Last

Next

Prev

Refresh

SelectByPoint

SetByIndex


ksEntityCollection::Refresh
IEntityCollection::Refresh

Обновить массив интерфейсов объектов трехмерной модели (осей, плоскостей и т.п.).

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива в памяти с массивом точек ребра (поверхности) и удаляются все предыдущие изменения в массиве.


ksEntityCollection::GetCount
IEntityCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksEntityCollection::First
IEntityCollection::First

Получить первый объект в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPENTITY First();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksEntityCollection::Last
IEntityCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPENTITY Last();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksEntityCollection::Next
IEntityCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPENTITY Next();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksEntityCollection::Prev
IEntityCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPENTITY Prev();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksEntityCollection::GetByName
IEntityCollection::GetByName

Получить указатель на интерфейс объекта в массиве по имени.

Синтаксис Automation:

LPDISPATCH GetByName (BSTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Синтаксис COM:

LPENTITY GetByName (LPOLESTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Входные параметры:

name	- имя объекта,
testFullName	- признак полного имени: TRUE - name - полное имя,  FALSE - имя name может быть частью полного имени,
testIgnoreCase	- признак игнорирования регистра символов: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksEntityCollection::GetByIndex
IEntityCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPENTITY GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


ksEntityCollection::SelectByPoint
IEntityCollection::SelectByPoint

Исключить из массива все объекты, не содержащие точку с заданными координатами.

Синтаксис Automation:

BOOL SelectByPoint (double x,

double y,

double z);

Синтаксис COM:

BOOL SelectByPoint (double x,

double y,

double z);

Входные параметры:

x, y, z	- координаты точки.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

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

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


ksEntityCollection::Add
IEntityCollection::Add

Добавить объект в массив ksEntityCollection (IEntityCollection).

Синтаксис Automation:

BOOL Add (LPDISPATCH entity);

Синтаксис COM:

BOOL Add (LPENTITY entity);

Входной параметр:

entity	- интерфейс добавляемого элемента ksEntity или IEntity.
Возвращаемое значение:

Функция возвращает TRUE в двух случаях:

1.	Если при работе с динамическим массивом объектов модели (метод EntityCollection) checkEntity - признак проверки для вновь добавляемых объектов на NULL - имеет значение FALSE (т.е. в массив можно добавить NULL).

2.	Если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - не NULL.

Функция возвращает FALSE, если при работе с динамическим массивом объектов модели checkEntity - имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - NULL.


ksEntityCollection::AddAt
IEntityCollection::AddAt

Добавить объект в массив с заданным индексом.

Синтаксис Automation:

BOOL AddAt (LPDISPATCH entity,

long index);

Синтаксис COM:

BOOL AddAt (LPENTITY entity,

long index);

Входные параметры:

entity	- интерфейс добавляемого элемента ksEntity или IEntity,
index	- индекс в массиве.
Возвращаемое значение:

Функция возвращает TRUE в двух случаях:

1.	Если при работе с динамическим массивом объектов модели (метод EntityCollection) checkEntity - признак проверки для вновь добавляемых объектов на NULL - имеет значение FALSE (т.е. в массив можно добавить NULL).

2.	Если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - не NULL.

Функция возвращает FALSE, если при работе с динамическим массивом объектов модели checkEntity - имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - NULL.


ksEntityCollection::AddBefore
IEntityCollection::AddBefore

Добавить объект перед указанным объектом в массиве.

Синтаксис Automation:

BOOL AddBefore (LPDISPATCH entity,

LPDISPATCH base);

Синтаксис COM:

BOOL AddBefore (LPENTITY entity,

LPENTITY base);

Входные параметры:

entity	- интерфейс добавляемого элемента ksEntity или IEntity,
base	- интерфейс базового объекта ksEntity или IEntity (не должен быть 0).
Возвращаемое значение:

Функция возвращает TRUE в двух случаях:

1.	Если при работе с динамическим массивом объектов модели (метод EntityCollection) checkEntity - признак проверки для вновь добавляемых объектов на NULL - имеет значение FALSE (т.е. в массив можно добавить NULL).

2.	Если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - не NULL.

Функция возвращает FALSE, если при работе с динамическим массивом объектов модели checkEntity - имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - NULL.


ksEntityCollection::DetachByIndex
IEntityCollection::DetachByIndex

Удалить объект из массива по индексу.

Синтаксис Automation:

BOOL DetachByIndex(long index);

Синтаксис COM:

BOOL DetachByIndex(long index);

Входной параметр:

index	- индекс объекта в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Элемент массива из модели не удаляется.


ksEntityCollection::DetachByBody
IEntityCollection::DetachByBody

Удалить указанный объект из массива

Синтаксис Automation:

BOOL DetachByBody(LPDISPATCH entity);

Синтаксис COM:

BOOL DetachByBody(LPENTITY entity);

Входной параметр:

entity	- указатель на интерфейс удаляемого элемента ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечания:

1. Указатель на интерфейс удаляемого объекта entity не должен быть 0.

2. Элемент массива из модели не удаляется.


ksEntityCollection::Clear
IEntityCollection::Clear

Очистить динамический массив объектов.

Синтаксис Automation:

BOOL Clear();

Синтаксис COM:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
Примечание:

Объекты массива из модели не удаляются.


ksEntityCollection::SetByIndex
IEntityCollection::SetByIndex

Заменить объект с указанным индексом в массиве на присланный объект.

Синтаксис Automation:

BOOL SetByIndex (LPDISPATCH entity,

long index);

Синтаксис COM:

BOOL SetByIndex (LPENTITY entity,

long index);

Входные параметры:

entity	- указатель на интерфейс присоединяемого элемента ksEntity или IEntity,
index	- индекс элемента в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.


ksEntityCollection::FindIt
IEntityCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt( LPENTITY entity );

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс ksEntity или IEntity.


Интерфейсы ksNurbsPoint3dCollection, INurbsPoint3dCollection
ksNurbsPoint3dCollection,
INurbsPoint3dCollection

Интерфейс массива точек для трехмерных NURBS.

ksNurbsPoint3dCollection	- интерфейс Automation
INurbsPoint3dCollection	- интерфейс COM
Методы...


ksNurbsPoint3dCollection::methods
ksNurbsPoint3dCollection
методы

AddAt

AddBefore

Add

Clear

DetachByBody

DetachByIndex

FindIt

First

GetByIndex

GetCount

Last

Next

Prev

Refresh

SetByIndex


ksNurbsPoint3dCollection::Refresh
INurbsPoint3dCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом точек ребра (поверхности) и удаляются все предыдущие изменения в массиве.


ksNurbsPoint3dCollection::GetCount
INurbsPoint3dCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksNurbsPoint3dCollection::First
INurbsPoint3dCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPNURBSPOINT3DPARAM First();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam.


ksNurbsPoint3dCollection::Last
INurbsPoint3dCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPNURBSPOINT3DPARAM Last();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam.


ksNurbsPoint3dCollection::Next
INurbsPoint3dCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPNURBSPOINT3DPARAM Next();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam.


ksNurbsPoint3dCollection::Prev
INurbsPoint3dCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPNURBSPOINT3DPARAM Prev();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam.


ksNurbsPoint3dCollection::GetByIndex
INurbsPoint3dCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPNURBSPOINT3DPARAM GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam.


ksNurbsPoint3dCollection::Clear
INurbsPoint3dCollection::Clear

Очистить массив.

Синтаксис Automation:

BOOL Clear();

Синтаксис COM:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Объекты удаляются только из массива, в модель изменения не передаются.


ksNurbsPoint3dCollection::Add
INurbsPoint3dCollection::Add

Добавить объект в конец массива.

Синтаксис Automation:

BOOL Add (LPDISPATCH obj);

Синтаксис COM:

BOOL Add (LPNURBSPOINT3DPARAM obj);

Входной параметр:

obj	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam параметров точки для трехмерной NURBS.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатель на интерфейс добавляемого объекта obj не должен быть равен 0.


ksNurbsPoint3dCollection::AddAt
INurbsPoint3dCollection::AddAt

Добавить объект с заданным индексом в массив.

Синтаксис Automation:

BOOL AddAt (LPDISPATCH obj, long index);

Синтаксис COM:

BOOL AddAt (LPNURBSPOINT3DPARAM obj, long index);

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam параметров точки для трехмерной NURBS.
index	- индекс в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатель на интерфейс добавляемого объекта obj не должен быть равен 0.


ksNurbsPoint3dCollection::AddBefore
INurbsPoint3dCollection::AddBefore

Добавить объект перед указанным объектом в массиве.

Синтаксис Automation:

BOOL AddBefore (LPDISPATCH obj, LPDISPATCH base);

Синтаксис COM:

BOOL AddBefore (LPNURBSPOINT3DPARAM obj, LPNURBSPOINT3DPARAM base);

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam добавляемого объекта.
base	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam базового объекта.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатели на интерфейсы добавляемого и базового объекта obj и base не должны быть равны 0.


ksNurbsPoint3dCollection::DetachByIndex
INurbsPoint3dCollection::DetachByIndex

Удалить объект из массива по индексу.

Синтаксис Automation:

BOOL DetachByIndex (long index);

Синтаксис COM:

BOOL DetachByIndex (long index);

Входной параметр:

index	- индекс удаляемого объекта в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Элемент массива из модели не удаляется.


ksNurbsPoint3dCollection::DetachByBody
INurbsPoint3dCollection::DetachByBody

Удалить указанный объект из массива.

Синтаксис Automation:

BOOL DetachByBody (LPDISPATCH obj);

Синтаксис COM:

BOOL DetachByBody (LPNURBSPOINT3DPARAM obj);

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam удаляемого объекта.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечания:

Указатель на интерфейс удаляемого объекта obj не должен быть равен 0.


ksNurbsPoint3dCollection::SetByIndex
INurbsPoint3dCollection::SetByIndex

Заменить объект с указанным индексом в массиве на присланный объект.

Синтаксис Automation:

BOOL SetByIndex (LPDISPATCH obj, long index );

Синтаксис COM:

BOOL SetByIndex (LPNURBSPOINT3DPARAM obj, long index );

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam присоединяемого объекта.
index	- индекс элемента в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksNurbsPoint3dCollection::FindIt
INurbsPoint3dCollection::FindIt

Получить индекс элемента в коллекции.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Входные параметры:

entity	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam точки для трехмерного NURBS.
Возвращаемое значение:

индекс элемента в массиве.	- если элемент найден в коллекции,
-1	- - элемент в коллекции не найден.
Синтаксис COM:

unsigned long FindIt (LPNURBSPOINT3D entity);

Входные параметры:

entity	- указатель на интерфейс ksNurbsPoint3dParam или INurbsPoint3dParam точки для трехмерного NURBS.
Возвращаемое значение:

индекс элемента в массиве.	- если элемент найден в коллекции,
SYS_MAX_UINT	- - элемент в коллекции не найден.


Интерфейсы ksNurbsKnotCollection, INurbsKnotCollection
ksNurbsKnotCollection,
INurbsKnotCollection

Интерфейс массива узлов для трехмерных NURBS поверхностей.

ksNurbsKnotCollection	- интерфейс Automation
INurbsKnotCollection	- интерфейс COM
Методы...


ksNurbsKnotCollection::methods
ksNurbsKnotCollection
методы

AddAt

AddBefore

Add

Clear

DetachByBody

DetachByIndex

First

GetByIndex

GetCount

Last

Next

Prev

Refresh

SetByIndex


ksNurbsKnotCollection::Refresh
INurbsKnotCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом узлов ребра (поверхности) и удаляются все предыдущие изменения в массиве.


ksNurbsKnotCollection::GetCount
INurbsKnotCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksNurbsKnotCollection::First
INurbsKnotCollection::First

Получить первый объект в массиве.

Синтаксис Automation:

double First();

Синтаксис COM:

double First();

Возвращаемое значение:

	первый объект в массиве


ksNurbsKnotCollection::Last
INurbsKnotCollection::Last

Получить последний объект в массиве.

Синтаксис Automation:

double Last();

Синтаксис COM:

double Last();

Возвращаемое значение:

	последний объект в массиве


ksNurbsKnotCollection::Next
INurbsKnotCollection::Next

Получить следующий объект в массиве.

Синтаксис Automation:

double Next();

Синтаксис COM:

double Next();

Возвращаемое значение:

	следующий объект в массиве


ksNurbsKnotCollection::Prev
INurbsKnotCollection::Prev

Получить предыдущий объект в массиве.

Синтаксис Automation:

double Prev();

Синтаксис COM:

double Prev();

Возвращаемое значение:

	предыдущий объект в массиве


ksNurbsKnotCollection::GetByIndex
INurbsKnotCollection::GetByIndex

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

Синтаксис Automation:

double GetByIndex (long index);

Синтаксис COM:

double GetByIndex ( long index );

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	значение узла


ksNurbsKnotCollection::Clear
INurbsKnotCollection::Clear

Очистить массив.

Синтаксис Automation:

BOOL Clear();

Синтаксис COM:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Объекты удаляются только из массива, в модель изменения не передаются.


ksNurbsKnotCollection::Add
INurbsKnotCollection::Add

Добавить элемент в конец массива.

Синтаксис Automation:

BOOL Add (double obj);

Синтаксис COM:

BOOL Add (double obj);

Входной параметр:

obj	значение узла
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатель на интерфейс добавляемого объекта obj не должен быть равен 0.


ksNurbsKnotCollection::AddAt
INurbsKnotCollection::AddAt

Добавить объект с заданным индексом в массив.

Синтаксис Automation:

BOOL AddAt (double obj, long index);

Синтаксис COM:

BOOL AddAt (double obj, long index);

Входные параметры:

obj	- значение узла
index	- индекс в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатель на интерфейс добавляемого объекта obj не должен быть равен 0.


ksNurbsKnotCollection::AddBefore
INurbsKnotCollection::AddBefore

Добавить объект перед указанным объектом в массиве.

Синтаксис Automation:

BOOL AddBefore (double obj, double base);

Синтаксис COM:

BOOL AddBefore (double obj, double base);

Входные параметры:

obj	- значение добавляемого узла,
base	- значение базового узла.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатели на интерфейсы добавляемого и базового объекта obj и base не должны быть равны 0.


ksNurbsKnotCollection::DetachByIndex
INurbsKnotCollection::DetachByIndex

Удалить объект из массива по индексу.

Синтаксис Automation:

BOOL DetachByIndex (long index);

Синтаксис COM:

BOOL DetachByIndex (long index);

Входной параметр:

index	- индекс удаляемого объекта в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Элемент массива из модели не удаляется.


ksNurbsKnotCollection::DetachByBody
INurbsKnotCollection::DetachByBody

Удалить указанный объект из массива.

Синтаксис Automation:

BOOL DetachByBody (double obj);

Синтаксис COM:

BOOL DetachByBody (double obj);

Входные параметры:

obj	- значение удаляемого узла
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечания:

1. Указатель на интерфейс удаляемого объекта obj не должен быть равен 0.


ksNurbsKnotCollection::SetByIndex
INurbsKnotCollection::SetByIndex

Заменить объект с указанным индексом в массиве на присланный объект.

Синтаксис Automation:

BOOL SetByIndex (double obj, long index);

Синтаксис COM:

BOOL SetByIndex (double obj, long index);

Входные параметры:

obj	- значение присоединяемого узла
index	- индекс элемента в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


Интерфейсы ksNurbsPoint3dCollCollection, INurbsPoint3dCollCollection
ksNurbsPoint3dCollCollection,
INurbsPoint3dCollCollection

Интерфейс массива массивов точек для трехмерных NURBS поверхностей.

ksNurbsPoint3dCollCollection	- интерфейс Automation
INurbsPoint3dCollCollection	- интерфейс COM
Методы...


ksNurbsPoint3dCollCollection::methods
ksNurbsPoint3dCollCollection
методы

AddAt

AddBefore

Add

Clear

DetachByBody

DetachByIndex

FindIt

First

GetByIndex

GetCount

Last

Next

Prev

Refresh

SetByIndex


ksNurbsPoint3dCollCollection::Refresh
INurbsPoint3dCollCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом точек поверхности и удаляются все предыдущие изменения в массиве.


ksNurbsPoint3dCollCollection::GetCount
INurbsPoint3dCollCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksNurbsPoint3dCollCollection::First
INurbsPoint3dCollCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPNURBSPOINT3DCOLLECTION First();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection.


ksNurbsPoint3dCollCollection::Last
INurbsPoint3dCollCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPNURBSPOINT3DCOLLECTION Last();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection.


ksNurbsPoint3dCollCollection::Next
INurbsPoint3dCollCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPNURBSPOINT3DCOLLECTION Next();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection.


ksNurbsPoint3dCollCollection::Prev
INurbsPoint3dCollCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPNURBSPOINT3DCOLLECTION Prev();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection.


ksNurbsPoint3dCollCollection::GetByIndex
INurbsPoint3dCollCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPNURBSPOINT3DCOLLECTION GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection.


ksNurbsPoint3dCollCollection::Clear
INurbsPoint3dCollCollection::Clear

Очистить массив.

Синтаксис Automation:

BOOL Clear();

Синтаксис COM:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Объекты удаляются только из массива, в модель изменения не передаются.


ksNurbsPoint3dCollCollection::Add
INurbsPoint3dCollCollection::Add

Добавить объект в конец массива.

Синтаксис Automation:

BOOL Add (LPDISPATCH obj);

Синтаксис COM:

BOOL Add (LPNURBSPOINT3DCOLLECTION obj);

Входной параметр:

obj	- указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection параметров точки для трехмерной NURBS.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатель на интерфейс добавляемого объекта obj не должен быть равен 0.


ksNurbsPoint3dCollCollection::AddAt
INurbsPoint3dCollCollection::AddAt

Добавить объект с заданным индексом в массив.

Синтаксис Automation:

BOOL AddAt (LPDISPATCH obj, long index);

Синтаксис COM:

BOOL AddAt (LPNURBSPOINT3DCOLLECTION obj, long index);

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection параметров точки для трехмерной NURBS.
index	- индекс в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатель на интерфейс добавляемого объекта obj не должен быть равен 0.


ksNurbsPoint3dCollCollection::AddBefore
INurbsPoint3dCollCollection::AddBefore

Добавить объект перед указанным объектом в массиве.

Синтаксис Automation:

BOOL AddBefore (LPDISPATCH obj, LPDISPATCH base);

Синтаксис COM:

BOOL AddBefore (LPNURBSPOINT3DCOLLECTION obj, LPNURBSPOINT3DCOLLECTION base);

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection добавляемого объекта.
base	- указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection базового объекта.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Указатели на интерфейсы добавляемого и базового объекта obj и base не должны быть равны 0.


ksNurbsPoint3dCollCollection::DetachByIndex
INurbsPoint3dCollCollection::DetachByIndex

Удалить объект из массива по индексу.

Синтаксис Automation:

BOOL DetachByIndex (long index);

Синтаксис COM:

BOOL DetachByIndex (long index);

Входной параметр:

index	- индекс удаляемого объекта в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Элемент массива из модели не удаляется.


ksNurbsPoint3dCollCollection::DetachByBody
INurbsPoint3dCollCollection::DetachByBody

Удалить указанный объект из массива.

Синтаксис Automation:

BOOL DetachByBody (LPDISPATCH obj);

Синтаксис COM:

BOOL DetachByBody (LPNURBSPOINT3DCOLLECTION obj);

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection удаляемого объекта.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечания:

1. Указатель на интерфейс удаляемого объекта obj не должен быть равен 0.


ksNurbsPoint3dCollCollection::SetByIndex
INurbsPoint3dCollCollection::SetByIndex

Заменить объект с указанным индексом в массиве на присланный объект.

Синтаксис Automation:

BOOL SetByIndex (LPDISPATCH obj, long index );

Синтаксис COM:

BOOL SetByIndex (LPNURBSPOINT3DCOLLECTION obj, long index);

Входные параметры:

obj	- указатель на интерфейс ksNurbsPoint3dCollection или INurbsPoint3dCollection присоединяемого объекта.
index	- индекс элемента в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksNurbsPoint3dCollCollection::FindIt
INurbsPoint3dCollCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt (LPNURBSPOINT3DCOLLECTION entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksNurbsPoint3dCollection или INurbsPoint3dCollection.


Интерфейсы ksNurbs3dParam, INurbs3dParam
ksNurbs3dParam,
INurbs3dParam

Интерфейс параметров трехмерных NURBS.

ksNurbs3dParam	- интерфейс Automation
INurbs3dParam	- интерфейс COM
Свойства...

Методы...


ksNurbs3dParam::props
ksNurbs3dParam
свойства

close

degree

periodic


ksNurbs3dParam::methods
ksNurbs3dParam
методы

NurbsPoint3DCollection

NurbsKnotCollection


ksNurbs3dParam::degree
INurbs3dParam::degree

Степень сплайна (от 3 до 8 включительно).

Тип данных - double.

Синтаксис Automation:

degree = iNurbs3dParam.degree	Получить свойство (*)
degree = iNurbs3dParam.GetDegree()	Получить свойство (**)
Примечания:

Свойство доступно только для чтения.


ksNurbs3dParam::close
INurbs3dParam::close

Степень сплайна (от 3 до 8 включительно).

Тип данных - BOOL.

Синтаксис Automation:

close = iNurbs3dParam.close	Получить свойство (*)
close = iNurbs3dParam.GetClose()	Получить свойство (**)
Значения свойства:

TRUE	- сплайн замкнутый,
FALSE	- сплайн разомкнутый.
Примечания:

Свойство доступно только для чтения.


ksNurbs3dParam::periodic
INurbs3dParam::periodic

Периодичность сплайна.

Тип данных - short.

Синтаксис Automation:

periodic = iNurbs3dParam.periodic	Получить свойство (*)
periodic = iNurbs3dParam.GetPeriodic()	Получить свойство (**)
Значения свойства:

TRUE	- сплайн периодический,
FALSE	- сплайн непериодический.
Примечания:

Свойство доступно только для чтения.


ksNurbs3dParam::NurbsPoint3DCollection
INurbs3dParam::NurbsPoint3DCollection

Получить указатель на интерфейс массива точек для трехмерного NURBS.

Синтаксис Automation:

LPDISPATCH GetPointCollection();

Синтаксис COM:

LPNURBSPOINT3DCOLLECTION GetPointCollection();

Возвращаемое значение:

	- указатель на интерфейс ksNurbsPoint3DCollection или INurbsPoint3DCollection удаляемого объекта.


ksNurbs3dParam::NurbsKnotCollection
INurbs3dParam::NurbsKnotCollection

Получить указатель на интерфейс массива узлов для трехмерного NURBS.

Синтаксис Automation:

LPDISPATCH GetKnotCollection();

Синтаксис COM:

LPNURBSKNOTCOLLECTION GetKnotCollection();

Возвращаемое значение:

	- указатель на интерфейс ksNurbsKnotCollection или INurbsKnotCollection удаляемого объекта.


Интерфейсы ksNurbsSurfaceParam, INurbsSurfaceParam
ksNurbsSurfaceParam,
INurbsSurfaceParam

Интерфейс параметров NURBS-поверхности.

ksNurbsSurfaceParam	- интерфейс Automation
INurbsSurfaceParam	- интерфейс COM
Методы...


ksNurbsSurfaceParam::methods
ksNurbsSurfaceParam
методы

GetClose

GetDegree

GetPeriodic

NurbsKnotCollection

NurbsPoint3DCollCollection


ksNurbsSurfaceParam::GetDegree
INurbsSurfaceParam::GetDegree

Получить степень сплайна.

Синтаксис Automation:

short GetDegree (BOOL paramU);

Синтаксис COM:

short GetDegree (BOOL paramU)

Входные параметры:

paramU	TRUE	- для параметра U.
paramU	FALSE	- для параметра V.
Возвращаемое значение:

	- степень сплайна (от 3 до 8 включительно)..


ksNurbsSurfaceParam::GetClose
INurbsSurfaceParam::GetClose

Получить тип замыкания сплайна.

Синтаксис Automation:

BOOL GetClose (BOOL paramU);

Синтаксис COM:

BOOL GetClose (BOOL paramU);

Входные параметры:

paramU	TRUE	- для параметра U.
paramU	FALSE	- для параметра V.
Возвращаемое значение:

TRUE	- сплайн замкнутый,
FALSE	- сплайн разомкнутый.


ksNurbsSurfaceParam::NurbsPoint3DCollCollection
INurbsSurfaceParam::NurbsPoint3DCollCollection

Получить указатель на интерфейс массива массивов точек для NURBS-поверхности.

Синтаксис Automation:

LPDISPATCH GetPointCollection();

Синтаксис COM:

LPNURBSPOINT3DCOLLCOLLECTION GetPointCollection();

Возвращаемое значение:

	указатель на интерфейс ksNurbsPoint3DCollCollection или INurbsPoint3DCollCollection.


ksNurbsSurfaceParam::NurbsKnotCollection
INurbsSurfaceParam::NurbsKnotCollection

Получить указатель на интерфейс массива узлов для NURBS-поверхности.

Синтаксис Automation:

LPDISPATCH GetKnotCollection (BOOL paramU);

Синтаксис COM:

LPNURBSKNOTCOLLECTION GetKnotCollection (BOOL paramU);

Входные параметры:

paramU	TRUE	- для параметра U.
paramU	FALSE	- для параметра V.
Возвращаемое значение:

	указатель на интерфейс ksNurbsKnotCollection или INurbsKnotCollection.


ksNurbsSurfaceParam::GetPeriodic
ksNurbsSurfaceParam::NurbsKnotCollection
INurbsSurfaceParam::NurbsKnotCollection

Получить периодичность сплайна.

Синтаксис Automation:

BOOL GetPeriodic (BOOL paramU);

Синтаксис COM:

BOOL GetPeriodic (BOOL paramU);

Входные параметры:

paramU	TRUE	- для параметра U.
paramU	FALSE	- для параметра V.
Возвращаемое значение:

TRUE	- сплайн периодический,
FALSE	- сплайн непериодический.


Интерфейсы ksPlaneParam, IPlaneParam
ksPlaneParam,
IPlaneParam

Интерфейс параметров плоскости.

ksPlaneParam	- интерфейс Automation
IPlaneParam	- интерфейс COM
Методы...

Примечание:

Плоскость определяется системой координат. Оси X и Y системы координат лежат в плоскости.


ksPlaneParam::methods
ksPlaneParam
методы

GetPlacement


ksPlaneParam::GetPlacement
IPlaneParam::GetPlacement

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

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Входные параметры:

paramU	TRUE	- для параметра U.
paramU	FALSE	- для параметра V.
Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksConeParam, IConeParam
ksConeParam,
IConeParam

Интерфейс параметров конической поверхности.

ksConeParam	- интерфейс Automation
IConeParam	- интерфейс COM
Свойства...

Методы...

Примечание:

Коническая поверхность определяется системой координат, радиусом, высотой и углом образующей. Оси X и Y системы координат лежат в плоскости основания конуса.


ksConeParam::props
ksConeParam
свойства

angle

height

radius


ksConeParam::methods
ksConeParam
методы

GetPlacement


ksConeParam::radius
IConeParam::radius

Радиус основания.

Тип данных - double.

Синтаксис Automation:

radius = iConeParam.radius	Получить свойство (*)
radius = iConeParam.GetRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksConeParam::height
IConeParam::height

Высота поверхности.

Тип данных - double.

Синтаксис Automation:

height = iConeParam.height	Получить свойство (*)
height = iConeParam.GetHeight()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksConeParam::angle
IConeParam::angle

Угол образующей поверхности.

Тип данных - double.

Синтаксис Automation:

angle = iConeParam.angle	Получить свойство (*)
angle = iConeParam.GetAngle()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksConeParam::GetPlacement
IConeParam::GetPlacement

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

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksSphereParam, ISphereParam
ksSphereParam,
ISphereParam

Интерфейс параметров сферы.

ksSphereParam	- интерфейс Automation
ISphereParam	- интерфейс COM
Свойства...

Методы...

Примечание:

Сфера определяется системой координат и радиусом.


ksSphereParam::props
ksSphereParam
свойства

radius


ksSphereParam::methods
ksSphereParam
методы

GetPlacement


ksSphereParam::radius
ISphereParam::radius

Радиус сферы.

Тип данных - double.

Синтаксис Automation:

radius = iSphereParam.radius	Получить свойство (*)
radius = iSphereParam.GetRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksSphereParam::GetPlacement
ISphereParam::GetPlacement

Получить систему координат сферы.

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksTorusParam, ITorusParam
ksTorusParam,
ITorusParam

Интерфейс параметров тора.

ksTorusParam	- интерфейс Automation
ITorusParam	- интерфейс COM
Свойства...

Методы...

Примечание:

Тор определяется системой координат и радиусом центров и радиусом образующей.


ksTorusParam::props
ksTorusParam
свойства

generatrixRadius

radius


ksTorusParam::methods
ksTorusParam
методы

GetPlacement


ksTorusParam::radius
ITorusParam::radius

Радиус сферы.

Тип данных - double.

Синтаксис Automation:

radius = iTorusParam.radius	Получить свойство (*)
radius = iTorusParam.GetRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksTorusParam::generatrixRadius
ITorusParam::generatrixRadius

Радиус сферы.

Тип данных - double.

Синтаксис Automation:

radius = iTorusParam.generatrixRadius	Получить свойство (*)
iTorusParam.GetGeneratrixRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksTorusParam::GetPlacement
ITorusParam::GetPlacement

Получить систему координат сферы.

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksFacet, IFacet
ksFacet,
IFacet

Интерфейс триангуляционной пластины.

ksFacet	- интерфейс Automation
IFacet	- интерфейс COM
Методы...

Примечание:

Треугольная или четырехугольная пластина, из которых состоит аппроксимирующая поверхность.


ksFacet::methods
ksFacet
методы

GetNormal

GetPoint

GetPointsCount

GetTessellationIndex


ksFacet::GetPointsCount
IFacet::GetPointsCount

Получить количество вершин пластины.

Синтаксис Automation:

long GetPointsCount();

Синтаксис COM:

int GetPointsCount();

Возвращаемое значение:

количество вершин пластины	- в случае успеха,
0	- в случае неудачи.


ksFacet::GetPoint
IFacet::GetPoint

Получить координаты вершины.

Синтаксис Automation:

BOOL GetPoint (long index, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetPoint (int index, float * x, float *y, float *z);

Входной параметр:

index	индекс вершины в пластине.
Выходные параметры:

x, y, z	координаты вершины
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFacet::GetNormal
IFacet::GetNormal

Получить координаты нормали.

Синтаксис Automation:

BOOL GetNormal (long index, double * x, double *y, double *z);

Синтаксис COM:

 BOOL GetNormal (int index, float * x, float *y, float *z);

Входной параметр:

index	индекс вершины в пластине.
Выходные параметры:

x, y, z	координаты вершины
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFacet::GetTessellationIndex
IFacet::GetTessellationIndex

Получить индекс вершины в массиве вершин триангуляционной сетки.

Синтаксис Automation:

long GetTessellationIndex (long index);

Синтаксис COM:

int GetTessellationIndex (int index);

Входной параметр:

index	индекс вершины в пластине.
Возвращаемое значение:

Индекс вершины в массиве вершин триангуляционной сетки	- в случае успеха,
-1	- в случае неудачи.


Интерфейсы ksFeature, IFeature
ksFeature,
IFeature

Интерфейс объекта Дерева построения.

ksFeature	- интерфейс Automation
IFeature	- интерфейс COM
Свойства...

Методы...


ksFeature::props
ksFeature
свойства

excluded

name

type

updateStamp


ksFeature::methods
ksFeature
методы

EntityCollection

GetObject

GetOwnerFeature

IsModified

IsValid

SubFeatureCollection


ksFeature::name
IFeature::name

Имя объекта.

Тип данных - BSTR.

Синтаксис Automation:

name = iFeature.name	Получить свойство (*)
name = iFeature.GetName()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksFeature::updateStamp
IFeature::updateStamp

Значение, определяющее время изменения геометрии.

Тип данных - BSTR.

Синтаксис Automation:

updateStamp = iFeature.updateStamp	Получить свойство (*)
updateStamp = iFeature.GetUpdateStamp(	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksFeature::type
IFeature::type

Тип объекта модели.

Тип данных - short.

Синтаксис Automation:

type = iFeature.type	Получить свойство (*)
type = iFeature.GetType()	Получить свойство (**)
Примечание:

1. Свойство доступно только для чтения.

2. Тип возвращаемого объекта выбирается из Obj3dType. Может принимать значение:

o3d_part	- деталь,
o3d_entity	- объект,
o3d_mateConstraint	- сопряжение.


ksFeature::excluded
IFeature::excluded

Признак включения или выключения из расчета.

Тип данных - BOOL.

Синтаксис Automation:

excluded = iFeature.excluded	Получить свойство (*)
iFeature.excluded = excluded	Установить свойство (*)
excluded = iFeature.GetExcluded()	Получить свойство (**)
iFeature.SetExcluded(excluded)	Установить свойство (**)


ksFeature::EntityCollection
IFeature::EntityCollection

Получить массив объектов (грани, ребра, вершины).

Синтаксис Automation:

ksEntityCollection * EntityCollection (short objType);

Синтаксис COM:

LPENTITYCOLLECTION EntityCollection (short objType);

Входные параметры:

objType	- тип объектов (грани, ребра, вершины).
Возвращаемое значение:

указатель на интерфейс ksEntityCollection или IEntityCollection	- в случае успеха,
NULL	- в случае неудачи.


ksFeature::IsModified
IFeature::IsModified

Определить, модифицирована ли модель с момента последнего перестроения.

Синтаксис Automation:

BOOL IsModified (BOOL recursive);

Синтаксис COM:

BOOL IsModified (BOOL recursive);

Входной параметр:

recursive	TRUE	Определять по вложенным объектам.
Возвращаемое значение:

TRUE	- модель изменена с момента последнего перестроения,
FALSE	- модель не изменена.


ksFeature::SubFeatureCollection
IFeature::SubFeatureCollection

Получить массив объектов, входящих в данный объект.

Синтаксис Automation:

LPDISPATCH SubFeatureCollection (BOOL through, BOOL libObject);

Синтаксис COM:

LPFEATURECOLLECTION SubFeatureCollection (BOOL through, BOOL libObject);

Входные параметры:

allObject	TRUE	- выдавать все объекты, включая скрытые.
libObject	TRUE	- выдавать состав библиотечных элементов.
Возвращаемое значение:

	указатель на интерфейс ksFeatureCollection или IFeatureCollection.


ksFeature::GetOwnerFeature
IFeature::GetOwnerFeature

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

Синтаксис Automation:

LPDISPATCH GetOwnerFeature();

Синтаксис COM:

LPFEATURE GetOwnerFeature();

Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature.


ksFeature::IsValid
IFeature::IsValid

Получить индикатор доступности объекта.

Синтаксис Automation:

BOOL IsValid();

Синтаксис COM:

BOOL IsValid();

Возвращаемое значение:

TRUE	- объект доступен,
FALSE	- объект недоступен.


ksFeature::GetObject
IFeature::GetObject

Получить объект модели, связанный с объектом дерева.

Синтаксис Automation:

LPDISPATCH GetObject();

Синтаксис COM:

LPUNKNOWN GetObject();

Возвращаемое значение:

	Указатель на интерфейс объекта
Примечание:

1. Тип возвращаемого объекта выбирается из Obj3dType. Может принимать значение:

o3d_part	- деталь,
o3d_entity	- объект,
o3d_mateConstraint	- сопряжение.


Интерфейсы ksFeatureCollection, IFeatureCollection
ksFeatureCollection,
IFeatureCollection

Интерфейс массива объектов Дерева построения.

ksFeatureCollection	- интерфейс Automation
IFeatureCollection	- интерфейс COM
Методы...


ksFeatureCollection::methods
ksFeatureCollection
методы

AddAt

AddBefore

Add

AttributeCollection

Clear

DetachByBody

DetachByIndex

FindIt

First

GetByIndex

GetByName

GetCount

Last

Next

Prev

Refresh

SetByIndex


ksFeatureCollection::AttributeCollection
IFeatureCollection::AttributeCollection

Получить массив атрибутов.

Синтаксис Automation:

ksAttribute3DCollection* AttributeCollection (long key1,

                                                long key2,

                                                long key3,

                                                long key4,

                                                double numb);

Синтаксис COM:

LPATTRIBUTE3DCOLLECTION AttributeCollection (long key1,

                                               long key2,

                                               long key3,

                                               long key4,

                                               double numb);

Входные параметры:

key1, key2, key3, key4	- ключи для поиска по ключам либо 0,
numb	- номер типа атрибута для поиска по номеру либо 0.
Возвращаемое значение:

Указатель на массив атрибутов ksAttribute3DCollection


ksFeatureCollection::SetByIndex
IFeatureCollection::SetByIndex

Установить объект с указанным индексом в массиве на присланный объект.

Синтаксис Automation:

BOOL SetByIndex (ksFeature* obj, long index);

Синтаксис COM:

BOOL SetByIndex (LPFEATURE obj, long index);

Входные параметры:

obj	- указатель на интерфейс компонента ksFeature или IFeature,
index	- индекс элемента в массиве.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFeatureCollection::Clear
IFeatureCollection::Clear

Очистить динамический массив объектов.

Синтаксис Automation:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFeatureCollection::DetachByBody
IFeatureCollection::DetachByBody

Удалить указанный объект из массива.

Синтаксис Automation:

BOOL DetachByBody (LPDISPATCH obj);

Синтаксис COM:

BOOL DetachByBody (LPFEATURE obj);

Входные параметры:

obj	- указатель на интерфейс удаляемого объекта ksFeature или IFeature.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Указатель на интерфейс удаляемого объекта obj не должен быть 0.


ksFeatureCollection::DetachByIndex
IFeatureCollection::DetachByIndex

Удалить объект из массива по индексу.

Синтаксис Automation:

BOOL DetachByIndex (long index);

Синтаксис COM:

BOOL AddBefore (LPFEATURE obj, LPFEATURE base);

Входные параметры:

index	- индекс элемента
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFeatureCollection::AddBefore
IFeatureCollection::AddBefore

Добавить объект перед указанным объектом в массиве.

Синтаксис Automation:

BOOL AddBefore (ksFeature* obj, ksFeature* base);

Синтаксис COM:

BOOL AddBefore (LPFEATURE obj, LPFEATURE base);

Входные параметры:

obj	- указатель на интерфейс компонента ksFeature или IFeature,
base	- указатель на элемент массива.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFeatureCollection::AddAt
IFeatureCollection::AddAt

Добавить в массив объект с заданным индексом.

Синтаксис Automation:

BOOL AddAt (ksFeature* obj, long index );

Синтаксис COM:

BOOL AddAt (LPFEATURE obj, long index );

Входные параметры:

obj	- указатель на интерфейс компонента ksFeature или IFeature,
index	- индекс нового элемента.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFeatureCollection::Add
IFeatureCollection::Add

Добавить объект в массив.

Синтаксис Automation:

BOOL Add (ksFeature* obj);

Синтаксис COM:

BOOL Add (LPFEATURE obj);

Входные параметры:

obj	- указатель на интерфейс компонента ksFeature или IFeature
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksFeatureCollection::Refresh
IFeatureCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом объектов дерева и удаляются все предыдущие изменения в массиве.


ksFeatureCollection::GetCount
IFeatureCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	Количество элементов массива.


ksFeatureCollection::First
IFeatureCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPFEATURE First();

Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature.


ksFeatureCollection::Last
IFeatureCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPFEATURE Last();

Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature.


ksFeatureCollection::Next
IFeatureCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPFEATURE Next();

Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature.


ksFeatureCollection::Prev
IFeatureCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPFEATURE Prev();

Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature.


ksFeatureCollection::GetByIndex
IFeatureCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPENTITY GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature.


ksFeatureCollection::GetByName
IFeatureCollection::GetByName

Получить указатель на интерфейс объекта в массиве по имени.

Синтаксис Automation:

LPDISPATCH GetByName (BSTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Синтаксис COM:

LPFEATURE GetByName (LPOLESTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Входные параметры:

name	- имя объекта,
testFullName	- признак полного имени: TRUE - name - полное имя,  FALSE - имя name может быть частью полного имени,
testIgnoreCase	- признак игнорирования регистра символов: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:

	указатель на интерфейс ksFeature или IFeature.


ksFeatureCollection::FindIt
IFeatureCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt(LPFEATURE entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksFeature или IFeature.


Интерфейсы ksTessellation, ITessellation
ksTessellation,
ITessellation

Интерфейс триангуляции (аппроксимирующей поверхности грани).

ksTessellation	- интерфейс Automation
ITessellation	- интерфейс COM
Методы...

Примечание:

Существуют два вида триангуляции:

- обычная, которая рассчитывается для отображения;

- для производства прочностных расчетов.

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

Расчет выполняется после задания ограничений размера ребра. Для расчетов рекомендуемое значение шага ребра составляет до 2% от максимального значения габарита. Для визуализации должно быть задано расстояние от аппроксимирующей хорды до кривой. Это значение должно составлять 0,04% от максимального габарита детали.


ksTessellation::methods
ksTessellation
методы

GetFacetData

GetFacet

GetFacetsCount

GetFacetSize

GetNormal

GetPoint

GetPointsCount

Refresh

SetFacetSize


ksTessellation::GetFacetsCount
ITessellation::GetFacetsCount

Получить количество триангуляционных пластин.

Синтаксис Automation:

long GetFacetsCount();

Синтаксис COM:

long GetFacetsCount();

Возвращаемое значение:

Количество триангуляционных пластин	- в случае успеха,
-1	- в случае неудачи.


ksTessellation::GetFacetData
ITessellation::GetFacetData

Получить данные триангуляционной пластины
по индексу в массиве триангуляционных пластин.

Синтаксис Automation:

BOOL GetFacetData (long index, LPDISPATCH facet);

Синтаксис COM:

BOOL GetFacetData (int index, LPFACET facet);

Входные параметры:

index	- индекс триангуляционной пластины в массиве,
facet	- указатель на интерфейс ksFacet или IFacet.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Указатель на интерфейс триангуляционной пластины не должен быть равен 0.


ksTessellation::GetPointsCount
ITessellation::GetPointsCount

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

long GetPointsCount();

Синтаксис COM:

long GetPointsCount();

Возвращаемое значение:

Количество вершин триангуляционной сетки	- в случае успеха,
-1	- в случае неудачи.


ksTessellation::GetPoint
ITessellation::GetPoint

Получить координаты вершины триангуляционной сетки.

Синтаксис Automation:

BOOL GetPoint (long index, double * x, double * y, double * z);

Синтаксис COM:

BOOL GetPoint (int index, float * x, float * y, float * z);

Входные параметры:

index	- индекс вершины в массиве вершин,
Выходные параметры:

x, y, z	- координаты вершины
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksTessellation::GetNormal
ITessellation::GetNormal

Получить координаты нормали триангуляционной сетки.

Синтаксис Automation:

BOOL GetNormal (long index, double * x, double * y, double * z);

Синтаксис COM:

BOOL GetNormal (int index, float * x, float * y, float * z);

Входные параметры:

index	- индекс вершины в пластине,
Выходные параметры:

x, y, z	- координаты нормали.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksTessellation::SetFacetSize
ITessellation::SetFacetSize

Изменить ограничение размера ребра для триангуляционной пластины.

Синтаксис Automation:

BOOL SetFacetSize (double sag);

Синтаксис COM:

BOOL SetFacetSize (double sag);

Входные параметры:

sag	0	- обычная триангуляция (для отображения),
sag	>0	- триангуляция для прочностных расчетов.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Расчет выполняется после задания ограничения размера ребра.

2. Рекомендуемое значение шага ребра для расчетов - до 2% от максимального значения габарита.


ksTessellation::GetFacetSize
ITessellation::GetFacetSize

Получить ограничение размера ребра для триангуляционной пластины.

Синтаксис Automation:

double GetFacetSize();

Синтаксис COM:

double GetFacetSize();

Возвращаемое значение:

	Ограничение размера ребра для триангуляционной пластины.


ksTessellation::GetFacet
ITessellation::GetFacet

Получить интерфейс триангуляционной пластины.

Синтаксис Automation:

LPDISPATCH GetFacet();

Синтаксис COM:

LPFACET GetFacet();

Возвращаемое значение:

	указатель на интерфейс ksFacet или IFacet.


ksTessellation::Refresh
ITessellation::Refresh

Обновить триангуляцию если изменилась геометрия.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


Интерфейсы ksImportedSurfaceDefinition, IImportedSurfaceDefinition
ksImportedSurfaceDefinition,
IImportedSurfaceDefinition

Интерфейс параметров импортированной поверхности.

ksImportedSurfaceDefinition	- интерфейс Automation
IImportedSurfaceDefinition	- интерфейс COM
Методы...

Примечание:

Поверхность можно импортировать, задав массив упорядоченных массивов точек.
Один упорядоченный массив точек IVertexCollection определяет одну кривую.
Если первая и последняя точки кривой совпадают, это является признаком замкнутости кривой.
Для нормального построения поверхности, кривых должно быть как минимум две.


ksImportedSurfaceDefinition::methods
ksImportedSurfaceDefinition
методы

AddCurve

AddPoint

BeginCurve

Clear

EndCurve


ksImportedSurfaceDefinition::Clear
IImportedSurfaceDefinition::Clear

Очистить содержимое.

Синтаксис Automation:

BOOL Clear();

Синтаксис COM:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Очищается имя файла и массив кривых.


ksImportedSurfaceDefinition::BeginCurve
IImportedSurfaceDefinition::BeginCurve

Начать создание новой кривой.

Синтаксис Automation:

BOOL BeginCurve();

Синтаксис COM:

BOOL BeginCurve();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Для добавления точек кривой используется метод ksImportedSurfaceDefinition::AddPoint.
После добавления точек необходимо завершить задание кривой методом ksImportedSurfaceDefinition::EndCurve.


ksImportedSurfaceDefinition::AddPoint
IImportedSurfaceDefinition::AddPoint

Добавить точку в определение новой кривой.

Синтаксис Automation:

BOOL AddPoint(double x, double y, double z);

Синтаксис COM:

BOOL AddPoint(double x, double y, double z);

Входные параметры:

x, y, z	- координаты точки кривой.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Перед добавлением точек кривой нужно открыть описание кривой методом ksImportedSurfaceDefinition::BeginCurve.
После добавления точек необходимо закрыть определение кривой методом ksImportedSurfaceDefinition::EndCurve.


ksImportedSurfaceDefinition::EndCurve
IImportedSurfaceDefinition::EndCurve

Завершить создание новой кривой.

Синтаксис Automation:

BOOL EndCurve();

Синтаксис COM:

BOOL EndCurve();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Перед добавлением точек кривой нужно открыть описание кривой методом ksImportedSurfaceDefinition::BeginCurve.
Для добавления точек используется метод ksImportedSurfaceDefinition::AddPoint.


ksImportedSurfaceDefinition::AddCurve
ksImportedSurfaceDefinition:: AddCurve	Пример
IImportedSurfaceDefinition:: AddCurve

Добавить кривую по массиву точек.

Синтаксис Automation:

BOOL AddCurve (VARIANT arr);

Синтаксис COM:

BOOL AddCurve (VARIANT arr);

Входные параметры:

arr	- массив координат точек кривой.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Тип переменной arr - VT_ARRAY | VT_R8. Одномерный SAFEARRAY массив double значений.

2. Каждая точка представлена тремя координатами x, y, z. Следовательно число точек в

 массиве должно быть кратно


AddCurve - пример использования

void WorkImportedSurfaceAddCuыrve( KompasObject &kompas ){

  int pointCountAll = 6; //кратное трем (x, y, z)

  int curveCount = 3;

  double x = 50, dx = 30;

  double y = 50, dy = 40;

  double z = 0,  dz = 100;

  int pointCount = pointCountAll / 3;

  SAFEARRAYBOUND sabound[1];

  SAFEARRAY FAR *psa;

  // Создание safe array double

  sabound[0].cElements = pointCountAll;

  sabound[0].lLbound = 0;

  psa = ::SafeArrayCreate(VT_R8, 1, sabound);

  VARIANT v;

  VariantInit(&v);

  V_VT(&v) = VT_ARRAY | VT_R8;

  V_ARRAY(&v) = psa;

  long index;

  double d;

  if ( kompas.m_lpDispatch ) {

    //получить активный 3d документ

    ksDocument3D doc( kompas.ActiveDocument3D() );

    if ( doc.m_lpDispatch ) {

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

      ksPart part( doc.GetPart( pTop_Part) );

      if ( part ) {

        //получить новый объект импортированной поверхности

        ksEntity entity(part.NewEntity(o3d_importedSurface));

        if (entity) {

          //Определение импортированной поверхности

          ksImportedSurfaceDefinition importedSurfaceDef( entity.GetDefinition());

          //добавляем в импортированную поверхность кривые по массиву точек

          if (importedSurfaceDef){

            for ( uint i = 0; i < curveCount; i++ ) {

              for (uint j = 0; j < pointCount; j++ ) {

                //наполняем safe array. Каждая точка представлена тремя координатами x, y, z

                index = j*3;

                d = x + dx*i;

                ::SafeArrayPutElement(psa, &index, &d);

                index = j*3 + 1;

                d = y - dy*(i%2);

                ::SafeArrayPutElement(psa, &index, &d);

                index = j*3 + 2;

                d = z + dz*j;

                ::SafeArrayPutElement(psa, &index, &d);

              }

              //добавить кривую по массиву точек

              importedSurfaceDef.AddCurve ( v );

            }

            //создать импортированную поверхность

            entity.Create();

          }

        }

      }

    }

    else

      kompas.ksError( "3d документ не активизирован" );

  }

  //удалить safe array double

  if ( psa )

    ::SafeArrayDestroy(psa);

}


Интерфейсы ksViewProjection, IViewProjection
ksViewProjection,
IViewProjection

Интерфейс проекции отображения модели в окне.

ksViewProjection	- интерфейс Automation
IViewProjection	- интерфейс COM
Свойства...

Методы...

Примечание:

Типы предопределенных проекций отображения...

К этим проекциям можно добавлять пользовательские, индексы которых могут изменяться. Свойства уже заданных в документе проекций (с индексом больше vp_None) изменить нельзя. Эти свойства доступны только для чтения.


ksViewProjection::props
ksViewProjection
свойства

index

name

scale


ksViewProjection::methods
ksViewProjection
методы

GetPlacement

IsCurrent

SetCurrent

SetMatrix3D

SetPlacement


ksViewProjection::name
IViewProjection::name

Имя проекции.

Тип данных - BSTR.

Синтаксис Automation:

name = iViewProjection.name	Получить свойство (*)
iViewProjection.name = name	Установить свойство (*)
name = iViewProjection.GetName()	Получить свойство (**)
iViewProjection.SetName(name)	Установить свойство (**)


ksViewProjection::scale
IViewProjection::scale

Масштаб отображения модели в окне.

Тип данных - double.

Синтаксис Automation:

scale = iViewProjection.scale	Получить свойство (*)
iViewProjection.scale = scale	Установить свойство (*)
scale = iViewProjection.GetScale()	Получить свойство (**)
iViewProjection.SetScale(scale)	Установить свойство (**)
Примечание:

За единицу масштаба отображения модели в окне принимается масштаб модели,
при котором она полностью видна в окне. Для стандартных проекций масштабирование
не используется (значение масштаба остается текущим) и возвращается значение 0.


ksViewProjection::index
IViewProjection::index

Индекс проекции отображения модели в окне.

Тип данных - long.

Синтаксис Automation:

index = iViewProjection.index	Получить свойство (*)
index = iViewProjection.GetIndex()	Получить свойство (**)
Примечание:

1. Свойство доступно только для чтения.

2. Для стандартных проекций индекс выбирается из ProjectionType, для пользовательских устанавливается после добавления в массив проекций методом ksViewProjectionCollection::Add и является индексом в этом массиве.


ksViewProjection::IsCurrent
IViewProjection::IsCurrent

Определить, является ли данная проекция текущей.

Синтаксис Automation:

BOOL IsCurrent();

Синтаксис COM:

BOOL IsCurrent();

Возвращаемое значение:

TRUE	- данная проекция является текущей,
FALSE	- данная проекция не является текущей,.
Примечание:

Для проекции с индексом vp_None возвращаемое значение всегда FALSE.


ksViewProjection::SetCurrent
IViewProjection::SetCurrent

Установить данную проекцию отображения модели в окне текущей.

Синтаксис Automation:

BOOL SetCurrent();

Синтаксис COM:

BOOL SetCurrent();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Для проекции с индексом vp_NormalTo необходимо, чтобы в модели был выбран хотя бы один плоский объект.

2. Для проекции с индексом vp_None модель разворачивается и масштабируется в соответствии с заданными параметрами проекции. Сама проекция в массив не добавляется.


ksViewProjection::GetPlacement
IViewProjection::GetPlacement

Получить интерфейс системы координат отображения модели в окне.

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	- Указатель на интерфейс ksPlacement или IPlacement
Примечание:

Изменение параметров системы координат возможно только для проекции с индексом vp_None.


ksViewProjection::SetPlacement
IViewProjection::SetPlacement

Установить систему координат отображения модели в окне.

Синтаксис Automation:

BOOL SetPlacement (LPDISPATCH place);

Синтаксис COM:

BOOL SetPlacement (LPPLACEMENT place);

Входные параметры:

	- Указатель на интерфейс ksPlacement или IPlacement.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Изменение параметров системы координат возможно только для проекции с индексом vp_None.


ksViewProjection::SetMatrix3D
IViewProjection::SetMatrix3D

Установить систему координат отображения модели в окне по матрице.

Синтаксис Automation:

VARIANT_BOOL SetMatrix3D (VARIANT Matrix3D);

Синтаксис COM:

BOOL SetMatrix3D (VARIANT Matrix3D);

Входные параметры:

Динамический массив SAFEARRAY double (VT_ARRAY | VT_R8).

В массиве должны лежать 16 элементов, которые представляют собой матрицу размера 4х4.

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Для отображения данной проекции в модели надо после установки системы координат вызвать метод SetCurrent.

2. Матрицу можно получить у ассоциативного вида методом ksDocument2D::ksAssociationViewMatrix3D.


Интерфейсы ksCylinderParam, ICylinderParam
ksCylinderParam,
ICylinderParam

Интерфейс параметров цилиндрической поверхности.

ksCylinderParam	- интерфейс Automation
ICylinderParam	- интерфейс COM
Свойства...

Методы...

Примечание:

Цилиндрическая поверхность определяется системой координат, радиусом и высотой. Оси X и Y лежат в плоскости основания.


ksCylinderParam::props
ksCylinderParam
свойства

height

radius


ksCylinderParam::methods
ksCylinderParam
методы

GetPlacement


ksCylinderParam::radius
ICylinderParam::radius

Радиус основания.

Тип данных - double.

Синтаксис Automation:

radius = iCylinderParam.radius	Получить свойство (*)
radius = iCylinderParam.GetRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksCylinderParam::height
ICylinderParam::height

Высота поверхности.

Тип данных - double.

Синтаксис Automation:

height = iCylinderParam.height	Получить свойство (*)
height = iCylinderParam.GetHeight()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksCylinderParam::GetPlacement
ICylinderParam::GetPlacement

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

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksArc3dParam, IArc3dParam
ksArc3dParam,
IArc3dParam

Интерфейс параметров трехмерной дуги.

ksArc3dParam	- интерфейс Automation
IArc3dParam	- интерфейс COM
Свойства...

Методы...

Примечание:

Трехмерная дуга определяется положением плоскости, в которой эта дуга лежит, углом раствора и радиусом. Угол раствора отсчитывается от оси OX плоскости дуги.


ksArc3dParam::props
ksArc3dParam
свойства

radius

angle


ksArc3dParam::methods
ksArc3dParam
методы

GetPlacement


ksArc3dParam::radius
IArc3dParam::radius

Радиус дуги.

Тип данных - double.

Синтаксис Automation:

radius = iArc3dParam.radius	Получить свойство (*)
radius = iArc3dParam.GetRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksArc3dParam::angle
IArc3dParam::angle

Угол раствора дуги.

Тип данных - double.

Синтаксис Automation:

angle = iArc3dParam.angle	Получить свойство (*)
angle = iArc3dParam.GetAngle()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksArc3dParam::GetPlacement
IArc3dParam::GetPlacement

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

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksSelectionMng, ISelectionMng
ksSelectionMng,
ISelectionMng

Интерфейс менеджера выделенных объектов.

ksSelectionMng	- интерфейс Automation
ISelectionMng	- интерфейс COM
Методы...


ksSelectionMng::methods
ksSelectionMng
методы

First

GetCount

GetObjectByIndex

GetObjectType

IsSelected

Last

Next

Prev

Select

UnselectAll

Unselect


ksSelectionMng::Select
ISelectionMng::Select

Выделить объект.

Синтаксис Automation:

BOOL Select (LPDISPATCH obj);

Синтаксис COM:

BOOL Select (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksSelectionMng::UnselectAll
ISelectionMng::UnselectAll

Снять выделение с объекта.

Синтаксис Automation:

BOOL UnselectAll();

Синтаксис COM:

BOOL UnselectAll();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksSelectionMng::Unselect
ISelectionMng::Unselect

Снять выделение с объекта.

Синтаксис Automation:

BOOL Unselect (LPDISPATCH obj);

Синтаксис COM:

BOOL Unselect (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksSelectionMng::IsSelected
ISelectionMng::IsSelected

Определить, выделен ли объект.

Синтаксис Automation:

BOOL IsSelected (LPDISPATCH obj);

Синтаксис COM:

BOOL IsSelected (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown.
Возвращаемое значение:

TRUE	- объект выделен,
FALSE	- объект не выделен.


ksSelectionMng::GetCount
ISelectionMng::GetCount

Получить количество выделенных объектов.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

int GetCount();

Возвращаемое значение:

	Количество выделенных объектов.


ksSelectionMng::First
ISelectionMng::First

Получить указатель на интерфейс первого выделенного объекта.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPUNKNOWN First();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksSelectionMng::Last
ISelectionMng::Last

Получить указатель на интерфейс последнего выделенного объекта.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPUNKNOWN Last();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksSelectionMng::Next
ISelectionMng::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPUNKNOWN Next();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksSelectionMng::Prev
ISelectionMng::Prev

Получить указатель на интерфейс предыдущего выделенного объекта.

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPUNKNOWN Prev();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksSelectionMng::GetObjectByIndex
ISelectionMng::GetObjectByIndex

Получить указатель на интерфейс выделенного (подсвеченного) объекта по индексу.

Синтаксис Automation:

LPDISPATCH GetObjectByIndex (long index);

Синтаксис COM:

LPDISPATCH GetObjectByIndex (long index);

Входной параметр:

index	- индекс выделенного (подсвеченного) объекта.
Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksSelectionMng::GetObjectType
ISelectionMng::GetObjectType

Получить тип выделенного (подсвеченного) объекта по индексу.

Синтаксис Automation:

long GetObjectType (long index);

Синтаксис COM:

int GetObjectType (int index);

Входной параметр:

index	- индекс выделенного (подсвеченного) объекта.
Возвращаемое значение:

	- тип выделенного (подсвеченного) объекта Obj3dType.


Интерфейсы ksCurve3D, ICurve3D
ksCurve3D,
ICurve3D

Интерфейс математической кривой в трехмерном пространстве.

ksCurve3D	- интерфейс Automation
ICurve3D	- интерфейс COM
Методы...


ksCurve3D::methods
ksCurve3D::GetPoint
ICurve3D::GetPoint

GetCurveParam

GetDerivativeT

GetDerivativeTT

GetDerivativeTTT

GetGabarit

GetLength

GetMetricLength

GetNormal

GetParamMax

GetParamMin

GetPoint

GetTangentVector

IsArc

IsCircle

IsClosed

IsDegenerate

IsEllipse

IsLineSeg

IsNurbs

IsPeriodic

IsPlanar

NearPointProjection


ksCurve3D::GetPoint
ICurve3D::GetPoint

Получить координаты точки на кривой.

Синтаксис Automation:

BOOL GetPoint (double paramT, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetPoint (double paramT, double * x, double *y, double *z);

Входной параметр:

paramT	- значение параметра T в параметрическом представлении кривой.
Выходные параметры:

x, y, z	- координаты точки на кривой.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координаты точки возвращаются в системе координат компонента.


ksCurve3D::GetTangentVector
ICurve3D::GetTangentVector

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

Синтаксис Automation:

BOOL GetTangentVector (double paramT, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetTangentVector (double paramT, double * x, double *y, double *z);

Входной параметр:

paramT	- значение параметра T в параметрическом представлении кривой.
Выходные параметры:

x, y, z	- касательный вектор.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.


ksCurve3D::GetNormal
ICurve3D::GetNormal

Получить направление нормали.

Синтаксис Automation:

BOOL GetNormal (double paramT, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetNormal (double paramT, double * x, double *y, double *z);

Входной параметр:

paramT	- значение параметра T в параметрическом представлении кривой.
Выходные параметры:

x, y, z	- вектор нормали.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.


ksCurve3D::GetDerivativeT
ICurve3D::GetDerivativeT

Получить первую производную по T.

Синтаксис Automation:

BOOL GetDerivativeT (double paramT, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeT (double paramT, double * x, double *y, double *z);

Входной параметр:

paramT	- значение параметра T в параметрическом представлении кривой.
Выходные параметры:

x, y, z	- первая производная по T.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.


ksCurve3D::GetDerivativeTT
ICurve3D::GetDerivativeTT

Получить вторую производную по T.

Синтаксис Automation:

BOOL GetDerivativeTT (double paramT, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeTT (double paramT, double * x, double *y, double *z);

Входной параметр:

paramT	- значение параметра T в параметрическом представлении кривой.
Выходные параметры:

x, y, z	- вторая производная по T.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.


ksCurve3D::GetDerivativeTTT
ICurve3D::GetDerivativeTTT

Получить третью производную по T.

Синтаксис Automation:

BOOL GetDerivativeTTT (double paramT, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeTTT (double paramT, double * x, double *y, double *z);

Входной параметр:

paramT	- значение параметра T в параметрическом представлении кривой.
Выходные параметры:

x, y, z	- третья производная по T.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax. Координата точки возвращается в координатах компонента.


ksCurve3D::GetParamMin
ICurve3D::GetParamMin

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

Синтаксис Automation:

double GetParamMin();

Синтаксис COM:

double GetParamMin();

Возвращаемое значение:

Значение параметра T	- в случае успеха,
0	- в случае неудачи.


ksCurve3D::GetParamMax
ICurve3D::GetParamMax

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

Синтаксис Automation:

double GetParamMax();

Синтаксис COM:

double GetParamMax();

Возвращаемое значение:

Значение параметра T	- в случае успеха,
0	- в случае неудачи.


ksCurve3D::IsClosed
ICurve3D::IsClosed

Определить, является ли кривая замкнутой.

Синтаксис Automation:

BOOL IsClosed();

Синтаксис COM:

BOOL IsClosed();

Возвращаемое значение:

TRUE	- кривая замкнута,
FALSE	- кривая разомкнута.


ksCurve3D::IsPeriodic
ICurve3D::IsPeriodic

Определить, является ли замкнутая кривая периодической.

Синтаксис Automation:

BOOL IsPeriodic();

Синтаксис COM:

BOOL IsPeriodic();

Возвращаемое значение:

TRUE	- кривая замкнута,
FALSE	- кривая разомкнута.


ksCurve3D::GetLength
ICurve3D::GetLength

Получить длину кривой.

Синтаксис Automation:

double GetLength (unsigned long bitVector);

Синтаксис COM:

double GetLength (unsigned long bitVector);

Входные параметры:

bitVector	- единицы измерения в интервале [ST_MIX_MM..ST_MIX_M].
Возвращаемое значение:

длина кривой	- в случае успешного завершения,
0	- в случае неудачи.


ksCurve3D::GetMetricLength
ICurve3D::GetMetricLength

Получить метрическую длину кривой.

Синтаксис Automation:

double GetMetricLength (double startParam, double endParam);

Синтаксис COM:

double GetMetricLength (double startParam, double endParam);

Входные параметры:

startParam	- начальное значение параметра T в параметрическом представлении кривой,
endParam	- конечное значение параметра T в параметрическом представлении кривой.
Возвращаемое значение:

метрическая длина кривой	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Граничные значения параметра T получаются при помощи методов GetParamMin и GetParamMax.


ksCurve3D::GetGabarit
ICurve3D::GetGabarit

Получить габаритный параллелепипед кривой.

Синтаксис Automation:

BOOL GetGabarit (double * x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);

Синтаксис COM:

BOOL GetGabarit (double * x1,
double *y1,
double *z1,
double * x2,
double *y2,
double *z2);

Выходные параметры:

x1, y1, z1, x2, y2, z2	- координаты вершин габаритного параллелепипеда.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Координаты вершин параллелепипеда возвращаются в системе координат компонента.


ksCurve3D::IsDegenerate
ICurve3D::IsDegenerate

Определить, является ли кривая вырожденной.

Синтаксис Automation:

BOOL IsDegenerate();

Синтаксис COM:

BOOL IsDegenerate();

Возвращаемое значение:

TRUE	- кривая вырожденная,
FALSE	- кривая невырожденная.


ksCurve3D::IsPlanar
ICurve3D::IsPlanar

Определить, является ли кривая плоской.

Синтаксис Automation:

BOOL IsPlanar();

Синтаксис COM:

BOOL IsPlanar();

Возвращаемое значение:

TRUE	- кривая плоская,
FALSE	- кривая неплоская.


ksCurve3D::IsLineSeg
ICurve3D::IsLineSeg

Определить, является ли кривая отрезком.

Синтаксис Automation:

BOOL IsLineSeg();

Синтаксис COM:

BOOL IsLineSeg();

Возвращаемое значение:

TRUE	- кривая является отрезком,
FALSE	- кривая не является отрезком.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра отрезка ksLineSeg3dParam или ILineSeg3dParam.


ksCurve3D::IsArc
ICurve3D::IsArc

Определить, является ли кривая дугой окружности.

Синтаксис Automation:

BOOL IsArc();

Синтаксис COM:

BOOL IsArc();

Возвращаемое значение:

TRUE	- кривая является дугой окружности,
FALSE	- кривая не является дугой окружности.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра дуги окружности ksArc3dParam или IArc3dParam.


ksCurve3D::IsCircle
ICurve3D::IsCircle

Определить, является ли кривая окружностью.

Синтаксис Automation:

BOOL IsCircle();

Синтаксис COM:

BOOL IsCircle();

Возвращаемое значение:

TRUE	- кривая является окружностью,
FALSE	- кривая не является окружностью.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра окружности ksCircle3dParam или ICircle3dParam.


ksCurve3D::IsEllipse
ICurve3D::IsEllipse

Определить, является ли кривая эллипсом.

Синтаксис Automation:

BOOL IsEllipse();

Синтаксис COM:

BOOL IsEllipse();

Возвращаемое значение:

TRUE	- кривая является эллипсом,
FALSE	- кривая не является эллипсом.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра эллипса ksEllipse3dParam или IEllipse3dParam.


ksCurve3D::IsNurbs
ICurve3D::IsNurbs

Определить, является ли кривая NURBS.

Синтаксис Automation:

BOOL IsNurbs();

Синтаксис COM:

BOOL IsNurbs();

Возвращаемое значение:

TRUE	- кривая является NURBS,
FALSE	- кривая не является NURBS.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра NURBS ksNurbs3dParam или INurbs3dParam.


ksCurve3D::GetCurveParam
ICurve3D::GetCurveParam

Получить параметры линии, окружности, эллипса, NURBS или NULL.

Синтаксис Automation:

LPDISPATCH GetCurveParam();

Синтаксис COM:

LPUNKNOWN GetCurveParam();

Возвращаемое значение:

	Указатель на интерфейс параметра кривой.
Примечание:

В соответствии с типом объекта метод вернет указатель на интерфейс параметра:

- отрезка	ksLineSeg3dParam или ILineSeg3dParam
- дуги окружности	ksArc3dParam или IArc3dParam
- окружности	ksCircle3dParam или ICircle3dParam
- эллипса	ksEllipse3dParam или IEllipse3dParam
- NURBS	ksNurbs3dParam или INurbs3dParam
Зная тип объекта можно базовый интерфейс привести к конечному (IDispatch или IUnknown). Для определения типа объекта можно воспользоваться методами IsLineSeg

IsArc,IsCircle, IsEllipse, IsNurbs.


ksCurve3D::NearPointProjection
ksCurve3D::NearPointProjection

Получить ближайшую проекцию точки на поверхность.

Синтаксис Automation:

BOOL NearPointProjection (double x, double y, double z, double * t, BOOL ext);

Синтаксис COM:

BOOL NearPointProjection (double x, double y, double z, double * t, BOOL ext);

Входные параметры:

x, y, z	- координаты исходной пространственной точки,
ext	- если проекция точки вне кривой: - TRUE проецировать на продолжение кривой,  - FALSE найти ближайщую граничную точку кривой. Если проекция точки внутри кривой, значение этого параметра не учитывается.
Выходные параметры:

t	- параметрические координаты точки на кривой.
Возвращаемое значение:

TRUE	- если проекция точки попала на саму кривую или если ext равен TRUE,
FALSE	- если проекция точки не попала на саму кривую.


Интерфейсы ksSurface, ISurface
ksSurface,
ISurface

Интерфейс математической поверхности в трехмерном пространстве.

ksSurface	- интерфейс Automation
ISurface	- интерфейс COM
Методы...


ksSurface::methods
ksSurface
методы

CurveIntersection

GetArea

GetDerivativeU

GetDerivativeUU

GetDerivativeUUU

GetDerivativeUUV

GetDerivativeUV

GetDerivativeUVV

GetDerivativeV

GetDerivativeVV

GetDerivativeVVV

GetGabarit

GetNormal

GetParamUMax

GetParamUMin

GetParamVMax

GetParamVMin

GetPoint

GetSurfaceParam

GetTangentVectorU

GetTangentVectorV

IsClosedU

IsClosedV

IsCone

IsCylinder

IsNurbsSurface

IsPlane

IsRevolved

IsSphere

IsSwept

IsTorus

NearPointProjection

Tessellation


ksSurface::GetGabarit
ISurface::GetGabarit

Получить габаритный параллелепипед поверхности.

Синтаксис Automation:

BOOL GetGabarit (double * x1, double *y1, double *z1, double * x2, double *y2, double *z2);

Синтаксис COM:

BOOL GetGabarit (double * x1, double *y1, double *z1, double * x2, double *y2, double *z2);

Выходные параметры:

x1, y1, z1, x2, y2, z2	- координаты вершин габаритного параллелепипеда.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Координаты вершин параллелепипеда возвращаются в системе координат компонента.


ksSurface::GetPoint
ISurface::GetPoint

Получить координаты точки на поверхности.

Синтаксис Automation:

BOOL GetPoint(double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetPoint(double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- координаты точки на кривой.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetNormal
ISurface::GetNormal

Получить направление нормали.

Синтаксис Automation:

BOOL GetNormal (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetNormal (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- вектор нормали.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetTangentVectorU
ISurface::GetTangentVectorU

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

Синтаксис Automation:

BOOL GetTangentVectorU  (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetTangentVectorU (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- касательный вектор по U.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetTangentVectorV
ISurface::GetTangentVectorV

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

Синтаксис Automation:

BOOL GetTangentVectorV (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetTangentVectorV (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- касательный вектор по V.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeU
ISurface::GetDerivativeU

Получить первую производную по U.

Синтаксис Automation:

BOOL GetDerivativeU (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeU (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- первая производная по U.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeV
ISurface::GetDerivativeV

Получить первую производную по V.

Синтаксис Automation:

BOOL GetDerivativeV (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeV (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- первая производная по V.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeUU
ISurface::GetDerivativeUU

Получить вторую производную по UU.

Синтаксис Automation:

BOOL GetDerivativeUU (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeUU (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- вторая производная по UU.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeVV
ISurface::GetDerivativeVV

Получить вторую производную по VV.

Синтаксис Automation:

BOOL GetDerivativeVV (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeVV (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- вторая производная по VV.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeUV
ISurface::GetDerivativeUV

Получить вторую производную по UV.

Синтаксис Automation:

BOOL GetDerivativeUV (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeUV (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- вторая производная по UV.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeUUU
ISurface::GetDerivativeUUU

Получить третью производную по UUU.

Синтаксис Automation:

BOOL GetDerivativeUUU (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeUUU (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- третья производная по UUU.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeVVV
ISurface::GetDerivativeVVV

Получить третью производную по VVV.

Синтаксис Automation:

BOOL GetDerivativeVVV (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeVVV (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- третья производная по VVV.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeUVV
ISurface::GetDerivativeUVV

Получить третью производную по UVV.

Синтаксис Automation:

BOOL GetDerivativeUVV (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeUVV (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- третья производная по UVV.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetDerivativeUUV
ISurface::GetDerivativeUUV

Получить третью производную по UUV.

Синтаксис Automation:

BOOL GetDerivativeUUV (double paramU, double paramV, double * x, double *y, double *z);

Синтаксис COM:

BOOL GetDerivativeUUV (double paramU, double paramV, double * x, double *y, double *z);

Входные параметры:

paramU, paramV	- значения параметров U и V в параметрическом представлении поверхности.
Выходные параметры:

x, y, z	- третья производная по UUV.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Граничные значения параметров U и V получаются при помощи методов GetParamUMin и GetParamUMax и GetParamVMin и GetParamVMax. Координаты точки возвращаются в системе координат компонента.


ksSurface::GetParamUMin
ISurface::GetParamUMin

Получить начальное значение параметра U в параметрическом представлении поверхности.

Синтаксис Automation:

double GetParamUMin();

Синтаксис COM:

double GetParamUMin();

Возвращаемое значение:

Значение параметра U.	- в случае успеха,
0	- в случае неудачи.


ksSurface::GetParamUMax
ISurface::GetParamUMax

Получить конечное значение параметра U в параметрическом представлении поверхности.

Синтаксис Automation:

double GetParamUMax();

Синтаксис COM:

double GetParamUMax();

Возвращаемое значение:

Значение параметра U.	- в случае успеха,
0	- в случае неудачи.


ksSurface::GetParamVMin
ISurface::GetParamVMin

Получить начальное значение параметра V в параметрическом представлении поверхности.

Синтаксис Automation:

double GetParamVMin();

Синтаксис COM:

double GetParamVMin();

Возвращаемое значение:

Значение параметра V	- в случае успеха,
0	- в случае неудачи.


ksSurface::GetParamVMax
ISurface::GetParamVMax

Получить конечное значение параметра V в параметрическом представлении поверхности.

Синтаксис Automation:

double GetParamVMax();

Синтаксис COM:

double GetParamVMax();

Возвращаемое значение:

Значение параметра V	- в случае успеха,
0	- в случае неудачи.


ksSurface::IsClosedU
ISurface::IsClosedU

Определить, является ли поверхность замкнутой по U.

Синтаксис Automation:

BOOL IsClosedU();

Синтаксис COM:

BOOL IsClosedU();

Возвращаемое значение:

TRUE	- кривая замкнута,
FALSE	- кривая разомкнута.


ksSurface::IsClosedV
ISurface::IsClosedV

Определить, является ли поверхность замкнутой по V.

Синтаксис Automation:

BOOL IsClosedV();

Синтаксис COM:

BOOL IsClosedV();

Возвращаемое значение:

TRUE	- кривая замкнута,
FALSE	- кривая разомкнута.


ksSurface::IsPlane
ISurface::IsPlane

Определить, является ли грань плоской.

Синтаксис Automation:

BOOL IsPlane();

Синтаксис COM:

BOOL IsPlane();

Возвращаемое значение:

TRUE	- поверхность является плоской,
FALSE	- поверхность не является плоской.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра плоскости ksPlaneParam или IPlaneParam.


ksSurface::IsCone
ISurface::IsCone

Определить, является ли поверхность конической.

Синтаксис Automation:

BOOL IsCone();

Синтаксис COM:

BOOL IsCone();

Возвращаемое значение:

TRUE	- поверхность является конической,
FALSE	- поверхность не является конической.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра конуса ksConeParam или IConeParam.


ksSurface::IsCylinder
ISurface::IsCylinder

Определить, является ли поверхность цилиндрической.

Синтаксис Automation:

BOOL IsCylinder();

Синтаксис COM:

BOOL IsCylinder();

Возвращаемое значение:

TRUE	- поверхность является цилиндрической,
FALSE	- поверхность не является цилиндрической.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра цилиндра ksCylinderParam или IPlaneCylinder.


ksSurface::IsTorus
ISurface::IsTorus

Определить, является ли поверхность тором.

Синтаксис Automation:

BOOL IsTorus();

Синтаксис COM:

BOOL IsTorus();

Возвращаемое значение:

TRUE	- поверхность является тороидальной,
FALSE	- поверхность не является тороидальной.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра тора ksTorusParam или ITorusParam.


ksSurface::IsSphere
ISurface::IsSphere

Определить, является ли поверхность сферой.

Синтаксис Automation:

BOOL IsSphere();

Синтаксис COM:

BOOL IsSphere();

Возвращаемое значение:

TRUE	- поверхность является сферической,
FALSE	- поверхность не является сферической.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetSurfaceParam вернет указатель на интерфейс параметра сферы ksSphereParam или ISphereParam.


ksSurface::IsNurbsSurface
ISurface::IsNurbsSurface

Определить, является ли поверхность NURBS.

Синтаксис Automation:

BOOL IsNurbsSurface();

Синтаксис COM:

BOOL IsNurbsSurface();

Возвращаемое значение:

TRUE	- поверхность является NURBS,
FALSE	- поверхность не является NURBS.
Примечание:

Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному интерфейсу трехмерных объектов. Зная тип объекта можно привести его к соответствующему интерфейсу. Метод GetCurveParam вернет указатель на интерфейс параметра NURBS ksNurbsSurfaceParam или INurbsSurfaceParam.


ksSurface::IsRevolved
ISurface::IsRevolved

Определить, является ли поверхность поверхностью вращения.

Синтаксис Automation:

BOOL IsRevolved();

Синтаксис COM:

BOOL IsRevolved();

Возвращаемое значение:

TRUE	- поверхность является поверхностью вращения,
FALSE	- поверхность не является поверхностью вращения.


ksSurface::IsSwept
ISurface::IsSwept

Определить, является ли поверхность поверхностью по траектории.

Синтаксис Automation:

BOOL IsSwept();

Синтаксис COM:

BOOL IsSwept();

Возвращаемое значение:

TRUE	- поверхность является поверхностью по траектории,
FALSE	- поверхность не является поверхностью по траектории.


ksSurface::Tessellation
ISurface::Tessellation

Получить указатель на интерфейс триангуляции.

Синтаксис Automation:

LPDISPATCH  GetTessellation();

Синтаксис COM:

LPTESSELLATION GetTessellation();

Возвращаемое значение:

	Указатель на интерфейс ksTessellation или ITessellation.


ksSurface::GetArea
ISurface::GetArea

Получить площадь поверхности.

Синтаксис Automation:

double GetArea (long bitVector);

Синтаксис COM:

double GetArea (unsigned long bitVector);

Входные параметры:

bitVector	- единицы измерения в интервале [ST_MIX_MM..ST_MIX_M].
Возвращаемое значение:

площадь поверхности	- в случае успешного завершения,
0	- в случае неудачи.


ksSurface::GetSurfaceParam
ISurface::GetSurfaceParam

Получить параметры плоскости, конуса, цилиндра, тора, сферы, NURBS или NULL.

Синтаксис Automation:

LPDISPATCH GetSurfaceParam();

Синтаксис COM:

LPDISPATCH GetSurfaceParam();

Возвращаемое значение:

	Указатель на интерфейс параметра поверхности
Примечание:

В соответствии с типом объекта метод вернет указатель на интерфейс параметра:

- плоскости	ksPlaneParam или IPlaneParam.
- конуса	ksConeParam или IConeParam.
- цилиндра	ksCylinderParam или ICylinderParam.
- тора	ksTorusParam или ITorusParam.
- сферы	ksSphereParam или ISphereParam.
- NURBS- поверхности	ksNurbsSurfaceParam или INurbsSurfaceParam.
Зная тип объекта можно базовый интерфейс привести к конечному (IDispatch или IUnknown). Для определения типа объекта можно воспользоваться методами IsPlane,

IsCone, IsCylinder, IsTorus, IsSphere, IsNurbsSurface.


ksSurface::NearPointProjection
ISurface::NearPointProjection

Получить ближайшую проекцию точки на поверхность.

Синтаксис Automation:

BOOL NearPointProjection (double x, double y, double z, double * u, double * v, BOOL ext);

Синтаксис COM:

BOOL NearPointProjection (double x, double y, double z, double * u, double * v, BOOL ext);

Входные параметры:

x, y, z	- координаты исходной пространственной точки,
ext	- если проекция точки вне поверхности: - TRUE проецировать на продолжение поверхности,  - FALSE найти ближайщую граничную точку поверхности. Если проекция точки внутри поверхности, значение этого параметра не учитывается.
Выходные параметры:

u, v	- параметрические координаты точки на поверхности.
Возвращаемое значение:

TRUE	- если проекция точки попала на саму поверхность или если ext равен TRUE,
FALSE	- если проекция точки не попала на саму поверхность.


ksSurface::CurveIntersection
ISurface::CurveIntersection

Рассчитать пересечения с кривой.

Синтаксис Automation:

BOOL CurveIntersection (LPDISPATCH curve, LPDISPATCH points);

Синтаксис COM:

BOOL CurveIntersection (LPCURVE3D curve, LPCOORDINATE3DCOLLECTION points);

Входные параметры:

curve	- Указатель на интерфейс 3D кривой ksCurve3D
Выходные параметры:

points	- Коллекция координат точек пересечений ksCoordinate3dCollection
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Координаты точек сортируются по параметру кривой t.

2. Параметр points является необязательным.

3. Заполняются только присланные коллекции.

4. Интерфейсы коллекций координат точек ksCoordinate3dCollection -  нужно получить с помощью функций ksDocument3D::GetInterface с параметром o3dType = o3d_coordinate3dCollection.


Интерфейсы ksLoop, ILoop
ksLoop,
ILoop

Интерфейс цикла грани.

ksLoop	- интерфейс Automation
ILoop	- интерфейс COM
Методы...

Примечание:

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


ksLoop::methods
ksLoop
методы

EdgeCollection

GetLength

IsOuter

OrientedEdgeCollection


ksLoop::OrientedEdgeCollection
ILoop::OrientedEdgeCollection

Получить массив ориентированных ребер.

Синтаксис Automation:

LPDISPATCH OrientedEdgeCollection (LPDISPATCH edge);

Синтаксис COM:

LPORIENTEDEDGECOLLECTION OrientedEdgeCollection (LPEDGEDEFINITION);

Входные параметры:

edge	- указатель на интерфейс ksEdgeDefinition или IEdgeDefinition.
Возвращаемое значение:

	- указатель на интерфейс ksOrientedEdgeCollection или IOrientedEdgeCollection.
Примечание:

Если параметр edge = NULL, то метод вернет весь массив. Если edge <> NULL, то будет возвращен массив ориентированных ребер, которые содержат данное ребро.


ksLoop::EdgeCollection
ILoop::EdgeCollection

Получить массив ребер, ограничивающих грань.

Синтаксис Automation:

LPDISPATCH EdgeCollection();

Синтаксис COM:

LPEDGECOLLECTION EdgeCollection();

Возвращаемое значение:

	- указатель на интерфейс ksEdgeCollection или IEdgeCollection.


ksLoop::IsOuter
ILoop::IsOuter

Определить, является ли цикл внешним.

Синтаксис Automation:

BOOL IsOuter();

Синтаксис COM:

BOOL IsOuter();

Возвращаемое значение:

TRUE	- цикл является внешним,
FALSE	- цикл не является внешним.


ksLoop::GetLength
ILoop::GetLength

Получить общую длину ребер.

Синтаксис Automation:

double GetLength (unsigned long bitVector);

Синтаксис COM:

double GetLength (unsigned long bitVector );

Входные параметры:

bitVector	- единицы измерения в интервале [ST_MIX_MM..ST_MIX_M].
Возвращаемое значение:

общая длина ребер	- в случае успеха,
0	- в случае неудачи.


Интерфейсы ksBodyCollection, IBodyCollection
ksBodyCollection,
IBodyCollection

Интерфейс массива трехмерных тел.

ksBodyCollection	- интерфейс Automation
IBodyCollection	- интерфейс COM
Методы...


ksBodyCollection::methods
ksBodyCollection
методы

FindIt

First

GetByIndex

GetCount

Last

Next

Prev

Refresh


ksBodyCollection::Refresh
IBodyCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом тел трехмерной детали или сборки и удаляются все предыдущие изменения в массиве.


ksBodyCollection::GetCount
IBodyCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksBodyCollection::First
IBodyCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPBODY First();

Возвращаемое значение:

	указатель на интерфейс ksBody или IBody.


ksBodyCollection::Last
IBodyCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPBODY Last();

Возвращаемое значение:

	указатель на интерфейс ksBody или IBody.


ksBodyCollection::Next
IBodyCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPBODY Next();

Возвращаемое значение:

	указатель на интерфейс ksBody или IBody.


ksBodyCollection::Prev
IBodyCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPBODY Prev();

Возвращаемое значение:

	указатель на интерфейс ksBody или IBody.


ksBodyCollection::GetByIndex
IBodyCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPBODY GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksBody или IBody.


ksBodyCollection::FindIt
IBodyCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt (LPBODY entity );

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksBody или IBody.


Интерфейсы ksFaceCollection, IFaceCollection
ksFaceCollection,
IFaceCollection

Интерфейс массива граней.

ksFaceCollection	- интерфейс Automation
IFaceCollection	- интерфейс COM
Методы...


ksFaceCollection::methods
ksFaceCollection
методы

FindIt

First

GetByIndex

GetByName

GetCount

Last

Next

Prev

Refresh


ksFaceCollection::Refresh
IFaceCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом граней трехмерного тела и удаляются все предыдущие изменения в массиве.


ksFaceCollection::GetCount
IFaceCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksFaceCollection::First
IFaceCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPFACEDEFINITION First();

Возвращаемое значение:

	указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksFaceCollection::Last
IFaceCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPFACEDEFINITION Last();

Возвращаемое значение:

	указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksFaceCollection::Next
IFaceCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPFACEDEFINITION Next();

Возвращаемое значение:

	указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksFaceCollection::Prev
IFaceCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPDISPATCH Prev();

Возвращаемое значение:

	указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksFaceCollection::GetByIndex
IFaceCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPFACEDEFINITION GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksFaceCollection::GetByName
IFaceCollection::GetByName

Получить указатель на интерфейс объекта в массиве по имени.

Синтаксис Automation:

LPDISPATCH GetByName (BSTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Синтаксис COM:

LPFACEDEFINITION GetByName (LPOLESTR name,

BOOL testFullName,

BOOL testIgnoreCase);

Входные параметры:

name	- название грани,
testFullName	- признак полного имени: TRUE - name - проверять по полному пути,  FALSE - имя name может быть частью полного имени,
testIgnoreCase	- признак игнорирования регистра символов: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:

	указатель на интерфейс ksFaceDefinition или IFaceDefinition.


ksFaceCollection::FindIt
IFaceCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt(LPFACEDEFINITION entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksFaceDefinition или IFaceDefinition.


Интерфейсы ksLoopCollection, ILoopCollection
ksLoopCollection,
ILoopCollection

Интерфейс массива циклов.

ksLoopCollection	- интерфейс Automation
ILoopCollection	- интерфейс COM
Методы...


ksLoopCollection::methods
ksLoopCollection
методы

FindIt

First

GetByIndex

GetCount

Last

Next

Prev

Refresh


ksLoopCollection::Refresh
ILoopCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом циклов грани и удаляются все предыдущие изменения в массиве.


ksLoopCollection::GetCount
ILoopCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksLoopCollection::First
ILoopCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPLOOP First();

Возвращаемое значение:

	указатель на интерфейс ksLoop или ILoop.


ksLoopCollection::Last
ILoopCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPLOOP Last();

Возвращаемое значение:

	указатель на интерфейс ksLoop или ILoop.


ksLoopCollection::Next
ILoopCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPLOOP Next();

Возвращаемое значение:

	указатель на интерфейс ksLoop или ILoop.


ksLoopCollection::Prev
ILoopCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPLOOP Prev();

Возвращаемое значение:

	указатель на интерфейс ksLoop или ILoop.


ksLoopCollection::GetByIndex
ILoopCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPLOOP GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksLoop или ILoop.


ksLoopCollection::FindIt
ILoopCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt (LPLOOP entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksLoop или ILoop.


Интерфейсы ksOrientedEdgeCollection, IOrientedEdgeCollection
ksOrientedEdgeCollection,
IOrientedEdgeCollection

Интерфейс массива оиентированных ребер.

ksOrientedEdgeCollection	- интерфейс Automation
IOrientedEdgeCollection	- интерфейс COM
Методы...


ksOrientedEdgeCollection::methods
ksOrientedEdgeCollection
методы

FindIt

First

GetByIndex

GetCount

Last

Next

Prev

Refresh


ksOrientedEdgeCollection::Refresh
IOrientedEdgeCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом ориентированных ребер и удаляются все предыдущие изменения в массиве.


ksOrientedEdgeCollection::GetCount
IOrientedEdgeCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksOrientedEdgeCollection::First
IOrientedEdgeCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPORIENTEDEDGE First();

Возвращаемое значение:

	указатель на интерфейс ksOrientedEdge или IOrientedEdge.


ksOrientedEdgeCollection::Last
IOrientedEdgeCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPORIENTEDEDGE Last();

Возвращаемое значение:

	указатель на интерфейс ksOrientedEdge или IOrientedEdge.


ksOrientedEdgeCollection::Next
IOrientedEdgeCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPORIENTEDEDGE Next();

Возвращаемое значение:

	указатель на интерфейс ksOrientedEdge или IOrientedEdge.


ksOrientedEdgeCollection::Prev
IOrientedEdgeCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPORIENTEDEDGE Prev();

Возвращаемое значение:

	указатель на интерфейс ksOrientedEdge или IOrientedEdge.


ksOrientedEdgeCollection::GetByIndex
IOrientedEdgeCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPORIENTEDEDGE GetByIndex (long index );

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksOrientedEdge или IOrientedEdge.


ksOrientedEdgeCollection::FindIt
IOrientedEdgeCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt (LPORIENTEDEDGE entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksOrientedEdge или IOrientedEdge.


Интерфейсы ksEdgeCollection, IEdgeCollection
ksEdgeCollection,
IEdgeCollection

Интерфейс массива ориентированных ребер.

ksEdgeCollection	- интерфейс Automation
IEdgeCollection	- интерфейс COM
Методы...


ksEdgeCollection::methods
ksEdgeCollection
методы

FindIt

First

GetByIndex

GetCount

Last

Next

Prev

Refresh


ksEdgeCollection::Refresh
IEdgeCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом ребер грани и удаляются все предыдущие изменения в массиве.


ksEdgeCollection::GetCount
IEdgeCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksEdgeCollection::First
IEdgeCollection::First

Получить указатель на интерфейс первого объекта в массиве.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPEDGEDEFINITION First();

Возвращаемое значение:

	указатель на интерфейс ksEdgeDefinition или IEdgeDefinition.


ksEdgeCollection::Last
IEdgeCollection::Last

Получить указатель на интерфейс последнего объекта в массиве.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPEDGEDEFINITION Last();

Возвращаемое значение:

	указатель на интерфейс ksEdgeDefinition или IEdgeDefinition.


ksEdgeCollection::Next
IEdgeCollection::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPEDGEDEFINITION Next();

Возвращаемое значение:

	указатель на интерфейс ksEdgeDefinition или IEdgeDefinition.


ksEdgeCollection::Prev
IEdgeCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPEDGEDEFINITION Prev();

Возвращаемое значение:

	указатель на интерфейс ksEdgeDefinition или IEdgeDefinition.


ksEdgeCollection::GetByIndex
IEdgeCollection::GetByIndex

Получить указатель на интерфейс объекта в массиве по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPEDGEDEFINITION GetByIndex (long index);

Входной параметр:

index	- номер объекта в массиве.
Возвращаемое значение:

	указатель на интерфейс ksEdgeDefinition или IEdgeDefinition.


ksEdgeCollection::FindIt
IEdgeCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt(LPDISPATCH entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt (LPEDGEDEFINITION entity);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
SYS_MAX_UINT	- если элемент не найден.
Входные параметры:

entity	- указатель на интерфейс компонента ksEdgeDefinition или IEdgeDefinition.


Интерфейсы ksLineSeg3dParam, ILineSeg3dParam
ksLineSeg3dParam,
ILineSeg3dParam

Интерфейс параметров отрезка.

ksLineSeg3dParam	- интерфейс Automation
ILineSeg3dParam	- интерфейс COM
Методы...

Примечание:

Отрезок определяется координатами начальной и конечной точек.


ksLineSeg3dParam::methods
ksLineSeg3dParam
методы

GetPointFirst

GetPointLast


ksLineSeg3dParam::GetPointFirst
ILineSeg3dParam::GetPointFirst

Получить координаты первой точки отрезка.

Синтаксис Automation:

BOOL GetPointFirst (double * x, double *y, double *z);

Синтаксис COM:

BOOL GetPointFirst (double * x, double *y, double *z);

Входной параметр:

index	- номер объекта в массиве.
Выходные параметры:

x, y, z	- координаты первой точки отрезка.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Значения x, y, z возвращаются в системе координат компонента.


ksLineSeg3dParam::GetPointLast
ILineSeg3dParam::GetPointLast

Получить координаты второй точки отрезка.

Синтаксис Automation:

BOOL GetPointLast (double * x, double *y, double *z);

Синтаксис COM:

BOOL GetPointLast (double * x, double *y, double *z);

Входной параметр:

index	- номер объекта в массиве.
Выходные параметры:

x, y, z	- координаты первой точки отрезка.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Значения x, y, z возвращаются в системе координат компонента.


Интерфейсы ksCircle3dParam, ICircle3dParam
ksCircle3dParam,
ICircle3dParam

Интерфейс параметров окружности.

ksCircle3dParam	- интерфейс Automation
ICircle3dParam	- интерфейс COM
Свойства...

Методы...

Примечание:

Окружность определяется координатами центра и радиусом.


ksCircle3dParam::props
ksCircle3dParam
свойства

radius


ksCircle3dParam::methods
ksCircle3dParam
методы

GetPlacement


ksCircle3dParam::radius
ICircle3dParam::radius

Радиус окружности.

Тип данных - double.

Синтаксис Automation:

radius = iCircle3dParam.radius	Получить свойство (*)
radius = iCircle3dParam.GetRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksCircle3dParam::GetPlacement
ICircle3dParam::GetPlacement

Получить указатель на интерфейс положения окружности.

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksEllipse3dParam, IEllipse3dParam
ksEllipse3dParam,
IEllipse3dParam

Интерфейс параметров эллипса.

ksEllipse3dParam	- интерфейс Automation
IEllipse3dParam	- интерфейс COM
Свойства...

Методы...

Примечание:

Эллипс определяется координатами центра и двумя радиусами.


ksEllipse3dParam::props
ksEllipse3dParam
свойства

majorRadius

minorRadius


ksEllipse3dParam::methods
ksEllipse3dParam
методы

GetPlacement


ksEllipse3dParam::majorRadius
IEllipse3dParam::majorRadius

Больший радиус эллипса.

Тип данных - double.

Синтаксис Automation:

majorRadius = iEllipse3dParam.majorRadius	Получить свойство (*)
majorRadius = iEllipse3dParam.GetMajorRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksEllipse3dParam::minorRadius
IEllipse3dParam::minorRadius

Меньший радиус эллипса.

Тип данных - double.

Синтаксис Automation:

minorRadius = iEllipse3dParam.minorRadius	Получить свойство (*)
minorRadius = iEllipse3dParam.GetMinorRadius()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksEllipse3dParam::GetPlacement
IEllipse3dParam::GetPlacement

Получить указатель на интерфейс положения окружности.

Синтаксис Automation:

LPDISPATCH GetPlacement();

Синтаксис COM:

LPPLACEMENT GetPlacement();

Возвращаемое значение:

	указатель на интерфейс ksPlacement или IPlacement.


Интерфейсы ksMeasurer, IMeasurer
ksMeasurer,
IMeasurer

Интерфейс для измерений расстояния и угла между двумя примитивами.

ksMeasurer	- интерфейс Automation
IMeasurer	- интерфейс COM
Свойства...

Методы...

Примечание:

Интерфейс применим для граней, ребер, вершин.


ksMeasurer::props
ksMeasurer
свойства

angle

distance

extendObject1

extendObject2

unit


ksMeasurer::methods
ksMeasurer
методы

Calc

GetObject1;

GetObject2

GetPoint1

GetPoint2

IsAngleValid

SetObject1

SetObject2


ksMeasurer::unit
IMeasurer::unit

Размерность.

Тип данных - unsigned long.

Синтаксис Automation:

unit = iMeasurer.unit	Получить свойство (*)
iMeasurer.unit = unit	Установить свойство (*)
unit = iMeasurer.GetUnit()	Получить свойство (**)
iMeasurer.SetUnit( unit )	Установить свойство (**)
Примечание:

Свойство находится в интервале [ST_MIX_MM..ST_MIX_M].


ksMeasurer::extendObject1
IMeasurer::extendObject1

Признак вычисления за пределами второго объекта

Тип данных - BOOL

Синтаксис Automation:

extendObject1 = iMeasurer.extendObject1	Получить свойство (*)
iMeasurer.extendObject1 = extendObject1	Установить свойство (*)
extendObject1 = iMeasurer.GetExtendObject1()	Получить свойство (**)
iMeasurer.SetExtendObject1( extendObject1)	Установить свойство (**)
Примечание:

Если значение свойства равно TRUE, то следует вычислять за пределами второго объекта.


ksMeasurer::extendObject2
IMeasurer::extendObject2

Признак вычисления за пределами первого объекта

Тип данных - BOOL

Синтаксис Automation:

extendObject2 = iMeasurer.extendObject2	Получить свойство (*)
iMeasurer.extendObject2 = extendObject2	Установить свойство (*)
extendObject2 = iMeasurer.GetExtendObject2()	Получить свойство (**)
iMeasurer.SetExtendObject2( extendObject2)	Установить свойство (**)
Примечание:

Если значение свойства равно TRUE, то следует вычислять за пределами первого объекта.


ksMeasurer::angle
IMeasurer::angle

Угол между объектами.

Тип данных - double

Синтаксис Automation:

angle = iMeasurer.angle	Получить свойство (*)
angle = iMeasurer.GetAngle()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksMeasurer::distance
IMeasurer::distance

Угол между объектами.

Тип данных - double

Синтаксис Automation:

distance = iMeasurer.distance	Получить свойство (*)
distance = iMeasurer.GetDistance()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksMeasurer::SetObject1
IMeasurer::SetObject1

Задать первый объект.

Синтаксис Automation:

BOOL SetObject1 (LPDISPATCH obj);

Синтаксис COM:

BOOL SetObject1 (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown первого объекта.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Входным параметром может быть грань, ребро, вершина.


ksMeasurer::SetObject2
IMeasurer::SetObject2

Задать второй объект.

Синтаксис Automation:

BOOL SetObject2 (LPDISPATCH obj);

Синтаксис COM:

BOOL SetObject2 (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown первого объекта.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Входным параметром может быть грань, ребро, вершина.


ksMeasurer::GetObject1
IMeasurer::GetObject1

Получить первый объект.

Синтаксис Automation:

LPDISPATCH GetObject1();

Синтаксис COM:

LPUNKNOWN GetObject1();

Возвращаемое значение:

	Указатель на интерфейс IDispatch или IUnknown первого объекта.
Примечание:

Возвращаемым значением может быть указатель на интерфейс грани, ребра, вершины. Зная тип объекта, можно приветси его интерфейс к конечному 3D интерфейсу.


ksMeasurer::GetObject2
IMeasurer::GetObject2

Получить второй объект.

Синтаксис Automation:

LPDISPATCH GetObject2();

Синтаксис COM:

LPUNKNOWN GetObject2();

Возвращаемое значение:

	Указатель на интерфейс IDispatch или IUnknown второго объекта.
Примечание:

Возвращаемым значением может быть указатель на интерфейс грани, ребра, вершины. Зная тип объекта, можно приветси его интерфейс к конечному 3D интерфейсу.


ksMeasurer::Calc
IMeasurer::Calc

Произвести вычисления.

Синтаксис Automation:

BOOL Calc();

Синтаксис COM:

BOOL Calc();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksMeasurer::IsAngleValid
IMeasurer::IsAngleValid

Определить применимость расчета угла.

Синтаксис Automation:

BOOL IsAngleValid();

Синтаксис COM:

BOOL IsAngleValid();

Возвращаемое значение:

TRUE	- для данных объектов угол имеет смысл,
FALSE	- для данных объектов угол смысла не имеет.


ksMeasurer::GetPoint1
IMeasurer::GetPoint1

Получить ближайшую точку на первом объекте или на продолжении объекта.

Синтаксис Automation:

BOOL GetPoint1 (double *x, double *y, double *z);

Синтаксис COM:

BOOL GetPoint1 (double *x, double *y, double *z);

Входной параметр:

x, y, z	- координаты точки.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Значения x, y, z возвращаются в системе координат компонента.


ksMeasurer::GetPoint2
IMeasurer::GetPoint2

Получить ближайшую точку на первом объекте или на продолжении объекта.

Синтаксис Automation:

BOOL GetPoint2 (double *x, double *y, double *z);

Синтаксис COM:

BOOL GetPoint2 (double *x, double *y, double *z);

Входной параметр:

x, y, z	- координаты точки.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Значения x, y, z возвращаются в системе координат компонента.


Интерфейсы ksDeletedCopyCollection, IDeletedCopyCollection
ksDeletedCopyCollection,
IDeletedCopyCollection

Интерфейс массива удаленных индексов для оперций копирования и массивов компонентов.

ksDeletedCopyCollection	- интерфейс Automation
IDeletedCopyCollection	- интерфейс COM
Методы...

Примечание:

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


ksDeletedCopyCollection::methods
ksDeletedCopyCollection
методы

AddAt

Add

Clear

DetachByBody

DetachByIndex

FindIt

First

GetByIndex

GetCount

Last

Next

Prev

Refresh

SetByIndex


ksDeletedCopyCollection::Refresh
IDeletedCopyCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::GetCount
IDeletedCopyCollection::GetCount

Получить количество элементов в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество элементов массива.


ksDeletedCopyCollection::First
IDeletedCopyCollection::First

Получить индексы первой удаленной копии.

Синтаксис Automation:

BOOL First(long * index1, long * index2);

Синтаксис COM:

BOOL First(long * index1, long * index2);

Выходные параметры:

index1, index1	- индексы удаленной копии в узоре.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::Last
IDeletedCopyCollection::Last

Получить индексы последней удаленной копии.

Синтаксис Automation:

BOOL Last (long * index1, long * index2);

Синтаксис COM:

BOOL Last (long * index1, long * index2);

Выходные параметры:

index1, index1	- индексы удаленной копии в узоре.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::Next
IDeletedCopyCollection::Next

Получить индексы следующей удаленной копии.

Синтаксис Automation:

BOOL Next (long * index1, long * index2);

Синтаксис COM:

BOOL Next (long * index1, long * index2);

Выходные параметры:

index1, index1	- индексы удаленной копии в узоре.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::Prev
IDeletedCopyCollection::Prev

Получить индексы предыдущей удаленной копии.

Синтаксис Automation:

BOOL Prev (long * index1, long * index2);

Синтаксис COM:

BOOL Prev (long * index1, long * index2);

Выходные параметры:

index1, index1	- индексы удаленной копии в узоре.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::GetByIndex
IDeletedCopyCollection::GetByIndex

Получить индексы удаленной копии по индексу.

Синтаксис Automation:

BOOL GetByIndex (long index, long * index1, long * index2);

Синтаксис COM:

BOOL GetByIndex (long index, long * index1, long * index2);

Входной параметр:

index	- индекс удаленной копии в массиве.
Выходные параметры:

index1, index1	- индексы удаленной копии в узоре.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::Clear
IDeletedCopyCollection::Clear

Очистить массив.

Синтаксис Automation:

BOOL Clear();

Синтаксис COM:

BOOL Clear();

Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи


ksDeletedCopyCollection::Add
IDeletedCopyCollection::Add

Добавить объект в конец массива.

Синтаксис Automation:

BOOL Add (long index1, long index2);

Синтаксис COM:

BOOL GetByIndex (long index, long * index1, long * index2);

Входные параметры:

index1, index1	- индексы удаленной копии в узоре.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи


ksDeletedCopyCollection::AddAt
IDeletedCopyCollection::AddAt

Добавить элемент перед элементом с заданным индексом.

Синтаксис Automation:

BOOL AddAt (long index1, long index2, long index);

Синтаксис COM:

BOOL AddAt (long index1, long index2, long index);

Входные параметры:

index1, index1	- индексы удаленной копии в узоре.
index	- удаленной копии в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи


ksDeletedCopyCollection::DetachByIndex
IDeletedCopyCollection::DetachByIndex

Отсоединить элемент.

Синтаксис Automation:

BOOL DetachByIndex (long index);

Синтаксис COM:

BOOL DetachByIndex (long index);

Входной параметр:

index	- индекс удаленной копии в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Элемент массива из модели не удаляется.


ksDeletedCopyCollection::DetachByBody
IDeletedCopyCollection::DetachByBody

Отсоединить элемент.

Синтаксис Automation:

BOOL DetachByBody (long index1, long index2);

Синтаксис COM:

BOOL DetachByBody (long index1, long index2);

Входные параметры:

index1, index1	- индексы удаленной копии в узоре.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::SetByIndex
IDeletedCopyCollection::SetByIndex

Заменить элемент.

Синтаксис Automation:

BOOL SetByIndex (long index1, long index2, long index);

Синтаксис COM:

BOOL SetByIndex (long index1, long index2, long index);

Входные параметры:

index1, index1	- индексы удаленной копии в узоре.
index	- удаленной копии в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDeletedCopyCollection::FindIt
IDeletedCopyCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (long index1, long index2);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Синтаксис COM:

unsigned long FindIt ( long index1, long index2);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
0xffffffff	- если элемент не найден.
Входные параметры:

index1, index1	- индексы удаленной копии в узоре.


Интерфейсы ksViewProjectionCollection, IViewProjectionCollection
ksViewProjectionCollection,
IViewProjectionCollection

Интерфейс массива проекций отображения модели в окне.

ksViewProjectionCollection	- интерфейс Automation
IViewProjectionCollection	- интерфейс COM
Методы...

Примечание:

Типы предопределенных проекций отображения...

К предопределенным проекциям можно добавлять пользовательские, индексы которых могут изменяться. Получить этот интерфейс можно методом ksDocument3D::GetViewProjectionCollection, при этом он будет автоматически заполнен проекциями заданными в данном документе.


ksViewProjectionCollection::methods
ksViewProjectionCollection::Refresh
IViewProjectionCollection::Refresh

Add

DetachByBody

DetachByIndex

DetachByName

FindIt

First

GetByIndex

GetByName

GetCount

Last

NewViewProjection

Next

Prev

Refresh


ksViewProjectionCollection::Refresh
IViewProjectionCollection::Refresh

Обновить массив.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Метод перезаполняет массив проекциями, заданными в документе.


ksViewProjectionCollection::GetCount
IViewProjectionCollection::GetCount

Получить количество проекций в массиве.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	количество проекций в массиве.


ksViewProjectionCollection::First
IViewProjectionCollection::First

Получить указатель на первый элемент массива.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPVIEWPROJECTION First();

Возвращаемое значение:

	указатель на интерфейс ksViewProjection или IViewProjection.


ksViewProjectionCollection::Last
IViewProjectionCollection::Last

Получить указатель на последний элемент массива.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPVIEWPROJECTION Last();

Возвращаемое значение:

	указатель на интерфейс ksViewProjection или IViewProjection.


ksViewProjectionCollection::Next
IViewProjectionCollection::Next

Получить указатель на следующий элемент массива.

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPVIEWPROJECTION Next();

Возвращаемое значение:

	указатель на интерфейс ksViewProjection или IViewProjection.


ksViewProjectionCollection::Prev
IViewProjectionCollection::Prev

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

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPVIEWPROJECTION Prev();

Возвращаемое значение:

	указатель на интерфейс ksViewProjection или IViewProjection.


ksViewProjectionCollection::GetByIndex
IViewProjectionCollection::GetByIndex

Получить указатель на элемент массива по индексу.

Синтаксис Automation:

LPDISPATCH GetByIndex (long index);

Синтаксис COM:

LPVIEWPROJECTION GetByIndex (long index);

Входной параметр:

index	- индекс проекции в массиве.
Возвращаемое значение:

	указатель на интерфейс ksViewProjection или IViewProjection.


ksViewProjectionCollection::GetByName
IViewProjectionCollection::GetByName

Получить указатель на элемент массива по имени.

Синтаксис Automation:

LPDISPATCH GetByName (BSTR name, BOOL testFullName, BOOL testIgnoreCase);

Синтаксис COM:

LPVIEWPROJECTION GetByName (LPOLESTR name, BOOL testFullName, BOOL testIgnoreCase);

Входные параметры:

name	- имя проекции,
testFullName	- признак полного имени: TRUE - name - полное имя,  FALSE - имя name может быть частью полного имени,
testIgnoreCase	- признак игнорирования регистра символов: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:

	указатель на интерфейс ksViewProjection или IViewProjection.


ksViewProjectionCollection::FindIt
IViewProjectionCollection::FindIt

Получить индекс элемента в массиве.

Синтаксис Automation:

long FindIt (LPDISPATCH projection);

Синтаксис COM:

long FindIt (LPVIEWPROJECTION projection);

Возвращаемое значение:

индекс элемента	- если элемент найден в массиве.
-1	- если элемент не найден.
Входные параметры:

projection	- указатель на интерфейс ksViewProjection или IViewProjection.


ksViewProjectionCollection::Add
IViewProjectionCollection::Add

Добавить элемент в конец массива.

Синтаксис Automation:

BOOL Add (LPDISPATCH projection);

Синтаксис COM:

BOOL Add (LPVIEWPROJECTION projection);

Входные параметры:

projection	- указатель на интерфейс ksViewProjection или IViewProjection.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Добавить в массив можно только проекцию с индексом vp_None. После добавления проекция становится текущей и ей присваивается новый индекс, равный ее индексу в массиве. После добавления проекции редактирование ее параметров невозможно.


ksViewProjectionCollection::DetachByIndex
IViewProjectionCollection::DetachByIndex

Отсоединить элемент по индексу.

Синтаксис Automation:

BOOL DetachByIndex (long index);

Синтаксис COM:

BOOL DetachByIndex (long index);

Входной параметр:

index	- индекс проекции в массиве.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются.


ksViewProjectionCollection::DetachByBody
IViewProjectionCollection::DetachByBody

Отсоединить элемент по указателю на интерфейс.

Синтаксис Automation:

BOOL DetachByBody (LPDISPATCH projection);

Синтаксис COM:

BOOL DetachByBody (LPVIEWPROJECTION projection);

Входные параметры:

projection	- указатель на интерфейс ksViewProjection или IViewProjection.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются.


ksViewProjectionCollection::DetachByName
IViewProjectionCollection::DetachByName

Отсоединить элемент по имени проекции.

Синтаксис Automation:

BOOL DetachByName (BSTR name);

Синтаксис COM:

BOOL DetachByName (LPOLESTR name);

Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи
Примечание:

Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются.


ksViewProjectionCollection::NewViewProjection
IViewProjectionCollection::NewViewProjection

Добавить новую проекцию.

Синтаксис Automation:

LPDISPATCH NewViewProjection();

Синтаксис COM:

LPVIEWPROJECTION NewViewProjection();

Возвращаемое значение:

	- указатель на интерфейс ksViewProjection или IViewProjection.
Примечание:

Проекции присваивается индекс vp_None. Созданная проекция в массив не добавляется, для добавления в массив нужно использовать метод Add.


Интерфейсы ksThreadDefinition, IThreadDefinition
ksThreadDefinition,
IThreadDefinition

Интерфейс условного изображения резьбы.

ksThreadDefinition	- интерфейс Automation
IThreadDefinition	- интерфейс COM
Свойства...

Методы...

Примечание:

1. Определяется параметрами резьбы: номинальный диаметр резьбы, длина резьбы, шаг резьбы, тип резьбы (внутренняя, внешняя), направление построения резьбы, а также объектами необходимыми для построения : базовый объект (ребро или грань), начальная и конечная грань.

2. Если базовым объектом является ребро, то базовая грань определяется автоматически. При этом задание начальной и конечной грани не обязательно, хотя возможно. Если базовым объектом является грань, то указывать начальную и конечную грани необходимо. Базовая грань должна быть цилиндрической либо конической, начальная и конечная грань - любые грани, ограничивающие резьбу. Базовое ребро должно быть окружностью, принадлежащей цилиндру.

3. Если базовое ребро изменено, то при вызове методов Update или Create автоматически будет произведена проверка направления резбы. В случае ошибки направление изменится.

4. Начальная и конечная грань применяются для определения длины резьбы при включеной опции автоматически определения длины. Кроме того, начальная грань указывает, откуда откладывается резьба.

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


ksThreadDefinition::props
ksThreadDefinition
свойства

allLength

autoDefinDr

dr

faceValue

length

outside

p


ksThreadDefinition::methods
ksThreadDefinition
методы

GetBaseObject

GetFaceBegin

GetFaceEnd

SetBaseObject

SetFaceBegin

SetFaceEnd


ksThreadDefinition::dr
IThreadDefinition::dr

Номинальный диаметр резьбы.

Тип данных - double.

Синтаксис Automation:

dr = iThreadDefinition.dr	Получить свойство (*)
iThreadDefinition.dr = dr	Установить свойство (*)
dr = iThreadDefinition.GetDr()	Получить свойство (**)
iThreadDefinition.SetDr(dr)	Установить свойство (**)
Примечание:

Если свойство автоопределения диаметра autoDefinDr имеет значение TRUE, номинальный диаметр резьбы не будет зависеть от значения указанного пользователем.


ksThreadDefinition::length
IThreadDefinition::length

Шаг витков спирали.

Тип данных - double.

Синтаксис Automation:

length = iThreadDefinition.length	Получить свойство (*)
iThreadDefinition.length = length	Установить свойство (*)
length = iThreadDefinition.GetLength()	Получить свойство (**)
iThreadDefinition.SetLength(length)	Установить свойство (**)
Примечание:

Если свойство автоопределения длины резьбы allLength имеет значение TRUE, длина резьбы не будет зависеть от значения указанного пользователем.


ksThreadDefinition::p
IThreadDefinition::p

Шаг резьбы

Тип данных - double.

Синтаксис Automation:

p = iThreadDefinition.p	Получить свойство (*)
iThreadDefinition.p = p	Установить свойство (*)
p = iThreadDefinition.GetP()	Получить свойство (**)
iThreadDefinition.SetP(p)	Установить свойство (**)


ksThreadDefinition::outside
IThreadDefinition::outside

Тип резьбы.

Тип данных - BOOL.

Значения свойства:

TRUE	- резьба внешняя,
FALSE	- резьба внутренняя.
Синтаксис Automation:

outside = iThreadDefinition.outside	Получить свойство (*)
outside = iThreadDefinition.GetOutside()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksThreadDefinition::autoDefinDr
IThreadDefinition::autoDefinDr

Автоопределение диаметра.

Тип данных - BOOL.

Значения свойства:

TRUE	- номинальный диаметр резьбы dr не зависит от значения указанного пользователем,
FALSE	- номинальный диаметр резьбы задается пользователем.
Синтаксис Automation:

autoDefinDr = iThreadDefinition.autoDefinDr	Получить свойство (*)
iThreadDefinition.autoDefinDr = autoDefinDr	Установить свойство (*)
iThreadDefinition.GetAutoDefinDr()	Получить свойство (**)
iThreadDefinition.SetAutoDefinDr(autoDefinDr)	Установить свойство (**)


ksThreadDefinition::allLength
IThreadDefinition::allLength

Полная длина.

Тип данных - BOOL.

Значения свойства:

TRUE	- длина резьбы length не зависит от значения указанного пользователем,
FALSE	- длина резьбы задается пользователем.
Синтаксис Automation:

allLength = iThreadDefinition.allLength	Получить свойство (*)
iThreadDefinition.allLength = allLength	Установить свойство (*)
allLength = iThreadDefinition.GetAllLength()	Получить свойство (**)
iThreadDefinition.SetAllLength(allLength)	Установить свойство (**)


ksThreadDefinition::faceValue
IThreadDefinition::faceValue

Направление построения резьбы.

Тип данных - BOOL.

Синтаксис Automation:

faceValue = iThreadDefinition.faceValue	Получить свойство (*)
iThreadDefinition.faceValue = faceValue	Установить свойство (*)
iThreadDefinition.GetFaceValue()	Получить свойство (**)
iThreadDefinition.SetFaceValue(faceValue)	Установить свойство (**)
Примечание:

Если базовое ребро изменено, то при вызове методов Update или Create автоматически будет произведена проверка направления резбы. В случае ошибки направление изменится.


ksThreadDefinition::GetBaseObject
IThreadDefinition::GetBaseObject

Получить указатель на интерфейс базового объекта (ребра или грани), по которому строится резьба.

Синтаксис Automation:

LPDISPATCH GetBaseObject();

Синтаксис COM:

LPENTITY GetBaseObject();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.
Примечание:

1. Базовый объект может быть как ребром, так и гранью. Тип базового объекта определяется методами интерфейсов ksEntity или IEntity.

2. Если базовым объектом является ребро, то базовая грань определяется автоматически. При этом задание начальной и конечной грани не обязательно, хотя возможно. Если базовым объектом является грань, то указывать начальную и конечную грани необходимо. Базовая грань должна быть цилиндрической либо конической, начальная и конечная грань - любые грани, ограничивающие резьбу. Базовое ребро должно быть окружностью, принадлежащей цилиндру.


ksThreadDefinition::SetBaseObject
IThreadDefinition::SetBaseObject

Установить ребро или грань, по которой строится резьба.

Синтаксис Automation:

BOOL SetBaseObject(LPDISPATCH obj);

Синтаксис COM:

BOOL SetBaseObject(LPENTITY obj);

Входной параметр:

obj	- указатель на интерфейс ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

1. Базовый объект может быть как ребром, так и гранью. Тип базового объекта определяется методами интерфейсов ksEntity или IEntity.

2. Если базовым объектом является ребро, то базовая грань определяется автоматически. При этом задание начальной и конечной грани не обязательно, хотя возможно. Если базовым объектом является грань, то указывать начальную и конечную грани необходимо. Базовая грань должна быть цилиндрической либо конической, начальная и конечная грань - любые грани, ограничивающие резьбу. Базовое ребро должно быть окружностью, принадлежащей цилиндру.

3. Если базовое ребро изменено, то при вызове методов Update или Create автоматически будет произведена проверка направления резбы. В случае ошибки направление изменится.


ksThreadDefinition::GetFaceBegin
IThreadDefinition::GetFaceBegin

Получить указатель на интерфейс базового объекта (ребра или грани), от которого строится резьба.

Синтаксис Automation:

LPDISPATCH GetFaceBegin();

Синтаксис COM:

LPENTITY GetFaceBegin();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.
Примечание:

Начальная и конечная грань - любые грани, ограничивающие резьбу. Начальная и конечная грань применяются для определения длины резьбы при включеной опции автоматически определения длины. Кроме того, начальная грань указывает, откуда откладывается резьба.


ksThreadDefinition::SetFaceBegin
IThreadDefinition::SetFaceBegin

Установить грань, от которой строится резьба.

Синтаксис Automation:

BOOL SetFaceBegin(LPDISPATCH face);

Синтаксис COM:

BOOL SetFaceBegin(LPENTITY face);

Входной параметр:

face	указатель на интерфейс ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Начальная и конечная грань - любые грани, ограничивающие резьбу. Начальная и конечная грань применяются для определения длины резьбы при включеной опции автоматически определения длины. Кроме того, начальная грань указывает, откуда откладывается резьба.


ksThreadDefinition::GetFaceEnd
IThreadDefinition::GetFaceEnd

Получить указатель на интерфейс базового объекта (ребра или грани), до которого строится резьба.

Синтаксис Automation:

LPDISPATCH GetFaceEnd();

Синтаксис COM:

LPENTITY GetFaceEnd();

Возвращаемое значение:

	указатель на интерфейс объекта ksEntity или IEntity.
Примечание:

Начальная и конечная грань - любые грани, ограничивающие резьбу. Начальная и конечная грань применяются для определения длины резьбы при включеной опции автоматически определения длины. Кроме того, начальная грань указывает, откуда откладывается резьба.


ksThreadDefinition::SetFaceEnd
IThreadDefinition::SetFaceEnd

Установить грань, до которой строится резьба.

Синтаксис Automation:

BOOL SetFaceEnd (LPDISPATCH face);

Синтаксис COM:

BOOL SetFaceEnd (LPENTITY face);

Входной параметр:

face	- указатель на интерфейс объекта ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Начальная и конечная грань - любые грани, ограничивающие резьбу. Начальная и конечная грань применяются для определения длины резьбы при включеной опции автоматически определения длины. Кроме того, начальная грань указывает, откуда откладывается резьба.


Интерфейс ILibHPObject
 ILibHPObject

Интерфейс для работы с характерными точками.

Методы...

Примечание:

Файл libhppar.h в каталоге /gayka в примерах на Borland C, Cbuilder, VisualC;

libhppar.pas в каталоге /gayka в примерах на Delphi.


ILibHPObject::methods
ILibHPObject
методы

LibHotPnt_Prepare

LibHotPnt_CompleteILibHPObject_LibHotPnt_Complete

LibHotPnt_GetILibHPObject_LibHotPnt_Get

LibHotPnt_SetILibHPObject_LibHotPnt_Set

LibHotPnt_GetCursorTextILibHPObject_LibHotPnt_GetCursorText

LibHotPnt_GetMenuILibHPObject_LibHotPnt_GetMenu

LibHotPnt_ExecuteCommandILibHPObject_LibHotPnt_ExecuteCommand


ILibHPObject::LibHotPnt_Prepare

Подготовиться к редактированию методом перетаскивания характерных точек.

Синтаксис Automation:

BOOL LibHotPnt_Prepare(int index);

Входной параметр:

index	- номер характерной точки.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ILibHPObject::LibHotPnt_Complete

Завершить редактирование методом перетаскивания характерных точек.

Синтаксис Automation:

BOOL LibHotPnt_Complete(int index, BOOL success);

Входные параметры:

index	- номер характерной точки,
success	- признак завершения сдвига характерной точки: TRUE - нормальное завершение, FALSE - во время сдвига нажата <Esc>.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ILibHPObject::LibHotPnt_Get

Установить текущее описание характерной точки.

Синтаксис Automation:

BOOL LibHotPnt_Get(HotPointDescription* point, int index);

Входной параметр:

index	- номер характерной точки,
Выходной параметр:

point	- структура параметров характерной точки HotPointDescription,
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод вызывается в цикле для каждой точки (увеличивая номер точки), пока не вернет FALSE.

2. Значения координат характерной точки необходимо устанавливать в собственной системе координат объекта.


ILibHPObject::LibHotPnt_Set

Получить положение характерной точки.

Синтаксис Automation:

BOOL LibHotPnt_Set(HotPointDescription* point, int index );

Входные параметры:

index	- номер характерной точки,
point	- структура параметров характерной точки HotPointDescription.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Актуальны только координаты (x, y), остальные поля должны игнорироваться.

2. Значения координат приходят в собственной системе координат объекта.


ILibHPObject::LibHotPnt_GetCursorText

Задать текст для отображения рядом с курсором.

Синтаксис Automation:

BOOL LibHotPnt_GetCursorText(int index,

char** text);

Входной параметр:

index	- номер характерной точки.
Выходной параметр:

text	- текст для отображения рядом с курсором.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

С присланной строки снимается копия, сама исходная строка не удаляется.


ILibHPObject::LibHotPnt_GetMenu

Задать контекстное меню, ассоциированое с данным библиотечным элементом.

Синтаксис Automation:

int LibHotPnt_GetMenu();

Возвращаемое значение:

	контекстное меню (HMENU).


ILibHPObject::LibHotPnt_ExecuteCommand

Выполнить команду из меню, присланного по LibHotPnt_GetMenu().

Синтаксис Automation:

BOOL LibHotPnt_ExecuteCommand(int id);

Входной параметр:

id	- контекстное меню (HMENU).
Возвращаемое значение:

TRUE	- что-то изменилось и требуется передача в UNDO и пересчет положения характерных точек,
FALSE	- команда не обработана.


Интерфейс ISpecification3D
ISpecification3D

Интерфейс для работы со спецификацией.

COM - интерфейс.

Методы...

Примечания:

1. Для Автоматизации используется интерфейс ksSpecification.

2. Для COM используется интерфейс ISpecification3D и группа экспортных функций.

3. Указатель на интерфейс можно получить при помощи метода IDocument3D::GetSpecification.

Смотрите также

ksDocument3D


ISpecification3D::methods
ISpecification3D
методы

SpcIncludePart

GetSpcObjForGeomWithLimit

D3GetSpcObjGeometry


ISpecification3D::SpcIncludePart

Подключить трехмерный компонент (деталь или подсборку) к объекту спецификации.

Синтаксис COM:

BOOL SpcIncludePart (LPPART part,

BOOL fillTexts);

Входные параметры:

part	- указатель на интерфейс компонента IPart,
fillTexts	- признак автоматического заполнения: наименование, обозначение, масса из свойств ksPart: TRUE - автозаполнение включено,  FALSE - выключено.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Синтаксис Automation:

D3SpcIncludePart


ISpecification3D::GetSpcObjForGeomWithLimit

Получить указатель на объект спецификации, подключенный к трехмерному компоненту (детали или подсборке) с ограничениями по номеру раздела и типу атрибута.

Синтаксис COM:

long GetSpcObjForGeomWithLimit (LPOLESTR nameLib,

long numb,

LPPART part,

short first,

short section,

double attrTypeNumb);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации в библиотеке,
part	- указатель на интерфейс добавляемого компонента IPart,
first	- 1 -первый объект, 0 - следующий объект,
section	- номер раздела, в котором нужно найти объект (0 - номер не ограничивается),
attrTypeNumb	- номер типа атрибута, для которого нужно найти объект (0 - номер не ограничивается).
Возвращаемое значение:

	указатель на объект спецификации.
Синтаксис Automation:

D3GetSpcObjForGeomWithLimit


ISpecification3D::D3GetSpcObjGeometry
ISpecification::D3GetSpcObjGeometry

Получить деталь или подсборку, подключенную к объекту спецификации.

Аналог данного метода при использовании API экспортных функций - ksD3GetSpcObjGeometry.

Синтаксис Automation:

LPPART D3GetSpcObjGeometry(long spcObj);

Входные параметры:

spcObj	- указатель на объект спецификации,
Возвращаемое значение:

Указатель на интерфейс IPart	- в случае успешного завершения,
0	- если деталь не подключена или в случае ошибки.


Интерфейс KompasObject
KompasObject

Интерфейс API КОМПАС (Автоматизация).

Свойства...

Методы...

События...

Примечание:

Получить интерфейс KompasObject можно:

- для обычных *.rtw библиотек - применив экспортную функцию
IDispatch* CreateKompasObject();

- для ActiveX библиотек - после вызова команды библиотеки и выполнения функции
ExternalRunCommand;

- при работе под управлением внешнего приложения (контроллера) - после вызова стандартной системной функции.


Интерфейс KompasObject: Свойства
Интерфейс KompasObject
свойства

lookStyle


Интерфейс KompasObject: Методы
Интерфейс KompasObject
методы

ActiveDocument2D

ActiveDocument3D

DataBaseObject

Document2D

Document3D

DrawKompasDocumentByReference

GetAttributeObject

GetDynamicArray

GetFragmentLibrary

GetIterator

GetMathematic2D

GetModelLibrary

GetParamStruct

ksAttachKompasLibrary

ksCalculate

ksCalculateReset

ksChoiceFileAppointedDir

ksChoiceFile

ksChoiceFiles

ksConvertLangStrEx

ksConvertLangWindowEx

ksDetachKompasLibrary

ksDrawBitmap

ksDrawKompasDocument

ksDrawSlideEx

ksDrawSlideFromFile

ksDrawSlide

ksEnableTaskAccess

ksError

ksExecDialPredefinedText

ksExecuteKompasLibraryCommandEx

ksExecuteKompasLibraryCommand

ksExecuteLibraryCommand

ksFullFileName

ksGet3dDocumentFromRef

ksGetApplication7

ksGetDocOptions

ksGetDocumentTypeByName

ksGetDocumentType

ksGetExternalInterface

ksGetFullPathFromRelativePath

ksGetFullPathFromSystemPath

ksGetHWindow

ksGetLibraryStylesArray

ksGetLibraryTreeStruct

ksGetObjectsFilter3D

ksGetQualityContensParam

ksGetQualityDefects

ksGetQualityNames

ksGetRelativePathFromFullPath

ksGetRelativePathFromSystemPath

ksGetSysOptions

ksGetSystemProfileString

ksGetSystemVersion

ksGetWorkWindowColor

ksIsEnableTaskAccess

ksIsLibraryEnabled

ksIsModuleSpecificationActive

ksMaterialDlg

ksMessageBoxResult

ksMessage

ksModuleSpecification

ksOpenHelpFile

ksPrintKompasDocument

ksPrintPreviewWindow

ksPumpWaitingMessages

ksReadDouble

ksReadInt

ksReadString

ksRefreshActiveWindow

ksRemoveUniqueFile

ksResultNULL

ksReturnResult

ksSaveFile

ksSetCriticalProcess

ksSetDocOptions

ksSetSysOptions

ksSlideBackground

ksStrResult

ksSystemControlStart

ksSystemControlStop

ksSystemPath

ksUniqueFileName

ksViewGetDensity

ksWriteSlide

ksYesNo

LoadDSK

SpcActiveDocument

SpcDocument


KompasObject::lookStyle

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

Тип данных - long.

Синтаксис Automation:

lookStyle = iKompasObject.lookStyle	Получить свойство (*)
iKompasObject.lookStyle = lookStyle	Установить свойство (*)
lookStyle = iKompasObject.GetLookStyle()	Получить свойство (**)
iKompasObject.SetLookStyle( lookStyle )	Установить свойство (**)
Примечание:

Свойство lookStyle может принимать или возвращать значения из ksTypeLookStyle.


KompasObject::LoadDSK

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

Синтаксис Automation:

BOOL LoadDSK();

Возвращаемое значение:

TRUE	- в случае удачного открытия dsk,
FALSE	dsk не открыт, возможно открыт ранее.
Примечание:

При открытии dsk будут подгружены документы и библиотеки, которые были подключены в последнем сеансе работы КОМПАС.


KompasObject::Document3D

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

Синтаксис Automation:

LPDISPATCH Document3D();

Возвращаемое значение:

	указатель на интерфейс документа трехмерной модели ksDocument3D.
Синтаксис COM:

Чтобы получить интерфейс документа трехмерной модели при программировании на COM, нужно использовать экспортную функцию ksGet3dDocument.

Возвращаемое значение:

	указатель на интерфейс документа трехмерной модели IDocument3D.


KompasObject::ksGetObjectsFilter3D

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

Аналог данного метода при использовании API экспортных функций - ksGetObjectsFilter3D.

Синтаксис Automation:

IObjectsFilter3D * LIB_FUNC ksGetObjectsFilter3D();

Возвращаемое значение:

	указатель на интерфейс ksObjectsFilter3D.


KompasObject::ActiveDocument3D

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

Синтаксис Automation:

LPDISPATCH ActiveDocument3D();

Возвращаемое значение:

	указатель на интерфейс документа трехмерной модели ksDocument3D.
Синтаксис COM:

Чтобы получить интерфейс текущего документа трехмерной модели при программировании на COM, нужно использовать экспортную функцию LPDOCUMENT3D ksGetActive3dDocument();

Возвращаемое значение:

	указатель на интерфейс документа трехмерной модели IDocument3D.
Примечание:

Если документ трехмерной модели не активен, функция возвращает NULL.


KompasObject::Document2D

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

Синтаксис Automation:

LPDISPATCH Document2D();

Возвращаемое значение:

	указатель на интерфейс графического документа ksDocument2D.


KompasObject::ActiveDocument2D

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

Синтаксис Automation:

LPDISPATCH ActiveDocument2D();

Возвращаемое значение:

	указатель на интерфейс графического документа ksDocument2D.
Примечание:

Если документ не активен, функция возвращает NULL.


KompasObject::DataBaseObject

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

Синтаксис Automation:

LPDISPATCH DataBaseObject();

Возвращаемое значение:

	указатель на интерфейс ksDataBaseObject для работы с базами данных.


KompasObject::GetIterator

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

Синтаксис Automation:

LPDISPATCH GetIterator();

Возвращаемое значение:

	указатель на интерфейс ksIterator.


KompasObject::GetMathematic2D

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

Синтаксис Automation:

LPDISPATCH GetMathematic2D();

Возвращаемое значение:

	указатель на интерфейс ksMathematic2D.


KompasObject::GetParamStruct

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

Синтаксис Automation:

LPDISPATCH GetParamStruct (short structType);

Возвращаемое значение:

	указатель на интерфейс указанного типа.
Входной параметр:

structType	- тип интерфейса параметров.


KompasObject::SpcDocument

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

Синтаксис Automation:

LPDISPATCH SpcDocument();

Возвращаемое значение:

	указатель на интерфейс ksSpcDocument.


KompasObject::SpcActiveDocument

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

Синтаксис Automation:

LPDISPATCH SpcActiveDocument();

Возвращаемое значение:

	указатель на интерфейс ksSpcDocument.
Примечание:

Если документ спецификации не активен, функция возвращает NULL.


KompasObject::ksMessage

Выдать сообщение.

Аналог данного метода при использовании API экспортных функций - Message.

Синтаксис Automation:

BOOL ksMessage (BSTR message);

Входной параметр:

message	- строка с текстом сообщения.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


KompasObject::ksError

Выдать сообщение об ошибке.

Аналог данного метода при использовании API экспортных функций - Error.

Синтаксис Automation:

BOOL ksError(BSTR message);

Входной параметр:

message	- строка с текстом сообщения об ошибке.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


KompasObject::ksEnableTaskAccess

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

Аналог данного метода при использовании API экспортных функций - EnableTaskAccess.

Синтаксис Automation:

BOOL ksEnableTaskAccess(long enable);

Входной параметр:

enable	- признак разрешения доступа к задаче со стороны пользователя: TRUE - доступ разрешен, FALSE - доступ запрещен.
Возвращаемое значение:

TRUE
Примечание:

См. также KompasObject::ksIsEnableTaskAccess.


KompasObject::ksReturnResult

Получить результат работы библиотеки.

Аналог данного метода при использовании API экспортных функций - ReturnResult.

Синтаксис Automation:

long ksReturnResult();

Возвращаемое значение:

	Код ошибки в зависимости от типа документа: графического или документа-модели при выполнении библиотечной программы
Примечание:

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

2. Ошибка с номером>0 не является фатальной. Отрицательный номер ошибки приводит к завершению программы.

3. Текст ошибок можно получить методом KompasObject::ksStrResult..

4. Сообщение с текстом ошибки можно получить, используя метод KompasObject_ksMessageBoxResult..

5. Сбросить ошибку, если она не фатальная, можно, используя метод KompasObject_ksResultNULL..


KompasObject::ksResultNULL

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

Аналог данного метода при использовании API экспортных функций - ResultNULL.

Синтаксис Automation:

long ksResultNULL();

Возвращаемое значение:

0	- если ошибок не обнаружено,
1	- если ошибка была обнулена.


KompasObject::ksIsEnableTaskAccess

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

Аналог данного метода при использовании API экспортных функций - IsEnableTaskAccess.

Синтаксис Automation:

long ksIsEnableTaskAccess();

Возвращаемое значение:

0	- доступ к задаче со стороны пользователя запрещен,
1	- доступ к задаче со стороны пользователя разрешен.
Примечание:

См. также KompasObject::ksEnableTaskAccess.


KompasObject::ksMessageBoxResult

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

Аналог данного метода при использовании API экспортных функций - MessageBoxResult.

Синтаксис Automation:

BOOL ksMessageBoxResult();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.
Примечание :

Функция "сбрасывает" флаг ошибки в случае, если эта ошибка не является фатальной.


KompasObject::ksDrawSlide

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

Аналог данного метода при использовании API экспортных функций - DrawSlide.

Синтаксис Automation:

long ksDrawSlide (long HWindow, long slideId);

Входные параметры:

HWindow	- HWND окна,
slideId	- идентификатор слайда.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечание:

Слайд должен быть описан в ресурсном файле библиотеки при помощи объекта RCDATA.


KompasObject::ksStrResult

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

Аналог данного метода при использовании API экспортных функций - StrResult.

Синтаксис Automation:

BSTR ksStrResult();

Возвращаемое значение:

	строка сообщения, соответствующая результату работы библиотеки.
Примечание:

Функция "сбрасывает" флаг ошибки в случае, если эта ошибка не является фатальной.


KompasObject::ksGetHWindow

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

Аналог данного метода при использовании API экспортных функций - GetHWindow.

Синтаксис Automation:

long ksGetHWindow();

Возвращаемое значение:

	дескриптор главного окна.


KompasObject::ksGetWorkWindowColor

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

Аналог данного метода при использовании API экспортных функций - ksGetWorkWindowColor.

Синтаксис Automation:

long ksGetWorkWindowColor();

Возвращаемое значение:

	цвет фона рабочего окна.


KompasObject::ksPumpWaitingMessages

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

Аналог данного метода при использовании API экспортных функций - PumpWaitingMessages.

Синтаксис Automation:

BOOL ksPumpWaitingMessages();

Возвращаемое значение:

TRUE	- в случае удачного завершения.


KompasObject::ksSetCriticalProcess

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

Аналог данного метода при использовании API экспортных функций - ksSetCriticalProcess.

Синтаксис Automation:

long ksSetCriticalProcess();

Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи
Примечание:

До завершения ksCursor, ksPlacement или конца библиотечной команды системе не разрешается принудительно завершать работу библиотеки.


KompasObject::ksChoiceFile

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

Аналог данного метода при использовании API экспортных функций - ksChoiceFile.

Синтаксис Automation:

BSTR ksChoiceFile (BSTR ext,

BSTR filter,

BOOL preview);

Входные параметры:

ext	- расширение имени файла,
filter	- фильтр поиска  (0 - формируется автоматически),
preview	- признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Возвращаемое значение:

строка с именем файла	- в случае удачного завершения,
NULL	- в случае отказа от выбора.


KompasObject::ksDrawBitmap

Отрисовать растровый слайд.

Аналог данного метода при использовании API экспортных функций - DrawBitmap.

Синтаксис Automation:

long ksDrawBitmap (long HWindow,

long slideId);

Входные параметры:

HWindow	- дескриптор окна, в котором нужно отрисовать BITMAP-слайд,
slideId	- идентификатор BITMAP-слайда в файле ресурсов.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


KompasObject::ksYesNo

Вывод строки приглашения в диалоговом окне с ожиданием подтверждения или отказа от действия.

Аналог данного метода при использовании API экспортных функций - YesNo.

Синтаксис Automation:

long ksYesNo (BSTR s);

Входной параметр:

s	- строка сообщения.
Возвращаемое значение:

1	- при подтверждении действия,
0	- при отказе,
-1	- при отмене действия.
Примечание:

Подтверждение означает нажатие в диалоге кнопки Да (Yes, OK); отказ - нажатие кнопки Нет (No); отмена действия - нажатие кнопки Отмена (Cansel).


KompasObject::ksDrawSlideFromFile

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

Аналог данного метода при использовании API экспортных функций - ksDrawSlideFromFile.

Синтаксис Automation:

long ksDrawSlideFromFile (long HWindow,

BSTR fileName);

Входные параметры:

HWindow	- дескриптор окна,
fileName	- полное имя файла.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечание :

Функция предназначена для отладки слайдов. Позволяет просмотреть отредактированный слайд в окне диалога без перетрансляции тестовой библиотеки.


KompasObject::ksWriteSlide

Записать группу выбора в формате слайда в текстовый файл.

Аналог данного метода при использовании API экспортных функций - WriteSlide.

Синтаксис Automation:

long ksWriteSlide (BSTR fileName,

long slideId,

double x,

double y);

Входные параметры:

filename	- имя файла для записи,
slideId	- идентификатор слайда в файле ресурсов,
x, y	- координаты базовой точки.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечание :

Функция выводит выделенные объекты изображения чертежа в формат векторного слайда КОМПАС.

Документ должен быть открыт с отображением на экране.


KompasObject::ksSlideBackground

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

Аналог данного метода при использовании API экспортных функций - ksSlideBackground.

Синтаксис Automation:

BOOL ksSlideBackground (long color);

Входной параметр:

color	- цвет фона слайда.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.


KompasObject::ksReadDouble

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

Аналог данного метода при использовании API экспортных функций - ReadDouble.

Синтаксис Automation:

long ksReadDouble (BSTR mess,

double defValue,

double min,

double max,

double* value);

Входные параметры:

mess	- строка приглашения,
defValue	- предлагаемое значение по умолчанию,
min, max	- интервал возможных значений.
Выходной параметр:

value	- результат ввода.
Возвращаемое значение:

1	- в случае удачного завершения.


KompasObject::ksReadInt

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

Аналог данного метода при использовании API экспортных функций - ReadInt.

Синтаксис Automation:

long ksReadInt (BSTR mess,

long defValue,

long min,

long max,

long* value);

Входные параметры:

mess	- строка приглашения,
defValue	- предлагаемое значение по умолчанию,
min, max	- интервал возможных значений.
Выходной параметр:

value	- результат ввода.
Возвращаемое значение:

1	- в случае удачного завершения.


KompasObject::ksReadString

Запросить ввод строки.

Аналог данного метода при использовании API экспортных функций - ReadString.

Синтаксис Automation:

BSTR ksReadString (BSTR mess,

BSTR defValue);

Входные параметры:

mess	- строка приглашения,
defValue	- предлагаемое значение по умолчанию.
Возвращаемое значение:

	результат ввода.


KompasObject::ksFullFileName

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

Аналог данного метода при использовании API экспортных функций - FullFileName.

Синтаксис Automation:

BSTR ksFullFileName (BSTR oldName);

Входной параметр:

oldName	- старое имя файла.
Возвращаемое значение:

	полное имя файла.


KompasObject::ksUniqueFileName

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

Аналог данного метода при использовании API экспортных функций - UniqueFileName.

Синтаксис Automation:

BSTR ksUniqueFileName();

Возвращаемое значение:

	строка с именем файла.
Примечание:

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


KompasObject::ksRemoveUniqueFile

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

Аналог данного метода при использовании API экспортных функций - RemoveUniqueFile.

Синтаксис Automation:

BOOL ksRemoveUniqueFile (BSTR fileName);

Входной параметр:

fileName	- имя служебного файла.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Удалить служебный файл с уникальным именем, предварительно полученным с помощью функции ksUniqueFileName.


KompasObject::ksSystemControlStop

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

Аналог данного метода при использовании API экспортных функций - SystemControlStop.

Синтаксис Automation:

BOOL ksSystemControlStop();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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


KompasObject::ksSystemControlStart

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

Аналог данного метода при использовании API экспортных функций - SystemControlStart.

Синтаксис Automation:

long ksSystemControlStart (BSTR menuCommand);

Входной параметр:

menuCommand	- строка, помещаемая в меню для возврата в библиотеку.
Возвращаемое значение:

	тип выхода из режима работы под управлением системы КОМПАС.
Примечание:

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


KompasObject::GetDynamicArray

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

Синтаксис Automation:

LPDISPATCH GetDynamicArray (long type);

Входной параметр:

type	- тип динамического массива.
Возвращаемое значение:

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


KompasObject::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; во всех остальных случаях открывается текущий каталог.


KompasObject::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	- в случае неудачи.


KompasObject::ksSaveFile

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

Аналог данного метода при использовании API экспортных функций - ksSaveFile.

Синтаксис Automation:

BSTR ksSaveFile (BSTR ext,

BSTR oldName,

BSTR filter,

BOOL preview);

Входные параметры:

ext	- расширение имени файла,
oldName	- имя файла по умолчанию,
filter	- фильтр поиска  (0 - формируется автоматически),
preview	- признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Возвращаемое значение:

	строка с именем файла.


KompasObject::GetAttributeObject

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

Синтаксис Automation:

LPDISPATCH GetAttributeObject();

Возвращаемое значение:

	указатель на интерфейс ksAttributeObject.


KompasObject::ksRefreshActiveWindow

Обновить активное окно документа.

Аналог данного метода при использовании API экспортных функций - ksRefreshActiveWindow.

Синтаксис Automation:

long ksRefreshActiveWindow();

Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


KompasObject::ksSystemPath

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

Аналог данного метода при использовании API экспортных функций - ksSystemPath.

Синтаксис Automation:

BSTR ksSystemPath(long folderType);

Входной параметр:

folderType	- тип запрашиваемого системного каталога.
Возвращаемое значение:

	строка с запрашиваемым путем.


KompasObject::ksGetRelativePathFromSystemPath

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

Аналог данного метода при использовании API экспортных функций - ksGetRelativePathFromSystemPath.

Синтаксис Automation:

BSTR ksGetRelativePathFromSystemPath (BSTR sourcePath, long pathType);

Входные параметры:

sourcePath	- полный путь к файлу,
pathType	- тип системного каталога.
Возвращаемое значение:

	относительный путь к файлу.


KompasObject::ksGetFullPathFromSystemPath

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

Аналог данного метода при использовании API экспортных функций - ksGetFullPathFromSystemPath.

Синтаксис Automation:

BSTR ksGetFullPathFromSystemPath (BSTR relativePath, long pathType);

Входные параметры:

relativePath	- относительный путь к файлу,
pathType	- тип системной папки.
Возвращаемое значение:

	полный путь к файлу.


KompasObject::ksGetRelativePathFromFullPath

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

Аналог данного метода при использовании API экспортных функций - GetRelativePathFromFullPath.

Синтаксис Automation:

BSTR ksGetRelativePathFromFullPath (BSTR mainFilePath,

BSTR sourcePath);

Входные параметры:

mainFilePath	- полный путь к задающему файлу,
sourcePath	- полный путь к требуемому файлу.
Возвращаемое значение:

	относительный путь к файлу.


KompasObject::ksGetFullPathFromRelativePath

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

Аналог данного метода при использовании API экспортных функций - GetFullPathFromRelativePath.

Синтаксис Automation:

BSTR ksGetFullPathFromRelativePath (BSTR mainFilePath, BSTR relativePath);

Входные параметры:

mainFilePath	- полный путь к задающему файлу,
relativePath	- относительный путь к требуемому файлу (без общей с задающим файлом части пути).
Возвращаемое значение:

	полный путь к файлу.


KompasObject::ksGetSystemVersion

Получить номер версии системы.

Аналог данного метода при использовании API экспортных функций - ksGetSystemVersion.

Синтаксис Automation:

long ksGetSystemVersion (long* iMajor,

long* iMinor,

long* iRelease,

long* iBuild);

Выходные параметры:

iMajor	- старшее слово версии,
iMinor	- младшее слово версии,
iRelease	- номер выпуска внутри одной версии,
iBuild	- номер сборки внутри одного выпуска.
Возвращаемое значение:

1	- в случае удачного завершения.
Пример :

Для версии 5.4 Release 2 Build 1

iMajor = 5

iMinor = 4

iRelease = 2

iBuild = 1

Примечание:

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

не выдается.


KompasObject::ksGetSystemProfileString

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

Аналог данного метода при использовании API экспортных функций - ksGetSystemProfileString.

Синтаксис Automation:

BSTR ksGetSystemProfileString (BSTR lpSection,

BSTR lpKey);

Входные параметры:

lpSection	- имя секции,
lpKey	- имя ключа.
Возвращаемое значение:

строка из файла инициализации системы (kompasw.ini) или из реестра (Registry)	- в случае успеха,
NULL	- если секция или ключ не найдены.
Пример :

lpSection = "Directories"

lpKey = "Sys"

Результат: lpReturnedString = "c:\Program Files\Kompas54\Sys"


KompasObject::ksOpenHelpFile

Открыть файл справки.

Аналог данного метода при использовании API экспортных функций - ksOpenHelpFile.

Синтаксис Automation:

BOOL ksOpenHelpFile (BSTR file, long command, long id);

Входные параметры:

file	- полное имя файла Справки,
command	- тип Справки (контекстная, по команде и т.д.),
id	- идентификатор страницы справки.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.
Примечание :

1. Синтаксис соответствует WinHelp.

2. Функция открывает файл Справки КОМПАС.

3. При закрытиии системы окно Справки закроется автоматически.


KompasObject::ksSetSysOptions

Установить системные настройки.

Аналог данного метода при использовании API экспортных функций - ksSetSysOptions.

Синтаксис Automation:

long ksSetSysOptions (long optionsType, LPDISPATCH param);

Входные параметры:

optionsType	- тип настройки.
Выходные параметры:

param	- указатель на интерфейс параметров, соответствующий настройке
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Соответствие входных и выходных параметров...


KompasObject::ksGetSysOptions

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

Аналог данного метода при использовании API экспортных функций - ksGetSysOptions.

Синтаксис Automation:

long ksGetSysOptions (long optionsType, LPDISPATCH param);

Входной параметр:

optionsType	- тип настройки,
Выходные параметры:

param	- указатель на интерфейс параметров, соответствующий настройке
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Соответствие входных и выходных параметров...


KompasObject::ksPrintPreviewWindow

Запуск окна просмотра документа перед печатью.

Аналог данного метода при использовании API экспортных функций - ksPrintPreviewWindow.

Синтаксис Automation:

long ksPrintPreviewWindow (LPDISPATCH docsArr, long inquiry);

Входные параметры:

docsArr	- указатель на интерфейс динамического массива ksDynamicArray типа CHAR_STR_ARR,
inquiry	- признак запроса документов: 1 - если docsArr = NULL или массив пуст, запросить документы у пользователя, 0 - показать документы без запроса.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


KompasObject::ksPrintKompasDocument

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

Аналог данного метода при использовании API экспортных функций - ksPrintKompasDocument.

Синтаксис Automation:

long ksPrintKompasDocument (BSTR fileName,

BSTR toFile,

double scale);

Входные параметры:

fileName	- полное имя файла печатаемого документа,
toFile	- имя файла, в который требуется выводить документ (*.prn и т.д.), или NULL, если нужно вывести сразу на принтер,
scale	- масштаб вывода.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


KompasObject::ksGetLibraryStylesArray

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

Аналог данного метода при использовании API экспортных функций - ksGetLibraryStylesArray.

Синтаксис Automation:

LPDISPATCH ksGetLibraryStylesArray (BSTR libraryName,

short libraryType);

Входные параметры:

libraryName	- полное имя библиотеки стилей,
libraryType	- тип библиотеки стиля.
Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа LIBRARY_STYLE_ARR.


KompasObject::ksViewGetDensity

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

Аналог данного метода при использовании API экспортных функций - ksViewGetDensity.

Синтаксис Automation:

double ksViewGetDensity (long HWindow);

Входной параметр:

HWindow	- handle "родительского" окна или NULL.
Возвращаемое значение:

плотность (в г/см3)	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Плотность выбирается из системного файла плотностей graphic.dns.


KompasObject::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; переменных может быть неограниченное количество.


KompasObject::ksCalculateReset

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

Аналог данного метода при использовании API экспортных функций - ksCalculateReset.

Синтаксис Automation:

long ksCalculateReset();

Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


KompasObject::ksExecuteLibraryCommand

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

Аналог данного метода при использовании API экспортных функций - ksExecuteLibraryCommand.

Синтаксис Automation:

long ksExecuteLibraryCommand (BSTR fileName, long command);

Входные параметры:

fileName	- имя файла прикладной библиотеки,
command	- номер команды из библиотеки.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание :

Если задано короткое имя файла прикладной библиотеки (без пути), то эта библиотека ищется в подкаталоге ..\Libs главного каталога системы КОМПАС.


KompasObject::ksExecuteKompasLibraryCommandEx

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

Синтаксис Automation:

long ksExecuteKompasLibraryCommandEx (long libId, long command, LPDISPATCH external);

Входные параметры:

libId	- уникальный номер библиотеки, полученный при выполнении ksAttachKompasLibrary
command	- номер команды из библиотеки,
external	- указатель на интерфейс связи между библиотеками (приложениями).
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


KompasObject::ksGetExternalInterface

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

Аналог данного метода при использовании API экспортных функций - ksGetExternalInterface.

Синтаксис Automation:

LPDISPATCH ksGetExternalInterface();

Возвращаемое значение:

	указатель на интерфейс IDispatch связи между библиотеками (приложениями).
Примечание:

1. Метод не выполняет Addref на выдаваемый интерфейс.

2. Внешний интерфейс можно использовать для обмена данными между двумя приложениями. Первое приложение передает интерфейс при вызове метода KompasObject::ksExecuteKompasLibraryCommandEx.

3. После выполнения KompasObject::ksExecuteKompasLibraryCommandEx метод ksGetExternalInterface возвращает NULL.


KompasObject::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	- в случае неудачи.


KompasObject::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	- в случае неудачи.


KompasObject::ksGetQualityContensParam

Получить отклонения.

Аналог данного метода при использовании API экспортных функций - ksGetQualityContensParam.

Синтаксис Automation:

long ksGetQualityContensParam (BSTR name, LPDISPATCH param, short inMM);

Входные параметры:

name	- поле допуска,
dimValue	- значение размера,
inMM	- размерность параметров minLimit, maxLimit, high, low : 1 - миллиметры,  0 - единицы измерения текущего документа.
Выходной параметр:

param	- указатель на интерфейс структуры параметров квалитета ksQualityContensParam.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


KompasObject::ksGet3dDocumentFromRef

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

Аналог данного метода при использовании API экспортных функций - ksGet3dDocumentFromReference.

Синтаксис Automation:

LPDISPATCH ksGet3dDocumentFromRef(long doc);

Входной параметр:

doc	- указатель на документ.
Возвращаемое значение:

указатель на интерфейс ksDocument3D	- в случае удачного завершения,
NULL	- если такого документа нет.


KompasObject::GetModelLibrary

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

Аналог данного метода при использовании API экспортных функций - ksGetModelLibrary.

Синтаксис Automation:

LPDISPATCH GetModelLibrary();

Возвращаемое значение:

	указатель на интерфейс ksModelLibrary.


KompasObject::GetFragmentLibrary

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

Синтаксис Automation:

LPDISPATCH GetFragmentLibrary();

Возвращаемое значение:

	указатель на интерфейс ksFragmentLibrary.


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

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

Аналог данного метода при использовании API экспортных функций - ksIsLibraryEnabled.

Синтаксис Automation:

long ksIsLibraryEnabled(BSTR libName);

Входные параметры:

libName	- имя библиотеки либо полное, либо относительно директория LIBS.
Возвращаемое значение:

1	- выполнить библиотеку можно,
0	- выполнить библиотеку нельзя.
Примечание:

Функция применима для библиотек rtw, библиотек фрагментов lfr, библиотек моделей l3d


KompasObject::ksIsModuleSpecificationActive

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

Аналог данного метода при использовании API экспортных функций - ksIsModuleSpecificationActive.

Синтаксис Automation:

long ksIsModuleSpecificationActive();

Возвращаемое значение:

1	- работа со спецификацией разрешена,
0	- работа со спецификацией запрещена.


KompasObject::ksModuleSpecification

Управление подключением модуля спецификации при работе с сетевым ключом (устройством аппаратной защиты).

Аналог данного метода при использовании API экспортных функций - ksModuleSpecification.

Синтаксис Automation:

long ksModuleSpecification (BOOL attach);

Входной параметр:

attach	признак выполняемого действия: 1 - включить работу со спецификацией, 0 - выключить работу со спецификацией.
Возвращаемое значение:

1	- если был инициирован процесс подключения или отключения спецификации,
0	- в случае неудачного завершения.


KompasObject::ksExecDialPredefinedText

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

Аналог данного метода при использовании API экспортных функций - ksExecDialPredefinedText

Синтаксис Automation:

BSTR ksExecDialPredefinedText (long HWindow, long FAR* res);

Входной параметр:

HWindow	несущее окно
Выходной параметр:

res	- результат работы функции: 1 - в случае успеха, 0 - в случае неудачи.
Возвращаемое значение:

указатель на интерфейс ksDynamicArray массива строк, тип массива - TEXT_LINE_ARR.	- в случае успеха,
NULL	- в случае неудачи.
Примечание:

Метод возвращает все строки. Они складываются в одну с переводом строки "\n"


KompasObject::ksExecDialPredefinedTextEx

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

Аналог данного метода при использовании API экспортных функций - ksExecDialPredefinedTextEx.

Синтаксис Automation:

LPDISPATCH ksExecDialPredefinedTextEx (long HWindow);

Входной параметр:

HWindow	несущее окно
Возвращаемое значение:

указатель на интерфейс ksDynamicArray массива строк, тип массива - TEXT_LINE_ARR.	- в случае успеха,
NULL	- в случае неудачи.


KompasObject::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	- handle окна,
kod_tip	- строка кодов типов сортаментов для отображения (через запятую) (0 - отображается все),
Выходные параметры:

res	- результат работы функции: - 1 - справочник материалов не подключился,   0 - выход из диалога справочника материалов по отмене,   1- успешное завершение,
plt	- плотность выбранного материала,
kod_size_1	- код вида типоразмера: 1 - толщина,  2 - диаметр,  0 - вид не определен,
kod_size_2	- значение размера вида толщина, диаметр, диаметр вписанной окружности,  значение А типоразмеров вида АхВ или АхВхС,
kod_size_3	- значение В типоразмеров вида АхВ или АхВхС,
kod_size_4	- значение С типоразмеров вида АхВхС.
Возвращаемое значение:

строка с обозначением материала	- в случае успешного завершения,
NULL	- в случае неудачи.


KompasObject::ksDrawSlideEx

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

Аналог данного метода при использовании API экспортных функций - ksDrawSlideEx.

Синтаксис Automation:

long ksDrawSlideEx (long HWindow,

long slideId,

long hInst);

Входные параметры:

HWindow	- handle окна,
slideId	- идентификатор слайда,
hInst	- hInstance текущей библиотеки  или NULL, если она одна.
Возвращаемое значение:

1	- в случае успешного завершения.
Примечание:

Слайд должен быть описан в ресурсном файле библиотеки при помощи объекта RCDATA.


KompasObject::ksGetDocOptions

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

Аналог данного метода при использовании API экспортных функций - GetDocOptions.

Синтаксис Automation:

long ksGetDocOptions (long optionsType, LPDISPATCH param);

Входной параметр:

optionsType	- тип настройки
Выходной параметр:

param	- указатель на интерфейс параметров.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Соответствие входных и выходных параметров...


Типы настроек для документов
Соответствие входных и выходных параметров

optionsType	param
		Интерфейсы	Структуры параметров
DIMENTION_OPTIONS	- настройки размера,	ksDimensionsOptions	DimensionsOptions
ARROWFILLING_OPTIONS	- признак зачернения стрелок,	ksLtVariantтипа int. Может принимать значение, 0 - не зачернять или 1 - зачернять	int Может принимать значение, 0 - не зачернять или 1 - зачернять
SHEET_OPTIONS	- параметры листа; осталась для совместимости со старыми библиотеками.	ksSheetOptions	SheetPar
SHEET_OPTIONS_EX	- параметры листа активного документа, от текущего листа.	ksSheetOptions	SheetPar
LENGTHUNITS_OPTIONS	- настройки единиц измерений	ksLtVariantтипа short. Может принимать значение размерности длины ST_MIX_MM, ST_MIX_SM, ST_MIX_M.	short Может принимать значение размерности длины ST_MIX_MM, ST_MIX_SM, ST_MIX_M.
SNAP_OPTIONS_EX	- настройки привязок для активного документа	ksSnapOptions	SnapOptions
OVERLAP_OBJECT_OPTIONS	- настройки перекрывающихся объектов	ksOverlapObjectOptions	OverlapObjectOptions


Типы настроек для документов
Соответствие входных и выходных параметров

optionsType	param
		Интерфейсы	Структуры параметров
DIMENTION_OPTIONS	- настройки размера,	ksDimensionsOptions	DimensionsOptions
ARROWFILLING_OPTIONS	- признак зачернения стрелок,	ksLtVariantтипа int Может принимать значение, 0 - не зачернять или 1 - зачернять	int Может принимать значение, 0 - не зачернять или 1 - зачернять
SHEET_OPTIONS_EX	- параметры листа активного документа, от текущего листа.	ksSheetOptions	SheetPar
LENGTHUNITS_OPTIONS	- настройки единиц измерений	ksLtVariantтипа short. Может принимать значение размерности длины ST_MIX_MM, ST_MIX_SM, ST_MIX_M.	short Может принимать значение размерности длины ST_MIX_MM, ST_MIX_SM, ST_MIX_M.
SNAP_OPTIONS_EX	- настройки привязок для активного документа	ksSnapOptions	SnapOptions
OVERLAP_OBJECT_OPTIONS	- настройки перекрывающихся объектов	ksOverlapObjectOptions	OverlapObjectOptions


Типы системных настроек
Соответствие входных и выходных параметров

optionsType	param
		Интерфейсы	Структуры параметров
SNAP_OPTIONS	- настройки привязок	ksSnapOptions	SnapOptions
SNAP_OPTIONS_EX	- настройки привязок для активного документа	ksSnapOptions	SnapOptions
SHEET_OPTIONS_EX	- параметры листа активного документа, от текущего листа.	ksSheetOptions	SheetPar
VIEWCOLOR_OPTIONS	- настройки цвета фона рабочего поля графических документов	ksViewColorParam	ViewColorParam
TEXTEDIT_VIEWCOLOR_OPTIONS	- настройки цвета фона текстовых документов	ksViewColorParam	ViewColorParam
MODEL_VIEWCOLOR_OPTIONS	- настройки цвета фона документов моделей	ksViewColorParam	ViewColorParam
LENGTHUNITS_OPTIONS	- настройки единиц измерений	ksLtVariant типа short. Может принимать значение размерности длины ST_MIX_MM, ST_MIX_SM, ST_MIX_M.	short Может принимать значение размерности длины ST_MIX_MM, ST_MIX_SM, ST_MIX_M.
OVERLAP_OBJECT_OPTIONS	- настройки перекрывающихся объектов	ksOverlapObjectOptions	OverlapObjectOptions
DIMENTION_OPTIONS_EX	- настройки размера,	ksDimensionsOptions	DimensionsOptions
ARROWFILLING_OPTIONS	- признак зачернения стрелок	ksLtVariant. Может принимать значение, 0 - не зачернять или 1 - зачернять	int Может принимать значение, 0 - не зачернять или 1 - зачернять


KompasObject::ksSetDocOptions

Заменить настройки текушего документа.

Аналог данного метода при использовании API экспортных функций - SetDocOptions.

Синтаксис Automation:

long ksSetDocOptions (long optionsType, LPDISPATCH param);

Входной параметр:

optionsType	- тип настройки
Выходной параметр:

param	- указатель на интерфейс параметров.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Соответствие входных и выходных параметров...


KompasObject::ksGetDocumentTypeByName

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

Аналог данного метода при использовании API экспортных функций - ksGetDocumentTypeByName.

Синтаксис Automation:

long ksGetDocumentTypeByName (BSTR fileName);

Входной параметр:

(BSTR) fileName	- полное имя файла документа
Возвращаемое значение:

тип документа DocType "ldefin2d.h"	- при успешном завершении,
0	- в случае неудачи.
Примечание:

1. Документ при вызове этой функции не создается.

2. Независимо от используемого оформления возвращается:

для чертежа	lt_DocSheetStandart
для спецификации	lt_DocSpc
для текстового документа	lt_DocTxtStandart


KompasObject::ksGetDocumentType

Получить тип документа.

Аналог данного метода при использовании API экспортных функций - ksGetDocumentType.

Синтаксис Automation:

long ksGetDocumentType (long doc);

Входной параметр:

doc	- указатель на документ.
Возвращаемое значение:

тип документа DocType	- при успешном завершении,
0	- в случае неудачи.
Примечание:

Если указатель doc = 0, возвращается тип активного документа.


KompasObject::DrawKompasDocumentByReference
KompasObject::ksDrawKompasDocumentByReference

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

Аналог данного метода при использовании API экспортных функций - ksDrawKompasDocumentByReference.

Синтаксис Automation:

long ksDrawKompasDocumentByReference (long HWindow, long pDoc);

Входной параметр:

Hwindow	- несущее окно,
pDoc	- указатель на документ.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если pDoc = 0, отрисовывается текущий документ.


KompasObject::ksGksetLibraryTreeStruct
KompasObject::ksGetLibraryTreeStruct

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

Аналог данного метода при использовании экспортных функций ksTreeNodeParam.

Синтаксис Automation:

BOOL ksGetLibraryTreeStruct (BSTR libName, LPDISPATCH root);

Входной параметр:

libName	- полное имя файла библиотеки моделей, фрагментов, атрибутов,,
root	- указатель на интерфейс ksTreeNodeParam параметров корневого узла дерева.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если pDoc = 0, отрисовывается текущий документ.


KompasObject::ksConvertLangStrEx

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

Аналог данного метода при использовании экспортных функций ksConvertLangStrEx.

Синтаксис Automation:

BSTR ksConvertLangStrEx (long hInstance, long strID);

Входной параметр:

hInstance	- HINSTANCE модуля, в котором находится переводимая строка,
strID	- идентификатор строки,
Возвращаемое значение:

	переведенная строка.


KompasObject::ksConvertLangWindowEx

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

Аналог данного метода при использовании экспортных функций ksConvertLangWindowEx.

Синтаксис Automation:

BOOL ksConvertLangWindowEx (long hWnd,

long hInstance,

BSTR dlgID);

Входной параметр:

hWnd	- дескриптор окна,
hInstance	- HINSTANCE модуля, в котором находится переводимый диалог,
dlgID	- имя ресурса диалога,
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


KompasObject::ksGetDocumentByReference

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

Синтаксис Automation:

LPDISPATCH ksGetDocumentByReference (long docRef);

Входной параметр:

docRef	- указатель на документ,
Возвращаемое значение:

Указатель на интерфейс интерфейса документа
Примечание:

Если docRef = 0, возвращается указатель на интерфейс IDispatch интерфейса активного документа.


KompasObject::ksGetApplication7

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

Аналог данного метода при использовании экспортных функций CreateKompasApplication.

Синтаксис Automation:

LPDISPATCH ksGetApplication7();

Возвращаемое значение:

Указатель на интерфейс API версии 7 IApplication.


KompasObject::ksDrawKompasDocument

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

Аналог данного метода при использовании API экспортных функций - ksDrawKompasDocument.

Синтаксис Automation:

long ksDrawKompasDocument (long HWindow,

BSTR docFileName);

Входные параметры:

Hwindow	- "несущее" окно,
docFileName	- полное имя файла документа.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Действие метода распространяется также на фрагменты и модели из библиотек. При этом имя файла должно иметь вид "c:\gr\lib1.l3d|детали|литье|фланец",
где
c:\gr\lib1.l3d 	- имя файла библиотеки,

|детали|литье| 	- разделы, подразделы внутри библиотеки,

фланец 	- имя фрагмента или модели.


KompasObject::ksAttachKompasLibrary

Подключить библиотеку.

Синтаксис Automation:

long ksAttachKompasLibrary (BSTR libname);

Входные параметры:

libname	- полное имя файла библиотеки
Возвращаемое значение:

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

После успешного выполнения метода имя библиотеки появится в меню "Библиотеки"


KompasObject::ksDetachKompasLibrary

Отключить библиотеку.

Синтаксис Automation:

long ksDetachKompasLibrary (long libId);

Входные параметры:

libId	- уникальный номер библиотеки, полученный при выполнении ksAttachKompasLibrary
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


KompasObject:: ksExecuteKompasLibraryCommand

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

Синтаксис Automation:

long ksExecuteKompasLibraryCommand (long libId, long command);

Входные параметры:

libId	- уникальный номер библиотеки, полученный при выполнении ksAttachKompasLibrary
command	- номер команды из библиотеки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

В отличии от функции ksExecuteLibraryCommand выполняется команда у подключенной ранее библиотеки. ksExecuteLibraryCommand - подключает библиотеку, выполняет команду, если защита позволяет и отключает библиотеку.


Интерфейс ksABreakDimParam
ksABreakDimParam

Интерфейс параметров углового размера c обрывом.

Аналог данных параметров при использовании API экспортных функций - ABreakDimParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksABreakDimParam::methods
ksABreakDimParam
методы

GetTPar

SetTPar

GetDPar

SetDPar

GetSPar

SetSPar


ksABreakDimParam::GetTPar

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

Синтаксис Automation:

LPDISPATCH GetTPar();

Возвращаемое значение:

	указатель на интерфейс параметров размерной надписи ksDimTextParam.


ksABreakDimParam::SetTPar

Установить указатель на интерфейс параметров размерной надписи.

Синтаксис Automation:

BOOL SetTPar (LPDISPATCH tPar);

Входной параметр:

tPar	- указатель на интерфейс параметров размерной надписи ksDimTextParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksABreakDimParam::GetDPar

Получить указатель на интерфейс параметров изображения размера.

Синтаксис Automation:

LPDISPATCH GetDPar();

Возвращаемое значение:

	указатель на интерфейс параметров изображения размера ksBreakDimDrawing.


ksABreakDimParam::SetDPar

Установить указатель на интерфейс параметров изображения размера.

Синтаксис Automation:

BOOL SetDPar (LPDISPATCH dPar);

Входной параметр:

dPar	- указатель на интерфейс параметров изображения размера ksBreakDimDrawing.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksABreakDimParam::GetSPar

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

Синтаксис Automation:

LPDISPATCH GetSPar();

Возвращаемое значение:

	указатель на интерфейс параметров привязки углового размера ksADimSourceParam.


ksABreakDimParam::SetSPar

Установить указатель на интерфейс параметров привязки углового размера.

Синтаксис Automation:

BOOL SetSPar (LPDISPATCH sPar);

Входной параметр:

sPar	- указатель на интерфейс параметров привязки углового размера ksADimSourceParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


Интерфейс ksADimParam
ksADimParam

Интерфейс параметров углового размера.

Аналог данных параметров при использовании API экспортных функций - ADimParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksADimParam::methods
ksADimParam
методы

GetDPar

GetSPar

GetTPar

SetDPar

SetSPar

SetTPar


ksADimParam::GetTPar

Получить указатель на интерфейс параметров размерной надписи ksDimTextParam.

Синтаксис Automation:

LPDISPATCH GetTPar();

Возвращаемое значение:

	указатель на интерфейс параметров размерной надписи ksDimTextParam.


ksADimParam::SetTPar

Установить размерную надпись.

Синтаксис Automation:

BOOL SetTPar (LPDISPATCH tPar);

Входной параметр:

tPar	- указатель на интерфейс параметров размерной надписи ksDimTextParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksADimParam::GetDPar

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

Синтаксис Automation:

LPDISPATCH GetDPar();

Возвращаемое значение:

	указатель на интерфейс параметров отрисовки углового размера ksDimDrawingParam.


ksADimParam::SetDPar

Установить параметры изображения размера.

Синтаксис Automation:

BOOL SetDPar (LPDISPATCH dPar);

Входной параметр:

dPar	- указатель на интерфейс параметров отрисовки линейного размера ksDimDrawingParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksADimParam::GetSPar

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

Синтаксис Automation:

LPDISPATCH GetSPar();

Возвращаемое значение:

	указатель на интерфейс параметров привязки углового размера ksADimSourceParam.


ksADimParam::SetSPar

Установить параметры привязки углового размера.

Синтаксис Automation:

BOOL SetSPar (LPDISPATCH sPar);

Входной параметр:

sPar	- указатель на интерфейс параметров привязки углового размера ksADimSourceParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


Интерфейс ksADimSourceParam
ksADimSourceParam

Интерфейс параметров привязки углового размера.

Аналог данных параметров при использовании API экспортных функций - ADimSource.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksADimSourceParam::props
ksADimSourceParam
свойства

xc, yc

x1, y1

x2, y2

ang1, ang2

dir

rad


ksADimSourceParam::methods
ksADimSourceParam
методы

Init


ksADimSourceParam::xc,
ksADimSourceParam::yc

Координаты центра размерной дуги.

Тип данных - double.

Синтаксис Automation:

xc = iADimSource.xc	Получить свойство (*)
iADimSource.xc = xc	Установить свойство (*)
xc = iADimSource.GetXc()	Получить свойство (**)
iADimSource.SetXc( xc )	Установить свойство (**)


ksADimSourceParam::x1,
ksADimSourceParam::y1

Координаты точки выхода первой выносной линии.

Тип данных - double.

Синтаксис Automation:

x1 = iADimSource.x1	Получить свойство (*)
iADimSource.x1 = x1	Установить свойство (*)
x1 = iADimSource.GetX1()	Получить свойство (**)
iADimSource.SetX1( x1 )	Установить свойство (**)


ksADimSourceParam::x2,
ksADimSourceParam::y2

Координаты точки выхода второй выносной линии.

Тип данных - double.

Синтаксис Automation:

x2 = iADimSource.x2	Получить свойство (*)
iADimSource.x2 = x2	Установить свойство (*)
x2 = iADimSource.GetX2()	Получить свойство (**)
iADimSource.SetX2( x2 )	Установить свойство (**)


ksADimSourceParam::ang1,
ksADimSourceParam::ang2

Начальный и конечный угол размерной дуги.

Тип данных - double.

Синтаксис Automation:

ang1 = iADimSource.ang1	Получить свойство (*)
iADimSource.ang1 = ang1	Установить свойство (*)
ang1 = iADimSource.GetAng1()	Получить свойство (**)
iADimSource.SetAng1( ang1 )	Установить свойство (**)


ksADimSourceParam::dir

Направление размерной дуги.

Тип данных - long.

Значения свойства:

1	- против часовой стрелки,
-1	- по часовой стрелке.
Синтаксис Automation:

dir = iADimSource.dir	Получить свойство (*)
iADimSource.dir = dir	Установить свойство (*)
dir = iADimSource.GetDir()	Получить свойство (**)
iADimSource.SetDir( dir )	Установить свойство (**)


ksADimSourceParam::rad

Радиус размерной дуги.

Тип данных - double.

Синтаксис Automation:

rad = iADimSource.rad	Получить свойство (*)
iADimSource.rad = rad	Установить свойство (*)
rad = iADimSource.GetRad()	Получить свойство (**)
iADimSource.SetRad( rad )	Установить свойство (**)
Примечание:

Данное свойство - аннотационное (не зависит от масштаба, измеряется "по бумаге").


ksADimSourceParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры привязки углового размера.


Интерфейс ksArcByAngleParam
ksArcByAngleParam

Интерфейс параметров дуги по центру и двум углам.

Аналог данных параметров при использовании API экспортных функций - ArcParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksArcByAngleParam::props
ksArcByAngleParam
свойства

xc, yc

rad

ang1

ang2

dir

style


ksArcByAngleParam::methods
ksArcByAngleParam
методы

Init


ksArcByAngleParam::xc,
ksArcByAngleParam::yc

Координаты центра дуги.

Тип данных - double.

Синтаксис Automation:

xc = iArcByAngleParam.xc	Получить свойство (*)
iArcByAngleParam.xc = xc	Установить свойство (*)
xc = iArcByAngleParam.GetXc()	Получить свойство (**)
iArcByAngleParam.SetXc( xc )	Установить свойство (**)


ksArcByAngleParam::rad

Радиус дуги.

Тип данных - double.

Синтаксис Automation:

rad = iArcByAngleParam.rad	Получить свойство (*)
iArcByAngleParam.rad = rad	Установить свойство (*)
rad = iArcByAngleParam.GetRadius()	Получить свойство (**)
iArcByAngleParam.SetRadius( rad )	Установить свойство (**)


ksArcByAngleParam::ang1

Начальный угол дуги.

Тип данных - double.

Синтаксис Automation:

ang1 = iArcByAngleParam.ang1	Получить свойство (*)
iArcByAngleParam.ang1 = ang1	Установить свойство (*)
ang1 = iArcByAngleParam.GetAngle1()	Получить свойство (**)
iArcByAngleParam.SetAngle1( ang1 )	Установить свойство (**)


ksArcByAngleParam::ang2

Конечный угол дуги.

Тип данных - double.

Синтаксис Automation:

ang2 = iArcByAngleParam.ang2	Получить свойство (*)
iArcByAngleParam.ang2 = ang2	Установить свойство (*)
ang2 = iArcByAngleParam.GetAngle2()	Получить свойство (**)
iArcByAngleParam.SetAngle2( ang2 )	Установить свойство (**)


ksArcByAngleParam::dir

Направление построения дуги.

Тип данных - short.

Значения свойства:

1	- против часовой стрелки,
-1	- по часовой стрелке.
Синтаксис Automation:

dir = iArcByAngleParam.dir	Получить свойство (*)
iArcByAngleParam.dir = dir	Установить свойство (*)
dir = iArcByAngleParam.GetDirection()	Получить свойство (**)
iArcByAngleParam.SetDirection( dir )	Установить свойство (**)


ksArcByAngleParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iArcByAngleParam.style	Получить свойство (*)
iArcByAngleParam.style = style	Установить свойство (*)
style = iArcByAngleParam.GetStyle()	Получить свойство (**)
iArcByAngleParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksArcByAngleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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


Интерфейс ksArcByPointParam
ksArcByPointParam

Интерфейс параметров дуги по центру и двум точкам.

Аналог данных параметров при использовании API экспортных функций - ArcParam1.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksArcByPointParam::props
ksArcByPointParam
свойства

xc, yc

rad

x1, y1

x2, y2

dir

style


ksArcByPointParam::methods
ksArcByPointParam
методы

Init


ksArcByPointParam::xc,
ksArcByPointParam::yc

Координаты центра дуги.

Тип данных - double.

Синтаксис Automation:

xc = iArcByPointParam.xc	Получить свойство (*)
iArcByPointParam.xc = xc	Установить свойство (*)
xc = iArcByPointParam.GetXc()	Получить свойство (**)
iArcByPointParam.SetXc( xc )	Установить свойство (**)


ksArcByPointParam::rad

Радиус дуги.

Тип данных - double.

Синтаксис Automation:

rad = iArcByPointParam.rad	Получить свойство (*)
iArcByPointParam.rad = rad	Установить свойство (*)
rad = iArcByPointParam.GetRadius()	Получить свойство (**)
iArcByPointParam.SetRadius( rad )	Установить свойство (**)


ksArcByPointParam::x1,
ksArcByPointParam::y1

Координаты начальной точки дуги.

Тип данных - double.

Синтаксис Automation:

x1 = iArcByPointParam.x1	Получить свойство (*)
iArcByPointParam.x1 = x1	Установить свойство (*)
x1 = iArcByPointParam.GetX1()	Получить свойство (**)
iArcByPointParam.SetX1( x1 )	Установить свойство (**)


ksArcByPointParam::x2,
ksArcByPointParam::y2

Координаты конечной точки дуги.

Тип данных - double.

Синтаксис Automation:

x2 = iArcByPointParam.x2	Получить свойство (*)
iArcByPointParam.x2 = x2	Установить свойство (*)
x2 = iArcByPointParam.GetX2()	Получить свойство (**)
iArcByPointParam.SetX2( x2 )	Установить свойство (**)


ksArcByPointParam::dir

Направление построения дуги.

Тип данных - short.

Значения свойства:

1	- против часовой стрелки,
-1	- по часовой стрелке.
Синтаксис Automation:

dir = iArcByPointParam.dir	Получить свойство (*)
iArcByPointParam.dir = dir	Установить свойство (*)
dir = iArcByPointParam.GetDirection()	Получить свойство (**)
iArcByPointParam.SetDirection( dir )	Установить свойство (**)


ksArcByPointParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iArcByPointParam.style	Получить свойство (*)
iArcByPointParam.style = style	Установить свойство (*)
style = iArcByPointParam.GetStyle()	Получить свойство (**)
iArcByPointParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksArcByPointParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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


Интерфейс ksAttributeObject
ksAttributeObject

Интерфейс для работы с атрибутами.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetAttributeObject.

Смотрите также

KompasObject


ksAttributeObject::methods
ksAttributeObject
методы

ksAddAttrRow

ksChoiceAttr3D

ksChoiceAttr

ksChoiceAttrTypes

ksCreateAttr3D

ksCreateAttr

ksCreateAttrType

ksDeleteAttr3D

ksDeleteAttr

ksDeleteAttrRow

ksDeleteAttrType

ksGetAttrColumnInfo

ksGetAttrKeysInfo

ksGetAttrRow

ksGetAttrTabInfo

ksGetAttrType

ksGetAttrValue

ksGetLibraryAttrTypesArray

ksGetSizeAttrRow

ksGetSizeAttrValue

ksGetSpcObjectAttributeNumber

ksGetSpcObjectColumnTextAlign

ksGetSpcObjectSummaryCount

ksSetAttrRow

ksSetAttrType

ksSetAttrValue

ksSetSpcObjectAttributeNumber

ksSetSpcObjectColumnTextAlign

ksViewEditAttr

ksViewEditAttrType


ksAttributeObject::ksChoiceAttr3D

Просмотреть атрибуты объекта документа-модели.

Аналог данного метода при использовании API экспортных функций - ksChoiceAttr3D.

Синтаксис Automation:

ksAttribute3D * ksChoiceAttr3D (LPDISPATCH pObj);

Входные параметры:

pObj	- указатель на объект.
Возвращаемое значение:

Указатель на интерфейс атрибута ksAttribute3D	- в случае удачного завершения,
0	- в случае неудачи.


ksAttributeObject::ksDeleteAttr3D

Удалить атрибут объекта 3D документа.

Аналог данного метода при использовании API экспортных функций - ksDeleteAttr3D.

Синтаксис Automation:

long ksDeleteAttr3D (LPDISPATCH pObj, ksAttribute3D *pAttr, BSTR password);

Входные параметры:

pObj	- указатель на объект у которого удаляется атрибут,
pAttr	- указатель на атрибут,
password	- пароль,
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksAttributeObject::ksCreateAttr3D

Cоздать атрибут по номеру типа атрибута из библиотеки.

Аналог данного метода при использовании API экспортных функций - ksCreateAttr3D.

Синтаксис Automation:

ksAttribute3D* ksCreateAttr3D (LPDISPATCH pObj,
LPDISPATCH attr,
double attrID,
BSTR libname);

Входные параметры:

pObj	- указатель на объект для которого создается атрибут
attr	- параметры атрибута,
attrID	- уникальный номер типа атрибута,
libname	имя библиотеки атрибутов если libname = NULL- тип атрибута берется в документе
Возвращаемое значение:

Указатель на интерфейс атрибута ksAttribute3D	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Атрибут можно добавить ко всем объектам дерева построений, кроме компонентов, сопряжений, группы сопряжений.


ksAttributeObject::ksCreateAttrType

Создать тип атрибута в библиотеке.

Аналог данного метода при использовании API экспортных функций - ksCreateAttrType.

Синтаксис Automation:

double ksCreateAttrType (LPDISPATCH attrType,

BSTR libName);

Входные параметры:

attrType	- указатель на интерфейс параметров типа табличного атрибута ksAttributeTypeParam,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута создается в текущем документе.
Возвращаемое значение:

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


ksAttributeObject::ksDeleteAttrType

Удалить тип атрибута из библиотеки.

Аналог данного метода при использовании API экспортных функций - DeleteAttrType.

Синтаксис Automation:

long ksDeleteAttrType (double attrID,

BSTR libName,

BSTR password);

Входные параметры:

attrID	- уникальный номер типа,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута удаляется из текущего документа.
password	- пароль типа атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksAttributeObject::ksChoiceAttrTypes

Выбрать указанный пользователем в диалоге тип атрибута из библиотеки или документа.

Аналог данного метода при использовании API экспортных функций - ChoiceAttrTypes.

Синтаксис Automation:

double ksChoiceAttrTypes (BSTR libName);

Входной параметр:

libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:

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

Диалог "привязан" к главному окну.


ksAttributeObject::ksGetAttrType

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

Аналог данного метода при использовании API экспортных функций - ksGetAttrType.

Синтаксис Automation:

long ksGetAttrType (double attrID,

BSTR libName,

LPDISPATCH attrType);

Входной параметр:

attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута из текущего документа.
Выходной параметр:

attrType	- указатель на интерфейс параметров типа табличного атрибута ksAttributeTypeParam.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksAttributeObject::ksSetAttrType

Изменить тип атрибута в библиотеке или текущем документе.

Аналог данного метода при использовании API экспортных функций - ksSetAttrType.

Синтаксис Automation:

double ksSetAttrType (double attrID,

BSTR libName,

LPDISPATCH attrType,

BSTR password);

Входные параметры:

attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута изменяется в текущем документе.
attrType	- указатель на интерфейс параметров типа табличного атрибута ksAttributeTypeParam,
password	- пароль типа атрибута.
Возвращаемое значение:

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


ksAttributeObject::ksCreateAttr

Создать атрибут по номеру типа атрибута.

Аналог данного метода при использовании API экспортных функций - ksCreateAttr.

Синтаксис Automation:

long ksCreateAttr (long pObj,

LPDISPATCH attr,

double attrID,

BSTR libName);

Входные параметры:

pObj	- указатель на объект (группа, вид, отдельный объект), атрибут которого создается.  Если pObj = 0, то создается атрибут документа,
attr	- указатель на интерфейс параметров табличного атрибута ksAttributeParam,
attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:

указатель на атрибут	- в случае удачного завершения,
0	- в случае неудачи.


ksAttributeObject::ksDeleteAttr

Удалить атрибут.

Аналог данного метода при использовании API экспортных функций - DeleteAttr.

Синтаксис Automation:

long ksDeleteAttr (long pObj,

long pAttr,

BSTR password);

Входные параметры:

pObj	- указатель на объект, к которому подключен атрибут.  Если pObj = 0 - атрибут текущего документа,
pAttr	- указатель на удаляемый атрибут,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.


ksAttributeObject::ksGetAttrValue

Получить значение ячейки из таблицы атрибута.

Аналог данного метода при использовании API экспортных функций - ksGetAttrValue.

Синтаксис Automation:

long ksGetAttrValue (long pAttr,

long rowNumb,

long columnNumb,

LPDISPATCH flagVisible,

LPDISPATCH columnKeys,

LPDISPATCH value);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
columnNumb	- номер колонки,
flagVisible	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек,
columnKeys	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи полей колонки.
Выходной параметр:

value	- указатель на интерфейс ksUserParam, куда копируется значение ячейки.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Смотрите также:

ksLtVariant


ksAttributeObject::ksSetAttrValue

Установить значение ячейки в таблице атрибута.

Аналог данного метода при использовании API экспортных функций - ksSetAttrValue.

Синтаксис Automation:

long ksSetAttrValue (long pAttr,

long rowNumb,

long columnNumb,

LPDISPATCH

flagVisible,

LPDISPATCH columnKeys,

LPDISPATCH value,

BSTR password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
columnNumb	- номер колонки,
flagVisible	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек,
columnKeys	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи полей колонки,
value	- указатель на интерфейс ksUserParam, откуда копируется значение ячейки,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
Смотрите также:

ksLtVariant


ksAttributeObject::ksGetAttrRow

Получить данные строки из таблицы атрибута.

Аналог данного метода при использовании API экспортных функций - GetAttrRow.

Синтаксис Automation:

long ksGetAttrRow (long pAttr,

long rowNumb,

LPDISPATCH flagVisible,

LPDISPATCH columnKeys,

LPDISPATCH value);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
flagVisible	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек строки,
columnKeys	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи строки.
Выходной параметр:

value	- указатель на интерфейс ksUserParam, куда копируются данные.
Возвращаемое значение:

1	- в случае удачного завершения.
Смотрите также:

ksLtVariant


ksAttributeObject::ksSetAttrRow

Установить данные строки в таблице атрибута.

Аналог данного метода при использовании API экспортных функций - ksSetAttrRow.

Синтаксис Automation:

long ksSetAttrRow (long pAttr,

long rowNumb,

LPDISPATCH flagVisible,

LPDISPATCH сolumnKeys,

LPDISPATCH value,

BSTR password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
flagVisible	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек строки,
columnKeys	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи строки,
value	- указатель на интерфейс ksUserParam, откуда копируются данные,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
Смотрите также:

ksLtVariant


ksAttributeObject::ksAddAttrRow

Добавить строку к табличному атрибуту неопределенной длины.

Аналог данного метода при использовании API экспортных функций - ksAddAttrRow.

Синтаксис Automation:

long ksAddAttrRow (long pAttr,

long rowNumb,

LPDISPATCH flagVisible,

LPDISPATCH value,

BSTR password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
flagVisible	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек строки,
value	- указатель на интерфейс ksUserParam, откуда копируются данные,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
Смотрите также:

ksLtVariant


ksAttributeObject::ksDeleteAttrRow

Удалить строку табличного атрибута неопределенной длины.

Аналог данного метода при использовании API экспортных функций - ksDeleteAttrRow.

Синтаксис Automation:

long ksDeleteAttrRow (long pAttr,

long rowNumb,

BSTR password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.


ksAttributeObject::ksGetAttrKeysInfo

Получить информацию о ключах атрибута.

Аналог данного метода при использовании API экспортных функций - GetAttrKeysInfo.

Синтаксис Automation:

long ksGetAttrKeysInfo (long pAttr,

long* key1,

long* key2,

long* key3,

long* key4,

double* numb);

Входной параметр:

pAttr	- указатель на атрибут,
Выходные параметры:

key1, key2, key3, key4	- ключи атрибута,
numb	- номер типа атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- - в случае неудачи.


ksAttributeObject::ksGetSizeAttrValue

Получить размер данных ячейки.

Аналог данного метода при использовании API экспортных функций - ksGetSizeAttrValue.

Синтаксис Automation:

long ksGetSizeAttrValue (long pAttr,

long columnNumb,

long* count);

Входные параметры:

pAttr	- указатель на атрибут,
columnNumb	- номер колонки.
Выходной параметр:

count	- число ячеек с учетом записей.
Возвращаемое значение:

длина строки ячейки атрибута	- в случае удачного завершения,
0	- в случае неудачи.


ksAttributeObject::ksGetSizeAttrRow

Получить размер данных строки атрибутов.

Аналог данного метода при использовании API экспортных функций - ksGetSizeAttrRow.

Синтаксис Automation:

long ksGetSizeAttrRow (long pAttr,

long* count);

Входной параметр:

pAttr	- указатель на атрибут.
Выходной параметр:

count	- число ячеек с учетом записей.
Возвращаемое значение:

длина строки атрибута	- в случае удачного завершения,
0	- в случае неудачи.


ksAttributeObject::ksGetAttrColumnInfo

Получить информацию о столбце атрибута.

Аналог данного метода при использовании API экспортных функций - GetAttrColumnInfo.

Синтаксис Automation:

long ksGetAttrColumnInfo (long pAttr,

long columnNumb,

LPDISPATCH columnInfo);

Входные параметры:

pAttr	- указатель на атрибут,
columnNumb	- номер колонки.
Выходной параметр:

columnInfo	- указатель на интерфейс параметров столбца табличного атрибута ksColumnInfoParam.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksAttributeObject::ksGetAttrTabInfo

Получить информацию о количестве строк и столбцов атрибута.

Аналог данного метода при использовании API экспортных функций - GetAttrTabInfo.

Синтаксис Automation:

long ksGetAttrTabInfo (long pAttr,

long* rowsCount,

long* columnsCount);

Входной параметр:

pAttr	- указатель на атрибут.
Выходные параметры:

rowsCount	- количество строк и столбцов атрибута,
columnsCount	- количество столбцов атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksAttributeObject::ksViewEditAttr

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

Аналог данного метода при использовании API экспортных функций - ViewEditAttr.

Синтаксис Automation:

long ksViewEditAttr (long pAttr,

long type,

BSTR password);

Входные параметры:

pAttr	- указатель на атрибут,
type	- режим работы:   - 1 - режим просмотра,     2 - режим редактирования
password	- пароль типа атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечание:

Диалог "привязан" к главному окну.


ksAttributeObject::ksViewEditAttrType

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

Аналог данного метода при использовании API экспортных функций - ViewEditAttrType.

Синтаксис Automation:

long ksViewEditAttrType (BSTR libName,

long type,

double attrID,

BSTR password);

Входные параметры:

libName	- имя библиотеки типов атрибутов.  Если libname = NULL, типы атрибутов берутся из текущего документа,
type	- режим работы:   - 1 - режим просмотра,     2 - режим редактирования,
attrId	- уникальный номер типа атрибута,
password	- пароль типа атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечание:

Диалог "привязан" к главному окну.


ksAttributeObject::ksChoiceAttr

Вывести диалог для просмотра атрибутов объекта и выбора нужного атрибута.

Аналог данного метода при использовании API экспортных функций - ChoiceAttr.

Синтаксис Automation:

long ksChoiceAttr (long pObj);

Входной параметр:

pObj	- указатель на объект, к которому подключены атрибуты.
Возвращаемое значение:

указатель на атрибут	- в случае удачного завершения,
0	- в случае неудачи.


ksAttributeObject::ksGetLibraryAttrTypesArray

Получить указатель на динамический массив типов атрибутов типа LIBRARY_ATTR_TYPE_ARR, находящихся в заданной библиотеке типов - ksDynamicArray.

Аналог данного метода при использовании API экспортных функций - ksGetLibraryAttrTypesArray.

Синтаксис Automation:

long ksGetLibraryAttrTypesArray (BSTR libName);

Входной параметр:

libName	- имя библиотеки типов атрибутов. Если libname = NULL, то типы атрибутов из текущего документа.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksAttributeObject::ksSetSpcObjectColumnTextAlign

Установить выравнивание для текста колонки объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksSetSpcObjectColumnTextAlign.

Синтаксис Automation:

BOOL ksSetSpcObjectColumnTextAlign ( long spcObj,
long columnNumber,
long lineIndex,
long align );

Входной параметр:

spcObj	- указатель на объект спецификации.
columnNumber	- номер колонки, начиная с 1,
lineIndex	- индекс строки текста,
align	- выравнивание.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

Значение переменной align может принимать значения:

 0 - Выравнивание влево

 1 - Выравнивание по центру

 2 - Выравнивание вправо

 3 - Выравнивание по ширине


ksAttributeObject::ksGetSpcObjectColumnTextAlign

Получить выравнивание для текста колонки объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjectColumnTextAlign.

Синтаксис Automation:

long ksGetSpcObjectColumnTextAlign( long spcObj,
long columnNumber,
long lineIndex );

Входной параметр:

spcObj	- указатель на объект спецификации.
columnNumber	- номер колонки, начиная с 1,
lineIndex	- индекс строки текста,
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

Значение переменной align может принимать значения:

 0 - Выравнивание влево

 1 - Выравнивание по центру

 2 - Выравнивание вправо

 3 - Выравнивание по ширине


ksAttributeObject::ksGetSpcObjectAttributeNumber

Получить номер атрибута объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjectAttributeNumber.

Синтаксис Automation:

double ksGetSpcObjectAttributeNumber ( long spcObj );

Входные параметры:

spcObj	объект спецификации
Возвращаемое значение:

	Номер атрибута
Примечания:

Если spcObj = 0 то возвращается номер редактируемого в текущий момент
объекта спецификации, т.е. внутри блока

ksSpcObjectEdit(...);   .

ksGetSpcObjectAttributeNumber(...);

ksSpcObjectEnd();


ksAttributeObject::ksSetSpcObjectAttributeNumber

Получить номер атрибута объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksSetSpcObjectAttributeNumber.

Синтаксис Automation:

BOOL ksSetSpcObjectAttributeNumber (long spcObj, double attrNumber );

Входные параметры:

spcObj	- объект спецификации
attrNumber	- номер атрибута
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.- в случае неудачи.
Примечания:

Если spcObj = 0 то возвращается номер редактируемого в текущий момент
объекта спецификации, т.е. внутри блока

ksSpcObjectEdit(...);   .

ksGetSpcObjectAttributeNumber(...);

ksSpcObjectEnd();


ksAttributeObject::ksGetSpcObjectSummaryCount

Получить суммарное количество для одинаковых объектов.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjectSummaryCount.

Синтаксис Automation:

double ksGetSpcObjectSummaryCount( long spcObj,
long ispoln,
long blockNumber );

Входные параметры:

spcObj	- объект спецификации
ispoln	- номер колонки типа "количество", начиная с 1 (актуально для СП типа Б )
blockNumber	- номер блока, начиная с 0 ( актуально для СП типа A )
Возвращаемое значение:

	- cуммарное количество,


Интерфейс ksAttributeParam
ksAttributeParam

Интерфейс параметров табличного атрибута.

Аналог данных параметров при использовании API экспортных функций - ksAttribute.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksAttributeParam::props
ksAttributeParam
свойства

key1, key3

key2

key4

password


ksAttributeParam::methods
ksAttributeParam
методы

GetColumnKeys

GetFlagVisible

GetValues

Init

SetColumnKeys

SetFlagVisible

SetValues


ksAttributeParam::key1,
ksAttributeParam::key3

Ключи атрибута.

Тип данных - long.

Синтаксис Automation:

key1 = iAttributeTypeParam.key1	Получить свойство (*)
iAttributeTypeParam.key1 = key1	Установить свойство (*)
key1 = iAttributeTypeParam.GetKey1()	Получить свойство (**)
iAttributeTypeParam.SetKey1( key1 )	Установить свойство (**)
Примечание:

Данные ключи рекомендуются как код разработчика.


ksAttributeParam::key2

key2 - код атрибута.

Тип данных - long.

Синтаксис Automation:

key2 = iAttributeTypeParam.key2	Получить свойство (*)
iAttributeTypeParam.key2 = key2	Установить свойство (*)
key2 = iAttributeTypeParam.GetKey2()	Получить свойство (**)
iAttributeTypeParam.SetKey2( key2 )	Установить свойство (**)


ksAttributeParam::key4

Системный код атрибута.

Тип данных - long.

Синтаксис Automation:

key4 = iAttributeTypeParam.key4	Получить свойство (*)
iAttributeTypeParam.key4 = key4	Установить свойство (*)
key4 = iAttributeTypeParam.GetKey4()	Получить свойство (**)
iAttributeTypeParam.SetKey4( key4 )	Установить свойство (**)
Примечание:

Значения параметра key4 от 0 до 1000 зарезервированы за АО "АСКОН".


ksAttributeParam::password

Пароль типа атрибута.

Тип данных - строка.

Синтаксис Automation:

password = iAttributeTypeParam.password	Получить свойство (*)
iAttributeTypeParam.password = password	Установить свойство (*)
password = iAttributeTypeParam.GetPassword()	Получить свойство (**)
iAttributeTypeParam.SetPassword( password )	Установить свойство (**)
Примечание:

Если строка не пустая, то пароль защищает тип атрибута от несанкционированного изменения.


ksAttributeParam::GetFlagVisible

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

Синтаксис Automation:

LPDISPATCH GetFlagVisible();

Возвращаемое значение:

	указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray.
Примечание:

Интерфейс динамического массива ksDynamicArray определяет для каждой колонки атрибута видимость-невидимость.

Смотрите также

ksLtVariant


ksAttributeParam::SetFlagVisible

Установить указатель на интерфейс динамического массива типа LTVARIANT_ARR - ksDynamicArray.

Синтаксис Automation:

BOOL SetFlagVisible (LPDISPATCH value);

Входной параметр:

value	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Интерфейс динамического массива ksDynamicArray определяет для каждой колонки атрибута видимость-невидимость.

Смотрите также

ksLtVariant


ksAttributeParam::GetColumnKeys

Получить указатель на интерфейс динамического массива ключей колонок атрибута типа LTVARIANT_ARR - ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetColumnKeys();

Возвращаемое значение:

	указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray.
Смотрите также

ksLtVariant


ksAttributeParam::SetColumnKeys

Установить указатель на интерфейс динамического массива ключей колонок атрибута типа LTVARIANT_ARR - ksDynamicArray.

Синтаксис Automation:

BOOL SetColumnKeys (LPDISPATCH value);

Входной параметр:

value	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksLtVariant


ksAttributeParam::GetValues

Получить указатель на интерфейс массива значений ячеек таблицы атрибутов ksUserParam.

Синтаксис Automation:

LPDISPATCH GetValues();

Возвращаемое значение:

	указатель на интерфейс ksUserParam.


ksAttributeParam::SetValues

Заполнить массив значений ячеек таблицы атрибутов ksUserParam.

Синтаксис Automation:

BOOL SetValues (LPDISPATCH value);

Входной параметр:

value	- указатель на интерфейс массива значений ячеек таблицы атрибутов ksUserParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksAttributeParam::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Динамические массивы не создаются.


Интерфейс ksAttributeTypeParam
ksAttributeTypeParam

Интерфейс параметров типа табличного атрибута.

Аналог данных параметров при использовании API экспортных функций - ksAttributeType.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksAttributeTypeParam::props
ksAttributeTypeParam
свойства

flagVisible

header

key1, key3

key2

key4

password

rowsCount


ksAttributeTypeParam::methods
ksAttributeTypeParam
методы

GetColumns

Init

SetColumns


ksAttributeTypeParam::key1,
ksAttributeTypeParam::key3

Ключи атрибута.

Тип данных - long.

Синтаксис Automation:

key1 = iAttributeTypeParam.key1	Получить свойство (*)
iAttributeTypeParam.key1 = key1	Установить свойство (*)
key1 = iAttributeTypeParam.GetKey1()	Получить свойство (**)
iAttributeTypeParam.SetKey1( key1 )	Установить свойство (**)
Примечание:

Данные ключи рекомендуются как код разработчика.


ksAttributeTypeParam::key2

Код атрибута.

Тип данных - long.

Синтаксис Automation:

key2 = iAttributeTypeParam.key2	Получить свойство (*)
iAttributeTypeParam.key2 = key2	Установить свойство (*)
key2 = iAttributeTypeParam.GetKey2()	Получить свойство (**)
iAttributeTypeParam.SetKey2( key2 )	Установить свойство (**)


ksAttributeTypeParam::key4

Системный код атрибута.

Тип данных - long.

Синтаксис Automation:

key4 = iAttributeTypeParam.key4	Получить свойство (*)
iAttributeTypeParam.key4 = key4	Установить свойство (*)
key4 = iAttributeTypeParam.GetKey4()	Получить свойство (**)
iAttributeTypeParam.SetKey4( key4 )	Установить свойство (**)
Примечание:

Значения параметра key4 от 0 до 1000 зарезервированы за АО "АСКОН".


ksAttributeTypeParam::rowsCount

Количество строк в таблице атрибута.

Тип данных - long.

Синтаксис Automation:

rowsCount = iAttributeTypeParam.rowsCount	Получить свойство (*)
iAttributeTypeParam.rowsCount = rowsCount	Установить свойство (*)
rowsCount = iAttributeTypeParam.GetRowsCount()	Получить свойство (**)
iAttributeTypeParam.SetRowsCount( rowsCount )	Установить свойство (**)


ksAttributeTypeParam::flagVisible

Признак видимости колонки в таблице атрибута.

Тип данных - BOOL.

Синтаксис Automation:

flagVisible = iAttributeTypeParam.flagVisible	Получить свойство (*)
iAttributeTypeParam.flagVisible = flagVisible	Установить свойство (*)
flagVisible = iAttributeTypeParam.GetFlagVisible()	Получить свойство (**)
iAttributeTypeParam.SetFlagVisible( flagVisible )	Установить свойство (**)
Значения свойства:

TRUE	- невидимый атрибут,
FALSE	- видимый атрибут.


ksAttributeTypeParam::header

Заголовoк-комментарий типа атрибута.

Тип данных - строка.

Синтаксис Automation:

header = iAttributeTypeParam.header	Получить свойство (*)
iAttributeTypeParam.header = header	Установить свойство (*)
header = iAttributeTypeParam.GetHeader()	Получить свойство (**)
iAttributeTypeParam.SetHeader( header )	Установить свойство (**)


ksAttributeTypeParam::password

Пароль типа атрибута.

Тип данных - строка.

Синтаксис Automation:

password = iAttributeTypeParam.password	Получить свойство (*)
iAttributeTypeParam.password = password	Установить свойство (*)
password = iAttributeTypeParam.GetPassword()	Получить свойство (**)
iAttributeTypeParam.SetPassword( password )	Установить свойство (**)
Примечание:

Если строка не пустая, то пароль защищает тип атрибута от несанкционированного изменения.


ksAttributeTypeParam::GetColumns

Получить указатель на интерфейс динамического массива колонок аттрибутов типа ATTR_COLUMN_ARR - ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetColumns();

Возвращаемое значение:

	указатель на интерфейс динамического массива колонок атрибутов типа ATTR_COLUMN_ARR ksDynamicArray.
Смотрите также

ksColumnInfoParam


ksAttributeTypeParam::SetColumns

Установить указатель на интерфейс динамического массива колонок аттрибутов типа ATTR_COLUMN_ARR - ksDynamicArray.

Синтаксис Automation:

BOOL SetColumns (LPDISPATCH сolumns);

Входной параметр:

сolumns	указатель на интерфейс динамического массива колонок атрибутов типа ATTR_COLUMN_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksColumnInfoParam


ksAttributeTypeParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры типа атрибута.

2. Создается динамический массив колонок типа ATTR_COLUMN_ARR.


Интерфейс ksBaseParam
ksBaseParam

Интерфейс параметров обозначения базы.

Аналог данных параметров при использовании API экспортных функций - BaseParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksBaseParam::props
ksBaseParam
свойства

str

style

type

x1, y1

x2, y2


ksBaseParam::methods
ksBaseParam
методы

GetPTextItem

Init

SetPTextItem


ksBaseParam::style

Стиль текста.

Тип данных - long.

Значения свойства:

номер системного стиля,
номер пользовательского стиля.
Синтаксис Automation:

style = iBaseParam.style	Получить свойство (*)
iBaseParam.style = style	Установить свойство (*)
style = iBaseParam.GetStyle()	Получить свойство (**)
iBaseParam.SetStyle( style )	Установить свойство (**)
Системные стили текста...


ksBaseParam::x1,
ksBaseParam::y1

Координаты базовой точки ( начало "опоры").

Тип данных - double.

Синтаксис Automation:

x1 = iBaseParam.x1	Получить свойство (*)
iBaseParam.x1 = x1	Установить свойство (*)
x1 = iBaseParam.GetX1()	Получить свойство (**)
iBaseParam.SetX1( x1 )	Установить свойство (**)


ksBaseParam::x2,
ksBaseParam::y2

Координаты конечной точки "опоры".

Тип данных - double.

Синтаксис Automation:

x2 = iBaseParam.x2	Получить свойство (*)
iBaseParam.x2 = x2	Установить свойство (*)
x2 = iBaseParam.GetX2()	Получить свойство (**)
iBaseParam.SetX2( x2 )	Установить свойство (**)


ksBaseParam::type

Способ задания надписи в обозначении базы.

Тип данных - BOOL.

Значения свойства:

FALSE	- текст в виде строки (текст определяется свойством ksBaseParam::str),
TRUE	- динамический массив компонент текстов ( текст определяется массивом pTextItem (смотрите методы ksBaseParam::GetPTextItem и ksBaseParam::SetPTextItem)
Синтаксис Automation:

type = iBaseParam.type	Получить свойство (*)
iBaseParam.type = type	Установить свойство (*)
type = iBaseParam.GetType()	Получить свойство (**)
iBaseParam.SetType( type )	Установить свойство (**)


ksBaseParam::str

Текст в обозначении базы.

Тип данных - строка.

Синтаксис Automation:

str = iBaseParam.str	Получить свойство (*)
iBaseParam.str = str	Установить свойство (*)
str = iBaseParam.GetStr()	Получить свойство (**)
iBaseParam.SetStr( str )	Установить свойство (**)
Примечание:

Свойство используется при type = FALSE.


ksBaseParam::GetPTextItem

Получить указатель на интерфейс динамического массива компонент текcта ksDynamicArray типа TEXT_ITEM_ARR.

Синтаксис Automation:

LPDISPATCH GetPTextItem();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа TEXT_ITEM_ARR.
Примечание:

Массив используется при ksBaseParam::type = TRUE.

Смотрите также

StructTextItemParam


ksBaseParam::SetPTextItem

Установить указатель на интерфейс динамического массива компонент текcта ksDynamicArray типа TEXT_ITEM_ARR.

Синтаксис Automation:

BOOL SetPTextItem (LPDISPATCH pTextItem);

Входной параметр:

pTextItem	- указатель на интерфейс динамического массива ksDynamicArray типа TEXT_ITEM_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Массив используется при ksBaseParam::type = TRUE.

Смотрите также

TextItemParam


ksBaseParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры объекта "обозначение базы".


Интерфейс ksBezierParam
ksBezierParam

Интерфейс параметров кривой Безье.

Аналог данных параметров при использовании API экспортных функций - BezierParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksBezierParam::props
ksBezierParam
свойства

closed

style


ksBezierParam::methods
ksBezierParam
методы

GetMathPointArr

Init

SetMathPointArr


ksBezierParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iBezierParam.style	Получить свойство (*)
iBezierParam.style = style	Установить свойство (*)
style = iBezierParam.GetStyle()	Получить свойство (**)
iBezierParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksBezierParam::closed

Признак замыкания кривой.

Тип данных - short.

Значения свойства:

0	- кривая не замкнута,
1	- кривая замкнута.
Синтаксис Automation:

closed = iBezierParam.closed	Получить свойство (*)
iBezierParam.closed = closed	Установить свойство (*)
closed = iBezierParam.GetClosed()	Получить свойство (**)
iBezierParam.SetClosed( closed )	Установить свойство (**)


ksBezierParam::GetMathPointArr

Получить указатель на интерфейс динамического массива параметров математических точек сплайна ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

LPDISPATCH GetMathPointArr();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray параметров математических точек типа POINT_ARR.
Смотрите также

ksMathPointParam


ksBezierParam::SetMathPointArr

Установить динамический массив параметров математических точек сплайна ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

BOOL SetMathPointArr (LPDISPATCH pMathPoint);

Входной параметр:

pMathPoint	- указатель на интерфейс динамического массива ksDynamicArray параметров математических точек типа POINT_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksMathPointParam


ksBezierParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры кривой Безье.


Интерфейс ksBezierPointParam
ksBezierPointParam

Интерфейс параметров узла для кривой Безье.

Аналог данных параметров при использовании API экспортных функций - BezierPointParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksBezierPointParam::props
ksBezierPointParam
свойства

ang

left

right

x, y


ksBezierPointParam::methods
ksBezierPointParam
методы

Init


ksBezierPointParam::x,
ksBezierPointParam::y

Координаты базовой точки.

Тип данных - double.

Синтаксис Automation:

x = iBezierPointParam.x	Получить свойство (*)
iBezierPointParam.x = x	Установить свойство (*)
x = iBezierPointParam.GetX()	Получить свойство (**)
iBezierPointParam.SetX( x )	Установить свойство (**)


ksBezierPointParam::ang

Угол наклона касательной к кривой в базовой точке.

Тип данных - double.

Синтаксис Automation:

ang = iBezierPointParam.ang	Получить свойство (*)
iBezierPointParam.ang = ang	Установить свойство (*)
ang = iBezierPointParam.GetAng()	Получить свойство (**)
iBezierPointParam.SetAng( ang )	Установить свойство (**)


ksBezierPointParam::left

Расстояние от базовой точки до левой точки узла.

Тип данных - double.

Синтаксис Automation:

left = iBezierPointParam.left	Получить свойство (*)
iBezierPointParam.left = left	Установить свойство (*)
left = iBezierPointParam.GetLeft()	Получить свойство (**)
iBezierPointParam.SetLeft( left )	Установить свойство (**)


ksBezierPointParam::right

Расстояние от базовой точки до правой точки узла.

Тип данных - double.

Синтаксис Automation:

right = iBezierPointParam.right	Получить свойство (*)
iBezierPointParam.right = right	Установить свойство (*)
right = iBezierPointParam.GetRight()	Получить свойство (**)
iBezierPointParam.SetRight( right )	Установить свойство (**)


ksBezierPointParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры узла для кривой Безье.


Интерфейс ksBrandLeaderParam
ksBrandLeaderParam

Интерфейс параметров линии выноски для обозначения клеймения.

Аналог данных параметров при использовании API экспортных функций - BrandLeaderParam.

Свойства...

Методы...

Примечания:

1. Если cText0 = 0 или cText1 = 0 или cText2 = 0, то соответствующий текст на линии-выноске отсутствует.

2. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksBrandLeaderParam::props
ksBrandLeaderParam
свойства

arrowType

cText0

cText1

cText2

dirX

style1

style2

x, y


ksBrandLeaderParam::methods
ksBrandLeaderParam
методы

GetpPolyline

GetpTextline

Init

SetpPolyline

SetpTextline


ksBrandLeaderParam::dirX

Направление полки относительно оси OX.

Тип данных - long.

Значения свойства:

1	- вправо (по оси OX),
-1	- влево (против оси OX).
Синтаксис Automation:

dirX = iBrandLeaderParam.dirX	Получить свойство (*)
iBrandLeaderParam.dirX = dirX	Установить свойство (*)
dirX = iBrandLeaderParam.GetDirX()	Получить свойство (**)
iBrandLeaderParam.SetDirX( dirX )	Установить свойство (**)


ksBrandLeaderParam::x,
ksBrandLeaderParam::y

Координаты базовой точки обозначения клеймения.

Тип данных - double.

Синтаксис Automation:

x = iBrandLeaderParam.x	Получить свойство (*)
iBrandLeaderParam.x = x	Установить свойство (*)
x = iBrandLeaderParam.GetX()	Получить свойство (**)
iBrandLeaderParam.SetX( x )	Установить свойство (**)
Примечание:

Базовая точка обозначения клеймения - точка выхода из знака "ножки".


ksBrandLeaderParam::arrowType

Тип знака на "ножке" линии-выноски обозначения клеймения.

Тип данных - short.

Значения свойства:

0	- знак отсутствует,
1	- точка,
2	- стрелка.
Синтаксис Automation:

arrowType = iBrandLeaderParam.arrowType	Получить свойство (*)
iBrandLeaderParam.arrowType = arrowType	Установить свойство (*)
arrowType = iBrandLeaderParam.GetArrowType()	Получить свойство (**)
iBrandLeaderParam.SetArrowType( arrowType )	Установить свойство (**)


ksBrandLeaderParam::style1

Стиль текста в знаке клеймения.

Тип данных - long.

Значения свойства:

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

Синтаксис Automation:

style1 = iBrandLeaderParam.style1	Получить свойство (*)
iBrandLeaderParam.style1 = style1	Установить свойство (*)
style1 = iBrandLeaderParam.GetStyle1()	Получить свойство (**)
iBrandLeaderParam.SetStyle1( style1 )	Установить свойство (**)
Примечание:

Если style1 = INDICATIN_TEXT_LINE_ARR, то динамический массив текстов - типа TEXT_LINE_ARR. В остальных случаях - типа CHAR_STR_ARR.


ksBrandLeaderParam::style2

Стиль текстов у "ножки" знака клеймения.

Тип данных - long.

Значения свойства:

номер системного стиля,
номер пользовательского стиля.
Системные стили текстов...

Синтаксис Automation:

style2 = iBrandLeaderParam.style2	Получить свойство (*)
iBrandLeaderParam.style1 = style2	Установить свойство (*)
style2 = iBrandLeaderParam.GetStyle2()	Получить свойство (**)
iBrandLeaderParam.SetStyle2( style2 )	Установить свойство (**)
Примечание:

Используется, если style1 не равен INDICATIN_TEXT_LINE_ARR.


ksBrandLeaderParam::cText0

Количество строк текста в знаке клеймения (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText0 = iBrandLeaderParam.cText0	Получить свойство (*)
iBrandLeaderParam.cText0 = cText0	Установить свойство (*)
cText0 = iBrandLeaderParam.GetCText0()	Получить свойство (**)
iBrandLeaderParam.SetCText0( cText0 )	Установить свойство (**)


ksBrandLeaderParam::cText1

Количество строк текста над "ножкой" (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText1 = iBrandLeaderParam.cText1	Получить свойство (*)
iBrandLeaderParam.cText1 = cText1	Установить свойство (*)
cText1 = iBrandLeaderParam.GetCText1()	Получить свойство (**)
iBrandLeaderParam.SetCText1( cText1 )	Установить свойство (**)


ksBrandLeaderParam::cText2

Количество строк текста под "ножкой" (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText2 = iBrandLeaderParam.cText2	Получить свойство (*)
iBrandLeaderParam.cText2 = cText2	Установить свойство (*)
cText2 = iBrandLeaderParam.GetCText2()	Получить свойство (**)
iBrandLeaderParam.SetCText2( cText2 )	Установить свойство (**)


ksBrandLeaderParam::GetpTextline

Получить указатель на интерфейс динамического массива текста обозначения клеймения ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetpTextline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray.
Примечания:

1. Если свойство ksBrandLeaderParam::style1 = INDICATIN_TEXT_LINE_ARR, то динамический массив - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк символов текста клеймения).

2. Различают 3 разных текста для обозначения клеймения, их строки лежат в следующей последовательности:

- текст над полкой. Если свойство cText0 = 0, то этот текст отсутствует;

- текста над "ножкой". Если свойство cText1 = 0, то этот текст отсутствует;

- текст под "ножкой". Если свойство cText2 = 0, то этот текст отсутствует.

Смотрите также

ksTextLineParam

ksChar255


ksBrandLeaderParam::SetpTextline

Установить указатель на интерфейс динамического массива обозначения клеймения ksDynamicArray.

Синтаксис Automation:

BOOL SetpTextline (LPDISPATCH pTextline);

Входной параметр:

pTextline	- указатель на интерфейс динамического массива ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Если свойство ksBrandLeaderParam::style1 = INDICATIN_TEXT_LINE_ARR, то динамический массив ksDynamicArray - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк символов текста клеймения).

2. Различают 3 разных текста для обозначения клеймения, их строки лежат в следующей последовательности:

- текст над полкой. Если свойство cText0 = 0, то этот текст отсутствует;

- текста над "ножкой". Если свойство cText1 = 0, то этот текст отсутствует;

- текст под "ножкой". Если свойство cText2 = 0, то этот текст отсутствует.

Смотрите также

ksTextLineParam

ksChar255


ksBrandLeaderParam::GetpPolyline

Получить указатель на интерфейс динамического массива ответвлений линии-выноски обозначения клеймения ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

LPDISPATCH GetpPolyline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Примечание:

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

Смотрите также

ksMathPointParam


ksBrandLeaderParam::SetpPolyline

Установить указатель на интерфейс динамического массива ответвлений линии-выноски обозначения клеймения ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

BOOL SetpPolyline (LPDISPATCH pPolyline);

Входной параметр:

pPolyline	- указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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

Смотрите также

ksMathPointParam


ksBrandLeaderParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pText типа CHAR_STR_ARR.

3. Создается динамический массив pPolyline типа POLYLINE_ARR.


Интерфейс ksBreakDimDrawing
ksBreakDimDrawing

Интерфейс параметров отрисовки линейного и углового размера с обрывом.

Аналог данных параметров при использовании API экспортных функций - BreakDimDrawing.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksBreakDimDrawing::props
ksBreakDimDrawing
свойства

angle

length

pl

pt

shelfDir

textPos


ksBreakDimDrawing::methods
ksBreakDimDrawing
методы

Init


ksBreakDimDrawing::pl

Признак отрисовки выносной линии.

Тип данных - BOOL.

Значения свойства:

TRUE	- отрисовка выносной линии выключена,
FALSE	- отрисовка выносной линии включена.
Синтаксис Automation:

pl = iBreakDimDrawing.pl	Получить свойство (*)
iBreakDimDrawing.pl = pl	Установить свойство (*)
pl = iBreakDimDrawing.GetPl()	Получить свойство (**)
iBreakDimDrawing.SetPl( pl )	Установить свойство (**)


ksBreakDimDrawing::pt

Тип стрелки у первой выносной линии.

Тип данных - short.

Значения свойства:

0	- стрелки нет,
1	- стрелка изнутри,
2	- стрелка снаружи,
3	- засечка,
4	- точка.
Синтаксис Automation:

pt = iBreakDimDrawing.pt	Получить свойство (*)
iBreakDimDrawing.pt = pt	Установить свойство (*)
pt = iBreakDimDrawing.GetPt()	Получить свойство (**)
iBreakDimDrawing.SetPt( pt )	Установить свойство (**)


ksBreakDimDrawing::textPos

Положение текста.

Тип данных - long.

Значения свойства:

0	- автоматическое размещение текста,
> 0	- значение расстояния от выносной линии до текста в направлении от первой точки ко второй.
Синтаксис Automation:

textPos = iBreakDimDrawing.textPos	Получить свойство (*)
iBreakDimDrawing.textPos = textPos	Установить свойство (*)
textPos = iBreakDimDrawing.GetTextPos()	Получить свойство (**)
iBreakDimDrawing.SetTextPos( textPos )	Установить свойство (**)
Примечание:

Свойство является аннотационным (не зависит от масштаба, показывает расстояние "на бумаге").


ksBreakDimDrawing::shelfDir

Признак отрисовки полки.

Тип данных - long.

Значения свойства:

0	- нет полки,
-1	- полка влево,
1	- полка вправо,
2	- полка вверх,
3	- пока вниз.
Синтаксис Automation:

shelfDir = iBreakDimDrawing.shelfDir	Получить свойство (*)
iBreakDimDrawing.shelfDir = shelfDir	Установить свойство (*)
shelfDir = iBreakDimDrawing.GetShelfDir()	Получить свойство (**)
iBreakDimDrawing.SetShelfDir( shelfDir )	Установить свойство (**)


ksBreakDimDrawing::angle

Угол наклона "ножки" полки.

Тип данных - double.

Синтаксис Automation:

angle = iBreakDimDrawing.angle	Получить свойство (*)
iBreakDimDrawing.angle = angle	Установить свойство (*)
angle = iBreakDimDrawing.GetAngle()	Получить свойство (**)
iBreakDimDrawing.SetAngle( angle )	Установить свойство (**)


ksBreakDimDrawing::length

Длина "ножки" полки.

Тип данных - double.

Синтаксис Automation:

length = iBreakDimDrawing.length	Получить свойство (*)
iBreakDimDrawing.length = length	Установить свойство (*)
length = iBreakDimDrawing.GetLength()	Получить свойство (**)
iBreakDimDrawing.SetLength( length )	Установить свойство (**)
Примечание :

Свойство является аннотационным (не зависит от масштаба, показывает длину "на бумаге").


ksBreakDimDrawing::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры отрисовки линейного и углового размера с обрывом.


Интерфейс ksCentreParam
ksCentreParam

Интерфейс параметров объекта "обозначение центра".

Аналог данных параметров при использовании API экспортных функций - CentreParam.

Свойства...

Методы...

Примечание:

Индексация полуосей обозначения центра следующая:

Xp	- по оси абсцисс системы координат обозначения центра

Xm	- против оси абсцисс системы координат обозначения центра

Yp	- по оси ординат системы координат обозначения центра

Ym	- против оси ординат системы координат обозначения центра

Система координат обозначения центра - система, оси которой совпадают с осями обозначения, а сама она повернута относительно текущей системы координат на угол angle.

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCentreParam::props
ksCentreParam
свойства

angle

baseCurve

lenXmTail

lenXpTail

lenYmTail

lenYpTail

standXmTail

standXpTail

standYmTail

standYpTail

type

x, y


ksCentreParam::methods
ksCentreParam
методы

Init


ksCentreParam::baseCurve

Указатель на базовую геометрическую кривую (например, окружность).

Тип данных - long.

Синтаксис Automation:

baseCurve = iCentreParam.baseCurve	Получить свойство (*)
iCentreParam.baseCurve = baseCurve	Установить свойство (*)
baseCurve = iCentreParam.GetBaseCurve()	Получить свойство (**)
iCentreParam.SetBaseCurve( baseCurve )	Установить свойство (**)
Примечание:

Свойство равно 0, если создается отдельное обозначение центра.


ksCentreParam::x,
ksCentreParam::y

Координаты точки привязки.

Тип данных - double.

Синтаксис Automation:

x = iCentreParam.x	Получить свойство (*)
iCentreParam.x = x	Установить свойство (*)
x = iCentreParam.GetX()	Получить свойство (**)
iCentreParam.SetX( x )	Установить свойство (**)
Примечание:

Если задана базовая кривая, эти параметры не используются.


ksCentreParam::angle

Угол наклона обозначения центра.

Тип данных - double.

Синтаксис Automation:

angle = iCentreParam.angle	Получить свойство (*)
iCentreParam.angle = angle	Установить свойство (*)
angle = iCentreParam.GetAngle()	Получить свойство (**)
iCentreParam.SetAngle( angle )	Установить свойство (**)
Примечание:

Если задана базовая кривая, этот параметр не используется.


ksCentreParam::type

Тип обозначения центра.

Тип данных - short.

Значения свойства:

0	- маленький "крестик",
1	- одна ось,
2	- две оси.
Синтаксис Automation:

type = iCentreParam.type	Получить свойство (*)
iCentreParam.type = type	Установить свойство (*)
type = iCentreParam.GetType()	Получить свойство (**)
iCentreParam.SetType( type )	Установить свойство (**)


ksCentreParam::standXpTail

Признак стандартного изображения полуоси в положительном направлении оси Х.

Тип данных - BOOL.

Синтаксис Automation:

standXpTail = iCentreParam.standXpTail	Получить свойство (*)
iCentreParam.standXpTail = standXpTail	Установить свойство (*)
standXpTail = iCentreParam.GetStandXpTail()	Получить свойство (**)
iCentreParam.SetStandXpTail( standXpTail )	Установить свойство (**)


ksCentreParam::standXmTail

Признак стандартного изображения полуоси в отрицательном направлении оси Х

Тип данных - BOOL.

Синтаксис Automation:

standXmTail = iCentreParam.standXmTail	Получить свойство (*)
iCentreParam.standXmTail = standXmTail	Установить свойство (*)
standXmTail = iCentreParam.GetStandXmTail()	Получить свойство (**)
iCentreParam.SetStandXmTail( standXmTail )	Установить свойство (**)


ksCentreParam::standYpTail

Признак стандартного изображения полуоси в положительном направлении оси Y.

Тип данных - BOOL.

Синтаксис Automation:

standYpTail = iCentreParam.standYpTail	Получить свойство (*)
iCentreParam.standYpTail = standYpTail	Установить свойство (*)
standYpTail = iCentreParam.GetStandYpTail()	Получить свойство (**)
iCentreParam.SetStandYpTail( standYpTail )	Установить свойство (**)


ksCentreParam::standYmTail

Признак стандартного изображения полуоси в отрицательном направлении оси Y.

Тип данных - BOOL.

Синтаксис Automation:

standYmTail = iCentreParam.standYmTail	Получить свойство (*)
iCentreParam.standYmTail = standYmTail	Установить свойство (*)
standYmTail = iCentreParam.GetStandYmTail()	Получить свойство (**)
iCentreParam.SetStandYmTail( standYmTail )	Установить свойство (**)


ksCentreParam::lenXpTail

Длина изображения полуоси, если оно нестандартное, в положительном направлении оси Х.

Тип данных - double.

Синтаксис Automation:

lenXpTail = iCentreParam.lenXpTail	Получить свойство (*)
iCentreParam.lenXpTail = lenXpTail	Установить свойство (*)
lenXpTail = iCentreParam.GetLenXpTail()	Получить свойство (**)
iCentreParam.SetLenXpTail( lenXpTail )	Установить свойство (**)


ksCentreParam::lenXmTail

Длина изображения полуоси, если оно нестандартное, в отрицательном направлении оси Х.

Тип данных - double.

Синтаксис Automation:

lenXmTail = iCentreParam.lenXmTail	Получить свойство (*)
iCentreParam.lenXmTail = lenXmTail	Установить свойство (*)
lenXmTail = iCentreParam.GetLenXmTail()	Получить свойство (**)
iCentreParam.SetLenXmTail( lenXmTail )	Установить свойство (**)


ksCentreParam::lenYpTail

Длина изображения полуоси, если оно нестандартное, в положительном направлении оси Y.

Тип данных - double.

Синтаксис Automation:

lenYpTail = iCentreParam.lenYpTail	Получить свойство (*)
iCentreParam.lenYpTail = lenYpTail	Установить свойство (*)
lenYpTail = iCentreParam.GetLenYpTail()	Получить свойство (**)
iCentreParam.SetLenYpTail( lenYpTail )	Установить свойство (**)


ksCentreParam::lenYmTail

Длина изображения полуоси, если оно нестандартное, в отрицательном направлении оси Y.

Тип данных - double.

Синтаксис Automation:

lenYmTail = iCentreParam.lenYmTail	Получить свойство (*)
iCentreParam.lenYmTail = lenYmTail	Установить свойство (*)
lenYmTail = iCentreParam.GetLenYmTail()	Получить свойство (**)
iCentreParam.SetLenYmTail( lenYmTail )	Установить свойство (**)


ksCentreParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры объекта "обозначение центра".


Интерфейс ksChar255
ksChar255

Интерфейс строки в 255 символов для массива ksDynamicArray типа CHAR_STR_ARR.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksChar255::props
ksChar255
свойства

str


ksChar255::methods
ksChar255
методы

Init


ksChar255::str

Строка.

Тип данных - строка.

Синтаксис Automation:

str = iChar255.str	Получить свойство (*)
iChar255.str = str	Установить свойство (*)
str = iChar255.GetStr()	Получить свойство (**)
iChar255.SetStr( str )	Установить свойство (**)


ksChar255::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет строку.


Интерфейс ksCircleParam
ksCircleParam

Интерфейс параметров окружности.

Аналог данных параметров при использовании API экспортных функций - CircleParam.

Свойства...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCircleParam::props
ksCircleParam
свойства

rad

style

xc, yc


ksCircleParam::xc,
ksCircleParam::yc

Координаты центра окружности.

Тип данных - double.

Синтаксис Automation:

xc = iCircleParam.xc	Получить свойство (*)
iCircleParam.xc = xc	Установить свойство (*)
xc = iCircleParam.GetXc()	Получить свойство (**)
iCircleParam.SetXc( xc )	Установить свойство (**)


ksCircleParam::rad

Радиус окружности.

Тип данных - double.

Синтаксис Automation:

rad = iCircleParam.rad	Получить свойство (*)
iCircleParam.rad = rad	Установить свойство (*)
rad = iCircleParam.GetRadius()	Получить свойство (**)
iCircleParam.SetRadius( rad )	Установить свойство (**)


ksCircleParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iCircleParam.style	Получить свойство (*)
iCircleParam.style = style	Установить свойство (*)
style = iCircleParam.GetStyle()	Получить свойство (**)
iCircleParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


Интерфейс ksColumnInfoParam
ksColumnInfoParam

Интерфейс параметров столбца табличного атрибута.

Аналог данных параметров при использовании API экспортных функций - ColumnInfo.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksColumnInfoParam::props
ksColumnInfoParam
свойства

def

flagEnum

header

key

type


ksColumnInfoParam::methods
ksColumnInfoParam
методы

GetColumns

GetFieldEnum

Init

SetColumns

SetFieldEnum


ksColumnInfoParam::key

Дополнительный признак ("ключ"), который позволит отличить две переменные одинакового типа.

Тип данных - short.

Синтаксис Automation:

key = iColumnInfoParam.key	Получить свойство (*)
iColumnInfoParam.key = key	Установить свойство (*)
key = iColumnInfoParam.GetKey()	Получить свойство (**)
iColumnInfoParam.SetKey( key )	Установить свойство (**)


ksColumnInfoParam::type

Тип данных в столбце.

Тип данных - short.

Синтаксис Automation:

type = iColumnInfoParam.type	Получить свойство (*)
iColumnInfoParam.type = type	Установить свойство (*)
type = iColumnInfoParam.GetType()	Получить свойство (**)
iColumnInfoParam.SetType( type )	Установить свойство (**)
Типы данных в столбце табличного атрибута...


ksColumnInfoParam::flagEnum

Признак режима, в котором значение поля атрибута заполняется из массива предопределенных значений.

Тип данных - BOOL.

Синтаксис Automation:

flagEnum = iColumnInfoParam.flagEnum	Получить свойство (*)
iColumnInfoParam.flagEnum = flagEnum	Установить свойство (*)
flagEnum = iColumnInfoParam.GetFlagEnum()	Получить свойство (**)
iColumnInfoParam.SetFlagEnum( flagEnum )	Установить свойство (**)
Значения свойства:

TRUE	- режим включен,
FALSE	- режим выключен.


ksColumnInfoParam::header

Заголовoк-комментарий типа атрибута.

Тип данных - строка.

Синтаксис Automation:

header = iColumnInfoParam.header	Получить свойство (*)
iColumnInfoParam.header = header	Установить свойство (*)
header = iColumnInfoParam.GetHeader()	Получить свойство (**)
iColumnInfoParam.SetHeader( header )	Установить свойство (**)


ksColumnInfoParam::def

Значение в колонке по умолчанию.

Тип данных - строка.

Синтаксис Automation:

def = iColumnInfoParam.def	Получить свойство (*)
iColumnInfoParam.def = def	Установить свойство (*)
def = iColumnInfoParam.GetDef()	Получить свойство (**)
iColumnInfoParam.SetDef( def )	Установить свойство (**)


ksColumnInfoParam::GetFieldEnum

Получить указатель на интерфейс динамического массива перечислений (строки) типа CHAR_STR_ARR - ksDynamicArray .

Синтаксис Automation:

LPDISPATCH GetFieldEnum();

Возвращаемое значение:

	указатель на интерфейс динамического массива перечислений (строки) типа CHAR_STR_ARR ksDynamicArray.
Смотрите также

ksChar255


ksColumnInfoParam::SetFieldEnum

Установить указатель на интерфейс динамического массива перечислений (строки) типа CHAR_STR_ARR - ksDynamicArray.

Синтаксис Automation:

BOOL SetFieldEnum(LPDISPATCH fieldEnum);

Входной параметр:

fieldEnum	- указатель на интерфейс динамического массива перечислений (строки) типа CHAR_STR_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksChar255


ksColumnInfoParam::GetColumns

Получить указатель на динамический массив информации о колонках типа ATTR_COLUMN_ARR - ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetColumns();

Возвращаемое значение:

	указатель на динамический массив типа ATTR_COLUMN_ARR ksDynamicArray.
Смотрите также

ksColumnInfoParam


ksColumnInfoParam::SetColumns

Установить указатель на динамический массив информации о колонках типа ATTR_COLUMN_ARR - ksDynamicArray.

Синтаксис Automation:

BOOL SetColumns (LPDISPATCH columns);

Входной параметр:

columns	указатель на динамический массив типа ATTR_COLUMN_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksColumnInfoParam


ksColumnInfoParam::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Динамические массивы не создаются.


Интерфейс ksCON
ksCON

Интерфейс массива координат точек сопряжения.

Аналог данных параметров при использовании API экспортных функций - CON - структура параметров сопряжения двух кривых окружностью.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCON::methods
ksCON
методы

GetCount

GetX1

GetX2

GetXc

GetY1

GetY2

GetYc


ksCON::GetCount

Получить количество найденных сопряжений.

Синтаксис Automation:

long GetCount();

Возвращаемое значение:

	количество найденных сопряжений.


ksCON::GetXc

Получить координату х центра сопрягающей окружности.

Синтаксис Automation:

double GetXc (long index);

Входной параметр:

index	- номер индекса сопрягающей окружноcти в массиве (допустимое значение от 0 до 7).
Возвращаемое значение:

	координата х центра сопрягающей окружности.


ksCON::GetYc

Получить координату y центра сопрягающей окружности.

Синтаксис Automation:

double GetYc (long index);

Входной параметр:

index	- номер индекса сопрягающей окружноcти в массиве (допустимое значение от 0 до 7).
Возвращаемое значение:

	координата y центра сопрягающей окружности.


ksCON::GetX1

Получить координату х первой точки сопряжения.

Синтаксис Automation:

double GetX1 (long index);

Входной параметр:

index	- номер индекса сопрягающей окружноcти в массиве (допустимое значение от 0 до 7).
Возвращаемое значение:

	координата x первой точки сопряжения.


ksCON::GetY1

Получить координату y первой точки сопряжения.

Синтаксис Automation:

double GetY1 (long index);

Входной параметр:

index	- номер индекса сопрягающей окружноcти в массиве (допустимое значение от 0 до 7).
Возвращаемое значение:

	координата y первой точки сопряжения.


ksCON::GetX2

Получить координату х второй точки сопряжения.

Синтаксис Automation:

double GetX2 (long index);

Входной параметр:

index	- номер индекса сопрягающей окружноcти в массиве (допустимое значение от 0 до 7).
Возвращаемое значение:

	координата x второй точки сопряжения.


ksCON::GetY2

Получить координату y второй точки сопряжения.

Синтаксис Automation:

double GetY2 (long index);

Входной параметр:

index	- номер индекса сопрягающей окружноcти в массиве (допустимое значение от 0 до 7).
Возвращаемое значение:

	координата y второй точки сопряжения.


Интерфейс ksConicArcParam
ksConicArcParam

Интерфейс параметров конического сечения.

Аналог данных параметров при использовании API экспортных функций - ConicArcParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksConicArcParam::props
ksConicArcParam
свойства

A, B, C, D, E, F

x1, y1

x2, y2

style


ksConicArcParam::methods
ksConicArcParam
методы

Init


ksConicArcParam::A, ksNurbsPointParam::B, ksNurbsPointParam::C, ksNurbsPointParam::D, ksNurbsPointParam::E, ksNurbsPointParam::F
ksConicArcParam::A,
ksConicArcParam::B,
ksConicArcParam::C,
ksConicArcParam::D,
ksConicArcParam::E,
ksConicArcParam::F

Коэффициенты канонического уравнения.

Тип данных - double.

Синтаксис Automation:

A = iConicArcParam.A	Получить свойство (*)
iConicArcParam.A = A	Установить свойство (*)
A = iConicArcParam.GetA()	Получить свойство (**)
iConicArcParam.SetA( A )	Установить свойство (**)


ksConicArcParam::x1,
ksConicArcParam::y1

Координаты начальной точки.

Тип данных - double.

Синтаксис Automation:

x1 = iConicArcParam.x1	Получить свойство (*)
iConicArcParam.x1 = x1	Установить свойство (*)
x1 = iConicArcParam.GetX1()	Получить свойство (**)
iConicArcParam.SetX1( x1 )	Установить свойство (**)


ksConicArcParam::x2,
ksConicArcParam::y2

Координаты конечной точки.

Тип данных - double.

Синтаксис Automation:

x2 = iConicArcParam.x2	Получить свойство (*)
iConicArcParam.x2 = x2	Установить свойство (*)
x2 = iConicArcParam.GetX2()	Получить свойство (**)
iConicArcParam.SetX2( x2 )	Установить свойство (**)


ksConicArcParam::style

Cтиль линии.

Тип данных - long.

Синтаксис Automation:

style = iConicArcParam.style	Получить свойство (*)
iConicArcParam.style = style	Установить свойство (*)
style = iConicArcParam.GetStyle()	Получить свойство (**)
iConicArcParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksConicArcParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры для построения конического сечения.


Интерфейс ksConstraintParam
ksConstraintParam

Интерфейс параметрических связей и ограничений.

Аналог данных параметров при использовании API экспортных функций - ConstraintParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksConstraintParam::props
ksConstraintParam
свойства

constrType

index

partnerIndex

partner


ksConstraintParam::methods
ksConstraintParam
методы

Init


ksConstraintParam::constrType

Тип параметрического ограничения.

Тип данных - short.

Синтаксис Automation:

constrType = iConstraintParam.constrType	Получить свойство (*)
iConstraintParam.constrType = constrType	Установить свойство (*)
constrType = iConstraintParam.GetConstrType()	Получить свойство (**)
iConstraintParam.SetConstrType( constrType )	Установить свойство (**)
Типы параметрических ограничений...


ksConstraintParam::index

Индекс точки на объекте.

Тип данных - long.

Синтаксис Automation:

index = iConstraintParam.index	Получить свойство (*)
iConstraintParam.index = index	Установить свойство (*)
index = iConstraintParam.GetIndex()	Получить свойство (**)
iConstraintParam.SetIndex( index )	Установить свойство (**)
Примечание:

Индексирование точек начинается с 0, у дуги и окружности 0 - центр.


ksConstraintParam::partnerIndex

Индекс точки на втором объекте.

Тип данных - long.

Синтаксис Automation:

partnerIndex = iConstraintParam.partnerIndex	Получить свойство (*)
iConstraintParam.partnerIndex = partnerIndex	Установить свойство (*)
partnerIndex = iConstraintParam.GetPartnerIndex()	Получить свойство (**)
iConstraintParam.SetPartnerIndex( partnerIndex )	Установить свойство (**)
Примечание:

Индексирование точек начинается с 0, у дуги и окружности 0 - центр.


ksConstraintParam::partner

Указатель на второй объект.

Тип данных - long.

Синтаксис Automation:

partner = iConstraintParam.partner	Получить свойство (*)
iConstraintParam.partner = partner	Установить свойство (*)
partner = iConstraintParam.GetPartner()	Получить свойство (**)
iConstraintParam.SetPartner( partner )	Установить свойство (**)


ksConstraintParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksContourParam
ksContourParam

Интерфейс параметров контура.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksContourParam::props
ksContourParam::style

style


ksContourParam::methods
ksContourParam::style

Init


ksContourParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iContourParam.style	Получить свойство (*)
iContourParam.style = style	Установить свойство (*)
style = iContourParam.GetStyle()	Получить свойство (**)
iContourParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksContourParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры контура

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


Интерфейс ksCornerParam
ksCornerParam

Интерфейс параметров скругленных (или усеченных) углов для прямоугольников и правильных многоугольников.

Аналог данных параметров при использовании API экспортных функций - CornerParam.

Свойства...

Методы...

Примечание:

Интерфейс используется для задания скруглений и фасок на определенных углах правильного многоугольника ksRegularPolygonParam и прямоугольника ksRectangleParam.

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCornerParam::props
ksCornerParam
свойства

fillet

index

l1

l2


ksCornerParam::methods
ksCornerParam
методы

Init


ksCornerParam::index

Индекс угла ( 0, 1, 2, .. ).

Тип данных - long.

Синтаксис Automation:

index = iCornerParam.index	Получить свойство (*)
iCornerParam.index = index	Установить свойство (*)
index = iCornerParam.GetIndex()	Получить свойство (**)
iCornerParam.SetIndex( index )	Установить свойство (**)


ksCornerParam::fillet

Признак фаски или скругления.

Тип данных - BOOL.

Значения свойства:

TRUE	- скругление,
FALSE	- фаска.
Синтаксис Automation:

fillet = iCornerParam.fillet	Получить свойство (*)
iCornerParam.fillet = fillet	Установить свойство (*)
fillet = iCornerParam.GetFillet()	Получить свойство (**)
iCornerParam.SetFillet( fillet )	Установить свойство (**)


ksCornerParam::l1

Длина фаски первого сегмента или радиус скругления.

Тип данных - double.

Синтаксис Automation:

l1 = iCornerParam.l1	Получить свойство (*)
iCornerParam.l1 = l1	Установить свойство (*)
l1 = iCornerParam.GetL1()	Получить свойство (**)
iCornerParam.SetL1( l1 )	Установить свойство (**)


ksCornerParam::l2

Длина фаски второго сегмента.

Тип данных - double.

Синтаксис Automation:

l2 = iCornerParam.l2	Получить свойство (*)
iCornerParam.l2 = l2	Установить свойство (*)
l2 = iCornerParam.GetL2()	Получить свойство (**)
iCornerParam.SetL2( l2 )	Установить свойство (**)


ksCornerParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры углов для прямоугольников и многоугольников.


Интерфейс ksCurvePattern
ksCurvePattern

Интерфейс параметров участка штриховой кривой.

Аналог данных параметров при использовании API экспортных функций - CurvePattern.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCurvePattern::props
ksCurvePattern
свойства

visibleSeg

invisibleSeg


ksCurvePattern::methods
ksCurvePattern
методы

Init


ksCurvePattern::visibleSeg

Длина видимого участка линии.

Тип данных - double.

Синтаксис Automation:

visibleSeg = iCurvePattern.visibleSeg	Получить свойство (*)
iCurvePattern.visibleSeg = visibleSeg	Установить свойство (*)
visibleSeg = iCurvePattern.GetVisibleSeg()	Получить свойство (**)
iCurvePattern.SetVisibleSeg( visibleSeg )	Установить свойство (**)


ksCurvePattern::invisibleSeg

Длина невидимого участка линии.

Тип данных - double.

Синтаксис Automation:

invisibleSeg = iCurvePattern.invisibleSeg	Получить свойство (*)
iCurvePattern.invisibleSeg = invisibleSeg	Установить свойство (*)
invisibleSeg = iCurvePattern.GetInvisibleSeg()	Получить свойство (**)
iCurvePattern.SetInvisibleSeg( invisibleSeg )	Установить свойство (**)


ksCurvePattern::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры участка линии.


Интерфейс ksCurvePatternEx
ksCurvePatternEx

Интерфейс параметров участка "расширенной" штриховой кривой.

Аналог данных параметров при использовании API экспортных функций - CurvePatternEx.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCurvePatternEx::props
ksCurvePatternEx
свойства

dх, dy

frwName

invisibleSeg

pictureType

visibleSeg


ksCurvePatternEx::methods
ksCurvePatternEx
методы

GetCurvePicture

Init

SetCurvePicture


ksCurvePatternEx::visibleSeg

Длина видимого участка линии.

Тип данных - double.

Синтаксис Automation:

visibleSeg = iCurvePatternEx.visibleSeg	Получить свойство (*)
iCurvePatternEx.visibleSeg = visibleSeg	Установить свойство (*)
visibleSeg = iCurvePatternEx.GetVisibleSeg()	Получить свойство (**)
iCurvePatternEx.SetVisibleSeg( visibleSeg )	Установить свойство (**)


ksCurvePatternEx::invisibleSeg

Длина невидимого участка линии.

Тип данных - double.

Синтаксис Automation:

invisibleSeg = iCurvePatternEx.invisibleSeg	Получить свойство (*)
iCurvePatternEx.invisibleSeg = invisibleSeg	Установить свойство (*)
invisibleSeg = iCurvePatternEx.GetInvisibleSeg()	Получить свойство (**)
iCurvePatternEx.SetInvisibleSeg( invisibleSeg )	Установить свойство (**)


ksCurvePatternEx::dх,
ksCurvePatternEx::dy

Положение базовой точки (нуля) "картинки" относительно начала образца.

Тип данных - double.

Синтаксис Automation:

dx = iCurvePatternEx.dx	Получить свойство (*)
iCurvePatternEx.dx = dx	Установить свойство (*)
dx = iCurvePatternEx.GetDx()	Получить свойство (**)
iCurvePatternEx.SetDx( dx )	Установить свойство (**)


ksCurvePatternEx::pictureType

Тип картинки.

Тип данных - short.

Значения свойства:

0	- картинка в виде массивов ломаных линий (доступ к массиву с помощью методов ksCurvePatternEx::GetCurvePicture и ksCurvePatternEx::SetCurvePicture),
1	- картинка в виде фрагмента (имя фрагмента-источника задается свойством ksCurvePatternEx::frwName).
Синтаксис Automation:

pictureType = iCurvePatternEx.pictureType	Получить свойство (*)
iCurvePatternEx.pictureType = pictureType	Установить свойство (*)
pictureType = iCurvePatternEx.GetPictureType()	Получить свойство (**)
iCurvePatternEx.SetPictureType( pictureType )	Установить свойство (**)


ksCurvePatternEx::frwName

Имя фрагмента-источника картинки.

Тип данных - строка.

Синтаксис Automation:

frwName = iCurvePatternEx.frwName	Получить свойство (*)
iCurvePatternEx.frwName = frwName	Установить свойство (*)
frwName = iCurvePatternEx.GetFrwName()	Получить свойство (**)
iCurvePatternEx.SetFrwName(frwName)	Установить свойство (**)
Примечание

Картинка в виде фрагмента используется только в методе AddStyle (при создании стиля).

Смотрите также

ksCurvePatternEx::pictureType


ksCurvePatternEx::GetCurvePicture

Получить указатель на интерфейс картинки в виде массивов полилиний ksCurvePicture.

Синтаксис Automation:

LPDISPATCH GetCurvePicture();

Возвращаемое значение:

	указатель на интерфейс ksCurvePicture
Смотрите также

ksCurvePatternEx::pictureType


ksCurvePatternEx::SetCurvePicture

Установить указатель на интерфейс картинки в виде массивов полилиний ksCurvePicture.

Синтаксис Automation:

BOOL SetCurvePicture (LPDISPATCH picture);

Входной параметр:

picture	- указатель на интерфейс ksCurvePicture
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksCurvePatternEx::pictureType


ksCurvePatternEx::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksCurvePicture
ksCurvePicture

Интерфейс параметров "картинки", включаемой в стиль линии.

Аналог данных параметров при использовании API экспортных функций - CurvePicture.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCurvePicture::methods
ksCurvePicture
методы

GetFill

GetPolygon

Init

SetFill

SetPolygon


ksCurvePicture::GetPolygon

Получить указатель на динамический массив ломаных линий, описывающий "картинку" (точки в координатах листа относительно 0 картинки) типа POLYLINE_ARR - ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetPolygon();

Возвращаемое значение:

	указатель на динамический массив типа POLYLINE_ARR ksDynamicArray.
Смотрите также

ksMathPointParam


ksCurvePicture::SetPolygon

Установить указатель на динамический массив ломаных линий, описывающий "картинку" (точки в координатах листа относительно 0 картинки) типа POLYLINE_ARR - ksDynamicArray.

Синтаксис Automation:

BOOL SetPolygon (LPDISPATCH polygon);

Входной параметр:

polygon	- указатель на динамический массив типа POLYLINE_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksMathPointParam


ksCurvePicture::GetFill

Получить указатель на динамический массив, описывающий границу заливки типа POLYLINE_ARR (точки в координатах листа относительно 0 картинки).

Синтаксис Automation:

LPDISPATCH GetFill();

Возвращаемое значение:

	указатель на динамический массив типа POLYLINE_ARR ksDynamicArray.
Смотрите также

ksMathPointParam


ksCurvePicture::SetFill

Установить указатель на динамический массив, описывающий границу заливки типа POLYLINE_ARR (точки в координатах листа относительно 0 картинки).

Синтаксис Automation:

BOOL SetFill (LPDISPATCH fill);

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Входной параметр:

fill	- указатель на динамический массив типа POLYLINE_ARR ksDynamicArray.
Смотрите также

ksMathPointParam


ksCurvePicture::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив polygon типа POLYLINE_ARR.

3. Создается динамический массив fill типа POLYLINE_ARR.


Интерфейс ksCurveStyleParam
ksCurveStyleParam

Интерфейс параметров стиля кривой.

Аналог данных параметров при использовании API экспортных функций - CurveStyleParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCurveStyleParam::props
ksCurveStyleParam
свойства

color

curveType

even

name

paperWidth

screenWidth

widthPen


ksCurveStyleParam::methods
ksCurveStyleParam
методы

GetPPattern

Init

SetPPattern


ksCurveStyleParam::name

Имя стиля.

Тип данных - строка.

Синтаксис Automation:

name = iCurveStyleParam.name	Получить свойство (*)
iCurveStyleParam.name = name	Установить свойство (*)
name = iCurveStyleParam.GetName()	Получить свойство (**)
iCurveStyleParam.SetName( name )	Установить свойство (**)


ksCurveStyleParam::color

Цвет.

Тип данных - long.

Синтаксис Automation:

color = iCurveStyleParam.color	Получить свойство (*)
iCurveStyleParam.color = color	Установить свойство (*)
color = iCurveStyleParam.GetСolor()	Получить свойство (**)
iCurveStyleParam.SetСolor( color )	Установить свойство (**)


ksCurveStyleParam::paperWidth

Толщина линии на бумаге.

Тип данных - double.

Синтаксис Automation:

paperWidth = iCurveStyleParam.paperWidth	Получить свойство (*)
iCurveStyleParam.paperWidth = paperWidth	Установить свойство (*)
paperWidth = iCurveStyleParam.GetPaperWidth()	Получить свойство (**)
iCurveStyleParam.SetPaperWidth( paperWidth )	Установить свойство (**)
Примечание:

Толщина линии, заданная этим свойством, используется, если свойство widthPen установлено в пользовательский тип толщины линии.

При инициализации параметров интерфейса методом Init также устанавливается пользовательский способ задания толщины линии.


ksCurveStyleParam::screenWidth

Толщина линии на экране.

Тип данных - double.

Синтаксис Automation:

screenWidth = iCurveStyleParam.screenWidth	Получить свойство (*)
iCurveStyleParam.screenWidth = screenWidth	Установить свойство (*)
screenWidth = iCurveStyleParam.GetScreenWidth()	Получить свойство (**)
iCurveStyleParam.SetScreenWidth( screenWidth )	Установить свойство (**)
Примечание:

Толщина линии, заданная этим свойством, используется, если свойство widthPen установлено в пользовательский тип толщины линии.

При инициализации параметров интерфейса методом Init также устанавливается пользовательский способ задания толщины линии.


ksCurveStyleParam::widthPen

Способ задания толщины линии.

Тип данных - short.

Значения свойства:

0	- толщина задается пользователем,
1	- толщина как у основной линии,
2	- толщина как у тонкой линии,
3	толщина как у утолщенной линии.
Синтаксис Automation:

widthPen = iCurveStyleParam. widthPen	Получить свойство (*)
iCurveStyleParam. widthPen = widthPen	Установить свойство (*)
widthPen = iCurveStyleParam.GetWidthPen ()	Получить свойство (**)
iCurveStyleParam.SetWidthPen( widthPen )	Установить свойство (**)
Примечание:

Если выбрано задание толщины пользователем, то используются значения толщины линии, заданные свойствами paperWidth и

screenWidth.


ksCurveStyleParam::curveType

Тип кривой

Тип данных - short.

Значения свойства:

0	- сплошная,
1	- прерывистая,
2	- прерывистая, содержащая "картинки".
Синтаксис Automation:

curveType = iCurveStyleParam.curveType	Получить свойство (*)
iCurveStyleParam.curveType = curveType	Установить свойство (*)
curveType = iCurveStyleParam.GetСurveType()	Получить свойство (**)
iCurveStyleParam.SetСurveType( curveType )	Установить свойство (**)
Смотрите также

ksCurveStyleParam::widthPen


ksCurveStyleParam::even

Тип окончания прерывистой кривой.

Тип данных - short.

Значения свойства:

1	- кривая всегда оканчивается штрихами,
0	- кривая оканчивается "как получится".
Синтаксис Automation:

even = iCurveStyleParam.even	Получить свойство (*)
iCurveStyleParam.even = even	Установить свойство (*)
even = iCurveStyleParam.GetEven()	Получить свойство (**)
iCurveStyleParam.SetEven( even )	Установить свойство (**)


ksCurveStyleParam::GetPPattern

Получить (для прерывистой кривой) указатель на динамический массив параметров участков штриховой кривой ksDynamicArray типа CURVE_PATTERN_ARR или CURVE_PATTERN_ARR_EX

Синтаксис Automation:

LPDISPATCH GetPPattern (long type);

Возвращаемое значение:

	указатель на динамический массив ksDynamicArray типа CURVE_PATTERN_ARR или CURVE_PATTERN_ARR_EX.
Примечание:

Типу массива CURVE_PATTERN_ARR соответсвует интерфейс ksCurvePattern.

Типу массива CURVE_PATTERN_ARR_EX соответсвует интерфейс ksCurvePatternEx.

Смотрите также

ksCurveStyleParam::curveType


ksCurveStyleParam::SetPPattern

Установить (для прерывистой кривой) указатель на динамический массив параметров участков штриховой кривой ksDynamicArray типа CURVE_PATTERN_ARR или CURVE_PATTERN_ARR_EX.

Синтаксис Automation:

BOOL SetPPattern (LPDISPATCH pPattern);

Входной параметр:

pPattern	- указатель на динамический массив ksDynamicArray типа CURVE_PATTERN_ARR или CURVE_PATTERN_ARR_EX
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Типу массива CURVE_PATTERN_ARR соответсвует интерфейс ksCurvePattern.

Типу массива CURVE_PATTERN_ARR_EX соответсвует интерфейс ksCurvePatternEx.

Смотрите также

ksCurveStyleParam::curveType


ksCurveStyleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pattern типа CURVE_PATTERN_ARR.


Интерфейс ksCutLineParam
ksCutLineParam

Интерфейс параметров линии разреза/сечения.

Аналог данных параметров при использовании API экспортных функций - CutLineParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksCutLineParam::props
ksCutLineParam
свойства

right

str

style

type

х1, y1

х2, y2


ksCutLineParam::methods
ksCutLineParam
методы

GetpMathPoint

GetpTextline

Init

SetpMathPoint

SetpTextline


ksCutLineParam::style

Стиль текста.

Тип данных - long.

Значения свойства:

номер системного стиля,
номер пользовательского стиля.
Системные стили текстов...

Синтаксис Automation:

style = CutLineParam.style	Получить свойство (*)
iCutLineParam.style = style	Установить свойство (*)
style = iCutLineParam.GetStyle()	Получить свойство (**)
iCutLineParam.SetStyle( style )	Установить свойство (**)


ksCutLineParam::right

Положение стрелок относительно линии разреза/сечения.

Тип данных - short.

Значения свойства:

0	- слева,
1	- справа.
Синтаксис Automation:

right = CutLineParam.right	Получить свойство (*)
iCutLineParam.right = right	Установить свойство (*)
right = iCutLineParam.GetRight()	Получить свойство (**)
iCutLineParam.SetRight( right )	Установить свойство (**)


ksCutLineParam::x1, ksCutLineParam::y1
ksCutLineParam::х1,
ksCutLineParam::y1

Координаты надписи у первого участка линии разреза/сечения.

Тип данных - double.

Синтаксис Automation:

x1 = CutLineParam.x1	Получить свойство (*)
iCutLineParam.x1 = x1	Установить свойство (*)
x1 = iCutLineParam.GetX1()	Получить свойство (**)
iCutLineParam.SetX1( x1 )	Установить свойство (**)


ksCutLineParam::x2, ksCutLineParam::y2
ksCutLineParam::х2,
ksCutLineParam::y2

Координаты надписи у второго участка линии разреза/сечения.

Тип данных - double.

Синтаксис Automation:

x2 = CutLineParam.x2	Получить свойство (*)
iCutLineParam.x2 = x2	Установить свойство (*)
x2 = iCutLineParam.GetX2()	Получить свойство (**)
iCutLineParam.SetX2( x2 )	Установить свойство (**)


ksCutLineParam::type

Способ задания надписи на линии разреза/сечения.

Тип данных - short.

Значения свойства:

0	- текст в виде строки (используется значение свойства ksCutLineParam::str),
1	- динамический массив компонент текста (используется массив pTextline).
Синтаксис Automation:

type = CutLineParam.type	Получить свойство (*)
iCutLineParam.type = type	Установить свойство (*)
type = iCutLineParam.GetType()	Получить свойство (**)
iCutLineParam.SetType(type)	Установить свойство (**)
Смотрите также

ksCutLineParam::SetpTextline,

ksCutLineParam::GetpTextline


ksCutLineParam::str

Текст на линии разреза/сечения.

Тип данных - строка.

Синтаксис Automation:

str = CutLineParam.str	Получить свойство (*)
iCutLineParam.str = str	Установить свойство (*)
str = iCutLineParam.GetStr()	Получить свойство (**)
iCutLineParam.SetStr( str )	Установить свойство (**)
Примечание:

Свойство используется при ksCutLineParam::type = 0 (т.е. при способе задания надписи на линии в виде строки)


ksCutLineParam::GetpTextline

Получить указатель на интерфейс динамического массива компонент текста ksDynamicArray типа TEXT_ITEM_ARR.

Синтаксис Automation:

LPDISPATCH GetpTextline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray компонент текста типа TEXT_ITEM_ARR.
Примечание:

Массив используется при ksCutLineParam::type = 1 (т.е. при способе задания надписи на линии).

Смотрите также

StructTextItemParam


ksCutLineParam::SetpTextline

Установить указатель на интерфейс динамического массива компонент текта ksDynamicArray типа TEXT_ITEM_ARR.

Синтаксис Automation:

BOOL SetpTextline (LPDISPATCH pTextline);

Входной параметр:

pTextline	- указатель на интерфейс динамического массива ksDynamicArray компонент текста типа TEXT_ITEM_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Массив используется при ksCutLineParam::type = 1 (т.е. при способе задания надписи на линии).

Смотрите также

TextItemParam


ksCutLineParam::GetpMathPoint

Получить указатель на интерфейс динамического массива точек ломаной линии ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

LPDISPATCH GetpMathPoint();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа POINT_ARR.
Примечание:

Массив точек ломаной состоит из начальной точки, точек излома и конечной точки.

Смотрите также

ksMathPointParam


ksCutLineParam::SetpMathPoint

Установить указатель на интерфейс динамического массива точек ломаной линии ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

BOOL SetpMathPoint (LPDISPATCH pMathPoint);

Входной параметр:

pMathPoint	- указатель на интерфейс динамического массива ksDynamicArray типа POINT_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Массив точек ломаной состоит из начальной точки, точек излома и конечной точки.

Смотрите также

ksMathPointParam


ksCutLineParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pTextItem типа TEXT_ITEM_ARR.

3. Создается динамический массив pMathPoint типа POINT_ARR.


Интерфейс ksDataBaseObject
ksDataBaseObject

Интерфейс базы данных.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::DataBaseObject.

Смотрите также

KompasObject


ksDataBaseObject::methods
ksDataBaseObject
методы

ksCloseTextFile

ksCondition

ksConnectDB

ksCreateDB

ksDeleteDB

ksDisconnectDB

ksDoStatement

ksEndRelation

ksFreeStatement

ksGetColumnName

ksGetTableName

ksIsODBCOkey

ksOpenTextFile

ksRChar

ksRDouble

ksReadRecord

ksReadStrFrFile

ksRelation

ksRFloat

ksRInt

ksRLong


ksDataBaseObject::ksRelation

Создать новое отношение.

Аналог данного метода при использовании API экспортных функций - Relation.

Синтаксис Automation:

long ksRelation (long db);

Входной параметр:

db	- указатель на объект БД.
Возвращаемое значение:

указатель на отношение	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Отношение характеризует один запрос и представляет собой описание памяти, необходимой для размещения очередной записи выборки, выполняемого функцией ksDataBaseObject::ksReadRecord. Является составным объектом, каждое поле которого описывает тип и имя поля (колонки) в таблице базы данных. Имя действительно только в случае работы с текстовым файлом, так как при обмене через ODBC-интерфейс имена уже описаны в блоке заголовка.

Количество отношений, определенных для базы данных, не ограничивается.


ksDataBaseObject::ksEndRelation

Завершить описание отношения.

Аналог данного метода при использовании API экспортных функций - EndRelation.

Синтаксис Automation:

BOOL ksEndRelation();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание :

Описание отношения начинается методом ksDataBaseObject::ksRelation.


ksDataBaseObject::ksDeleteDB

Удалить блок заголовка базы данных.

Аналог данного метода при использовании API экспортных функций - DeleteDB.

Синтаксис Automation:

long ksDeleteDB(long db);

Входной параметр:

db	- указатель на объект БД.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Происходит автоматическое отсоединение базы данных и удаление всех созданных ранее запросов.


ksDataBaseObject::ksConnectDB

Связать объект БД с конкретной базой данных.

Аналог данного метода при использовании API экспортных функций - ConnectDB.

Синтаксис Automation:

long ksConnectDB (long db,

BSTR DBName);

Входные параметры:

db	- указатель на объект БД,
DBName	- имя БД (для ODBC - имя БД в администраторе ODBC, для текстового файла - имя файла).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDataBaseObject::ksDisconnectDB

Отключиться от базы данных.

Аналог данного метода при использовании API экспортных функций - DisconnectDB.

Синтаксис Automation:

long ksDisconnectDB (long db);

Входной параметр:

db	- указатель на объект БД.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция отсоединяет блок заголовка с указателем bd от базы данных.

Следует отметить, что при удалении блока заголовка (функция ksDataBaseObject::ksDeleteDB) отсоединение выполняется автоматически, поэтому использовать ее рекомендуется только при переопределении базы данных.


ksDataBaseObject::ksFreeStatement

Освободить отношения.

Аналог данного метода при использовании API экспортных функций - FreeStatement.

Синтаксис Automation:

long ksFreeStatement (long db,

long r,

long fOption);

Входные параметры:

db	- указатель на объект БД,
r	- указатель на отношение,
fOption	- тип освобождения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Происходит освобождение памяти, отведенной для буфера записи функцией ksDataBaseObject::ksRelation.

Параметр fOption имеет значение при работе через ODBC-интерфейс и означает тип освобождения (описан в помощи модуля ODBC).


ksDataBaseObject::ksDoStatement

Установить запрос для объекта БД.

Аналог данного метода при использовании API экспортных функций - DoStatement.

Синтаксис Automation:

long ksDoStatement (long db,

long r,

BSTR stSQL);

Входные параметры:

db	- указатель на объект БД,
r	- действительный указатель на отношение,
stSQL	- запрос.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр stSQL при работе через ODBC-интерфейс содержит строку SQL-запроса, а при работе с текстовыми файлами - номера полей (колонок) или пустую строку (если обрабатываются все поля таблицы).

Для текстовых баз данных созданный запрос будет обрабатывать все записи, а непосредственно условие выборки определяется функцией ksDataBaseObject::ksCondition.

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

Примеры:

Select d, s, p from bolt where d = 10 - пример запроса выборки из БД,
где d, s, p - названия колонок или * для всех колонок или номера колонок "2, 4, 7" для текстового файла, начиная с единицы слева направо,
bolt - имя таблицы в БД или пустая строка для всех колонок текстового файла,
d - имя колонки в отношении.

Insert into bolt (d,p,s) values( 10, 1.5, 14 ) - пример запроса для вставки строки в таблицу,
где bolt - имя таблицы в БД или пустая строка для всех колонок текстового файла.

Delete from bolt where d = 10 - пример запроса для удаления строки из таблицы bolt.

Update bolt set p = 2.5, s = 20 where d =10 - пример запроса для замены данных в строке таблицы bolt.


ksDataBaseObject::ksReadRecord

Получить запись базы данных.

Аналог данного метода при использовании API экспортных функций - ReadRecord.

Синтаксис Automation:

long ksReadRecord (long db,

long r,

LPDISPATCH userPars);

Входные параметры:

db	- указатель на объект БД,
r	- указатель на отношение,
userPars	- указатель на интерфейс ksUserParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Количество и типы полей в структуре userPars должны соответствовать отношению r.


ksDataBaseObject::ksCondition

Задать или изменить условие запроса.

Аналог данного метода при использовании API экспортных функций - Condition.

Синтаксис Automation:

long ksCondition (long db,

long r,

BSTR stSQL);

Входные параметры:

db	- указатель на объект БД,
r	- указатель на отношение,
stSQL	- запрос.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При работе с базой данных через ODBC-интерфейс происходит переопределение составляющей SQL-запроса, начинающейся с ключевого слова WHERE. Состав обрабатываемых полей записи, определенный в отношении, не изменяется.

При работе с текстовыми файлами использование функции ksDataBaseObject::ksCondition является единственной возможностью определения условия запроса, так как в функции ksDataBaseObject::ksDoStatement определяется только список обрабатываемых полей записи.

Следует отметить, что при работе с текстовыми базами данных не обрабатывается вложенность условий (например, "where d > 10 and d < 14").


ksDataBaseObject::ksRDouble

Определить в отношении поле типа double.

Аналог данного метода при использовании API экспортных функций - RDouble.

Синтаксис Automation:

long ksRDouble (BSTR name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


ksDataBaseObject::ksRFloat

Определить в отношении поле типа float.

Аналог данного метода при использовании API экспортных функций - RFloat.

Синтаксис Automation:

long ksRFloat (BSTR name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


ksDataBaseObject::ksRInt

Определить в отношении поле типа short.

Аналог данного метода при использовании API экспортных функций - RInt.

Синтаксис Automation:

long ksRInt (BSTR name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


ksDataBaseObject::ksRLong

Определить в отношении поле типа long.

Аналог данного метода при использовании API экспортных функций - RLong.

Синтаксис Automation:

long ksRLong (BSTR name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


ksDataBaseObject::ksRChar

Определить в отношении строковое поле.

Аналог данного метода при использовании API экспортных функций - RChar.

Синтаксис Automation:

long ksRChar (BSTR name,

long size,

long type);

Входные параметры:

name	- имя колонки таблицы.
size	- размер буфера,
type	- тип данных, хранящихся в БД (действительно для ODBC-баз).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен при работе с текстовой базой данных.

Параметр type имеет смысл только для баз данных, связанных через ODBC, и описывает действительный тип колонки базы данных, с которой будет связано поле при выполнении операции ksDataBaseObject::ksDoStatement. Это позволяет получать строковое представление записи произвольного типа. Описания типов для ODBC хранятся в файле SQL.h, который поставляется вместе с модулями ODBC.


ksDataBaseObject::ksOpenTextFile

Открыть текстовый файл запросов.

Аналог данного метода при использовании API экспортных функций - OpenTextFile.

Синтаксис Automation:

long ksOpenTextFile (BSTR fileName);

Входной параметр:

fileName	- имя файла.
Возвращаемое значение:

указатель на открытый файл	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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

Функция работает по правилам стандартной процедуры WINDOWS OpenFile.

Реализованные в рамках данного раздела функции работы с текстовыми файламио беспечивают их построчную обработку и позволяют вынести обращения к базе данных во внешний текстовый файл. Это дает возможность работать с разными платформами СУБД без изменения выполняемого кода приложения.


ksDataBaseObject::ksCloseTextFile

Закрыть текстовый файл запросов.

Аналог данного метода при использовании API экспортных функций - CloseTextFile.

Синтаксис Automation:

BOOL ksCloseTextFile (long F);

Входной параметр:

F	- указатель на текстовый файл.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDataBaseObject::ksReadStrFrFile

Считать строку из текстового файла запросов.

Аналог данного метода при использовании API экспортных функций - ReadStrFromTextFile.

Синтаксис Automation:

BSTR ksReadStrFrFile (long f,

long* res,

long numb);

Входные параметры:

f	- указатель на текстовый файл,
numb	- номер строки.
Выходной параметр:

res	- результат работы метода: 1 - в случае успешного завершения, 0 - в случае неудачи.
Возвращаемое значение:

	строка обращения к базе данных.
Примечание:

Строка обращения к базе данных начинается с номера, далее после двоеточия идет текст обращения, например:

3:select d,f from Table1 where d=10 and f>d


ksDataBaseObject::ksGetTableName

Считать имя таблицы.

Аналог данного метода при использовании API экспортных функций - GetTableName.

Синтаксис Automation:

BSTR ksGetTableName (long db,

long* res,

BSTR firstOrNext);

Входные параметры:

db	- указатель на объект БД,
firstOrNext	- признак таблицы: F - первая таблица,  N - следующая таблица.
Выходной параметр:

res	- результат работы: 1- если в указанной базе еще существуют несчитанные имена таблиц, 0 - если все имена таблиц считаны.
Возвращаемое значение:

	имя таблицы.


ksDataBaseObject::ksGetColumnName

Считать имя колонки таблицы из базы данных.

Аналог данного метода при использовании API экспортных функций - GetColumnName.

Синтаксис Automation:

BSTR ksGetColumnName (long db,

BSTR tableName,

long* res,

BSTR firstOrNext);

Входные параметры:

db	- указатель на объект БД,
tableName	- ODBC - имя таблицы, текстовая БД - имя файла,
firstOrNext	- признак колонки: F - первая колонка,  N - следующая колонка.
Выходной параметр:

res	- результат работы: 1 - если в указанной таблице или базе еще существуют несчитанные имена колонок, 0 - если все имена колонок считаны.
Возвращаемое значение:

	имя колонки.
Примечание:

Для текстовых БД возвращаются номера колонок.


ksDataBaseObject::ksIsODBCOkey

Проверить подключение ODBC.

Аналог данного метода при использовании API экспортных функций - IsODBCOkey.

Синтаксис Automation:

long ksIsODBCOkey();

Возвращаемое значение:

1	- если соединение с ODBC установлено,
0	- если соединения нет.


ksDataBaseObject::ksCreateDB

Создать объект базы данных.

Синтаксис Automation:

long ksCreateDB (BSTR typeBD);

Входной параметр:

typeBD	- тип базы данных: TXT_DB - текстовый файл,  ODBC_DB - ODBC-база.
Возвращаемое значение:

указатель на блок заголовка базы данных	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Одновременно может существовать сколько угодно объектов баз.


Интерфейс ksDimensionPartsParam
ksDimensionPartsParam

Интерфейс параметров составляющих объектов размера.

Аналог данных параметров при использовании API экспортных функций - DimensionPartsParam.

Свойства...

Методы...

Примечания:

1. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

2. Данный интерфейс содержит указатели на все составляющие размера. Для их получения "рассыпается" копия размера в памяти. Размер в документе остается единым объектом.

Смотрите также

KompasObject


ksDimensionPartsParam::props
ksDimensionPartsParam
свойства

curveExt

dimLine1

dimLine

gr

leg

line1

line2

shelf


ksDimensionPartsParam::methods
ksDimensionPartsParam
методы

Init


ksDimensionPartsParam::line1

Указатель на первую выносную линию.

Тип данных - long.

Синтаксис Automation:

line1 = iDimensionPartsParam.line1	Получить свойство (*)
iDimensionPartsParam.line1 = line1	Установить свойство (*)
line1 = iDimensionPartsParam.GetLine1()	Получить свойство (**)
iDimensionPartsParam.SetLine1( line1 )	Установить свойство (**)


ksDimensionPartsParam::line2

Указатель на вторую выносную линию.

Тип данных - long.

Синтаксис Automation:

line2 = iDimensionPartsParam.line2	Получить свойство (*)
iDimensionPartsParam.line2 = line2	Установить свойство (*)
line2 = iDimensionPartsParam.GetLine2()	Получить свойство (**)
iDimensionPartsParam.SetLine2( line2 )	Установить свойство (**)


ksDimensionPartsParam::dimLine

Указатель на размерную линию.

Тип данных - long.

Синтаксис Automation:

dimLine = iDimensionPartsParam.dimLine	Получить свойство (*)
iDimensionPartsParam.dimLine = dimLine	Установить свойство (*)
dimLine = iDimensionPartsParam.GetDimLine()	Получить свойство (**)
iDimensionPartsParam.SetDimLine( dimLine )	Установить свойство (**)


ksDimensionPartsParam::dimLine1

Указатель на продолжение размерной линии.

Тип данных - long.

Синтаксис Automation:

dimLine1 = iDimensionPartsParam.dimLine1	Получить свойство (*)
iDimensionPartsParam.dimLine1 = dimLine1	Установить свойство (*)
dimLine1 = iDimensionPartsParam.GetDimLine1()	Получить свойство (**)
iDimensionPartsParam.SetDimLine1( dimLine1 )	Установить свойство (**)


ksDimensionPartsParam::leg

Указатель на "ножку" выносной полки.

Тип данных - long.

Синтаксис Automation:

leg = iDimensionPartsParam.leg	Получить свойство (*)
iDimensionPartsParam.leg = leg	Установить свойство (*)
leg = iDimensionPartsParam.GetLeg()	Получить свойство (**)
iDimensionPartsParam.SetLeg( leg )	Установить свойство (**)


ksDimensionPartsParam::shelf

Указатель на выносную полку.

Тип данных - long.

Синтаксис Automation:

shelf = iDimensionPartsParam.shelf	Получить свойство (*)
iDimensionPartsParam.shelf = shelf	Установить свойство (*)
shelf = iDimensionPartsParam.GetShelf()	Получить свойство (**)
iDimensionPartsParam.SetShelf( shelf )	Установить свойство (**)


ksDimensionPartsParam::gr

Указатель на временную группу всех объектов размера, включая тексты.

Тип данных - long.

Синтаксис Automation:

gr = iDimensionPartsParam.gr	Получить свойство (*)
iDimensionPartsParam.gr = gr	Установить свойство (*)
gr = iDimensionPartsParam.GetGr()	Получить свойство (**)
iDimensionPartsParam.SetGr( gr )	Установить свойство (**)


ksDimensionPartsParam::curveExt

Указатель на продолжение базовой кривой (у радиального размера дуги) или линию-"указатель", проведенную от размерной надписи к дуге (у размера дуги).

Тип данных - long.

Синтаксис Automation:

curveExt = iDimensionPartsParam.curveExt	Получить свойство (*)
iDimensionPartsParam.curveExt = curveExt	Установить свойство (*)
curveExt = iDimensionPartsParam.GetCurveExt()	Получить свойство (**)
iDimensionPartsParam.SetCurveExt( curveExt )	Установить свойство (**)


ksDimensionPartsParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры объектов размера.


Интерфейс ksDimensionsOptions
ksDimensionsOptions

Интерфейс параметров настроек размеров.

Аналог данных параметров при использовании API экспортных функций - DimensionsOptions.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksDimensionsOptions::props
ksDimensionsOptions
свойства

anglePrecisionLevel

arrowLength

decimalsCount

dimLineExtension

hiddenToleranceNumber

proLineExtension

style

textDistanceFromDimLine

textDistanceFromProLine


ksDimensionsOptions::methods
ksDimensionsOptions
методы

Init


ksDimensionsOptions::proLineExtension

Выход выносных линий за размерную линию.

Тип данных - double.

Синтаксис Automation:

proLineExtension = iDimensionsOptions.proLineExtension	Получить свойство (*)
iDimensionsOptions.proLineExtension = proLineExtension	Установить свойство (*)
proLineExtension = iDimensionsOptions.GetProLineExtension()	Получить свойство (**)
iDimensionsOptions.SetProLineExtension(proLineExtension)	Установить свойство (**)


ksDimensionsOptions::textDistanceFromDimLine

Расстояние от размерной линии до текста.

Тип данных - double.

Синтаксис Automation:

textDistanceFromDimLine = iDimensionsOptions.textDistanceFromDimLine	Получить свойство (*)
iDimensionsOptions.textDistanceFromDimLine = textDistanceFromDimLine	Установить свойство (*)
textDistanceFromDimLine = iDimensionsOptions.GetTextDistanceFromDimLine()	Получить свойство (**)
iDimensionsOptions.SetTextDistanceFromDimLine(textDistanceFromDimLine)	Установить свойство (**)


ksDimensionsOptions::textDistanceFromProLine

Расстояние от выносных линий до текста.

Тип данных - double.

Синтаксис Automation:

textDistanceFromProLine = iDimensionsOptions.textDistanceFromProLine	Получить свойство (*)
iDimensionsOptions.textDistanceFromProLine = textDistanceFromProLine	Установить свойство (*)
textDistanceFromProLine = iDimensionsOptions.GetTextDistanceFromProLine()	Получить свойство (**)
iDimensionsOptions.SetTextDistanceFromProLine(textDistanceFromProLine)	Установить свойство (**)


ksDimensionsOptions::dimLineExtension

Выход размерной линии за текст.

Тип данных - double.

Синтаксис Automation:

dimLineExtension = iDimensionsOptions.dimLineExtension	Получить свойство (*)
iDimensionsOptions.dimLineExtension = dimLineExtension	Установить свойство (*)
dimLineExtension = iDimensionsOptions.GetDimLineExtension()	Получить свойство (**)
iDimensionsOptions.SetDimLineExtension(dimLineExtension)	Установить свойство (**)


ksDimensionsOptions::arrowLength

Длина стрелки.

Тип данных - double.

Синтаксис Automation:

arrowLength = iDimensionsOptions.arrowLength	Получить свойство (*)
iDimensionsOptions.arrowLength = arrowLength	Установить свойство (*)
arrowLength = iDimensionsOptions.GetArrowLength()	Получить свойство (**)
iDimensionsOptions.SetArrowLength( arrowLength )	Установить свойство (**)


ksDimensionsOptions::style

Стиль текста.

Тип данных - long.

Синтаксис Automation:

style = iDimensionsOptions.style	Получить свойство (*)
iDimensionsOptions.style = style	Установить свойство (*)
style = iDimensionsOptions.GetStyle()	Получить свойство (**)
iDimensionsOptions.SetStyle( style )	Установить свойство (**)
Системные стили текста...


ksDimensionsOptions::decimalsCount

Количество знаков после запятой (от 0 до 9).

Тип данных - short.

Синтаксис Automation:

decimalsCount = iDimensionsOptions.decimalsCount	Получить свойство (*)
iDimensionsOptions.decimalsCount = decimalsCount	Установить свойство (*)
decimalsCount = iDimensionsOptions.GetDecimalsCount()	Получить свойство (**)
iDimensionsOptions.SetDecimalsCount( decimalsCount )	Установить свойство (**)


ksDimensionsOptions::anglePrecisionLevel

Точность углового размера

Тип данных - long.

Значения свойства:

0	- градусы,
1	- минуты,
2	- секунды.
Синтаксис Automation:

anglePrecisionLevel = iDimensionsOptions.anglePrecisionLevel	Получить свойство (*)
iDimensionsOptions.anglePrecisionLevel = anglePrecisionLevel	Установить свойство (*)
anglePrecisionLevel = iDimensionsOptions.GetAnglePrecisionLevel()	Получить свойство (**)
iDimensionsOptions.SetAnglePrecisionLevel(anglePrecisionLevel)	Установить свойство (**)


ksDimensionsOptions::hiddenToleranceNumber

Квалитет.

Тип данных - long.

Значения свойства:

-1	- не включен,
число от 1 до 17	- максимальный номер показываемого квалитета.
Синтаксис Automation:

hiddenToleranceNumber = iDimensionsOptions.hiddenToleranceNumber	Получить свойство (*)
iDimensionsOptions.hiddenToleranceNumber = hiddenToleranceNumber	Установить свойство (*)
hiddenToleranceNumber = iDimensionsOptions.GetHiddenToleranceNumber()	Получить свойство (**)
iDimensionsOptions.SetHiddenToleranceNumber(hiddenToleranceNumber)	Установить свойство (**)


ksDimensionsOptions::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры настроек размеров.


Интерфейс ksDimTextParam
ksDimTextParam

Интерфейс параметров размерной надписи.

Аналог данных параметров при использовании API экспортных функций - DimText.

Свойства...

Методы...

Примечание:

1. Строки в pText должны лежать в последовательности с учетом включения битовых флагов в bitFlag: текст перед номиналом, номинал, квалитет, верхнее отклонение, нижнее отклонение, единицы измерения, текст после размера, последующие строки.

2. Верхнее отклонение, нижнее отклонение принимаются, если флаг TOLERANCE не включен, а DEVIATION включен (это признак ручной простановки отклонений).

3. Для функции GetObjParam нужно получить флаг stringFlag. Если он равен нулю, выдается динамический массив строк символов.

4. Динамический массив TEXT_LINE_ARR содержит структуру TextLineParam.

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksDimTextParam::props
ksDimTextParam
свойства

bitFlag

sign

stringFlag

style


ksDimTextParam::methods
ksDimTextParam
методы

GetBitFlagValue

GetTextArr

Init

SetBitFlagValue

SetTextArr


ksDimTextParam::style

Стиль текста размера.

Тип данных - long.

Значения свойства:

номер системного стиля,
номер пользовательского стиля.
Синтаксис Automation:

style = iDimText.style	Получить свойство (*)
iDimText.style = style	Установить свойство (*)
style = iDimText.GetStyle()	Получить свойство (**)
iDimText.SetStyle( style )	Установить свойство (**)
Системные стили текста...


ksDimTextParam::sign

Тип условного значка перед номиналом размера.

Тип данных - long.

Значения свойства:

0	- нет значка,
1	- диаметр,
2	- квадрат,
3	- радиус,
>3	- номер значка из шрифта "Symbol type A".
Синтаксис Automation:

sign = iDimText.sign	Получить свойство (*)
iDimText.sign = sign	Установить свойство (*)
sign = iDimText.GetSign()	Получить свойство (**)
iDimText.SetSign( sign )	Установить свойство (**)


ksDimTextParam::stringFlag

Тип используемого массива строк.

Тип данных - BOOL.

Значения свойства:

FALSE	- тип CHAR_STR_ARR - динамический массив строк символов,
TRUE	- тип TEXT_LINE_ARR - динамический массив строк текста.
Синтаксис Automation:

stringFlag = iDimText.stringFlag	Получить свойство (*)
iDimText.stringFlag = stringFlag	Установить свойство (*)
stringFlag = iDimText.GetStringFlag()	Получить свойство (**)
iDimText.SetStringFlag( stringFlag )	Установить свойство (**)
Примечание:

Для функции ksDocument2D::ksGetObjParam нужно определить свойство stringFlag.

Смотрите также

ksDimTextParam::SetTextArr

ksDimTextParam::GetTextArr


ksDimTextParam::bitFlag

Признак, определяющий ручное задание размерной надписи или набор битовых полей, задающих признаки размерной надписи.

Тип данных - long.

Значения свойства:

0	- ручное задание размерной надписи,
>0	- набор битовых полей, задающих признаки размерной надписи.
Синтаксис Automation:

bitFlag = iDimText.bitFlag	Получить свойство (*)
iDimText.bitFlag = bitFlag	Установить свойство (*)
bitFlag = iDimText.GetBitFlag()	Получить свойство (**)
iDimText.SetBitFlag( bitFlag )	Установить свойство (**)


ksDimTextParam::GetBitFlagValue

Получить значение одного из флагов признака bitFlag.

Синтаксис Automation:

BOOL GetBitFlagValue (long bitFlag);

Входной параметр:

bitFlag	- битовый флаг, характеризующий определенный признак размерной надписи.
Возвращаемое значение:

TRUE	- данный битовый флаг включен,
FALSE	- данный битовый флаг выключен.


ksDimTextParam::SetBitFlagValue

Установить значение одного из флагов признака bitFlag.

Синтаксис Automation:

BOOL SetBitFlagValue (long bitFlag,

BOOL state);

Входные параметры:

bitFlag	- битовый флаг, характеризующий определенный признак размерной надписи,
state	- состояние указанного битового флага:  TRUE - включен,  FALSE - выключен.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksDimTextParam::GetTextArr

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

Синтаксис Automation:

LPDISPATCH GetTextArr();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray строк типа CHAR_STR_ARR или TEXT_LINE_ARR.
Смотрите также

ksTextLineParam


ksDimTextParam::SetTextArr

Установить динамический массив параметров строк.

Синтаксис Automation:

BOOL SetTextArr (LPDISPATCH pText);

Входной параметр:

pText	- указатель на интерфейс динамического массива ksDynamicArray строк типа CHAR_STR_ARR или TEXT_LINE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksTextLineParam


ksDimTextParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init(BOOL stringFlag);

Входной параметр:

stringFlag	- признак типа создаваемого массива строк: TRUE - создается динамический массив строк текста типа TEXT_LINE_ARR, FALSE - создается динамический массив строк текста типа CHAR_STR_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры размерной надписи.


Интерфейс ksDocAttachedSpcParam
 ksDocAttachedSpcParam

Интерфейс параметров документа, подключенного к объекту спецификации.

Аналог данных параметров при использовании API экспортных функций - DocAttachedSpcParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksDocAttachedSpcParam::props
ksDocAttachedSpcParam
свойства

comment

fileName

transmit


ksDocAttachedSpcParam::methods
ksDocAttachedSpcParam
методы

Init


ksDocAttachedSpcParam::fileName

Имя файла подключенного документа.

Тип данных - строка.

Синтаксис Automation:

fileName = iDocAttachedSpcParam.fileName	Получить свойство (*)
iDocAttachedSpcParam.fileName = fileName	Установить свойство (*)
fileName = iDocAttachedSpcParam.GetFileName()	Получить свойство (**)
iDocAttachedSpcParam.SetFileName( fileName )	Установить свойство (**)


ksDocAttachedSpcParam::comment

Комментарий к подключенному документу.

Тип данных - строка.

Синтаксис Automation:

comment = iDocAttachedSpcParam. comment	Получить свойство (*)
iDocAttachedSpcParam. comment = comment	Установить свойство (*)
comment = iDocAttachedSpcParam.GetComment()	Получить свойство (**)
iDocAttachedSpcParam.SetComment(comment)	Установить свойство (**)


ksDocAttachedSpcParam::transmit

Признак передачи изменений объекта спецификации в подключенный к нему документ.

Тип данных - long.

Значения свойства:

1	- передавать изменения,
0	- не передавать изменения.
Синтаксис Automation:

transmit = iDocAttachedSpcParam.transmit	Получить свойство (*)
iDocAttachedSpcParam.transmit = transmit	Установить свойство (*)
transmit = iDocAttachedSpcParam.GetTransmit()	Получить свойство (**)
iDocAttachedSpcParam.SetTransmit(transmit)	Установить свойство (**)


ksDocAttachedSpcParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры документа, подключенного к объекту спецификации.


Интерфейс ksDocument2D
ksDocument2D

Интерфейс графического документа системы КОМПАС.

Свойства...

Методы...

События...


ksDocument2D::properties
ksDocument2D
свойства

reference

orthoMode


ksDocument2D::methods
ksDocument2D
методы

GetStamp

GetDocument2DNotify

GetFragment

GetObject2DNotify

GetObject2DNotifyResult

GetSelectionMngNotify

GetSpecification

GetStamp

ksAddObjectToMacro

ksAddObjGroup

ksAddPowerForm

ksAddStyle

ksAngBreakDimension

ksAngDimension

ksAnnArcByPoint

ksAnnLineSeg

ksApproximationCurve

ksArcBy3Points

ksArcByAngle

ksArcByPoint

ksAssociationViewMatrix3D

ksAxisLine

ksBase

ksBezier

ksBezierPoint

ksBrandLeader

ksCalcRasterScale

ksCentreMarker

ksChangeObjectInLibRequest

ksChangeObjectLayer

ksChangeObjectsOrder

ksCircle

ksClearGroup

ksClearRegion

ksClearTableColumnText

ksCloseDocument

ksCloseTechnicalDemand

ksColouring

ksColouringEx

ksColumnNumber

ksCombineTwoTableItems

ksCommandWindow

ksConicArc

ksContour

ksConvertTextToCurve

ksCopyObjEx

ksCopyObj

ksCreateDocument

ksCreatePowerArc

ksCreateSheetArbitraryView

ksCreateSheetArrowView

ksCreateSheetProjectionView

ksCreateSheetRemoteView

ksCreateSheetSectionView

ksCreateSheetStandartViews

ksCreateSheetView

ksCreateViewObject

ksCursor

ksCursorEx

ksCutLine

ksDecomposeObj

ksDeleteMtr

ksDeleteObj

ksDeleteStyleFromDocument

ksDestroyObjConstraint

ksDestroyObjects

ksDiamDimension

ksDivideTableItem

ksDrawKompasDocument

ksDrawKompasGroup

ksDuplicateBoundaries

ksEditMacroMode

ksEditViewObject

ksEllipseArc

ksEllipse

ksEndGroup

ksEndObj

ksEquidistant

ksExcludeObjGroup

ksExistGroupObj

ksExistObj

ksFindObj

ksGetCursorLimit

ksGetCursorPosition

ksGetDimensionVariableName

ksGetDocOptions

ksGetDocumentType

ksGetDocVariableArray

ksGetGroup

ksGetGroupName

ksGetLayerNumber

ksGetLayerReference

ksGetLeaderShelfLength

ksGetMacroParam

ksGetMacroParamSize

ksGetMacroPlacement

ksGetMacroWaitDblClickEdit

ksGetObjConstraints

ksGetObjGabaritRect

ksGetObjParam

ksGetPointOnToleranceTable

ksGetReferenceDocumentPart

ksGetStyleParam

ksGetTableBorderStyle

ksGetTableColumnText

ksGetTableItemsCount

ksGetTextAlign

ksGetTextLengthFromReference

ksGetTextLength

ksGetToleranceColumnText

ksGetViewNumber

ksGetViewObjCount

ksGetViewReference

ksGetZona

ksGetZoomScale

ksHatchByParam

ksHatch

ksInitFilePreviewFunc

ksInsertRaster

ksIsActiveProcessRunnig

ksIsCursorOrPlacementDocument

ksIsCurveClosed

ksIsPointInsideContour

ksIsStyleInDocument

ksKeepReference

ksLayer

ksLeader

ksLengthFromMtr

ksLengthIntoMtr

ksLightObj

ksLinBreakDimension

ksLinDimension

ksLine

ksLineSeg

ksMacro

ksMakeEncloseContours

ksMarkerLeader

ksMoveObj

ksMovePoint

ksMtr

ksNewGroup

ksNewViewNumber

ksNurbsForConicCurve

ksNurbsKnot

ksNurbs

ksNurbsPoint

ksOpenDocument

ksOpenMacro

ksOpenTable

ksOpenTechnicalDemand

ksOpenTolerance

ksOpenView

ksOrdinatedDimension

ksParagraph

ksParEllipseArc

ksPhantomShowHide

ksPlacement

ksPlacementEx

ksPoint3DToAssociationView

ksPointArraw

ksPointFromMtr

ksPointIntoMtr

ksPoint

ksPolylineByParam

ksPolyline

ksPositionLeader

ksRadBreakDimension

ksRadDimension

ksReadGroupFromClip

ksReadTableFromFile

ksRebuildDocument

ksRebuildTableVirtualGrid

ksRectangle

ksReDrawDocPart

ksRegularPolygon

ksReleaseReference

ksRemoteElement

ksRotateObj

ksRough

ksSaveDocument

ksSaveGroup

ksSelectGroup

ksSetDocOptions

ksSetDocVariableArray

ksSetMacroParam

ksSetMacroPlacement

ksSetMacroWaitDblClickEdit

ksSetMaterialParam

ksSetObjConstraint

ksSetObjParam

ksSetTableBorderStyle

ksSetTableColumnText

ksSetTextAlign

ksSetTextLineAlign

ksSetToleranceColumnText

ksSheetToView

ksSpecificationOnSheet

ksSpecRough

ksStoreTmpGroup

ksSymmetryObj

ksTable

ksText

ksTextEx

ksTextLine

ksTolerance

ksTransformObj

ksTrimCurve

ksTrimNurbs

ksViewGetObjectArea

ksViewPointer

ksViewToSheet

ksWriteGroupToClip

ksZoom

ksZoomPrevNextOrAll

ksZoomScale

RasterFormatParam

SaveAsToRasterFormat

SaveAsToUncompressedRasterFormat


ksDocument2D::orthoMode

Режим ортогонального черчения.

Тип данных - VARIANT_BOOL.

orthoMode = iDocument2D.orthoMode	Получить свойство (*)
iDocument2D.lookStyle = orthoMode	Установить свойство (*)
orthoMode = iDocument2D.GetOrthoMode()	Получить свойство (**)
iDocument2D.SetOrthoMode(orthoMode)	Установить свойство (**)
Примечание:

Используется только для визуальных документов.


ksDocument2D::reference

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

Тип данных - long.

Синтаксис Automation:

ref = iDocument2D.reference	Получить свойство (*)
iDocument2D.reference = ref	Установить свойство (*)
ref = iDocument2D.GetReference()	Получить свойство (**)
iDocument2D.SetReference(ref)	Установить свойство (**)


ksDocument2D::ksSetMacroWaitDblClickEdit

Изменить режим ожидания DblClick при редактировании макрообъекта.

Аналог данного метода при использовании API экспортных функций - ksSetMacroWaitDblClickEdit.

Синтаксис Automation:

long ksSetMacroWaitDblClickEdit (reference ref, long waitDblClick);

Входные параметры:

ref	- указатель на макроэлемент,
waitDblClick	- режим ожидания DblClick (1 - включить, 0 - выключить).
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.
Примечание:

Макрообъект созданный библиотекой может редактироваться двумя способами:
- по первому клику мыши - через характерные точки и\или интерфейс внешних воздействий;
- по двойному клику - через команду библиотеки.

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

При выключенном режиме ожидания DblClick пауза отсутствует и нажатие всегда интерпретируется как одинарное нажатие.


ksDocument2D::ksCalcRasterScale

Рассчитать масштаб для вставки растра в прямоугольник заданных габаритов.

Аналог данного метода при использовании API экспортных функций - ksCalcRasterScale.

Синтаксис Automation:

double ksCalcRasterScale (BSTR fileName, double w, double h);

Входные параметры:

fileName	- полный путь к файлу растра,
w	- ширина габаритного прямоугольника,
h	- масштаб, с которым нужно выводить документ.
Возвращаемое значение:

массштаб для вставки растра в прямоугольник,	- в случае успеха,
0	- в случае неудачи.
Примечание:

Макрообъект созданный библиотекой может редактироваться двумя способами:
- по первому клику мыши - через характерные точки и\или интерфейс внешних воздействий;
- по двойному клику - через команду библиотеки.

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

При выключенном режиме ожидания DblClick пауза отсутствует и нажатие всегда интерпретируется как одинарное нажатие.


ksGetMacroWaitDblClickEdit
ksDocument2D::ksGetMacroWaitDblClickEdit

Получить режим ожидания DblClick при редактировании макрообъекта.

Аналог данного метода при использовании API экспортных функций - ksGetMacroWaitDblClickEdit.

Синтаксис Automation:

long ksGetMacroWaitDblClickEdit (reference ref);

Входные параметры:

ref	- указатель на макроэлемент.
Возвращаемое значение:

1	- режим ожидания DblClick включен,
0	- режим ожидания DblClick выключен.
Примечание:

Макрообъект созданный библиотекой может редактироваться двумя способами:
- по первому клику мыши - через характерные точки и\или интерфейс внешних воздействий;
- по двойному клику - через команду библиотеки.

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

При выключенном режиме ожидания DblClick пауза отсутствует и нажатие всегда интерпретируется как одинарное нажатие.


ksDocument2D::ksChangeObjectsOrder

Изменить порядок отрисовки объектов чертежа.

Аналог данного метода при использовании API экспортных функций - ksChangeObjectsOrder.

Синтаксис Automation:

long ksChangeObjectsOrder (long group, long obj, int orderType);

Входные параметры:

group	- указатель на группу объектов, для которой требуется изменить последовательност отрисовки,
obj	- указатель на объект, относительно которого изменяется оттрисовка группы,
orderType	- Тип изменения порядка объектов.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksLineSeg

Создать отрезок.

Аналог данного метода при использовании API экспортных функций - LineSeg.

Синтаксис Automation:

long ksLineSeg (double x1,

double y1,

double x2,

double y2,

long style);

Входные параметры:

x1, y1	- координаты первой точки отрезка,
x2, y2	- координаты второй точки отрезка,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на отрезок	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksRectangle

Создать прямоугольник.

Аналог данного метода при использовании API экспортных функций - ksRectangle.

Синтаксис Automation:

long ksRectangle (LPDISPATCH param,

short centre);

Входные параметры:

param	- указатель на интерфейс параметров прямоугольника ksRectangleParam,
centre	- признак построения обозначения центра:  0 - нет осей,  1 - значок осей (маленький "крестик"),  2 - горизонтальная ось,  3 - обе оси.
Возвращаемое значение:

указатель на прямоугольник	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksCircle

Создать окружность.

Аналог данного метода при использовании API экспортных функций - Circle.

Синтаксис Automation:

long ksCircle (double xc,

double yc,

double rad,

long style);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус окружности,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на окружность	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksArcByAngle

Создать дугу по центру и углам.

Аналог данного метода при использовании API экспортных функций - ArcByAngle.

Синтаксис Automation:

long ksArcByAngle (double xc,

double yc,

double rad,

double f1,

double f2,

short direction,

long style);

Входные параметры:

xc, yc	- координаты центра дуги,
rad	- радиус дуги,
f1, f2	- начальный и конечный угол дуги в градусах,
direction	- направление отрисовки дуги:  1 - против часовой стрелки,  -1 - по часовой стрелке,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на дугу	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksArcByPoint

Создать дугу по центру и конечным точкам.

Аналог данного метода при использовании API экспортных функций - ArcByPoint.

Синтаксис Automation:

long ksArcByPoint (double xc,

double yc,

double rad,

double x1,

double y1,

double x2,

double y2,

double direction,

long style);

Входные параметры:

xc, yc	- координаты центра дуги,
rad	- радиус дуги,
x1, y1	- координаты начальной точки дуги,
x2, y2	- координаты конечной точки дуги,
direction	- направление отрисовки дуги:  1 - против часовой стрелки,  -1 - по часовой стрелке,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на дугу	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksArcBy3Points

Создать дугу по трем точкам.

Аналог данного метода при использовании API экспортных функций - ArcBy3Points.

Синтаксис Automation:

long ksArcBy3Points (double x1,

double y1,

double x2,

double y2,

double x3,

double y3,

long style);

Входные параметры:

x1, y1	- координаты начальной точки на дуге,
x2, y2	- координаты средней точки на дуге,
x3, y3	- координаты конечной точки на дуге,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на дугу	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetObjParam

Получить параметры объекта.

Аналог данного метода при использовании API экспортных функций - GetObjParam.

Синтаксис Automation:

long ksGetObjParam (long reference,

LPDISPATCH param,

long paramType);

Входной параметр:

reference	- указатель на объект,
Выходные параметры:

param	- указатель на интерфейс параметров,
paramType	- тип параметров объекта.
Типы объектов и интерфейсы...

Типы параметров объектов...

Возвращаемое значение:

тип объекта	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksSetObjParam

Заменить параметры объекта.

Аналог данного метода при использовании API экспортных функций - SetObjParam.

Синтаксис Automation:

long ksSetObjParam (long Reference,

LPDISPATCH param,

long paramType);

Входные параметры:

Reference	- указатель на объект,
param	- указатель на интерфейс параметров,
paramType	- тип параметров объекта.
Типы объектов и интерфейсы...

Типы параметров объектов...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksContour

Задание контура.

Аналог данного метода при использовании API экспортных функций - Contour.

Синтаксис Automation:

long ksContour (long style);

Входной параметр:

style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Контур - составной объект. Объекты, вводимые между методами ksDocument2D::ksContour и ksDocument2D::ksEndObj, принадлежат контуру.

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

3. Конечная точка предыдущего звена должна совпадать с начальной точкой последующего звена.

4. ksDocument2D::ksEndObj возвращает указатель на контур.


ksDocument2D::ksMacro

Создать новый макроэлемент.

Аналог данного метода при использовании API экспортных функций - Macro.

Синтаксис Automation:

long ksMacro (short type);

Входной параметр:

type	- тип макрообъекта:  0 - объединяет объекты текущего слоя,  1- включаемые объекты могут принадлежать разным слоям.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Макроэлемент - составной объект.

Объекты вида, вводимые между методами ksDocument2D::ksMacro и ksDocument2D::ksEndObj, принадлежат макроэлементу. ksDocument2D::ksEndObj возвращает указатель на макроэлемент.


ksDocument2D::ksParagraph

Начать параграф.

Аналог данного метода при использовании API экспортных функций - Paragraph.

Синтаксис Automation:

long ksParagraph (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ksParagraphParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параграф - составной объект.

Объекты ksDocument2D::ksTextLine, вводимые между методами ksDocument2D::ksParagraph и ksDocument2D::ksEndObj, принадлежат параграфу.

Параграф может состоять из нескольких строк, строки могут состоять из нескольких компонент.Компоненты могут изменять параметры текущего шрифта.

ksDocument2D::ksEndObj возвращает указатель на параграф.


ksDocument2D::ksTextLine

Создать компоненту строки текста или целую строку, состоящую из компонент.

Аналог данного метода при использовании API экспортных функций - TextLine.

Синтаксис Automation:

long ksTextLine (LPDISPATCH textItem);

Входной параметр:

textItem	- указатель на интерфейс ksTextItemParam для компоненты текста или ksTextLineParam для всей строки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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

Спецзнак задается отдельной компонентой.


ksDocument2D::ksLine

Создать прямую.

Аналог данного метода при использовании API экспортных функций - Line.

Синтаксис Automation:

long ksLine (double x,

double y,

double Angle);

Входные параметры:

x, y	- координаты точки на прямой,
Angle	- угол наклона прямой относительно оси OX  (в градусах).
Возвращаемое значение:

указатель на прямую	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksPoint

Создать точку.

Аналог данного метода при использовании API экспортных функций - Point.

Синтаксис Automation:

long ksPoint (double x,

double y,

long style);

Входные параметры:

x, y	- координаты точки,
style	- стиль отрисовки точки.
Системные стили отрисовки точек...

Возвращаемое значение:

указатель на точку	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksText

Создать текст в графическом документе.

Аналог данного метода при использовании API экспортных функций - Text.

Синтаксис Automation:

long ksText (double x,

double y,

double ang,

double hStr,

double ksuStr,

long bitVector,

BSTR s);

Входные параметры:

x, y	- координаты точки привязки текста,
ang	- угол наклона текста,
hStr	- высота символов,
ksuStr	- сужение текста,
bitVector	- битовый вектор, задающий признаки начертания текста,
s	- строка символов.
Признаки начертания текста...

Возвращаемое значение:

указатель на текст	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksHatchByParam

Создать штриховку.

Аналог данного метода при использовании API экспортных функций - ksHatch.

Синтаксис Automation:

long ksHatchByParam (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ksHatchParam.
Возвращаемое значение:

указатель на штриховку	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объекты границы штриховки лежат во временной группе ksHatchParam::boundaries.

После выполнения метода ksDocument2D::ksHatchByParam временная группа прекращает существование.


ksDocument2D::ksEndObj

Завершить создание комплексного объекта.

Аналог данного метода при использовании API экспортных функций - EndObj.

Синтаксис Automation:

long ksEndObj();

Возвращаемое значение:

указатель на завершенный объект (контур, макрообъект и т.д.)	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksLayer

Сделать слой текущим.

Аналог данного метода при использовании API экспортных функций - Layer.

Синтаксис Automation:

long ksLayer (long number);

Входной параметр:

number	- номер слоя.
Возвращаемое значение:

указатель на слой	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если слоя с заданным номером нет, он создается.


ksDocument2D::ksGetLayerNumber

Получить номер слоя.

Аналог данного метода при использовании API экспортных функций - GetLayerNumber.

Синтаксис Automation:

long ksGetLayerNumber (long Reference);

Входной параметр:

Reference	- указатель на слой.
Возвращаемое значение:

номер слоя	- в случае удачного завершения,
-1	- в случае неудачи.
Примечания:

1. Системный слой имеет номер 0.

2. Если Reference - объект слоя, возвращается номер слоя этого объекта.


ksDocument2D::ksGetLayerReference

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

Аналог данного метода при использовании API экспортных функций - GetLayerReference.

Синтаксис Automation:

long ksGetLayerReference (long number);

Входной параметр:

number	- номер слоя.
Возвращаемое значение:

указатель на слой	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksChangeObjectLayer

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

Аналог данного метода при использовании API экспортных функций - ChangeObjectLayer.

Синтаксис Automation:

long ksChangeObjectLayer (long Reference,

long number);

Входные параметры:

Reference	- указатель на объект,
number	- номер слоя, на который переносится объект.
Возвращаемое значение:

-1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::ksNewGroup

Создать новую группу объектов.

Аналог данного метода при использовании API экспортных функций - NewGroup.

Синтаксис Automation:

long ksNewGroup (short type);

Входной параметр:

type	- тип групы:  0 - модельная,  1 - временная.
Возвращаемое значение:

указатель на группу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. В модельной группе лежат объекты, которые уже созданы в документе. Во временной группе могут лежать временные и существующие объекты.

2. Если для временной группы не будет вызван метод ksDocument2D::ksStoreTmpGroup, то временные объекты группы будут уничтожены по окончании работы библиотеки.

3. Создаваемые в дальнейшем до вызова метода ksDocument2D::ksEndObj объекты чертежа записываются в модель или во временный список объектов (например, для фантомной прорисовки при вводе).

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


ksDocument2D::ksEndGroup

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

Аналог данного метода при использовании API экспортных функций - EndGroup.

Синтаксис Automation:

long ksEndGroup();

Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.
Примечание:

Объекты вида, виды, слои, если они вводились между

методами ksDocument2D::ksNewGroup и ksDocument2D::ksEndGroup, попадают в группу.

Если группа временная, объекты считаются временными.


ksDocument2D::ksMakeEncloseContours

Получить указатель на группу объектов, "охватывающих" заданную точку.

Аналог данного метода при использовании API экспортных функций - ksMakeEncloseContours.

Синтаксис Automation:

long ksMakeEncloseContours (long gr,

double x,

double y);

Входные параметры:

gr	- временная группа  или 0, если требуются контуры в текущем виде,
x, y	- координаты точки внутри охватываемых контуров.
Возвращаемое значение:

указатель на временную группу контуров	- в случае удачного завершения,
0	- если контуров не нашлось  или в случае неудачи.
Примечание:

Возвращаемая группа принадлежит указанной временной группе или текущему виду в целом.


ksDocument2D::ksIsCursorOrPlacementDocument

Проверить, запущен ли в текущем графическом документе процесс ksDocument2D::ksCursor или ksDocument2D::ksPlacement.

Аналог данного метода при использовании API экспортных функций - ksIsCursorOrPlacementDocument.

Синтаксис Automation:

long ksIsCursorOrPlacementDocument();

Возвращаемое значение:

1	- процесс запущен,
0	- процесс не запущен.


ksDocument2D::ksIsActiveProcessRunnig

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

Аналог данного метода при использовании API экспортных функций - ksIsActiveProcessRunnig.

Синтаксис Automation:

long ksIsActiveProcessRunnig();

Возвращаемое значение:

1	- процесс запущен,
0	- процесс не запущен.


ksDocument2D::ksPhantomShowHide

Сделать фантом видимым или невидимым.

Аналог данного метода при использовании API экспортных функций - ksPhantomShowHide.

Синтаксис Automation:

long ksPhantomShowHide (BSTR show);

Входной параметр:

show	- признак отрисовки фантома:  1 - включить,  0 - выключить.
Возвращаемое значение:

-1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetCursorPosition

Получить координаты курсора.

Аналог данного метода при использовании API экспортных функций - ksGetCursorPosition.

Синтаксис Automation:

long ksGetCursorPosition (double* x, double* y, long type);

Входной параметр:

type	- признак, какие координаты возвращать:  0 - без учета привязок,  1 - с учетом привязок.
Выходные параметры:

x, y	- координаты курсора (в миллиметрах).
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksKeepReference

Запомнить указатель на объект.

Аналог данного метода при использовании API экспортных функций - KeepReference.

Синтаксис Automation:

long ksKeepReference (long r);

Входной параметр:

r	- указатель на графический объект.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Указатель на объект запоминается для использования при повторном выполнении команды библиотеки. Объект переносится из динамической таблицы объектов в глобальную. В результате указатель на него доступен из другого метода данной библиотеки.


ksDocument2D::ksGetMacroParamSize

Получить размер памяти параметров указанного макрообъекта.

Аналог данного метода при использовании API экспортных функций - GetMacroParamSize.

Синтаксис Automation:

long ksGetMacroParamSize (long ref);

Входной параметр:

ref	- указатель на макрообъект.
Возвращаемое значение:

размер памяти	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При ref = 0 выдается размер памяти параметров макроэлемента, редактирование которого производится в данный момент (если таковой имеется).


ksDocument2D::ksEditMacroMode

Получить режим работы метода библиотеки (создание нового или редактирование существующего макрообъекта).

Аналог данного метода при использовании API экспортных функций - EditMacroMode.

Синтаксис Automation:

long ksEditMacroMode();

Возвращаемое значение:

указатель на редактируемый макрообъект	- при редактировании макрообъекта,
0	- при создании макрообъекта.


ksDocument2D::ksDeleteObj

Удалить объект.

Аналог данного метода при использовании API экспортных функций - DeleteObj.

Синтаксис Automation:

long ksDeleteObj (long ref);

Входной параметр:

ref	- указатель на объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель ref равен нулю, то удаляются выделенные объекты документа.


ksDocument2D::ksDestroyObjects

Разрушить присланные составные объекты.

Аналог данного метода при использовании API экспортных функций - DestroyObjects.

Синтаксис Automation:

long ksDocument2D::ksDestroyObjects (long p)

Входной параметр:

p	- указатель на объект, вид, слой или группу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Разрушает не только составные объекты (макроэлементы, вставки фрагментов, эквидистанты, прямоугольники, контуры) но и виды (если у них есть связь с моделью). Пока работает в визуальном режиме.


ksDocument2D::ksMoveObj

Сдвинуть объект.

Аналог данного метода при использовании API экспортных функций - MoveObj.

Синтаксис Automation:

long ksMoveObj (long ref,

double dx,

double dy);

Входные параметры:

ref	- указатель на объект,
dx, dy	- вектор смещения объекта.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель ref равен нулю, то сдвигаются выделенные объекты документа.


ksDocument2D::ksRotateObj

Повернуть объект.

Аналог данного метода при использовании API экспортных функций - RotateObj.

Синтаксис Automation:

long ksRotateObj (long ref,

double x,

double y,

double angle);

Входные параметры:

ref	- указатель на объект,
x, y	- координаты центра поворота,
angle	- угол поворота (в градусах).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель ref равен нулю, то поворачиваются выделенные объекты документа.


ksDocument2D::ksTransformObj

Преобразовать объект по установленной матрице.

Аналог данного метода при использовании API экспортных функций - TransformObj.

Синтаксис Automation:

long ksTransformObj (long ref);

Входной параметр:

ref	- указатель на объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Для работы с матрицами служат методы ksDocument2D::ksMtr и ksDocument2D::ksDeleteMtr.


ksDocument2D::ksLightObj

Выделить объект цветом ("подсветить" объект).

Аналог данного метода при использовании API экспортных функций - LightObj.

Синтаксис Automation:

long ksLightObj (long ref,

short ligth);

Входные параметры:

ref	- указатель на объект,
ligth	- режим подсветки: 1 - установить выделение, 0 - снять выделение.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksFindObj

Найти ближайший к заданной точке объект вида.

Аналог данного метода при использовании API экспортных функций - FindObj.

Синтаксис Automation:

long ksFindObj (double x, double y, double limit);

Входные параметры:

x, y	- координаты точки,
limit	- размер стороны квадрата-"ловушки" с центром в указанной точке.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Зона поиска - квадрат со указанной стороной и центром.

Если значение limit равно MAXDOUBLE, выполняется поиск ближайшего к указанной точке объекта без ограничения зоны поиска.


ksDocument2D::ksSymmetryObj

Отразить объект относительно оси.

Аналог данного метода при использовании API экспортных функций - ksSymmetryObj.

Синтаксис Automation:

long ksSymmetryObj (long ref,

double x1,

double y1,

double x2,

double y2,

BSTR copy);

Входные параметры:

ref	- указатель на объект,
x1, y1	- координаты первой точки на оси,
x2, y2	- координаты второй точки на оси,
copy	- режим копирования: 0 - исходные объекты удаляются, 1 - исходные объекты оставляются.
Возвращаемое значение:

указатель на получившийся объект или группу объектов	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если указатель ref равен нулю, то зеркально отображаются выделенные объекты документа.


ksDocument2D::ksCopyObj

Скопировать объект.

Аналог данного метода при использовании API экспортных функций - ksCopyObj.

Синтаксис Automation:

long ksCopyObj (long ref,

double xOld,

double yOld,

double xNew,

double yNew,

double scale_,

double angle);

Входные параметры:

ref	- указатель на объект,
xOld, yOld	- координаты базовой точки объекта,
xNew, yNew	- координаты нового положения базовой точки,
scale	- масштаб,
angle	- угол поворота в градусах.
Возвращаемое значение:

указатель на получившийся объект или группу объектов	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::ksCreateViewObject

Создать объект заданного типа, используя визуальный процесс создания объекта.

Аналог данного метода при использовании API экспортных функций - ksCreateViewObject.

Синтаксис Automation:

long ksCreateViewObject (long type);

Входной параметр:

type	- тип объекта.
Типы объектов и интерфейсы...

Возвращаемое значение:

указатель на созданный объект	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Метод распространяется на все объекты вида, кроме слоя, контура, нетипизированного макроэлемента, вставленного фрагмента и дуги эллипса.

Так как сиcтема может работать только с одним процессом, то нужно завершить

другие "процессные" методы: ksDocument2D::ksCursor, ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow.


ksDocument2D::ksAnnLineSeg

Создать аннотационный отрезок.

Аналог данного метода при использовании API экспортных функций - AnnLineSeg.

Синтаксис Automation:

long ksAnnLineSeg (double x1,

double y1,

double x2,

double y2,

short term1,

short term2,

long style);

Входные параметры:

x1, y1	- координаты первой точки отрезка,
x2, y2	- координаты второй точки отрезка,
term1, term2	- типы значков на концах линии,
style	- стиль линии
Системные типы значков...

Системные стили линий...

Возвращаемое значение:

указатель на аннотационный отрезок	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksPointArraw

Создать значок.

Аналог данного метода при использовании API экспортных функций - PointArraw.

Синтаксис Automation:

long ksPointArraw (double x,

double y,

double ang,

short term);

Входные параметры:

x, y	- координаты точки привязки значка,
ang	- угол отрисовки значка,
term	- тип значка.
Системные типы значков...

Возвращаемое значение:

указатель на значок	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksAnnArcByPoint

Создать аннотационную дугу по точкам.

Аналог данного метода при использовании API экспортных функций - AnnArcByPoint.

Синтаксис Automation:

long ksAnnArcByPoint (double xc,

double yc,

double rad,

double x1,

double y1,

double x2,

double y2,

short direction,

short term1,

short term2,

long style);

Входные параметры:

xc, yc	- координаты центра дуги,
rad	- радиус дуги,
x1, y1	- координаты начальной точки дуги,
x2, y2	- координаты конечной точки дуги,
direction	- направление отрисовки дуги:   1 - против часовой стрелки,  -1 - по часовой стрелке,
term1, term2	типы значков на концах дуги,
style	стиль линии.
Системные типы значков...

Системные стили линий...

Возвращаемое значение:

указатель на аннотационную дугу	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksEllipse

Создать эллипс.

Аналог данного метода при использовании API экспортных функций - ksEllipse.

Синтаксис Automation:

long ksEllipse (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ksEllipseParam.
Возвращаемое значение:

указатель на эллипс	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksEllipseArc

Создать дугу эллипса.

Аналог данного метода при использовании API экспортных функций - ksEllipseArc.

Синтаксис Automation:

long ksEllipseArc (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ksEllipseArcParam.
Возвращаемое значение:

указатель на дугу эллипса	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksParEllipseArc

Создать дугу эллипса.

Аналог данного метода при использовании API экспортных функций - ksParEllipseArc.

Синтаксис Automation:

long ksParEllipseArc (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ksEllipseArcParam1.
Возвращаемое значение:

указатель на дугу эллипса	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksEquidistant

Построить эквидистанту.

Аналог данного метода при использовании API экспортных функций - Equidistant.

Синтаксис Automation:

long ksEquidistant (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ksEquidistantParam.
Возвращаемое значение:

указатель на эквидистанту	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksIsSlaveSpcOpened
IDocument2D::ksIsSlaveSpcOpened

Открыто ли окно спецификации в Slave режиме.

Синтаксис Automation:

int ksIsSlaveSpcOpened();

Синтаксис COM:

int ksIsSlaveSpcOpened();

Возвращаемое значение:

0	- окно спецификации в Slave режиме не открыто,
1	- окно спецификации в Slave режиме открыто,
2	- окно спецификации в Slave режиме открыто и активно.


ksDocument2D::ksIsPointInsideContour

Проверить положение точки по отношению к контуру.

Аналог данного метода при использовании API экспортных функций - ksIsPointInsideContour.

Синтаксис Automation:

long ksIsPointInsideContour (long Reference,

double x,

double y,

double precision);

Входные параметры:

Reference	- указатель на контур,
x, y	- координаты точки,
precision	- точность проверки (от 1 до 1E-6).
Возвращаемое значение:

0	- в случае неудачи,
1	- точка вне контура,
2	- точка на контуре,
3	- точка внутри контура.


ksDocument2D::ksConvertTextToCurve

Преобразовать указанный текст в кривые.

Аналог данного метода при использовании API экспортных функций - ksConvertTextToCurve.

Синтаксис Automation:

long ksConvertTextToCurve (long text);

Входной параметр:

text	- указатель на текст.
Возвращаемое значение:

указатель на временную группу кривых	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksStoreTmpGroup

Вставить временную группу в документ (группа "рассыпается").

Аналог данного метода при использовании API экспортных функций - StoreTmpGroup.

Синтаксис Automation:

long ksStoreTmpGroup (long group);

Входной параметр:

group	- указатель на группу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Временные объекты не записываются в документ и на экране не отображаются. Они сохраняются только до конца работы создающей их библиотечной команды. Временная группа чаще всего служит для отрисовки фантомного изображения и используется в качестве параметров в методах ksDocument2D::ksPlacement и ksDocument2D::ksCursor. Метод ksDocument2D::ksStoreTmpGroup записывает все объекты временной группы в документ (т.е. фиксирует их). Сама же группа получает статус постоянной.


ksDocument2D::ksOpenMacro

Открыть макрообъект для редактирования.

Аналог данного метода при использовании API экспортных функций - ksOpenMacro.

Синтаксис Automation:

long ksOpenMacro (long macro);

Входной параметр:

macro	- указатель на макрообъект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Когда макрообъект открыт для редактирования; можно добавлять в его состав новые объекты вида, использовать метод ksDocument2D::ksFindObj.

Режим редактирования закрывается методом ksDocument2D::ksEndObj;

В режиме редактирования открыт доступ к внутренним объектам макрообъектов. Теперь при создании макрообъекта или при добавлении к макрообъекту новых объектов вида выдается указатель на внутренние объекты, как и на самостоятельные объекты вида.

Допускается вводить пустой макрообъект. Пустой макрообъект является вырожденным объектом. Он существует только в период редактирования документа. После записи документа, в котором находился пустой макрообъект, этот макрообъект будет удален. Макрообъект считается нормальным, если в нем находится хотя бы один внутренний объект.

Все методы работы с указателями на объекты допускают работу с внутренними объектами макрообъекта. Это методы

ksDocument2D::ksDeleteObj

ksDocument2D::ksMoveObj

ksDocument2D::ksLightObj

ksDocument2D::ksTransformObj

ksDocument2D::ksGetObjParam

ksDocument2D::ksSetObjParam

ksDocument2D::ksRotateObj

ksDocument2D::ksCopyObj

ksDocument2D::ksSymmetryObj

ksDocument2D::ksEditViewObject

ksDocument2D::ksGetObjGabaritRect

ksDocument2D::ksDecomposeObj


ksDocument2D::ksAddObjectToMacro

Добавить объект, слой, вид или группу объектов в макрообъект.

Аналог данного метода при использовании API экспортных функций - ksAddObjectToMacro.

Синтаксис Automation:

long ksAddObjectToMacro (long macro, long obj);

Входные параметры:

macro	- указатель на макрообъект,
obj	- указатель на добавляемый объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksHatch

Создать штриховку.

Аналог данного метода при использовании API экспортных функций - Hatch.

Синтаксис Automation:

long ksHatch (long style,

double Angle,

double step,

double width,

double x0,

double y0);

Входные параметры:

style	- стиль штриховки,
angle	- угол штриховки в градусах,
step	- шаг штриховки,
width	- ширина полосы штрихования вдоль границы штриховки,
x0, y0	- координаты начальной точки штриховки.
Системные стили штриховок...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Все следующие далее до вызова метода ksDocument2D::ksEndObj геометрические примитивы определяют границы штриховки (внешние и внутренние). Порядок определения элементов границы является произвольным. Метод ksDocument2D::ksEndObj возвращает указатель на штриховку.


ksDocument2D::ksColouring

Создать фоновую заливку цветом.

Аналог данного метода при использовании API экспортных функций - ksColouring.

Синтаксис Automation:

long ksColouring (long color);

Входной параметр:

color	- цвет заливки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Заливка - составной объект. Объекты вида, вводимые между методами ksDocument2D::ksColouring и ksDocument2D::ksEndObj, принадлежат заливке и образуют ее границу.

ksDocument2D::ksEndObj возвращает указатель на заливку.


ksDocument2D::ksColouringEx

Создать фоновую заливку цветом.

Аналог данного метода при использовании API экспортных функций - ksColouringEx.

Синтаксис Automation:

long ksColouringEx (long color, reference group);

Входные параметры:

color	- цвет заливки;
group	- группа, образующая границу заливки.
Возвращаемое значение:

указатель на заливку	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если color = -1 или 0xFFFFFFFF - создается заливка цветом фона документа.


ksDocument2D::ksDuplicateBoundaries

Получить временную группу контуров, задающих границы штриховки или заливки.

Аналог данного метода при использовании API экспортных функций - ksDuplicateBoundaries.

Синтаксис Automation:

long ksDuplicateBoundaries (long reference);

Входной параметр:

reference	- указатель на штриховку или заливку.
Возвращаемое значение:

указатель на временную группу контуров, задающих границы штриховки или заливки	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksNurbsPoint

Создать узел кривой NURBS.

Аналог данного метода при использовании API экспортных функций - NurbsPoint.

Синтаксис Automation:

long ksNurbsPoint (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ksNurbsPointParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Создать очередной узел кривой NURBS. Узлы кривой определяются методами ksDocument2D::ksPoint или ksDocument2D::ksNurbsPoint. Описание кривой завершается методом ksDocument2D::ksEndObj, возвращающим указатель на созданную кривую.


ksDocument2D::ksNurbsKnot

Создать узел NURBS-кривой.

Аналог данного метода при использовании API экспортных функций - ksNurbsKnot.

Синтаксис Automation:

long ksNurbsKnot (double knot);

Входной параметр:

knot	- узел кривой NURBS.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод предназначен для считывания форматов обмена, в частности, DXF.

Для создания кривой NURBS массив узлов (узловой вектор) задавать не обязательно.

Но если он задан, то должен подчиняться следующим правилам:

1. Узловой вектор не должен быть убывающим.

2. Для разомкнутого сплайна количество узлов = степень сплайна + количество точек.

3. Для замкнутого сплайна количество узлов = степень сплайна + количество точек + (степень сплайна - 1).


ksDocument2D::ksNurbs

Создать кривую NURBS.

Аналог данного метода при использовании API экспортных функций - Nurbs.

Синтаксис Automation:

long ksNurbs (short degree, BOOL close, long style);

Входные параметры:

degree	- степень сплайна (от 3 до 8),
close	- признак замыкания сплайна:  FALSE - незамкнутый,  TRUE - замкнутый,
style	стиль линии.
Системные стили линий...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Узлы кривой определяются следующими далее методами ksDocument2D::ksPoint или ksDocument2D::ksNurbsPoint.

Описание кривой завершается методом ksDocument2D::ksEndObj, возвращающим указатель на созданную кривую.


ksDocument2D::ksRegularPolygon

Cоздать правильный многоугольник.

Аналог данного метода при использовании API экспортных функций - ksRegularPolygon.

Синтаксис Automation:

long ksRegularPolygon (LPDISPATCH param,

short centre);

Входные параметры:

param	- указатель на интерфейс параметров многоугольника ksRegularPolygonParam,
centre	- признак построения обозначения центра:  0 - нет осей,  1 - значок осей (маленький "крестик"),  2 - горизонтальная ось,  3 - обе оси.
Возвращаемое значение:

указатель на правильный многоугольник	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksClearGroup

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

Аналог данного метода при использовании API экспортных функций - ksClearGroup.

Синтаксис Automation:

long ksClearGroup (long group, BOOL deleteTmp);

Входные параметры:

group	- указатель на очищаемую группу  (0 - очищается группа селектирования),
deleteTmp	- признак удаления временных элементов:  TRUE - временные элементы удаляются, FALSE - временные элементы сохраняются.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksExcludeObjGroup

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

Аналог данного метода при использовании API экспортных функций - ExcludeObjGroup.

Синтаксис Automation:

long ksExcludeObjGroup (long group, long obj);

Входные параметры:

group	- указатель на группу,
obj	- указатель на исключаемый объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::ksAddObjGroup

Добавить объект в группу.

Аналог данного метода при использовании API экспортных функций - AddObjGroup.

Синтаксис Automation:

long ksAddObjGroup (long group, long obj);

Входные параметры:

group	- указатель на группу,
obj	- указатель на добавляемый объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель на группу равен нулю, то добавление производится в группу выделения (т.е. происходит выделение объекта).


ksDocument2D::ksSaveGroup

Сохранить группу объектов в документе.

Аналог данного метода при использовании API экспортных функций - SaveGroup.

Синтаксис Automation:

long ksSaveGroup (long group,

BSTR name);

Входные параметры:

group	- указатель на группу,
name	- имя сохраняемой группы.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::ksSelectGroup

Автоматически сформировать группу объектов.

Аналог данного метода при использовании API экспортных функций - SelectGroup.

Синтаксис Automation:

long ksSelectGroup (long group,

short selectMode,

double xmin,

double ymin,

double xmax,

double ymax);

Входные параметры:

group	- указатель на группу,
selectMode	- тип выделения: 1 - объекты внутри прямоугольника-"ловушки", 2 - объекты снаружи прямоугольника-"ловушки", 3 - объекты, пересекающие прямоугольник-"ловушку",
xmin, ymin	- координаты левой нижней вершины прямоугольника-"ловушки",
xmax, ymax	- координаты правой верхней вершины прямоугольника-"ловушки".
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::ksExistGroupObj

Проверить группу на наличие объектов.

Аналог данного метода при использовании API экспортных функций - ExistGroupObj.

Синтаксис Automation:

long ksExistGroupObj (long group);

Входной параметр:

group	- указатель на группу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::ksWriteGroupToClip

Разместить группу в буфере обмена с удалением или оставлением геометрии в документе-источнике (скопировать или вырезать геометрию в буфер обмена).

Аналог данного метода при использовании API экспортных функций - ksWriteGroupToClip.

Синтаксис Automation:

long ksWriteGroupToClip (long group,

BOOL copy);

Входные параметры:

group	- указатель на группу,
copy	- признак копирования или вырезания:  1 - копирование,  0 - вырезание.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetGroup

Получить указатель на группу.

Аналог данного метода при использовании API экспортных функций - GetGroup.

Синтаксис Automation:

long ksGetGroup (BSTR name);

Входной параметр:

name	- имя группы.
Возвращаемое значение:

указатель на группу	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksReadGroupFromClip

Прочитать графические объекты из буфера обмена и разместить их во временной группе.

Аналог данного метода при использовании API экспортных функций - ksReadGroupFromClip.

Синтаксис Automation:

long ksReadGroupFromClip();

Возвращаемое значение:

указатель на группу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::ksConicArc

Построить коническое сечение.

Аналог данного метода при использовании API экспортных функций - ksConicArc.

Синтаксис Automation:

long ksConicArc (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс конического сечения ksConicArcParam.
Возвращаемое значение:

указатель на коническое сечение	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Коническим сечением может быть дуга окружности, дуга эллипса или кривая NURBS.


ksDocument2D::ksCentreMarker

Создать обозначение центра.

Аналог данного метода при использовании API экспортных функций - ksCentreMarker.

Синтаксис Automation:

long ksCentreMarker (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс обозначения центра ksCentreParam.
Возвращаемое значение:

указатель на обозначение центра	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksBezier

Создать кривую Безье.

Аналог данного метода при использовании API экспортных функций - Bezier.

Синтаксис Automation:

long ksBezier (short closed, long style);

Входные параметры:

closed	- признак замыкания сплайна:  0 - незамкнутый,  1 - замкнутый,
style	стиль линии.
Системные стили линий...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Кривая Безье - составной объект. Объекты ksDocument2D::ksBezierPoint, вводимые между методами ksDocument2D::ksBezier и ksDocument2D::ksEndObj, принадлежат кривой. ksDocument2D::ksEndObj возвращает указатель на кривую Безье.


ksDocument2D::ksBezierPoint

Создать точку для построения кривой Безье.

Аналог данного метода при использовании API экспортных функций - BezierPoint.

Синтаксис Automation:

long ksBezierPoint (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс кривой Безье ksBezierPointParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetStyleParam

Получить параметры стиля из документа.

Аналог данного метода при использовании API экспортных функций - GetStyleParam.

Синтаксис Automation:

long ksGetStyleParam (short type, short styleId, LPDISPATCH param);

Входные параметры:

type	тип стиля,
styleId	номер стиля,
param	указатель на интерфейс соответствующего типа.
Типы стилей и интерфейсы...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

В случае неудачи структура param заполняется параметрами стиля по умолчанию.


ksDocument2D::ksInsertRaster

Вставить растровый объект.

Аналог данного метода при использовании API экспортных функций - ksInsertRaster.

Синтаксис Automation:

long ksInsertRaster (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс растрового объекта ksRasterParam.
Возвращаемое значение:

указатель на растровый объект	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksLinDimension

Создать линейный размер.

Аналог данного метода при использовании API экспортных функций - LinDimension.

Синтаксис Automation:

long ksLinDimension (LPDISPATCH linPar);

Входной параметр:

linPar	- указатель на интерфейс линейного размера ksLDimParam.
Возвращаемое значение:

указатель на линейный размер	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksAngDimension

Создать угловой размер.

Аналог данного метода при использовании API экспортных функций - AngDimension.

Синтаксис Automation:

long ksAngDimension (LPDISPATCH angPar);

Входной параметр:

angPar	- указатель на интерфейс углового размера ksADimParam.
Возвращаемое значение:

указатель на угловой размер	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksDiamDimension

Создать диаметральный размер.

Аналог данного метода при использовании API экспортных функций - DiamDimension.

Синтаксис Automation:

long ksDiamDimension (LPDISPATCH linPar);

Входной параметр:

linPar	- указатель на интерфейс диаметрального размера ksRDimParam.
Возвращаемое значение:

указатель на диаметральный размер	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksRadDimension

Создать радиальный размер.

Аналог данного метода при использовании API экспортных функций - RadDimension.

Синтаксис Automation:

long ksRadDimension (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс радиального размера ksRDimParam.
Возвращаемое значение:

указатель на радиальный размер	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksRadBreakDimension

Создать радиальный размер с изломом.

Аналог данного метода при использовании API экспортных функций - RadBreakDimension.

Синтаксис Automation:

long ksRadBreakDimension (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс радиального размера с изломом ksRBreakDimParam.
Возвращаемое значение:

указатель на радиальный размер с изломом	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksAddStyle

Добавить в документ новый стиль.

Аналог данного метода при использовании API экспортных функций - AddStyle.

Синтаксис Automation:

long ksAddStyle (short type, LPDISPATCH param, short copy);

Входные параметры:

type	тип стиля,
param	указатель на интерфейс соответствующего типа.
copy	- признак создания стиля: 0 - создать вручную,  1- взять стиль из библиотеки.
Типы стилей и интерфейсы...

Возвращаемое значение:

идентификатор стиля	- в случае удачного завершения,
0	- в случае неудачи.
Примечания:

1. В настоящее время метод реализован для стилей кривых, текстов и штриховок.

2. При копировании стиля из библиотеки param - указатель на интерфейс ksLibStyle.


ksDocument2D::ksIsStyleInDocument

Проверить, существует ли стиль в текущем документе.

Аналог данного метода при использовании API экспортных функций - ksIsStyleInDocument.

Синтаксис Automation:

long ksIsStyleInDocument (short type,

LPDISPATCH param,

short copy);

Входные параметры:

type	тип стиля,
param	указатель на интерфейс соответствующего типа.
copy	- признак используемой структуры стиля: 0 - создать вручную,  1- взять стиль из библиотеки.
Типы стилей и интерфейсы...

Возвращаемое значение:

1	- стиль в документе есть,
0	- стиля в документе нет.
Примечание:

В случае, когда стиль берется из библиотеки, param - указатель на интерфейс ksLibStyle.


ksDocument2D::ksDeleteStyleFromDocument

Удалить стиль из текущего документа.

Аналог данного метода при использовании API экспортных функций - ksDeleteStyleFromDocument.

Синтаксис Automation:

long ksDeleteStyleFromDocument (short type,

LPDISPATCH param,

short copy);

Входные параметры:

type	тип стиля,
param	указатель на интерфейс соответствующего типа.
copy	- признак используемой структуры стиля: 0 - создать вручную,  1- взять стиль из библиотеки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

В случае, когда стиль берется из библиотеки, param - указатель на интерфейс ksLibStyle.


ksDocument2D::ksExistObj

Проверить существование объекта.

Аналог данного метода при использовании API экспортных функций - ExistObj.

Синтаксис Automation:

long ksExistObj(long ref);

Входной параметр:

ref	- указатель на объект.
Возвращаемое значение:

1	- в случае наличия объекта,
0	- в случае отсутствия объекта.


ksDocument2D::ksGetObjGabaritRect

Получить габаритный прямоугольник объекта.

Аналог данного метода при использовании API экспортных функций - GetObjGabaritRect.

Синтаксис Automation:

long ksGetObjGabaritRect (long p,

LPDISPATCH param);

Входные параметры:

p	- указатель на объект,
param	- указатель на интерфейс параметров прямоугольника ksRectParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Габаритный прямоугольник возвращается в координатах листа


ksDocument2D::ksSheetToView

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

Аналог данного метода при использовании API экспортных функций - SheetToView.

Синтаксис Automation:

long ksSheetToView (double x,

double y,

double* outX,

double* outY);

Входные параметры:

x, y	- координаты точки в системе координат листа,
Выходные параметры:

outX, outY	- координаты точки в системе координат вида.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksViewToSheet

Пересчитать точку из CK текущего вида в CK листа.

Аналог данного метода при использовании API экспортных функций - ViewToSheet.

Синтаксис Automation:

long ksViewToSheet (double x,

double y,

double* outX,

double* outY);

Входные параметры:

x, y	- координаты точки в системе координат вида,
Выходные параметры:

outX, outY	- координаты точки в системе координат листа.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksPolyline

Создать ломаную линию.

Аналог данного метода при использовании API экспортных функций - ksPolyline.

Синтаксис Automation:

long ksPolyline (long style);

Входной параметр:

style	стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на ломаную линию	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Ломаная линия - составной объект. Объекты ksDocument2D::ksPoint, вводимые между методами ksDocument2D::ksPolyline и ksDocument2D::ksEndObj, принадлежат ломаной линии. ksDocument2D::ksEndObj возвращает указатель на ломаную линию.


ksDocument2D::ksPolylineByParam

Создать ломаную линию.

Аналог данного метода при использовании API экспортных функций - ksPolyline.

Синтаксис Automation:

long ksPolylineByParam (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс ломаной линии ksPolylineParam.
Возвращаемое значение:

указатель на ломаную линию	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetReferenceDocumentPart

Получить указатель на объект оформления чертежа.

Аналог данного метода при использовании API экспортных функций - GetReferenceDocumentPart.

Синтаксис Automation:

long ksGetReferenceDocumentPart (short t);

Входной параметр:

t	- тип объекта оформления чертежа.
Типы объектов оформления чертежа...

Возвращаемое значение:

указатель на объект выбранного типа	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Метод предназначен для использования в листе чертежа.


ksDocument2D::ksGetViewReference

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

Аналог данного метода при использовании API экспортных функций - GetViewReference.

Синтаксис Automation:

long ksGetViewReference (long number);

Входной параметр:

number	- номер вида.
Возвращаемое значение:

указатель на вид	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetViewNumber

Получить номер вида по указателю на вид.

Аналог данного метода при использовании API экспортных функций - GetViewNumber.

Синтаксис Automation:

long ksGetViewNumber (long p);

Входной параметр:

p	- указатель на вид.
Возвращаемое значение:

номер вида	- в случае удачного завершения,
-1	- в случае неудачи.
Примечание:

Если p - указатель на объект вида, возвращается номер вида этого объекта.


ksDocument2D::ksOpenView

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

Аналог данного метода при использовании API экспортных функций - OpenView.

Синтаксис Automation:

long ksOpenView (long number);

Входной параметр:

number	- номер вида.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksNewViewNumber

Определить номер следующего вида.

Аналог данного метода при использовании API экспортных функций - NewViewNumber.

Синтаксис Automation:

long ksNewViewNumber();

Возвращаемое значение:

номер следующего вида	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksCreateSheetView

Создать вид.

Аналог данного метода при использовании API экспортных функций - CreateSheetView.

Синтаксис Automation:

long ksCreateSheetView (LPDISPATCH par, long* number);

Входные параметры:

par	- указатель на интерфейс параметров вида ksViewParam,
number	- номер вида.
Возвращаемое значение:

указатель на вид	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

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

Если вид с указанным номером уже существует, новый вид не создается (ошибка).

Если указать *number = 0, то создается вид с номером по возрастанию.


ksDocument2D::ksDecomposeObj

Разбить объект на составляющие части - отрезки, дуги, тексты.

Аналог данного метода при использовании API экспортных функций - DecomposeObj.

Синтаксис Automation:

long ksDecomposeObj (long p,

short level,

double arrow,

BOOL type);

Входные параметры:

p	- указатель на разбиваемый объект,
level	- степень детализации разбиения: 0 - отрезки, дуги, тексты, точки, 1 - отрезки, тексты, точки, 2 - отрезки, дуги, тексты, 4 - отрезки, дуги, точки, 5 - отрезки, дуги, тексты, заливки стрелок и треугольников баз, 6 - разбиение объектов из ассоциативного чертежа на составляющие с учетом видимых и невидимых участков,
arrow	- размер "стрелки прогиба",
type	- признак выбранной системы координат:  0 - разбиение объекта в СК вида,  1 - разбиение объекта в СК листа
Возвращаемое значение:

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

1. Метод используется при разработке различных конверторов, преобразующих информацию из системы КОМПАС во внешние форматы.

2. Текущий документ должен быть графическим.

3. Графический документ разбивается по частям. Такими частями могут быть объекты вида, основная надпись, технические требования, спецификация на листе, знак неуказанной шероховатости.

4. Спецификация разбивается по листам (p - указатель на документ-спецификацию, type - номер листа спецификации, начиная с 1).

5. Сложные кривые заменяются набором отрезков и дуг (при level=1 - только набором отрезков).

6. Точность приближения к исходному объекту задается значением параметра arrow - максимальным расстоянием между исходным объектом и аппроксимирующим отрезком.

7 Если level=2, точки превращаются в графические объекты, служащие для отрисовки этих точек в КОМПАС-ГРАФИК (например, в два отрезка для точки типа "крест"). В остальных случаях точки (в том числе отрисованные в виде "крестов", "треугольников" и т.д.) превращаются в объект типа "точка".

8. Во всех случаях, кроме level=4, сложные тексты (например, тексты, написанные буквами разного начертания - прямого и курсивного) разбиваются на тексты с одинаковыми признаками. При level=4 тексты не изменяются.

9. Исходный объект после разбиения не изменяется.


ksDocument2D::ksGetViewObjCount

Получить количество объектов в виде.

Аналог данного метода при использовании API экспортных функций - GetViewObjCount.

Синтаксис Automation:

long ksGetViewObjCount (long p);

Входной параметр:

p	- указатель на вид.
Возвращаемое значение:

количество объектов в виде	- в случае удачного завершения,
-1	- в случае неудачи.
Примечание:

В случае, если p=0, возвращается число объектов текущего вида или фрагмента.


ksDocument2D::ksLinBreakDimension

Создать линейный размер с обрывом.

Аналог данного метода при использовании API экспортных функций - LinBreakDimension.

Синтаксис Automation:

long ksLinBreakDimension (LPDISPATCH linPar);

Входной параметр:

linPar	- указатель на интерфейс линейного размера с обрывом ksLBreakDimParam.
Возвращаемое значение:

указатель на линейный размер с обрывом	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksAngBreakDimension

Создать угловой размер с обрывом.

Аналог данного метода при использовании API экспортных функций - AngBreakDimension.

Синтаксис Automation:

long ksAngBreakDimension (LPDISPATCH angPar);

Входной параметр:

angPar	- указатель на интерфейс углового размера с обрывом ksABreakDimParam.
Возвращаемое значение:

указатель на угловой размер с обрывом	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksIsCurveClosed

Проверить, замкнута ли указанная кривая.

Аналог данного метода при использовании API экспортных функций - ksIsCurveClosed.

Синтаксис Automation:

long ksIsCurveClosed(long p);

Возвращаемое значение - -1 в случае неудачи, 0 - кривая разомкнута, 1 - кривая замкнута

Входной параметр:

p	- указатель на кривую.
Возвращаемое значение:

1	- кривая замкнута,
0	- кривая разомкнута,
-1	- в случае неудачи.


ksDocument2D::ksBase

Проставить обозначения базы.

Синтаксис Automation:

long ksBase (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс обозначения базы ksBaseParam.
Возвращаемое значение:

указатель на обозначение базы	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksRough

Проставить обозначение шероховатости.

Аналог данного метода при использовании API экспортных функций - Rough.

Синтаксис Automation:

long ksRough (LPDISPATCH roughPar);

Входной параметр:

roughPar	- указатель на интерфейс обозначения шероховатости ksRoughParam.
Возвращаемое значение:

указатель на обозначение шероховатости	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetGroupName

Получить имя группы по указателю на группу.

Аналог данного метода при использовании API экспортных функций - ksGetGroupName.

Синтаксис Automation:

BSTR ksGetGroupName (long gr, long* group, long reserve);

Входные параметры:

gr	- указатель на группу,
reserve	- параметр, зарезервированный для дальнейшего использования (в настоящее вреямя его значение не учитывается).
Выходной параметр:

group	- тип указанной группы:   0 - ошибка указания группы,   1 - именная группа (имя есть),  2 - рабочая группа (имени нет),
Возвращаемое значение:

	строка с именем группы.


ksDocument2D::ksMtr

Создать матрицу преобразования.

Аналог данного метода при использовании API экспортных функций - ksMtr.

Синтаксис Automation:

long ksMtr (double x,

double y,

double Angle,

double scaleX,

double scaleY);

Входные параметры:

x, y	- координаты начала локальной системы координат,
angle	- угол наклона системы координат в градусах,
scaleX	- масштаб локальной системы координат по оси Х,
scaleY	- масштаб локальной системы координат по оси Y.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается вложение матриц трансформации. В результате вложения действует суммарная матрица, полученная произведением накопленных матриц. Объекты вида, вводимые между методами ksDocument2D::ksMtr и ksDocument2D::ksDeleteMtr , подвергаются преобразованию по суммарной матрице.


ksDocument2D::ksDeleteMtr

Удалить матрицу трансформации.

Аналог данного метода при использовании API экспортных функций - DeleteMtr.

Синтаксис Automation:

long ksDeleteMtr();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод отменяет режим преобразования координат, линейных и угловых параметров, введенный методом ksDocument2D::ksMtr.


ksDocument2D::ksPointIntoMtr

Пересчитать координаты точки из системы координат вида в локальную СК.

Аналог данного метода при использовании API экспортных функций - ksPointIntoMtr.

Синтаксис Automation:

long ksPointIntoMtr (double x,

double y,

double* xn,

double* yn);

Входные параметры:

x, y	- координаты точки в системе координат вида,
Выходные параметры:

xn, yn	- координаты точки в локальной СК.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksPointFromMtr

Пересчитать координаты точки из локальной системы координат в СК вида.

Аналог данного метода при использовании API экспортных функций - ksPointFromMtr.

Синтаксис Automation:

long ksPointFromMtr (double x, double y, double* xn, double* yn);

Входные параметры:

x, y	- координаты точки в локальной системе координат,
Выходные параметры:

xn, yn	- координаты точки в СК вида.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksLengthIntoMtr

Пересчитать длину из системы координат вида в локальную СК.

Аналог данного метода при использовании API экспортных функций - ksLengthIntoMtr.

Синтаксис Automation:

long ksLengthIntoMtr (double* len);

Входной и выходной параметр:

len	- длина.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр len является одновременно и входным, и выходным. На входе он представляет собой длину в СК вида, а в результате работы функции преобразуется в длину в локальной СК.


ksDocument2D::ksLengthFromMtr

Пересчитать длину из локальной системы координат в СК вида.

Аналог данного метода при использовании API экспортных функций - ksLengthFromMtr.

Синтаксис Automation:

long ksLengthFromMtr (double* len);

Входной и выходной параметр:

len	- длина.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр len является одновременно и входным, и выходным. На входе он представляет собой длину в локальной СК, а в результате работы функции преобразуется в длину в СК вида.


ksDocument2D::ksLeader

Создать линию-выноску.

Аналог данного метода при использовании API экспортных функций - Leader.

Синтаксис Automation:

long ksLeader (LPDISPATCH leaderPar);

Входной параметр:

leaderPar	- указатель на интерфейс параметров линии-выноски ksLeaderParam.
Возвращаемое значение:

указатель на линию-выноску	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksPositionLeader

Создать позиционную линию-выноску.

Аналог данного метода при использовании API экспортных функций - PositionLeader.

Синтаксис Automation:

long ksPositionLeader (LPDISPATCH posLeaderParam);

Входной параметр:

posLeaderParam	- указатель на интерфейс параметров позиционной линии-выноски ksPosLeaderParam.
Возвращаемое значение:

указатель на позиционную линию-выноску	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksBrandLeader

Создать линию-выноску для обозначения клеймения.

Аналог данного метода при использовании API экспортных функций - BrandLeader.

Синтаксис Automation:

long ksBrandLeader (LPDISPATCH brandLeaderParam);

Входной параметр:

brandLeaderParam	- указатель на интерфейс параметров линии-выноски для обозначения клеймения ksBrandLeaderParam.
Возвращаемое значение:

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


ksDocument2D::ksMarkerLeader

Создать линию-выноску для обозначения маркирования.

Аналог данного метода при использовании API экспортных функций - MarkerLeader.

Синтаксис Automation:

long ksMarkerLeader (LPDISPATCH markerLeaderParam);

Входной параметр:

markerLeaderParam	- указатель на интерфейс параметров линии-выноски для обозначения маркирования ksMarkerLeaderParam.
Возвращаемое значение:

указатель на линию-выноску для обозначения маркирования	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksCursor

Запрос к системе на получение точки.

Аналог данного метода при использовании API экспортных функций - Cursor.

Синтаксис Automation:

long ksCursor (LPDISPATCH info,

double* x,

double* y,

LPDISPATCH phantom);

Входные параметры:

info	- указатель на интерфейс ksRequestInfo,
phantom	- указатель на интерфейс ksPhantom.
Выходные параметры:

x, y	- возвращаемые координаты точки.
Возвращаемое значение:

-1	- если точка указана,
идентификатор выбранной команды, определенный в файле ресурсов,
порядковый номер в строке команд.
Примечание:

Интерактивный ввод точки или определение варианта действия. Возможные варианты (команды) задаются в строке commands интерфейса ksRequestInfo и разделяются восклицательными знаками или пробелами.

Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений.

Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


ksDocument2D::ksPlacement

Запрос к системе на получение точки и угла.

Аналог данного метода при использовании API экспортных функций - Placement.

Синтаксис Automation:

long ksPlacement (LPDISPATCH info,

double* x,

double* y,

double* Angle,

LPDISPATCH phantom);

Входные параметры:

info	- указатель на интерфейс ksRequestInfo,
phantom	- указатель на интерфейс ksPhantom
Выходные параметры:

x, y	- возвращаемые координаты точки,
angle	- возвращаемое значение угла.
Возвращаемое значение:

-1	- если точка указана,
идентификатор выбранной команды, определенный в файле ресурсов,
порядковый номер в строке команд.
Примечание:

Интерактивный ввод точки и угла или определение варианта действия. Возможные варианты (команды) задаются в строке commands структуры info и разделяются восклицательными знаками или пробелами.

Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений.

Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


ksDocument2D::ksCommandWindow

Запрос к системе на создание окна с деревом команд.

Аналог данного метода при использовании API экспортных функций - CommandWindow.

Синтаксис Automation:

long ksCommandWindow (LPDISPATCH info);

Входной параметр:

info	- указатель на интерфейс ksRequestInfo,
Возвращаемое значение:

-1	- если точка указана,
идентификатор выбранной команды, определенный в файле ресурсов,
порядковый номер в строке команд.
Примечание:

Функция создает окно с деревом команд, определяемых строкой команд в интерфейсе ksRequestInfo, или идентификатором меню из файла ресурсов. Команды в строке разделены пробелом или восклицательным знаком. Функции обратной связи передается управление после выбора команды или отказа.

В случае, если callBack равен NULL, управление из ksCommandWindow возвращается немедленно после выбора команды. В противном случае управление вернется, если

пользователь закроет окно или функция обратной связи вернет FALSE.


ksDocument2D::ksChangeObjectInLibRequest

Изменить фантом или компоненты команд.

Аналог данного метода при использовании API экспортных функций - ksChangeObjectInLibRequest.

Синтаксис Automation:

long ksChangeObjectInLibRequest (LPDISPATCH info,

LPDISPATCH phantom);

Входные параметры:

info	- указатель на интерфейс ksRequestInfo,
phantom	- указатель на интерфейс ksPhantom
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Во время работы методов ksDocument2D::ksCursor и ksDocument2D::ksPlacement может возникнуть необходимость изменить фантом или компоненты команд. Функция ksChangeObjectInLibRequest позволяет передать изменения в цикл ksCursor и ksPlacement. Это может понадобиться для отработки команд пользовательских инструментальных панелей.

Предварительно нужно убедиться, что вызов ksCursor и требование к ksCursor передаются в одном документе. Если какой-либо указатель равен 0, соответствующий параметр не используется.


ksDocument2D::ksReleaseReference

Освободить указатель объекта.

Аналог данного метода при использовании API экспортных функций - ReleaseReference.

Синтаксис Automation:

long ksReleaseReference (long p);

Входной параметр:

p	- указатель на объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Не временный объект не уничтожается. В результате таблица объектов сокращается, а операции, связанные с перебором объектов, ускоряются.


ksDocument2D::GetFragment

Получить указатель на интерфейс фрагмента.

Синтаксис Automation:

LPDISPATCH GetFragment();

Возвращаемое значение:

	указатель на интерфейс фрагмента ksFragment.


ksDocument2D::ksInitFilePreviewFunc

Инициализировать адрес пользовательской функции просмотра пользовательского файла.

Аналог данного метода при использовании API экспортных функций - ksInitFilePreviewFunc.

Синтаксис Automation:

long ksInitFilePreviewFunc (BSTR funcName, long hInst);

Входные параметры:

funcName	- имя функции,
hInst	- идентификатор приложения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksTable

Создать таблицу в графическом документе.

Аналог данного метода при использовании API экспортных функций - Table

Синтаксис Automation:

long ksTable();

Возвращаемое значение:

указатель на таблицу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Таблица - составной объект. Объекты, вводимые между операторами ksDocument2D::ksTable и ksDocument2D::ksEndObj, принадлежат таблице. Допустимые объекты - отрезки, тексты. Отрезки должны быть вертикальными и горизонтальными.

ksDocument2D::ksEndObj возвращает указатель на таблицу.

Допустимые стили линии для отрезков таблицы:

1 - основная,

2 - тонкая,

7 - утолщенная,

0 - невидимая.


ksDocument2D::ksRebuildTableVirtualGrid

Перестроить виртуальную сетку таблицы.

Аналог данного метода при использовании API экспортных функций - ksRebuildTableVirtualGrid.

Синтаксис Automation:

long ksRebuildTableVirtualGrid();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция используется в режиме редактирования таблицы или допуска формы.

2. Таблица работает с виртуальной сеткой - регулярной таблицей, наложенной на редактируемую таблицу и отображающей все ячейки. Если редактируемая таблица регулярная, то ее виртуальная сетка полностью совпадает с таблицей.

3. Нумерация ячеек начинается с левого верхнего угла и с единицы по строкам.

4. Перестраивать сетку нужно после объединения или разделения ячеек.


ksDocument2D::ksGetTableItemsCount

Получить количество ячеек в таблице (для виртуальной сетки).

Аналог данного метода при использовании API экспортных функций - ksGetTableItemsCount.

Синтаксис Automation:

long ksGetTableItemsCount (short type);

Входной параметр:

type	- признак, какое число требуется получить: 0 - общее число ячеек,  1 - число ячеек в строке,  2 - число ячеек в колонке.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования таблицы или допуска формы


ksDocument2D::ksGetTableColumnText

Получить текст ячейки.

Аналог данного метода при использовании API экспортных функций - ksGetTableColumnText.

Синтаксис Automation:

long ksGetTableColumnText (long* numb, LPDISPATCH param);

Выходные параметры:

numb	- номер ячейки,
param	- указатель на интерфейс ksTextParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования таблицы.

Нумерация ячеек начинается с единицы.

Если не определен номер ячейки с помощью функции ksColumnNumber, метод начинает работу с первой ячейки.

После выполнения метода происходит смещение на следующую ячейку.

Если param=0, все графы пройдены.


ksDocument2D::ksSetTableColumnText

Установить текст ячейки таблицы.

Аналог данного метода при использовании API экспортных функций - ksSetTableColumnText.

Синтаксис Automation:

long ksSetTableColumnText (long numb, LPDISPATCH param);

Входные параметры:

numb	- номер ячейки,
param	- указатель на интерфейс ksTextParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования таблицы.


ksDocument2D::ksClearTableColumnText

Очистить ячейку таблицы или допуска формы.

Аналог данного метода при использовании API экспортных функций - ksClearTableColumnText.

Синтаксис Automation:

long ksClearTableColumnText (long numb);

Входной параметр:

numb	- номер ячейки,
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если numb = 0, очищается вся таблица.

Нумерация ячеек начинается с 1.

Функция используется в режиме редактирования таблицы или допуска формы.


ksDocument2D::ksCombineTwoTableItems

Объединить две ячейки таблицы, если они имеют общую границу.

Аналог данного метода при использовании API экспортных функций - ksCombineTwoTableItems.

Синтаксис Automation:

long ksCombineTwoTableItems (long index1, long index2);

Входные параметры:

index1	- номер первой ячейки,
index2	- номер второй ячейки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Нумерация ячеек начинается с 1.

Функция используется в режиме редактирования таблицы или допуска формы.


ksDocument2D::ksDivideTableItem

Разделить ячейку таблицы,.

Аналог данного метода при использовании API экспортных функций - ksDivideTableItem.

Синтаксис Automation:

long ksDivideTableItem (long index,

BOOL vertical,

long style);

Входные параметры:

index	- номер ячейки,
vertical	- направление разделения ячейки: 1 - вертикально,  0 - горизонтально,
style	- стиль линии получившейся границы: 0 - невидимая,  1 - основная,  2 - тонкая,  7 - утолщенная.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Нумерация ячеек начинается с 1.

Функция используется в режиме редактирования таблицы или допуска формы.


ksDocument2D::ksSetTableBorderStyle

Изменить стиль границы ячейки.

Аналог данного метода при использовании API экспортных функций - ksSetTableBorderStyle.

Синтаксис Automation:

long ksSetTableBorderStyle (long index,

short typeBorder,

long style);

Входные параметры:

index	- номер ячейки,
typeBorder	- тип границы: 0 - левая,  1 - правая,  2 - верхняя,  3 - нижняя,
style	- стиль линии границы: 0 - невидимая,  1 - основная,  2 - тонкая,  7 - утолщенная.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Нумерация ячеек начинается с 1.

Функция используется в режиме редактирования таблицы или допуска формы.


ksDocument2D::ksGetTableBorderStyle

Получить стиль границы ячейки.

Аналог данного метода при использовании API экспортных функций - ksGetTableBorderStyle.

Синтаксис Automation:

long ksGetTableBorderStyle (long index,

short typeBorder);

Входные параметры:

index	- номер ячейки,
typeBorder	- тип границы: 0 - левая,  1 - правая,  2 - верхняя,  3 - нижняя,
Возвращаемое значение:

- стиль линии границы: 0 - невидимая,  1 - основная,  2 - тонкая,  7 - утолщенная.	- в случае успешного завершения,
-1	- в случае неудачи.
Примечание:

Нумерация ячеек начинается с 1.

Функция используется в режиме редактирования таблицы или допуска формы.


ksDocument2D::ksOpenTable

Открыть таблицу для редактирования.

Аналог данного метода при использовании API экспортных функций - ksOpenTable.

Синтаксис Automation:

long ksOpenTable (long table);

Входной параметр:

table	- указатель на таблицу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Чтобы закрыть редактирование таблицы, нужно вызвать функцию ksDocument2D::ksEndObj.


ksDocument2D::ksColumnNumber

Задать номер текущей ячейки.

Аналог данного метода при использовании API экспортных функций - ColumnNumber.

Синтаксис Automation:

long ksColumnNumber (long numb);

Входной параметр:

numb	- номер ячейки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования штампа, таблицы, допуска формы, в режиме создания допуска формы.


ksDocument2D::ksSetMacroParam

Записать параметры макрообъекта.

Аналог данного метода при использовании API экспортных функций - SetMacroParam.

Синтаксис Automation:

long ksSetMacroParam (long ref,

LPDISPATCH userPars,

bool dblClickOff,

bool hotpoints,

bool externEdit );

Входные параметры:

ref	- указатель на макрообъект,
userPars	- указатель на интерфейс ksUserParam.
dblClickOff	- признак редактирования по двойному щелчку: TRUE - выключено, FALSE - включено,
hotpoints	- признак наличия интерфейса характерных точек: TRUE - интерфейс характерных точек включен, FALSE - выключен,
externEdit	признак наличия интерфейса внешнего управления: TRUE - интерфейс внешнего управления включен, FALSE - выключен.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод записывает в указанный макрообъект параметры редактирования: имя файла библиотеки, имя библиотеки и номер функции, предназначенной для редактирования данного макрообъекта.

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

При значениях параметров ksUserParam::fileName = 0, ksUserParam::libName = 0, ksUserParam::number =-1 в макрообъекте сохраняется в качестве редактирующей та функция, которая вызвала метод ksSetMacroParam.


ksDocument2D::ksGetMacroParam

Получить дополнительные параметры редактирования для макроэлемента c указателем ref.

Аналог данного метода при использовании API экспортных функций - GetMacroParam.

Синтаксис Automation:

long ksGetMacroParam (long ref, LPDISPATCH userPars);

Входные параметры:

ref	- указатель на макрообъект.
userPars	- указатель на интерфейс ksUserParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Дополнительные параметры редактирования предварительно задаются функцией ksDocument2D::ksSetMacroParam.

2. При ref = 0 выдаются параметры макроэлемента, редактирование которого производится в данный момент (если таковой имеется).

3. Должен быть распределен участок памяти userPars, совпадающий с аналогичным параметром функции ksDocument2D::ksSetMacroParam.


ksDocument2D::ksOpenTechnicalDemand

Открыть технические требования.

Аналог данного метода при использовании API экспортных функций - OpenTechnicalDemand.

Синтаксис Automation:

long ksOpenTechnicalDemand (LPDISPATCH pGab,

long style);

Входные параметры:

pGab	- указатель на интерфейс динамического массива ksDynamicArray параметров листов технических требований типа RECT_ARR.
style	- стиль текста для технических требований.
Системные стили текстов...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Технические требования - составной объект оформления чертежа. Объекты ksDocument2D::ksTextLine, вводимые между операторами ksOpenTechnicalDemand и ksDocument2D::ksCloseTechnicalDemand, принадлежат техническим требованиям.

Технические требования могут состоять из нескольких строк, строки могут состоять из нескольких компонент. Компоненты могут изменять параметры текущего шрифта.

ksCloseTechnicalDemand возвращает указатель на технические требования.

Если style = 0, то стиль текста - умолчательный.


ksDocument2D::ksCloseTechnicalDemand

Закрыть технические требования.

Аналог данного метода при использовании API экспортных функций - CloseTechnicalDemand.

Синтаксис Automation:

long ksCloseTechnicalDemand();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksSpecRough

Проставить знак неуказанной шероховатости в чертеже.

Аналог данного метода при использовании API экспортных функций - ksSpecRough.

Синтаксис Automation:

long ksSpecRough (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс знака неуказанной шероховатости ksSpecRoughParam.
Возвращаемое значение:

указатель на знак неуказанной шероховатости	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksViewPointer

Создать стрелку направления взгляда.

Аналог данного метода при использовании API экспортных функций - ViewPointer.

Синтаксис Automation:

long ksViewPointer (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс стрелки направления взгляда ksViewPointerParam.
Возвращаемое значение:

указатель на стрелку взгляда	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksCutLine

Создать линию разреза/сечения.

Аналог данного метода при использовании API экспортных функций - CutLine.

Синтаксис Automation:

long ksCutLine (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс линии разреза/сечения ksCutLineParam.
Возвращаемое значение:

указатель на линию разреза/сечения	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksApproximationCurve

Аппроксимировать кривую дугами и отрезками с определенной точностью.

Аналог данного метода при использовании API экспортных функций - ksApproximationCurve.

Синтаксис Automation:

long ksApproximationCurve (long p,

double eps,

BOOL curentLayer,

double maxRad,

BOOL smooth);

Входные параметры:

p	- указатель на аппроксимируемую кривую,
eps	- точность аппроксимации (от 1e-7 до 1)
curentLayer	- тип размещения получившихся объектов на слоях:  FALSE - на слой кривой,  TRUE - в текущий слой,
maxRad	- максимально допустимый радиус дуг,  (0 - ограничение не накладывается),
smooth	- признак сопряжения: 1 - гладкое,  0 - не гладкое.
Возвращаемое значение:

указатель на контур, дугу, отрезок	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Аппроксимируются кривые Безье, NURBS, эквидистанты, эллипсы, дуги эллипсов и контуры. Остальные кривые игнорируются.


ksDocument2D::ksTolerance

Проставить допуск формы.

Аналог данного метода при использовании API экспортных функций - Tolerance.

Синтаксис Automation:

long ksTolerance (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс допуска формы ksToleranceParam.
Возвращаемое значение:

указатель на допуск формы	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Опрераторы ksDocument2D::ksColumnNumber и ksDocument2D::ksTextLine, вводимые между операторами

ksDocument2D::ksTolerance и ksDocument2D::ksEndObj, принадлежат допуску формы.

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

По завершении создания объекта таблица форматируется и лишние ячейки удаляются. ksEndObj возвращает указатель на допуск формы.


ksDocument2D::ksOpenTolerance

Открыть допуск формы для редактирования.

Аналог данного метода при использовании API экспортных функций - ksOpenTolerance.

Синтаксис Automation:

long ksOpenTolerance (long tolerance);

Входной параметр:

tolerance	- указатель на допуск формы.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Чтобы закрыть редактирование допуска формы, нужно вызвать функцию ksDocument2D::ksEndObj.


ksDocument2D::ksGetToleranceColumnText

Получить текст ячейки.

Аналог данного метода при использовании API экспортных функций - ksGetToleranceColumnText.

Синтаксис Automation:

long ksGetToleranceColumnText (long* numb, LPDISPATCH par);

Выходные параметры:

numb	- номер ячейки,
par	- указатель на интерфейс ksTextLineParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования допуска формы

Нумерация ячеек начинается с единицы.

Если не определен номер ячейки с помощью функции ksDocument2D::ksColumnNumber , метод начинает работу с первой ячейки.

После выполнения метода происходит смещение на следующую ячейку.

Если par=0, все графы пройдены.

После использования массив par->pTextItem желательно удалить.


ksDocument2D::ksSetToleranceColumnText

Установить текст ячейки допуска формы.

Аналог данного метода при использовании API экспортных функций - ksSetToleranceColumnText.

Синтаксис Automation:

long ksSetToleranceColumnText (long numb, LPDISPATCH par);

Входные параметры:

numb	- номер ячейки,
par	- указатель на интерфейс ksTextLineParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования допуска формы.


ksDocument2D::ksGetPointOnToleranceTable

Получить координаты точки на таблице допуска формы.

Аналог данного метода при использовании API экспортных функций - ksGetPointOnToleranceTable.

Синтаксис Automation:

long ksGetPointOnToleranceTable (long tolerance,

short entry,

LPDISPATCH point);

Входные параметры:

tolerance	- указатель на допуск формы,
entry	- положение базовой точки.
Выходной параметр:

point	- указатель на интерфейс ksMathPointParam
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksOpenDocument

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

Аналог данного метода при использовании API экспортных функций - OpenDocument.

Синтаксис Automation:

BOOL ksOpenDocument (BSTR nameDoc, BOOL regim);

Входные параметры:

nameDoc	- имя документа,
regim	режим работы с документом: 0 - видимый,  1 - невидимый ("слепой")
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Невидимый режим применяется при пакетном (скрытом) формировании документа.

Открытый документ автоматически становится текущим.


ksDocument2D::ksSaveDocument

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

Аналог данного метода при использовании API экспортных функций - SaveDocument.

Синтаксис Automation:

BOOL ksSaveDocument (BSTR fileName);

Входной параметр:

fileName	- полное имя файла.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDocument2D::ksCloseDocument

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

Аналог данного метода при использовании API экспортных функций - CloseDocument.

Синтаксис Automation:

BOOL ksCloseDocument();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Если документ не сохранили, взводится флаг соответствующей ошибки.


ksDocument2D::ksCreateDocument

Создать документ (чертеж, фрагмент, текстовый документ, деталь, сборку).

Аналог данного метода при использовании API экспортных функций - CreateDocument.

Синтаксис Automation:

BOOL ksCreateDocument (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс документа ksDocumentParam.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

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


ksDocument2D::ksMovePoint

Сдвинуть точку в указанном направлении на указанное расстояние.

Аналог данного метода при использовании API экспортных функций - MovePoint.

Синтаксис Automation:

BOOL ksMovePoint (double* x,

double* y,

double ang,

double len);

Входные параметры:

x, y	- координаты точки,
ang	- угол вектора сдвига в градусах,
len	- длина вектора сдвига.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Параметры x и y являются одновременно и входными, и выходными. На входе они представляют собой начальные координаты точки, а в результате работы метода они преобразуются в координаты точки после сдвига.


ksDocument2D::ksReadTableFromFile

Создать таблицу, используя информацию, хранящуюся в файле *.tbl.

Аналог данного метода при использовании API экспортных функций - ksReadTableFromFile.

Синтаксис Automation:

long ksReadTableFromFile (BSTR tblFileName);

Входной параметр:

tblFileName	- полное имя к файлу таблицы.
Возвращаемое значение:

указатель на таблицу	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksDrawKompasDocument

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

Аналог данного метода при использовании API экспортных функций - ksDrawKompasDocument.

Синтаксис Automation:

long ksDrawKompasDocument (long HWindow,

BSTR docFileName);

Входные параметры:

Hwindow	- "несущее" окно,
docFileName	- полное имя файла документа.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Действие метода распространяется также на фрагменты и модели из библиотек. При этом имя файла должно иметь вид "c:\gr\lib1.l3d|детали|литье|фланец",
где
c:\gr\lib1.l3d 	- имя файла библиотеки,

|детали|литье| 	- разделы, подразделы внутри библиотеки,

фланец 	- имя фрагмента или модели.


ksDocument2D::ksViewGetObjectArea

Получить группу графических объектов, определяющих область выделения, используя визуальный процесс.

Аналог данного метода при использовании API экспортных функций - ksViewGetObjectArea.

Синтаксис Automation:

long ksViewGetObjectArea();

Возвращаемое значение:

указатель на временную группу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Так как сиcтема может работать только с одним процессом, то нужно завершить

другие процессные функции: ksDocument2D::ksCursor, ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow, ksDocument2D::ksEditViewObject.


ksDocument2D::ksGetMacroPlacement

Получить точку привязки и угол поворота - систему координат макрообъекта.

Аналог данного метода при использовании API экспортных функций - GetMacroPlacement.

Синтаксис Automation:

long ksGetMacroPlacement (long macro,

double* x,

double* y,

double* angl);

Входной параметр:

macro	- указатель на макрообъект (0 - редактируемый макроообъект),
Выходные параметры:

x, y	- координаты точки привязки,
angl	- угол поворота от оси OX против часовой стрелки (в градусах).
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи,
-1	- у макрообъекта нет СК (не вызывалась функция ksDocument2D::ksSetMacroPlacement).


ksDocument2D::ksSetMacroPlacement

Установить точку привязки и угол поворота - систему координат макрообъекта.

Аналог данного метода при использовании API экспортных функций - SetMacroPlacement.

Синтаксис Automation:

long ksSetMacroPlacement (long macro,

double x,

double y,

double angl,

long relativ);

Входные параметры:

macro	- указатель на макрообъект (0 - редактируемый макроообъект),
x, y	- координаты точки привязки,
angl	- угол поворота от оси OX против часовой стрелки (в градусах).
relativ	признак системы координат: 1 - x, y, angl показывают смещение относительно СК редактируемого макрообъекта, 0 - абсолютные значения x, y, angl в СК вида.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksDrawKompasGroup

Отрисовать группу как слайд в присланном окне.

Аналог данного метода при использовании API экспортных функций - ksDrawKompasGroup.

Синтаксис Automation:

long ksDrawKompasGroup (long HWindow, long gr);

Входные параметры:

Hwindow	- "несущее" окно,
gr	- указатель на группу.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetDocVariableArray

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

Аналог данного метода при использовании API экспортных функций - ksGetDocVariableArray.

Синтаксис Automation:

LPDISPATCH ksGetDocVariableArray (long p);

Входной параметр:

p	- указатель на документ или вставку фрагмента.
Возвращаемое значение:

	указатель на динамический массив ksDynamicArray параметрических переменных типа VARIABLE_ARR.
Смотрите также

ksVariable


ksDocument2D::ksSetDocVariableArray

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

Аналог данного метода при использовании API экспортных функций - ksSetDocVariableArray.

Синтаксис Automation:

long ksSetDocVariableArray (long obj,

LPDISPATCH arr,

BOOL setNote);

Входные параметры:

obj	- указатель на документ или вставку фрагмента,
arr	- указатель на динамический массив ksDynamicArray параметрических переменных типа VARIABLE_ARR.
setNote	признак редактирования комментариев: 0 - комментарии не менять,  1 - комментарии менять.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Смотрите также

ksVariable


ksDocument2D::ksGetDocOptions

Получить настройки графического документа.

Аналог данного метода при использовании API экспортных функций - GetDocOptions.

Синтаксис Automation:

long ksGetDocOptions (long optionsType, LPDISPATCH param);

Входной параметр:

optionsType	- тип настройки
Выходной параметр:

param	- указатель на интерфейс параметров
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Соответствие входных и выходных параметров...


ksDocument2D::ksSetDocOptions

Заменить настройки графического документа.

Аналог данного метода при использовании API экспортных функций - SetDocOptions.

Синтаксис Automation:

long ksSetDocOptions (long optionsType, LPDISPATCH param);

Входной параметр:

optionsType	- тип настройки
Выходной параметр:

param	- указатель на интерфейс параметров
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Соответствие входных и выходных параметров...


ksDocument2D::ksSetObjConstraint

Установить параметрическую связь или ограничение.

Аналог данного метода при использовании API экспортных функций - ksSetObjConstraint.

Синтаксис Automation:

long ksSetObjConstraint (long obj, LPDISPATCH par);

Входные параметры:

obj	- объект, на который накладывается связь или ограничение,
par	- указатель на интерфейс ksConstraintParam.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksDestroyObjConstraint

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

Аналог данного метода при использовании API экспортных функций - ksDestroyObjConstraint.

Синтаксис Automation:

long ksDestroyObjConstraint (long obj, LPDISPATCH par);

Входные параметры:

obj	- указатель на объект,
par	- указатель на интерфейс ksConstraintParam.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetObjConstraints

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

Аналог данного метода при использовании API экспортных функций - ksGetObjConstraints.

Синтаксис Automation:

LPDISPATCH ksGetObjConstraints (long obj);

Входной параметр:

obj	- указатель на объект,
Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray ограничений типа CONSTRAINT_ARR.
Смотрите также

ksConstraintParam


ksDocument2D::ksGetZona

Получить зону текущего чертежа по заданной точке.

Аналог данного метода при использовании API экспортных функций - ksGetZona.

Синтаксис Automation:

BSTR ksGetZona (double x,

double y,

long* res);

Входные параметры:

x, y	- координаты точки в текущем документе.
Выходной параметр:

res	результат работы метода:  0 - ошибка (например, точка вне документа или документ - не чертеж), -1 - в текущем документе нет разбиения на зоны;  1 - успешное завершение.
Возвращаемое значение:

	строка с названием зоны.


ksDocument2D::ksClearRegion

Очистить указанную область изнутри или снаружи границ, заданных группой объектов.

Аналог данного метода при использовании API экспортных функций - ksClearRegion.

Синтаксис Automation:

long ksClearRegion (long grClear,

long grRegion,

BOOL inside);

Входные параметры:

grClear	- группа геометрии, которую нужно очистить (0 - просматривать все объекты текущего вида),
grRegion	- группа объектов, задающая область очистки,
inside	- признак расположения удаляемых объектов:  0 - снаружи области, ограниченной grRegion,  1 - внутри области.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksNurbsForConicCurve

Создать кривую NURBS по характеристическим точкам конического сечения

Аналог данного метода при использовании API экспортных функций - NurbsForConicCurve.

Синтаксис Automation:

long ksNurbsForConicCurve (LPDISPATCH xArr,

LPDISPATCH yArr,

short style);

Входные параметры:

xArr, yArr	- указатели на интерфейсы динамических массивов ksDynamicArray чисел типа DOUBLE_ARR,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на кривую NURBS	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::GetStamp

Получить интерфейс ksStamp основной надписи документа.

Синтаксис Automation:

LPDISPATCH GetStamp();

Возвращаемое значение:

	указатель на интерфейс основной надписи ksStamp.


ksDocument2D::ksGetTextLength

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

Аналог данного метода при использовании API экспортных функций - GetTextLength.

Синтаксис Automation:

double ksGetTextLength (BSTR text,

long style);

Входные параметры:

text	- указатель на строку текста,
style	- стиль текста.
Системные стили текстов...

Возвращаемое значение:

	вычисленное значение длины текста (в миллиметрах).
Примечание:

Функция может принимать строку в синтаксисе версии КОМПАС 4 (спецзнаки, дроби, отклонения).


ksDocument2D::ksGetTextLengthFromReference

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

Аналог данного метода при использовании API экспортных функций - GetTextLengthFromReference.

Синтаксис Automation:

double ksGetTextLengthFromReference (long pText);

Входной параметр:

pText	- указатель на текст.
Возвращаемое значение:

	вычисленное значение длины текста (в миллиметрах).
Примечание:

Функция может принимать строку в синтаксисе версии КОМПАС 4 (спецзнаки, дроби, отклонения).


ksDocument2D::ksZoom

Увеличение изображения в окне прямоугольной рамкой.

Аналог данного метода при использовании API экспортных функций - ksZoom.

Синтаксис Automation:

long ksZoom (double x1,

double y1,

double x2,

double y2);

Входные параметры:

x1, y1	- координаты (в СК вида) первой точки диагонали рамки,
x2, y2	- координаты (в СК вида) второй точки диагонали рамки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksZoomScale

Изменение масштаба изображения в окне по точке и масштабу.

Аналог данного метода при использовании API экспортных функций - ksZoomScale.

Синтаксис Automation:

long ksZoomScale (double x,

double y,

double scale_);

Входные параметры:

x1, y1	- координаты (в СК вида) точки центра изменения масштаба,
scale_	- коэффициент изменения масштаба изображения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksZoomPrevNextOrAll

Показать документ в предыдущем/последующем масштабе или документ целиком.

Аналог данного метода при использовании API экспортных функций - ksZoomPrevNextOrAll.

Синтаксис Automation:

long ksZoomPrevNextOrAll (short type);

Входной параметр:

type	тип масштабирования: 0 - следующий масштаб, 1 - предыдущий масштаб, 2 - весь документ.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetZoomScale

Получить масштаб и центр активного окна графического документа.

Аналог данного метода при использовании API экспортных функций - ksGetZoomScale.

Синтаксис Automation:

long ksGetZoomScale (double* x,

double* y,

double* scale_);

Выходные параметры:

x, y	- координаты (в СК вида) точки центра изменения масштаба,
scale_	- коэффициент изменения масштаба изображения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksSpecificationOnSheet

Установить признак размещения спецификации на листе.

Аналог данного метода при использовании API экспортных функций - ksSpecificationOnSheet.

Синтаксис Automation:

long ksSpecificationOnSheet (short onSheet);

Входной параметр:

onSheet	- признак размещения спецификации на листе 1 - включено,  0 - выключено.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::GetSpecification

Получить указатель на интерфейс для работы с объектами спецификации.

Синтаксис Automation:

LPDISPATCH GetSpecification();

Возвращаемое значение:

	указатель на интерфейс для работы с объектами спецификации ksSpecification.


ksDocument2D::ksReDrawDocPart

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

Синтаксис Automation:

int ksReDrawDocPart (IDispatch* rect,

long view);

Входные параметры:

rect	- указатель на интерфейс ksRectParam параметров прямоугольника, ограничивающего перерисовываемую часть,
view	- указатель на вид.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksOrdinatedDimension

Создать размер высоты.

Аналог данного метода при использовании API экспортных функций - ksOrdinatedDimension.

Синтаксис Automation:

long ksOrdinatedDimension (IDispatch* ordPar);

Входной параметр:

ordPar	- указатель на интерфейс параметров размера высоты ksOrdinatedDimParam.
Возвращаемое значение:

указатель на размер высоты	- в случае удачного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetCursorLimit

Получить радиус окружности, вписанной в "ловушку" курсора.

Аналог данного метода при использовании API экспортных функций - ksGetCursorLimit.

Синтаксис Automation:

double ksGetCursorLimit();

Возвращаемое значение:

	радиус окружности, вписанной в "ловушку" курсора.


ksDocument2D::ksGetTextAlign

Получить точку привязки текста.

Аналог данного метода при использовании API экспортных функций - ksGetTextAlign.

Синтаксис Automation:

long ksGetTextAlign (long pText);

Входной параметр:

pText	- указатель на объект "текст".
Возвращаемое значение:

тип привязки текста	- в случае успешного завершения,
-1	- в случае неудачи.
Типы привязки текста...


ksDocument2D::ksSetTextAlign

Установить точку привязки текста.

Аналог данного метода при использовании API экспортных функций - ksSetTextAlign.

Синтаксис Automation:

long ksSetTextAlign (long pText, long align);

Входные параметры:

pText	- указатель на объект "текст",
align	- тип привязки текста.
Типы привязки текста...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksSetTextLineAlign

Установить выравнивание текста.

Аналог данного метода при использовании API экспортных функций - ksSetTextLineAlign.

Синтаксис Automation:

int ksSetTextLineAlign (short align);

Входной параметр:

align	- признак выравнивания: 0 - по левому краю, 1 - по центру, 2 - по правому краю, 3 - по ширине.
Возвращаемое значение:

предыдущий признак выравнивания	- в случае успешного завершения,
-1	- в случае неудачи.


ksDocument2D::ksEditViewObject

Запустить визуальный процесс редактирования объекта.

Аналог данного метода при использовании API экспортных функций - ksEditViewObject.

Синтаксис Automation:

int ksEditViewObject (long ref);

Входной параметр:

ref	- указатель на объект.
Возвращаемое значение:

1	- объект отредактирован,
0	- объект не отредактирован.
Примечание :

Так как сиcтема может работать только с одним процессом, требуется завершить другие процессные функции: ksDocument2D::ksCursor, ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow, ksDocument2D::ksCreateViewObject.


ksDocument2D::ksAddPowerForm

Ввести параметр для построения NURBS кусочно-степенным способом.

Аналог данного метода при использовании API экспортных функций - ksAddPowerForm.

Синтаксис Automation:

long ksAddPowerForm (double x, double y);

Входные параметры:

x, y	- параметры степенной функции  (см. Примечание).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание :

Кусочно-степеная форма состоит из последовательности стыкующихся полиномов:

P0 [0, 1), P1 [1, 2), ... Pk [k, k+1),

где Pi - полином, [i, i+1) - интервал определения,

Pi( t ).x = a0.x + a1.x * (t - i) + a2.x * (t - i) * (t - i) ... an.x * (t - i)^n

Pi( t ).y = a0.y + a1.y * (t - i) + a2.y * (t - i) * (t - i) ... an.y * (t - i)^n

Функция ksAddPowerForm должна вызываться последовательно n+1 раз для пар параметров (a0.x, a0.y), (a1.x, a1.y), ... (an.x, an.y).

Затем вызывается функция ksCreatePowerArc, которая создает из переданных параметров дугу NURBS степени n + 1 и присоединяет ее к существующей кривой NURBS.


ksDocument2D::ksCreatePowerArc

Построить дугу NURBS кусочно-степенным способом и присоединить ее к существующей кривой NURBS.

Аналог данного метода при использовании API экспортных функций - ksCreatePowerArc.

Синтаксис Automation:

long ksCreatePowerArc();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание :

Параметры для построения дуги определяются функцией ksAddPowerForm.


ksDocument2D::ksTrimNurbs

Усечь NURBS.

Аналог данного метода при использовании API экспортных функций - ksTrimNurbs.

Синтаксис Automation:

long ksTrimNurbs (long pObj,

double tMin,

double tMax );

Входные параметры:

pObj	- указатель на кривую NURBS или 0 для создаваемой кривой NURBS.
tMin, tMax	- границы интервала для усечения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::ksGetDimensionVariableName

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

Аналог данного метода при использовании API экспортных функций - ksGetDimensionVariableName.

Синтаксис Automation:

BSTR ksGetDimensionVariableName (long dimObj);

Входной параметр:

dimObj	- указатель на размер.
Возвращаемое значение:

строка  с именем переменной	- если размеру поставлена в соответствие переменная,
пустая строка	- если размеру не поставлена в соответствие переменная  или в случае неудачи


ksDocument2D::ksTrimCurve

Усечь кривую, оставив часть между указанными точками.

Аналог данного метода при использовании API экспортных функций - ksTrimCurve.

Синтаксис Automation:

long ksTrimCurve (long curve,

double x1, double y1,

double x2, double y2,

double x3, double y3,

bool deleteOldCurve );

Входные параметры:

curve	- указатель на усекаемую кривую,
x1, y1	- координаты начала оставляемого участка,
x2, y2	- координаты конца оставляемого участка,
x3, y3	- координаты точки, определяющей направление усечения для замкнутых кривых (эта точка принадлежит оставляемому участку),
deleteOldCurve	- признак удаления усекаемой кривой: TRUE - кривая будет удалена после усечения,  FALSE - кривая не будет удалена после усечения.
Возвращаемое значение:

указатель на усеченную кривую	- в случае успеха,
0	- в случае неудачи.
Примечание:

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


ksDocument2D::SaveAsToRasterFormat

Сохранить документ в растровом формате.

Аналог данного метода при использовании API экспортных функций - ksSaveAsToRasterFormat.

Синтаксис Automation:

BOOL SaveAsToRasterFormat (BSTR fileName,

LPDISPATCH rasterPar);

Входные параметры:

fileName	- полное имя файла документа,
rasterPar	- указатель на интерфейс ksRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.


ksDocument2D::RasterFormatParam

Получить указатель на интерфейс, определяющий параметры записи в растровый формат.

Синтаксис Automation:

LPDISPATCH RasterFormatParam();

Возвращаемое значение:

указатель на интерфейс ksRasterFormatParam	- в случае успешного завершения,
NULL	- в случае неудачи.


ksDocument2D::ksAxisLine

Создать объект "Осевая линия".

Аналог данного метода при использовании API экспортных функций - ksAxisLine.

Синтаксис Automation:

long ksAxisLine (LPDISPATCH param);

Входные параметры:

param	- указатель на интерфейс ksAxisLineParam параметров осевой линии.
Возвращаемое значение:

указатель на объект "Осевая линия"	- в случае успешного завершения,
0	- в случае неудачи.


ksDocument2D::SaveAsToUncompressedRasterFormat

Сохранить документ в растровом формате без сжатия.

Аналог данного метода при использовании API экспортных функций - ksSaveAsToUncompressedRasterFormat.

Синтаксис Automation:

BOOL SaveAsToUncompressedRasterFormat (BSTR fileName, IDispatch* rasterPar);

Входные параметры:

fileName	- имя файла документа, должно быть задано полное имя файла.
rasterPar	- указатель на интерфейс ksRasterFormatParam, определяющий параметры конвертации в растровый формат.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Метод позволяет сохранить документ в растровом формате без сжатия, с заданными свойствами: цветом, форматом (BMP, GIF, JPG, PNG, TIF, TGA, PCX) и т.п. Подробнее см. описание ksRasterFormatParam.


ksDocument2D::ksCreateSheetArbitraryView

Создать произвольный ассоциативный вид.

Аналог данного метода при использовании API экспортных функций - ksCreateSheetArbitraryView.

Синтаксис Automation:

long ksCreateSheetArbitraryView (LPDISPATCH par, long * number);

Входные параметры:

par	- указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида.
number	- номер создаваемого вида.
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Если значение параметра number = 0, то создается вид с номером по возрастанию.

3. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksDocument2D::ksCreateSheetStandartViews

Создать стандартные ассоциативные виды.

Аналог данного метода при использовании API экспортных функций - ksCreateSheetStandartViews.

Синтаксис Automation:

BOOL ksCreateSheetStandartViews (LPDISPATCH par, long bitVector, double dx, double dy);

Входные параметры:

par	- указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
bitVector	- набор типов стандартных видов, которые нужно создать,
dx	- расстояние между видами по горизонтали,
dy	- расстояние между видами по вертикали.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Последний из созданных видов становится текущим.


ksDocument2D::ksCreateSheetProjectionView

Создать проекционный ассоциативный вид.

Аналог данного метода при использовании API экспортных функций - ksCreateSheetStandartViews.

Синтаксис Automation:

long ksCreateSheetProjectionView (LPDISPATCH par, long * number, long view);

Входные параметры:

par	- указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number	- номер создаваемого вида,
view	- указатель на базовый вид.
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Базовый вид должен быть ассоциативным.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksDocument2D::ksCreateSheetArrowView

Создать ассоциативный вид по стрелке.

Аналог данного метода при использовании API экспортных функций - ksCreateSheetArrowView.

Синтаксис Automation:

long ksCreateSheetArrowView (LPDISPATCH par, long * number, long obj);

Входные параметры:

par	- указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number	- номер создаваемого вида,
obj	- указатель на объект "стрелка вида".
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Объект "стрелка вида" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksDocument2D::ksCreateSheetSectionView

Создать ассоциативный вид разреза/сечения.

Аналог данного метода при использовании API экспортных функций - ksCreateSheetSectionView.

Синтаксис Automation:

long ksCreateSheetSectionView (LPDISPATCH par, long * number, long obj);

Входные параметры:

par	- указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number	- номер создаваемого вида,
obj	- указатель на объект "линия разреза".
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Объект "линия разреза" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksDocument2D::ksRemoteElement

Создать объект "Выносной элемент".

Аналог данного метода при использовании API экспортных функций - ksRemoteElement.

Синтаксис Automation:

long ksRemoteElement (LPDISPATCH par);

Входные параметры:

par	- указатель на интерфейс ksRemoteElementParam параметров выносного элемента,
Возвращаемое значение:

указатель на объект "Выносной элемент"	- в случае успешного завершения,
Примечание:

Примечание : Создается новый объект "Выносной элемент" в текущем виде и в текущем документе.


ksDocument2D::ksCreateSheetRemoteView

Создать ассоциативный вид разреза/сечения.

Аналог данного метода при использовании API экспортных функций - ksCreateSheetRemoteView.

Синтаксис Automation:

long ksCreateSheetRemoteView (LPDISPATCH par, long * number, long obj);

Входные параметры:

par	- указатель на интерфейс ksAssociationViewParam параметров ассоциативного вида,
number	- номер создаваемого вида,
obj	- указатель на объект "Обозначение выносного элемента".
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Объект "Обозначение выносного элемента" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksDocument2D::ksGetDocumentType

Получить тип документа.

Аналог данного метода при использовании API экспортных функций - ksGetDocumentType.

Синтаксис Automation:

long ksGetDocumentType (long doc);

Входные параметры:

doc	- указатель на документ,
Возвращаемое значение:

тип документа	- в случае успешного завершения,
0	- в случае неудачи.
Типы документов

Примечание:

Если указатель doc = 0, возвращается тип активного документа.


ksDocument2D::ksRebuildDocument

Перестроить графический документ.

Аналог данного метода при использовании API экспортных функций - ksRebuildDocument.

Синтаксис Automation:

BOOL ksRebuildDocument();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

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


ksDocument2D::ksCopyObjEx

Копировать объект.

Аналог данного метода при использовании API экспортных функций - ksCopyObjEx.

Синтаксис Automation:

long ksCopyObjEx (LPDISPATCH param);

Входные параметры:

param	- указатель на интерфейс параметров ksCopyObjectParam
Возвращаемое значение:

указатель на объект или группу объектов	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция позволяет копировать объект (объект вида, вид, группу, слой) в новую точку с возможностью задания масштабирования копии и поворота ее вокруг базовой точки.


ksDocument2D::ksGetLeaderShelfLength

Копировать объект.

Аналог данного метода при использовании API экспортных функций - ksGetLeaderShelfLength.

Синтаксис Automation:

double ksGetLeaderShelfLength (long leader, double *x, double *y);

Входные параметры:

leader	- указатель на линию-выноску
Выходные параметры:

x	- координата конечной точки полки линии выноски по оси X
y	- координата конечной точки полки линии выноски по оси Y.


ksDocument2D::GetSelectionMngNotify

Получить объект обработки событий для графических документов - менеджер выделенных объектов.

Синтаксис Automation:

ksSelectionMngNotify * GetSelectionMngNotify();

Возвращаемое значение:

	- указатель на интерфейс источника событий ksSelectionMngNotify


ksDocument2D::GetObject2DNotify

Получить объект обработки событий для 2D, 3D документов - менеджер выделенных объектов.

Синтаксис Automation:

ksObject2DNotify * GetObject2DNotify (long objType);

Входные параметры:

objType	- объекты, для которых предназначен данный интерфейс событий
Возвращаемое значение:

	- указатель на интерфейс источника событий ksObject2DNotify
Примечание:

Значением objType является либо тип объекта (ALL_OBJ...AXISLINE_OBJ, VIEW_OBJ), либо указатель на объект.

Если задан тип объекта, события генерируются для всех объектов этого типа.

Если задан указатель на объект, события генерируются только для этого объекта.

Если задан тип объектов ALL_OBJ, события генерируются для всех объектов.


ksDocument2D::GetObject2DNotifyResult

Получить интерфейс результатов редактирования объекта графического документа.

Аналог данного метода при использовании API экспортных функций - ksGetObject2DNotifyResult.

Синтаксис Automation:

ksObject2DNotifyResult * GetObject2DNotifyResult();

Возвращаемое значение:

	- указатель на интерфейс источника событий ksObject2DNotifyResult


ksDocument2D::GetDocument2DNotify

Получить источник событий для графического документа.

Синтаксис Automation:

Document2DNotify* GetDocument2DNotify();

Возвращаемое значение:

	- указатель на интерфейс источника событий Document2DNotify


ksDocument2D::ksSetMaterialParam

Установить параметры материала в чертеже.

Аналог данного метода при использовании API экспортных функций - ksSetMaterialParam.

Синтаксис Automation:

long ksSetMaterialParam (LPDISPATCH material, double density);

Входные параметры:

material	- наименование материала, указатель на интерфейс динамического массива ksDynamicArray строк текста (TEXT_LINE_ARR),
density	- плотность.
Возвращаемое значение:

1	- в случае успеха;
0	- в случае неудачи.


ksDocument2D::ksTextEx

Создать многострочный текст.

Аналог данного метода при использовании API экспортных функций - ksTextEx.

Синтаксис Automation:

long ksTextEx (LPDISPATCH txtParam, long align);

Входные параметры:

txtParam	- указатель на интерфейс ksTextParam параметров текста,
align	- выравнивание текста: 0 - слева, 1 - по центру, 2 - справа, 3 - по ширине, -1 установить выравнивание как у стиля текста.
Возвращаемое значение:

указатель на созданный текст	- в случае успеха;
0	- в случае неудачи.


ksDocument2D::ksParametrizeObjects

Параметризовать группу объектов.

Аналог данного метода при использовании API экспортных функций - ksParametrizeObjects.

Синтаксис Automation:

long ksParametrizeObjects (long group, LPDISPATCH par);

Входные параметры:

group	- указатель на группу объектов,
par	- параметры параметризации объектов ksParametrizationParam.
Возвращаемое значение:

1	- в случае успеха;
0	- в случае неудачи.


ksDocument2D::ksCursorEx

Запрос к системе на получение координат точки или определение варианта действия.

Аналог данного метода при использовании API экспортных функций - CursorEx.

Синтаксис Automation:

long ksCursorEx (LPDISPATCH info,
double* x,
double* y,
LPDISPATCH phantom,
LPDISPATCH processParam);

Входные параметры:

info	- указатель на интерфейс ksRequestInfo,
phantom	- указатель на интерфейс ksPhantom,
processParam	- указатель на интерфейс IProcessParam,
Выходные параметры:

x, y	- возвращаемые координаты точки.
Возвращаемое значение:

-1	- если указана точка, идентификатор выбранной команды, определенный в файле ресурсов, порядковый номер в строке команд.
Примечание:

Возможные варианты (команды) задаются в строке commands интерфейса ksRequestInfo и разделяются восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений. Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


ksDocument2D::ksPlacementEx

Запрос к системе на получение координат точки и угла.

Аналог данного метода при использовании API экспортных функций - PlacementEx.

Синтаксис Automation:

long ksPlacementEx (LPDISPATCH info,
double* x,
double* y,
double* angle,
LPDISPATCH phantom,
LPDISPATCH processParam);

Входные параметры:

info	- указатель на интерфейс ksRequestInfo,
phantom	- указатель на интерфейс ksPhantom,
processParam	- указатель на интерфейс IProcessParam,
Выходные параметры:

x, y	- возвращаемые координаты точки.
angle	- возвращаемое значение угла.
Возвращаемое значение:

-1	- если указана точка, идентификатор выбранной команды, определенный в файле ресурсов, порядковый номер в строке команд.
Примечание:

Возможные варианты (команды) задаются в строке commands интерфейса ksRequestInfo и разделяются восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений. Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


ksDocument2D::ksAssociationViewMatrix3D

Создать матрицу ассоциативного вида.

Аналог данного метода при использовании API экспортных функций - ksAssociationViewMatrix3D.

Синтаксис Automation:

VARIANT ksAssociationViewMatrix3D (long view);

Входные параметры:

view	- указатель на ассоциативный вид.
Возвращаемое значение:

SAFEARRAY double (VT_ARRAY | VT_R8)

В массиве будут лежать 16 элементов, которые представляют собой матрицу размера 4х4.

Примечание:

Если указатель на вид не задан (view = 0), то метод будет выполняться для текущего вида.


ksDocument2D::ksPoint3DToAssociationView

Преобразовать координаты 3D точки в координаты ассоциативного вида.

Аналог данного метода при использовании API экспортных функций - ksPoint3DToAssociationView.

Синтаксис Automation:

BOOL ksPoint3DToAssociationView (long view,
double x3D, double y3D, double z3D,
double * x2D, double * y2D );

Входные параметры:

view	- указатель на ассоциативный вид,
x3D, y3D, z3D	- координаты 3D точки.
Выходные параметры:

x2D, y2D	- координаты 3D точки в ассоциативном виде.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Если указатель на вид не задан (view = 0), то функция будет выполняться для текущего вида.


Интерфейсы ksDocumentParam
ksDocumentParam

Аналог данных параметров при использовании API экспортных функций DocumentParam.

Интерфейс параметров документа.

ksDocumentParam	- интерфейс Automation
Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksDocumentParam::props
ksDocumentParam
свойства

author

comment

fileName

regime

type


ksDocumentParam::methods
ksDocumentParam
методы

GetLayoutParam

Init


ksDocumentParam::regime

Режим редактирования.

Тип данных - short.

Значения свойства:

0	- видимый,
1	- "слепой".
Синтаксис Automation:

fileName = iDocumentParam.fileName	Получить свойство (*)
iDocumentParam.fileName = fileName	Установить свойство (*)
fileName = iDocumentParam.GetFileName()	Получить свойство (**)
iDocumentParam.SetFileName( fileName )	Установить свойство (**)


ksDocumentParam::fileName

Имя файла.

Тип данных - BSTR.

Синтаксис Automation:

regime = iDocumentParam.regime	Получить свойство (*)
iDocumentParam.regime = regime	Установить свойство (*)
regime = iDocumentParam.GetRegime()	Получить свойство (**)
iDocumentParam.SetRegime(regime)	Установить свойство (**)


ksDocumentParam::comment

Комментарий.

Тип данных - BSTR.

Синтаксис Automation:

comment = iDocumentParam.comment	Получить свойство (*)
iDocumentParam.comment = comment	Установить свойство (*)
comment = iDocumentParam.GetComment()	Получить свойство (**)
iDocumentParam.SetComment(comment)	Установить свойство (**)


ksDocumentParam::author

Комментарий.

Тип данных - BSTR.

Синтаксис Automation:

author = iDocumentParam.author	Получить свойство (*)
iDocumentParam.author = author	Установить свойство (*)
author = iDocumentParam.GetAuthor()	Получить свойство (**)
iDocumentParam.SetAuthor(author)	Установить свойство (**)


ksDocumentParam::type

Тип документа.

Тип данных - short.

Синтаксис Automation:

type = iDocumentParam.type	Получить свойство (*)
iDocumentParam.type = type	Установить свойство (*)
type = iDocumentParam.GetType()	Получить свойство (**)
iDocumentParam.SetType(type)	Установить свойство (**)


ksDocumentParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры чертежа или фрагмента.


ksDocumentParam::GetLayoutParam

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

Синтаксис Automation:

LPDISPATCH GetLayoutParam();

Возвращаемое значение:

	указатель на интерфейс параметров оформления документа ksSheetPar.


Интерфейс ksDoubleValue
ksDoubleValue

Интерфейс для типа double.

Свойства...

Методы...

Примечания:

1. Данный интерфейс используется в качестве параметров узла NURBS и в динамическом массиве ksDynamicArray типа DOUBLE_ARR.

2. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksDoubleValue::props
ksDoubleValue
свойства

value


ksDoubleValue::methods
ksDoubleValue
методы

Init


ksDoubleValue::value

Значение.

Тип данных - double.

Синтаксис Automation:

value = iDoubleValue.value	Получить свойство (*)
iDoubleValue.value = value	Установить свойство (*)
value = iDoubleValue.GetValue()	Получить свойство (**)
iDoubleValue.SetValue( value )	Установить свойство (**)


ksDoubleValue::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры узла NURBS.


Интерфейс ksDimDrawingParam
ksDimDrawingParam

Интерфейс параметров отрисовки линейного и углового размеров.

Аналог данных параметров при использовании API экспортных функций - DimDrawing.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksDimDrawingParam::props
ksDimDrawingParam
свойства

ang

lenght

pl1

pl2

pt1

pt2

shelfDir

textBase

textPos


ksDimDrawingParam::methods
ksDimDrawingParam
методы

Init


ksDimDrawingParam::pl1

Признак отрисовки первой выносной линии.

Тип данных - BOOL.

Значения свойства:

FALSE	- первая выносная линия отрисовывается,
TRUE	- первая выносная линия не отрисовывается.
Синтаксис Automation:

pl1 = iDimDrawing.pl1	Получить свойство (*)
iDimDrawing.pl1 = pl1	Установить свойство (*)
pl1 = iDimDrawing.GetPl1()	Получить свойство (**)
iDimDrawing.SetPl1( pl1 )	Установить свойство (**)


ksDimDrawingParam::pl2

Признак отрисовки второй выносной линии.

Тип данных - BOOL.

Значения свойства:

FALSE	- вторая выносная линия отрисовывается,
TRUE	- вторая выносная линия не отрисовывается.
Синтаксис Automation:

pl2 = iDimDrawing.pl2	Получить свойство (*)
iDimDrawing.pl2 = pl2	Установить свойство (*)
pl2 = iDimDrawing.GetPl2()	Получить свойство (**)
iDimDrawing.SetPl2( pl2 )	Установить свойство (**)


ksDimDrawingParam::pt1

Тип стрелки у первой выносной линии размера.

Тип данных - short.

Значения свойства:

0	- стрелки нет,
1	- стрелка внутри,
2	- стрелка снаружи,
3	- засечка,
4	- точка.
Синтаксис Automation:

pt1 = iDimDrawing.pt1	Получить свойство (*)
iDimDrawing.pt1 = pt1	Установить свойство (*)
pt1 = iDimDrawing.GetPt1()	Получить свойство (**)
iDimDrawing.SetPt1( pt1 )	Установить свойство (**)


ksDimDrawingParam::pt2

Тип стрелки у второй выносной линии размера.

Тип данных - short.

Значения свойства:

0	- стрелки нет,
1	- стрелка внутри,
2	- стрелка снаружи,
3	- засечка,
4	- точка.
Синтаксис Automation:

pt2 = iDimDrawing.pt2	Получить свойство (*)
iDimDrawing.pt2 = pt2	Установить свойство (*)
pt2 = iDimDrawing.GetPt2()	Получить свойство (**)
iDimDrawing.SetPt2( pt2 )	Установить свойство (**)


ksDimDrawingParam::textPos

Положение текста размерной надписи.

Тип данных - long.

Значения свойства:

0	- автоматическое размещение текста,
> 0	- размещение текста на указанное расстояние в направлении от первой точки ко второй,
< 0	- размещение текста на указанное расстояние в направлении от второй точки к первой.
Синтаксис Automation:

textPos = iDimDrawing.textPos	Получить свойство (*)
iDimDrawing.textPos = textPos	Установить свойство (*)
textPos = iDimDrawing.GetTextPos()	Получить свойство (**)
iDimDrawing.SetTextPos( textPos )	Установить свойство (**)
Примечание:

Значение данного свойства задается в миллиметрах для линейных размеров и в градусах для угловых. Этот параметр - аннотационный (не зависит от масштаба, измеряется "по бумаге").


ksDimDrawingParam::textBase

Параметр отрисовки текста.

Тип данных - short.

Значения свойства:

0	- в центре,
1	- на расстояние (или угол) textPos относительно первой точки,
2	- на расстояние (или угол) textPos относительно второй точки,
3	- общая размерная линия.
Синтаксис Automation:

textBase = iDimDrawing.textBase	Получить свойство (*)
iDimDrawing.textBase = textBase	Установить свойство (*)
textBase = iDimDrawing.GetTextBase()	Получить свойство (**)
iDimDrawing.SetTextBase( textBase )	Установить свойство (**)


ksDimDrawingParam::shelfDir

Направление выносной полки.

Тип данных - long.

Значения свойства:

0	- нет полки,
-1	- полка влево,
1	- полка вправо,
2	- полка вверх,
3	- полка вниз.
Синтаксис Automation:

shelfDir = iDimDrawing.shelfDir	Получить свойство (*)
iDimDrawing.shelfDir = shelfDir	Установить свойство (*)
shelfDir = iDimDrawing.GetShelfDir()	Получить свойство (**)
iDimDrawing.SetShelfDir( shelfDir )	Установить свойство (**)


ksDimDrawingParam::ang

Угол наклона "ножки" выносной полки.

Тип данных - double.

Синтаксис Automation:

ang = iDimDrawing.ang	Получить свойство (*)
iDimDrawing.ang = ang	Установить свойство (*)
ang = iDimDrawing.GetAng()	Получить свойство (**)
iDimDrawing.SetAng( ang )	Установить свойство (**)


ksDimDrawingParam::lenght

Длина "ножки" выносной полки.

Тип данных - long.

Синтаксис Automation:

lenght = iDimDrawing.lenght	Получить свойство (*)
iDimDrawing.lenght = lenght	Установить свойство (*)
lenght = iDimDrawing.GetLenght()	Получить свойство (**)
iDimDrawing.GetLenght( lenght )	Установить свойство (**)
Примечание:

Данное свойство - аннотационное (не зависит от масштаба, измеряется "по бумаге").


ksDimDrawingParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры отрисовки линейного и углового размеров.


Интерфейс ksDynamicArray
ksDynamicArray

Интерфейс динамического массива.

Свойства...

Методы...

Типы динамических массивов

Указатель на интерфейс можно получить при помощи методов...

См. также...


ksDynamicArray::props
ksDynamicArray
свойства

reference


ksDynamicArray::methods
ksDynamicArray
методы

ksAddArrayItem

ksClearArray

ksDeleteArray

ksExcludeArrayItem

ksGetArrayCount

ksGetArrayItem

ksGetArrayType

ksSetArrayItem


ksDynamicArray::from
ksDynamicArray
методы получения

kompasObject::GetDynamicArray

kompasObject::ksGetLibraryStylesArray

KompasObject::ksGetLibraryStylesArray

ksAttributeObject::ksGetLibraryAttrTypesArray

ksAttributeTypeParam::GetColumns

ksBaseParam::GetPTextItem

ksBezierParam::GetMathPointArr

ksBrandLeaderParam::GetpPolyline

ksBrandLeaderParam::GetpTextline

ksColumnInfoParam::GetColumns

ksColumnInfoParam::GetFieldEnum

ksCurvePicture::GetFill

ksCurvePicture::GetPolygon

ksCurveStyleParam::GetPPattern

ksCutLineParam::GetpMathPoint

ksCutLineParam::GetpTextline

ksDimTextParam::GetTextArr

ksDocument2D::ksGetDocVariableArray

ksDocument2D::ksGetObjConstraints

ksLeaderParam::GetpPolyline

ksLeaderParam::GetpTextline

ksMarkerLeaderParam::GetpPolyline

ksMarkerLeaderParam::GetpTextline

ksMathematic2D::ksPointsOnCurve

ksNurbsParam::GetPKnot

ksNurbsParam::GetPPoint

ksPolylineParam::GetPMathPoint

ksPosLeaderParam::GetpPolyline

ksPosLeaderParam::GetpTextline

ksQualityContensParam::GetpQualityItems

ksRectangleParam::GetPCorner

ksRegularPolygonParam::GetPCorner

ksRoughPar::GetpText

ksSpcObjParam::GetDocArr

ksSpcStyleParam::GetArrAdditionalColumn

ksSpcStyleParam::GetArrColumn

ksSpcStyleParam::GetArrSection

ksSpcStyleSectionParam::GetArrAdditionalColumn

ksSpcStyleSectionParam::GetArrColumn

ksSpcTuningSectionParam::GetArrSubSection

ksSpcTuningStyleParam::GetArrSection

ksStamp::ksGetStampColumnText

ksTechnicalDemandParam::GetPGab

ksTextLineParam::GetTextItemArr

ksTextParam::GetTextLineArr

ksToleranceBranch::GetpMathPoint

ksToleranceParam::GetBranchArr

ksUserParam::GetUserArray

ksViewPointerParam::GetpTextline


ksDynamicArray::also
ksDynamicArray
см. также

KompasObject,

ksAttributeObject,

ksAttributeTypeParam,

ksBaseParam,

ksBezierParam,

ksBrandLeaderParam,

ksColumnInfoParam,

ksCurvePicture,

ksCurveStyleParam,

ksCutLineParam,

ksDimTextParam,

ksLeaderParam,

ksMarkerLeaderParam,

ksNurbsParam,

ksPolylineParam,

ksPosLeaderParam,

ksRectangleParam,

ksRegularPolygonParam,

ksRoughPar,

ksSpcObjParam,

ksSpcStyleParam,

ksSpcStyleSectionParam,

ksSpcTuningSectionParam,

ksSpcTuningStyleParam,

ksStamp,

ksTechnicalDemandParam,

ksTextLineParam,

ksTextParam,

ksToleranceBranch,

ksUserParam,

ksViewPointerParam.


ksDynamicArray::reference

Указатель на массив.

Тип данных - long.

Синтаксис Automation:

ref = iDynamicArray.reference	Получить свойство (*)
iDynamicArray.reference = ref	Установить свойство (*)
ref = iDynamicArray.GetReference()	Получить свойство (**)
iDynamicArray.SetReference(ref)	Установить свойство (**)


ksDynamicArray::ksDeleteArray

Удалить массив неопределенной длины.

Аналог данного метода при использовании API экспортных функций - DeleteArray.

Синтаксис Automation:

long ksDeleteArray();

Возвращаемое значение:

1	- в случае удачного завершения.


ksDynamicArray::ksClearArray

Очистить массив.

Аналог данного метода при использовании API экспортных функций - ClearArray.

Синтаксис Automation:

long ksClearArray();

Возвращаемое значение:

1	- в случае удачного завершения.


ksDynamicArray::ksGetArrayCount

Получить количество элементов в массиве.

Аналог данного метода при использовании API экспортных функций - GetArrayCount.

Синтаксис Automation:

long ksGetArrayCount();

Возвращаемое значение:

	количество элементов в массиве.


ksDynamicArray::ksGetArrayType

Получить тип массива.

Аналог данного метода при использовании API экспортных функций - GetArrayCount.

Синтаксис Automation:

long ksGetArrayType();

Возвращаемое значение:

	тип массива.
Типы динамических массивов...


ksDynamicArray::ksExcludeArrayItem

Исключить элемент из массива.

Аналог данного метода при использовании API экспортных функций - ExcludeArrayItem.

Синтаксис Automation:

long ksExcludeArrayItem (long index);

Входной параметр:

index	- индекс элемента в массиве  (нумерация начинается с 0).
Возвращаемое значение:

1	- в случае удачного завершения.


ksDynamicArray::ksAddArrayItem

Добавить элемент в массив.

Аналог данного метода при использовании API экспортных функций - AddArrayItem.

Синтаксис Automation:

long ksAddArrayItem (long index, LPDISPATCH item);

Входные параметры:

index	- индекс элемента, перед которым нужно вставить новый элемент,
item	- указатель на интерфейс соответствующего типа.
Возвращаемое значение:

1	- в случае удачного завершения.
Смотрите также:

Типы динамических массивов...


ksDynamicArray::ksGetArrayItem

Получить параметры элемента в массиве.

Аналог данного метода при использовании API экспортных функций - GetArrayItem.

Синтаксис Automation:

long ksGetArrayItem (long index,

LPDISPATCH item);

Входной параметр:

index	- индекс элемента в массиве  (нумерация начинается с 0).
Выходной параметр:

item	- указатель на интерфейс соответствующего типа.
Возвращаемое значение:

1	- в случае удачного завершения.
Смотрите также:

Типы динамических массивов...


ksDynamicArray::ksSetArrayItem

Установить параметры элемента в массиве.

Аналог данного метода при использовании API экспортных функций - SetArrayItem.

Синтаксис Automation:

long ksSetArrayItem(long index,

LPDISPATCH item);

Входные параметры:

index	- индекс элемента в массиве (нумерация начинается с 0),
item	- указатель на интерфейс соответствующего типа.
Возвращаемое значение:

1	- в случае удачного завершения.
Смотрите также:

Типы динамических массивов...


Интерфейс ksEllipseArcParam
ksEllipseArcParam

Интерфейс параметров дуги эллипса.

Аналог данных параметров при использовании API экспортных функций - EllipseArcParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksEllipseArcParam::props
ksEllipseArcParam
свойства

a, b

angleFirst

angle

angleSecond

direction

style

xc, yc


ksEllipseArcParam::methods
ksEllipseArcParam
методы

Init


ksEllipseArcParam::xc,
ksEllipseArcParam::yc

Координаты центра дуги эллипса.

Тип данных - double.

Синтаксис Automation:

xc = iEllipseArcParam.xc	Получить свойство (*)
iEllipseArcParam.xc = xc	Установить свойство (*)
xc = iEllipseArcParam.GetXc()	Получить свойство (**)
iEllipseArcParam.SetXc( xc )	Установить свойство (**)


ksEllipseArcParam::a,
ksEllipseArcParam::b

Длины полуосей эллипса.

Тип данных - double.

Синтаксис Automation:

a = iEllipseArcParam.a	Получить свойство (*)
iEllipseArcParam.a = a	Установить свойство (*)
a = iEllipseArcParam.GetA()	Получить свойство (**)
iEllipseArcParam.SetA( a )	Установить свойство (**)


ksEllipseArcParam::angle

Угол наклона дуги эллипса ( оси a ) к оси X.

Тип данных - double.

Синтаксис Automation:

angle = iEllipseArcParam.angle	Получить свойство (*)
iEllipseArcParam.angle = angle	Установить свойство (*)
angle = iEllipseArcParam.GetAngle()	Получить свойство (**)
iEllipseArcParam.SetAngle( angle )	Установить свойство (**)


ksEllipseArcParam::angleFirst

Начальный угол дуги относительно оси a.

Тип данных - double.

Синтаксис Automation:

angleFirst = iEllipseArcParam.angleFirst	Получить свойство (*)
iEllipseArcParam.angleFirst = angleFirst	Установить свойство (*)
angleFirst = iEllipseArcParam.GetAngleFirst()	Получить свойство (**)
iEllipseArcParam.SetAngleFirst( angleFirst )	Установить свойство (**)


ksEllipseArcParam::angleSecond

Конечный угол дуги отностиельно оси a.

Тип данных - double.

Синтаксис Automation:

angleSecond = iEllipseArcParam.angleSecond	Получить свойство (*)
iEllipseArcParam.angleSecond = angleSecond	Установить свойство (*)
angleSecond = iEllipseArcParam.GetAngleSecond()	Получить свойство (**)
iEllipseArcParam.SetAngleSecond( angleSecond )	Установить свойство (**)


ksEllipseArcParam::direction

Направление построения дуги эллипса.

Тип данных - double.

Значения свойства:

1	- против часовой стрелки,
-1	- по часовой стрелке.
Синтаксис Automation:

direction = iEllipseArcParam.direction	Получить свойство (*)
iEllipseArcParam.direction = direction	Установить свойство (*)
direction = iEllipseArcParam.GetDirection()	Получить свойство (**)
iEllipseArcParam.SetDirection( direction )	Установить свойство (**)


ksEllipseArcParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iEllipseArcParam.style	Получить свойство (*)
iEllipseArcParam.style = style	Установить свойство (*)
style = iEllipseArcParam.GetStyle()	Получить свойство (**)
iEllipseArcParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksEllipseArcParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры дуги эллипса


Интерфейс ksEllipseArcParam1
ksEllipseArcParam1

Интерфейс параметров для параметрического построения дуги эллипса.

Аналог данных параметров при использовании API экспортных функций - EllipseArcParam1.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksEllipseArcParam1::props
ksEllipseArcParam1
свойства

a

angle

b

direction

parFirst

parSecond

style

xc, yc


ksEllipseArcParam1::methods
ksEllipseArcParam1
методы

Init


ksEllipseArcParam1::xc,
ksEllipseArcParam1::yc

Координаты центра дуги эллипса.

Тип данных - double.

Синтаксис Automation:

xc = iEllipseArcParam1.xc	Получить свойство (*)
iEllipseArcParam1.xc = xc	Установить свойство (*)
xc = iEllipseArcParam1.GetXc()	Получить свойство (**)
iEllipseArcParam1.SetXc( xc )	Установить свойство (**)


ksEllipseArcParam1::a

Полуось а дуги эллипса.

Тип данных - double.

Синтаксис Automation:

a = iEllipseArcParam1.a	Получить свойство (*)
iEllipseArcParam1.a = a	Установить свойство (*)
a = iEllipseArcParam1.GetA()	Получить свойство (**)
iEllipseArcParam1.SetA( a )	Установить свойство (**)


ksEllipseArcParam1::b

Полуось b дуги эллипса.

Тип данных - double.

Синтаксис Automation:

b = iEllipseArcParam1.b	Получить свойство (*)
iEllipseArcParam1.b = b	Установить свойство (*)
b = iEllipseArcParam1.GetB()	Получить свойство (**)
iEllipseArcParam1.SetB( b )	Установить свойство (**)


ksEllipseArcParam1::angle

Угол наклона дуги эллипса (оси a) к оси X.

Тип данных - double.

Синтаксис Automation:

angle = iEllipseArcParam1.angle	Получить свойство (*)
iEllipseArcParam1.angle = angle	Установить свойство (*)
angle = iEllipseArcParam1.GetAngle()	Получить свойство (**)
iEllipseArcParam1.SetAngle( angle )	Установить свойство (**)


ksEllipseArcParam1::parFirst

Начальное значение параметра.

Тип данных - double.

Синтаксис Automation:

parFirst = iEllipseArcParam1.parFirst	Получить свойство (*)
iEllipseArcParam1.parFirst = parFirst	Установить свойство (*)
parFirst = iEllipseArcParam1.GetParFirst()	Получить свойство (**)
iEllipseArcParam1.SetParFirst( parFirst )	Установить свойство (**)


ksEllipseArcParam1::parSecond

Конечное значение параметра.

Тип данных - double.

Синтаксис Automation:

parSecond = iEllipseArcParam1.parSecond	Получить свойство (*)
iEllipseArcParam1.parSecond = parSecond	Установить свойство (*)
parSecond = iEllipseArcParam1.GetParSecond()	Получить свойство (**)
iEllipseArcParam1.SetParSecond( parSecond )	Установить свойство (**)


ksEllipseArcParam1::direction

Направление построения.

Тип данных - double.

Значения свойства:

1	- против часовой стрелки,
-1	- по часовой стрелке.
Синтаксис Automation:

direction = iEllipseArcParam1.direction	Получить свойство (*)
iEllipseArcParam1.direction = direction	Установить свойство (*)
direction = iEllipseArcParam1.GetDirection()	Получить свойство (**)
iEllipseArcParam1.SetDirection( direction )	Установить свойство (**)


ksEllipseArcParam1::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iEllipseArcParam1.style	Получить свойство (*)
iEllipseArcParam1.style = style	Установить свойство (*)
style = iEllipseArcParam1.GetStyle()	Получить свойство (**)
iEllipseArcParam1.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksEllipseArcParam1::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры параметрического дуги эллипса


Интерфейс ksEllipseParam
ksEllipseParam

Интерфейс параметров эллипса.

Аналог данных параметров при использовании API экспортных функций - EllipseParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksEllipseParam::props
ksEllipseParam
свойства

a, b

angle

style

xc, yc


ksEllipseParam::methods
ksEllipseParam
методы

Init


ksEllipseParam::xc,
ksEllipseParam::yc

Координаты центра эллипса.

Тип данных - double.

Синтаксис Automation:

xc = iEllipseParam.xc	Получить свойство (*)
iEllipseParam.xc = xc	Установить свойство (*)
xc = iEllipseParam.GetXc()	Получить свойство (**)
iEllipseParam.SetXc( xc )	Установить свойство (**)


ksEllipseParam::a,
ksEllipseParam::b

Длина полуосей эллипса.

Тип данных - double.

Синтаксис Automation:

a = iEllipseParam.a	Получить свойство (*)
iEllipseParam.a = a	Установить свойство (*)
a = iEllipseParam.GetA()	Получить свойство (**)
iEllipseParam.SetA( a )	Установить свойство (**)


ksEllipseParam::angle

Угол наклона оси эллипса a к оси X.

Тип данных - double.

Синтаксис Automation:

angle = iEllipseParam.angle	Получить свойство (*)
iEllipseParam.angle = angle	Установить свойство (*)
angle = iEllipseParam.GetAngle()	Получить свойство (**)
iEllipseParam.SetAngle( angle )	Установить свойство (**)


ksEllipseParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iEllipseParam.style	Получить свойство (*)
iEllipseParam.style = style	Установить свойство (*)
style = iEllipseParam.GetStyle()	Получить свойство (**)
iEllipseParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksEllipseParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры эллипса.


Интерфейс ksEquidistantParam
ksEquidistantParam

Интерфейс параметров эквидистанты.

Аналог данных параметров при использовании API экспортных функций - EquidistantParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksEquidistantParam::props
ksEquidistantParam
свойства

cutMode

degState

geoObj

radLeft

radRight

side

style


ksEquidistantParam::methods
ksEquidistantParam
методы

Init


ksEquidistantParam::geoObj

Графический объект - базовая кривая эквидистанты.

Тип данных - long.

Синтаксис Automation:

geoObj = iEquidistantParam.geoObj	Получить свойство (*)
iEquidistantParam.geoObj = geoObj	Установить свойство (*)
geoObj = iEquidistantParam.GetGeoObj()	Получить свойство (**)
iEquidistantParam.SetGeoObj( geoObj )	Установить свойство (**)


ksEquidistantParam::side

Признак, с какой стороны от базового объекта строить эквидистанту.

Тип данных - short.

Значения свойства:

0	- слева по направлению,
1	- справа по направлению,
2	- с двух сторон.
Синтаксис Automation:

side = iEquidistantParam.side	Получить свойство (*)
iEquidistantParam.side = side	Установить свойство (*)
side = iEquidistantParam.GetSide()	Получить свойство (**)
iEquidistantParam.SetSide( side )	Установить свойство (**)


ksEquidistantParam::cutMode

Тип обхода углов контура.

Тип данных - short.

Значения свойства:

0	- обход срезом,
1	- обход дугой.
Синтаксис Automation:

cutMode = iEquidistantParam.cutMode	Получить свойство (*)
iEquidistantParam.cutMode = cutMode	Установить свойство (*)
cutMode = iEquidistantParam.GetCutMode()	Получить свойство (**)
iEquidistantParam.SetCutMode( cutMode )	Установить свойство (**)


ksEquidistantParam::degState

Признак построения вырожденных сегментов эквидистанты .

Тип данных - BOOL.

Значения свойства:

0	- вырожденные сегменты не отрисовываются,
1	- вырожденные сегменты отрисовываются.
Синтаксис Automation:

degState = iEquidistantParam.degState	Получить свойство (*)
iEquidistantParam.degState = degState	Установить свойство (*)
degState = iEquidistantParam.GetDegState()	Получить свойство (**)
iEquidistantParam.SetDegState( degState )	Установить свойство (**)


ksEquidistantParam::radRight

Радиус эквидистанты справа по направлению базовой кривой.

Тип данных - double.

Синтаксис Automation:

radRight = iEquidistantParam.radRight	Получить свойство (*)
iEquidistantParam.radRight = radRight	Установить свойство (*)
radRight = iEquidistantParam.GetRadRight()	Получить свойство (**)
iEquidistantParam.SetRadRight( radRight )	Установить свойство (**)


ksEquidistantParam::radLeft

Радиус эквидистанты слева по направлению базовой кривой.

Тип данных - double.

Синтаксис Automation:

radLeft = iEquidistantParam.radLeft	Получить свойство (*)
iEquidistantParam.radLeft = radLeft	Установить свойство (*)
radLeft = iEquidistantParam.GetRadLeft()	Получить свойство (**)
iEquidistantParam.SetRadLeft( radLeft )	Установить свойство (**)


ksEquidistantParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iEquidistantParam.style	Получить свойство (*)
iEquidistantParam.style = style	Установить свойство (*)
style = iEquidistantParam.GetStyle()	Получить свойство (**)
iEquidistantParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksEquidistantParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры эквидистанты


Интерфейс ksFragment
ksFragment

Интерфейс фрагмента.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода ksDocument2D::GetFragment.

Смотрите также

KompasObject


ksFragment::methods
ksFragment
методы

ksCloseLocalFragmentDefinition

ksFragmentDefinition

ksInsertFragmentEx

ksInsertFragment

ksLocalFragmentDefinition

ksReadFragment

ksReadFragmentToGroupEx

ksReadFragmentToGroup

ksWriteFragment


ksFragment::ksReadFragment

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

Аналог данного метода при использовании API экспортных функций - ReadFragment.

Синтаксис Automation:

long ksReadFragment (LPCTSTR fileName,

BOOL curentLayer,

LPDISPATCH par);

Входные параметры:

fileName	- имя фрагмента,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на интерфейс ksPlacementParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.

В этом случае фрагмент берется из библиотеки фрагментов.


ksFragment::ksReadFragmentToGroup

Вставить фрагмент "россыпью" во временную группу.

Аналог данного метода при использовании API экспортных функций - ksReadFragmentToGroup.

Замечание:

Данный метод устарел. Рекомендуется использовать вместо него метод ksReadFragmentToGroupEx.

Синтаксис Automation:

long ksReadFragmentToGroup (LPCTSTR fileName,

BOOL curentLayer,

LPDISPATCH par);

Входные параметры:

fileName	- имя фрагмента,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на интерфейс ksPlacementParam.
Возвращаемое значение:

указатель на временную группу	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.

В этом случае фрагмент берется из библиотеки фрагментов.


ksFragment::ksReadFragmentToGroupEx

Вставить фрагмент "россыпью" во временную группу.

Аналог данного метода при использовании API экспортных функций - ksReadFragmentToGroupEx.

Синтаксис Automation:

long ksReadFragmentToGroup (LPCTSTR fileName,

BOOL curentLayer,

LPDISPATCH par

BOOL scaleProjLinesSize);

Входные параметры:

fileName	- имя фрагмента,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на интерфейс ksPlacementParam,
scaleProjLinesSize	- признак масштабирования длины выносных линий размеров: TRUE - выносные линии масштабируются, FALSE - выносные линии не масштабируются.
Возвращаемое значение:

указатель на временную группу	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.

В этом случае фрагмент берется из библиотеки фрагментов.


ksFragment::ksWriteFragment

Записать группу во фрагмент.

Аналог данного метода при использовании API экспортных функций - WriteFragment.

Синтаксис Automation:

long ksWriteFragment (long gr,

LPCTSTR fileName,

LPCTSTR comment,

double xb,

double yb);

Входные параметры:

gr	- указатель на группу (0 - записывается группа селектирования)
filename	- имя файла фрагмента,
comment	- комментарий для фрагмента,
xb, yb	- координаты точки привязки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksFragment::ksLocalFragmentDefinition

Определить данные для последующей вставки локального фрагмента по ссылке.

Аналог данного метода при использовании API экспортных функций - LocalFragmentDefinition.

Синтаксис Automation:

long ksLocalFragmentDefinition (LPCTSTR comment);

Входной параметр:

comment	- имя вставки
Возвращаемое значение:

указатель на определение фрагмента	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Вставка ссылки на фрагмент производится с помощью функции ksInsertFragment. Указатель на определение фрагмента возвращается при окончании описания - функцией ksCloseLocalFragmentDefinition.

Отдельного файла фрагмента нет; "тело" фрагмента хранится в документе.


ksFragment::ksCloseLocalFragmentDefinition

Закончить определение локального фрагмента.

Аналог данного метода при использовании API экспортных функций - CloseLocalFragmentDefinition.

Синтаксис Automation:

long ksCloseLocalFragmentDefinition();

Возвращаемое значение:

указатель на определение фрагмента	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Все объекты вида, вводимые между операторами ksLocalFragmentDefinition и ksCloseLocalFragmentDefinition, принадлежат локальному фрагменту.

Возвращаемый указатель используется в функциях ksInsertFragment, ksDeleteObj.


ksFragment::ksFragmentDefinition

Определить фрагмент для вставки.

Аналог данного метода при использовании API экспортных функций - FragmentDefinition.

Синтаксис Automation:

long ksFragmentDefinition (LPCTSTR fileName,

LPCTSTR comment,

short insertType);

Входные параметры:

fileName	- имя файла фрагмента,
comment	- имя вставки,
insertType	- тип вставки (действителен для внешнего фрагмента):  0 - взять в документ,  1 - внешней ссылкой.
Возвращаемое значение:

указатель на определение фрагмента	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция определяет данные для вставки фрагмента (внешнего или находящегося непосредственно в документе) с указанным именем по ссылке.

2. Непосредственно вставка фрагмента (вставка ссылки) производится

с помощью метода ksFragment::ksInsertFragment.

3. Допускается задание имени фрагмента следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.

В этом случае определение создается для фрагмента из библиотеки фрагментов.

4. Определение для данного фрагмента одно - вставок может быть сколько угодно.


ksFragment::ksInsertFragment

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

Аналог данного метода при использовании API экспортных функций - InsertFragment.

Замечание:

Данный метод устарел. Рекомендуется использовать вместо него метод ksInsertFragmentEx.

Синтаксис Automation:

long ksInsertFragment (long p,

BOOL curentLayer,

LPDISPATCH par);

Входные параметры:

p	- указатель на фрагмент,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на интерфейс ksPlacementParam.
Возвращаемое значение:

указатель на вставку фрагмента	- в случае успешного завершения,
0	- в случае неудачи.


ksFragment::ksInsertFragmentEx

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

Аналог данного метода при использовании API экспортных функций - ksInsertFragmentEx.

Синтаксис Automation:

long ksInsertFragmentEx (long p,

BOOL curentLayer,

LPDISPATCH par,

BOOL scaleProjLinesSize);

Входные параметры:

p	- указатель на фрагмент,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на интерфейс ksPlacementParam.
scaleProjLinesSize	- признак масштабирования длины выносных линий размеров: TRUE - выносные линии масштабируются, FALSE - выносные линии не масштабируются.
Возвращаемое значение:

указатель на вставку фрагмента	- в случае успешного завершения,
0	- в случае неудачи.


Интерфейс ksFragmentLibrary
ksFragmentLibrary

Интерфейс библиотеки фрагментов.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetFragmentLibrary.

Смотрите также

KompasObject


ksFragmentLibrary::methods
ksFragmentLibrary
методы

ksAddFragmentToLibrary

ksCheckFragmentLibrary

ksChoiceFragmentFromLib

ksExistFragmentInLibrary

ksFragmentLibraryOperation


ksFragmentLibrary::ksChoiceFragmentFromLib

Выбрать имя фрагмента или папки в библиотеке фрагментов.

Аналог данного метода при использовании API экспортных функций - ksChoiceFragmentFromLib.

Синтаксис Automation:

BSTR ksChoiceFragmentFromLib (BSTR frwLibFile,

long* type);

Входные параметры:

frwLibFile	- имя файла библиотеки фрагментов,
type	- тип возвращаемого значения:  3 - имя фрагмента,  2 - имя папки,  1- корень библиотеки фрагментов,  0 - ошибка.
Возвращаемое значение:

	имя фрагмента.
Примечание:

Библиотека фрагментов открывается в режиме диалога.

Ее редактирование запрещено.

Enter - выбор имени фрагмента. Esc - отказ.


ksFragmentLibrary::ksFragmentLibraryOperation

Открыть библиотеку фрагментов.

Аналог данного метода при использовании API экспортных функций - ksFragmentLibrary.

Синтаксис Automation:

long ksFragmentLibraryOperation (LPCTSTR libName, long type);

Входные параметры:

libName	- имя файла библиотеки фрагментов,
type	- тип действия.
Типы действий с библиотекой фрагментов...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При выполнении операций типа -1, 0, 1, 4, 5 libName - полное имя файла библиотеки фрагментов.

При выполнении операций типа 2, 3 libName - полное имя файла библиотеки фрагментов + путь внутри библиотеки с именем редактируемого фрагмента.


ksFragmentLibrary::ksAddFragmentToLibrary

Добавить фрагмент в библиотеку.

Аналог данного метода при использовании API экспортных функций - ksAddFragmentToLibrary.

Синтаксис Automation:

long ksAddFragmentToLibrary (BSTR libName,

BSTR frwName);

Входные параметры:

libName	- имя фрагмента в библиотеке,
libFile	- имя файла фрагмента.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени фрагмента следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.


ksFragmentLibrary::ksCheckFragmentLibrary

Проверить, открыта ли библиотека фрагментов.

Аналог данного метода при использовании API экспортных функций - ksCheckFragmentLibrary.

Синтаксис Automation:

long ksCheckFragmentLibrary (BSTR libName,

BOOL possibleMessage);

Входные параметры:

libName	- имя файла библиотеки фрагментов,
possibleMessage	- признак выдачи сообщения: TRUE - выдать сообщение, FALSE - не выдавать сообщение.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksFragmentLibrary::ksExistFragmentInLibrary

Проверить наличие указанного фрагмента или раздела в библиотеке фрагментов.

Аналог данного метода при использовании API экспортных функций - ksExistFragmentInLibrary.

Синтаксис Automation:

long ksExistFragmentInLibrary (BSTR frwName);

Входной параметр:

name	- имя файла библиотеки моделей.
Возвращаемое значение:

1	- указанный фрагмент или папака есть в библиотеке,
0	- указанного фрагмента или папки нет,
-1	- нет указанной библиотеки.
Примечание:

Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.


Интерфейс ksHatchLineParam
 ksHatchLineParam

Интерфейс параметров линии штриховки.

Аналог данных параметров при использовании API экспортных функций - HatchLineParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksHatchLineParam::props
ksHatchLineParam
свойства

ang

dx, dy

style

typeCurvStyle

x, y


ksHatchLineParam::methods
ksHatchLineParam
методы

GetCurPar

Init

SetCurPar


ksHatchLineParam::x,
ksHatchLineParam::y

Координаты точки привязки.

Тип данных - double.

Синтаксис Automation:

x = iHatchLineParam.x	Получить свойство (*)
iHatchLineParam.x = x	Установить свойство (*)
x = iHatchLineParam.GetX()	Получить свойство (**)
iHatchLineParam.SetX(x)	Установить свойство (**)


ksHatchLineParam::dx,
ksHatchLineParam::dy

Смещение следующей линии.

Тип данных - double.

Синтаксис Automation:

dx = iHatchLineParam.dx	Получить свойство (*)
iHatchLineParam.dx = dx	Установить свойство (*)
dx = iHatchLineParam.GetDx()	Получить свойство (**)
iHatchLineParam.SetDx(dx)	Установить свойство (**)


ksHatchLineParam::ang

Угол наклона линии (в градусах).

Тип данных - double.

Синтаксис Automation:

ang = iHatchLineParam.ang	Получить свойство (*)
iHatchLineParam.ang = ang	Установить свойство (*)
ang = iHatchLineParam.GetAng()	Получить свойство (**)
iHatchLineParam.SetAng(ang)	Установить свойство (**)


ksHatchLineParam::typeCurvStyle

Признак стиля линии.

Тип данных - short.

Значения свойства:

1	- пользовательский,
0	- системный.
Синтаксис Automation:

typeCurvStyle = iHatchLineParam.typeCurvStyle	Получить свойство (*)
iHatchLineParam.typeCurvStyle = typeCurvStyle	Установить свойство (*)
typeCurvStyle = iHatchLineParam.GetTypeCurvStyle()	Получить свойство (**)
iHatchLineParam.SetTypeCurvStyle(typeCurvStyle)	Установить свойство (**)
Смотрите также:

ksHatchLineParam::style


ksHatchLineParam::style

Стиль линии.

Тип данных - short.

Системные стили линий...

Синтаксис Automation:

style = iHatchLineParam.style	Получить свойство (*)
iHatchLineParam.style = style	Установить свойство (*)
style = iHatchLineParam.GetStyle()	Получить свойство (**)
iHatchLineParam.SetStyle(style)	Установить свойство (**)


ksHatchLineParam::GetCurPar

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

Синтаксис Automation:

LPDISPATCH GetCurPar();

Возвращаемое значение:

	указатель на интерфейс пользовательского стиля линии ksCurveStyleParam.


ksHatchLineParam::SetCurPar

Установить указатель на интерфейс пользовательского стиля линии.

Синтаксис Automation:

BOOL SetCurPar (LPDISPATCH curPar);

Входной параметр:

curPar	- указатель на интерфейс пользовательского стиля линии ksCurveStyleParam.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksHatchLineParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры линии штриховки.


Интерфейс ksHatchParam
ksHatchParam

Интерфейс параметров штриховки.

Аналог данных параметров при использовании API экспортных функций - HatchParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksHatchParam::props
ksHatchParam
свойства

ang

boundaries

color

sheeting

step

style

width

x, y


ksHatchParam::methods
ksHatchParam
методы

Init


ksHatchParam::x,
ksHatchParam::y

Координаты базовой точки штриховки.

Тип данных - double.

Синтаксис Automation:

x = iHatchParam.x	Получить свойство (*)
iHatchParam.x = x	Установить свойство (*)
x = iHatchParam.GetX()	Получить свойство (**)
iHatchParam.SetX( x )	Установить свойство (**)


ksHatchParam::step

Шаг штриховки.

Тип данных - double.

Синтаксис Automation:

step = iHatchParam.step	Получить свойство (*)
iHatchParam.step = step	Установить свойство (*)
step = iHatchParam.GetStep()	Получить свойство (**)
iHatchParam.SetStep( step )	Установить свойство (**)


ksHatchParam::ang

Угол штриховки.

Тип данных - double.

Синтаксис Automation:

ang = iHatchParam.ang	Получить свойство (*)
iHatchParam.ang = ang	Установить свойство (*)
ang = iHatchParam.GetAngle()	Получить свойство (**)
iHatchParam.SetAngle(ang)	Установить свойство (**)


ksHatchParam::width

Ширина полосы штриховки.

Тип данных - double.

Синтаксис Automation:

width = iHatchParam.width	Получить свойство (*)
iHatchParam.width = width	Установить свойство (*)
width = iHatchParam.GetWidth()	Получить свойство (**)
iHatchParam.SetWidth( width )	Установить свойство (**)
Примечание:

width = 0 - штриховать всю область.


ksHatchParam::boundaries

Указатель на временную группу границ штриховки.

Тип данных - long.

Синтаксис Automation:

boundaries = iHatchParam.boundaries	Получить свойство (*)
iHatchParam.boundaries = boundaries	Установить свойство (*)
boundaries = iHatchParam.GetBoundaries()	Получить свойство (**)
iHatchParam.SetBoundaries( boundaries )	Установить свойство (**)
Примечание:

Свойство boundaries используется для функций GetObjParam и ksHatch.


ksHatchParam::color

Цвет штриховки.

Тип данных - long.

Синтаксис Automation:

color = iHatchParam.color	Получить свойство (*)
iHatchParam.color = color	Установить свойство (*)
color = iHatchParam.GetColor()	Получить свойство (**)
iHatchParam.SetColor( color )	Установить свойство (**)


ksHatchParam::style

Стиль штриховки.

Тип данных - long.

Синтаксис Automation:

style = iHatchParam.style	Получить свойство (*)
iHatchParam.style = style	Установить свойство (*)
style = iHatchParam.GetStyle()	Получить свойство (**)
iHatchParam.SetStyle( style )	Установить свойство (**)
Системные стили штриховок...


ksHatchParam::sheeting

Тип угла штриховки.

Тип данных - short.

Значения свойства:

0	- угол штриховки относительно ее границ сохраняется при повороте границ (используется при изображении накатки на деталях),
1	- обычная штриховка (угол штриховки - постоянный).
Синтаксис Automation:

sheeting = iHatchParam.sheeting	Получить свойство (*)
iHatchParam.sheeting = sheeting	Установить свойство (*)
sheeting = iHatchParam.GetSheeting()	Получить свойство (**)
iHatchParam.SetSheeting(sheeting)	Установить свойство (**)


ksHatchParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры штриховки

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


Интерфейс ksHatchStyleParam
 ksHatchStyleParam

Интерфейс параметров стиля штриховки.

Аналог данных параметров при использовании API экспортных функций - HatchStyleParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksHatchStyleParam::props
ksHatchStyleParam
свойства

ang

color

isScalable

mayChangeAngle

mayChangeSpace

mayChangeWidth

name

step

width


ksHatchStyleParam::methods
ksHatchStyleParam
методы

GetArrLineParam

GetRefPoint

Init

SetArrLineParam

SetRefPoint


ksHatchStyleParam::name

Имя стиля штриховки.

Тип данных - строка.

Синтаксис Automation:

name = iHatchStyleParam.name	Получить свойство (*)
iHatchStyleParam.name = name	Установить свойство (*)
name = iHatchStyleParam.GetName()	Получить свойство (**)
iHatchStyleParam.SetName(name)	Установить свойство (**)


ksHatchStyleParam::step

Шаг штриховки.

Тип данных - double.

Синтаксис Automation:

step = iHatchStyleParam.step	Получить свойство (*)
iHatchStyleParam.step = step	Установить свойство (*)
step = iHatchStyleParam.GetStep()	Получить свойство (**)
iHatchStyleParam.SetStep(step)	Установить свойство (**)


ksHatchStyleParam::ang

Угол наклона линий штриховки.

Тип данных - double.

Синтаксис Automation:

ang = iHatchStyleParam.ang	Получить свойство (*)
iHatchStyleParam.ang = ang	Установить свойство (*)
ang = iHatchStyleParam.GetAng()	Получить свойство (**)
iHatchStyleParam.SetAng(ang)	Установить свойство (**)


ksHatchStyleParam::width

Ширина полосы штриховки.

Тип данных - double.

Синтаксис Automation:

width = iHatchStyleParam.width	Получить свойство (*)
iHatchStyleParam.width = width	Установить свойство (*)
width = iHatchStyleParam.GetWidth()	Получить свойство (**)
iHatchStyleParam.SetWidth(width)	Установить свойство (**)


ksHatchStyleParam::color

Цвет штриховки.

Тип данных - long.

Синтаксис Automation:

color = iHatchStyleParam.color	Получить свойство (*)
iHatchStyleParam.color = color	Установить свойство (*)
color = iHatchStyleParam.GetColor()	Получить свойство (**)
iHatchStyleParam.SetColor(color)	Установить свойство (**)


ksHatchStyleParam::mayChangeAngle

Признак, показывающий, разрешено ли менять угол наклона штриховки.

Тип данных - short.

Значения свойства:

1	- угол наклона менять можно,
0	- угол наклона менять нельзя.
Синтаксис Automation:

mayChangeAngle = iHatchStyleParam.mayChangeAngle	Получить свойство (*)
iHatchStyleParam.mayChangeAngle = mayChangeAngle	Установить свойство (*)
mayChangeAngle = iHatchStyleParam.GetMayChangeAngle()	Получить свойство (**)
iHatchStyleParam.SetMayChangeAngle( mayChangeAngle )	Установить свойство (**)


ksHatchStyleParam::mayChangeWidth

Признак, показывающий, разрешено ли менять ширину полосы штриховки.

Тип данных - short.

Значения свойства:

1	- ширину полосы штриховки менять можно,
0	- ширину полосы штриховки менять нельзя.
Синтаксис Automation:

mayChangeWidth = iHatchStyleParam. mayChangeWidth	Получить свойство (*)
iHatchStyleParam.mayChangeWidth = mayChangeWidth	Установить свойство (*)
mayChangeWidth = iHatchStyleParam.GetMayChangeWidth()	Получить свойство (**)
iHatchStyleParam.SetMayChangeWidth( mayChangeWidth )	Установить свойство (**)


ksHatchStyleParam::mayChangeSpace

Признак, показывающий, разрешено ли менять шаг (масштаб) штриховки.

Тип данных - short.

Значения свойства:

1	- шаг (масштаб) менять можно,
0	- шаг (масштаб) менять нельзя.
Синтаксис Automation:

mayChangeSpace = iHatchStyleParam.mayChangeSpace	Получить свойство (*)
iHatchStyleParam.mayChangeSpace = mayChangeSpace	Установить свойство (*)
mayChangeSpace = iHatchStyleParam.GetMayChangeSpace()	Получить свойство (**)
iHatchStyleParam.SetMayChangeSpace( mayChangeSpace )	Установить свойство (**)


ksHatchStyleParam::isScalable

Признак изменения расстояния между линиями штриховки.

Тип данных - short.

Значения свойства:

1	- по масштабу,
0	- по шагу.
Синтаксис Automation:

isScalable = iHatchStyleParam.isScalable	Получить свойство (*)
iHatchStyleParam.isScalable = isScalable	Установить свойство (*)
isScalable = iHatchStyleParam.GetIsScalable()	Получить свойство (**)
iHatchStyleParam.SetIsScalable( isScalable )	Установить свойство (**)
Примечание:

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


ksHatchStyleParam::GetRefPoint

Получить указатель на интерфейс базовой точки.

Синтаксис Automation:

LPDISPATCH GetRefPoint();

Возвращаемое значение:

	указатель на интерфейс базовой точки ksMathPointParam.


ksHatchStyleParam::SetRefPoint

Установить указатель на интерфейс базовой точки.

Синтаксис Automation:

BOOL SetRefPoint (LPDISPATCH refPoint);

Входной параметр:

refPoint	- указатель на интерфейс базовой точки ksMathPointParam.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksHatchStyleParam::GetArrLineParam

Получить указатель на интерфейс динамического массива структур параметров линий штриховки.

Синтаксис Automation:

LPDISPATCH GetArrLineParam();

Возвращаемое значение:

	указатель на динамический массив ksDynamicArray типа HATCHLINE_ARR.


ksHatchStyleParam::SetArrLineParam

Установить указатель на интерфейс динамического массива структур параметров линий штриховки.

Синтаксис Automation:

BOOL SetArrLineParam (LPDISPATCH arrLineParam);

Входной параметр:

arrLineParam	- указатель на динамический массив ksDynamicArray типа HATCHLINE_ARR.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksHatchStyleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры стиля штриховки.


Интерфейс ksInertiaParam
ksInertiaParam

Интерфейс параметров для расчета МЦХ плоской фигуры.

Аналог данных параметров при использовании API экспортных функций - InertiaParam.

Свойства...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksInertiaParam::props
ksInertiaParam
свойства

A

F

jx, jy

lx, ly

lxy

mx, my

mxy

xc, yc


ksInertiaParam::xc,
ksInertiaParam::yc

Координаты центра тяжести.

Тип данных - double.

Синтаксис Automation:

xc = iInertiaParam.xc	Получить свойство (*)
xc = iInertiaParam.GetXc()	Получить свойство (**)
Примечание:

Свойства только для чтения.


ksInertiaParam::F

Площадь.

Тип данных - double.

Синтаксис Automation:

F = iInertiaParam.F	Получить свойство (*)
F = iInertiaParam.GetF()	Получить свойство (**)
Примечание:

Свойство только для чтения.


ksInertiaParam::lx,
ksInertiaParam::ly

Моменты инерции относительно осей x и y.

Тип данных - double.

Синтаксис Automation:

lx = iInertiaParam.lx	Получить свойство (*)
lx = iInertiaParam.GetLx()	Получить свойство (**)
Примечание:

Свойства только для чтения.


ksInertiaParam::lxy

Центробежный момент инерции относительно исходных осей x и y.

Тип данных - double.

Синтаксис Automation:

lxy = iInertiaParam.lxy	Получить свойство (*)
lxy = iInertiaParam.GetLxy()	Получить свойство (**)
Примечание:

Свойство только для чтения.


ksInertiaParam::mx,
ksInertiaParam::my

Моменты инерции относительно осей, параллельных осям x и y и проходящих через центр тяжести.

Тип данных - double.

Синтаксис Automation:

mx = iInertiaParam.mx	Получить свойство (*)
mx = iInertiaParam.GetMx()	Получить свойство (**)
Примечание:

Свойства только для чтения.


ksInertiaParam::mxy

Центробежный момент инерции относительно осей, параллельных осям x и y.

Тип данных - double.

Синтаксис Automation:

mxy = iInertiaParam.mxy	Получить свойство (*)
mxy = iInertiaParam.GetMxy()	Получить свойство (**)
Примечание:

Свойство только для чтения.


ksInertiaParam::jx,
ksInertiaParam::jy

Главные центральные моменты инерции.

Тип данных - double.

Синтаксис Automation:

jx = iInertiaParam.jx	Получить свойство (*)
jx = iInertiaParam.GetJx()	Получить свойство (**)
Примечание:

Свойства только для чтения.


ksInertiaParam::A

Угол между первой главной осью и осью x.

Тип данных - double.

Синтаксис Automation:

A = iInertiaParam.A	Получить свойство (*)
A = iInertiaParam.GetA()	Получить свойство (**)
Примечание:

Свойство только для чтения.


Интерфейс ksInsertFragmentParam
ksInsertFragmentParam

Интерфейс параметров вставки фрагментов.

Аналог данных параметров при использовании API экспортных функций - InsertFragmentParamEx.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksInsertFragmentParam::props
ksInsertFragmentParam
свойства

comment

fileName

insertType

multiLayer


ksInsertFragmentParam::methods
ksInsertFragmentParam
методы

GetPlace

Init

SetPlace


ksInsertFragmentParam::fileName

Имя файла фрагмента.

Тип данных - строка.

Синтаксис Automation:

fileName = iInsertFragmentParam.fileName	Получить свойство (*)
iInsertFragmentParam.fileName = fileName	Установить свойство (*)
fileName = iInsertFragmentParam.GetFileName()	Получить свойство (**)
iInsertFragmentParam.SetFileName( fileName )	Установить свойство (**)
Примечание:

Для локального фрагмента свойство равно нулю.


ksInsertFragmentParam::comment

Имя вставки фрагмента.

Тип данных - строка.

Синтаксис Automation:

comment = iInsertFragmentParam.comment	Получить свойство (*)
iInsertFragmentParam.comment = comment	Установить свойство (*)
comment = iInsertFragmentParam.GetComment()	Получить свойство (**)
iInsertFragmentParam.SetComment( comment )	Установить свойство (**)


ksInsertFragmentParam::insertType

Способ вставки фрагмента.

Тип данных - short.

Значения свойства:

0	- взять в документ,
1	- вставить внешней ссылкой,
3	- вставить локальный фрагмент.
Синтаксис Automation:

insertType = iInsertFragmentParam.insertType	Получить свойство (*)
iInsertFragmentParam.insertType = insertType	Установить свойство (*)
insertType = iInsertFragmentParam.GetInsertType()	Получить свойство (**)
iInsertFragmentParam.SetInsertType( insertType )	Установить свойство (**)


ksInsertFragmentParam::multiLayer

Признак размещения объектов из вставленного фрагмента по слоям.

Тип данных - BOOL.

Значения свойства:

TRUE	- объекты на тех же слоях, что и во фрагменте-источнике,
FALSE	- объекты на одном слое.
Синтаксис Automation:

multiLayer = iInsertFragmentParam.multiLayer	Получить свойство (*)
iInsertFragmentParam.multiLayer = multiLayer	Установить свойство (*)
multiLayer = iInsertFragmentParam.GetMultiLayer()	Получить свойство (**)
iInsertFragmentParam.SetMultiLayer( multiLayer )	Установить свойство (**)


ksInsertFragmentParam::GetPlace

Получить указатель на интерфейс параметров местоположения.

Синтаксис Automation:

LPDISPATCH GetPlace();

Возвращаемое значение:

	указатель на интерфейс параметров местоположения ksPlacementParam.


ksInsertFragmentParam::SetPlace

Установить указатель на интерфейс параметров местоположения.

Синтаксис Automation:

BOOL SetPlace(LPDISPATCH place);

Входной параметр:

place	- указатель на интерфейс параметров местоположения ksPlacementParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksInsertFragmentParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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


Интерфейс ksIterator
ksIterator

Интерфейс итератора.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetIterator.

Смотрите также

KompasObject


ksIterator::props
ksIterator
свойства

reference


ksIterator::methods
ksIterator
методы

ksCreateAttrIterator

ksCreateIterator

ksCreateQualityIterator

ksCreateSpcIterator

ksDeleteIterator

ksMoveAttrIterator

ksMoveIterator

ksMoveQualityIterator


ksIterator::reference

Указатель на итератор.

Тип данных - long.

Синтаксис Automation:

ref = iIterator.reference	Получить свойство (*)
iIterator.reference = ref	Установить свойство (*)
ref = iIterator.GetReference()	Получить свойство (**)
iIterator.SetReference(ref)	Установить свойство (**)


ksIterator::ksCreateIterator

Cоздать итератор для перемещения по объектам документа.

Аналог данного метода при использовании API экспортных функций - CreateIterator.

Синтаксис Automation:

BOOL ksCreateIterator (long tipSearch,

long parent);

Входные параметры:

tipSearch	- тип объекта
parent	- указатель на объект (для движения по группе, внутри макрообъекта, по слою).
Типы объектов и интерфейсы...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Для перемещения по документам, видам, группам, слоям parent = 0.

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


ksIterator::ksMoveIterator

Переместить итератор (позиционироваться на объекте).

Аналог данного метода при использовании API экспортных функций - MoveIterator.

Синтаксис Automation:

long ksMoveIterator (BSTR ch);

Входной параметр:

ch	- направление перемещения итератора: F - первый объект, N - следующий объект.
Возвращаемое значение:

указатель на объект	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция перемещает текущий указатель итератора (блока параметров навигации) на очередной объект модели. Режим позиционирования (тип объектов, участвующих в поиске) определяются при создании итератора методом ksCreateIterator.

При позиционировании на именнованную группу она автоматически становится текущей (рабочей). К ней будут относиться операции добавления и исключения объектов ( при исключении всех объектов из именнованной группы она автоматически удаляется).


ksIterator::ksCreateAttrIterator

Создать итератор для перебора атрибутов объекта.

Аналог данного метода при использовании API экспортных функций - CreateAttrIterator.

Синтаксис Automation:

BOOL ksCreateAttrIterator(long obj,

long key1,

long key2,

long key3,

long key4,

double numb);

Входные параметры:

obj	- указатель на объект,
key1, key2, key3, key4	- ключи для поиска по ключам,
numb	- номер типа атрибута для поиска по номеру.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если obj = 0, то производится перемещение по объектам с заданным атрибутом внутри графического документа.

Если obj не равен 0, то объектом может быть объект вида, вид, группа, слой, тогда движение будет происходить по атрибутам этого объекта.

Если obj не равен 0, то объектом может быть документ, тогда движение будет происходить по атрибутам документа.


ksIterator::ksMoveAttrIterator

Перемещаться по атрибутам.

Аналог данного метода при использовании API экспортных функций - MoveAttrIterator.

Синтаксис Automation:

long ksMoveAttrIterator (BSTR ch,

long* pObj);

Входные параметры:

ch	- направление перемещения итератора: F - первый атрибут, N - следующий атрибут,
pObj	- указатель на группу.
Возвращаемое значение:

указатель на атрибут	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если итератор создан для движения по элементам с определенным атрибутом, то pObj - указатель на объект с данным атрибутом.


ksIterator::ksDeleteIterator

Удалить блок параметров навигации по модели.

Аналог данного метода при использовании API экспортных функций - DeleteIterator.

Синтаксис Automation:

long ksDeleteIterator();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksIterator::ksCreateSpcIterator

Создать итератор для перебора объектов спецификации.

Аналог данного метода при использовании API экспортных функций - CreateSpcIterator.

Синтаксис Automation:

BOOL ksCreateSpcIterator (BSTR nameLib,

long styleNumb,

long spcObjType);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
styleNumb	- номер стиля спецификации в библиотеке,
spcObjType	- тип объектов: 0 - базовые, 1 - вспомагательные, 2 - базовые и вспомагательные из сортированного массива, 3 - все объекты.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если функция вызывается в графическом документе, то итератор создается для объектов, образованных по описанию, определяемому именем библиотеки стилей спецификации и номером стиля.

В документе-спецификации параметры nameLib и styleNumb не используются (т.к. все объекты в ней создаются по единственному описанию, однозначно определяемому текущим стилем).


ksIterator::ksCreateQualityIterator

Создать итератор для перемещения по квалитетам.

Аналог данного метода при использовании API экспортных функций - ksCreateQualityIterator.

Синтаксис Automation:

BOOL ksCreateQualityIterator (short system,

short withLimitation);

Входные параметры:

system	- система допуска 1 - система отверстия,  0 - система вала,
withLimitation	- признак учета ограничений, наложенных в системе: 0 - без учёта ограничений,  1 - с учётом ограничений.
Возвращаемое значение:

указатель на итератор	- в случае успешного завершения,
0	- в случае неудачи.


ksIterator::ksMoveQualityIterator

Перемещаться по квалитетам.

Аналог данного метода при использовании API экспортных функций - ksMoveQualityIterator.

Синтаксис Automation:

BOOL ksMoveQualityIterator (LPDISPATCH param,

short inMM,

BSTR ch);

Входные параметры:

param	- указатель на интерфейс ksQualityContensParam,
inMM	- размерность параметров minLimit, maxLimit, high, low : 1 - миллиметры,  0 - единицы измерения текущего документа.
ch	- направление перемещения итератора: F - первый квалитет, N - следующий квалитет
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


Интерфейс ksLayerParam
ksLayerParam

Интерфейс параметров слоя.

Аналог данных параметров при использовании API экспортных функций - LayerParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLayerParam::props
ksLayerParam
свойства

color

name

state


ksLayerParam::methods
ksLayerParam
методы

Init


ksLayerParam::state

Состояние слоя.

Тип данных - short.

Синтаксис Automation:

state = iLayerParam.state	Получить свойство (*)
iLayerParam.state = state	Установить свойство (*)
state = iLayerParam.GetState()	Получить свойство (**)
iLayerParam.SetState( state )	Установить свойство (**)
Состояния слоев...


ksLayerParam::color

Цвет слоя в активном состоянии.

Тип данных - long.

Синтаксис Automation:

color = iLayerParam.color	Получить свойство (*)
iLayerParam.color = color	Установить свойство (*)
color = iLayerParam.GetColor()	Получить свойство (**)
iLayerParam.SetColor( color )	Установить свойство (**)


ksLayerParam::name

Имя слоя.

Тип данных - строка.

Синтаксис Automation:

name = iLayerParam.name	Получить свойство (*)
iLayerParam.name = name	Установить свойство (*)
name = iLayerParam.GetName()	Получить свойство (**)
iLayerParam.SetName( name )	Установить свойство (**)


ksLayerParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры слоя.


Интерфейс ksLBreakDimParam
ksLBreakDimParam

Интерфейс параметров линейного размера c обрывом.

Аналог данных параметров при использовании API экспортных функций - LBreakDimParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLBreakDimParam::methods
ksLBreakDimParam
методы

GetDPar

GetSPar

GetTPar

SetDPar

SetSPar

SetTPar


ksLBreakDimParam::GetTPar

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

Синтаксис Automation:

LPDISPATCH GetTPar();

Возвращаемое значение:

	указатель на интерфейс параметров размерной надписи ksDimTextParam.


ksLBreakDimParam::SetTPar

Установить указатель на интерфейс параметров размерной надписи.

Синтаксис Automation:

BOOL SetTPar (LPDISPATCH tPar);

Входной параметр:

tPar	- указатель на интерфейс параметров размерной надписи ksDimTextParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksLBreakDimParam::GetDPar

Получить указатель на интерфейс параметров изображения размера.

Синтаксис Automation:

LPDISPATCH GetDPar();

Возвращаемое значение:

	указатель на интерфейс параметров изображения размера ksBreakDimDrawing.


ksLBreakDimParam::SetDPar

Установить указатель на интерфейс параметров изображения размера.

Синтаксис Automation:

BOOL SetDPar (LPDISPATCH dPar);

Входной параметр:

dPar	- указатель на интерфейс параметров изображения размера ksBreakDimDrawing.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksLBreakDimParam::GetSPar

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

Синтаксис Automation:

LPDISPATCH GetSPar();

Возвращаемое значение:

	указатель на интерфейс параметров привязки линейного размера ksLBreakDimSource.


ksLBreakDimParam::SetSPar

Установить указатель на интерфейс параметров привязки линейного размера.

Синтаксис Automation:

BOOL SetSPar(LPDISPATCH sPar);

Входной параметр:

sPar	- указатель на интерфейс параметров привязки линейного размера ksLBreakDimSource.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


Интерфейс ksLBreakDimSource
ksLBreakDimSource

Интерфейс параметров привязки линейного размера с обрывом.

Аналог данных параметров при использовании API экспортных функций - LBreakDimSource.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLBreakDimSource::props
ksLBreakDimSource
свойства

x1, y1

x2, y2

x3, y3


ksLBreakDimSource::methods
ksLBreakDimSource
методы

Init


ksLBreakDimSource::x1,
ksLBreakDimSource::y1

Координаты первой точки привязки.

Тип данных - double.

Синтаксис Automation:

x1 = iLBreakDimSource.x1	Получить свойство (*)
iLBreakDimSource.x1 = x1	Установить свойство (*)
x1 = iLBreakDimSource.GetX1()	Получить свойство (**)
iLBreakDimSource.SetX1( x1 )	Установить свойство (**)


ksLBreakDimSource::x2,
ksLBreakDimSource::y2

Координаты точки выхода стрелки.

Тип данных - double.

Синтаксис Automation:

x2 = iLBreakDimSource.x2	Получить свойство (*)
iLBreakDimSource.x2 = x2	Установить свойство (*)
x2 = iLBreakDimSource.GetX2()	Получить свойство (**)
iLBreakDimSource.SetX2( x2 )	Установить свойство (**)


ksLBreakDimSource::x3,
ksLBreakDimSource::y3

Координаты точки на размерной линии.

Тип данных - double.

Синтаксис Automation:

x3 = iLBreakDimSource.x3	Получить свойство (*)
iLBreakDimSource.x3 = x3	Установить свойство (*)
x3 = iLBreakDimSource.GetX3()	Получить свойство (**)
iLBreakDimSource.SetX3( x3 )	Установить свойство (**)


ksLBreakDimSource::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры привязки линейного размера с обрывом.


Интерфейс ksLDimParam
ksLDimParam

Интерфейс параметров линейного размера.

Аналог данных параметров при использовании API экспортных функций - LDimParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLDimParam::methods
ksLDimParam
методы

GetDPar

GetSPar

GetTPar

SetDPar

SetSPar

SetTPar


ksLDimParam::GetTPar

Получить указатель на интерфейс параметров размерной надписи ksDimTextParam.

Синтаксис Automation:

LPDISPATCH GetTPar();

Возвращаемое значение:

	указатель на интерфейс параметров размерной надписи ksDimTextParam.


ksLDimParam::SetTPar

Установить размерную надпись.

Синтаксис Automation:

BOOL SetTPar(LPDISPATCH tPar);

Входной параметр:

tPar	- указатель на интерфейс параметров размерной надписи ksDimTextParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksLDimParam::GetDPar

Получить указатель на интерфейс параметров отрисовки линейного размера ksDimDrawingParam.

Синтаксис Automation:

LPDISPATCH GetDPar();

Возвращаемое значение:

	указатель на интерфейс параметров отрисовки линейного размера ksDimDrawingParam.


ksLDimParam::SetDPar

Установить параметры изображения размера.

Синтаксис Automation:

BOOL SetDPar (LPDISPATCH dPar);

Входной параметр:

dPar	- указатель на интерфейс параметров отрисовки линейного размера ksDimDrawingParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksLDimParam::GetSPar

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

Синтаксис Automation:

LPDISPATCH GetSPar();

Возвращаемое значение:

	указатель на интерфейс параметров привязки линейного размера ksLDimSourceParam.


ksLDimParam::SetSPar

Установить параметры привязки линейного размера.

Синтаксис Automation:

BOOL SetSPar (LPDISPATCH sPar);

Входной параметр:

sPar	- указатель на интерфейс параметров привязки линейного размера ksLDimSourceParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


Интерфейс ksLDimSourceParam
ksLDimSourceParam

Интерфейс параметров привязки линейного размера.

Аналог данных параметров при использовании API экспортных функций - LDimSource.

Свойства...

Методы...

Примечания:

1. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

2. Вектор, определяющий положение размерной линии - аннотационный (не зависит от масштаба).

Смотрите также

KompasObject


ksLDimSourceParam::props
ksLDimSourceParam
свойства

basePoint

dx, dy

ps

x1, y1

x2, y2


ksLDimSourceParam::methods
ksLDimSourceParam
методы

Init


ksLDimSourceParam::x1,
ksLDimSourceParam::y1

Координаты первой точки привязки.

Тип данных - double.

Синтаксис Automation:

x1 = iLDimSource.x1	Получить свойство (*)
iLDimSource.x1 = x1	Установить свойство (*)
x1 = iLDimSource.GetX1()	Получить свойство (**)
iLDimSource.SetX1( x1 )	Установить свойство (**)


ksLDimSourceParam::x2,
ksLDimSourceParam::y2

Координаты второй точки привязки.

Тип данных - double.

Синтаксис Automation:

x2 = iLDimSource.x2	Получить свойство (*)
iLDimSource.x2 = x2	Установить свойство (*)
x2 = iLDimSource.GetX2()	Получить свойство (**)
iLDimSource.SetX2( x2 )	Установить свойство (**)


ksLDimSourceParam::dx,
ksLDimSourceParam::dy

Вектор, определяющий положение размерной линии.

Тип данных - double.

Синтаксис Automation:

dx = iLDimSource.dx	Получить свойство (*)
iLDimSource.dx = dx	Установить свойство (*)
dx = iLDimSource.GetDx()	Получить свойство (**)
iLDimSource.SetDx( dx )	Установить свойство (**)


ksLDimSourceParam::ps

Признак ориентации размерной линии.

Тип данных - short.

Значения свойства:

0	- горизонтально,
1	- вертикально,
2	- параллельно отрезку,
3	- по dx, dy,
4	- параллельно отрезку с выносными линиями по dx, dy
Синтаксис Automation:

ps = iLDimSource.ps	Получить свойство (*)
iLDimSource.ps = ps	Установить свойство (*)
ps = iLDimSource.GetPs()	Получить свойство (**)
iLDimSource.SetPs( ps )	Установить свойство (**)


ksLDimSourceParam::basePoint

Признак, указывающий, от какой точки откладывать вектор по dx, dy.

Тип данных - short.

Значения свойства:

1	- от первой точки,
2	- от второй точки.
Синтаксис Automation:

basePoint = iLDimSource.basePoint	Получить свойство (*)
iLDimSource.basePoint = basePoint	Установить свойство (*)
basePoint = iLDimSource.GetBasePoint()	Получить свойство (**)
iLDimSource.SetBasePoint( basePoint )	Установить свойство (**)


ksLDimSourceParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры привязки линейного размера


Интрефейс ksLeaderParam
ksLeaderParam

Интерфейс параметров линии-выноски.

Аналог данных параметров при использовании API экспортных функций - LeaderParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLeaderParam::props
ksLeaderParam
свойства

around

arrowType

cText0

cText1

cText2

cText3

dirX

signType

x, y


ksLeaderParam::methods
ksLeaderParam
методы

GetpPolyline

GetpTextline

Init

SetpPolyline

SetpTextline


ksLeaderParam::x,
ksLeaderParam::y

Координаты базовой точки линии-выноски.

Тип данных - short.

Синтаксис Automation:

x = iLeaderParam.x	Получить свойство (*)
iLeaderParam.x = x	Установить свойство (*)
x = iLeaderParam.GetX()	Получить свойство (**)
iLeaderParam.SetX(x)	Установить свойство (**)
Примечание:

Базовая точка линии-выноски - начало полки, точка выхода из нее "ножки".


ksLeaderParam::arrowType

Тип указателя линии-выноски.

Тип данных - short.

Значения свойства:

0	- указатель отсутствует,
1	- точка,
2	- стрелка,
3	- верхняя половина стрелки,
4	- нижняя половина стрелки.
Синтаксис Automation:

arrowType = iLeaderParam.arrowType	Получить свойство (*)
iLeaderParam.arrowType = arrowType	Установить свойство (*)
arrowType = iLeaderParam.GetArrowType()	Получить свойство (**)
iLeaderParam.SetArrowType(arrowType)	Установить свойство (**)


ksLeaderParam::dirX

Направление полки линии-выноски.

Тип данных - long.

Значения свойства:

0	- нет полки,
-1	- полка влево,
1	- полка вправо,
2	- полка вверх,
3	- полка вниз.
Синтаксис Automation:

dirX = iLeaderParam.dirX	Получить свойство (*)
iLeaderParam.dirX = dirX	Установить свойство (*)
dirX = iLeaderParam.GetDirX()	Получить свойство (**)
iLeaderParam.SetDirX( dirX )	Установить свойство (**)


ksLeaderParam::signType

Тип знака на "ножке" линии-выноски.

Тип данных - short.

Значения свойства:

0	- знак отсутствует,
1	- знак склеивания,
2	- знак пайки,
3	- знак сшивания,
4	- знак соединения внахлестку металлическими скобами,
5	- знак углового соединения металлическими скобами,
6	- знак монтажного шва.
Синтаксис Automation:

signType = iLeaderParam.signType	Получить свойство (*)
iLeaderParam.signType = signType	Установить свойство (*)
signType = iLeaderParam.GetSignType()	Получить свойство (**)
iLeaderParam.SetSignType( signType )	Установить свойство (**)


ksLeaderParam::around

Признак наличия на линии-выноске знака обработки по контуру.

Тип данных - short.

Значения свойства:

0	- знак отсутствует,
1	- знак присутствует.
Синтаксис Automation:

around = iLeaderParam.around	Получить свойство (*)
iLeaderParam.around = around	Установить свойство (*)
around = iLeaderParam.GetAround()	Получить свойство (**)
iLeaderParam.SetAround( around )	Установить свойство (**)


ksLeaderParam::cText0

Количество строк текста над полкой линии-выноски.

Тип данных - short.

Синтаксис Automation:

cText0 = iLeaderParam.cText0	Получить свойство (*)
iLeaderParam.cText0 = cText0	Установить свойство (*)
cText0 = iLeaderParam.GetCText0()	Получить свойство (**)
iLeaderParam.SetCText0( cText0 )	Установить свойство (**)


ksLeaderParam::cText1

Количество строк текста под полкой.

Тип данных - short.

Синтаксис Automation:

cText1 = iLeaderParam.cText1	Получить свойство (*)
iLeaderParam.cText1 = cText1	Установить свойство (*)
cText1 = iLeaderParam.GetcText1()	Получить свойство (**)
iLeaderParam.SetcText1( cText1 )	Установить свойство (**)


ksLeaderParam::cText2

Количество строк текста над "ножкой" линии-выноски (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText2 = iLeaderParam.cText2	Получить свойство (*)
iLeaderParam.cText2 = cText2	Установить свойство (*)
cText2 = iLeaderParam.GetcText2()	Получить свойство (**)
iLeaderParam.SetcText2( cText2 )	Установить свойство (**)


ksLeaderParam::cText3

Количество строк текста под "ножкой" линии-выноски (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText3 = iLeaderParam.cText3	Получить свойство (*)
iLeaderParam.cText3 = cText3	Установить свойство (*)
cText3 = iLeaderParam.GetcText3()	Получить свойство (**)
iLeaderParam.SetcText3(cText3)	Установить свойство (**)


ksLeaderParam::GetpTextline

Получить указатель на интерфейс динамического массива текста линии выноски ksDynamicArray типа TEXT_LINE_ARR.

Синтаксис Automation:

LPDISPATCH GetpTextline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа TEXT_LINE_ARR.
Примечание:

Различают 4 разных текста для линии-выноски, их строки лежат в следующей последовательности:

-текст над полкой. Если свойство cText0 = 0, то этот текст отсутствует;

-текст под полкой. Если свойство cText1 = 0, то этот текст отсутствует;

-текст над ножкой. Если свойство cText2 = 0, то этот текст отсутствует;

-текст под ножкой. Если свойство cText3 = 0, то этот текст отсутствует.

Смотрите также:

ksTextLineParam


ksLeaderParam::SetpTextline

Установить указатель на интерфейс динамического массива текста линии выноски ksDynamicArray типа TEXT_LINE_ARR.

Синтаксис Automation:

BOOL SetpTextline (LPDISPATCH pTextline);

Входной параметр:

pTextline	- указатель на интерфейс динамического массива ksDynamicArray типа TEXT_LINE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Различают 4 разных текста для линии-выноски, их строки лежат в следующей последовательности:

-текст над полкой. Если свойство cText0 = 0, то этот текст отсутствует;

-текст под полкой. Если свойство cText1 = 0, то этот текст отсутствует;

-текст над ножкой. Если свойство cText2 = 0, то этот текст отсутствует;

-текст под ножкой. Если свойство cText3 = 0, то этот текст отсутствует.

Смотрите также:

ksTextLineParam


ksLeaderParam::GetpPolyline

Получить указатель на интерфейс динамического массива ответвлений линии-выноски ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

LPDISPATCH GetpPolyline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Примечание:

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

Смотрите также

ksMathPointParam


ksLeaderParam::SetpPolyline

Установить указатель на интерфейс динамического массива ответвлений линии-выноски ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

BOOL SetpPolyline (LPDISPATCH pPolyline);

Входной параметр:

pPolyline	- указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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

Смотрите также

ksMathPointParam


ksLeaderParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pTextline типа TEXT_LINE_ARR.

3. Создается динамический массив pPolytline типа POLYLINE_ARR.


Интерфейс ksLibraryStyleParam
ksLibraryStyleParam

Интерфейс параметров стиля в библиотеке стилей.

Аналог данных параметров при использовании API экспортных функций - LibraryStyleParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLibraryStyleParam::props
ksLibraryStyleParam
свойства

styleId

styleName


ksLibraryStyleParam::methods
ksLibraryStyleParam
методы

Init


ksLibraryStyleParam::styleName

Имя стиля.

Тип данных - строка.

Синтаксис Automation:

styleName = iLibraryStyleParam.styleName	Получить свойство (*)
iLibraryStyleParam.styleName = styleName	Установить свойство (*)
styleName = iLibraryStyleParam.GetStyleName()	Получить свойство (**)
iLibraryStyleParam.SetStyleName( styleName )	Установить свойство (**)


ksLibraryStyleParam::styleId

Номер стиля в библиотеке.

Тип данных - long.

Синтаксис Automation:

styleId = iLibraryStyleParam.styleId	Получить свойство (*)
iLibraryStyleParam.styleId = styleId	Установить свойство (*)
styleId = iLibraryStyleParam.GetStyleId()	Получить свойство (**)
iLibraryStyleParam.SetStyleId( styleId )	Установить свойство (**)


ksLibraryStyleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры стиля в библиотеке стилей.


Интерфейс ksLibStyle
 ksLibStyle

Интерфейс параметров для подключения стиля из библиотеки.

Аналог данных параметров при использовании API экспортных функций - LibStyle.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksLibStyle::props
ksLibStyle
свойства

fileName

styleNumber

typeAllocation


ksLibStyle::methods
ksLibStyle
методы

Init


ksLibStyle::fileName

Имя файла библиотеки.

Тип данных - строка.

Синтаксис Automation:

fileName = iLibStyle.fileName	Получить свойство (*)
iLibStyle.fileName = fileName	Установить свойство (*)
fileName = iLibStyle.GetFileName()	Получить свойство (**)
iLibStyle.SetFileName( fileName )	Установить свойство (**)


ksLibStyle::styleNumber

Hомер стиля в библиотеке.

Тип данных - long.

Синтаксис Automation:

styleNumber = iLibStyle. styleNumber	Получить свойство (*)
iLibStyle.styleNumber = styleNumber	Установить свойство (*)
styleNumber = iLibStyle.GetStyleNumber()	Получить свойство (**)
iLibStyle.SetStyleNumber(styleNumber)	Установить свойство (**)


ksLibStyle::typeAllocation

Tип размещения стиля в документе.

Тип данных - short.

Значения свойства:

1	- ссылкой на библиотеку,
0	- "телом" (стиль хранится в документе).
Синтаксис Automation:

typeAllocation = iLibStyle. typeAllocation	Получить свойство (*)
iLibStyle.typeAllocation = typeAllocation	Установить свойство (*)
typeAllocation = iLibStyle.GetTypeAllocation()	Получить свойство (**)
iLibStyle.SetTypeAllocation(typeAllocation)	Установить свойство (**)


ksLibStyle::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры для подключения стиля из библиотеки.


Интерфейс ksLineParam
ksLineParam

Интерфейс параметров вспомогательной линии.

Аналог данных параметров при использовании API экспортных функций - LineParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLineParam::props
ksLineParam
свойства

angle

x, y


ksLineParam::methods
ksLineParam
методы

Init


ksLineParam::x,
ksLineParam::y

Координаты точки на прямой.

Тип данных - double.

Синтаксис Automation:

x = iLineParam.x	Получить свойство (*)
iLineParam.x = x	Установить свойство (*)
x = iLineParam.GetX()	Получить свойство (**)
iLineParam.SetX( x )	Установить свойство (**)


ksLineParam::angle

Угол наклона прямой относительно оси X.

Тип данных - double.

Синтаксис Automation:

angle = iLineParam.angle	Получить свойство (*)
iLineParam.angle = angle	Установить свойство (*)
angle = iLineParam.GetAngle()	Получить свойство (**)
iLineParam.SetAngle( angle )	Установить свойство (**)


ksLineParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры вспомогательной линии


Интерфейс ksLineSegParam
ksLineSegParam

Интерфейс параметров отрезка.

Аналог данных параметров при использовании API экспортных функций - LineSegParam.

Свойства...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLineSegParam::props
ksLineSegParam
свойства

style

x1, y1

x2, y2


ksLineSegParam::x1,
ksLineSegParam::y1

Координаты начальной точки отрезка.

Тип данных - double.

Синтаксис Automation:

x1 = iLineSegParam.x1	Получить свойство (*)
iLineSegParam.x1 = x1	Установить свойство (*)
x1 = iLineSegParam.GetX1()	Получить свойство (**)
iLineSegParam.SetX1( x1 )	Установить свойство (**)


ksLineSegParam::x2,
ksLineSegParam::y2

Координаты конечной точки отрезка.

Тип данных - double.

Синтаксис Automation:

x2 = iRectParam.x2	Получить свойство (*)
iRectParam.x2 = x2	Установить свойство (*)
x2 = iRectParam.GetX2()	Получить свойство (**)
iRectParam.SetX2( x2 )	Установить свойство (**)


ksLineSegParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iRectParam.style	Получить свойство (*)
iRectParam.style = style	Установить свойство (*)
style = iRectParam.GetStyle()	Получить свойство (**)
iRectParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


Интерфейс ksLtVariant
ksLtVariant

Интерфейс для хранения данных некоторого типа.

Аналог данных параметров при использовании API экспортных функций - LtVariant.

Свойства...

Методы...

Типы данных...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLtVariant::props
ksLtVariant
свойства

charVal

doubleVal

floatVal

intVal

longVal

shortVal

strVal

uCharVal

uIntVal

valType


ksLtVariant::methods
ksLtVariant
методы

Init


ksLtVariant::strVal

Строковое значение.

Тип данных - строка.

Синтаксис Automation:

strVal = iLtVariant.strVal	Получить свойство (*)
iLtVariant.strVal = strVal	Установить свойство (*)
strVal = iLtVariant.GetStrVal()	Получить свойство (**)
iLtVariant.SetStrVal( strVal )	Установить свойство (**)


ksLtVariant::shortVal

Короткое целое.

Тип данных - short.

Синтаксис Automation:

shortVal = iLtVariant.shortVal	Получить свойство (*)
iLtVariant.shortVal = shortVal	Установить свойство (*)
shortVal = iLtVariant.GetShortVal()	Получить свойство (**)
iLtVariant.SetShortVal( shortVal )	Установить свойство (**)


ksLtVariant::intVal

Целое.

Тип данных - long.

Синтаксис Automation:

intVal = iLtVariant.intVal	Получить свойство (*)
iLtVariant.intVal = intVal	Установить свойство (*)
intVal = iLtVariant.GetIntVal()	Получить свойство (**)
iLtVariant.SetIntVal( intVal )	Установить свойство (**)


ksLtVariant::longVal

Длинное целое.

Тип данных - long.

Синтаксис Automation:

longVal = iLtVariant.longVal	Получить свойство (*)
iLtVariant.longVal = longVal	Установить свойство (*)
longVal = iLtVariant.GetLongVal()	Получить свойство (**)
iLtVariant.SetLongVal( longVal )	Установить свойство (**)


ksLtVariant::floatVal

Вещественное значение.

Тип данных - float.

Синтаксис Automation:

floatVal = iLtVariant.floatVal	Получить свойство (*)
iLtVariant.floatVal = floatVal	Установить свойство (*)
floatVal = iLtVariant.GetFloatVal()	Получить свойство (**)
iLtVariant.SetFloatVal( floatVal )	Установить свойство (**)


ksLtVariant::doubleVal

Двойное вещественное значение.

Тип данных - double.

Синтаксис Automation:

doubleVal = iLtVariant.doubleVal	Получить свойство (*)
iLtVariant.doubleVal = doubleVal	Установить свойство (*)
doubleVal = iLtVariant.GetDoubleVal()	Получить свойство (**)
iLtVariant.SetDoubleVal(doubleVal)	Установить свойство (**)


ksLtVariant::charVal

Символ.

Тип данных - short.

Синтаксис Automation:

charVal = iLtVariant.charVal	Получить свойство (*)
iLtVariant.charVal = charVal	Установить свойство (*)
charVal = iLtVariant.GetCharVal()	Получить свойство (**)
iLtVariant.SetCharVal(charVal)	Установить свойство (**)


ksLtVariant::uCharVal

Значение типа byte (беззнаковый char).

Тип данных - short.

Синтаксис Automation:

uCharVal = iLtVariant.uCharVal	Получить свойство (*)
iLtVariant.uCharVal = uCharVal	Установить свойство (*)
uCharVal = iLtVariant.GetUCharVal()	Получить свойство (**)
iLtVariant.SetUCharVal(uCharVal)	Установить свойство (**)


ksLtVariant::uIntVal

Беззнаковое целое.

Тип данных - long.

Синтаксис Automation:

uIntVal = iLtVariant.uIntVal	Получить свойство (*)
iLtVariant.uIntVal = uIntVal	Установить свойство (*)
uIntVal = iLtVariant.GetUIntVal()	Получить свойство (**)
iLtVariant.SetUIntVal(uIntVal)	Установить свойство (**)


ksLtVariant::valType

Тип хранимого значения.

Тип данных - short.

Типы данных...

Синтаксис Automation:

valType = iLtVariant.valType	Получить свойство (*)
valType = iLtVariant.GetValType()	Получить свойство (**)
Примечание:

Свойство предназначено только для чтения.


ksLtVariant::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksMarkerLeaderParam
ksMarkerLeaderParam

Интерфейс параметров линии-выноски для обозначения маркировки.

Аналог данных параметров при использовании API экспортных функций - MarkerLeaderParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksMarkerLeaderParam::props
ksMarkerLeaderParam
свойства

arrowType

cText0

cText1

cText2

style1

style2

x, y


ksMarkerLeaderParam::methods
ksMarkerLeaderParam
методы

GetpPolyline

GetpTextline

Init

SetpPolyline

SetpTextline


ksMarkerLeaderParam::x,
ksMarkerLeaderParam::y

Координаты базовой точки линии-выноски обозначения маркировки.

Тип данных - double.

Синтаксис Automation:

x = iMarkerLeaderParam.x	Получить свойство (*)
iMarkerLeaderParam.x = x	Установить свойство (*)
x = iMarkerLeaderParam.GetX()	Получить свойство (**)
iMarkerLeaderParam.SetX( x )	Установить свойство (**)
Примечание:

Базовая точка линии-выноски - точка выхода "ножки" из знака маркировки.


ksMarkerLeaderParam::arrowType

Тип указателя линии-выноски.

Тип данных - short.

Значения свойства:

0	- указатель отсутствует,
1	- точка,
2	- стрелка.
Синтаксис Automation:

arrowType = iMarkerLeaderParam.arrowType	Получить свойство (*)
iMarkerLeaderParam.arrowType = arrowType	Установить свойство (*)
arrowType = iMarkerLeaderParam.GetArrowType()	Получить свойство (**)
iMarkerLeaderParam.SetArrowType( arrowType )	Установить свойство (**)


ksMarkerLeaderParam::style1

Стиль текста в знаке маркировки.

Тип данных - long.

Значения свойства:

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

Синтаксис Automation:

style1 = iMarkerLeaderParam.style1	Получить свойство (*)
iMarkerLeaderParam.style1 = style1	Установить свойство (*)
style1 = iMarkerLeaderParam.GetStyle1()	Получить свойство (**)
iMarkerLeaderParam.SetStyle1( style1 )	Установить свойство (**)
Примечание:

Если style1 = INDICATIN_TEXT_LINE_ARR, то динамический массив текстов - типа TEXT_LINE_ARR. В остальных случаях - типа CHAR_STR_ARR.


ksMarkerLeaderParam::style2

Стиль текстов у "ножки" линии-выноски обозначения маркировки.

Тип данных - long.

Значения свойства:

номер системного стиля,

номер пользовательского стиля.

Системные стили текстов...

Синтаксис Automation:

style2 = iMarkerLeaderParam.style2	Получить свойство (*)
iMarkerLeaderParam.style2 = style2	Установить свойство (*)
style2 = iMarkerLeaderParam.GetStyle2()	Получить свойство (**)
iMarkerLeaderParam.SetStyle2( style2 )	Установить свойство (**)
Примечание:

Используется, если style1 не равен INDICATIN_TEXT_LINE_ARR.


ksMarkerLeaderParam::cText0

Количество строк текста в знаке маркировки (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText0 = iMarkerLeaderParam.cText0	Получить свойство (*)
iMarkerLeaderParam.cText0 = cText0	Установить свойство (*)
cText0 = iMarkerLeaderParam.GetCText0()	Получить свойство (**)
iMarkerLeaderParam.SetCText0( cText0 )	Установить свойство (**)


ksMarkerLeaderParam::cText1

Количество строк текста над "ножкой" линии-выноски обозначения маркировки (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText1 = iMarkerLeaderParam.cText1	Получить свойство (*)
iMarkerLeaderParam.cText1 = cText1	Установить свойство (*)
cText1 = iMarkerLeaderParam.GetCText1()	Получить свойство (**)
iMarkerLeaderParam.SetCText1(cText1)	Установить свойство (**)


ksMarkerLeaderParam::cText2

Количество строк текста под "ножкой" линии-выноски обозначения маркировки (не более одной строки).

Тип данных - short.

Синтаксис Automation:

cText2 = iMarkerLeaderParam.cText2	Получить свойство (*)
iMarkerLeaderParam.cText2 = cText2	Установить свойство (*)
cText2 = iMarkerLeaderParam.GetCText2()	Получить свойство (**)
iMarkerLeaderParam.SetCText2(cText2)	Установить свойство (**)


ksMarkerLeaderParam::GetpTextline

Получить указатель на интерфейс динамического массива текста обозначения маркирования ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetpTextline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray.
Примечания:

1. Если свойство ksMarkerLeaderParam::style1 = INDICATIN_TEXT_LINE_ARR, то динамический массив - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк символов текста маркировки).

2. Различают 3 разных текста для обозначения маркировки, их строки лежат в следующей последовательности:

- текст над полкой. Если свойство cText0 = 0, то этот текст отсутствует;

- текста над "ножкой". Если свойство cText1 = 0, то этот текст отсутствует;

- текст под "ножкой". Если свойство cText2 = 0, то этот текст отсутствует.

Смотрите также

ksTextLineParam

ksChar255


ksMarkerLeaderParam::SetpTextline

Установить указатель на интерфейс динамического массива текста обозначения маркировки ksDynamicArray.

Синтаксис Automation:

BOOL SetpTextline (LPDISPATCH pTextline);

Входной параметр:

pTextline	- указатель на интерфейс динамического массива ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Если свойство ksMarkerLeaderParam::style1 = INDICATIN_TEXT_LINE_ARR, то динамический массив ksDynamicArray - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк символов текста маркировки).

2. Различают 3 разных текста для обозначения маркировки, их строки лежат в следующей последовательности:

- текст над полкой. Если свойство cText0 = 0, то этот текст отсутствует;

- текста над "ножкой". Если свойство cText1 = 0, то этот текст отсутствует;

- текст под "ножкой". Если свойство cText2 = 0, то этот текст отсутствует.

Смотрите также

ksTextLineParam

ksChar255


ksMarkerLeaderParam::GetpPolyline

Получить указатель на интерфейс динамического массива ответвлений линии-выноски обозначения маркировки ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

LPDISPATCH GetpPolyline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Примечание:

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

Смотрите также

ksMathPointParam


ksMarkerLeaderParam::SetpPolyline

Установить указатель на интерфейс динамического массива ответвлений линии-выноски обозначения маркировки ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

BOOL SetpPolyline (LPDISPATCH pPolyline);

Входной параметр:

pPolyline	- указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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

Смотрите также

ksMathPointParam


ksMarkerLeaderParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pText типа CHAR_STR_ARR.

3. Создается динамический массив pPolyline типа POLYLINE_ARR.


Интерфейс ksMassInertiaParam
ksMassInertiaParam

Интерфейс параметров расчета массо-центровочных характеристик.

Аналог данных параметров при использовании API экспортных функций - MassInertiaParam.

Свойства...

Методы...

Примечание:

1. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct. Интерфейс является аналогом MassInertiaParam, при использовании API экспортных функций. Наполнение данными производится в методе ksMathematic2D::ksCalcMassInertiaProperties, аналог экспортной функции ksCalcMassInertiaProperties.

2. В трехмерной автоматизации указатель на интерфейс ksMassInertiaParam можно получить при помощи метода ksPart::CalcMassInertiaProperties или ksBody::MassInertiaParam. В 3D COM указатель на интерфейс IMassInertiaParam получается методом IPart::CalcMassInertiaProperties или IBody::MassInertiaParam.

3. Размерность длины и размерность массы возвращаемых интерфейсом данных находятся в интервале [ST_MIX_MM..ST_MIX_KG]. Она устанавливается при получении интерфейса, либо через SetBitVectorValue.

Смотрите также

KompasObject


ksMassInertiaParam::props
ksMassInertiaParam
свойства

jx, jy, jz

jx0z, jy0z, jx0y

jxy, jyz, jyz

lx, ly, lz

lxy, lxz, lyz

m

r

v

xc, yc, zc


ksMassInertiaParam::methods
ksMassInertiaParam
методы

GetAxisX, GetAxisY, GetAxisZ

SetBitVectorValue


ksMassInertiaParam::xc,
ksMassInertiaParam::yc,
ksMassInertiaParam::zc

Координаты центра тяжести.

Тип данных - double.

Синтаксис Automation:

xc = iMassInertiaParam.xc	Получить свойство (*)
xc = iMassInertiaParam.GetXc()	Получить свойство (**)
Примечание:

Свойства доступны только для чтения.


ksMassInertiaParam::lx,
ksMassInertiaParam::ly,
ksMassInertiaParam::lz

Осевые моменты инерции относительно исходных осей координат.

Тип данных - double.

Синтаксис Automation:

lx = iMassInertiaParam.lx	Получить свойство (*)
lx = iMassInertiaParam.GetLx()	Получить свойство (**)
Примечание:

Свойства доступны только для чтения.


ksMassInertiaParam::jx,
ksMassInertiaParam::jy,
ksMassInertiaParam::jz

Осевые моменты инерции относительно центральных осей координат.

Тип данных - double.

Синтаксис Automation:

jx = iMassInertiaParam.jx	Получить свойство (*)
jx = iMassInertiaParam.GetJx()	Получить свойство (**)
Примечание:

Свойства доступны только для чтения.


ksMassInertiaParam::jxy, ksMassInertiaParam::jyz, ksMassInertiaParam::jzx
ksMassInertiaParam::jxy,
ksMassInertiaParam::jxz,
ksMassInertiaParam::jyz

Центробежные моменты инерции относительно центральных осей координат.

Тип данных - double.

Синтаксис Automation:

jxy = iMassInertiaParam.jxy	Получить свойство (*)
jxy = iMassInertiaParam.GetJxy()	Получить свойство (**)
Примечание:

Свойства доступны только для чтения.


ksMassInertiaParam::jx0z,
ksMassInertiaParam::jy0z,
ksMassInertiaParam::jx0y

Плоскостные моменты инерции.

Тип данных - double.

Синтаксис Automation:

jx0z = iMassInertiaParam.jx0z	Получить свойство (*)
jx0z = iMassInertiaParam.GetJx0z()	Получить свойство (**)
Примечание:

Свойства доступны только для чтения.


ksMassInertiaParam::lxy,
ksMassInertiaParam::lxz,
ksMassInertiaParam::lyz

Центробежные моменты инерции относительно исходных осей координат.

Тип данных - double.

Синтаксис Automation:

lxy = iMassInertiaParam.lxy	Получить свойство (*)
lxy = iMassInertiaParam.GetLxy()	Получить свойство (**)
Примечание:

Свойства только для чтения.


ksMassInertiaParam::r

Плотность материала.

Тип данных - double.

Синтаксис Automation:

r = iMassInertiaParam.r	Получить свойство (*)
r = iMassInertiaParam.GetR()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksMassInertiaParam::m

Масса тела.

Тип данных - double.

Синтаксис Automation:

m = iMassInertiaParam.m	Получить свойство (*)
m = iMassInertiaParam.GetM()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksMassInertiaParam::v

Объем тела.

Тип данных - double.

Синтаксис Automation:

v = iMassInertiaParam.v	Получить свойство (*)
v = iMassInertiaParam.GetV()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksMassInertiaParam::f

Площадь.

Тип данных - double.

Синтаксис Automation:

f = iMassInertiaParam.f	Получить свойство (*)
f = iMassInertiaParam.GetF()	Получить свойство (**)
Примечание:

1. Свойство доступно только для чтения.

2. Свойство применимо только для трехмерных объектов.


ksMassInertiaParam::lx0, ksMassInertiaParam::ly0, ksMassInertiaParam::lz0
ksMassInertiaParam::jx0,
ksMassInertiaParam::jy0,
ksMassInertiaParam::jz0

Главный центральный момент инерции.

Тип данных - double.

Синтаксис Automation:

jx0 = iMassInertiaParam.jx0	Получить свойство (*)
jx0 = iMassInertiaParam.GetJx0()	Получить свойство (**)
Примечание:

1. Свойство доступно только для чтения.

2. Свойство применимо только для трехмерных объектов.


ksMassInertiaParam::SetBitVectorValue

Установить значение битового вектора.

Синтаксис Automation:

BOOL SetBitVectorValue (long bitVector, BOOL state);

Синтаксис COM:

BOOL SetBitVectorValue (long bitVector, BOOL state);

Входные параметры:

bitVector	- битовый вектор, состоящий из флагов, определяющих размерность длины, размерность массы и тип тела (тело вращения или выдавливания) для рассчета МЦХ,
state	- состояние битового вектора: TRUE - включен, FALSE - выключен.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Размерности и типы тел для рассчета МЦХ...


ksMassInertiaParam::GetAxisX,ksMassInertiaParam::GetAxisY,ksMassInertiaParam::GetAxisZ
ksMassInertiaParam::GetAxisX
ksMassInertiaParam::GetAxisY
ksMassInertiaParam::GetAxisZ

Получить вектора направлений главных центральных осей инерции.

Синтаксис Automation:

BOOL GetAxisX( double *x, double *y, double *z );

BOOL GetAxisY( double *x, double *y, double *z );

BOOL GetAxisZ( double *x, double *y, double *z );

Синтаксис COM:

BOOL GetAxisX( double *x, double *y, double *z);

BOOL GetAxisY( double *x, double *y, double *z);

BOOL GetAxisZ( double *x, double *y, double *z);

Выходные параметры:

x, y, z	- вектор направления
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.
Примечание:

Метод применим только для трехмерных объектов.


Интерфейс ksMathematic2D
ksMathematic2D

Интерфейс математических функций.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetMathematic2D.

Смотрите также

KompasObject


ksMathematic2D::methods
ksMathematic2D
методы

ksAngle

ksAtanD

ksCalcInertiaProperties

ksCalcMassInertiaProperties

ksCosD

ksCouplingCircleCircle

ksCouplingLineCircle

ksCouplingLineLine

ksDistancePntArc

ksDistancePntCircle

ksDistancePntLineForPoint

ksDistancePntLine

ksDistancePntLineSeg

ksDistancePntPnt

ksDistancePntPntOnCurve

ksDistanceT1T2OnCurve

ksEqualPoints

ksGetCurveMinMaxParametr

ksGetCurvePerimeter

ksGetCurvePointProjection

ksGetCurvePerpendicular

ksGetCurvePoint

ksGetCurvePointProjection

ksGetCurvePointProjectionEx

ksIntersectArcArc

ksIntersectArcLin

ksIntersectCirArc

ksIntersectCirCir

ksIntersectCirLin

ksIntersectCurvCurv

ksIntersectLinLin

ksIntersectLinSArc

ksIntersectLinSCir

ksIntersectLinSLine

ksIntersectLinSLinS

ksMovePointOnCurve

ksPerpendicular

ksPointsOnCurveByStep

ksPointsOnCurve

ksRotate

ksSinD

ksSymmetry

ksTanCircleCircle

ksTanCurvCurv

ksTanD

ksTanLineAngCircle

ksTanLinePointCircle

ksTanLinePointCurve


ksMathematic2D::ksCosD

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

Аналог данного метода при использовании API экспортных функций - CosD.

Синтаксис Automation:

double ksCosD (double x);

Входной параметр:

x	- угол в градусах.
Возвращаемое значение:

	косинус аргумента.


ksMathematic2D::ksSinD

Получить синус аргумента.

Аналог данного метода при использовании API экспортных функций - SinD.

Синтаксис Automation:

double ksSinD (double x);

Входной параметр:

x	- угол в градусах.
Возвращаемое значение:

	синус аргумента.


ksMathematic2D::ksTanD
ksMathematic2D::TanD

Получить тангенс аргумента.

Аналог данного метода при использовании API экспортных функций - TanD.

Синтаксис Automation:

double ksTanD (double x);

Входной параметр:

x	- угол в градусах.
Возвращаемое значение:

	тангенс аргумента.


ksMathematic2D::ksAtanD

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

Аналог данного метода при использовании API экспортных функций - ATanD.

Синтаксис Automation:

double ksAtanD (double x);

Входной параметр:

x	- тангенс угла.
Возвращаемое значение:

	угол (в градусах)


ksMathematic2D::ksAngle

Получить угол (в градусах) между осью OX и вектором, заданным двумя точками.

Аналог данного метода при использовании API экспортных функций - Angle.

Синтаксис Automation:

double ksAngle (double x1,

double y1,

double x2,

double y2);

Входные параметры:

x1, y1	- координаты начальной точки вектора,
x2, y2	- координаты конечной точки вектора.
Возвращаемое значение:

	угол в градусах.


ksMathematic2D::ksEqualPoints

Определить эквивалентность (совпадение) двух точек.

Аналог данного метода при использовании API экспортных функций - ksEqualPoints.

Синтаксис Automation:

long ksEqualPoints (double x1,

double y1,

double x2,

double y2);

Входные параметры:

x1, y1	- координаты первой точки,
x2, y2	- координаты второй точки.
Возвращаемое значение:

1	- точки совпадают,
0	- точки не совпадают.


ksMathematic2D::ksIntersectLinSLinS

Получить координаты точки пересечения двух отрезков.

Аналог данного метода при использовании API экспортных функций - IntersectLinSLinS.

Синтаксис Automation:

BOOL ksIntersectLinSLinS (double x11,

double y11,

double x12,

double y12,

double x21,

double y21,

double x22,

double y22,

LPDISPATCH param);

Входные параметры:

x11, y11	- координаты начальной точки первого отрезка,
x12, y12	- координаты конечной точки первого отрезка,
x21, y21	- координаты начальной точки второго отрезка,
x22, y22	- координаты конечной точки второго отрезка.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных отрезков обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectLinSLine

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

Аналог данного метода при использовании API экспортных функций - IntersectLinSLine.

Синтаксис Automation:

BOOL ksIntersectLinSLine (double x1,

double y1,

double x2,

double y2,

double x,

double y,

double ang,

LPDISPATCH param);

Входные параметры:

x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
x, y	- координаты точки на прямой,
ang	- угол наклона прямой.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectArcLin

Получить координаты точек пересечения дуги окружности и прямой.

Аналог данного метода при использовании API экспортных функций - IntersectArcLine.

Синтаксис Automation:

BOOL ksIntersectArcLin (double xc,

double yc,

double rad,

double f1,

double f2,

long n,

double x,

double y,

double ang,

LPDISPATCH param);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус окружности,
f1, f2	- углы начальной и конечной точек дуги,
n	- направление дуги :    1 - против часовой стрелки,   -1 - по часовой стрелке,
x, y	- координаты точки на прямой,
ang	- угол наклона прямой.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectLinLin

Получить координаты точки пересечения двух прямых.

Аналог данного метода при использовании API экспортных функций - IntersectLinLin.

Синтаксис Automation:

BOOL ksIntersectLinLin (double x1,

double y1,

double angle1,

double x2,

double y2,

double angle2,

LPDISPATCH param);

Входные параметры:

x1, y1	- координаты точки на первой прямой,
angle1	- угол наклона первой прямой,
x2, y2	- координаты точки на второй прямой,
angle2	- угол наклона второй прямой,
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectCirCir

Получить координаты точек пересечения двух окружностей.

Аналог данного метода при использовании API экспортных функций - IntersectCirCir.

Синтаксис Automation:

BOOL ksIntersectCirCir (double xc1,

double yc1,

double radius1,

double xc2,

double yc2,

double radius2,

LPDISPATCH param);

Входные параметры:

xc1, yc1	- координаты центра первой окружности,
radius1	- радиус первой окружности,
xc2, yc2	- координаты центра второй окружности,
radius2	- радиус второй окружности,
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectArcArc

Получить координаты точек пересечения двух дуг окружностей.

Аналог данного метода при использовании API экспортных функций - IntersectArcArc.

Синтаксис Automation:

BOOL ksIntersectArcArc (double xac,

double yac,

double rada,

double fa1,

double fa2,

short directa,

double xbc,

double ybc,

double radb,

double fb1,

double fb2,

short directb,

LPDISPATCH param);

Входные параметры:

xac, yac	- координаты центра первой дуги,
rada	- радиус первой дуги,
fa1, fa2	- углы начальной и конечной точек первой дуги,
directa	- направление первой дуги:   1 - против часовой стрелки,  -1 – по часовой стрелке,
xbc, ybc	- координаты центра второй дуги,
radb	- радиус второй дуги,
fb1, fb2	- углы начальной и конечной точек второй дуги,
directb	- направление второй дуги:   1 - против часовой стрелки,  -1 – по часовой стрелке,
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectLinSArc

Получить координаты точек пересечения отрезка и дуги.

Аналог данного метода при использовании API экспортных функций - IntersectLinSArc.

Синтаксис Automation:

BOOL ksIntersectLinSArc (double x1,

double y1,

double x2,

double y2,

double xc,

double yc,

double rad,

double f1,

double f2,

short direct,

LPDISPATCH param);

Входные параметры:

x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
xc, yc	- координаты центра дуги,
rad	- радиус дуги,
f1, f2	- углы начальной и конечной точек дуги,
direct	- направление дуги:   1 - против часовой стрелки,  -1 - по часовой стрелке.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectLinSCir

Получить координаты точек пересечения отрезка и окружности.

Аналог данного метода при использовании API экспортных функций - IntersectLinSCir.

Синтаксис Automation:

BOOL ksIntersectLinSCir (double x1,

double y1,

double x2,

double y2,

double xc,

double yc,

double rad,

LPDISPATCH param);

Входные параметры:

x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
xc, yc	- координаты центра окружности,
radius	- радиус окружности.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectCirLin

Получить координаты точек пересечения окружности и прямой.

Аналог данного метода при использовании API экспортных функций - IntersectCirLin.

Синтаксис Automation:

BOOL ksIntersectCirLin (double xc,

double yc,

double rad,

double xl,

double yl,

double angle,

LPDISPATCH param);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус окружности,
x1, y1	- координаты точки на прямой,
angle	- угол наклона прямой.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectCirArc

Получить координаты точек пересечения окружности и дуги.

Аналог данного метода при использовании API экспортных функций - IntersectCirArc.

Синтаксис Automation:

BOOL ksIntersectCirArc (double xcc,

double ycc,

double radc,

double xac,

double yac,

double rada,

double fa1,

double fa2,

short directa,

LPDISPATCH param);

Входные параметры:

xcс, ycс	- координаты центра окружности,
radc	- радиус окружности,
xac, yac	- координаты центра дуги,
rada	- радиус дуги,
fa1, fa2	- углы начальной и конечной точек дуги,
directa	- направление дуги:   1 - против часовой стрелки,  -1 - по часовой стрелке.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- пересечение данных объектов обнаружено,
FALSE	- пересечение не обнаружено.
Смотрите также

ksMathPointParam


ksMathematic2D::ksIntersectCurvCurv

Получить координаты точек пересечения двух кривых.

Аналог данного метода при использовании API экспортных функций - ksIntersectCurvCurv.

Синтаксис Automation:

long ksIntersectCurvCurv (long p1,

long p2,

LPDISPATCH param);

Входные параметры:

p1	- указатель на первую кривую,
p2	- указатель на вторую кривую.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

1	- пересечение данных объектов обнаружено,
0	- пересечение не обнаружено (кривые не пересекаются или совпадают),
-1	- первый объект не существует,
-2	- второй объект не существует,
-3	- кривые расположены в разных видах,
-4	- один (или оба) из указанных объектов - не геометрический (не отрезок, не окружность, а, например, линия-выноска),
-5	- первый объект не является кривой,
-6	- второй объект не является кривой,
-7	- ошибка: массив типа POINT_ARR предварительно не создан.
Смотрите также

ksMathPointParam


ksMathematic2D::ksTanLinePointCircle

Получить точки касания окружности и прямой, проходящей через заданную точку.

Аналог данного метода при использовании API экспортных функций - TanLinePointCircle.

Синтаксис Automation:

BOOL ksTanLinePointCircle (double x,

double y,

double xc,

double yc,

double rad,

LPDISPATCH param);

Входные параметры:

x, y	- координаты точки,
xc, yc	- координаты центра окружности,
rad	- радиус окружности.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- точки касания данных объектов обнаружены,
FALSE	- точки касания не обнаружены.
Смотрите также

ksMathPointParam


ksMathematic2D::ksTanLineAngCircle

Получить точки касания окружности и прямой, проходящей под заданным углом.

Аналог данного метода при использовании API экспортных функций - TanLineAngCircle.

Синтаксис Automation:

BOOL ksTanLineAngCircle (double xc,

double yc,

double rad,

double ang,

LPDISPATCH param);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус окружности,
ang	- угол касательной прямой.
Выходной параметр:

param	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Возвращаемое значение:

TRUE	- точки касания данных объектов обнаружены,
FALSE	- точки касания не обнаружены.
Смотрите также

ksMathPointParam


ksMathematic2D::ksTanCircleCircle

Получить координаты точек касания прямых к двум окружностям.

Аналог данного метода при использовании API экспортных функций - TanCircleCircle.

Синтаксис Automation:

BOOL ksTanCircleCircle (double xc1,

double yc1,

double radius1,

double xc2,

double yc2,

double radius2,

LPDISPATCH param);

Входные параметры:

xc1, yc1	- координаты центра первой окружности,
radius1	- радиус первой окружности,
xc2, yc2	- координаты центра второй окружности,
radius2	- радиус второй окружности.
Выходной параметр:

param	- указатель на интерфейс массива координат точек касания ksTAN.
Возвращаемое значение:

TRUE	- точки касания обнаружены,
FALSE	- точки касания не обнаружены.


ksMathematic2D::ksCouplingLineLine

Получить параметры окружностей, касательных к двум прямым.

Аналог данного метода при использовании API экспортных функций - CouplingLineLine.

Синтаксис Automation:

BOOL ksCouplingLineLine (double x1,

double y1,

double angle1,

double x2,

double y2,

double angle2,

double rad,

LPDISPATCH param);

Входные параметры:

x1, y1	- координаты точки на первой прямой,
angle1	- угол наклона первой прямой,
x2, y2	- координаты точки на второй прямой,
angle2	- угол наклона второй прямой.
Выходной параметр:

param	- указатель на интерфейс массива координат точек сопряжения ksCON.
Возвращаемое значение:

TRUE	- точки касания обнаружены,
FALSE	- точки касания не обнаружены.


ksMathematic2D::ksCouplingLineCircle

Получить параметры сопрягающих окружностей определенного радиуса и точки касания при сопряжении окружности и прямой.

Аналог данного метода при использовании API экспортных функций - ksCouplingLineCircle.

Синтаксис Automation:

BOOL ksCouplingLineCircle (double xc,

double yc,

double radc,

double x1,

double y1,

double angle1,

double rad,

LPDISPATCH param);

Входные параметры:

xc, yc	- координаты центра окружности,
radc	- радиус окружности,
x1, y1	- координаты точки на прямой,
angle1	- угол наклона прямой,
rad	- радиус окружности сопряжения.
Выходной параметр:

param	- указатель на интерфейс массива координат точек сопряжения ksCON.
Возвращаемое значение:

TRUE	- точки касания обнаружены,
FALSE	- точки касания не обнаружены.


ksMathematic2D::ksCouplingCircleCircle

Получить параметры сопрягающих окружностей определенного радиуса и точки сопряжения для двух окружностей.

Аналог данного метода при использовании API экспортных функций - ksCouplingCircleCircle.

Синтаксис Automation:

BOOL ksCouplingCircleCircle (double xc1,

double yc1,

double radc1,

double xc2,

double yc2,

double radc2,

double rad,

LPDISPATCH param);

Входные параметры:

xc1, yc1	- координаты центра первой окружности,
rad1	- радиус первой окружности,
xc2, yc2	- координаты центра второй окружности,
rad2	- радиус второй окружности.
Выходной параметр:

param	- указатель на интерфейс массива координат точек сопряжения ksCON.
Возвращаемое значение:

TRUE	- точки касания обнаружены,
FALSE	- точки касания не обнаружены.


ksMathematic2D::ksSymmetry

Получить координаты точки, симметричной относительно заданной оси.

Аналог данного метода при использовании API экспортных функций - Symmetry.

Синтаксис Automation:

BOOL ksSymmetry (double x,

double y,

double x1,

double y1,

double x2,

double y2,

double* xc,

double* yc);

Входные параметры:

x, y	- координаты базовой точки,
x1, y1	- координаты первой точки на оси симметрии,
x2, y2	- координаты второй точки на оси симметрии,
Выходные параметры:

xc, yc	- координаты симметричной точки.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksMathematic2D::ksRotate

Повернуть точку относительно центра.

Аналог данного метода при использовании API экспортных функций - Rotate.

Синтаксис Automation:

BOOL ksRotate (double x,

double y,

double xc,

double yc,

double ang,

double* xr,

double* yr);

Входные параметры:

x, y	- координаты базовой точки,
xс, yс	- координаты центра поворота,
ang	- угол поворота.
Выходные параметры:

xr, yr	- координаты точки после поворота.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksMathematic2D::ksDistancePntPnt

Получить расстояние между двумя точками.

Аналог данного метода при использовании API экспортных функций - DistancePntPnt.

Синтаксис Automation:

double ksDistancePntPnt (double x1,

double y1,

double x2,

double y2);

Входные параметры:

x1, y1	- координаты первой точки,
x2, y2	- координаты второй точки.
Возвращаемое значение:

	расстояние между двумя точками.


ksMathematic2D::ksDistancePntLineSeg

Получить расстояние между точкой и отрезком.

Аналог данного метода при использовании API экспортных функций - ksDistancePntLineSeg.

Синтаксис Automation:

double ksDistancePntLineSeg (double x,

double y,

double x1,

double y1,

double x2,

double y2);

Входные параметры:

x, y	- координаты точки,
x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка.
Возвращаемое значение:

	расстояние между точкой и отрезком.


ksMathematic2D::ksDistancePntArc

Получить расстояние между точкой и дугой.

Аналог данного метода при использовании API экспортных функций - ksDistancePntArc.

Синтаксис Automation:

double ksDistancePntArc (double x,

double y,

double xac,

double yac,

double rada,

double fa1,

double fa2,

short directa);

Входные параметры:

x, y	- координаты точки,
xac, yac	- координаты центра дуги,
rada	- радиус дуги,
fa1, fa2	- начальный и конечный углы дуги,
directa	- направление дуги:   1 - против часовой стрелки,  -1 – по часовой стрелке.
Возвращаемое значение:

	расстояние между точкой и дугой.


ksMathematic2D::ksDistancePntCircle

Получить расстояние между точкой и окружностью.

Аналог данного метода при использовании API экспортных функций - ksDistancePntCircle.

Синтаксис Automation:

double ksDistancePntCircle (double x,

double y,

double xc,

double yc,

double rad);

Входные параметры:

x, y	- координаты точки,
xc, yc	- координаты центра окружности,
rad	- радиус окружности.
Возвращаемое значение:

	расстояние между точкой и окружностью.


ksMathematic2D::ksDistancePntLine

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

Аналог данного метода при использовании API экспортных функций - ksDistancePntLine.

Синтаксис Automation:

double ksDistancePntLine (double x,

double y,

double x1,

double y1,

double angle);

Входные параметры:

x, y	- координаты точки,
x1, y1	- координаты точки на прямой,
angle	- угол наклона прямой.
Возвращаемое значение:

	расстояние между точкой и прямой.


ksMathematic2D::ksDistancePntLineForPoint

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

Аналог данного метода при использовании API экспортных функций - ksDistancePntLineForPoint.

Синтаксис Automation:

double ksDistancePntLineForPoint (double x,

double y,

double x1,

double y1,

double x2,

double y2);

Входные параметры:

x, y	- координаты точки,
x1, y1	- координаты первой точки на прямой,
x2, y2	- координаты второй точки на прямой.
Возвращаемое значение:

	расстояние между точкой и прямой.


ksMathematic2D::ksPerpendicular

Получить координаты точки пересечения отрезка и перпендикуляра к нему, проходящего через заданную точку.

Аналог данного метода при использовании API экспортных функций - Perpendicular.

Синтаксис Automation:

BOOL ksPerpendicular (double x,

double y,

double x1,

double y1,

double x2,

double y2,

double* xp,

double* yp);

Входные параметры:

x, y	- координаты произвольной точки,
x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
Выходные параметры:

xp, yp	- координаты точки пересечения отрезка и перпендикуляра к нему, проходящего через заданную точку.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksMathematic2D::ksPointsOnCurve

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

Аналог данного метода при использовании API экспортных функций - ksPointsOnCurve.

Синтаксис Automation:

LPDISPATCH ksPointsOnCurve (long curve,

long count);

Входные параметры:

curve	- указатель на кривую,
count	- количество точек.
Возвращаемое значение:

	- указатель на интерфейс динамического массива параметров математической точки типа POINT_ARR ksDynamicArray.
Смотрите также

ksMathPointParam


ksMathematic2D::ksGetCurvePerpendicular

Получить угол нормали к кривой в заданной точке.

Аналог данного метода при использовании API экспортных функций - ksGetCurvePerpendicular.

Синтаксис Automation:

double ksGetCurvePerpendicular (long curve,

double x,

double y);

Входные параметры:

curve	- указатель на кривую,
x, y	- координаты точки.
Возвращаемое значение:

	угол нормали к кривой в заданной точке (в градусах).
Примечание:

Если указанная точка не находится на кривой, она проецируется на кривую.


ksMathematic2D::ksGetCurvePointProjection

Получить координаты проекции точки на кривую.

Аналог данного метода при использовании API экспортных функций - ksGetCurvePointProjection.

Синтаксис Automation:

long ksGetCurvePointProjection (long curve,

double x,

double y,

double* kx,

double* ky);

Входные параметры:

curve	- указатель на кривую,
x, y	- координаты проецируемой точки.
Выходные параметры:

kx, ky	- координаты проекции точки на кривую.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksGetCurvePointProjectionEx
ksMathematic2D::ksGetCurvePointProjectionEx

Получить координаты проекции точки на кривую.

Аналог данного метода при использовании API экспортных функций - ksGetCurvePointProjectionEx.

Синтаксис Automation:

VARIANT_BOOL ksGetCurvePointProjectionEx (long curve,

double x, double y,

double *kx, double *ky,

double *t);

Входные параметры:

curve	- указатель на кривую,
x, y	- координаты проецируемой точки.
Выходные параметры:

kx, ky	- координаты проекции точки на кривую,
t	- параметр кривой.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.
Примечание:

См. также ksMathematic2D::ksGetCurvePointProjection.


ksGetCurvePoint
ksMathematic2D::ksGetCurvePoint

Преобразовать параметр кривой t в координаты вида.

Аналог данного метода при использовании API экспортных функций - ksGetCurvePoint.

Синтаксис Automation:

VARIANT_BOOL ksGetCurvePoint (long curve,

double t

double *x, double *y);

Входные параметры:

curve	- указатель на кривую,
t	- параметр кривой.
Выходные параметры:

kx, ky	- координаты проекции точки на кривую,
Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.
Примечание:

См. также ksMathematic2D::ksGetCurvePointProjectionEx.


ksMathematic2D::ksMovePointOnCurve

Получить координаты точки, находящейся на указанном вдоль кривой расстоянии от указанной точки.

Аналог данного метода при использовании API экспортных функций - ksMovePointOnCurve.

Синтаксис Automation:

long ksMovePointOnCurve (long curve,

double* x,

double* y,

double len,

long dir);

Входные параметры:

curve	- указатель на кривую,
len	- расстояние, на которое нужно сместить точку,
dir	- направление продвижения точки:   1 - в направлении построения кривой,  -1 - в обратном направлении.
Выходные параметры:

x, y	- координаты точки.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если точка не находится на кривой, она проецируется на кривую.


ksMathematic2D::ksCalcInertiaProperties

Получить плоские массо-центровочные характеристики кривой или группы кривых.

Аналог данного метода при использовании API экспортных функций - ksCalcInertiaProperties.

Синтаксис Automation:

long ksCalcInertiaProperties (long p,

LPDISPATCH properties,

short dimension);

Входные параметры:

p	- указатель на кривую или группу кривых,
dimension	- размерность длины.
Выходные параметры:

properties	- указатель на интерфейс параметров для расчета МЦХ ksInertiaParam.
Размерности длины...

Возвращаемое значение:

1	- в случае удачного завершения.
Примечание:

Кривые должны быть замкнутыми и представлять собой наружные и внутренние контура.


ksMathematic2D::ksCalcMassInertiaProperties

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

Аналог данного метода при использовании API экспортных функций - ksCalcMassInertiaProperties.

Синтаксис Automation:

long ksCalcMassInertiaProperties (long p,

LPDISPATCH properties,

double density,

double param);

Входные параметры:

p	- указатель на кривую или группу кривых,
density	- плотность тела (в г/см3),
param	- параметр тела (для тела вращения - угол раствора в градусах, для тела выдавливания - толщина)
Выходные параметры:

properties	- указатель на интерфейс параметров для расчета массо-центровочных характеристик ksMassInertiaParam.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечания:

1. Кривые должны быть замкнутыми и представлять собой наружные и внутренние контура.

2. Тип тела (тело вращения или выдавливания) устанавливается перед вызовом метода в интерфейсе ksMassInertiaParam.


ksMathematic2D::ksGetCurvePerimeter

Получить периметр кривой.

Аналог данного метода при использовании API экспортных функций - ksGetCurvePerimeter.

Синтаксис Automation:

double ksGetCurvePerimeter (long curve,

short dimension);

Входные параметры:

p	- указатель на кривую,
dimension	- размерность длины.
Размерности длины...

Возвращаемое значение:

	периметр кривой.


ksMathematic2D::ksTanLinePointCurve

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

Аналог данного метода при использовании API экспортных функций - ksTanLinePointCurve.

Синтаксис Automation:

BOOL ksTanLinePointCurve (double x,

double y,

long pCur,

LPDISPATCH param);

Входные параметры:

pCur	- указатель на кривую,
x, y	- координаты точки.
Выходной параметр:

param	- указатель на интерфейс динамического массива ksDynamicArray параметров математической точки типа POINT_ARR.
Возвращаемое значение:

TRUE	- точки касания обнаружены,
FALSE	- точки касания не обнаружены.
Смотрите также

ksMathPointParam


ksMathematic2D::ksPointsOnCurveByStep

Получить массив точек, расположенных на кривой с заданным шагом.

Аналог данного метода при использовании API экспортных функций - ksPointsOnCurveByStep.

Синтаксис Automation:

LPDISPATCH ksPointsOnCurveByStep (long curve,

double step);

Входные параметры:

curve	- указатель на кривую,
step	- шаг точек вдоль кривой.
Возвращаемое значение:

	указатель на динамический массив математических точек ksDynamicArray типа POINT_ARR.


ksMathematic2D::ksDistancePntPntOnCurve

Получить расстояние между двумя точками на кривой.

Аналог данного метода при использовании API экспортных функций - ksDistancePntPntOnCurve.

Синтаксис Automation:

double ksDistancePntPntOnCurve (long curve,

double x1,

double y1,

double x2,

double y2);

Входные параметры:

curve	- указатель на кривую,
x1, y1	- координаты первой точки,
x2, y2	- координаты второй точки.
Возвращаемое значение:

расстояние между двумя точками на кривой	- в случае успеха,
0	- в случае неудачи
Примечание:

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


ksGetCurveMinMaxParametr
ksMathematic2D::ksGetCurveMinMaxParametr

Получить минимальный и максимальный параметр кривой.

Аналог данного метода при использовании API экспортных функций - ksGetCurveMinMaxParametr.

Синтаксис Automation:

long ksGetCurveMinMaxParametr (long curve,

double *tMin,

double *tMax);

Входные параметры:

curve	- указатель на кривую,
Выходные параметры:

tMin	- минимальный параметр кривой,
tMax	- максимальный параметр кривой
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksDistanceT1T2OnCurve
ksMathematic2D::ksDistanceT1T2OnCurve

Получить расстояние между двумя точками на кривой по параметрам кривой в данных точках.

Аналог данного метода при использовании API экспортных функций - ksDistanceT1T2OnCurve.

Синтаксис Automation:

long ksDistanceT1T2OnCurve (long curve,

double t1,

double t2);

Входные параметры:

curve	- указатель на кривую,
t1	- параметр кривой в точке 1,
t2	- параметр кривой в точке 2.
Возвращаемое значение:

	Расстояние между двумя точками на кривой


ksTanCurvCurv
ksMathematic2D::ksTanCurvCurv

Функция расчета касательных к двум кривым.

Аналог данного метода при использовании API экспортных функций - ksTanCurvCurv.

Синтаксис Automation:

long  ksTanCurvCurv(reference p1,

reference p2,

LPDISPATCH pointArr1,

LPDISPATCH pointArr2);

Входные параметры:

p1	- указатель на первую кривую,
p2	- указатель на вторую кривую.
Выходные параметры:

pointArr1	- динамический массив ksDynamicArray математических точек POINT_ARR на кривой p1,
pointArr2	- динамический массив математических точек ksDynamicArray POINT_ARR на кривой p2.
Возвращаемое значение:

1	- успешное завершение,
0	- построить касательную нельзя (кривые совпадают или одна кривая вложена в другую),
-1	- первый объект не существует,
-2	- второй объект не существует,
-3	- кривые расположены в разных видах,
-4	- не совпадают СК определения кривых (геометрическая и аннотационная),
-5	- первый объект не является кривой,
-6	- второй объект не является кривой,
-7	- ошибка.


Интерфейс ksMathPointParam
ksMathPointParam

Интерфейс параметров математической точки.

Аналог данных параметров при использовании API экспортных функций - MathPointParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи методов:

KompasObject::GetParamStruct,

ksRectParam::GetpBot,

ksRectParam::GetpTop,

Смотрите также:

KompasObject


ksMathPointParam::props
ksMathPointParam
свойства

x, y


ksMathPointParam::methods
ksMathPointParam
методы

Init


ksMathPointParam::x,
ksMathPointParam::y

Координаты точки.

Тип данных - double.

Синтаксис Automation:

x = iMathPointParam.x	Получить свойство (*)
iMathPointParam.x = x	Установить свойство (*)
x = iMathPointParam.GetX()	Получить свойство (**)
iMathPointParam.SetX( x )	Установить свойство (**)


ksMathPointParam::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры точки.


Интерфейс ksNumberTypeAttrParam
ksNumberTypeAttrParam

Интерфейс дополнительных параметров для типов значения DOUBLE_ATTR_TYPE и LINT_ATTR_TYPE в стиле кололонки таблицы спецификации.

Аналог данных параметров при использовании API экспортных функций - NumberTypeAttrParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksNumberTypeAttrParam::props
ksNumberTypeAttrParam
свойства

maxValue

minValue


ksNumberTypeAttrParam::methods
ksNumberTypeAttrParam
методы

Init


ksNumberTypeAttrParam::minValue

Минимальное значение в колонке спецификации.

Тип данных - double.

Синтаксис Automation:

minValue = iNumberTypeAttrParam.minValue	Получить свойство (*)
minValue = iNumberTypeAttrParam.GetMinValue()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksNumberTypeAttrParam::maxValue

Максимальное значение в колонке спецификации.

Тип данных - double.

Синтаксис Automation:

maxValue = iNumberTypeAttrParam.maxValue	Получить свойство (*)
maxValue = iNumberTypeAttrParam.GetMaxValue()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksNumberTypeAttrParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksNurbsParam
ksNurbsParam

Интерфейс параметров кривой NURBS.

Аналог данных параметров при использовании API экспортных функций - NurbsParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksNurbsParam::props
ksNurbsParam
свойства

close

degree

periodic

style


ksNurbsParam::methods
ksNurbsParam
методы

GetPKnot

GetPPoint

Init

SetPKnot

SetPPoint


ksNurbsParam::degree

Степень сплайна (от 3 до 8 включительно).

Тип данных - short.

Синтаксис Automation:

degree = iNurbsParam.degree	Получить свойство (*)
iNurbsParam.degree = degree	Установить свойство (*)
degree = iNurbsParam.GetDegree()	Получить свойство (**)
iNurbsParam.SetDegree( degree )	Установить свойство (**)


ksNurbsParam::close

Признак замыкания сплайна.

Тип данных - BOOL.

Значения свойства:

FALSE	- незамкнутый,
TRUE	- замкнутый.
Синтаксис Automation:

close = iNurbsParam.close	Получить свойство (*)
iNurbsParam.close = close	Установить свойство (*)
close = iNurbsParam.GetClose()	Получить свойство (**)
iNurbsParam.SetClose( close )	Установить свойство (**)


ksNurbsParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iNurbsParam.style	Получить свойство (*)
iNurbsParam.style = style	Установить свойство (*)
style = iNurbsParam.GetStyle()	Получить свойство (**)
iNurbsParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksNurbsParam::periodic

Признак периодичности сплайна.

Тип данных - BOOL.

Значения свойства:

FALSE	- непериодический сплайн,
TRUE	- периодический сплайн.
Синтаксис Automation:

periodic = iNurbsParam.periodic	Получить свойство (*)
periodic = iNurbsParam.GetPeriodic()	Получить свойство (**)
Примечания:

1. Свойство используется только для функкции ksGetObjParam.

2. Свойство используется только для чтения.


ksNurbsParam::GetPPoint

Получить динамический массив точек сплайна типа NURBS_POINT_ARR.

Синтаксис Automation:

LPDISPATCH GetPPoint();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray точек сплайна типа NURBS_POINT_ARR.
Примечания:

Если для описания NURBS выбран вариант ALLPARAM или SHEET_ALLPARAM, то способ заполнения массива точек определяется значением параметра Close:

- Если Close=0 (NURBS замкнут) - параметры с разжатым узловым вектором,

- Если Close=1 (NURBS разомкнут) - параметры с зажатым узловым вектором.

Если для описания NURBS выбран вариант NURBS_CLAMPED_PARAM или NURBS_CLAMPED_SHEETPARAM, то вне зависимости от значения параметра Close возвращаются параметры с зажатым узловым вектором.

Смотрите также

ksNurbsPointParam


ksNurbsParam::SetPPoint

Установить динамический массив точек сплайна ksDynamicArray типа NURBS_POINT_ARR.

Синтаксис Automation:

BOOL SetPPoint (LPDISPATCH pPoint);

Входной параметр:

pPoint	- указатель на интерфейс динамического массива ksDynamicArray точек сплайна типа NURBS_POINT_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksNurbsPointParam


ksNurbsParam::GetPKnot

Получить динамический массив узлов сплайна ksDynamicArray типа DOUBLE_ARR.

Синтаксис Automation:

LPDISPATCH GetPKnot();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray узлов сплайна типа DOUBLE_ARR.
Примечания:

Если для описания NURBS выбран вариант ALLPARAM или SHEET_ALLPARAM, то способ заполнения массива точек определяется значением параметра Close:

- Если Close=0 (NURBS замкнут) - параметры с разжатым узловым вектором,

- Если Close=1 (NURBS разомкнут) - параметры с зажатым узловым вектором.

Если для описания NURBS выбран вариант NURBS_CLAMPED_PARAM или NURBS_CLAMPED_SHEETPARAM, то вне зависимости от значения параметра Close возвращаются параметры с зажатым узловым вектором.


ksNurbsParam::SetPKnot

Установить динамический массив узлов сплайна ksDynamicArray типа DOUBLE_ARR

Синтаксис Automation:

BOOL SetPKnot (LPDISPATCH pKnot);

Входной параметр:

pKnot	- указатель на интерфейс динамического массива ksDynamicArray типа DOUBLE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksNurbsParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры NURBS.

2. Динамические массивы не создаются.


Интерфейс ksNurbsPointParam
ksNurbsPointParam

Интерфейс параметров точки кривой NURBS.

Аналог данных параметров при использовании API экспортных функций - NurbsPointParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksNurbsPointParam::props
ksNurbsPointParam
свойства

x, y

weight


ksNurbsPointParam::methods
ksNurbsPointParam
методы

Init


ksNurbsPointParam::x,
ksNurbsPointParam::y

Координаты базовой точки.

Тип данных - double.

Синтаксис Automation:

x = iNurbsPointParam.x	Получить свойство (*)
iNurbsPointParam.x = x	Установить свойство (*)
x = iNurbsPointParam.GetX()	Получить свойство (**)
iNurbsPointParam.SetX( x )	Установить свойство (**)


ksNurbsPointParam::weight

Вес точки.

Тип данных - double.

Синтаксис Automation:

weight = iNurbsPointParam.weight	Получить свойство (*)
iNurbsPointParam.weight = weight	Установить свойство (*)
weight = iNurbsPointParam.GetWeight()	Получить свойство (**)
iNurbsPointParam.SetWeight( weight )	Установить свойство (**)
Синтаксис Automation:

Значение свойства должно быть больше нуля.


ksNurbsPointParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры узла для кривой NURBS.


Интерфейс ksOrdinatedDimParam
 ksOrdinatedDimParam

Интерфейс параметров размера высоты.

Аналог данных параметров при использовании API экспортных функций - OrdinatedDimParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksOrdinatedDimParam::methods
ksOrdinatedDimParam
методы

GetDPar

GetSPar

GetTPar

Init

SetDPar

SetSPar

SetTPar


ksOrdinatedDimParam::GetTPar

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

Синтаксис Automation:

LPDISPATCH GetTPar();

Возвращаемое значение:

	указатель на интерфейс параметров размерной надписи ksDimTextParam.


ksOrdinatedDimParam::SetTPar

Установить указатель на интерфейс параметров размерной надписи.

Синтаксис Automation:

BOOL SetTPar (LPDISPATCH tPar);

Входной параметр:

tPar	- указатель на интерфейс параметров размерной надписи ksDimTextParam.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksOrdinatedDimParam::GetDPar

Получить указатель на интерфейс параметров изображения размера высоты.

Синтаксис Automation:

LPDISPATCH GetDPar();

Возвращаемое значение:

	указатель на интерфейс параметров изображения размера высоты ksOrdinatedDrawingParam.


ksOrdinatedDimParam::SetDPar

Установить указатель на интерфейс параметров изображения размера высоты.

Синтаксис Automation:

BOOL SetDPar (LPDISPATCH dPar);

Входной параметр:

dPar	- указатель на интерфейс параметров изображения размера высоты ksOrdinatedDrawingParam.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksOrdinatedDimParam::GetSPar

Получить указатель на интерфейс параметров привязки размера высоты.

Синтаксис Automation:

LPDISPATCH GetSPar();

Возвращаемое значение:

	указатель на интерфейс параметров привязки размера высоты ksOrdinatedSourceParam.


ksOrdinatedDimParam::SetSPar

Установить указатель на интерфейс параметров привязки размера высоты.

Синтаксис Automation:

BOOL SetSPar (LPDISPATCH sPar);

Входной параметр:

sPar	- указатель на интерфейс параметров привязки размера высоты ksOrdinatedSourceParam.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksOrdinatedDimParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры отрисовки размера высоты.


Интерфейс ksOrdinatedDrawingParam
 ksOrdinatedDrawingParam

Интерфейс параметров отрисовки размера высоты.

Аналог данных параметров при использовании API экспортных функций - OrdinatedDrawing.

Свойства...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksOrdinatedDrawingParam::props
ksOrdinatedDrawingParam
методы

type


ksOrdinatedDrawingParam::type

Тип размера высоты.

Тип данных - short.

Типы размеров высоты...

Синтаксис Automation:

type = iOrdinatedDrawingParam.type	Получить свойство (*)
iOrdinatedDrawingParam.type = type	Установить свойство (*)
type = iOrdinatedDrawingParam.GetType()	Получить свойство (**)
iOrdinatedDrawingParam.SetType(type)	Установить свойство (**)


Интерфейс ksOrdinatedSourceParam
 ksOrdinatedSourceParam

Интерфейс параметров привязки размера высоты.

Аналог данных параметров при использовании API экспортных функций - OrdinatedSource.

Свойства...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksOrdinatedSourceParam::props
ksOrdinatedSourceParam
свойства

x0, y0

x1, y1

x2, y2


ksOrdinatedSourceParam::x0,
ksOrdinatedSourceParam::y0

Координаты точки, задающей нулевой уровень размера.

Тип данных - double.

Синтаксис Automation:

x0 = iOrdinatedSourceParam.x0	Получить свойство (*)
iOrdinatedSourceParam.x0 = x0	Установить свойство (*)
x0 = iOrdinatedSourceParam.GetX0()	Получить свойство (**)
iOrdinatedSourceParam.SetX0(x0)	Установить свойство (**)


ksOrdinatedSourceParam::x1,
ksOrdinatedSourceParam::y1

Координаты точки, задающей образмериваемый уровень.

Тип данных - double.

Синтаксис Automation:

x1 = iOrdinatedSourceParam.x1	Получить свойство (*)
iOrdinatedSourceParam.x1 = x1	Установить свойство (*)
x1 = iOrdinatedSourceParam.GetX1()	Получить свойство (**)
iOrdinatedSourceParam.SetX1(x1)	Установить свойство (**)


ksOrdinatedSourceParam::x2,
ksOrdinatedSourceParam::y2

Координаты точки, задающей положение размерной надписи.

Тип данных - double.

Синтаксис Automation:

x2 = iOrdinatedSourceParam.x2	Получить свойство (*)
iOrdinatedSourceParam.x2 = x2	Установить свойство (*)
x2 = iOrdinatedSourceParam.GetX2()	Получить свойство (**)
iOrdinatedSourceParam.SetX2(x2)	Установить свойство (**)


Интерфейс ksParagraphParam
ksParagraphParam

Интерфейс параметров параграфа текста.

Аналог данных параметров при использовании API экспортных функций - ParagraphParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksParagraphParam::props
ksParagraphParam
свойства

ang

height

hFormat

style

vFormat

width

x, y


ksParagraphParam::methods
ksParagraphParam
методы

Init


ksParagraphParam::style

Стиль текста.

Тип данных - long.

Синтаксис Automation:

style = iParagraphParam.style	Получить свойство (*)
iParagraphParam.style = style	Установить свойство (*)
style = iParagraphParam.GetStyle()	Получить свойство (**)
iParagraphParam.SetStyle( style )	Установить свойство (**)
Системные стили текстов...


ksParagraphParam::x,
ksParagraphParam::y

Координаты точки привязки текста.

Тип данных - double.

Синтаксис Automation:

x = iParagraphParam.x	Получить свойство (*)
iParagraphParam.x = x	Установить свойство (*)
x = iParagraphParam.GetX()	Получить свойство (**)
iParagraphParam.SetX( x )	Установить свойство (**)


ksParagraphParam::ang

Угол наклона текста.

Тип данных - double.

Синтаксис Automation:

ang = iParagraphParam.ang	Получить свойство (*)
iParagraphParam.ang = ang	Установить свойство (*)
ang = iParagraphParam.GetAng()	Получить свойство (**)
iParagraphParam.SetAng( ang )	Установить свойство (**)


ksParagraphParam::width

Ширина блока форматирования.

Тип данных - double.

Синтаксис Automation:

width = iParagraphParam.width	Получить свойство (*)
iParagraphParam.width = width	Установить свойство (*)
width = iParagraphParam.GetWidth()	Получить свойство (**)
iParagraphParam.SetWidth(width )	Установить свойство (**)


ksParagraphParam::height

Высота блока форматирования.

Тип данных - double.

Синтаксис Automation:

height = iParagraphParam.height	Получить свойство (*)
iParagraphParam.height = height	Установить свойство (*)
height = iParagraphParam.GetHeight()	Получить свойство (**)
iParagraphParam.SetHeight( height )	Установить свойство (**)


ksParagraphParam::vFormat

Признак форматирования по вертикали.

Тип данных - double.

Значения свойства:

0	- нет форматирования,
-1	- изменение шага строк.
Синтаксис Automation:

vFormat = iParagraphParam.vFormat	Получить свойство (*)
iParagraphParam.vFormat = vFormat	Установить свойство (*)
vFormat = iParagraphParam.GetVFormat()	Получить свойство (**)
iParagraphParam.SetVFormat( vFormat )	Установить свойство (**)


ksParagraphParam::hFormat

Признак форматирования по горизонтали.

Тип данных - double.

Значения свойства:

0	- нет форматирования,
1	- сужение текста,
2	- перенос на другую строку.
Синтаксис Automation:

hFormat = iParagraphParam.hFormat	Получить свойство (*)
iParagraphParam.hFormat = hFormat	Установить свойство (*)
hFormat = iParagraphParam.GetHFormat()	Получить свойство (**)
iParagraphParam.SetHFormat(hFormat )	Установить свойство (**)


ksParagraphParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры параграфа текста.


Интерфейс ksPhantom
ksPhantom

Интерфейс фантома.

Аналог данных параметров при использовании API экспортных функций - Phantom.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksPhantom::props
ksPhantom
свойства

phantom


ksPhantom::methods
ksPhantom
методы

GetPhantomParam

Init


ksPhantom::phantom

Тип фантома.

Тип данных - short.

Синтаксис Automation:

phantom = iPhantom.phantom	Получить свойство (*)
iPhantom.phantom = phantom	Установить свойство (*)
phantom = iPhantom.GetPhantom()	Получить свойство (**)
iPhantom.SetPhantom(phantom)	Установить свойство (**)
Типы фантомов...


ksPhantom::GetPhantomParam

Получить указатель на интерфейс параметров фантома.

Синтаксис Automation:

LPDISPATCH GetPhantomParam();

Возвращаемое значение:

	указатель на интерфейс параметров фантома ksType1, ksType2, ksType3, ksType5, ksType6
Примечание

Метод возвращает указатель на интерфейс параметров фантома указанного типа (смотрите свойство phantom).

Типы фантомов...


ksPhantom::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры фантома.


Интерфейс ksPlacementParam
ksPlacementParam

Интерфейс параметров местоположения (привязки).

Аналог данных параметров при использовании API экспортных функций - PlacementParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksPlacementParam::props
ksPlacementParam
свойства

angle

scale_

xBase, yBase


ksPlacementParam::methods
ksPlacementParam
методы

Init


ksPlacementParam::xBase,
ksPlacementParam::yBase

Координаты базовой точки в системе координат вида.

Тип данных - double.

Синтаксис Automation:

xBase = iPlacementParam.xBase	Получить свойство (*)
iPlacementParam.xBase = xBase	Установить свойство (*)
xBase = iPlacementParam.GetXBase()	Получить свойство (**)
iPlacementParam.SetXBase( xBase )	Установить свойство (**)


ksPlacementParam::scale_

Масштаб.

Тип данных - double.

Синтаксис Automation:

scale_ = iPlacementParam.scale_	Получить свойство (*)
iPlacementParam.scale_ = scale_	Установить свойство (*)
scale_ = iPlacementParam.GetScale_()	Получить свойство (**)
iPlacementParam.SetScale_(scale_)	Установить свойство (**)


ksPlacementParam::angle

Угол поворота в системе координат вида.

Тип данных - double.

Синтаксис Automation:

angle = iPlacementParam.angle	Получить свойство (*)
iPlacementParam.angle = angle	Установить свойство (*)
angle = iPlacementParam.GetAngle()	Получить свойство (**)
iPlacementParam.SetAngle( angle )	Установить свойство (**)


ksPlacementParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры местоположения.

2. Свойство scale_ = 1.


Интерфейс ksPointParam
ksPointParam

Интерфейс параметров точки.

Аналог данных параметров при использовании API экспортных функций - PointParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksPointParam::props
ksPointParam
свойства

style

x, y


ksPointParam::methods
ksPointParam
методы

Init


ksPointParam::x,
ksPointParam::y

Координаты точки.

Тип данных - double.

Синтаксис Automation:

x = iPointParam.x	Получить свойство (*)
iPointParam.x = x	Установить свойство (*)
x = iPointParam.GetX()	Получить свойство (**)
iPointParam.SetX( x )	Установить свойство (**)


ksPointParam::style

Стиль отрисовки точки.

Тип данных - long.

Синтаксис Automation:

style = iPointParam.style	Получить свойство (*)
iPointParam.style = style	Установить свойство (*)
style = iPointParam.GetStyle()	Получить свойство (**)
iPointParam.SetStyle( style )	Установить свойство (**)
Системные стили точек...


ksPointParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры точки.


Интерфейс ksPolylineParam
ksPolylineParam

Интерфейс параметров ломаной линии.

Аналог данных параметров при использовании API экспортных функций - PolylineParamEx.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksPolylineParam::props
ksPolylineParam
свойства

closed

style


ksPolylineParam::methods
ksPolylineParam
методы

GetpMathPoint

Init

SetpMathPoint


ksPolylineParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iPolylineParam.style	Получить свойство (*)
iPolylineParam.style = style	Установить свойство (*)
style = iPolylineParam.GetStyle()	Получить свойство (**)
iPolylineParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksPolylineParam::closed

Признак замкнутости ломаной.

Тип данных - BOOL.

Значения свойства:

TRUE	- ломаная замкнута,
FALSE	- ломаная разомкнута.
Синтаксис Automation:

closed = iPolylineParam.closed	Получить свойство (*)
iPolylineParam.closed = closed	Установить свойство (*)
closed = iPolylineParam.GetClosed()	Получить свойство (**)
iPolylineParam.SetClosed( closed )	Установить свойство (**)


ksPolylineParam::GetpMathPoint

Получить указатель на динамический массив математических точек ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

LPDISPATCH GetpMathPoint();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа POINT_ARR.
Смотрите также

ksMathPointParam


ksPolylineParam::SetpMathPoint

Установить указатель на динамический массив математических точек ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

BOOL SetpMathPoint (LPDISPATCH pMathPoint);

Входной параметр:

pMathPoint	- указатель на интерфейс динамического массива ksDynamicArray типа POINT_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksMathPointParam


ksPolylineParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры ломаной линии.

2. Создается динамический массив pMathPoint типа POINT_ARR.


Интерфейс ksPosLeaderParam
ksPosLeaderParam

Интерфейс параметров линии-выноски для обозначения позиции.

Аналог данных параметров при использовании API экспортных функций - PosLeaderParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksPosLeaderParam::props
ksPosLeaderParam
свойства

arrowType

dirX

dirYksPosLeaderParam_dirY>Method

style

x, y


ksPosLeaderParam::methods
ksPosLeaderParam
методы

GetpPolyline

GetpTextline

Init

SetpPolyline

SetpTextline


ksPosLeaderParam::style

Стиль текста.

Тип данных - long.

Значения свойства:

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

Синтаксис Automation:

style = iPosLeaderParam.style	Получить свойство (*)
iPosLeaderParam.style = style	Установить свойство (*)
style = iPosLeaderParam.GetStyle()	Получить свойство (**)
iPosLeaderParam.SetStyle( style )	Установить свойство (**)
Примечание:

Если style = INDICATIN_TEXT_LINE_ARR, то динамический массив pText - типа TEXT_LINE_ARR. В остальных случаях - типа CHAR_STR_ARR.


ksPosLeaderParam::x,
ksPosLeaderParam::y

Координаты базовой точки линии-выноски обозначения позиции.

Тип данных - double.

Синтаксис Automation:

x = iPosLeaderParam.x	Получить свойство (*)
iPosLeaderParam.x = x	Установить свойство (*)
x = iPosLeaderParam.GetX()	Получить свойство (**)
iPosLeaderParam.SetX( x )	Установить свойство (**)
Примечание:

Базовая точка линии-выноски - начало первой полки, точка выхода из нее "ножки".


ksPosLeaderParam::arrowType

Тип указателя линии-выноски.

Тип данных - short.

Значения свойства:

0	- указатель отсутствует,
1	- точка,
2	- стрелка.
Синтаксис Automation:

arrowType = iPosLeaderParam.arrowType	Получить свойство (*)
iPosLeaderParam.arrowType = arrowType	Установить свойство (*)
arrowType = iPosLeaderParam.GetArrowType()	Получить свойство (**)
iPosLeaderParam.SetArrowType( arrowType )	Установить свойство (**)


ksPosLeaderParam::dirX

Направление полки линии-выноски относительно оси OX.

Тип данных - long.

Значения свойства:

1	- вправо (по оси OX),
-1	- влево (против оси OX).
Синтаксис Automation:

dirX = iPosLeaderParam.dirX	Получить свойство (*)
iPosLeaderParam.dirX = dirX	Установить свойство (*)
dirX = iPosLeaderParam.GetDirX()	Получить свойство (**)
iPosLeaderParam.SetDirX( dirX )	Установить свойство (**)


ksPosLeaderParam::dirY

Направление полки линии-выноски относительно оси OY.

Тип данных - long.

Значения свойства:

1	- вверх (по оси OY),
-1	- вниз (против оси OY).
Синтаксис Automation:

dirY = iPosLeaderParam.dirY	Получить свойство (*)
iPosLeaderParam.dirY = dirY	Установить свойство (*)
dirY = iPosLeaderParam.GetDirY()	Получить свойство (**)
iPosLeaderParam.SetDirY( dirY )	Установить свойство (**)


ksPosLeaderParam::GetpTextline

Получить указатель на интерфейс динамического массива текста обозначения позиции ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetpTextline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray.
Примечания:

1. Если свойство ksPosLeaderParam::style = INDICATIN_TEXT_LINE_ARR, то динамический массив - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк обозначения позиции).

2. Каждая строка соответствует одному номеру позиции.

Смотрите также

ksTextLineParam

ksChar255


ksPosLeaderParam::SetpTextline

Установить указатель на интерфейс динамического массива текста обозначения позиции ksDynamicArray в каждой строке лежит одна позиция

Синтаксис Automation:

BOOL SetpTextline (LPDISPATCH pTextline);

Входной параметр:

pTextline	- указатель на интерфейс динамического массива ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Если свойство ksPosLeaderParam::style = INDICATIN_TEXT_LINE_ARR, то динамический массив - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк обозначения позиции).

2. Каждая строка соответствует одному номеру позиции.

Смотрите также

ksTextLineParam

ksChar255


ksPosLeaderParam::GetpPolyline

Получить указатель на интерфейс динамического массива ответвлений позиционной линии-выноски ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

LPDISPATCH GetpPolyline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Примечание:

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

Смотрите также

ksMathPointParam


ksPosLeaderParam::SetpPolyline

Установить указатель на интерфейс динамического массива ответвлений позиционной линии-выноски ksDynamicArray типа POLYLINE_ARR.

Синтаксис Automation:

BOOL SetpPolyline (LPDISPATCH pPolyline);

Входной параметр:

pPolyline	- указатель на интерфейс динамического массива ksDynamicArray типа POLYLINE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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

Смотрите также

ksMathPointParam


ksPosLeaderParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pText типа CHAR_STR_ARR.

3. Создается динамический массив pPolyline типа POLYLINE_ARR.


Интерфейс ksQualityContensParam
ksQualityContensParam

Интерфейс параметров квалитета.

Аналог данных параметров при использовании API экспортных функций - QualityContensParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksQualityContensParam::props
ksQualityContensParam
свойства

kindQuality

name

systemQuality


ksQualityContensParam::methods
ksQualityContensParam
методы

GetpQualityItems

Init

SetpQualityItems


ksQualityContensParam::systemQuality

Система квалитета.

Тип данных - short.

Значения свойства:

1	- система вала,
2	- система отверстия.
Синтаксис Automation:

systemQuality = iQualityContensParam.systemQuality	Получить свойство (*)
iQualityContensParam.systemQuality = systemQuality	Установить свойство (*)
systemQuality = iQualityContensParam.GetSystemQuality()	Получить свойство (**)
iQualityContensParam.SetSystemQuality( systemQuality )	Установить свойство (**)


ksQualityContensParam::kindQuality

Тип квалитета.

Тип данных - short.

Значения свойства:

1	- предпочтительный,
2	- основной,
3	- дополнительный.
Синтаксис Automation:

kindQuality = iQualityContensParam.kindQuality	Получить свойство (*)
iQualityContensParam.kindQuality = kindQuality	Установить свойство (*)
kindQuality = iQualityContensParam.GetKindQuality()	Получить свойство (**)
iQualityContensParam.SetKindQuality(kindQuality )	Установить свойство (**)


ksQualityContensParam::name

Поле допуска.

Тип данных - строка.

Синтаксис Automation:

name = iQualityContensParam.name	Получить свойство (*)
iQualityContensParam.name = name	Установить свойство (*)
name = iQualityContensParam.GetName()	Получить свойство (**)
iQualityContensParam.SetName(name )	Установить свойство (**)


ksQualityContensParam::GetpQualityItems

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

Синтаксис Automation:

LPDISPATCH GetpQualityItems();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray структур параметров интервала квалитета типа QUALITYITEM_ARR.
Смотрите также

ksQualityItemParam


ksQualityContensParam::SetpQualityItems

Установить указатель на интерфейс динамического массива структур параметров интервала квалитета типа QUALITYITEM_ARR.

Синтаксис Automation:

BOOL SetpQualityItems (LPDISPATCH pGab);

Входной параметр:

pGab	- указатель на интерфейс динамического массива ksDynamicArray структур параметров интервала квалитета типа QUALITYITEM_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksQualityItemParam


ksQualityContensParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры квалитета.


Интерфейс ksQualityItemParam
ksQualityItemParam

Интерфейс параметров интервала квалитета.

Аналог данных параметров при использовании API экспортных функций - QualityItemParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksQualityItemParam::props
ksQualityItemParam
свойства

high

low

maxLimit

minLimit


ksQualityItemParam::methods
ksQualityItemParam
методы

Init


ksQualityItemParam::minLimit

Минимальное значение в интервале размеров.

Тип данных - short.

Синтаксис Automation:

minLimit = iQualityItemParam.minLimit	Получить свойство (*)
iQualityItemParam.minLimit = minLimit	Установить свойство (*)
minLimit = iQualityItemParam.GetMinLimit()	Получить свойство (**)
iQualityItemParam.SetMinLimit( minLimit )	Установить свойство (**)


ksQualityItemParam::maxLimit

Максимальное значение в интервале размеров.

Тип данных - short.

Синтаксис Automation:

maxLimit = iQualityItemParam.maxLimit	Получить свойство (*)
iQualityItemParam.maxLimit = maxLimit	Установить свойство (*)
maxLimit = iQualityItemParam.GetMaxLimit()	Получить свойство (**)
iQualityItemParam.SetMaxLimit( maxLimit )	Установить свойство (**)


ksQualityItemParam::high

Верхнее отклонение.

Тип данных - double.

Синтаксис Automation:

high = iQualityItemParam.high	Получить свойство (*)
iQualityItemParam.high = high	Установить свойство (*)
high = iQualityItemParam.GetHigh()	Получить свойство (**)
iQualityItemParam.SetHigh( high )	Установить свойство (**)


ksQualityItemParam::low

Нижнее отклонение.

Тип данных - double.

Синтаксис Automation:

low = iQualityItemParam.low	Получить свойство (*)
iQualityItemParam.low = low	Установить свойство (*)
low = iQualityItemParam.GetLow()	Получить свойство (**)
iQualityItemParam.SetLow( low )	Установить свойство (**)


ksQualityItemParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры записи об одном интервале для квалитета.


Интерфейс ksRasterParam
ksRasterParam

Интерфейс параметров растрового объекта.

Аналог данных параметров при использовании API экспортных функций - RasterParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRasterParam::props
ksRasterParam
свойства

embeded

fileName


ksRasterParam::methods
ksRasterParam
методы

GetPlace

Init

SetPlace


ksRasterParam::fileName

Полный путь к файлу с растровым изображением.

Тип данных - строка.

Синтаксис Automation:

fileName = iRasterParam.fileName	Получить свойство (*)
iRasterParam.fileName = fileName	Установить свойство (*)
fileName = iRasterParam.GetFileName()	Получить свойство (**)
iRasterParam.SetFileName( fileName )	Установить свойство (**)


ksRasterParam::embeded

Признак внедрения растра или ссылки на него.

Тип данных - BOOL.

Значения свойства:

TRUE	- внедрять данные в объект,
FALSE	- связывать объект с файлом-источником данных на диске.
Синтаксис Automation:

embeded = iRasterParam.embeded	Получить свойство (*)
iRasterParam.embeded = embeded	Установить свойство (*)
embeded = iRasterParam.GetEmbeded()	Получить свойство (**)
iRasterParam.SetEmbeded( embeded )	Установить свойство (**)
Примечание:

Значение FALSE в данный момент не используется (связь растрового объекта с файлом на диске в КОМПАС-ГРАФИК не реализована).


ksRasterParam::GetPlace

Получить указатель на интерфейс параметров местоположения.

Синтаксис Automation:

LPDISPATCH GetPlace();

Возвращаемое значение:

	указатель на интерфейс ksPlacementParam.


ksRasterParam::SetPlace

Установить указатель на интерфейс параметров местоположения.

Синтаксис Automation:

BOOL SetPlace (LPDISPATCH place);

Входной параметр:

place	- указатель на интерфейс ksPlacementParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksRasterParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры растрового объекта.


Интерфейс ksRBreakDimParam
ksRBreakDimParam

Интерфейс параметров радиального размера с изломом.

Аналог данных параметров при использовании API экспортных функций - RBreakDimParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRBreakDimParam::methods
ksRBreakDimParam
методы

GetDPar

GetSPar

GetTPar

SetDPar

SetSPar

SetTPar


ksRBreakDimParam::GetTPar

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

Синтаксис Automation:

LPDISPATCH GetTPar();

Возвращаемое значение:

	указатель на интерфейс параметров размерной надписи ksDimTextParam.


ksRBreakDimParam::SetTPar

Установить указатель на интерфейс параметров размерной надписи.

Синтаксис Automation:

BOOL SetTPar (LPDISPATCH tPar);

Входной параметр:

tPar	- указатель на интерфейс параметров размерной надписи ksDimTextParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksRBreakDimParam::GetDPar

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

Синтаксис Automation:

LPDISPATCH GetDPar();

Возвращаемое значение:

	указатель на интерфейс параметров отрисовки радиального размера с изломом ksRBreakDrawingParam.


ksRBreakDimParam::SetDPar

Установить указатель на интерфейс параметров отрисовки радиального размера с изломом.

Синтаксис Automation:

BOOL SetDPar (LPDISPATCH dPar);

Входной параметр:

dPar	- указатель на интерфейс параметров отрисовки радиального размера с изломом ksRBreakDrawingParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksRBreakDimParam::GetSPar

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

Синтаксис Automation:

LPDISPATCH GetSPar();

Возвращаемое значение:

	указатель на интерфейс параметров привязки диаметрального и радиального размеров ksRDimSourceParam.


ksRBreakDimParam::SetSPar

Установить параметры привязки линейного размера.

Синтаксис Automation:

BOOL SetSPar (LPDISPATCH sPar);

Входной параметр:

sPar	- указатель на интерфейс параметров привязки диаметрального и радиального размеров ksRDimSourceParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


Интерфейс ksRBreakDrawingParam
ksRBreakDrawingParam

Интерфейс параметров отрисовки радиального размера с изломом.

Аналог данных параметров при использовании API экспортных функций - RBreakDrawing.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRBreakDrawingParam::props
ksRBreakDrawingParam
свойства

ang

pb

pt


ksRBreakDrawingParam::methods
ksRBreakDrawingParam
методы

Init


ksRBreakDrawingParam::pt

Тип стрелки.

Тип данных - short.

Типы отрисовки стрелок...

Синтаксис Automation:

pt = iRBreakDrawing.pt	Получить свойство (*)
iRBreakDrawing.pt = pt	Установить свойство (*)
pt = iRBreakDrawing.GetPt()	Получить свойство (**)
iRBreakDrawing.SetPt(pt)	Установить свойство (**)


ksRBreakDrawingParam::ang

Угол наклона размерной линии в градусах.

Тип данных - double.

Синтаксис Automation:

ang = iRBreakDrawing.ang	Получить свойство (*)
iRBreakDrawing.ang = ang	Установить свойство (*)
ang = iRBreakDrawing.GetAng()	Получить свойство (**)
iRBreakDrawing.SetAng(ang)	Установить свойство (**)


ksRBreakDrawingParam::pb

Длина излома.

Тип данных - long.

Синтаксис Automation:

pb = iRBreakDrawing.pb	Получить свойство (*)
iRBreakDrawing.pb = pb	Установить свойство (*)
pb = iRBreakDrawing.GetAng()	Получить свойство (**)
iRBreakDrawing.SetAng(pb)	Установить свойство (**)
Примечание:

Данный параметр - аннотационный (он не зависит от масштаба, измеряется "по бумаге").


ksRBreakDrawingParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры отрисовки радиального размера с изломом.


Интерфейс ksRDimDrawingParam
ksRDimDrawingParam

Интерфейс параметров отрисовки диаметрального и радиального размеров.

Аналог данных параметров при использовании API экспортных функций - RDimDrawing.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRDimDrawingParam::props
ksRDimDrawingParam
свойства

ang

pt1

pt2

shelfDir

textPos


ksRDimDrawingParam::methods
ksRDimDrawingParam
методы

Init


ksRDimDrawingParam::pt1

Тип стрелки у первой выносной линии.

Тип данных - short.

Типы отрисовки стрелок...

Синтаксис Automation:

pt1 = iRDimDrawing.pt1	Получить свойство (*)
iRDimDrawing.pt1 = pt1	Установить свойство (*)
pt1 = iRDimDrawing.GetPt1()	Получить свойство (**)
iRDimDrawing.SetPt1(pt1)	Установить свойство (**)


ksRDimDrawingParam::pt2

Тип стрелки у второй выносной линии (для диаметрального размера);
признак построения (для радиального размера).

Тип данных - short.

Типы отрисовки стрелок...

Значения свойства для радиального размера:

0	- размер от центра,
1	- размер не от центра.
Синтаксис Automation:

pt2 = iRDimDrawing.pt2	Получить свойство (*)
iRDimDrawing.pt2 = pt2	Установить свойство (*)
pt2 = iRDimDrawing.GetPt2()	Получить свойство (**)
iRDimDrawing.SetPt2(pt2)	Установить свойство (**)


ksRDimDrawingParam::textPos

Параметр отрисовки текста или длина "ножки".

Тип данных - long.

Синтаксис Automation:

textPos = iRDimDrawing.textPos	Получить свойство (*)
iRDimDrawing.textPos = textPos	Установить свойство (*)
textPos = iRDimDrawing.GetTextPos()	Получить свойство (**)
iRDimDrawing.GetTextPos( textPos )	Установить свойство (**)
Синтаксис Automation:

Данный параметр - аннотационный (не зависит от масштаба, измеряется "по бумаге").


ksRDimDrawingParam::shelfDir

Направление выносной полки.

Тип данных - long.

Значения свойства:

0	- нет полки,
-1	- полка влево,
1	- полка вправо,
2	- полка вверх,
3	- полка вниз.
Синтаксис Automation:

shelfDir = iRDimDrawing.shelfDir	Получить свойство (*)
iRDimDrawing.shelfDir = shelfDir	Установить свойство (*)
shelfDir = iRDimDrawing.GetShelfDir()	Получить свойство (**)
iRDimDrawing.SetShelfDir( shelfDir )	Установить свойство (**)


ksRDimDrawingParam::ang

Угол наклона размерной линии.

Тип данных - double.

Синтаксис Automation:

ang = iRDimDrawing.ang	Получить свойство (*)
iRDimDrawing.ang = ang	Установить свойство (*)
ang = iRDimDrawing.GetAng()	Получить свойство (**)
iRDimDrawing.SetAng( ang )	Установить свойство (**)


ksRDimDrawingParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры отрисовки диаметрального и радиального размеров.


Интерфейс ksRDimParam
ksRDimParam

Интерфейс параметров диаметрального и обычного радиального размера.

Аналог данных параметров при использовании API экспортных функций - RDimParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRDimParam::methods
ksRDimParam
методы

GetDPar

GetSPar

GetTPar

SetDPar

SetSPar

SetTPar


ksRDimParam::GetTPar

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

Синтаксис Automation:

LPDISPATCH GetTPar();

Возвращаемое значение:

	указатель на интерфейс параметров размерной надписи ksDimTextParam.


ksRDimParam::SetTPar

Установить указатель на интерфейс параметров размерной надписи.

Синтаксис Automation:

BOOL SetTPar (LPDISPATCH tPar);

Входной параметр:

tPar	- указатель на интерфейс параметров размерной надписи ksDimTextParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksRDimParam::GetDPar

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

Синтаксис Automation:

LPDISPATCH GetDPar();

Возвращаемое значение:

	указатель на интерфейс параметров отрисовки диаметрального и радиального размеров ksRDimDrawingParam.


ksRDimParam::SetDPar

Установить указатель на интерфейс параметров отрисовки диаметрального и радиального размеров.

Синтаксис Automation:

BOOL SetDPar(LPDISPATCH dPar);

Входной параметр:

dPar	- указатель на интерфейс параметров отрисовки диаметрального и радиального размеров ksRDimDrawingParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksRDimParam::GetSPar

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

Синтаксис Automation:

LPDISPATCH GetSPar();

Возвращаемое значение:

	указатель на интерфейс параметров привязки диаметрального и радиального размеров ksRDimSourceParam.


ksRDimParam::SetSPar

Установить указатель на интерфейс параметров привязки диаметрального и радиального размеров.

Синтаксис Automation:

BOOL SetSPar (LPDISPATCH sPar);

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Входной параметр:

sPar	- указатель на интерфейс параметров привязки диаметрального и радиального размеров ksRDimSourceParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


Интерфейс ksRDimSourceParam
ksRDimSourceParam

Интерфейс параметров привязки диаметрального и радиального размеров.

Аналог данных параметров при использовании API экспортных функций - RDimSource.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRDimSourceParam::props
ksRDimSourceParam
свойства

rad

xc, yc


ksRDimSourceParam::methods
ksRDimSourceParam
методы

Init


ksRDimSourceParam::xc,
ksRDimSourceParam::yc

Координаты центра дуги или окружности.

Тип данных - double.

Синтаксис Automation:

xc = iRDimSource.xc	Получить свойство (*)
iRDimSource.xc = xc	Установить свойство (*)
xc = iRDimSource.GetXc()	Получить свойство (**)
iRDimSource.SetXc( xc )	Установить свойство (**)


ksRDimSourceParam::rad

Радиус дуги или окружности.

Тип данных - double.

Синтаксис Automation:

rad = iRDimSource.rad	Получить свойство (*)
iRDimSource.rad = rad	Установить свойство (*)
rad = iRDimSource.GetRad()	Получить свойство (**)
iRDimSource.SetRad( rad )	Установить свойство (**)


ksRDimSourceParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры привязки диаметрального и радиального размеров


Интерфейс ksRecordTypeAttrParam
ksRecordTypeAttrParam

Интерфейс дополнительных параметров для типа значения RECORD_ATTR_TYPE в стиле колонки таблицы спецификации.

Аналог данных параметров при использовании API экспортных функций - RecordTypeAttrParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct

Смотрите также

KompasObject


ksRecordTypeAttrParam::props
ksRecordTypeAttrParam
свойства

attrLibName

key1, key2, key3, key4


ksRecordTypeAttrParam::methods
ksRecordTypeAttrParam
методы

Init


ksRecordTypeAttrParam::attrLibName

Имя файла библиотеки типов атрибутов.

Тип данных - строка.

Синтаксис Automation:

attrLibName = iRecordTypeAttrParam.attrLibName	Получить свойство (*)
attrLibName = iRecordTypeAttrParam.GetAttrLibName()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksRecordTypeAttrParam::key1,
ksRecordTypeAttrParam::key2,
ksRecordTypeAttrParam::key3,
ksRecordTypeAttrParam::key4

Значения ключей атрибутов, служащих шаблонами заполнения колонки спецификации в данном рзделе.

Тип данных - long.

Синтаксис Automation:

key1 = iRecordTypeAttrParam.key1	Получить свойство (*)
key1 = iRecordTypeAttrParam.GetKey1()	Получить свойство (**)
Примечания:

1. Данные свойства предназначены только для чтения.

2. Если значение какого-либо ключа 0, то этот ключ не учитывается.


ksRecordTypeAttrParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksRectangleParam
ksRectangleParam

Интерфейс параметров прямоугольника.

Аналог данных параметров при использовании API экспортных функций - RectangleParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRectangleParam::props
ksRectangleParam
свойства

ang

height

style

width

x, y


ksRectangleParam::methods
ksRectangleParam
методы

GetPCorner

Init

SetPCorner


ksRectangleParam::x,
ksRectangleParam::y

Координаты базовой точки прямоугольника - одной из его вершин.

Тип данных - double.

Синтаксис Automation:

x = iRectangleParam.x	Получить свойство (*)
iRectangleParam.x = x	Установить свойство (*)
x = iRectangleParam.GetX()	Получить свойство (**)
iRectangleParam.SetX( x )	Установить свойство (**)


ksRectangleParam::ang

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

Тип данных - double.

Синтаксис Automation:

ang = iRectangleParam.ang	Получить свойство (*)
iRectangleParam.ang = ang	Установить свойство (*)
ang = iRectangleParam.GetAng()	Получить свойство (**)
iRectangleParam.SetAng(ang)	Установить свойство (**)


ksRectangleParam::height

Высота прямоугольника.

Тип данных - double.

Синтаксис Automation:

height = iRectangleParam.height	Получить свойство (*)
iRectangleParam.height = height	Установить свойство (*)
height = iRectangleParam.GetHeight()	Получить свойство (**)
iRectangleParam.SetHeight(height)	Установить свойство (**)


ksRectangleParam::width

Ширина прямоугольника (длина стороны, характеризующейся углом наклона ang).

Тип данных - double.

Синтаксис Automation:

width = iRectangleParam.width	Получить свойство (*)
iRectangleParam.width = width	Установить свойство (*)
width = iRectangleParam.GetWidth()	Получить свойство (**)
iRectangleParam.SetWidth( width )	Установить свойство (**)


ksRectangleParam::style

Стиль линии.

Тип данных - long.

Синтаксис Automation:

style = iRectangleParam.style	Получить свойство (*)
iRectangleParam.style = style	Установить свойство (*)
style = iRectangleParam.GetStyle()	Получить свойство (**)
iRectangleParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksRectangleParam::GetPCorner

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

Синтаксис Automation:

LPDISPATCH GetPCorner();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа CORNER_ARR.
Смотрите также

ksCornerParam


ksRectangleParam::SetPCorner

Установить указатель на интерфейс динамического массива параметров углов прямоугольника ksDynamicArray типа CORNER_ARR.

Синтаксис Automation:

BOOL SetPCorner (LPDISPATCH pCorner);

Входной параметр:

pCorner	- указатель на интерфейс динамического массива ksDynamicArra типа CORNER_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksCornerParam


ksRectangleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры прямоугольника.


Интерфейс ksRectParam
ksRectParam

Интерфейс параметров прямоугольника по диагональным точкам.

Аналог данных параметров при использовании API экспортных функций - RectParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject.


ksRectParam::methods
ksRectParam
методы

GetpBot

GetpTop

SetpBot

SetpTop


ksRectParam::GetpBot

Получить параметры левой нижней точки прямоугольника.

Синтаксис Automation:

LPDISPATCH GetpBot();

Возвращаемое значение:

	указатель на интерфейс параметров математической точки ksMathPointParam.


ksRectParam::SetpBot

Установить параметры левой нижней точки прямоугольника.

Синтаксис Automation:

BOOL SetpBot(LPDISPATCH pBot);

Входной параметр:

pBot	- указатель на интерфейс параметров математической точки ksMathPointParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksRectParam::GetpTop

Получить параметры правой верхней точки прямоугольника.

Синтаксис Automation:

LPDISPATCH GetpTop();

Возвращаемое значение:

	указатель на интерфейс параметров математической точки ksMathPointParam


ksRectParam::SetpTop

Установить параметры правой верхней точки прямоугольника.

Синтаксис Automation:

BOOL SetpTop (LPDISPATCH pTop);

Входной параметр:

pTop	- указатель на интерфейс параметров математической точки ksMathPointParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

KompasObject


Интерфейс ksRegularPolygonParam
ksRegularPolygonParam

Интерфейс параметров правильного многоугольника.

Аналог данных параметров при использовании API экспортных функций - RegularPolygonParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRegularPolygonParam::props
ksRegularPolygonParam
свойства

ang

count

describe

radius

style

xc, yc


ksRegularPolygonParam::methods
ksRegularPolygonParam
методы

GetPCorner

Init

SetPCorner


ksRegularPolygonParam::count

Количество вершин многоугольника.

Тип данных - long.

Синтаксис Automation:

count = iRegularPolygonParam.count	Получить свойство (*)
iRegularPolygonParam.count = count	Установить свойство (*)
count = iRegularPolygonParam.GetCount()	Получить свойство (**)
iRegularPolygonParam.SetCount( count )	Установить свойство (**)


ksRegularPolygonParam::xc,
ksRegularPolygonParam::yc

Координаты центра вписанной или описанной окружности.

Тип данных - double.

Синтаксис Automation:

xc = iRegularPolygonParam.xc	Получить свойство (*)
iRegularPolygonParam.xc = xc	Установить свойство (*)
xc = iRegularPolygonParam.GetXc()	Получить свойство (**)
iRegularPolygonParam.SetXc( xc )	Установить свойство (**)


ksRegularPolygonParam::ang

Угол радиус-вектора, направленного от центра к первой вершине.

Тип данных - double.

Синтаксис Automation:

ang = iRegularPolygonParam.ang	Получить свойство (*)
iRegularPolygonParam.ang = ang	Установить свойство (*)
ang = iRegularPolygonParam.GetAng()	Получить свойство (**)
iRegularPolygonParam.SetAng( ang )	Установить свойство (**)


ksRegularPolygonParam::radius

Радиус вписанной или описанной окружности.

Тип данных - double.

Синтаксис Automation:

radius = iRegularPolygonParam.radius	Получить свойство (*)
iRegularPolygonParam.radius = radius	Установить свойство (*)
radius = iRegularPolygonParam.GetRadius()	Получить свойство (**)
iRegularPolygonParam.SetRadius( radius )	Установить свойство (**)


ksRegularPolygonParam::describe

Признак описанного или вписанного многоугольника.

Тип данных - BOOL.

Значения свойства:

FALSE	- вписанный многоугольник,
TRUE	- описанный многоугольник.
Синтаксис Automation:

describe = iRegularPolygonParam.describe	Получить свойство (*)
iRegularPolygonParam.describe = describe	Установить свойство (*)
describe = iRegularPolygonParam.GetDescribe()	Получить свойство (**)
iRegularPolygonParam.SetDescribe( describe )	Установить свойство (**)


ksRegularPolygonParam::style

Cтиль линии.

Тип данных - long.

Синтаксис Automation:

style = iRegularPolygonParam.style	Получить свойство (*)
iRegularPolygonParam.style = style	Установить свойство (*)
style = iRegularPolygonParam.GetStyle()	Получить свойство (**)
iRegularPolygonParam.SetStyle( style )	Установить свойство (**)
Системные стили линий...


ksRegularPolygonParam::GetPCorner

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

Синтаксис Automation:

LPDISPATCH GetPCorner();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа CORNER_ARR.
Смотрите также

ksCornerParam


ksRegularPolygonParam::SetPCorner

Установить указатель на интерфейс динамического массива параметров углов прямоугольника ksDynamicArray типа CORNER_ARR.

Синтаксис Automation:

BOOL SetPCorner (LPDISPATCH pCorner);

Входной параметр:

pCorner	- указатель на интерфейс динамического массива ksDynamicArray типа CORNER_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksCornerParam


ksRegularPolygonParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры правильного многоугольника.

2. Динамические массивы не создаются.


Интерфейс ksRequestInfo
ksRequestInfo

Интерфейс параметров запроса к системе.

Аналог данных параметров при использовании API экспортных функций - RequestInfo.

Свойства...

Методы...

Примечания:

1. Данный интерфейс позволяет установить параметры процесcов:

ksDocument2D::ksCursor, ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow.

2. Методами данного интерфейса можно получить/изменить:

- строку или идентификатор строки приглашения,

- строку или идентификатор строки заголовка окна,

- строку меню или идентификатор меню состава команд,

- строку с именем стандартного курсора или идентификатор курсора,

- признак динамического запроса,

- идентификатор приложения(dll), в котором размещены ресурсы процесса,

- функцию обратной связи процесса.

3. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksRequestInfo::props
ksRequestInfo
свойства

commandsString

commInstance

cursorId

cursor

dynamic

menuId

processParam

promptId

prompt

titleId

title


ksRequestInfo::methods
ksRequestInfo
методы

GetCallBackC

GetCallBackCm

GetCallBackP

Init

SetCallBackC

SetCallBackCm

SetCallBackP


ksRequestInfo::prompt

Cтрока приглашения.

Тип данных - строка.

Синтаксис Automation:

prompt = iRequestInfo.prompt	Получить свойство (*)
iRequestInfo.prompt = prompt	Установить свойство (*)
prompt = iRequestInfo.GetPrompt()	Получить свойство (**)
iRequestInfo.SetPrompt (prompt)	Установить свойство (**)


ksRequestInfo::processParam

Параметры процесса.

Тип данных - указатель на интерфейс IProcessParam.

Синтаксис Automation:

processParam = iObject.ProcessParam	Получить свойство (*)
iObject.ProcessParam = processParam	Установить свойство (*)
processParam = iObject.GetProcessParam()	Получить свойство (**)
iObject.SetProcessParam (processParam)	Установить свойство (**)
Синтаксис COM:

iObject->get_ProcessParam (&ProcessParam)	Получить свойство
iObject->put_ProcessParam (ProcessParam)	Установить свойство
Примечания:

Если в интерфейсе параметров запроса к системе указатель на интерфейс параметров процесса не NULL, то при выполнении процесса UserGetPlacementAndEntity, элементы управления из IProcessParam попадут на Панель свойств процесса.


ksRequestInfo::title

Cтрока заголовка окна.

Тип данных - строка.

Синтаксис Automation:

title = iRequestInfo.title	Получить свойство (*)
iRequestInfo.title = title	Установить свойство (*)
title = iRequestInfo.GetTitle()	Получить свойство (**)
iRequestInfo.SetTitle (title)	Установить свойство (**)


ksRequestInfo::commandsString

Cтрока меню состава команд.

Тип данных - строка.

Синтаксис Automation:

commandsString = iRequestInfo.commandsString	Получить свойство (*)
iRequestInfo.commandsString = commandsString	Установить свойство (*)
commandsString = iRequestInfo.GetCommandsString()	Получить свойство (**)
iRequestInfo.SetCommandsString (commandsString)	Установить свойство (**)
Примечание:

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

Восклицательный знак разделяет пункты меню, например "!Квадрат !Треугольник !Ромб".


ksRequestInfo::cursor

Cтрока с именем стандартного курсора.

Тип данных - строка.

Синтаксис Automation:

cursor = iRequestInfo.cursor	Получить свойство (*)
iRequestInfo.cursor = cursor	Установить свойство (*)
cursor = iRequestInfo.GetCursor()	Получить свойство (**)
iRequestInfo.SetCursor (cursor)	Установить свойство (**)


ksRequestInfo::dynamic

Признак динамического запроса.

Тип данных - long.

Значения признака:

0	- статический запрос,
1	- динамический запрос.
Синтаксис Automation:

dynamic = iRequestInfo.dynamic	Получить свойство (*)
iRequestInfo.dynamic = dynamic	Установить свойство (*)
dynamic = iRequestInfo.GetDynamic()	Получить свойство (**)
iRequestInfo.SetDynamic (dynamic)	Установить свойство (**)
Примечание:

В случае динамического запроса функция обратной связи вызывается по перемещению курсора. В случае статического запроса функция обратной связи вызывается по щелчку мыши.


ksRequestInfo::commInstance

Идентификатор приложения (dll), в котором размещены ресурсы процесса.

Тип данных - long.

Синтаксис Automation:

commInstance = iRequestInfo.commInstance	Получить свойство (*)
iRequestInfo.commInstance = commInstance	Установить свойство (*)
commInstance = iRequestInfo.GetCommInstance()	Получить свойство (**)
iRequestInfo.SetCommInstance (commInstance)	Установить свойство (**)


ksRequestInfo::menuId

Идентификатор меню состава команд из ресурса.

Тип данных - long.

Синтаксис Automation:

menuId = iRequestInfo.menuId	Получить свойство (*)
iRequestInfo.menuId = menuId	Установить свойство (*)
menuId = iRequestInfo.GetMenuId()	Получить свойство (**)
iRequestInfo.SetMenuId (menuId)	Установить свойство (**)


ksRequestInfo::titleId

Идентификатор строки заголовка окна из ресурса.

Тип данных - long.

Синтаксис Automation:

titleId = iRequestInfo.titleId	Получить свойство (*)
iRequestInfo.titleId = titleId	Установить свойство (*)
titleId = iRequestInfo.GetTitleId()	Получить свойство (**)
iRequestInfo.SetTitleId (titleId)	Установить свойство (**)


ksRequestInfo::promptId

Идентификатор приглашения из ресурса.

Тип данных - long.

Синтаксис Automation:

promptId = iRequestInfo.promptId	Получить свойство (*)
iRequestInfo.promptId = promptId	Установить свойство (*)
promptId = iRequestInfo.GetPromptId()	Получить свойство (**)
iRequestInfo.SetPromptId (promptId)	Установить свойство (**)


ksRequestInfo::cursorId

Идентификатор курсора из ресурса.

Тип данных - long.

Синтаксис Automation:

cursorId = iRequestInfo.cursorId	Получить свойство (*)
iRequestInfo.cursorId = cursorId	Установить свойство (*)
cursorId = iRequestInfo.GetCursorId()	Получить свойство (**)
iRequestInfo.SetCursorId (cursorId)	Установить свойство (**)


ksRequestInfo::GetCallBackC

Получить имя функции обратной связи для процесса Cursor.

Синтаксис Automation:

BSTR GetCallBackC();

Возвращаемое значение:

	строка с именем функции обратной связи.


ksRequestInfo::SetCallBackC

Установить имя функции обратной связи для процесса Cursor.

Синтаксис Automation:

BOOL SetCallBackC (LPCTSTR methodName,

long hInst,

LPDISPATCH dispatchOCX);

Входные параметры:

methodName	- строка с именем функции обратной связи,
hInst	идентификатор приложения (dll), в котором реализована CallBack-функция,
dispatchOCX	указатель на интерфейc IDispatch, в котором реализована CallBack-функция
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Если разрабатываемое приложение - dll, тогда заполняется параметр hInst, а dispatchOCX = NULL.

2. Если разрабатываемое приложение - ActiceX DLL, тогда заполняется параметр dispatchOCX, а hInst = 0.


ksRequestInfo::GetCallBackP

Получить имя функции обратной связи для процесса Placement.

Синтаксис Automation:

BSTR GetCallBackP();

Возвращаемое значение:

	строка с именем функции обратной связи.


ksRequestInfo::SetCallBackP

Установить имя функции обратной связи для процесса Placement.

Синтаксис Automation:

BOOL SetCallBackP (LPCTSTR methodName,

long hInst,

LPDISPATCH dispatchOCX);

Входные параметры:

methodName	- строка с именем функции обратной связи,
hInst	идентификатор приложения (dll), в котором реализована CallBack-функция,
dispatchOCX	указатель на интерфейc IDispatch, в котором реализована CallBack-функция
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Если разрабатываемое приложение - dll, тогда заполняется параметр hInst, а dispatchOCX = NULL.

2. Если разрабатываемое приложение - ActiceX DLL, тогда заполняется параметр dispatchOCX, а hInst = 0.


ksRequestInfo::GetCallBackCm

Получить имя функции обратной связи для процесса CommandWindow.

Синтаксис Automation:

BSTR GetCallBackCm();

Возвращаемое значение:

	строка с именем функции обратной связи.


ksRequestInfo::SetCallBackCm

Установить имя функции обратной связи для процесса CommandWindow.

Синтаксис Automation:

BOOL SetCallBackCm (LPCTSTR methodName,

long hInst,

LPDISPATCH dispatchOCX);

Входные параметры:

methodName	- строка с именем функции обратной связи,
hInst	идентификатор приложения (dll), в котором реализована CallBack-функция,
dispatchOCX	указатель на интерфейc IDispatch, в котором реализована CallBack-функция
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Если разрабатываемое приложение - dll, тогда заполняется параметр hInst, а dispatchOCX = NULL.

2. Если разрабатываемое приложение - ActiceX DLL, тогда заполняется параметр dispatchOCX, а hInst = 0.


ksRequestInfo::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры запроса к системе.


Интерфейс ksRoughPar
ksRoughPar

Интерфейс параметров обозначения шероховатости .

Аналог данных параметров при использовании API экспортных функций - RoughPar.

Свойства...

Методы...

Примечания:

1. Текст над знаком содержит параметры шероховатости по ГОСТ 2789-73.

2. Текст над полкой содержит вид обработки и дополнительные указания по ГОСТ 2789-73.

3. Первый текст под полкой содержит базовую длину по ГОСТ 2789-73.

4. Второй текст под полкой содержит условное обозначение направления неровностей по ГОСТ 2789-73.

5. Если cText0 = 0 или cText1 = 0 или cText2 = 0 или cText3 = 0, то соответствующий текст в обозначении шероховатости отсутствует.

6. Указатель на интерфейс можно получить при помощи методов KompasObject::GetParamStruct и ksRoughParam::GetrPar.

Смотрите также

KompasObject


ksRoughPar::props
ksRoughPar
свойства

ang

around

cText0

cText1

cText2

cText3

style

type

x, y


ksRoughPar::methods
ksRoughPar
методы

GetpText

InitEx

Init

SetpText


ksRoughPar::style

Стиль текста.

Тип данных - long.

Значения свойства:

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

Синтаксис Automation:

style = iRoughPar.style	Получить свойство (*)
iRoughPar.style = style	Установить свойство (*)
style = iRoughPar.GetStyle()	Получить свойство (**)
iRoughPar.SetStyle( style )	Установить свойство (**)
Примечание:

Если style = INDICATIN_TEXT_LINE_ARR, то динамический массив pText - типа TEXT_LINE_ARR. В остальных случаях - типа CHAR_STR_ARR.


ksRoughPar::type

Тип знака шероховатости.

Тип данных - short.

Значения свойства:

0	- вид обработки не устанавливается,
1	- обработка удалением слоя материала,
2	- обработка без удаления слоя материала.
Синтаксис Automation:

type = iRoughPar.type	Получить свойство (*)
iRoughPar.type = type	Установить свойство (*)
type = iRoughPar.GetType()	Получить свойство (**)
iRoughPar.SetType( type )	Установить свойство (**)


ksRoughPar::around

Признак наличия обозначения контура.

Тип данных - short.

Значения свойства:

0	- обычный знак шероховатости,
1	- шероховатость "по контуру".
Синтаксис Automation:

around = iRoughPar.around	Получить свойство (*)
iRoughPar.around = around	Установить свойство (*)
around = iRoughPar.GetAround()	Получить свойство (**)
iRoughPar.SetAround( around )	Установить свойство (**)


ksRoughPar::x,
ksRoughPar::y

Координаты точки привязки знака шероховатости.

Тип данных - double.

Синтаксис Automation:

x = iRoughPar.x	Получить свойство (*)
iRoughPar.x = x	Установить свойство (*)
x = iRoughPar.GetX()	Получить свойство (**)
iRoughPar.SetX( x )	Установить свойство (**)


ksRoughPar::ang

Угол наклона оси знака шероховатости к оси OX.

Тип данных - double.

Синтаксис Automation:

ang = iRoughPar.ang	Получить свойство (*)
iRoughPar.ang = ang	Установить свойство (*)
ang = iRoughPar.GetAng()	Получить свойство (**)
iRoughPar.SetAng( ang )	Установить свойство (**)


ksRoughPar::cText0

Количество строк в тексте над знаком шероховатости.

Тип данных - short.

Синтаксис Automation:

cText0 = iRoughPar.cText0	Получить свойство (*)
iRoughPar.cText0 = cText0	Установить свойство (*)
cText0 = iRoughPar.GetCText0()	Получить свойство (**)
iRoughPar.SetCText0( cText0 )	Установить свойство (**)


ksRoughPar::cText1

Количество строк в тексте над полкой знака шероховатости.

Тип данных - short.

Синтаксис Automation:

cText1 = iRoughPar.cText1	Получить свойство (*)
iRoughPar.cText1 = cText1	Установить свойство (*)
cText1 = iRoughPar.GetcText1()	Получить свойство (**)
iRoughPar.SetcText1( cText1 )	Установить свойство (**)


ksRoughPar::cText2

Количество строк в первом тексте под полкой (не более двух).

Тип данных - short.

Синтаксис Automation:

cText2 = iRoughPar.cText2	Получить свойство (*)
iRoughPar.cText2 = cText2	Установить свойство (*)
cText2 = iRoughPar.GetcText2()	Получить свойство (**)
iRoughPar.SetcText2( cText2 )	Установить свойство (**)


ksRoughPar::cText3

Количество строк во втором тексте под полкой (не более одной).

Тип данных - short.

Синтаксис Automation:

cText3 = iRoughPar.cText3	Получить свойство (*)
iRoughPar.cText2 = cText3	Установить свойство (*)
cText3 = iRoughPar.GetcText3()	Получить свойство (**)
iRoughPar.SetcText3( cText3 )	Установить свойство (**)


ksRoughPar::GetpText

Получить указатель на интерфейс динамического массива текста обозначения шероховатости ksDynamicArray.

Синтаксис Automation:

LPDISPATCH GetpText();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray.
Примечания:

1. Если свойство ksRoughPar::style = INDICATIN_TEXT_LINE_ARR, то динамический массив - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк символов текста шероховатости).

2. Различают 4 разных текста для шероховатости, их строки лежат в следующей последовательности:

-текст над знаком (параметры шероховатости по ГОСТ 2789-73). Если свойство cText0 = 0, то этот текст отсутствует;

-текст над полкой (вид обработки и дополнительные указания). Если свойство cText1 = 0, то этот текст отсутствует;

-текст под полкой (базовая длина по ГОСТ 2789-73). Если свойство cText2 = 0, то этот текст отсутствует;

-текст под полкой (условное обозначение направления неровностей). Если свойство cText3 = 0, то этот текст отсутствует.

Смотрите также

ksTextLineParam

ksChar255


ksRoughPar::SetpText

Установить указатель на интерфейс динамического массива текста обозначения шероховатости ksDynamicArray.

Синтаксис Automation:

BOOL SetpText (LPDISPATCH pText);

Входной параметр:

pText	- указатель на интерфейс динамического массива ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

1. Если свойство ksRoughPar::style = INDICATIN_TEXT_LINE_ARR, то динамический массив ksDynamicArray - типа TEXT_LINE_ARR (динамический массив строк текста), в остальных случаях - типа CHAR_STR_ARR (динамический массив строк символов текста шероховатости).

2. Различают 4 разных текста для шероховатости, их строки лежат в следующей последовательности:

-текст над знаком (параметры шероховатости по ГОСТ 2789-73). Если свойство cText0 = 0, то этот текст отсутствует;

-текст над полкой (вид обработки и дополнительные указания). Если свойство cText1 = 0, то этот текст отсутствует;

-текст под полкой (базовая длина по ГОСТ 2789-73). Если свойство cText2 = 0, то этот текст отсутствует;

-текст под полкой (усл.обозначение направления неровностей). Если свойство cText3 = 0, то этот текст отсутствует.

Смотрите также

ksTextLineParam

ksChar255


ksRoughPar::Init

Инициализировать параметры.

Замечание:

Данный метод устарел. Рекомендуется использовать вместо него метод InitEx.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pText типа CHAR_STR_ARR.


ksRoughPar::InitEx

Инициализировать параметры.

Синтаксис Automation:

BOOL InitEx (int style);

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Если style = INDICATIN_TEXT_LINE_ARR, то создается динамический массив pText типа TEXT_LINE_ARR,  в противном случае создается динамический массив pText типа CHAR_STR_ARR.


Интерфейс ksSheetOptions
 ksSheetOptions

Интерфейс параметров оформления листа документа.

Аналог данных параметров при использовании API экспортных функций - SheetPar.

Свойства...

Методы...

Примечание:

Данный интерфейс используется при передаче данных методом ksGetDocOptions.


ksSheetOptions::props
ksSheetOptions
свойства

layoutName

sheetType

shtType


ksSheetOptions::methods
ksSheetOptions
методы

GetSheetParam

Init


ksSheetOptions::layoutName

Имя библиотеки оформления.

Тип данных - строка.

Синтаксис Automation:

layoutName = iSheetOptions.layoutName	Получить свойство (*)
iSheetOptions.layoutName = layoutName	Установить свойство (*)
layoutName = iSheetOptions.GetLayoutName()	Получить свойство (**)
iSheetOptions.SetLayoutName( layoutName )	Установить свойство (**)


ksSheetOptions::shtType

Для чертежа - тип основной надписи,
для спецификации - имя библиотеки стилей спецификации.

Тип данных - short.

Синтаксис Automation:

shtType = iSheetOptions.shtType	Получить свойство (*)
iSheetOptions.shtType = shtType	Установить свойство (*)
shtType = iSheetOptions.GetShtType()	Получить свойство (**)
iSheetOptions.SetShtType(shtType)	Установить свойство (**)


ksSheetOptions::sheetType

Тип листа.

Тип данных - BOOL.

Синтаксис Automation:

sheetType = iSheetOptions.sheetType	Получить свойство (*)
iSheetOptions.sheetType = sheetType	Установить свойство (*)
sheetType = iSheetOptions.GetSheetType()	Получить свойство (**)
iSheetOptions.SetSheetType (sheetType)	Установить свойство (**)
Значения свойства:

TRUE	- пользовательский формат,
FALSE	- стандартный лист.
Примечание:

Свойство необходимо учитывать при вызове метода GetSheetParam. Значение свойства должно соответствовать значению входного параметра type. Осталась для совместимости со старыми библиотеками.


ksSheetOptions::GetSheetParam

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

Синтаксис Automation:

LPDISPATCH GetSheetParam (BOOL type);

Входной параметр:

type	- признак формата листа: FALSE - стандартный лист,  TRUE - пользовательский формат.
Возвращаемое значение:

	указатель на интерфейс параметров листа ksStandartSheet или ksSheetSize.
Примечание:

При вызове метода необходимо учитывать свойство sheetType. Его значение должно соответствовать значению входного параметра type. Осталась для совместимости со старыми библиотеками.


ksSheetOptions::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksRoughParam
ksRoughParam

Интерфейс параметров обозначения шероховатости с выносной полкой.

Аналог данных параметров при использовании API экспортных функций - RoughParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksRoughParam::methods
ksRoughParam
методы

GetrPar

GetshPar

SetrPar

SetshPar


ksRoughParam::GetrPar

Получить указатель на интерфейс параметров шероховатости ksRoughPar.

Синтаксис Automation:

LPDISPATCH GetrPar();

Возвращаемое значение:

	указатель на интерфейс параметров знака шероховатости ksRoughPar.


ksRoughParam::SetrPar

Установить указатель на интерфейс параметров шероховатости.

Синтаксис Automation:

BOOL SetrPar (LPDISPATCH rPar);

Входной параметр:

rPar	- указатель на интерфейс параметров знака шероховатости ksRoughPar.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksRoughParam::GetshPar

Получить указатель на интерфейс параметров выносной полки ksShelfPar.

Синтаксис Automation:

LPDISPATCH GetshPar();

Возвращаемое значение:

	указатель на интерфейс параметров выносной полки ksShelfPar.


ksRoughParam::SetshPar

Установить указатель на интерфейс параметров выносной полки ksShelfPar.

Синтаксис Automation:

BOOL SetshPar (LPDISPATCH shPar);

Входной параметр:

shPar	- указатель на интерфейс параметров выносной полки ksShelfPar.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


Интерфейс ksSheetPar
ksSheetPar

Интерфейс параметров оформления.

Аналог данных параметров при использовании API экспортных функций - SheetPar.

Свойства...

Методы...

Примечания:

1. Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

2. Стандартный формат или нестандартный, определяется значением параметра type из параметров документа ksDocumentParam.

Смотрите также

KompasObject


ksSheetPar::props
ksSheetPar
свойства

layoutName

shtType


ksSheetPar::methods
ksSheetPar
методы

GetSheetParam

Init


ksSheetPar::layoutName

Для чертежа - имя библиотеки оформления,
для спецификации - имя библиотеки стилей спецификации.

Тип данных - строка.

Синтаксис Automation:

layoutName = iSheetPar.layoutName	Получить свойство (*)
iSheetPar.layoutName = layoutName	Установить свойство (*)
layoutName = iSheetPar.GetLayoutName()	Получить свойство (**)
iSheetPar.SetLayoutName( layoutName )	Установить свойство (**)
Примечание:

Если строка пустая, берется библиотека Graphic.lyt.


ksSheetPar::shtType

Для чертежа - тип штампа из указанной библиотеки,
для спецификации - номер стиля из указанной библиотеки.

Тип данных - short.

Синтаксис Automation:

shtType = iSheetPar.shtType	Получить свойство (*)
iSheetPar.shtType = shtType	Установить свойство (*)
shtType = iSheetPar.GetShtType()	Получить свойство (**)
iSheetPar.SetShtType( shtType )	Установить свойство (**)


ksSheetPar::GetSheetParam

Получить указатель на интерфейс параметров листа документа ksStandartSheet или ksSheetSize.

Синтаксис Automation:

LPDISPATCH GetSheetParam();

Возвращаемое значение:

	указатель на интерфейс параметров листа документа ksStandartSheet (для стандартного листа) или ksSheetSize (для нестандартного листа).
Примечание:

Тип возвращаемого интерфейса определяется значением параметра type из параметров документа ksDocumentParam.


ksSheetPar::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры оформления документа.


Интерфейс ksSheetSizeфе
ksSheetSize

Интерфейс параметров размеров листа.

Аналог данных параметров при использовании API экспортных функций - SheetSize.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSheetSize::props
ksSheetSize
свойства

height

width


ksSheetSize::methods
ksSheetSize
методы

Init


ksSheetSize::width

Ширина листа.

Тип данных - double.

Синтаксис Automation:

width = iSheetSize.width	Получить свойство (*)
iSheetSize.width = width	Установить свойство (*)
width = iSheetSize.GetWidth()	Получить свойство (**)
iSheetSize.SetWidth( width )	Установить свойство (**)


ksSheetSize::height

Высота листа.

Тип данных - double.

Синтаксис Automation:

height = iSheetSize.height	Получить свойство (*)
iSheetSize.height = height	Установить свойство (*)
height = iSheetSize.GetHeight()	Получить свойство (**)
iSheetSize.SetHeight( height )	Установить свойство (**)


ksSheetSize::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры размеров листа.


Интерфейс ksShelfPar
ksShelfPar

Интерфейс параметров выносной полки.

Аналог данных параметров при использовании API экспортных функций - ShelfPar.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksShelfPar::props
ksShelfPar
свойства

ang

length

psh


ksShelfPar::methods
ksShelfPar
методы

Init


ksShelfPar::psh

Направление полки (относительно оси OX).

Тип данных - long.

Значения свойства:

0	- нет полки,
-1	- полка влево,
1	- полка вправо,
2	- полка вверх,
3	- полка вниз.
Синтаксис Automation:

psh = iShelfPar.psh	Получить свойство (*)
iShelfPar.psh = psh	Установить свойство (*)
psh = iShelfPar.GetPsh()	Получить свойство (**)
iShelfPar.SetPsh( psh )	Установить свойство (**)


ksShelfPar::ang

Угол наклона размерной линии диаметрального и радиального размеров.

Тип данных - double.

Синтаксис Automation:

ang = iShelfPar.ang	Получить свойство (*)
iShelfPar.ang = ang	Установить свойство (*)
ang = iShelfPar.GetAng()	Получить свойство (**)
iShelfPar.SetAng( ang )	Установить свойство (**)


ksShelfPar::length

Длина "ножки" выносной линии размера.

Тип данных - long.

Синтаксис Automation:

length = iShelfPar.length	Получить свойство (*)
iShelfPar.length = length	Установить свойство (*)
length = iShelfPar.GetLength()	Получить свойство (**)
iShelfPar.SetLength( length )	Установить свойство (**)


ksShelfPar::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksSnapOptions
ksSnapOptions

Интерфейс параметров привязок в графическом документе.

Аналог данных параметров при использовании API экспортных функций - SnapOptrions.

Свойства...

Методы...

Типы локальной привязки...

Общие настройки привязок...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSnapOptions::props
ksSnapOptions
свойства

angleStep

angSnap

commonOpt

grid

intersect

localSnap

nearestMiddle

nearestPoint

normalToCurve

pointOnCurve

tangentToCurve

xyAlign


ksSnapOptions::methods
ksSnapOptions
методы

GetCommonOptValue

Init

SetCommonOptValue


ksSnapOptions::nearestPoint

Глобальная привязка "Ближайшая точка".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

nearestPoint = iSnapOptrions.nearestPoint	Получить свойство (*)
iSnapOptrions.nearestPoint = nearestPoint	Установить свойство (*)
nearestPoint = iSnapOptrions.GetNearestPoint()	Получить свойство (**)
iSnapOptrions.SetNearestPoint (nearestPoint)	Установить свойство (**)


ksSnapOptions::nearestMiddle

Глобальная привязка "Середина".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

nearestMiddle = iSnapOptrions.nearestMiddle	Получить свойство (*)
iSnapOptrions.nearestMiddle = nearestMiddle	Установить свойство (*)
nearestMiddle = iSnapOptrions.GetNearestMiddle()	Получить свойство (**)
iSnapOptrions.SetNearestMiddle (nearestMiddle)	Установить свойство (**)


ksSnapOptions::intersect

Глобальная привязка "Пересечение".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

intersect = iSnapOptrions.intersect	Получить свойство (*)
iSnapOptrions.intersect = intersect	Установить свойство (*)
intersect = iSnapOptrions.GetIntersect()	Получить свойство (**)
iSnapOptrions.SetIntersect (intersect)	Установить свойство (**)


ksSnapOptions::tangentToCurve

Глобальная привязка "Касание".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

tangentToCurve = iSnapOptrions.tangentToCurve	Получить свойство (*)
iSnapOptrions.tangentToCurve = tangentToCurve	Установить свойство (*)
tangentToCurve = iSnapOptrions.GetTangentToCurve()	Получить свойство (**)
iSnapOptrions.SetTangentToCurve (tangentToCurve)	Установить свойство (**)


ksSnapOptions::normalToCurve

Глобальная привязка "Нормаль".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

normalToCurve = iSnapOptrions.normalToCurve	Получить свойство (*)
iSnapOptrions.normalToCurve = normalToCurve	Установить свойство (*)
normalToCurve = iSnapOptrions.GetNormalToCurve()	Получить свойство (**)
iSnapOptrions.SetNormalToCurve (normalToCurve)	Установить свойство (**)


ksSnapOptions::grid

Глобальная привязка "По сетке".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

grid = iSnapOptrions.grid	Получить свойство (*)
iSnapOptrions.grid = grid	Установить свойство (*)
grid = iSnapOptrions.GetGrid()	Получить свойство (**)
iSnapOptrions.SetGrid (grid)	Установить свойство (**)


ksSnapOptions::xyAlign

Глобальная привязка "Выравнивание".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

xyAlign = iSnapOptrions.xyAlign	Получить свойство (*)
iSnapOptrions.xyAlign = xyAlign	Установить свойство (*)
xyAlign = iSnapOptrions.GetXyAlign()	Получить свойство (**)
iSnapOptrions.SetXyAlign (xyAlign)	Установить свойство (**)


ksSnapOptions::angSnap

Глобальная "Угловая привязка".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

angSnap = iSnapOptrions.angSnap	Получить свойство (*)
iSnapOptrions.angSnap = angSnap	Установить свойство (*)
angSnap = iSnapOptrions.GetAngSnap()	Получить свойство (**)
iSnapOptrions.SetAngSnap (angSnap)	Установить свойство (**)


ksSnapOptions::pointOnCurve

Глобальная привязка "Точка на кривой".

Тип данных - BOOL.

Значения свойства:

TRUE	- привязка включена,
FALSE	- привязка выключена.
Синтаксис Automation:

pointOnCurve = iSnapOptrions.pointOnCurve	Получить свойство (*)
iSnapOptrions.pointOnCurve = pointOnCurve	Установить свойство (*)
pointOnCurve = iSnapOptrions.GetPointOnCurve()	Получить свойство (**)
iSnapOptrions.SetPointOnCurve (pointOnCurve)	Установить свойство (**)


ksSnapOptions::commonOpt

Общие настройки привязок.

Тип данных - long.

Общие настройки привязок...

Синтаксис Automation:

commonOpt = iSnapOptrions.commonOpt	Получить свойство (*)
iSnapOptrions.commonOpt = commonOpt	Установить свойство (*)
commonOpt = iSnapOptrions.GetCommonOpt()	Получить свойство (**)
iSnapOptrions.SetCommonOpt (commonOpt)	Установить свойство (**)


ksSnapOptions::angleStep

Шаг угловой привязки (в градусах).

Тип данных - double.

Синтаксис Automation:

angleStep = iSnapOptrions.angleStep	Получить свойство (*)
iSnapOptrions.angleStep = angleStep	Установить свойство (*)
angleStep = iSnapOptrions.GetAngleStep()	Получить свойство (**)
iSnapOptrions.SetAngleStep (angleStep)	Установить свойство (**)


ksSnapOptions::localSnap

Тип локальной привязки.

Тип данных - short.

Типы локальной привязки...

Синтаксис Automation:

localSnap = iSnapOptrions.localSnap	Получить свойство (*)
iSnapOptrions.localSnap = localSnap	Установить свойство (*)
localSnap = iSnapOptrions.GetLocalSnap()	Получить свойство (**)
iSnapOptrions.SetLocalSnap (localSnap)	Установить свойство (**)


ksSnapOptions::GetCommonOptValue

Получить значение одного из флагов признака commonOpt.

Синтаксис Automation:

BOOL GetCommonOptValue (long commonOpt);

Входной параметр:

commonOpt	- битовый флаг, характеризующий определенную общую настройку привязок.
Возвращаемое значение:

TRUE	- данный битовый флаг включен,
FALSE	- данный битовый флаг выключен.


ksSnapOptions::SetCommonOptValue

Установить значение одного из флагов признака commonOpt.

Синтаксис Automation:

BOOL SetCommonOptValue (long commonOpt,

BOOL state);

Входные параметры:

commonOpt	- битовый флаг, характеризующий определенную общую настройку привязок,
state	- состояние указанного битового флага:  TRUE - включен,  FALSE - выключен.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksSnapOptions::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры привязок в графическом документе.


Интерфейс ksSpcColumnParam
ksSpcColumnParam

Интерфейс параметров для колонки спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcColumnParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSpcColumnParam::props
ksSpcColumnParam
свойства

block

columnType

ispoln

name

typeVal


ksSpcColumnParam::methods
ksSpcColumnParam
методы

Init


ksSpcColumnParam::columnType

Тип колонки.

Тип данных - long.

Синтаксис Automation:

style = iSpcColumnParam.style	Получить свойство (*)
iSpcColumnParam.style = style	Установить свойство (*)
style = iSpcColumnParam.GetStyle()	Получить свойство (**)
iSpcColumnParam.SetStyle( style )	Установить свойство (**)
Типы колонок спецификации...


ksSpcColumnParam::ispoln

Номер колонки данного типа.

Тип данных - long.

Синтаксис Automation:

ispoln = iSpcColumnParam.ispoln	Получить свойство (*)
iSpcColumnParam.ispoln = ispoln	Установить свойство (*)
ispoln = iSpcColumnParam.GetIspoln()	Получить свойство (**)
iSpcColumnParam.SetIspoln( ispoln )	Установить свойство (**)
Примечание:

Нумерация начинается с 1.


ksSpcColumnParam::block

Номер блока исполнений.

Тип данных - long.

Синтаксис Automation:

block = iSpcColumnParam.block	Получить свойство (*)
iSpcColumnParam.block = block	Установить свойство (*)
block = iSpcColumnParam.GetBlock()	Получить свойство (**)
iSpcColumnParam.SetBlock( block )	Установить свойство (**)


ksSpcColumnParam::typeVal

Тип значений в колонке.

Тип данных - long.

Синтаксис Automation:

typeVal = iSpcColumnParam.typeVal	Получить свойство (*)
iSpcColumnParam.typeVal = typeVal	Установить свойство (*)
typeVal = iSpcColumnParam.GetTypeVal()	Получить свойство (**)
iSpcColumnParam.SetTypeVal( typeVal )	Установить свойство (**)
Типы значений в колонке спецификации...


ksSpcColumnParam::name

Имя колонки.

Тип данных - строка.

Синтаксис Automation:

name = iSpcColumnParam.name	Получить свойство (*)
iSpcColumnParam.name = name	Установить свойство (*)
name = iSpcColumnParam.GetName()	Получить свойство (**)
iSpcColumnParam.SetName( name )	Установить свойство (**)


ksSpcColumnParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksSpcDocument
ksSpcDocument

Интерфейс документа-спецификации.

Свойства...

Методы...

События...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::SpcDocument, KompasObject::SpcActiveDocument

Смотрите также

KompasObject


ksSpcDocument::props
ksSpcDocument:
свойства

reference


ksSpcDocument::methods
ksSpcDocument:
методы

GetSpcDocumentNotify

GetSpecification

GetStamp

ksCloseDocument

ksCreateDocument

ksDeleteObj

ksExistObj

ksGetObjParam

ksGetSpcDocumentPagesCount

ksGetSpcSheetSB

ksOpenDocument

ksSaveDocument

ksSetObjParam

ksSetSpcSheetSB

RasterFormatParam

SaveAsToRasterFormat

SaveAsToUncompressedRasterFormat


ksSpcDocument::reference

Указатель на спецификацию.

Тип данных - long.

Синтаксис Automation:

ref = iSpcDocument.reference	Получить свойство (*)
iSpcDocument.reference = ref	Установить свойство (*)
ref = iSpcDocument.GetReference()	Получить свойство (**)
iSpcDocument.SetReference(ref)	Установить свойство (**)


ksSpcDocument::GetSpcDocumentNotify

Получить источник событий для документа спецификации.

Синтаксис Automation:

SpcDocumentNotify* GetSpcDocumentNotify();

Возвращаемое значение:

	указатель на интерфейс источника событий SpcDocumentNotify.


ksSpcDocument::ksOpenDocument

Открыть документ-спецификацию.

Аналог данного метода при использовании API экспортных функций - OpenDocument.

Синтаксис Automation:

BOOL ksOpenDocument (BSTR nameDoc, short regim);

Входные параметры:

name	- полное имя файла открываемого документа,
regim	- режим открытия: 0 - видимый, 1 - "слепой", 3 - видимый без синхронизации со сборочным чертежом, 4 - "слепой" без синхронизации со сборочным чертежом.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Открытый документ становится текущим.


ksSpcDocument::ksSaveDocument

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

Аналог данного метода при использовании API экспортных функций - SaveDocument.

Синтаксис Automation:

BOOL ksSaveDocument (BSTR fileName);

Входной параметр:

fileName	- полное имя файла,  (NULL - используется имя существующего файла из документа).
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

fileName определяет имя файла при сохранении в режиме Save As...

Если и в документе имя файла NULL - взводится соответствующая ошибка.


ksSpcDocument::ksCloseDocument

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

Аналог данного метода при использовании API экспортных функций - CloseDocument.

Синтаксис Automation:

BOOL ksCloseDocument();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Если документ не сохранен, взводится соответствующая ошибка.


ksSpcDocument::ksCreateDocument

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

Аналог данного метода при использовании API экспортных функций - CreateDocument.

Синтаксис Automation:

BOOL ksCreateDocument (LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс ksDocumentParam параметров документа.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Документ становится текущим (видимым или не видимым).


ksSpcDocument::ksGetObjParam

Получить параметры объекта спецификации.

Аналог данного метода при использовании API экспортных функций - GetObjParam.

Синтаксис Automation:

long ksGetObjParam (long reference,

LPDISPATCH param,

long paramType);

Входные параметры:

reference	- указатель на объект.
paramType	- тип параметров
param	- указатель на интерфейс параметров ksUserParam.
Типы параметров объектов...

Возвращаемое значение:

тип объекта	- в случае удачного завершения,
0	- в случае неудачи.
Типы объектов и интерфейсы...

Примечания:

1. Параметр paramType может принимать значения ALLPARAM, SHEET_ALLPARAM, DOCUMENT_STATE, SPC_TUNING_PARAM.

2. Возвращаемым значением может быть SPC_OBJ или SPC_DOCUMENT_OBJ.


ksSpcDocument::ksSetObjParam

Установить параметры объекта.

Аналог данного метода при использовании API экспортных функций - SetObjParam.

Синтаксис Automation:

long ksSetObjParam (long reference,

LPDISPATCH param,

long paramType);

Входные параметры:

reference	- указатель на объект.
paramType	- тип параметров
param	- указатель на интерфейс параметров ksUserParam
Типы параметров объектов...

Типы объектов и интерфейсы...

Возвращаемое значение:

1	- в случае удачного завершения.
Примечания:

1. Параметр paramType может принимать значения ALLPARAM, SHEET_ALLPARAM, DOCUMENT_STATE, SPC_TUNING_PARAM.

2. Типом объекта может быть SPC_OBJ или SPC_DOCUMENT_OBJ.


ksSpcDocument::ksGetSpcSheetSB

Получить указатель на интерфейс динамического массива листов сборочного чертежа, подключенных к спецификации, - ksDynamicArray типа CHAR_STR_ARR.

Аналог данного метода при использовании API экспортных функций - ksGetSpcSheetSB.

Синтаксис Automation:

LPDISPATCH ksGetSpcSheetSB();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа CHAR_STR_ARR.


ksSpcDocument::ksSetSpcSheetSB

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

Аналог данного метода при использовании API экспортных функций - ksSetSpcSheetSB.

Синтаксис Automation:

long ksSetSpcSheetSB (LPDISPATCH arr);

Входной параметр:

arr	- указатель на интерфейс динамического массива ksDynamicArray типа CHAR_STR_ARR.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksSpcDocument::ksGetSpcDocumentPagesCount

Получить количество листов спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcDocumentPagesCount.

Синтаксис Automation:

long ksGetSpcDocumentPagesCount();

Возвращаемое значение:

	количество листов спецификации.


ksSpcDocument::ksDeleteObj

Удалить объект спецификации.

Аналог данного метода при использовании API экспортных функций - DeleteObj.

Синтаксис Automation:

long ksDeleteObj (long ref);

Входной параметр:

ref	- указатель на удаляемый объект.
Возвращаемое значение:

1	- в случае удачного завершения.


ksSpcDocument::GetSpecification

Получить указатель на интерфейс для работы с объектами спецификации ksSpecification.

LPDISPATCH GetSpecification();

Возвращаемое значение:

	указатель на интерфейс для работы с объектами спецификации ksSpecification.


ksSpcDocument::GetStamp

Получить указатель на интерфейс основной надписи ksStamp.

Синтаксис Automation:

LPDISPATCH GetStamp();

Возвращаемое значение:

	указатель на интерфейс основной надписи ksStamp.


ksSpcDocument::ksExistObj

Проверить, существует ли в спецификации указанный объект.

Аналог данного метода при использовании API экспортных функций - ExistObj.

Синтаксис Automation:

long ksExistObj (long ref);

Входной параметр:

ref	- указатель на объект.
Возвращаемое значение:

1	- объект существует,
0	- объект не существует.


ksSpcDocument::SaveAsToRasterFormat

Сохранить документ в растровом формате.

Аналог данного метода при использовании API экспортных функций - ksSaveAsToRasterFormat.

Синтаксис Automation:

BOOL SaveAsToRasterFormat (BSTR fileName,

LPDISPATCH rasterPar);

Входные параметры:

fileName	- полное имя файла документа,
rasterPar	- указатель на интерфейс ksRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksSpcDocument::RasterFormatParam

Получить указатель на интерфейс, определяющий параметры записи в растровый формат.

Синтаксис Automation:

LPDISPATCH RasterFormatParam();

Возвращаемое значение:

указатель на интерфейс ksRasterFormatParam	- в случае успешного завершения,
NULL	- в случае неудачи.


ksSpcDocument::SaveAsToUncompressedRasterFormat

Сохранить документ в растровый формат без сжатия.

Аналог данного метода при использовании API экспортных функций - ksSaveAsToUncompressedRasterFormat.

Синтаксис Automation:

BOOL SaveAsToUncompressedRasterFormat(BSTR fileName, IDispatch* rasterPar));

Входные параметры:

fileName	- полное имя файла документа,
rasterPar	- указатель на интерфейс ksRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод позволяет сохранить документ спецификации в растровом формате без сжатия, с заданными свойствами: цветом, форматом (BMP, GIF, JPG, PNG, TIF, TGA, PCX) и т.п. Подробнее см. описание ksRasterFormatParam.


Интерфейс ksSpcObjParam
 ksSpcObjParam

Интерфейс параметров объекта спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcObjParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksSpcObjParam::props
ksSpcObjParam
свойства

blockNumber

draw

first

firstOnSheet

insFrgType

ispoln

numbSection

numbSubSection

posInc

posNotDraw

subSectionName

typeObj


ksSpcObjParam::methods
ksSpcObjParam
методы

GetDocArr

Init

SetDocArr


ksSpcObjParam::typeObj

Тип строки спецификации.

Тип данных - long.

Синтаксис Automation:

typeObj = iSpcObjParam.typeObj	Получить свойство (*)
iSpcObjParam.typeObj = typeObj	Установить свойство (*)
typeObj = iSpcObjParam.GetTypeObj()	Получить свойство (**)
iSpcObjParam.GetTypeObj(typeObj)	Установить свойство (**)
Типы строк спецификации...


ksSpcObjParam::numbSection

Номер раздела.

Тип данных - long.

Синтаксис Automation:

numbSection = iSpcObjParam.numbSection	Получить свойство (*)
numbSection = iSpcObjParam.GetNumbSection()	Получить свойство (**)
Примечание:

Свойство только для чтения.


ksSpcObjParam::blockNumber

Номер блока.

Тип данных - long.

Синтаксис Automation:

blockNumber = iSpcObjParam.blockNumber	Получить свойство (*)
iSpcObjParam.blockNumber = blockNumber	Установить свойство (*)
blockNumber = iSpcObjParam.GetBlockNumber()	Получить свойство (**)
iSpcObjParam.SetBlockNumber( blockNumber )	Установить свойство (**)
Примечание:

Нумерация блоков начинается с 0.


ksSpcObjParam::numbSubSection

Номер подраздела.

Тип данных - long.

Синтаксис Automation:

numbSubSection = iSpcObjParam.numbSubSection	Получить свойство (*)
iSpcObjParam.numbSubSection = numbSubSection	Установить свойство (*)
numbSubSection = iSpcObjParam.GetNumbSubSection()	Получить свойство (**)
iSpcObjParam.SetNumbSubSection(numbSubSection)	Установить свойство (**)


ksSpcObjParam::subSectionName

Имя подраздела.

Тип данных - строка.

Синтаксис Automation:

subSectionName = iSpcObjParam.subSectionName	Получить свойство (*)
subSectionName = iSpcObjParam.GetSubSectionName()	Получить свойство (**)
Примечание:

Свойство только для чтения.


ksSpcObjParam::firstOnSheet

Признак объекта, с которого всегда начинается страница.

Тип данных - short.

Значения свойства:

1	- данный объект всегда первый на странице (перед ним вставляется "разрыв страницы"),
0	- объект располагается на странице сразу за предыдущим объектом.
Синтаксис Automation:

firstOnSheet = iSpcObjParam.firstOnSheet	Получить свойство (*)
iSpcObjParam.firstOnSheet = firstOnSheet	Установить свойство (*)
firstOnSheet = iSpcObjParam.GetFirstOnSheet()	Получить свойство (**)
iSpcObjParam.SetFirstOnSheet (firstOnSheet)	Установить свойство (**)


ksSpcObjParam::insFrgType

Признак связи объекта с внешним фрагментом.

Тип данных - short.

Значения свойства:

0	- объект создан непосредственно в документе,
1	- объект "пришел" в документ из вставки фрагмента,
2	- объект, полученный из вставки фрагмента, редактировался пользователем вручную.
Синтаксис Automation:

insFrgType = iSpcObjParam.insFrgType	Получить свойство (*)
insFrgType = iSpcObjParam.GetInsFrgType()	Получить свойство (**)
Примечание:

Свойство только для чтения.


ksSpcObjParam::posInc

Признак возрастания номера позиции объекта.

Тип данных - short.

Значения свойства:

1	- номер позиции объекта возрастает,
0	- номер позиции объекта не возрастает (остается таким же, как номер позиции предыдущего объекта).
Синтаксис Automation:

posInc = iSpcObjParam.posInc	Получить свойство (*)
iSpcObjParam.posInc = posInc	Установить свойство (*)
posInc = iSpcObjParam.GetPosInc()	Получить свойство (**)
iSpcObjParam.SetPosInc(posInc)	Установить свойство (**)


ksSpcObjParam::first

Признак одинаковых объектов спецификации.

Тип данных - short.

Значения свойства:

1	- первый из одинаковых объектов,
0	- последующие одинаковые объекты.
Синтаксис Automation:

first = iSpcObjParam.first	Получить свойство (*)
first = iSpcObjParam.GetFirst()	Получить свойство (**)
Примечание:

Свойство только для чтения.


ksSpcObjParam::draw

Признак отображения объекта в таблице спецификации.

Тип данных - short.

Значения свойства:

1	- показывать объект,
0	- не показывать объект (обычно применяется для последующих одинаковых объектов).
Синтаксис Automation:

draw = iSpcObjParam.draw	Получить свойство (*)
iSpcObjParam.draw = draw	Установить свойство (*)
draw = iSpcObjParam.GetDraw()	Получить свойство (**)
iSpcObjParam.SetDraw(draw)	Установить свойство (**)


ksSpcObjParam::posNotDraw

Признак отображения номера позиции объекта в таблице спецификации.

Тип данных - short.

Значения свойства:

1	- не показывать номер позиции,
0	- показывать номер позиции.
Синтаксис Automation:

posNotDraw = iSpcObjParam.posNotDraw	Получить свойство (*)
iSpcObjParam.posNotDraw = posNotDraw	Установить свойство (*)
posNotDraw = iSpcObjParam.GetPosNotDraw()	Получить свойство (**)
iSpcObjParam.SetPosNotDraw (posNotDraw)	Установить свойство (**)


ksSpcObjParam::ispoln

Признак объекта-"исполнения".

Тип данных - short.

Значения свойства:

1	- объект является "исполнением",
0	- обычный объект.
Синтаксис Automation:

ispoln = iSpcObjParam. ispoln	Получить свойство (*)
iSpcObjParam. ispoln = ispoln	Установить свойство (*)
numbSubSection = iSpcObjParam.GetIspoln()	Получить свойство (**)
iSpcObjParam.SetIspoln (ispoln)	Установить свойство (**)


ksSpcObjParam::GetDocArr

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

Синтаксис Automation:

LPDISPATCH GetDocArr();

Возвращаемое значение:

	указатель на динамический массив ksDynamicArray типа DOC_SPCOBJ_ARR.


ksSpcObjParam::SetDocArr

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

Синтаксис Automation:

BOOL SetDocArr (LPDISPATCH docArr);

Входной параметр:

docArr	- указатель на динамический массив ksDynamicArray типа DOC_SPCOBJ_ARR.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksSpcObjParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры объекта спецификации.


Интерфейс ksSpcStyleColumnParam
ksSpcStyleColumnParam

Интерфейс параметров стиля колонки спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcStyleColumnParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSpcStyleColumnParam::props
ksSpcStyleColumnParam
свойства

columnType

createSum

edit

ispoln

linkId

multiplyToCount

nameColumn

textDn

typeVal

useForSectionTitle


ksSpcStyleColumnParam::methods
ksSpcStyleColumnParam
методы

GetAdditionalParam

Init


ksSpcStyleColumnParam::nameColumn

Имя колонки.

Тип данных - строка.

Синтаксис Automation:

nameColumn = iSpcStyleColumnParam.nameColumn	Получить свойство (*)
nameColumn = iSpcStyleColumnParam.GetNameColumn()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::columnType

Тип колонки спецификации.

Тип данных - long.

Типы колонок спецификации...

Синтаксис Automation:

columnType = iSpcStyleColumnParam.columnType	Получить свойство (*)
columnType = iSpcStyleColumnParam.GetColumnType()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::ispoln

Номер колонки данного типа.

Тип данных - long.

Синтаксис Automation:

ispoln = iSpcStyleColumnParam.ispoln	Получить свойство (*)
ispoln = iSpcStyleColumnParam.GetIspoln()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::edit

Признак, указывающий, разрешено ли редактирование колонки в данном разделе.

Тип данных - short.

Значения свойства:

0	- не редактировать колонку в данном разделе,
1	- редактировать колонку.
Синтаксис Automation:

edit = iSpcStyleColumnParam.edit	Получить свойство (*)
edit = iSpcStyleColumnParam.GetEdit()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::createSum

Признак, указывающий, разрешен ли расчет суммы значений в колонке.

Тип данных - short.

Значения свойства:

0	- не рассчитывать сумму значений в колонке,
1	- рассчитывать сумму значений в колонке.
Синтаксис Automation:

createSum = iSpcStyleColumnParam.createSum	Получить свойство (*)
createSum = iSpcStyleColumnParam.GetCreateSum()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::multiplyToCount

Признак, указывающий, разрешено ли умножение при расчете суммы.

Тип данных - short.

Значения свойства:

0	- при расчете суммы не умножать значения в колонке на количество,
1	- умножать значения в колонке на количество.
Синтаксис Automation:

multiplyToCount = iSpcStyleColumnParam.multiplyToCount	Получить свойство (*)
multiplyToCount = iSpcStyleColumnParam.GetMultiplyToCount()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::useForSectionTitle

Признак размещения имен разделов.

Тип данных - short.

Значения свойства:

0	- не использовать данную колонку для показа имени раздела,
1	- использовать данную колонку для показа имени раздела.
Синтаксис Automation:

useForSectionTitle = iSpcStyleColumnParam.useForSectionTitle	Получить свойство (*)
useForSectionTitle = iSpcStyleColumnParam.GetUseForSectionTitle()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::textDn

Признак выравнивания по вертикали текста в колонке.

Тип данных - short.

Значения свойства:

0	- выравнивать текст в колонке по верхней строке объекта спецификации,
1	- выравнивать текст в колонке по нижней строке.
Синтаксис Automation:

textDn = iSpcStyleColumnParam.textDn	Получить свойство (*)
textDn = iSpcStyleColumnParam.GetTextDn()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::linkId

Номер ячейки штампа для связи с данной колонкой.

Тип данных - long.

Синтаксис Automation:

linkId = iSpcStyleColumnParam.linkId	Получить свойство (*)
linkId = iSpcStyleColumnParam.GetLinkId()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::typeVal

Тип значения в колонке.

Тип данных - long.

Типы значений в колонке спецификации...

Синтаксис Automation:

typeVal = iSpcStyleColumnParam.typeVal	Получить свойство (*)
typeVal = iSpcStyleColumnParam.GetTypeVal()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleColumnParam::GetAdditionalParam

Получить указатель на интерфейс дополнительной информации ksRecordTypeAttrParam или ksNumberTypeAttrParam.

Синтаксис Automation:

LPDISPATCH GetAdditionalParam();

Возвращаемое значение:

	указатель на интерфейс ksRecordTypeAttrParam или ksNumberTypeAttrParam.
Примечание:

Тип возвращаемого интерфейса зависит от типа значения в колонке

ksSpcStyleColumnParam::typeVal:

Тип значения	Интерфейс
SPC_RECORD	ksRecordTypeAttrParam
DOUBLE_ATTR_TYPE	ksNumberTypeAttrParam
LINT_ATTR_TYPE	ksNumberTypeAttrParam


ksSpcStyleColumnParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. По умолчанию свойство typeVal = RECORD_ATTR_TYPE.


Интерфейс ksTextLineParam
ksTextLineParam

Интерфейс параметров строки текста.

Аналог данных параметров при использовании API экспортных функций - TextLineParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksTextLineParam::props
ksTextLineParam
свойства

style


ksTextLineParam::methods
ksTextLineParam
методы

GetTextItemArr

Init

SetTextItemArr


ksTextLineParam::style

Стиль строки текста.

Тип данных - long.

Значения свойства:

номер системного стиля,
номер пользовательского стиля.
Синтаксис Automation:

style = iTextLineParam.style	Получить свойство (*)
iTextLineParam.style = style	Установить свойство (*)
style = iTextLineParam.GetStyle()	Получить свойство (**)
iTextLineParam.SetStyle( style )	Установить свойство (**)
Системные стили текстов...


ksTextLineParam::GetTextItemArr

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

Синтаксис Automation:

LPDISPATCH GetTextItemArr();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа TEXT_ITEM_ARR.
Смотрите также

ksTextItemParam


ksTextLineParam::SetTextItemArr

Установить указатель на интерфейс динамического массива компонент строки текста.

Синтаксис Automation:

BOOL SetTextItemArr (LPDISPATCH pTextItem);

Входной параметр:

pTextItem	указатель на интерфейс динамического массива ksDynamicArray типа TEXT_ITEM_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksTextItemParam


ksTextLineParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры параграфа текста.


Интерфейс ksTextParam
ksTextParam

Интерфейс параметров текста.

Аналог данных параметров при использовании API экспортных функций - TextParam.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksTextParam::methods
ksTextParam
методы

GetParagraphParam

GetTextLineArr

Init

SetParagraphParam

SetTextLineArr


ksTextParam::GetParagraphParam

Получить указатель на интерфейс параметров параграфа ksParagraphParam.

Синтаксис Automation:

LPDISPATCH GetParagraphParam();

Возвращаемое значение:

	указатель на интерфейс параметров параграфа ksParagraphParam.


ksTextParam::SetParagraphParam

Установить параметры параграфа ksParagraphParam.

Синтаксис Automation:

BOOL SetParagraphParam(LPDISPATCH par);

Входной параметр:

par	- указатель на интерфейс параметров параграфа ksParagraphParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksTextParam::GetTextLineArr

Получить указатель на интерфейс динамического массива ksDynamicArray строк текста типа TEXT_LINE_ARR.

Синтаксис Automation:

LPDISPATCH GetTextLineArr();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа TEXT_LINE_ARR.
Смотрите также

ksTextLineParam


ksTextParam::SetTextLineArr

Заменить динамический массив ksDynamicArray строк текста типа TEXT_LINE_ARR.

Синтаксис Automation:

BOOL SetTextLineArr (LPDISPATCH pLineItem);

Входной параметр:

pLineItem	- указатель на интерфейс динамического массива ksDynamicArray типа TEXT_LINE_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksTextLineParam


ksTextParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры текста.


Интерфейс ksTextStyleParam
ksTextStyleParam

Интерфейс параметров стиля текста.

Аналог данных параметров при использовании API экспортных функций - TextStyleParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи методов:

- KompasObject::GetParamStruct,

- ksSpcTuningStyleParam::GetSectionTextStyleFirst,

- ksSpcTuningStyleParam::GetSectionTextStyleNext,

- ksSpcTuningStyleParam::GetObjectTextStyle.

Смотрите также

KompasObject


ksTextStyleParam::props
ksTextStyleParam
свойства

align

bold

color

fontName

height

italic

ksu

leftEdge

name

posKS

rightEdge

step

stepParPre

stepParPst

underline


ksTextStyleParam::methods
ksTextStyleParam
методы

Init


ksTextStyleParam::name

Имя стиля.

Тип данных - строка.

Синтаксис Automation:

name = iTextStyleParam.name	Получить свойство (*)
iTextStyleParam.name = name	Установить свойство (*)
name = iTextStyleParam.GetName()	Получить свойство (**)
iTextStyleParam.SetName( name )	Установить свойство (**)


ksTextStyleParam::height

Высота шрифта текста.

Тип данных - строка.

Синтаксис Automation:

height = iTextStyleParam.height	Получить свойство (*)
iTextStyleParam.height = height	Установить свойство (*)
height = iTextStyleParam.GetHeight()	Получить свойство (**)
iTextStyleParam.SetHeight( height )	Установить свойство (**)


ksTextStyleParam::ksu

Коэффициент сужения символов.

Тип данных - double.

Синтаксис Automation:

ksu = iTextStyleParam.ksu	Получить свойство (*)
iTextStyleParam.ksu = ksu	Установить свойство (*)
ksu = iTextStyleParam.GetKsu()	Получить свойство (**)
iTextStyleParam.SetKsu( ksu )	Установить свойство (**)


ksTextStyleParam::step

Шаг строк.

Тип данных - double.

Синтаксис Automation:

step = iTextStyleParam.step	Получить свойство (*)
iTextStyleParam.step = step	Установить свойство (*)
step = iTextStyleParam.GetStep()	Получить свойство (**)
iTextStyleParam.SetStep( step )	Установить свойство (**)


ksTextStyleParam::fontName

Имя шрифта.

Тип данных - строка.

Синтаксис Automation:

fontName = iTextStyleParam.fontName	Получить свойство (*)
iTextStyleParam.fontName = fontName	Установить свойство (*)
fontName = iTextStyleParam.GetFontName()	Получить свойство (**)
iTextStyleParam.SetFontName( fontName )	Установить свойство (**)


ksTextStyleParam::color

Цвет шрифта.

Тип данных - long.

Синтаксис Automation:

color = iTextStyleParam.color	Получить свойство (*)
iTextStyleParam.color = color	Установить свойство (*)
color = iTextStyleParam.GetСolor()	Получить свойство (**)
iTextStyleParam.SetСolor( color )	Установить свойство (**)


ksTextStyleParam::align

Выравнивание абзаца.

Тип данных - short.

Значения свойства:

0	- влево,
1	- по центру,
2	- вправо,
3	- по ширине.
Синтаксис Automation:

align = iTextStyleParam.align	Получить свойство (*)
iTextStyleParam.align = align	Установить свойство (*)
align = iTextStyleParam.GetAlign()	Получить свойство (**)
iTextStyleParam.SetAlign( align )	Установить свойство (**)


ksTextStyleParam::bold

Толщина символов.

Тип данных - short.

Значения свойства:

0	- нормальная,
1	- утолщенные символы.
Синтаксис Automation:

bold = iTextStyleParam.bold	Получить свойство (*)
iTextStyleParam.bold = bold	Установить свойство (*)
bold = iTextStyleParam.GetBold()	Получить свойство (**)
iTextStyleParam.SetBold( bold )	Установить свойство (**)


ksTextStyleParam::italic

Начертание символов.

Тип данных - short.

Значения свойства:

0	- прямое,
1	- наклонное.
Синтаксис Automation:

italic = iTextStyleParam.italic	Получить свойство (*)
iTextStyleParam.italic = italic	Установить свойство (*)
italic = iTextStyleParam.GetItalic()	Получить свойство (**)
iTextStyleParam.SetItalic( italic )	Установить свойство (**)


ksTextStyleParam::underline

Подчеркивание символов.

Тип данных - short.

Значения свойства:

0	- подчеркивание отсутствует,
1	- одинарное подчеркивание.
Синтаксис Automation:

underline = iTextStyleParam.underline	Получить свойство (*)
iTextStyleParam.underline = underline	Установить свойство (*)
underline = iTextStyleParam.GetUnderline()	Получить свойство (**)
iTextStyleParam.SetUnderline( underline )	Установить свойство (**)


ksTextStyleParam::posKS

Отступ красной строки (в миллиметрах).

Тип данных - double.

Синтаксис Automation:

posKS = iTextStyleParam.posKS	Получить свойство (*)
iTextStyleParam.posKS = posKS	Установить свойство (*)
posKS = iTextStyleParam.GetPosKS()	Получить свойство (**)
iTextStyleParam.SetPosKS( posKS )	Установить свойство (**)


ksTextStyleParam::stepParPre

Интервал перед текстом (в миллиметрах).

Тип данных - double.

Синтаксис Automation:

stepParPre = iTextStyleParam.stepParPre	Получить свойство (*)
iTextStyleParam.stepParPre = stepParPre	Установить свойство (*)
stepParPre = iTextStyleParam.GetStepParPre()	Получить свойство (**)
iTextStyleParam.SetStepParPre( stepParPre )	Установить свойство (**)


ksTextStyleParam::stepParPst

Интервал после текста (в миллиметрах).

Тип данных - double.

Синтаксис Automation:

stepParPst = iTextStyleParam.stepParPst	Получить свойство (*)
iTextStyleParam.stepParPst = stepParPst	Установить свойство (*)
stepParPst = iTextStyleParam.GetStepParPst()	Получить свойство (**)
iTextStyleParam.SetStepParPst( stepParPst )	Установить свойство (**)


ksTextStyleParam::leftEdge

Отступ текста слева.

Тип данных - double.

Синтаксис Automation:

leftEdge = iTextStyleParam.leftEdge	Получить свойство (*)
iTextStyleParam.leftEdge = leftEdge	Установить свойство (*)
leftEdge = iTextStyleParam.GetLeftEdge()	Получить свойство (**)
iTextStyleParam.SetLeftEdge( leftEdge )	Установить свойство (**)


ksTextStyleParam::rightEdge

Отступ текста справа.

Тип данных - double.

Синтаксис Automation:

rightEdge = iTextStyleParam.rightEdge	Получить свойство (*)
iTextStyleParam.rightEdge = rightEdge	Установить свойство (*)
rightEdge = iTextStyleParam.GetRightEdge()	Получить свойство (**)
iTextStyleParam.SetRightEdge( rightEdge )	Установить свойство (**)


ksTextStyleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksSpcStyleParam
ksSpcStyleParam

Интерфейс параметров стиля спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcStyleParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSpcStyleParam::props
ksSpcStyleParam
свойства

layoutName1

layoutName2

sectionOn

shtType1

shtType2

type

variant


ksSpcStyleParam::methods
ksSpcStyleParam
методы

GetArrAdditionalColumn

GetArrColumn

GetArrSection

GetSheetParam

GetTuning

Init


ksSpcStyleParam::layoutName1

Имя файла библиотеки, в которой хранится оформление для первого листа спецификации.

Тип данных - строка.

Синтаксис Automation:

layoutName1 = iSpcStyleParam.layoutName1	Получить свойство (*)
layoutName1 = iSpcStyleParam.GetLayoutName1()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleParam::layoutName2

Имя файла библиотеки, в которой хранится оформление для последующих листов спецификации.

Тип данных - строка.

Синтаксис Automation:

layoutName2 = iSpcStyleParam.layoutName2	Получить свойство (*)
layoutName2 = iSpcStyleParam.GetLayoutName2()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleParam::shtType1

Номер оформления из библиотеки для первого листа спецификации.

Тип данных - long.

Синтаксис Automation:

shtType1 = iSpcStyleParam.shtType1	Получить свойство (*)
shtType1 = iSpcStyleParam.GetShtType1()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleParam::shtType2

Номер оформления из библиотеки для последующих листов спецификации.

Тип данных - long.

Синтаксис Automation:

shtType2 = iSpcStyleParam.shtType2	Получить свойство (*)
shtType2 = iSpcStyleParam.GetShtType2()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleParam::variant

Вариант оформления спецификации.

Тип данных - short.

Варианты оформления спецификации...

Синтаксис Automation:

variant = iSpcStyleParam.variant	Получить свойство (*)
variant = iSpcStyleParam.GetVariant()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleParam::sectionOn

Признак деления на разделы.

Тип данных - short.

Значения свойства:

0	- выключено,
1	- включено.
Синтаксис Automation:

sectionOn = iSpcStyleParam.sectionOn	Получить свойство (*)
sectionOn = iSpcStyleParam.GetSectionOn()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleParam::type

Признак формата листа.

Тип данных - short.

Значения свойства:

0	- стандартный,
1	- пользовательский.
Синтаксис Automation:

type = iSpcStyleParam.type	Получить свойство (*)
type = iSpcStyleParam.GetType()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleParam::GetTuning

Получить умолчательные настройки, считанные из библиотеки стилей спецификации.

Синтаксис Automation:

LPDISPATCH GetTuning();

Возвращаемое значение:

	указатель на интерфейс параметров стиля настроек спецификации ksSpcTuningStyleParam.


ksSpcStyleParam::GetArrColumn

Получить указатель на интерфейс динамического массива колонок ksDynamicArray типа SPCSTYLECOLUMN_ARR.

Синтаксис Automation:

LPDISPATCH GetArrColumn();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа SPCSTYLECOLUMN_ARR.
Смотрите также

ksSpcStyleColumnParam


ksSpcStyleParam::GetArrAdditionalColumn

Получить указатель на интерфейс динамического массива дополнительных колонок ksDynamicArray типа SPCSTYLECOLUMN_ARR.

Синтаксис Automation:

LPDISPATCH GetArrAdditionalColumn();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа SPCSTYLECOLUMN_ARR.
Смотрите также

ksSpcStyleColumnParam


ksSpcStyleParam::GetArrSection

Получить указатель на интерфейс динамического массива разделов спецификации ksDynamicArray типа SPCSTYLESEC_ARR.

Синтаксис Automation:

LPDISPATCH GetArrSection();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа SPCSTYLESEC_ARR.
Смотрите также

ksSpcStyleSectionParam


ksSpcStyleParam::GetSheetParam

Получить указатель на интерфейс параметров листа документа ksStandartSheet или ksSheetSize.

Синтаксис Automation:

LPDISPATCH GetSheetParam();

Возвращаемое значение:

	указатель на интерфейс параметров листа документа ksStandartSheet или ksSheetSize.
Примечание:

Тип возвращаемого интерфейса определяется свойством ksSpcStyleParam::type.


ksSpcStyleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив arrColumn типа SPCSTYLECOLUMN_ARR.

3. Создается динамический массив arrAdditionalColumn типа SPCSTYLECOLUMN_ARR.

4. Создается динамический массив arrSection типа SPCSTYLESEC_ARR.


Интерфейс ksSpcStyleSectionParam
ksSpcStyleSectionParam

Интерфейс параметров стиля разделa спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcStyleSectionParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct

Смотрите также

KompasObject


ksSpcStyleSectionParam::props
ksSpcStyleSectionParam
свойства

dataType

number

sectionName

sortColumnType

sortIspoln

sortType


ksSpcStyleSectionParam::methods
ksSpcStyleSectionParam
методы

GetArrAdditionalColumn

GetArrColumn

Init


ksSpcStyleSectionParam::sectionName

Имя раздела.

Тип данных - строка.

Синтаксис Automation:

sectionName = iSpcStyleSectionParam.sectionName	Получить свойство (*)
sectionName = iSpcStyleSectionParam.GetSectionName()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleSectionParam::number

Номер раздела.

Тип данных - long.

Синтаксис Automation:

number = iSpcStyleSectionParam.number	Получить свойство (*)
number = iSpcStyleSectionParam.GetNumber()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleSectionParam::sortColumnType

Общий тип колонки, по данным в которой производится сортировка

Тип данных - long.

Типы колонок спецификации

Синтаксис Automation:

sortColumnType = iSpcStyleSectionParam.sortColumnType	Получить свойство (*)
sortColumnType = iSpcStyleSectionParam.GetSortColumnType()	Получить свойство (**)
Примечания:

1. Данное свойство предназначено только для чтения.

2. Общий тип формируется из типа колонки и номера колонки этого типа в стиле спецификации.


ksSpcStyleSectionParam::sortIspoln

Номер колонки, по данным в которой производится сортировка.

Тип данных - long.

Синтаксис Automation:

sortIspoln = iSpcStyleSectionParam.sortIspoln	Получить свойство (*)
sortIspoln = iSpcStyleSectionParam.GetSortIspoln()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleSectionParam::dataType

Способ ввода данных в колонку.

Тип данных - short.

Значения свойства:

0	- ручное заполнение колонок,
1	- ручное заполнение или чтение данных из основной надписи подключенного документа.
Синтаксис Automation:

dataType = iSpcStyleSectionParam.dataType	Получить свойство (*)
dataType = iSpcStyleSectionParam.GetDataType()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleSectionParam::sortType

Тип сортировки объектов в разделе.

Тип данных - long.

Типы сортировки в разделе спецификации

Синтаксис Automation:

sortType = iSpcStyleSectionParam.sortType	Получить свойство (*)
sortType = iSpcStyleSectionParam.GetSortType()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcStyleSectionParam::GetArrColumn

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

Синтаксис Automation:

LPDISPATCH GetArrColumn();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа SPCSTYLECOLUMN_ARR.
Смотрите также

ksSpcStyleColumnParam


ksSpcStyleSectionParam::GetArrAdditionalColumn

Получить указатель на интерфейс динамического массива параметров стиля дополнительных колонок ksDynamicArray типа SPCSTYLECOLUMN_ARR.

Синтаксис Automation:

LPDISPATCH GetArrAdditionalColumn();

Возвращаемое значение:

	указатель на интерфейс динамического массива параметров стиля дополнительных колонок ksDynamicArray типа SPCSTYLECOLUMN_ARR.
Смотрите также

ksSpcStyleColumnParam


ksSpcStyleSectionParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры стиля разделa спецификации/


Интерфейс ksSpcTuningSectionParam
ksSpcTuningSectionParam

Интерфейс параметров настройки раздела спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcTuningSectionParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSpcTuningSectionParam::props
ksSpcTuningSectionParam
свойства

firstOnSheet

geometryOn

number

positionOn

rezervCount

sortOn

subsectionOn


ksSpcTuningSectionParam::methods
ksSpcTuningSectionParam
методы

GetArrSubSection

Init


ksSpcTuningSectionParam::subsectionOn

Признак деления на подразделы.

Тип данных - short.

Значения свойства:

0	- деление на подразделы включено,
1	- деление на подразделы выключено.
Синтаксис Automation:

subsectionOn = iSpcTuningSectionParam.subsectionOn	Получить свойство (*)
subsectionOn = iSpcTuningSectionParam.GetSubsectionOn()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningSectionParam::geometryOn

Признак подключения геометрии к объектам раздела.

Тип данных - short.

Значения свойства:

0	- подключение геометрии запрещено,
1	- подключение геометрии разрешено.
Синтаксис Automation:

geometryOn = iSpcTuningSectionParam.geometryOn	Получить свойство (*)
geometryOn = iSpcTuningSectionParam.GetGeometryOn()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningSectionParam::positionOn

Признак простановки номеров позиций в разделе.

Тип данных - short.

Значения свойства:

0	- не проставлять позиции,
1	- проставлять позиции.
Синтаксис Automation:

positionOn = iSpcTuningSectionParam.positionOn	Получить свойство (*)
positionOn = iSpcTuningSectionParam.GetPositionOn()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningSectionParam::sortOn

Признак наличия сортировки объектов в разделе.

Тип данных - short.

Значения свойства:

0	- сортировка выключена,
1	- сортировка включена.
Синтаксис Automation:

sortOn = iSpcTuningSectionParam.sortOn	Получить свойство (*)
sortOn = iSpcTuningSectionParam.GetSortOn()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningSectionParam::firstOnSheet

Признак размещения раздела.

Тип данных - short.

Значения свойства:

0	- начинать раздел после предыдущего раздела,
1	- начинать раздел с новой страницы.
Синтаксис Automation:

firstOnSheet = iSpcTuningSectionParam.firstOnSheet	Получить свойство (*)
firstOnSheet = iSpcTuningSectionParam.GetFirstOnSheet()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningSectionParam::rezervCount

Количество резервных строк и позиций.

Тип данных - long.

Синтаксис Automation:

rezervCount = iSpcTuningSectionParam.rezervCount	Получить свойство (*)
rezervCount = iSpcTuningSectionParam.GetRezervCount()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningSectionParam::number

Номер раздела.

Тип данных - long.

Синтаксис Automation:

number = iSpcTuningSectionParam.number	Получить свойство (*)
number = iSpcTuningSectionParam.GetNumber()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningSectionParam::GetArrSubSection

Получить указатель на интерфейс динамического массива параметров подраздела спецификации ksDynamicArray типа SPCSUBSECTION_ARR.

Синтаксис Automation:

LPDISPATCH GetArrSubSection();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа SPCSUBSECTION_ARR.
Смотрите также

ksSpcSubSectionParam


ksSpcTuningSectionParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив arrSubSection типа SPCSUBSECTION_ARR.


Интерфейс ksSpcSubSectionParam
ksSpcSubSectionParam

Интерфейс параметров подраздела спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcSubSectionParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSpcSubSectionParam::props
ksSpcSubSectionParam
свойства

name

number


ksSpcSubSectionParam::methods
ksSpcSubSectionParam
методы

Init


ksSpcSubSectionParam::name

Имя подраздела.

Тип данных - строка.

Синтаксис Automation:

name = iSpcSubSectionParam.name	Получить свойство (*)
name = iSpcSubSectionParam.GetName()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcSubSectionParam::number

Номер подраздела.

Тип данных - long.

Синтаксис Automation:

number = iSpcSubSectionParam.number	Получить свойство (*)
number = iSpcSubSectionParam.GetNumber()	Получить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcSubSectionParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksSpecification
ksSpecification

Интерфейс для работы со спецификацией.

Методы...

События...

Примечания:

1. Для Автоматизации используется интерфейс ksSpecification.

2. Для COM используется интерфейс ISpecification3D и группа экспортных функций. Указатель на интерфейс ISpecification3D можно получить из интерфейса IDocument3D через стандартную функцию QueryInterface.

3. Указатель на интерфейс можно получить при помощи методов ksDocument2D::GetSpecification, ksSpcDocument::GetSpecification, ksDocument3D::GetSpecification.

4. События интерфейса позволяют контролировать редактирование описаний спецификации. В Automation источником событий для подписки на данный интерфейс является объект ksSpecification. В COM источником для подписки является документ (графический, документ-модель, спецификация).

Смотрите также

ksDocument2D,

ksDocument3D,

ksSpcDocument


ksSpecification::methods
ksSpecification
методы

D3GetSpcObjForGeomWithLimit

D3SpcIncludePart

GetSpcObjectNotify

ksAddSpcDescription

ksD3GetSpcObjGeometry

ksDeleteSpcDescription

ksEditWindowSpcObject

ksGetCurrentSpcObject

ksGetSpcColumnNumb

ksGetSpcColumnType

ksGetSpcDescription

ksGetSpcObjectColumnTextEx

ksGetSpcObjectColumnText

ksGetSpcObject

ksGetSpcObjectNumber

ksGetSpcObjForGeom

ksGetSpcObjForGeomWithLimit

ksGetSpcObjGeometry

ksGetSpcSectionName

ksGetSpcStyleParam

ksGetSpcTableColumn

ksGetTuningSpcStyleParam

ksGetWidthColumnSpc

ksSetCurrentSpcObject

ksSetSpcDescription

ksSetSpcObjectColumnTextEx

ksSetSpcObjectColumnText

ksSetTuningSpcStyleParam

ksSpcChangeValue

ksSpcCount

ksSpcIncludeReference

ksSpcMassa

ksSpcObjectCreate

ksSpcObjectEdit

ksSpcObjectEnd

ksSpcPosition

ksSpcVisible


ksSpecification::ksSpcObjectCreate

Создать объект спецификации в графическом документе.

Аналог данного метода при использовании API экспортных функций - ksSpcObjectCreate.

Синтаксис Automation:

long ksSpcObjectCreate (BSTR nameLib,

long styleNumb,

long secNumb,

long subSecNumb,

double numb,

short typeObj);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
styleNumb	- номер стиля спецификации в библиотеке,
secNumb	- номер раздела,
subSecNumb	- номер подраздела,
numb	- для базового объекта - тип атрибута, который задан по ключам, или 0, для вспомогательного объекта - номер базового объекта, к которому прикрепляется вспомогательный, либо 0,
typeObj	- тип строки спецификации (0- базовый объект, 1 – вспомогательный объект).
Возвращаемое значение:

1	- в случае удачного завершения.
Примечания:

1. Объект спецификации - составной объект. Его создание завершается методом ksSpecification::ksSpcObjectEnd.

2. Для атрибутов, описанных по ключам, нужно указать тип в numb, потому что типов

с одинаковыми ключами можент быть несколько.

3. Параметры nameLib и styleNumb используются только для объектов спецификации в графическом документе.


ksSpecification::ksSpcObjectEdit

Запустить режим редактирования объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksSpcObjectEdit.

Синтаксис Automation:

long ksSpcObjectEdit (long spcObj);

Входной параметр:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

1. После вызова данного метода у объекта можно изменить атрибуты, геометрию, линии выноски, позицию, массу.

2. Редактирование объекта завершится вызовом метода ksSpecification::ksSpcObjectEnd.


ksSpecification::GetSpcObjectNotify

Получить источник событий для объекта спецификации.

Синтаксис Automation:

SpcObjectNotify* GetSpcObjectNotify();

Возвращаемое значение:

	указатель на интерфейс источника событий SpcObjectNotify


ksSpecification::ksSpcObjectEnd

Завершить создание или редактирование объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksSpcObjectEnd.

Синтаксис Automation:

long ksSpcObjectEnd();

Возвращаемое значение:

	указатель на объект спецификации.
Примечание:

Предварительно объект спецификации должен быть открыт на редактирование или должен быть запущен режим его создания методами ksSpecification::ksSpcObjectEdit или ksSpecification::ksSpcObjectCreate.


ksSpecification::ksSpcChangeValue

Изменить значение компоненты с указанным номером в указанной колонке.

Аналог данного метода при использовании API экспортных функций - ksSpcChangeValue.

Синтаксис Automation:

long ksSpcChangeValue (long colNumb,

long itemNumb,

LPDISPATCH userPars,

short typeVal);

Входные параметры:

colNumb	- номер колонки, начиная с единицы,
itemNumb	- номер компоненты, начиная с единицы,
userPars	- указатель на интерфейс ksUserParam,
typeVal	- тип данных.
Типы данных...

Возвращаемое значение:

1	- в случае удачного завершения.
Примечания:

1. Метод работает в режиме создания нового или редактирования существующего объекта спецификации.

2. Если typeVal - запись (RECORD_ATTR_TYPE), в колонке может быть несколько компонент и itemNumb может быть не равен 1.


ksSpecification::ksSpcVisible

Установить признак видимости компонента.

Аналог данного метода при использовании API экспортных функций - ksSpcVisible.

Синтаксис Automation:

long ksSpcVisible (long colNumb,

long itemNumb,

short flagOn);

Входные параметры:

colNumb	- номер колонки, начиная с единицы,
itemNumb	- номер компоненты, начиная с единицы,
flagOn	- признак видимости компонента: 1 -включить,  0- выключить.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.- в случае неудачи.
Примечания:

1. Метод работает в режиме создания нового или редактирования существующего объекта спецификации.

2. В случае записи в колонке может быть несколько компонент и itemNumb может быть не равен 1.


ksSpecification::ksSpcMassa

Заполнить дополнительную колонку «масса» для объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksSpcMassa.

Синтаксис Automation:

long ksSpcMassa (BSTR sMassa);

Входной параметр:

sMassa	- строка с массой детали.
Возвращаемое значение:

1	- в случае удачного завершения (если в объекте существует колонка с типом "масса").
0	- в случае неудачи.


ksSpecification::ksSpcCount

Заполнить колонку "количество" для данного исполнения специфицируемого изделия.

Аналог данного метода при использовании API экспортных функций - ksSpcCount.

Синтаксис Automation:

long ksSpcCount (short ispoln,

BSTR sCount);

Входные параметры:

ispoln	- номер исполнения, начиная с 1,
sCount	- количество деталей.
Возвращаемое значение:

1	- в случае удачного завершения (если в объекте существует колонка с типом "количество").


ksSpecification::ksSpcPosition

Установить номер позиции.

Аналог данного метода при использовании API экспортных функций - ksSpcPosition.

Синтаксис Automation:

long ksSpcPosition (long pos);

Входной параметр:

pos	- номер позиции.
Возвращаемое значение:

1	- в случае удачного завершения (если в объекте существует колонка с типом "позициия").
0	- в случае неудачи.


ksSpecification::ksSpcIncludeReference

Добавить или изменить геометрию графического объекта или линию-выноску в объекте спецификации.

Аналог данного метода при использовании API экспортных функций - ksSpcIncludeReference.

Синтаксис Automation:

long ksSpcIncludeReference (long obj,

short clear);

Входные параметры:

obj	- группа объектов или объект вида,
clear	- признак обработки существующей геометрии объекта спецификации: 1 - удалить геометрию,  0 - добавить новые объекты к существующей геометрии.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksSpecification::ksGetSpcObjForGeom

Получить указатель на объект спецификации, подключенный к данному графическому объекту.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjForGeom.

Синтаксис Automation:

long ksGetSpcObjForGeom (BSTR nameLib,

long numb,

long obj,

short equal,

short first);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации в библиотеке,
obj	- указатель на графический объект или группу объектов (0 - макрообъект редактирования),
equal	- признак вхождения геометрии в состав объекта: 1 - геометрия идентична геометрии объекта спецификации,  0 - геометрия входит в объект спецификации.
first	- 1 -первый объект, 0 - следующий объект
Возвращаемое значение:

	указатель на объект спецификации.
Примечания:

1. Данный метод - только для графических документов.

2. В настоящий момент метод реализован только для equal = 1.


ksSpecification::ksGetSpcObjForGeomWithLimit

Получить указатель на объект спецификации, подключенный к данному графическому объекту с ограничениями по номеру раздела и типу атрибута.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjForGeomWithLimit.

Синтаксис Automation:

long ksGetSpcObjForGeomWithLimit (BSTR nameLib,

long numb,

long obj,

short equal,

short first,

long section,

double attrTypeNumb);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации в библиотеке,
obj	- указатель на графический объект или группу объектов (0 - макрообъект редактирования),
equal	- признак вхождения геометрии в состав объекта: 1 - геометрия идентична геометрии объекта спецификации,  0 - геометрия входит в объект спецификации.
first	- 1 -первый объект, 0 - следующий объект
section	- номер раздела, в котором нужно найти объект (0 - номер не ограничивается),
attrTypeNumb	- номер типа атрибута, для которого нужно найти объект (0 - номер не ограничивается).
Возвращаемое значение:

	указатель на объект спецификации.
Примечания:

1. Данный метод - только для графических документов.

2. В настоящий момент метод реализован только для equal = 1.


ksSpecification::ksGetSpcSectionName

Получить название раздела спецификации по указателю на объект спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcSectionName.

Синтаксис Automation:

BSTR ksGetSpcSectionName (long spcObj);

Входной параметр:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

	строка с названием раздела спецификации.


ksSpecification::ksEditWindowSpcObject

Запустить окно редактирования для объекта спецификации, существующего в графическом документе.

Аналог данного метода при использовании API экспортных функций - ksEditWindowSpcObject.

Синтаксис Automation:

long ksEditWindowSpcObject (long obj);

Входной параметр:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечание:

Метод запускает процесс. Так как сиcтема может работать только с одним процессом, то нужно завершить другие "процессные" функции: ksDocument2D::ksCursor, ksDocument2D::ksPlacement, ksDocument2D::ksCommandWindow, ksDocument2D::ksEditViewObject, ksDocument2D::ksCreateViewObject.


ksSpecification::ksGetSpcObjectNumber

Получить уникальный номер объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjectNumber.

Синтаксис Automation:

double ksGetSpcObjectNumber (long spcObj);

Входной параметр:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

	уникальный номер объекта спецификации.


ksSpecification::ksGetSpcObject

Получить указатель на объект спецификации по номеру.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObject.

Синтаксис Automation:

long ksGetSpcObject (double objNumb);

Входной параметр:

objNumb	- уникальный номер объекта спецификации.
Возвращаемое значение:

	указатель на объект спецификации.


ksSpecification::ksGetSpcObjectColumnText

Получить строку с текстом из определенной колонки объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjectColumnText.

Синтаксис Automation:

BSTR ksGetSpcObjectColumnText (long spcObj,

long columnType,

long ispoln,

long block);

Входные параметры:

spcObj	- указатель на объект спецификации,
columnType	- тип колонки,
ispoln	- номер колонки данного типа, начиная с 1,
block	- номер блока исполнений, начиная с 0 (если количество исполнений больше числа колонок типа "количество").
Типы колонок спецификации...

Возвращаемое значение:

	строка с текстом из колонки.


ksSpecification::ksSetSpcObjectColumnText

Установить текст в колонке определенного типа.

Аналог данного метода при использовании API экспортных функций - ksSetSpcObjectColumnText.

Синтаксис Automation:

long ksSetSpcObjectColumnText (long columnType,

long ispoln,

long block,

BSTR str);

Входные параметры:

columnType	- тип колонки,
ispoln	- номер колонки данного типа,
block	- номер блока исполнений, начиная с 0 (если количество исполнений больше числа колонок типа "количество"),
str	- строка, из которой нужно взять текст.
Возвращаемое значение:

1	- в случае удачного завершения.


ksSpecification::ksGetSpcTableColumn

Получить количество колонок для стиля спецификации в текущем документе.

Аналог данного метода при использовании API экспортных функций - ksGetSpcTableColumn.

Синтаксис Automation:

long ksGetSpcTableColumn (BSTR nameLib,

long numb,

short additioanalCol);

Входные параметры:

nameLib	- имя библиотеки стилей спецификаций,
numb	- номер стиля в библиотеке,
additioanalCol	- признак колонок:  0 - видимые колонки таблицы спецификации,  1 - дополнительные колонки.
Возвращаемое значение:

	количество колонок для стиля спецификации в текущем документе.
Примечания:

1. Если документ - спецификация, то параметры nameLib и numb не используются.

2. Если количество исполнений больше числа колонок "количество" в бланке спецификации, то количество колонок выдается с учетом всех исполнений.


ksSpecification::ksGetSpcColumnType

Получить параметры колонки по ее номеру для данного объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcColumnType.

Синтаксис Automation:

long ksGetSpcColumnType (long spcObj,

long colNumb,

LPDISPATCH par);

Входные параметры:

spcObj	- указатель на объект спецификации,
colNumb	- номер колонки, начиная с 1.
Выходной параметр:

par	- указатель на интерфейс параметров колонки ksSpcColumnParam.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Типы колонок спецификации...

Примечание:

Если количество исполнений больше числа колонок "количество" в бланке спецификации, то недостающие колонки исполнений "пристыкованы" справа от видимых в таблице колонок, затем "пристыкованы" дополнительные колонки


ksSpecification::ksGetSpcColumnNumb

Получить номер колонки для данного объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcColumnNumb.

Синтаксис Automation:

long ksGetSpcColumnNumb (long spcObj,

long columnType,

long ispoln,

long block);

Входные параметры:

spcObj	- указатель на объект спецификации,
columnType	- тип колонки,
ispoln	- номер колонки данного типа, начиная с 1,
block	- номер блока исполнений.
Возвращаемое значение:

	номер колонки спецификации.
Типы колонок спецификации...


ksSpecification::ksGetSpcStyleParam

Получить указатель на интерфейс параметров ksSpcStyleParam или ksSpcTuningStyleParam для указанного стиля спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcStyleParam.

Синтаксис Automation:

long ksGetSpcStyleParam (BSTR nameLib,

long numb,

LPDISPATCH par,

long tPar);

Входные параметры:

nameLib	- имя библиотеки стилей спецификаций (NULL - параметры берутся у текущго документа),
numb	- номер стиля спецификации в библиотеке,
tPar	- тип возвращаемых параметров.
Выходной параметр:

par	- указатель на интерфейс параметров ksSpcStyleParam или ksSpcTuningStyleParam.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

tPar = ALLPARAM 	- интерфейс ksSpcStyleParam,

tPar = SPC_TUNING_PARAM 	- интерфейс ksSpcTuningStyleParam.


ksSpecification::ksGetSpcDescription

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

Аналог данного метода при использовании API экспортных функций - ksGetSpcDescription.

Синтаксис Automation:

long ksGetSpcDescription (long index,

LPDISPATCH param,

BOOL* state);

Входной параметр:

index	- индекс (номер) описания спецификации в документе (-1 - текущее описание).
Выходные параметры:

param	- указатель на интерфейс ksSpcDescrParam параметров описания спецификации,
state	- состояние описания спецификации: TRUE - текущее,  FALSE - не текущее.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание :

Для документа-спецификации параметр index не используется.


ksSpecification::ksSetSpcDescription

Установить указатель на интерфейс параметров описания спецификации для указанного документа.

Аналог данного метода при использовании API экспортных функций - ksSetSpcDescription.

Синтаксис Automation:

long ksSetSpcDescription (long index,

LPDISPATCH param,

short state);

Входные параметры:

index	- индекс (номер) описания спецификации в документе (-1 - текущее описание),
param	- указатель на интерфейс параметров описания спецификации ksSpcDescrParam,
state	- состояние описания спецификации: TRUE - текущее,  FALSE - не текущее.
Возвращаемое значение:

1	- в случае удачного завершения.
Примечания:

1. Метод изменяет параметры описания спецификации и/или делает его активным, если state = TRUE.

2. Если param = NULL - меняется только состояние.

3. Для документа-спецификации параметр index не используется.


ksSpecification::ksAddSpcDescription

Добавить описание спецификации в указанный графический документ.

Аналог данного метода при использовании API экспортных функций - ksAddSpcDescription.

Синтаксис Automation:

long ksAddSpcDescription (LPDISPATCH param);

Входной параметр:

param	- указатель на интерфейс параметров описания спецификации ksSpcDescrParam,
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksSpecification::ksDeleteSpcDescription

Удалить параметры описания спецификации в указанном графическом документе.

Аналог данного метода при использовании API экспортных функций - ksDeleteSpcDescription.

Синтаксис Automation:

long ksDeleteSpcDescription (long index);

Входной параметр:

index	- индекс (номер) описания спецификации в документе.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksSpecification::D3SpcIncludePart

Добавить или изменить трехмерный компонент (деталь или подсборку) в объекте спецификации.

Аналог данного метода при использовании API экспортных функций - D3SpcIncludePart.

Синтаксис Automation:

BOOL D3SpcIncludePart (LPDISPATCH part, VARIANT_BOOL fillTexts);

Входные параметры:

part	- указатель на интерфейс компонента ksPart,
fillTexts	- признак автоматического заполнения: наименование, обозначение, масса из свойств ksPart: TRUE - автозаполнение включено,  FALSE - выключено.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Синтаксис COM:

ISpecification3D::SpcIncludePart


ksSpecification::D3GetSpcObjForGeomWithLimit

Получить указатель на объект спецификации, подключенный к трехмерному компоненту (детали или подсборке) с ограничениями по номеру раздела и типу атрибута.

Аналог данного метода при использовании API экспортных функций - D3GetSpcObjForGeomWithLimit.

Синтаксис Automation:

long D3GetSpcObjForGeomWithLimit (LPCTSTR nameLib,

long numb,

LPDISPATCH part,

short first,

short section,

double attrTypeNumb);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации в библиотеке,
part	- указатель на интерфейс добавляемого компонента ksPart,
first	- 1 -первый объект, 0 - следующий объект,
section	- номер раздела, в котором нужно найти объект (0 - номер не ограничивается),
attrTypeNumb	- номер типа атрибута, для которого нужно найти объект (0 - номер не ограничивается).
Возвращаемое значение:

	указатель на объект спецификации.
Синтаксис COM:

ISpecification3D::GetSpcObjForGeomWithLimit


ksSpecification::ksGetWidthColumnSpc

Получить ширину колонки или текста в колонке.

Аналог данного метода при использовании API экспортных функций - ksGetWidthColumnSpc.

Синтаксис Automation:

double ksGetWidthColumnSpc (int numColumn,

unsigned char cellOrText)

Входные параметры:

numColumn	- номер колонки,
cellOrText	- признак объекта, ширину которого требуется узнать: 1 - колонка, 0 - текст в колонке.
Возвращаемое значение:

	ширина колонки или текста в колонке.


ksSpecification::ksGetCurrentSpcObject

Получить указатель текущего (выделенного или редактируемого) объекта спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetCurrentSpcObject.

Синтаксис Automation:

long ksGetCurrentSpcObject();

Возвращаемое значение:

указатель на текущий объект	- в случае успеха,
0	- в случае неудачи.
Примечание:

Метод работает для видимых таблиц спецификации.


ksSpecification::ksSetCurrentSpcObject

Установить текущий объект спецификации либо по указателю на него, либо по его индексу.

Аналог данного метода при использовании API экспортных функций - ksSetCurrentSpcObject.

Синтаксис Automation:

long ksSetCurrentSpcObject (long spcObj,

long index);

Входные параметры:

spcObj	- указатель на объект,
index	- индекс объекта.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод работает для видимых таблиц спецификации.


ksSpecification::D3GetSpcObjGeometry

Получить деталь или подсборку, подключенную к объекту спецификации.

Аналог данного метода при использовании API экспортных функций - ksD3GetSpcObjGeometry.

Синтаксис Automation:

LPDISPATCH D3GetSpcObjGeometry (long spcObj);

Входные параметры:

spcObj	- указатель на объект спецификации,
Возвращаемое значение:

Указатель на интерфейс ksPart	- в случае успешного завершения,
0	- если деталь не подключена или в случае ошибки.


ksSpecification::ksSetTuningSpcStyleParam

Изменить параметры настроек спецификации документа.

Аналог данного метода при использовании API экспортных функций - ksSetTuningSpcStyleParam.

Синтаксис Automation:

long ksSetTuningSpcStyleParam(long index, LPDISPATCH par);

Входные параметры:

index	- индекс описания спецификации в документе,
par	указатель на интерфейс ksSpcTuningStyleParam структуры параметров настроек спецификации
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи..
Примечание:

1. Если index == -1, то для текущего описания спецификации

2. Для документа спецификации настройки можно изменить всегда.

3. Для графического документа: в случае, если документ подключен к спецификации или включен режим "Спецификация на листе"

4. Для документа трехмерного объекта: в случае, если документ подключен к спецификации.


ksSpecification::ksGetTuningSpcStyleParam

Получить изменения параметров настроек спецификации документа.

Аналог данного метода при использовании API экспортных функций - ksGetTuningSpcStyleParamt.

Синтаксис Automation:

long ksGetTuningSpcStyleParam (long index, LPDISPATCH par);

Входные параметры:

index	- индекс описания спецификации в документе,
par	указатель на интерфейс ksSpcTuningStyleParam структуры параметров настроек спецификации
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи..
Примечание:

1. Если index == -1, то для текущего описания спецификации

2. Для документа спецификации настройки можно изменить всегда.

3. Для графического документа: в случае, если документ подключен к спецификации или включен режим "Спецификация на листе"

4. Для документа трехмерного объекта: в случае, если документ подключен к спецификации.


ksSpecification::ksGetSpcObjGeometry

Получить деталь или подсборку, подключенную к объекту спецификации.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjGeometry.

Синтаксис Automation:

long ksGetSpcObjGeometry (long spcObj);

Входные параметры:

spcObj	- указатель на объект спецификации,
Возвращаемое значение:

указатель на группу	- в случае успешного завершения,
0	- в случае, если геометрия не подключена или в случае ошибки.


ksSpecification::GetSpcObjectColumnTextEx

Получить текст объекта спецификации для определенного типа колонки и исполнения в виде динамического массива TEXT_LINE_ARR.

Аналог данного метода при использовании API экспортных функций - ksGetSpcObjectColumnTextEx.

Синтаксис Automation:

LPDISPATCH ksGetSpcObjectColumnTextEx (long spcObj, long columnType, long ispoln, long block);

Входные параметры:

spcObj	- указатель на объект спецификации,
columnType	- тип колонки SPC_CLM_FORMAT...SPC_CLM_USER
ispoln	- номер колонки данного типа начиная с 1
block	- номер блока. если block = 0, то количество исполнений меньше количества исполнений в бланке спецификации (для групповой спецификации 2.113-75 количество исполнений меньше 10).
Возвращаемое значение:

указатель на интерфейс ksDynamicArray	- в случае успеха,
0	- в случае неудачи.


ksSpecification::ksSetSpcObjectColumnTextEx

Задать текст объекта спецификации для определенного типа колонки и исполнения.

Аналог данного метода при использовании API экспортных функций - ksSetSpcObjectColumnTextEx.

Синтаксис Automation:

long ksSetSpcObjectColumnTextEx (long columnType, long ispoln, long block, LPDISPATCH arr);

Входные параметры:

columnType	- тип колонки SPC_CLM_FORMAT...SPC_CLM_USER
ispoln	- номер колонки данного типа начиная с 1
block	- номер блока. если block = 0, то количество исполнений меньше количества исполнений в бланке спецификации (для групповой спецификации 2.113-75 количество исполнений меньше 10).
arr	- указатель на интерфейс ksDynamicArray массива строк, тип массива - TEXT_LINE_ARR.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.
Примечание:

Функция работает в режиме создания нового или редактирования существующего объекта спецификации ksSpcObjectCreate(...); или ksSpcObjectEdit(...);. ksSetSpcObjectColumnTextEx(...);...reference spsObj = ksSpcObjectEnd();


Интерфейс ksStamp
ksStamp

Интерфейс основной надписи.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи методов ksDocument2D::GetStamp и ksSpcDocument::GetStamp.


ksStamp::props
ksStamp
свойства

reference


ksStamp::methods
ksStamp
методы

ksClearStamp

ksCloseStamp

ksColumnNumber

ksGetStampColumnText

ksOpenStamp

ksSetStampColumnText

ksTextLine


ksStamp::reference

Указатель на основную надпись.

Тип данных - long.

Синтаксис Automation:

ref = iStamp.reference	Получить свойство (*)
iStamp.reference = ref	Установить свойство (*)
ref = iStamp.GetReference()	Получить свойство (**)
iStamp.SetReference (ref)	Установить свойство (**)


ksStamp::ksOpenStamp

Открыть основную надпись.

Аналог данного метода при использовании API экспортных функций - OpenStamp.

Синтаксис Automation:

long ksOpenStamp();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод действителен для чертежа и спецификации.

Операторы ksStamp::ksColumnNumber и ksStamp::ksTextLin, вводимые между операторами ksStamp::ksOpenStamp и ksStamp::ksCloseStamp, принадлежат основной надписи.

ksStamp::ksColumnNumber определяет номер ячейки, куда помещать текcт.

Номера определены в соответствии с ГОСТом на данную основную надпись.

ksStamp::ksCloseStamp возвращает указатель на штамп.


ksStamp::ksCloseStamp

Закрыть основную надпись.

Аналог данного метода при использовании API экспортных функций - CloseStamp.

Синтаксис Automation:

long ksCloseStamp();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод действителен для чертежа и спецификации.


ksStamp::ksClearStamp

Очистить основную надпись.

Аналог данного метода при использовании API экспортных функций - ClearStamp.

Синтаксис Automation:

long ksClearStamp (long numb);

Входной параметр:

numb	- номер очищаемой ячейки основной надписи (0 - очищается вся основная надпись).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод действителен для чертежа и спецификации.


ksStamp::ksGetStampColumnText

Получить текст ячейки основной надписи.

Аналог данного метода при использовании API экспортных функций - GetStampColumnText.

Синтаксис Automation:

LPDISPATCH ksGetStampColumnText (long* numb);

Выходной параметр:

numb	- номер ячейки основной надписи.
Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray строк текста типа TEXT_LINE_ARR или NULL если все ячейки пройдены.
Смотрите также

ksTextLineParam

Примечание:

После выполнения метод смещается на следующую ячейку.

Если номер графы не определен с помощью функции ksColumnNumber, метод начинает работу с первой графы.

После использования полученный массив желательно удалить.

Если numb != NULL, метод возвращает номер графы.

Функция используется в режиме редактирования штампа.


ksStamp::ksSetStampColumnText

Заменить текст в ячейке.

Аналог данного метода при использовании API экспортных функций - SetStampColumnText.

Синтаксис Automation:

long ksSetStampColumnText (long numb,

LPDISPATCH textArr);

Входные параметры:

numb	- номер ячейки основной надписи,
textArr	- указатель на интерфейс динамического массива ksDynamicArray строк текста типа TEXT_LINE_ARR.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод используется в режиме редактирования штампа.


ksStamp::ksColumnNumber

Определить номер ячейки основной надписи.

Аналог данного метода при использовании API экспортных функций - ColumnNumber.

Синтаксис Automation:

long ksColumnNumber (long numb);

Входной параметр:

numb	- номер ячейки основной надписи.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод используется в режиме редактирования основной надписи.


ksStamp::ksTextLine

Задать компоненту строки текста или строку текста полностью.

Аналог данного метода при использовании API экспортных функций - TextLine.

Синтаксис Automation:

ksTextLine(LPDISPATCH textItem);

Входной параметр:

textItem	- указатель на интерфейс ksTextItemParam для компоненты текста или указатель на интерфейс ksTextLineParam для всей строки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Данная функция предназначена для задания сложноструктурированного текста, отдельные компоненты которого имеют различные параметры.


Интерфейс ksStandartSheetс
ksStandartSheet

Интерфейс параметров стандартного листа.

Аналог данных параметров при использовании API экспортных функций - StandartSheet.

Свойства:

Методы:

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksStandartSheet::props
ksStandartSheet
свойства

direct

format

multiply


ksStandartSheet::methods
ksStandartSheet
методы

Init


ksStandartSheet::format

Формат листа.

Тип данных - short.

Стандартные форматы...

Синтаксис Automation:

format = iStandartSheet.format	Получить свойство (*)
iStandartSheet.format = format	Установить свойство (*)
format = iStandartSheet.GetFormat()	Получить свойство (**)
iStandartSheet.SetFormat (format)	Установить свойство (**)


ksStandartSheet::multiply

Кратность формата.

Тип данных - short.

Синтаксис Automation:

multiply = iStandartSheet.multiply	Получить свойство (*)
iStandartSheet.multiply = multiply	Установить свойство (*)
multiply = iStandartSheet.GetMultiply()	Получить свойство (**)
iStandartSheet.SetMultiply (multiply)	Установить свойство (**)


ksStandartSheet::direct

Расположение основной надписи

Тип данных - BOOL.

Значения свойства:

FALSE	- вдоль короткой стороны,
TRUE	- вдоль длинной стороны.
Синтаксис Automation:

direct = iStandartSheet.direct	Получить свойство (*)
iStandartSheet.direct = direct	Установить свойство (*)
direct = iStandartSheet.GetDirect()	Получить свойство (**)
iStandartSheet.SetDirect (direct)	Установить свойство (**)


ksStandartSheet::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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


Интерфейс ksTAN
ksTAN

Интерфейс массива координат точек касания (структур TAN).

Аналог данных параметров при использовании API экспортных функций - TAN - структура параметров прямой, касательной к двум кривым.

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksTAN::methods
ksTAN
методы

GetX1

GetX2

GetY1

GetY2


ksTAN::GetX1

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

Синтаксис Automation:

double GetX1 (long index);

Входной параметр:

index	- номер индекса в массиве точек (допустимое значение от 0 до 3)
Возвращаемое значение:

	координата х1 первой точки касания.


ksTAN::GetY1

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

Синтаксис Automation:

double GetY1 (long index);

Входной параметр:

index	- номер индекса в массиве точек (допустимое значение от 0 до 3)
Возвращаемое значение:

	координата y1 первой точки касания.


ksTAN::GetX2

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

Синтаксис Automation:

double GetX2 (long index);

Входной параметр:

index	- номер индекса в массиве точек (допустимое значение от 0 до 3)
Возвращаемое значение:

	координата x2 первой точки касания.


ksTAN::GetY2

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

Синтаксис Automation:

double GetY2 (long index);

Входной параметр:

index	- номер индекса в массиве точек (допустимое значение от 0 до 3)
Возвращаемое значение:

	координата y2 первой точки касания.


Интерфейс ksToleranceBranch
ksToleranceBranch

Интерфейс параметров "опоры" допуска формы.

Аналог данных параметров при использовании API экспортных функций - ToleranceBranch.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksToleranceBranch::props
ksToleranceBranch
свойства

arrowType

tCorner


ksToleranceBranch::methods
ksToleranceBranch
методы

GetpMathPoint

Init

SetpMathPoint


ksToleranceBranch::arrowType

Тип "опоры".

Тип данных - short.

Значения свойства:

0	- "опора" отсутствует,
1	- "опора"-треугольник,
2	- "опора"-стрелка.
Синтаксис Automation:

arrowType = iToleranceBranch.arrowType	Получить свойство (*)
iToleranceBranch.arrowType = arrowType	Установить свойство (*)
arrowType = iToleranceBranch.GetArrowType()	Получить свойство (**)
iToleranceBranch.SetArrowType( arrowType )	Установить свойство (**)


ksToleranceBranch::tCorner

Точка выхода "опоры" из таблицы допуска формы.

Тип данных - short.

Значения свойства

Синтаксис Automation:

tCorner = iToleranceBranch.tCorner	Получить свойство (*)
iToleranceBranch.tCorner = tCorner	Установить свойство (*)
tCorner = iToleranceBranch.GetTCorner()	Получить свойство (**)
iToleranceBranch.SetTCorner( tCorner )	Установить свойство (**)


ksToleranceBranch::GetpMathPoint

Получить указатель на интерфейс динамического массив точек "опоры" ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

LPDISPATCH GetpMathPoint();

Возвращаемое значение:

	указатель на интерфейс динамического массива математических точек ksDynamicArray типа POINT_ARR.
Примечание:

Массив точек опоры состоит из начальной точки, принадлежащей таблице (ее в массив помещать не нужно, т.к. она определена свойством tCorner), точек излома (они могут отсутствовать) и конечной точки "опоры", указывающей на объект.

Смотрите также

ksMathPointParam


ksToleranceBranch::SetpMathPoint

Установить указатель на интерфейс динамического массива точек "опоры" ksDynamicArray типа POINT_ARR.

Синтаксис Automation:

BOOL SetpMathPoint(LPDISPATCH pMathPoint);

Входной параметр:

pMathPoint	- указатель на интерфейс динамического массива математических точек ksDynamicArray типа POINT_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Массив точек опоры состоит из начальной точки, принадлежащей таблице (ее в массив помещать не нужно, т.к. она определена свойством tCorner), точек излома (они могут отсутствовать) и конечной точки "опоры", указывающей на объект.

Смотрите также

ksMathPointParam


ksToleranceBranch::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив pMathPoint типа POINT_ARR.


Интерфейс ksToleranceParam
ksToleranceParam

Интерфейс параметров обозначения допуска формы и расположения поверхностей.

Аналог данных параметров при использовании API экспортных функций - ToleranceParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksToleranceParam::props
ksToleranceParam
свойства

style

tBase

type

x, y


ksToleranceParam::methods
ksToleranceParam
методы

GetBranchArr

Init

SetBranchArr


ksToleranceParam::tBase

Положение базовой точки на таблице допуска формы.

Тип данных - short.

Значения свойства...

Синтаксис Automation:

tBase = iToleranceParam.tBase	Получить свойство (*)
iToleranceParam.tBase = tBase	Установить свойство (*)
tBase = iToleranceParam.GetTBase()	Получить свойство (**)
iToleranceParam.SetTBase( tBase )	Установить свойство (**)


ksToleranceParam::style

Стиль текста.

Тип данных - long.

Значения свойства:

номер системного стиля,

номер пользовательского стиля.

Системные стили текстов...

Синтаксис Automation:

style = iToleranceParam.style	Получить свойство (*)
iToleranceParam.style = style	Установить свойство (*)
style = iToleranceParam.GetStyle()	Получить свойство (**)
iToleranceParam.SetStyle( style )	Установить свойство (**)


ksToleranceParam::x,
ksToleranceParam::y

Координаты базовой точки таблицы допуска формы.

Тип данных - double.

Синтаксис Automation:

x = iToleranceParam.x	Получить свойство (*)
iToleranceParam.x = x	Установить свойство (*)
x = iToleranceParam.GetX()	Получить свойство (**)
iToleranceParam.SetX( x )	Установить свойство (**)


ksToleranceParam::type

Ориентация таблицы допуска формы.

Тип данных - short.

Значения свойства:

0	- горизонтально,
1	- вертикально.
Синтаксис Automation:

type = iToleranceParam.type	Получить свойство (*)
iToleranceParam.type = type	Установить свойство (*)
type = iToleranceParam.GetType()	Получить свойство (**)
iToleranceParam.SetType( type )	Установить свойство (**)


ksToleranceParam::GetBranchArr

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

Синтаксис Automation:

LPDISPATCH GetBranchArr();

Возвращаемое значение:

	указатель на интерфейс динамического массива опор допуска формы ksDynamicArray типа TOLERANCEBRANCH_ARR.


ksToleranceParam::SetBranchArr

Установить указатель на интерфейс динамического массива опор допуска формы.

Синтаксис Automation:

BOOL SetBranchArr (LPDISPATCH pBranchArr);

Входной параметр:

pBranchArr	- указатель на интерфейс динамического массива опор допуска формы ksDynamicArray типа TOLERANCEBRANCH_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksToleranceParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Создается динамический массив branchArr типа TOLERANCEBRANCH_ARR.


Интерфейс ksType1
ksType1

Интерфейс параметров фантома для сдвига группы.

Аналог данных параметров при использовании API экспортных функций - Type1.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода ksPhantom::GetPhantomParam.

Смотрите также

ksPhantom


ksType1::props
ksType1
свойства

angle

gr

scale_

xBase, yBase


ksType1::methods
ksType1
методы

Init


ksType1::xBase,
ksType1::yBase

Координаты базовой точки группы.

Тип данных - double.

Синтаксис Automation:

xBase = iType1.xBase	Получить свойство (*)
iType1.xBase = xBase	Установить свойство (*)
xBase = iType1.GetXBase()	Получить свойство (**)
iType1.SetXBase (xBase)	Установить свойство (**)


ksType1::scale_

Масштаб.

Тип данных - double.

Синтаксис Automation:

scale_ = iType1.scale_	Получить свойство (*)
iType1.scale_ = scale_	Установить свойство (*)
scale_ = iType1.GetScale_()	Получить свойство (**)
iType1.SetScale_(scale)	Установить свойство (**)


ksType1::angle

Угол поворота группы.

Тип данных - double.

Синтаксис Automation:

angle = iType1.angle	Получить свойство (*)
iType1.angle = angle	Установить свойство (*)
angle = iType1.GetAngle()	Получить свойство (**)
iType1.SetAngle (angle)	Установить свойство (**)


ksType1::gr

Указатель на группу.

Тип данных - long.

Синтаксис Automation:

gr = iType1.gr	Получить свойство (*)
iType1.gr = gr	Установить свойство (*)
gr = iType1.GetGr()	Получить свойство (**)
iType1.SetGr (gr)	Установить свойство (**)


ksType1::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры фантома.


Интерфейс ksSpcDescrParam
 ksSpcDescrParam

Интерфейс параметров описания спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcDescrParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также:

KompasObject


ksSpcDescrParam::props
ksSpcDescrParam
свойства

layoutName

spcName

styleId


ksSpcDescrParam::methods
ksSpcDescrParam
методы

Init


ksSpcDescrParam::layoutName

Имя файла библиотеки стилей.

Тип данных - строка.

Синтаксис Automation:

layoutName = iSpcDescrParam.layoutName	Получить свойство (*)
iSpcDescrParam.layoutName = layoutName	Установить свойство (*)
layoutName = iSpcDescrParam.GetLayoutName()	Получить свойство (**)
iSpcDescrParam.SetLayoutName(layoutName)	Установить свойство (**)


ksSpcDescrParam::styleId

Номер стиля в библиотеке.

Тип данных - long.

Синтаксис Automation:

styleId = iSpcDescrParam.styleId	Получить свойство (*)
iSpcDescrParam.styleId = styleId	Установить свойство (*)
styleId = iSpcDescrParam.GetStyleId()	Получить свойство (**)
iSpcDescrParam.SetStyleId(styleId)	Установить свойство (**)


ksSpcDescrParam::spcName

Имя подключенного файла специфкации.

Тип данных - строка.

Синтаксис Automation:

spcName = iSpcDescrParam.spcName	Получить свойство (*)
iSpcDescrParam.spcName = spcName	Установить свойство (*)
spcName = iSpcDescrParam.GetSpcName()	Получить свойство (**)
iSpcDescrParam.SetSpcName( spcName )	Установить свойство (**)


ksSpcDescrParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

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


Интерфейс ksType2
ksType2

Интерфейс параметров фантома-отрезка или фантома-окружности.

Аналог данных параметров при использовании API экспортных функций - Type2.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода ksPhantom::GetPhantomParam.

Смотрите также

ksPhantom


ksType2::props
ksType2
свойства

xBase, yBase


ksType2::methods
ksType2
методы

Init


ksType2::xBase,
ksType2::yBase

Координаты базовой точки.

Тип данных - double.

Синтаксис Automation:

xBase = iType2.xBase	Получить свойство (*)
iType2.xBase = xBase	Установить свойство (*)
xBase = iType2.GetXBase()	Получить свойство (**)
iType2.SetXBase (xBase)	Установить свойство (**)


ksType2::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры фантома.


Интерфейс ksSpecRoughParam
ksSpecRoughParam

Интерфейс параметров знака неуказанной шероховатости.

Аналог данных параметров при использовании API экспортных функций - SpecRoughParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksSpecRoughParam::props
ksSpecRoughParam
свойства

sign

s

style

t


ksSpecRoughParam::methods
ksSpecRoughParam
методы

Init


ksSpecRoughParam::style

Номер стиля текста.

Тип данных - long.

Системные стили текста...

Синтаксис Automation:

style = iSpecRoughParam.style	Получить свойство (*)
iSpecRoughParam.style = style	Установить свойство (*)
style = iSpecRoughParam.GetStyle()	Получить свойство (**)
iSpecRoughParam.SetStyle (style)	Установить свойство (**)


ksSpecRoughParam::sign

Тип знака неуказанной шероховатости.

Тип данных - short.

Значения свойства:

0	- вид обработки не устанавливается,
1	- обработка удалением слоя материала,
2	- обработка без удаления слоя материала.
Синтаксис Automation:

sign = iSpecRoughParam.sign	Получить свойство (*)
iSpecRoughParam.sign = sign	Установить свойство (*)
sign = iSpecRoughParam.GetSign()	Получить свойство (**)
iSpecRoughParam.SetSign( sign )	Установить свойство (**)


ksSpecRoughParam::t

Признак наличия знака в скобках.

Тип данных - BOOL.

Значения свойства:

FALSE	- знака нет,
TRUE	- знак есть.
Синтаксис Automation:

t = iSpecRoughParam.t	Получить свойство (*)
iSpecRoughParam.t = t	Установить свойство (*)
t = iSpecRoughParam.GetT()	Получить свойство (**)
iSpecRoughParam.SetT( t )	Установить свойство (**)


ksSpecRoughParam::s

Текст.

Тип данных - строка.

Синтаксис Automation:

s = iSpecRoughParam.s	Получить свойство (*)
iSpecRoughParam.s = s	Установить свойство (*)
s = iSpecRoughParam.GetS()	Получить свойство (**)
iSpecRoughParam.SetS( s )	Установить свойство (**)


ksSpecRoughParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры знака неуказанной шероховатости.


Интерфейс ksSpcTuningStyleParam
ksSpcTuningStyleParam

Интерфейс параметров настроек стиля спецификации.

Аналог данных параметров при использовании API экспортных функций - SpcTuningStyleParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи методов

KompasObject::GetParamStruct

ksSpcStyleParam::GetTuning

Смотрите также

KompasObject


ksSpcTuningStyleParam::props
ksSpcTuningStyleParam
свойства

blocOnNewPage

countBlock

countIspoln

disableEmptyBlockStr

disableEmptyStr

geometryDel

grToSP

insertDash

insertNull

ispolnMarkFull

ispolnOn

positionCalc

predefinedTextFileName

showInfoByDetBlock

showSectionName

userTextStyle

zoneCalc


ksSpcTuningStyleParam::methods
ksSpcTuningStyleParam
методы

GetArrSection

GetObjectTextStyle

GetSectionTextStyleFirst

GetSectionTextStyleNext

Init

SetArrSection

SetObjectTextStyle

SetSectionTextStyleFirst

SetSectionTextStyleNext


ksSpcTuningStyleParam::grToSP

Признак связи сборочного чертежа со спецификацией.

Тип данных - short.

Значения свойства:

0	- нет связи,
1	- только вставка объектов вспецификации,
2	- связь с расчетом позиций.
Синтаксис Automation:

grToSP = iSpcTuningStyleParam.grToSP	Получить свойство (*)
iSpcTuningStyleParam.grToSP = grToSP	Установить свойство (*)
grToSP = iSpcTuningStyleParam.GetGrToSP()	Получить свойство (**)
iSpcTuningStyleParam.SetGrToSP(grToSP)	Установить свойство (**)


ksSpcTuningStyleParam::zoneCalc

Признак расчета зон.

Тип данных - short.

Значения свойства:

0	- не расчитывать зоны,
1	- расчитывать зоны.
Синтаксис Automation:

zoneCalc = iSpcTuningStyleParam.zoneCalc	Получить свойство (*)
iSpcTuningStyleParam.zoneCalc = zoneCalc	Установить свойство (*)
zoneCalc = iSpcTuningStyleParam.GetZoneCalc()	Получить свойство (**)
iSpcTuningStyleParam.SetZoneCalc(zoneCalc)	Установить свойство (**)


ksSpcTuningStyleParam::showSectionName

Признак показа имен разделов в таблице.

Тип данных - short.

Значения свойства:

0	- не показывать имена разделов,
1	- показывать имена разделов.
Синтаксис Automation:

showSectionName = iSpcTuningStyleParam.showSectionName	Получить свойство (*)
iSpcTuningStyleParam.showSectionName = showSectionName	Установить свойство (*)
showSectionName = iSpcTuningStyleParam.GetShowSectionName()	Получить свойство (**)
iSpcTuningStyleParam.SetShowSectionName(showSectionName)	Установить свойство (**)


ksSpcTuningStyleParam::positionCalc

Признак расчета номеров позиций

Тип данных - short.

Значения свойства:

0	- расчитывать позиции,
1	- не расчитывать позиции.
Синтаксис Automation:

positionCalc = iSpcTuningStyleParam.positionCalc	Получить свойство (*)
iSpcTuningStyleParam.positionCalc = positionCalc	Установить свойство (*)
positionCalc = iSpcTuningStyleParam.GetPositionCalc()	Получить свойство (**)
iSpcTuningStyleParam.SetPositionCalc(positionCalc)	Установить свойство (**)


ksSpcTuningStyleParam::geometryDel

Признак удаления геометрии удаленного объекта спецификации.

Тип данных - short.

Значения свойства:

0	- не удалять геометрию,
1	- удалять геометрию.
Синтаксис Automation:

geometryDel = iSpcTuningStyleParam.geometryDel	Получить свойство (*)
iSpcTuningStyleParam.geometryDel = geometryDel	Установить свойство (*)
geometryDel = iSpcTuningStyleParam.GetGeometryDel()	Получить свойство (**)
iSpcTuningStyleParam.SetGeometryDel(geometryDel)	Установить свойство (**)


ksSpcTuningStyleParam::disableEmptyStr

Признак наличия пустых строк вокруг заголовка раздела.

Тип данных - short.

Значения свойства:

0	- пустые строки есть,
1	- пустых строк нет.
Синтаксис Automation:

disableEmptyStr = iSpcTuningStyleParam.disableEmptyStr	Получить свойство (*)
iSpcTuningStyleParam.disableEmptyStr = disableEmptyStr	Установить свойство (*)
disableEmptyStr = iSpcTuningStyleParam.GetDisableEmptyStr()	Получить свойство (**)
iSpcTuningStyleParam.SetDisableEmptyStr(disableEmptyStr)	Установить свойство (**)


ksSpcTuningStyleParam::insertNull

Признак автоматически формируемого номера исполнения.

Тип данных - short.

Значения свойства:

0	- не вставлять нули перед числом,
1	- вставлять нули перед числом.
Синтаксис Automation:

insertNull = iSpcTuningStyleParam.insertNull	Получить свойство (*)
iSpcTuningStyleParam.insertNull = insertNull	Установить свойство (*)
insertNull = iSpcTuningStyleParam.GetInsertNull()	Получить свойство (**)
iSpcTuningStyleParam.SetInsertNull(insertNull)	Установить свойство (**)
Примечание:

Данное свойство предназначено только для чтения.


ksSpcTuningStyleParam::insertDash

Признак автоматически формируемого номера исполнения.

Тип данных - short.

Значения свойства:

0	- не вставлять тире перед числом,
1	- вставлять тире перед числом.
Синтаксис Automation:

insertDash = iSpcTuningStyleParam.insertDash	Получить свойство (*)
iSpcTuningStyleParam.insertDash = insertDash	Установить свойство (*)
insertDash = iSpcTuningStyleParam.GetInsertDash()	Получить свойство (**)
iSpcTuningStyleParam.SetInsertDash(insertDash)	Установить свойство (**)


ksSpcTuningStyleParam::disableEmptyBlockStr

Признак наличия пустых строк вокруг заголовка блока.

Тип данных - short.

Значения свойства:

0	- пустые строки есть,
1	- пустых строк нет.
Синтаксис Automation:

disableEmptyBlockStr = iSpcTuningStyleParam.disableEmptyBlockStr	Получить свойство (*)
iSpcTuningStyleParam.disableEmptyBlockStr = disableEmptyBlockStr	Установить свойство (*)
disableEmptyBlockStr = iSpcTuningStyleParam.GetDisableEmptyBlockStr()	Получить свойство (**)
iSpcTuningStyleParam.SetDisableEmptyBlockStr(disableEmptyBlockStr)	Установить свойство (**)


ksSpcTuningStyleParam::showInfoByDetBlock

Признак, определяющий порядок представления информации в групповой спецификации.

Тип данных - short.

Значения свойства:

0	- выдавать информацию блоками,
1	- выдавать информацию по объектам.
Синтаксис Automation:

showInfoByDetBlock = iSpcTuningStyleParam.showInfoByDetBlock	Получить свойство (*)
iSpcTuningStyleParam.showInfoByDetBlock = showInfoByDetBlock	Установить свойство (*)
showInfoByDetBlock = iSpcTuningStyleParam.GetShowInfoByDetBlock()	Получить свойство (**)
iSpcTuningStyleParam.SetShowInfoByDetBlock(showInfoByDetBlock)	Установить свойство (**)
Примечания:

1. Значение данного свойства учитывается, только если количество исполнений больше, чем количество колонок, предназначенных для записи количества на исполнение.

2. Значение данного свойства используется только для груповой спецификации (вариант Б).


ksSpcTuningStyleParam::ispolnOn

Признак создания исполнений объектов в спецификации.

Тип данных - short.

Значения свойства:

0	- создание исполнений объектов запрещено,
1	- создание исполнений объектов разрешено.
Синтаксис Automation:

ispolnOn = iSpcTuningStyleParam.ispolnOn	Получить свойство (*)
iSpcTuningStyleParam.ispolnOn = ispolnOn	Установить свойство (*)
ispolnOn = iSpcTuningStyleParam.GetIspolnOn()	Получить свойство (**)
iSpcTuningStyleParam.SetIspolnOn(ispolnOn)	Установить свойство (**)


ksSpcTuningStyleParam::ispolnMarkFull

Признак отображения номеров исполнений объектов.

Тип данных - short.

Значения свойства:

0	- показывать только номер исполнения,
1	- показывать обозначение исполнения полностью.
Синтаксис Automation:

ispolnMarkFull = iSpcTuningStyleParam.ispolnMarkFull	Получить свойство (*)
iSpcTuningStyleParam.ispolnMarkFull = ispolnMarkFull	Установить свойство (*)
ispolnMarkFull = iSpcTuningStyleParam.GetIspolnMarkFull()	Получить свойство (**)
iSpcTuningStyleParam.SetIspolnMarkFull(ispolnMarkFull)	Установить свойство (**)


ksSpcTuningStyleParam::blocOnNewPage

Признак размещения блоков.

Тип данных - short.

Значения свойства:

0	- начинать блоки после предыдущих блоков,
1	- начинать блоки с новой страницы.
Синтаксис Automation:

blocOnNewPage = iSpcTuningStyleParam.blocOnNewPage	Получить свойство (*)
iSpcTuningStyleParam.blocOnNewPage = blocOnNewPage	Установить свойство (*)
blocOnNewPage = iSpcTuningStyleParam.GetBlocOnNewPage()	Получить свойство (**)
iSpcTuningStyleParam.SetBlocOnNewPage(blocOnNewPage)	Установить свойство (**)


ksSpcTuningStyleParam::userTextStyle

Стиль текста объектов спецификации.

Тип данных - short.

Значения свойства:

0	- стиль текста из стиля спецификации,
1	- пользовательский стиль текста.
Синтаксис Automation:

userTextStyle = iSpcTuningStyleParam.userTextStyle	Получить свойство (*)
iSpcTuningStyleParam.userTextStyle = userTextStyle	Установить свойство (*)
userTextStyle = iSpcTuningStyleParam.GetUserTextStyle()	Получить свойство (**)
iSpcTuningStyleParam.SetUserTextStyle(userTextStyle)	Установить свойство (**)


ksSpcTuningStyleParam::countIspoln

Количество исполнений (в групповой спецификации).

Тип данных - short.

Синтаксис Automation:

countIspoln = iSpcTuningStyleParam.countIspoln	Получить свойство (*)
iSpcTuningStyleParam.countIspoln = countIspoln	Установить свойство (*)
countIspoln = iSpcTuningStyleParam.GetCountIspoln()	Получить свойство (**)
iSpcTuningStyleParam.SetCountIspoln(countIspoln)	Установить свойство (**)


ksSpcTuningStyleParam::countBlock

Количество блоков (в групповой спецификации).

Тип данных - short.

Синтаксис Automation:

countBlock = iSpcTuningStyleParam.countBlock	Получить свойство (*)
iSpcTuningStyleParam.countBlock = countBlock	Установить свойство (*)
countBlock = iSpcTuningStyleParam.GetCountBlock()	Получить свойство (**)
iSpcTuningStyleParam.SetCountBlock(countBlock)	Установить свойство (**)


ksSpcTuningStyleParam::predefinedTextFileName

Имя файла предопределенных текстов, использующегося при заполнении спецификации.

Тип данных - строка.

Синтаксис Automation:

predefinedTextFileName = iSpcTuningStyleParam.predefinedTextFileName	Получить свойство (*)
iSpcTuningStyleParam.predefinedTextFileName = predefinedTextFileName	Установить свойство (*)
predefinedTextFileName = iSpcTuningStyleParam.GetPredefinedTextFileName()	Получить свойство (**)
iSpcTuningStyleParam.SetPredefinedTextFileName(predefinedTextFileName)	Установить свойство (**)
Примечания:

1. Файлы текстовых шаблонов имеют расширение *.tdp.


ksSpcTuningStyleParam::GetSectionTextStyleFirst

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

Синтаксис Automation:

LPDISPATCH GetSectionTextStyleFirst();

Возвращаемое значение:

	указатель на интерфейс ksTextStyleParam.


ksSpcTuningStyleParam::GetSectionTextStyleNext

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

Синтаксис Automation:

LPDISPATCH GetSectionTextStyleNext();

Возвращаемое значение:

	указатель на интерфейс ksTextStyleParam.


ksSpcTuningStyleParam::GetObjectTextStyle

Получить указатель на интерфейс параметров стиля текста объектов спецификации ksTextStyleParam.

Синтаксис Automation:

LPDISPATCH GetObjectTextStyle();

Возвращаемое значение:

	указатель на интерфейс ksTextStyleParam.


ksSpcTuningStyleParam::GetArrSection

Получить указатель на интерфейс динамического массива структур параметров настроек разделов ksDynamicArray типа SPCTUNINGSEC_ARR.

Синтаксис Automation:

LPDISPATCH GetArrSection();

Возвращаемое значение:

	указатель на интерфейс ksDynamicArray типа SPCTUNINGSEC_ARR.
Смотрите также

ksSpcTuningSectionParam


ksSpcTuningStyleParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры

2. Создается динамический массив arrSection типа SPCTUNINGSEC_ARR.


ksSpcTuningStyleParam::SetSectionTextStyleFirst

Изменить стиль текста заголовка раздела - первая строка.

Синтаксис Automation:

BOOL SetSectionTextStyleFirst(IDispatch* style);

Выходной параметр:

style	- указатель на интерфейс параметров ksTextStyleParam структуры параметров стилей текста заголовка раздела.
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


ksSpcTuningStyleParam::SetSectionTextStyleNext

Изменить стиль текста заголовка раздела - первая строка.

Синтаксис Automation:

BOOL SetSectionTextStyleNext(IDispatch* style);

Выходной параметр:

style	- указатель на интерфейс параметров ksTextStyleParam структуры параметров стилей текста заголовка раздела.
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


ksSpcTuningStyleParam::SetObjectTextStyle

Изменить стиль текста объекта спецификации.

Синтаксис Automation:

BOOL SetObjectTextStyle(IDispatch* style);

Выходной параметр:

style	- указатель на интерфейс параметров ksTextStyleParam структуры параметров стилей текста заголовка раздела.
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


ksSpcTuningStyleParam::SetArrSection

Изменить массив настроек разделов для спецификации.

Синтаксис Automation:

BOOL SetArrSection(IDispatch* arr);

Выходной параметр:

arr	- указатель на интерфейс параметров ksDynamicArray массива настроек разделов для спецификации SpcTuningSectionParam.
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


Интерфейс ksType5
ksType5

Интерфейс параметров фантома-половины прямоугольника c заданным углом.

Аналог данных параметров при использовании API экспортных функций - Type5.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода ksPhantom::GetPhantomParam.

Смотрите также

ksPhantom


ksType5::props
ksType5
свойства

angle

horizon

xBase, yBase


ksType5::methods
ksType5
методы

Init


ksType5::xBase,
ksType5::yBase

Координаты базовой точки.

Тип данных - double.

Синтаксис Automation:

xBase = iType5.xBase	Получить свойство (*)
iType5.xBase = xBase	Установить свойство (*)
xBase = iType5.GetXBase()	Получить свойство (**)
iType5.SetXBase (xBase)	Установить свойство (**)


ksType5::angle

Угол поворота.

Тип данных - double.

Синтаксис Automation:

angle = iType5.angle	Получить свойство (*)
iType5.angle = angle	Установить свойство (*)
angle = iType5.GetAngle()	Получить свойство (**)
iType5.SetAngle (angle)	Установить свойство (**)


ksType5::horizon

Признак направления подхода к курсору.

Тип данных - BOOL.

Значения свойства:

TRUE	- подходим к курсору по горизонтали,
FALSE	- подходим к курсору по вертикали.
Синтаксис Automation:

horizon = iType5.horizon	Получить свойство (*)
iType5.horizon = horizon	Установить свойство (*)
horizon = iType5.GetHorizon()	Получить свойство (**)
iType5.SetHorizon (horizon)	Установить свойство (**)


ksType5::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры фантома.


Интерфейс ksType6
ksType6

Интерфейс параметров пользовательского фантома.

Аналог данных параметров при использовании API экспортных функций - Type6.

Свойства...

Методы...

Примечание:

Этот интерфейс, в отличие от ksType1, не устанавливает параметры поворота и масштабирования группы. Сдвиг группы должен осуществлять сам пользователь

Указатель на интерфейс можно получить при помощи метода ksPhantom::GetPhantomParam.

Смотрите также

ksPhantom


ksType6::props
ksType6
свойства

gr


ksType6::methods
ksType6
методы

Init


ksType6::gr

Указатель на временную группу объектов, которая отображается в виде фантома.

Тип данных - long.

Синтаксис Automation:

gr = iType6.gr	Получить свойство (*)
iType6.gr = gr	Установить свойство (*)
gr = iType6.GetGr()	Получить свойство (**)
iType6.SetGr (gr)	Установить свойство (**)


ksType6::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры фантома.


Интерфейс ksUserParam
ksUserParam

Интерфейс пользовательских параметров.

Свойства...

Методы...

Примечания:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Интерфейс используется для передачи массива пользовательских данных:

1. Установить/получить массив значений ячеек таблицы атрибутов.

Смотрите: ksAttributeParam::SetValues, ksAttributeParam::GetValues.

2. Установить/получить  значение ячейки в таблице атрибута.

Смотрите: ksAttributeObject::ksSetAttrValue,

ksAttributeObject::ksSetAttrValue.

3. Установить/получить  данные строки в таблице атрибута.

Смотрите: ksAttributeObject::ksGetAttrRow,

ksAttributeObject::ksSetAttrRow.

4. Добавить строку к табличному атрибуту.

Смотрите: ksAttributeObject::ksAddAttrRow.

5. Установить/получить пользоватеские параметры макрообъекта.

Смотрите: ksDocument2D::ksSetMacroParam,

ksDocument2D::ksGetMacroParam.

6. Получить запись из базы данных.

Смотрите: ksDataBaseObject::ksReadRecord.

7. Изменить значение компоненты в колонке.

Смотрите: ksSpecification::ksSpcChangeValue.

8. Установить/получить пользовательские параметры компоненты (модели подсборки).

9. Установить/получить пользовательские параметры макрообъекта 3D.

Смотрите: ksMacro3DDefinition::SetUserParam, ksMacro3DDefinition::GetUserParam.

Смотрите также

KompasObject


ksUserParam::props
ksUserParam
свойства

fileName

libName

number

userParams


ksUserParam::methods
ksUserParam
методы

GetUserArray

Init

SetUserArray


ksUserParam::fileName
ksUserParam::fileName  	Пример

Имя файла библиотеки, в которой находтся функция редактирования макрообъекта.

Тип данных - строка.

Синтаксис Automation:

fileName = iUserParam.fileName	Получить свойство (*)
iUserParam.fileName = fileName	Установить свойство (*)
fileName = iUserParam.GetFileName()	Получить свойство (**)
iUserParam.SetFileName( fileName )	Установить свойство (**)
Примечание:

Свойство используется для сохранения/получения пользовательских параметров

макрообъекта.

Смотрите также

ksDocument2D::ksSetMacroParam

ksDocument2D::ksGetMacroParam


ksUserParam::fileName_example
ksUserParam::fileName - пример использования

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

  //получить интерфейс ksUserParam у KompasObject

ksUserParam userParam(kompasObject.GetParamStruct(ko_UserParam));

userParam.Init();

  //заполнить параметры интерфейса

ksPart.GetUserParam(userParam);

  //Получить имя файла пользовательской библиотеки

BSTR userLibraryFileName = userParam.fileName;


ksUserParam::libName
ksUserParam::libName	Пример

Имя библиотеки, в которой находтся функция редактирования макрообъекта.

Тип данных - строка.

Синтаксис Automation:

libName = iUserParam.libName	Получить свойство (*)
iUserParam.libName = libName	Установить свойство (*)
libName = iUserParam.GetLibName()	Получить свойство (**)
iUserParam.SetLibName( libName )	Установить свойство (**)
Примечание:

Свойство используется для сохранения/получения пользоватеских параметров макрообъекта.

Смотрите также

ksDocument2D::ksSetMacroParam

ksDocument2D::ksGetMacroParam


ksUserParam::libName_example
ksUserParam::libName - пример использования

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

  //получить интерфейс ksUserParam у KompasObject

ksUserParam userParam( kompasObject.GetParamStruct(ko_UserParam) );

userParam.Init();

  //заполнить параметры интерфейса

ksPart.GetUserParam( userParam );

  //Получить имя пользовательской библиотеки

BSTR libName = userParam.libName;


ksUserParam::number
ksUserParam::number	Пример

Номер функции редактирования.

Тип данных - long.

Синтаксис Automation:

number = iUserParam.number	Получить свойство (*)
iUserParam.number = number	Установить свойство (*)
number = iUserParam.GetNumber()	Получить свойство (**)
iUserParam.SetNumber( number )	Установить свойство (**)
Примечание:

Свойство используется для сохранения/получения пользоватеских параметров

макрообъекта.

Смотрите также

ksDocument2D::ksSetMacroParam

ksDocument2D::ksGetMacroParam


ksUserParam::number_example
ksUserParam::number - пример использования

Получить номер команды пользовательской библиотеки, при помощи которой можно редактировать компонент.

  //получить интерфейс ksUserParam у KompasObject

ksUserParam userParam( kompasObject.GetParamStruct(ko_UserParam) );

userParam.Init();

  //заполнить параметры интерфейса

ksPart.GetUserParam( userParam );

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

long number = userParam.number;


ksUserParam::userParams

Безопасный массив SAFEARRAY байтов пользовательских параметров объекта.

Тип данных - VARIANT.

Синтаксис Automation:

userParams = iUserParam.UserParams	Получить свойство (*)
iUserParam.UserParams = userParams	Установить свойство (*)
userParams = iUserParam.GetUserParams()	Получить свойство (**)
iUserParam.SetUserParams	Установить свойство (**)
Значение свойства:

Принимает\возвращает безопасный массив SAFEARRAY типа VT_ARRAY | VT_UI1.
Примечание:

Свойство используется для сохранения/получения пользовательских параметров

макрообъекта  в виде безопасного массива SAFEARRAY байтов..

Смотрите также

ksUserParam::GetUserArray

ksUserParam::SetUserArray


ksUserParam::GetUserArray

Получить указатель на интерфейс динамического массива ksDynamicArray типа LTVARIANT_ARR.

Синтаксис Automation:

LPDISPATCH GetUserArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray типа LTVARIANT_ARR.
Смотрите также

ksLtVariant


ksUserParam::SetUserArray

Установить динамический массив ksDynamicArray типа LTVARIANT_ARR.

Синтаксис Automation:

BOOL SetUserArray (LPDISPATCH Array);

Входной параметр:

Array	- указатель на интерфейс динамического массива ksDynamicArray типа LTVARIANT_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Смотрите также

ksLtVariant


ksUserParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все пользовательские параметры.

2. Динамический массив не создается.


Интерфейс ksViewParam
ksViewParam

Интерфейс параметров вида.

Аналог данных параметров при использовании API экспортных функций - ViewParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksViewParam::props
ksViewParam
свойства

angle

color

name

scale_

state

x, y


ksViewParam::methods
ksViewParam
методы

Init


ksViewParam::x,
ksViewParam::y

Координаты точки привязки вида.

Тип данных - double.

Синтаксис Automation:

x = iViewParam.x	Получить свойство (*)
iViewParam.x = x	Установить свойство (*)
x = iViewParam.GetX()	Получить свойство (**)
iViewParam.SetX( x )	Установить свойство (**)


ksViewParam::angle

Угол поворота вида в системе координат листа чертежа.

Тип данных - double.

Синтаксис Automation:

angle = iViewParam.angle	Получить свойство (*)
iViewParam.angle = angle	Установить свойство (*)
angle = iViewParam.GetAngle()	Получить свойство (**)
iViewParam.SetAngle( angle )	Установить свойство (**)


ksViewParam::scale_

Масштаб вида.

Тип данных - double.

Синтаксис Automation:

scale_ = iViewParam.scale_	Получить свойство (*)
iViewParam.scale_ = scale_	Установить свойство (*)
scale_ = iViewParam.GetScale_()	Получить свойство (**)
iViewParam.SetScale_(scale_)	Установить свойство (**)


ksViewParam::color

Цвет вида в активном состоянии.

Тип данных - long.

Синтаксис Automation:

color = iViewParam.color	Получить свойство (*)
iViewParam.color = color	Установить свойство (*)
color = iViewParam.GetColor()	Получить свойство (**)
iViewParam.SetColor( color )	Установить свойство (**)


ksViewParam::state

Состояние вида.

Тип данных - short.

Синтаксис Automation:

state = iViewParam.state	Получить свойство (*)
iViewParam.state = state	Установить свойство (*)
state = iViewParam.GetState()	Получить свойство (**)
iViewParam.SetState( state )	Установить свойство (**)
Состояния видов...


ksViewParam::name

Имя вида.

Тип данных - строка.

Синтаксис Automation:

name = iViewParam.name	Получить свойство (*)
iViewParam.name = name	Установить свойство (*)
name = iViewParam.GetName()	Получить свойство (**)
iViewParam.SetName( name )	Установить свойство (**)


ksViewParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры вида.


Интерфейс ksViewPointerParam
ksViewPointerParam

Интерфейс параметров стрелки направления взгляда.

Аналог данных параметров при использовании API экспортных функций - ViewPointerParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода

KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksViewPointerParam::props
ksViewPointerParam
свойства

str

style

type

x1, y1

x2, y2

хt, yt


ksViewPointerParam::methods
ksViewPointerParam
методы

GetpTextline

Init

SetpTextline


ksViewPointerParam::style

Стиль текста.

Тип данных - long.

Значения свойства:

номер системного стиля,
номер пользовательского стиля.
Системные стили текстов...

Синтаксис Automation:

style = iViewPointerParam.style	Получить свойство (*)
iViewPointerParam.style = style	Установить свойство (*)
style = iViewPointerParam.GetStyle()	Получить свойство (**)
iViewPointerParam.SetStyle(style)	Установить свойство (**)


ksViewPointerParam::x1,
ksViewPointerParam::y1

Координаты вершины ("острия") стрелки направления взгляда.

Тип данных - double.

Синтаксис Automation:

x1 = iViewPointerParam.x1	Получить свойство (*)
iViewPointerParam.x1 = x1	Установить свойство (*)
x1 = iViewPointerParam.GetX1()	Получить свойство (**)
iViewPointerParam.SetX1(x1)	Установить свойство (**)


ksViewPointerParam::x2,
ksViewPointerParam::y2

Координаты конечной точки стрелки направления взгляда.

Тип данных - double.

Синтаксис Automation:

x2 = iViewPointerParam.x2	Получить свойство (*)
iViewPointerParam.x2 = x2	Установить свойство (*)
x2 = iViewPointerParam.GetX2()	Получить свойство (**)
iViewPointerParam.SetX2(x2)	Установить свойство (**)


ksViewPointerParam::xt, ksViewPointerParam::yt
ksViewPointerParam::хt,
ksViewPointerParam::yt

Координаты точки привязки текста.

Тип данных - double.

Синтаксис Automation:

xt = iViewPointerParam.xt	Получить свойство (*)
iViewPointerParam.xt = xt	Установить свойство (*)
xt = iViewPointerParam.GetXt()	Получить свойство (**)
iViewPointerParam.SetXt(xt)	Установить свойство (**)


ksViewPointerParam::type

Способ задания надписи на стрелке направления взгляда.

Тип данных - short.

Значения свойства:

0	- текст в виде строки (используется значение свойства ksViewPointerParam::str),
1	- динамический массив компонент текста (используется массив pTextline).
Синтаксис Automation:

type = iViewPointerParam.type	Получить свойство (*)
iViewPointerParam.type = type	Установить свойство (*)
type = iViewPointerParam.GetType()	Получить свойство (**)
iViewPointerParam.SetType(type)	Установить свойство (**)
Смотрите также

ksViewPointerParam::SetpTextline

ksViewPointerParam::GetpTextline


ksViewPointerParam::str

Текст на стрелке направления взгляда.

Тип данных - строка.

Синтаксис Automation:

str = iViewPointerParam.str	Получить свойство (*)
iViewPointerParam.str = str	Установить свойство (*)
str = iViewPointerParam.GetStr()	Получить свойство (**)
iViewPointerParam.SetStr(str)	Установить свойство (**)
Примечание:

Свойство используется при ksViewPointerParam::type = 0 (т.е. при способе задания надписи на линии в виде строки).


ksViewPointerParam::GetpTextline

Получить указатель на интерфейс динамического массива компонент текста ksDynamicArray типа TEXT_ITEM_ARR.

Синтаксис Automation:

LPDISPATCH GetpTextline();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray компонент текста типа TEXT_ITEM_ARR.
Примечание:

Массив используется при ksViewPointerParam::type = 1 (т.е. при способе задания надписи на линии).

Смотрите также

ksTextItemParam


ksViewPointerParam::SetpTextline

Установить указатель на интерфейс динамического массива компонент текста ksDynamicArray типа TEXT_ITEM_ARR.

Синтаксис Automation:

BOOL SetpTextline (LPDISPATCH pTextline);

Входной параметр:

pTextline	- указатель на интерфейс динамического массива ksDynamicArray компонент текста типа TEXT_ITEM_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Массив используется при ksViewPointerParam::type = 1 (т.е. при способе задания надписи на линии).

Смотрите также

ksTextItemParam


ksViewPointerParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры.

2. Свойство ksViewPointerParam::type = 1.

3. Создается динамический массив pTextItem типа TEXT_ITEM_ARR.


Интерфейс ksLibraryAttrTypeParam
ksLibraryAttrTypeParam

Интерфейс параметров типа атрибута в библиотеке типов атрибутов.

Аналог данных параметров при использовании API экспортных функций - LibraryAttrTypeParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksLibraryAttrTypeParam::props
ksLibraryAttrTypeParam
свойства

name

typeId


ksLibraryAttrTypeParam::methods
ksLibraryAttrTypeParam
методы

Init


ksLibraryAttrTypeParam::name

Имя типа атрибута.

Тип данных - строка.

Синтаксис Automation:

name = iLibraryAttrTypeParam.name	Получить свойство (*)
iLibraryAttrTypeParam.name = name	Установить свойство (*)
name = iLibraryAttrTypeParam.GetName()	Получить свойство (**)
iLibraryAttrTypeParam.SetName( name )	Установить свойство (**)


ksLibraryAttrTypeParam::typeId

Номер типа атрибута в библиотеке.

Тип данных - double.

Синтаксис Automation:

typeId = iLibraryAttrTypeParam.typeId	Получить свойство (*)
iLibraryAttrTypeParam.typeId = typeId	Установить свойство (*)
typeId = iLibraryAttrTypeParam.GetTypeId()	Получить свойство (**)
iLibraryAttrTypeParam.SetTypeId( typeId )	Установить свойство (**)


ksLibraryAttrTypeParam::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры.


Интерфейс ksTechnicalDemandParam
ksTechnicalDemandParam

Интерфейс параметров технических требований.

Аналог данных параметров при использовании API экспортных функций - TechnicalDemandParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksTechnicalDemandParam::props
ksTechnicalDemandParam
свойства

style

strCount


ksTechnicalDemandParam::methods
ksTechnicalDemandParam
методы

GetPGab

SetPGab

Init


ksTechnicalDemandParam::style

Стиль текста.

Тип данных - long.

Системные стили текста...

Синтаксис Automation:

style = iTechnicalDemandParam.style	Получить свойство (*)
iTechnicalDemandParam.style = style	Установить свойство (*)
style = iTechnicalDemandParam.GetStyle()	Получить свойство (**)
iTechnicalDemandParam.SetStyle( style )	Установить свойство (**)


ksTechnicalDemandParam::strCount

Количество строк в технических требованиях.

Тип данных - short.

Синтаксис Automation:

strCount = iTechnicalDemandParam.strCount	Получить свойство (*)
iTechnicalDemandParam.strCount = strCount	Установить свойство (*)
strCount = iTechnicalDemandParam.GetStrCount()	Получить свойство (**)
iTechnicalDemandParam.SetStrCount( strCount )	Установить свойство (**)


ksTechnicalDemandParam::GetPGab

Получить указатель на интерфейс динамического массива ksDynamicArray параметров габаритных прямоугольников типа RECT_ARR.

Синтаксис Automation:

LPDISPATCH GetPGab();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray параметров габаритных прямоугольников типа RECT_ARR.
Смотрите также

ksRectParam


ksTechnicalDemandParam::SetPGab

Установить динамический массив параметров ksDynamicArray габаритных прямоугольников типа RECT_ARR.

Синтаксис Automation:

BOOL SetPGab(LPDISPATCH pGab);

Входной параметр:

pGab	- указатель на интерфейс динамического массива ksDynamicArray параметров габаритных прямоугольников типа RECT_ARR.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksTechnicalDemandParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры технических требований.


Интерфейс ksTextItemFont
ksTextItemFont

Интерфейс параметров шрифта компоненты строки текста.

Аналог данных параметров при использовании API экспортных функций - TextItemFont.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksTextItemFont::props
ksTextItemFont
свойства

bitvector

color

fontName

height

ksu


ksTextItemFont::methods
ksTextItemFont
методы

GetBitVectorValue

SetBitVectorValue


ksTextItemFont::fontName

Имя шрифта.

Тип данных - строка.

Синтаксис Automation:

fontName = iTextItemFont.fontName	Получить свойство (*)
iTextItemFont.fontName = fontName	Установить свойство (*)
fontName = iTextItemFont.GetFontName()	Получить свойство (**)
iTextItemFont.SetFontName( fontName )	Установить свойство (**)


ksTextItemFont::height

Высота шрифта (в миллиметрах).

Тип данных - double.

Синтаксис Automation:

height = iTextItemFont.height	Получить свойство (*)
iTextItemFont.height = height	Установить свойство (*)
height = iTextItemFont.GetHeight()	Получить свойство (**)
iTextItemFont.SetHeight( height )	Установить свойство (**)


ksTextItemFont::ksu

Коэффициент сужения символов.

Тип данных - double.

Синтаксис Automation:

ksu = iTextItemFont.ksu	Получить свойство (*)
iTextItemFont.ksu = ksu	Установить свойство (*)
ksu = iTextItemFont.GetKsu()	Получить свойство (**)
iTextItemFont.SetKsu( ksu )	Установить свойство (**)


ksTextItemFont::color

Цвет символов.

Тип данных - double.

Синтаксис Automation:

color = iTextItemFont.color	Получить свойство (*)
iTextItemFont.color = color	Установить свойство (*)
color = iTextItemFont.GetColor()	Получить свойство (**)
iTextItemFont.SetColor( color )	Установить свойство (**)


ksTextItemFont::bitvector

Битовый вектор, определяющий начертание символов (наклон, толщину, подчеркивание, тип составной части - дробь, отклонение и т.д.)

Тип данных - long.

Синтаксис Automation:

bitvector = iTextItemFont.bitvector	Получить свойство (*)
iTextItemFont.bitvector = bitvector	Установить свойство (*)
bitvector = iTextItemFont.GetBitVector()	Получить свойство (**)
iTextItemFont.SetBitVector( bitvector )	Установить свойство (**)
Признаки начертания текста...


ksTextItemFont::GetBitVectorValue

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

Синтаксис Automation:

BOOL GetBitVectorValue (long bitVector);

Выходной параметр:

bitVector	- значение битового флага.
Признаки начертания текста...

Возвращаемое значение:

TRUE	- если флаги "взведены",
FALSE	- если флаги "сброшены".
Примечание:

В отличие от GetBitVector этот метод позволяет получить значение конкретного флага.


ksTextItemFont::SetBitVectorValue

"Взвести" или "сбросить" значение битового вектора.

Синтаксис Automation:

BOOL SetBitVectorValue (long bitVector, BOOL state);

Входные параметры:

bitVector	- значение битового вектора,
state	- состояние вектора: TRUE - включить,  FALSE - выключить.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

В отличие от SetBitVector этот метод позволяет установить значение конкретного флага.


ksTextItemFont::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечания:

1. Метод обнуляет все параметры шрифта компоненты строки текста.

2. Массивы не создаются.


Интерфейс ksType3
ksType3

Интерфейс параметров фантома-прямоугольника или фантома-отрезка c заданным углом.

Аналог данных параметров при использовании API экспортных функций - Type3.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода ksPhantom::GetPhantomParam.

Смотрите также

ksPhantom


ksType3::props
ksType3
свойства

angle

xBase, yBase


ksType3::methods
ksType3
методы

Init


ksType3::xBase,
ksType3::yBase

Координаты базовой точки.

Тип данных - double.

Синтаксис Automation:

xBase = iType3.xBase	Получить свойство (*)
iType3.xBase = xBase	Установить свойство (*)
xBase = iType3.GetXBase()	Получить свойство (**)
iType3.SetXBase (xBase)	Установить свойство (**)


ksType3::angle

Угол поворота.

Тип данных - double.

Синтаксис Automation:

angle = iType3.angle	Получить свойство (*)
iType3.angle = angle	Установить свойство (*)
angle = iType3.GetAngle()	Получить свойство (**)
iType3.SetAngle (angle)	Установить свойство (**)


ksType3::Init

Инициализировать параметры.

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры фантома.


Интерфейс ksAssociationViewParam
ksAssociationViewParam

Интерфейс параметров ассоциативного вида.

Аналог данного интерфейса при использовании API экспортных функций - AssociationViewParam.

Свойства...

Методы...


ksAssociationViewParam::props
ksAssociationViewParam
свойства

disassembly

fileName

hiddenLinesShow

hiddenLinesStyle

projBodies

projectionLink

projectionName

projSurfaces

projThreads

sameHatch

section

tangentEdgesShow

tangentEdgesStyle

visibleLinesStyle


ksAssociationViewParam::methods
ksAssociationViewParam
методы

GetHatchParam

GetViewParam

GetViewType

Init

SetDimensionLayoutScaling


ksAssociationViewParam::fileName
ksAssociationViewParam::fileName,
ksAssociationViewParam::fileName

Имя файла документа трехмерного объекта.

Тип данных - BSTR.

Синтаксис Automation:

fileName = iAssViewParam.fileName	Получить свойство (*)
iAssViewParam.fileName = fileName	Установить свойство (*)
fileName = iAssViewParam.GetFileName()	Получить свойство (**)
iAssViewParam.SetFileName(fileName)	Установить свойство (**)


ksAssociationViewParam::projectionName

Имя проекции (из списка проекций в документе-источнике).

Тип данных - BSTR.

Синтаксис Automation:

projectionName = iAssViewParam.projectionName	Получить свойство (*)
iAssViewParam.projectionName = projectionName	Установить свойство (*)
projectionName = iAssViewParam.GetProjectionName()	Получить свойство (**)
iAssViewParam. SetProjectionName(projectionName)	Установить свойство (**)


ksAssociationViewParam::projectionLink

Состояние проекционной связи.

Тип данных - BOOL.

Значения свойства:

TRUE	- включена,
FALSE	- выключена.
Синтаксис Automation:

projectionLink = iAssViewParam.projectionLink	Получить свойство (*)
iAssViewParam.projectionLink = projectionLink	Установить свойство (*)
projectionLink = iAssViewParam.GetProjectionLink()	Получить свойство (**)
iAssViewParam. SetProjectionLink(projectionLink)	Установить свойство (**)


ksAssociationViewParam::disassembly

Разнесение объекта.

Тип данных - BOOL.

Значения свойства:

TRUE	- включено,
FALSE	- выключено.
Синтаксис Automation:

disassembly = iAssViewParam.disassembly	Получить свойство (*)
iAssViewParam.disassembly = disassembly	Установить свойство (*)
disassembly = iAssViewParam.GetDisassembly()	Получить свойство (**)
iAssViewParam. SetDisassembly(disassembly)	Установить свойство (**)


ksAssociationViewParam::visibleLinesStyle

Номер стиля отрисовки видимых ребер и очерков.

Тип данных - long.

Значения свойства:

номер стиля
0	- умолчательный стиль.
Синтаксис Automation:

hiddenLinesStyle = iAssViewParam.hiddenLinesStyle	Получить свойство (*)
iAssViewParam.hiddenLinesStyle = hiddenLinesStyle	Установить свойство (*)
hiddenLinesStyle = iAssViewParam.GetHiddenLinesStyle()	Получить свойство (**)
iAssViewParam. SetHiddenLinesStyle(hiddenLinesStyle)	Установить свойство (**)


ksAssociationViewParam::hiddenLinesStyle

Номер стиля отрисовки невидимых линий.

Тип данных - long.

Значения свойства:

номер стиля
0	- умолчательный стиль.
Синтаксис Automation:

visibleLinesStyle = iAssViewParam.visibleLinesStyle	Получить свойство (*)
iAssViewParam.visibleLinesStyle = visibleLinesStyle	Установить свойство (*)
visibleLinesStyle = iAssViewParam.GetVisibleLinesStyle()	Получить свойство (**)
iAssViewParam. SetVisibleLinesStyle(visibleLinesStyle)	Установить свойство (**)


ksAssociationViewParam::tangentEdgesStyle

Номер стиля отрисовки видимых линий перехода.

Тип данных - long.

Значения свойства:

номер стиля
0	- умолчательный стиль.
Синтаксис Automation:

tangentEdgesStyle = iAssViewParam.tangentEdgesStyle	Получить свойство (*)
iAssViewParam.tangentEdgesStyle = tangentEdgesStyle	Установить свойство (*)
tangentEdgesStyle = iAssViewParam.GetTangentEdgesStyle()	Получить свойство (**)
iAssViewParam. SetTangentEdgesStyle(tangentEdgesStyle)	Установить свойство (**)


ksAssociationViewParam::hiddenLinesShow

Признак отрисовки невидимых линий.

Тип данных - BOOL.

Значения свойства:

TRUE	- отрисовка включена
FALSE	- отрисовка выключена.
Синтаксис Automation:

hiddenLinesShow = iAssViewParam.hiddenLinesShow	Получить свойство (*)
iAssViewParam.hiddenLinesShow = hiddenLinesShow	Установить свойство (*)
hiddenLinesShow = iAssViewParam.GetHiddenLinesShow()	Получить свойство (**)
iAssViewParam. SetHiddenLinesShow(hiddenLinesShow)	Установить свойство (**)


ksAssociationViewParam::tangentEdgesShow

Признак отрисовки видимых линий перехода.

Тип данных - BOOL.

Значения свойства:

TRUE	- отрисовка включена
FALSE	- отрисовка выключена.
Синтаксис Automation:

tangentEdgesShow = iAssViewParam.tangentEdgesShow	Получить свойство (*)
iAssViewParam.tangentEdgesShow = tangentEdgesShow	Установить свойство (*)
tangentEdgesShow = iAssViewParam.GetTangentEdgesShow()	Получить свойство (**)
iAssViewParam. SetTangentEdgesShow(tangentEdgesShow)	Установить свойство (**)


ksAssociationViewParam::projBodies

Проецировать ли тела.

Тип данных - BOOL.

Значения свойства:

TRUE	- проецирование включено
FALSE	- проецирование выключено.
Синтаксис Automation:

projBodies = iAssViewParam.projBodies	Получить свойство (*)
iAssViewParam.projBodies = projBodies	Установить свойство (*)
projBodies = iAssViewParam.GetProjBodies()	Получить свойство (**)
iAssViewParam. SetProjBodies(projBodies)	Установить свойство (**)


ksAssociationViewParam::projSurfaces

Проецировать ли поверхности.

Тип данных - BOOL.

Значения свойства:

TRUE	- проецирование включено
FALSE	- проецирование выключено.
Синтаксис Automation:

projSurfaces = iAssViewParam.projSurfaces	Получить свойство (*)
iAssViewParam.projSurfaces = projSurfaces	Установить свойство (*)
projSurfaces = iAssViewParam.GetProjSurfaces()	Получить свойство (**)
iAssViewParam. SetProjSurfaces(projSurfaces)	Установить свойство (**)


ksAssociationViewParam::projThreads

Проецировать ли резьбы.

Тип данных - BOOL.

Значения свойства:

TRUE	- проецирование включено
FALSE	- проецирование выключено.
Синтаксис Automation:

projThreads = iAssViewParam.projThreads	Получить свойство (*)
iAssViewParam.projThreads = projThreads	Установить свойство (*)
projThreads = iAssViewParam.GetProjThreads()	Получить свойство (**)
iAssViewParam. SetProjThreads(projThreads)	Установить свойство (**)


ksAssociationViewParam::section

Признак разрез/сечение.

Тип данных - BOOL.

Значения свойства:

TRUE	- сечение
FALSE	- разрез.
Синтаксис Automation:

section = iAssViewParam.section	Получить свойство (*)
iAssViewParam.section = section	Установить свойство (*)
section = iAssViewParam.GetSection()	Получить свойство (**)
iAssViewParam.SetSection(section)	Установить свойство (**)
Примечание:

Свойство используется только для видов типа разрез или сечение.


ksAssociationViewParam::sameHatch

Признак одинаковой штриховки всех деталей сборки.

Тип данных - BOOL.

Значения свойства:

TRUE	- штриховка одинаковая
FALSE	- штриховка разная.
Синтаксис Automation:

sameHatch = iAssViewParam.sameHatch	Получить свойство (*)
iAssViewParam.sameHatch = sameHatch	Установить свойство (*)
iAssViewParam.GetSameHatch()	Получить свойство (**)
iAssViewParam. SetSameHatch(sameHatch)	Установить свойство (**)
Примечание:

Свойство используется только для видов типа разрез или сечение.


ksAssociationViewParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


ksAssociationViewParam::GetViewParam

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

Синтаксис Automation:

LPDISPATCH GetViewParam();

Возвращаемое значение:

	Указатель на интерфейс ksViewParam.
Примечание:

Свойство используется только для видов типа разрез или сечение.


ksAssociationViewParam::GetViewType

Получить тип вида.

Синтаксис Automation:

LPDISPATCH GetViewType();

Возвращаемое значение:

	Тип вида LtViewType.
Примечание:

Свойство используется только для видов типа разрез или сечение.


ksAssociationViewParam::GetHatchParam

Получить указатель на интерфейс параметров штриховки.

Синтаксис Automation:

LPDISPATCH GetHatchParam();

Возвращаемое значение:

	Указатель на интерфейс ksHatchParam.
Примечание:

Свойство используется только для видов типа разрез или сечение.


ksAssociationViewParam::SetDimensionLayoutScaling

Установить признак масштабирования аннотационных объектов вида.

Синтаксис Automation:

BOOL SetDimensionLayoutScaling(BOOL scaling);

Входной параметр:

scaling	TRUE	- масштабировать аннотационные объекты вида,
	FALSE	- не масштабировать объекты.
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.
Примечание:

1. Используется только для изменения параметров вида ksDocument2D::ksSetObjParam.

2. Используется для всех видов, в том числе и для обычного (неассоциативного) вида.


Интерфейс ksAxisLineParam
ksAxisLineParam

Интерфейс параметров осевой линии.

Аналог данных параметров при использовании API экспортных функций - AxisLineParam.

Методы...


ksAxisLineParam::methods
ksAxisLineParam
методы

Init

GetBegPoint

GetEndPoint


ksAxisLineParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.


ksAxisLineParam::GetBegPoint

Получить указатель на интерфейс параметров начальной точки.

Синтаксис Automation:

LPDISPATCH GetBegPoint();

Возвращаемое значение:

	указатель на интерфейс ksMathPointParam.


ksAxisLineParam::GetEndPoint

Получить указатель на интерфейс параметров начальной точки.

Синтаксис Automation:

LPDISPATCH GetEndPoint();

Возвращаемое значение:

	указатель на интерфейс ksMathPointParam.


Интерфейс ksTextDocumentParam
ksTextDocumentParam

Интерфейс параметров текстового документа.

Аналог данных параметров при использовании API экспортных функций - TextDocumentParam.

Свойства...

Методы...


ksTextDocumentParam::props
ksTextDocumentParam
свойства

author

comment

fileName

regime

type


ksTextDocumentParam::methods
ksTextDocumentParam
методы

GetArrTailSheet

GetArrTitleSheet

GetEvenSheet

GetFirstSheet

GetOddSheet

GetSheetParam

Init


ksTextDocumentParam::fileName

Полный путь к файлу с растровым изображением.

Тип данных - BSTR.

Синтаксис Automation:

fileName = iTextDocumentParam.fileName	Получить свойство (*)
iTextDocumentParam.fileName = fileName	Установить свойство (*)
fileName = iTextDocumentParam.GetFileName()	Получить свойство (**)
iTextDocumentParam.SetFileName( fileName )	Установить свойство (**)


ksTextDocumentParam::comment

Комментарий документа.

Тип данных - BSTR.

Синтаксис Automation:

comment = iTextDocumentParam.comment	Получить свойство (*)
iTextDocumentParam.comment = comment	Установить свойство (*)
comment = iTextDocumentParam.GetСomment()	Получить свойство (**)
iTextDocumentParam.SetСomment(comment)	Установить свойство (**)


ksTextDocumentParam::author

Имя автора документа.

Тип данных - BSTR.

Синтаксис Automation:

author = iTextDocumentParam.author	Получить свойство (*)
iTextDocumentParam.author = author	Установить свойство (*)
author = iTextDocumentParam.GetAuthor()	Получить свойство (**)
iTextDocumentParam.SetAuthor(author)	Установить свойство (**)


ksTextDocumentParam::type

Тип документа.

Тип данных - short.

Синтаксис Automation:

type = iTextDocumentParam.type	Получить свойство (*)
iTextDocumentParam.type = type	Установить свойство (*)
type = iTextDocumentParam.GetType()	Получить свойство (**)
iTextDocumentParam.SetType(type)	Установить свойство (**)


ksTextDocumentParam::regime

Режим редактирования документа.

Тип данных - short.

Синтаксис Automation:

regime = iTextDocumentParam.regime	Получить свойство (*)
iTextDocumentParam.regime = regime	Установить свойство (*)
regime = iTextDocumentParam.GetRegime()	Получить свойство (**)
iTextDocumentParam.SetRegime(regime)	Установить свойство (**)


ksTextDocumentParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksTextDocumentParam::GetFirstSheet

Получить указатель на интерфейс оформления первого листа (имя библиотеки стилей, номер стиля в библиотеке).

Синтаксис Automation:

LPDISPATCH GetFirstSheet();

Возвращаемое значение:

	- указатель на интерфейс ksLibraryStyleParam.


ksTextDocumentParam::GetEvenSheet

Получить указатель на интерфейс оформления четных листов (имя библиотеки стилей, номер стиля в библиотеке).

Синтаксис Automation:

LPDISPATCH GetEvenSheet();

Возвращаемое значение:

	- указатель на интерфейс ksLibraryStyleParam.


ksTextDocumentParam::GetOddSheet

Получить указатель на интерфейс оформления нечетных листов (имя библиотеки стилей, номер стиля в библиотеке).

Синтаксис Automation:

LPDISPATCH GetOddSheet();

Возвращаемое значение:

	- указатель на интерфейс ksLibraryStyleParam.


ksTextDocumentParam::GetArrTitleSheet

Получить указатель на интерфейс массива оформлений титульных листов.

Синтаксис Automation:

LPDISPATCH GetArrTitleSheet();

Возвращаемое значение:

	- указатель на интерфейс ksDynamicArray. Тип массива - LIBRARY_STYLE_ARR


ksTextDocumentParam::GetArrTailSheet

Получить указатель на интерфейс массива оформлений листов заключительной части.

Синтаксис Automation:

LPDISPATCH GetArrTailSheet();

Возвращаемое значение:

	- указатель на интерфейс ksDynamicArray. Тип массива - LIBRARY_STYLE_ARR


ksTextDocumentParam::GetSheetParam

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

Синтаксис Automation:

GetSheetParam()

Возвращаемое значение:

	- Возвращаемое значение: указатель на интерфейс ksSheetSize параметров пользовательского или ksStandartSheet стандартного листа


Интерфейс ksRemoteElementParam
ksRemoteElementParam

Интерфейс параметров объекта "выносной элемент".

Аналог данных параметров при использовании API экспортных функций - RemoteElementParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.


ksRemoteElementParam::props
ksRemoteElementParam
свойства

height

radius

shelfDir

shelfX

shelfY

signType

smooth

style

width

x

y


ksRemoteElementParam::methods
ksRemoteElementParam
методы

GetPText

Init

SetPText


ksRemoteElementParam::style

Стиль текста.

Тип данных - long.

Синтаксис Automation:

style = iRemoteElementParam.style	Получить свойство (*)
iRemoteElementParam.style = style	Установить свойство (*)
style = iRemoteElementParam.GetStyle()	Получить свойство (**)
iRemoteElementParam.SetStyle( style )	Установить свойство (**)
Примечание:

Если style == INDICATIN_TEXT_LINE_ARR, создается динамический массив строк текста TEXT_LINE_ARR, структура которого описана в StructTextLineParam. В противном случае создается динамический массив указателей на строки символов CHAR_STR_ARR.


ksRemoteElementParam::signType

Тип значка из LtRemoteElmSignType.

Тип данных - long.

Синтаксис Automation:

signType = iRemoteElementParam.signType	Получить свойство (*)
iRemoteElementParam.signType = signType	Установить свойство (*)
signType = iRemoteElementParam.GetSignType()	Получить свойство (**)
iRemoteElementParam.SetSignType(signType)	Установить свойство (**)


ksRemoteElementParam::x

Координата х центра выносного элемента.

Тип данных - double.

Синтаксис Automation:

x = iRemoteElementParam.x	Получить свойство (*)
iRemoteElementParam.x = x	Установить свойство (*)
x = iRemoteElementParam.GetX()	Получить свойство (**)
iRemoteElementParam.SetX(x)	Установить свойство (**)


ksRemoteElementParam::y

Координата y центра выносного элемента.

Тип данных - double.

Синтаксис Automation:

y = iRemoteElementParam.y	Получить свойство (*)
iRemoteElementParam.y = y	Установить свойство (*)
y = iRemoteElementParam.GetY()	Получить свойство (**)
iRemoteElementParam.SetY(y)	Установить свойство (**)


ksRemoteElementParam::width

Ширина выносного элемента (для прямоугольника и скругленного прямоугольника).

Тип данных - double.

Синтаксис Automation:

width = iRemoteElementParam.width	Получить свойство (*)
iRemoteElementParam.width = width	Установить свойство (*)
width = iRemoteElementParam.GetWidth()	Получить свойство (**)
iRemoteElementParam.SetWidth(Width)	Установить свойство (**)


ksRemoteElementParam::height

Высота выносного элемента (для прямоугольника и скругленного прямоугольника).

Тип данных - double.

Синтаксис Automation:

height = iRemoteElementParam.height	Получить свойство (*)
iRemoteElementParam.height = height	Установить свойство (*)
height = iRemoteElementParam.GetHeight()	Получить свойство (**)
iRemoteElementParam.SetHeight(height)	Установить свойство (**)


ksRemoteElementParam::radius

Радиус окружности (для окружности).

Тип данных - double.

Синтаксис Automation:

radius = iRemoteElementParam.radius	Получить свойство (*)
iRemoteElementParam.radius = radius	Установить свойство (*)
radius = iRemoteElementParam.GetRadius()	Получить свойство (**)
iRemoteElementParam.SetRadius(radius)	Установить свойство (**)


ksRemoteElementParam::smooth

Радиус скругления(для прямоугольника).

Тип данных - double.

Синтаксис Automation:

iRemoteElementParam.smooth	Получить свойство (*)
iRemoteElementParam.smooth = smooth	Установить свойство (*)
smooth = iRemoteElementParam.GetSmooth()	Получить свойство (**)
iRemoteElementParam.SetSmooth(smooth)	Установить свойство (**)


ksRemoteElementParam::shelfX

Координата x начала полки.

Тип данных - double.

Синтаксис Automation:

shelfX = iRemoteElementParam.shelfX	Получить свойство (*)
iRemoteElementParam.shelfX = shelfX	Установить свойство (*)
shelfX = iRemoteElementParam.GetShelfX()	Получить свойство (**)
iRemoteElementParam.SetShelfX(shelfX)	Установить свойство (**)


ksRemoteElementParam::shelfY

Координата y начала полки.

Тип данных - double.

Синтаксис Automation:

shelfY = iRemoteElementParam.shelfY	Получить свойство (*)
iRemoteElementParam.shelfY = shelfY	Установить свойство (*)
shelfY = iRemoteElementParam.GetShelfY()	Получить свойство (**)
iRemoteElementParam.SetShelfY(shelfY)	Установить свойство (**)


ksRemoteElementParam::shelfDir

Направление полки.

Тип данных - short.

Значения свойства:

1	- вправо
-1	- влево
2	- вверх
3	- вниз
Синтаксис Automation:

shelfDir = iRemoteElementParam.shelfDir	Получить свойство (*)
iRemoteElementParam.shelfDir = shelfDir	Установить свойство (*)
shelfDir = iRemoteElementParam.GetShelfDir()	Получить свойство (**)
iRemoteElementParam.SetShelfDir(shelfDir)	Установить свойство (**)


ksRemoteElementParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init (long style);

Входной параметр:

(long) style	- стиль текста.
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.
Примечания:

1. Метод обнуляет поля структуры параметров RemoteElementParam, которую обслуживает.

2. Если style == INDICATIN_TEXT_LINE_ARR, то создается динамический массив строк текста TEXT_LINE_ARR. Его структура описывается TextLineParam.

3. Если style == 0, то создается динамический массив указателей на строки символов CHAR_STR_ARR.


ksRemoteElementParam::GetPText

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

Синтаксис Automation:

LPDISPATCH GetPText();

Возвращаемое значение:

	указатель на интерфейс динамического массива ksDynamicArray.
Примечания:

1. Если style == INDICATIN_TEXT_LINE_ARR, то тип динамического массива будет TEXT_LINE_ARR.

2. Если style == 0, то тип динамического массива будет CHAR_STR_ARR.


ksRemoteElementParam::SetPText

Установить динамический массив строк текста.

Синтаксис Automation:

BOOL SetPText (LPDISPATCH strArr)

Входной параметр:

strArr	- указатель на интерфейс динамического массива ksDynamicArray.
Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.
Примечания:

1. Если style == INDICATIN_TEXT_LINE_ARR, то тип динамического массива будет TEXT_LINE_ARR.

2. Если style == 0, то тип динамического массива будет CHAR_STR_ARR.


Интерфейс ksCopyObjectParam
ksCopyObjectParam

Интерфейс параметров копирования объекта графического документа.

Аналог данных параметров при использовании API экспортных функций - CopyObjectParam.

Свойства...

Методы...


ksCopyObjectParam::props
ksCopyObjectParam
свойства

angle

attrCopy

dimLineScale

objRef

scale

xNew, yNew

xOld, yOld


ksCopyObjectParam::methods
ksCopyObjectParam
методы

Init


ksCopyObjectParam::objRef

Указатель на копируемый объект, группу, вид, слой.

Тип данных - long.

Синтаксис Automation:

objRef = iCopyObjParam.objRef	Получить свойство (*)
iCopyObjParam.objRef = objRef	Установить свойство (*)
objRef = iCopyObjParam.GetObjRef()	Получить свойство (**)
iCopyObjParam.SetObjRef(objRef)	Установить свойство (**)


ksCopyObjectParam::xOld, yOld

Координата базовой точки копируемого объекта.

Тип данных - double.

Синтаксис Automation:

xOld = iCopyObjParam.xOld	Получить свойство (*)
iCopyObjParam.xOld = xOld	Установить свойство (*)
xOld = iCopyObjParam.GetXOld()	Получить свойство (**)
iCopyObjParam.SetXOld(xOld)	Установить свойство (**)
Примечание:

Значения xOld и yOld задаются в системе координат текущего вида.


ksCopyObjectParam::xNew, yNew

Координаты точки вставки.

Тип данных - double.

Синтаксис Automation:

xNew = iCopyObjParam.xNew	Получить свойство (*)
iCopyObjParam.xNew = xNew	Установить свойство (*)
xNew = iCopyObjParam.GetXNew()	Получить свойство (**)
iCopyObjParam.SetXNew(xNew)	Установить свойство (**)
Примечание:

Значения xNew и yNew задаются в системе координат текущего вида.


ksCopyObjectParam::scale

Масштаб.

Тип данных - double.

Синтаксис Automation:

scale = iCopyObjParam.scale	Получить свойство (*)
iCopyObjParam.scale = scale	Установить свойство (*)
scale = iCopyObjParam.GetScale()	Получить свойство (**)
iCopyObjParam.SetScale(scale)	Установить свойство (**)


ksCopyObjectParam::angle

 Угол поворота в градусах.

Тип данных - double.

Синтаксис Automation:

angle = iCopyObjParam.angle	Получить свойство (*)
iCopyObjParam.angle = angle	Установить свойство (*)
angle = iCopyObjParam.GetAngle()	Получить свойство (**)
iCopyObjParam.SetAngle(angle)	Установить свойство (**)


ksCopyObjectParam::attrCopy

Признак копирования атрибутов.

Тип данных - BOOL.

Значения свойства:

TRUE	- копировать атрибуты.
FALSE	- не копировать атрибуты
Синтаксис Automation:

attrCopy = iCopyObjParam.attrCopy	Получить свойство (*)
iCopyObjParam.attrCopy = attrCopy	Установить свойство (*)
attrCopy = iCopyObjParam.GetAttrCopy()	Получить свойство (**)
iCopyObjParam.SetAttrCopy(attrCopy)	Установить свойство (**)


ksCopyObjectParam::dimLineScale

Признак масштабирования выносных линий.

Тип данных - BOOL.

Значения свойства:

TRUE	- выносные линии масштабировать,
FALSE	- выносные линии не масштабировать,
Синтаксис Automation:

dimLineScale = iCopyObjParam.dimLineScale	Получить свойство (*)
iCopyObjParam.dimLineScale = dimLineScale	Установить свойство (*)
dimLineScale = iCopyObjParam.GetDimLineScale()	Получить свойство (**)
iCopyObjParam.SetDimLineScale(dimLineScale)	Установить свойство (**)


ksCopyObjectParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры вида.


Интерфейс ksDocumentTxt
ksDocumentTxt

Интерфейс текстового документа.

ksDocumentTxt	- интерфейс Automation
Свойства...

Методы...

События...


ksDocumentTxt::props
ksDocumentTxt
свойства

reference


ksDocumentTxt::methods
ksDocumentTxt
методы

GetStamp

ksCloseDocument

ksCreateDocument

ksGetObjParam

ksGetTxtDocumentPagesCount

ksOpenDocument

ksSaveDocument

ksSetObjParam

RasterFormatParam

SaveAsToRasterFormat

SaveAsToUncompressedRasterFormat


ksDocumentTxt::reference

Указатель на текстовый документ системы КОМПАС.

Тип данных - long.

Синтаксис Automation:

ref = iDocumentTXT.reference	Получить свойство (*)
iDocumentTXT.reference = ref	Установить свойство (*)
ref = iDocumentTXT.GetReference()	Получить свойство (**)
iDocumentTXT.SetReference(ref)	Установить свойство (**)


ksDocumentTxt::GetTxtDocumentPagesCount

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

Аналог данного метода при использовании API экспортных функций - ksGetTxtDocumentPagesCount.

Синтаксис Automation:

long ksGetTxtDocumentPagesCount();

Возвращаемое значение:

Количество листов


ksDocumentTxt::GetStamp

Получить указатель на интерфейс основной надписи.

LPDISPATCH GetStamp();

Возвращаемое значение:

	указатель на интерфейс основной надписи ksStamp.


ksDocumentTxt::ksCloseDocument

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

Аналог данного метода при использовании API экспортных функций - CloseDocument.

Синтаксис Automation:

BOOL ksCloseDocument();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksDocumentTxt::ksOpenDocument

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

Аналог данного метода при использовании API экспортных функций - OpenDocument.

Синтаксис Automation:

BOOL ksOpenDocument (BSTR nameDoc, BOOL regim);

Входные параметры:

nameDoc	имя документа
regim	режим работы с документом: 0 - видимый, 1 - невидимый ("слепой")
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	в случае неудачи.
Примечание:

1. Невидимый режим применяется при пакетном (скрытом) формировании документа.

2. Открытый документ автоматически становится текущим.


ksDocumentTxt::ksSaveDocument

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

Аналог данного метода при использовании API экспортных функций - SaveDocument.

Синтаксис Automation:

BOOL ksSaveDocument (BSTR fileName);

Входные параметры:

fileName	полное имя файла
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	в случае неудачи.


ksDocumentTxt::ksCreateDocument

Создать текстовый документ.

Аналог данного метода при использовании API экспортных функций - CreateTextDocument.

Синтаксис Automation:

BOOL ksCreateDocument (LPDISPATCH par);

Входные параметры:

par	указатель на интерфейс параметров текстового документа ksTextDocumentParam.
Возвращаемое значение:

TRUE	- в случае успешного завершения.
FALSE	- в случае неудачи.
Примечание:

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


ksDocumentTxt::SaveAsToRasterFormat
IDocumentTxt::SaveAsToRasterFormat

Сохранить документ в растровом формате.

Аналог данного метода при использовании API экспортных функций - ksSaveAsToRasterFormat.

Синтаксис Automation:

BOOL SaveAsToRasterFormat (BSTR fileName, LPDISPATCH rasterPar);

Синтаксис COM:

BOOL SaveAsToRasterFormat (LPOLESTR fileName,

LPRASTERFORMATPARAM rasterPar);

Входные параметры:

fileName	- полное имя файла документа,
rasterPar	- указатель на интерфейс ksRasterFormatParam или IRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	в случае неудачи.


ksDocumentTxt::RasterFormatParam
IDocumentTxt::RasterFormatParam

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

Синтаксис Automation:

LPDISPATCH RasterFormatParam();

Синтаксис COM:

LPRASTERFORMATPARAM RasterFormatParam();

Возвращаемое значение:

указатель на интерфейс ksRasterFormatParam	- в случае успеха,
NULL	- в случае неудачи.


ksDocumentTxt::SaveAsToUncompressedRasterFormat

Сохранить документ в растровый формат без сжатия.

Аналог данного метода при использовании API экспортных функций - ksSaveAsToUncompressedRasterFormat.

Синтаксис Automation:

BOOL SaveAsToUncompressedRasterFormat (BSTR fileName, LPDISPATCH rasterPar);

Входные параметры:

fileName	- полное имя файла документа,
rasterPar	Указатель на интерфейс ksRasterFormatParam или IRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksDocumentTxt::ksGetObjParam

Получить параметры объекта.

Аналог данного метода при использовании API экспортных функций - GetObjParam.

Синтаксис Automation:

long ksGetObjParam (long reference, LPDISPATCH param, long paramType);

Входные параметры:

reference	- указатель на интерфейс параметров.
paramType	- тип параметров объекта.
Выходные параметры:

param	- указатель на объект,
Типы объектов и интерфейсы...

Возвращаемое значение:

тип объекта	- в случае успеха,
0	- в случае неудачи
Примечания:

1. Параметр paramType может принимать значения ALLPARAM, SHEET_ALLPARAM, DOCUMENT_STATE.

2. Возвращаемым значением может быть TXT_DOCUMENT_OBJ.


ksDocumentTxt::ksSetObjParam

Установить параметры объекта.

Аналог данного метода при использовании API экспортных функций - SetObjParam.

Синтаксис Automation:

long ksSetObjParam (long reference, LPDISPATCH param, long paramType);

Входные параметры:

reference	- указатель на объект.
paramType	- тип параметров.
param	- указатель на интерфейс параметров ksUserParam.
Типы объектов и интерфейсы...

Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи
Примечания:

1. Параметр paramType может принимать значения ALLPARAM, SHEET_ALLPARAM, DOCUMENT_STATE.

2. Типом объекта может быть TXT_DOCUMENT_OBJ.


Интерфейс ksOverlapObjectOptions
ksOverlapObjectOptions

Интерфейс параметров перекрывающихся объектов.

ksOverlapObjectOptions	- интерфейс Automation
Аналог данных параметров при использовании API экспортных функций - OverlapObjectOptions.

Свойства...

Методы...


ksOverlapObjectOptions::props
ksOverlapObjectOptions
свойства

gap

overlap


ksOverlapObjectOptions::methods
ksOverlapObjectOptions
методы

Init


ksOverlapObjectOptions::overlap

Перекрытие объектов.

Тип данных - BOOL.

Синтаксис Automation:

overlap = iOverlapObjectOptions.overlap	Получить свойство (*)
iOverlapObjectOptions.overlap = overlap	Установить свойство (*)
overlap = iOverlapObjectOptions.GetOverlap()	Получить свойство (**)
iOverlapObjectOptions.SetOverlap(overlap)	Установить свойство (**)
Значения свойства:

TRUE	- перекрывать штриховки и линии при пересечении,
FALSE	- не перекрывать.


ksOverlapObjectOptions::gap

Зазор при перекрывании объектов.

Тип данных - double.

Синтаксис Automation:

gap = iOverlapObjectOptions.gap	Получить свойство (*)
iOverlapObjectOptions.gap = gap	Установить свойство (*)
gap = iOverlapObjectOptions.GetGap()	Получить свойство (**)
iOverlapObjectOptions.SetGap(gap)	Установить свойство (**)


ksOverlapObjectOptions::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры вспомогательной линии


Интерфейс ksViewColorParam
ksViewColorParam

Интерфейс параметров цвета фона.

ksViewColorParam	- интерфейс Automation
Аналог данных параметров при использовании API экспортных функций - ViewColorParam.

Свойства...

Методы...


ksViewColorParam::props
ksViewColorParam
свойства

bottomColor

color

topColor

useGradient


ksViewColorParam::methods
ksViewColorParam
методы

Init


ksViewColorParam::color

Цвет фона.

Тип данных - long.

Синтаксис Automation:

color = iViewColorParam.color	Получить свойство (*)
iViewColorParam.color = color	Установить свойство (*)
color = iViewColorParam.GetСolor()	Получить свойство (**)
iViewColorParam.SetСolor(color)	Установить свойство (**)
Значения свойства:

Цвет фона
-1	- если используется цвет окна, установленный в Windows.


ksViewColorParam::useGradient

Использовать градиентный переход при полутоновом отображении.

Тип данных - BOOL.

Синтаксис Automation:

useGradient = iViewColorParam.useGradient	Получить свойство (*)
iViewColorParam.useGradient = useGradient	Установить свойство (*)
useGradient = iViewColorParam.GetUseGradient()	Получить свойство (**)
iViewColorParam.SetUseGradient(useGradient)	Установить свойство (**)
Значения свойства:

TRUE	- использовать градиентный переход,
FALSE	- не использовать.
Примечание:

Свойство доступно только для документов-моделей.


ksViewColorParam::topColor

Цвет фона.

Тип данных - long.

Синтаксис Automation:

iViewColorParam.topColor	Получить свойство (*)
iViewColorParam.topColor = topColor	Установить свойство (*)
topColor = iViewColorParam.GetTopColor()	Получить свойство (**)
iViewColorParam.SetTopColor(topColor)	Установить свойство (**)
Примечание:

Свойство доступно только для документов-моделей.


ksViewColorParam::bottomColor

Цвет фона.

Тип данных - long.

Синтаксис Automation:

bottomColor = iViewColorParam.bottomColor	Получить свойство (*)
iViewColorParam.bottomColor = bottomColor	Установить свойство (*)
bottomColor = iViewColorParam.GetBottomColor()	Получить свойство (**)
iViewColorParam.SetBottomColor(bottomColor)	Установить свойство (**)
Примечание:

Свойство доступно только для документов-моделей.


ksViewColorParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


Интерфейсы ksChooseMng, IChooseMng
ksChooseMng,
IChooseMng

Интерфейс менеджера выбора (подсветки) объектов.

ksChooseMng	- интерфейс Automation
IChooseMng	- интерфейс COM
Методы...


ksChooseMng::methods
ksChooseMng
методы

Choose

First

GetCount

GetObjectByIndex

GetObjectType

IsChoosen

Last

Next

Prev

UnChooseAll

UnChoose


ksChooseMng::Choose
IChooseMng::Choose

Выбрать (подсветить) объект.

Синтаксис Automation:

BOOL Choose (LPDISPATCH obj)

Синтаксис COM:

BOOL Choose (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksChooseMng::UnChoose
IChooseMng::UnChoose

Снять выбор (подсветку) с объекта.

Синтаксис Automation:

BOOL UnChoose (LPDISPATCH obj);

Синтаксис COM:

BOOL UnChoose (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksChooseMng::UnChooseAll
IChooseMng::UnChooseAll

Снять выбор (подсветку) со всех подсвеченных объектов.

Синтаксис Automation:

BOOL UnChooseAll();

Синтаксис COM:

BOOL UnChooseAll();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksChooseMng::IsChoosen
IChooseMng::IsChoosen

Получить признак подсвеченности (выбора) объекта.

Синтаксис Automation:

BOOL IsChoosen (LPDISPATCH obj);

Синтаксис COM:

BOOL IsChoosen (LPUNKNOWN obj);

Входной параметр:

obj	- указатель на интерфейс IDispatch или IUnknown.
Возвращаемое значение:

TRUE	- объект подсвечен,
FALSE	- объект не подсвечен.


ksChooseMng::GetCount
IChooseMng::GetCount

Получить количество выбранных (подсвеченных) объектов.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

int GetCount();

Возвращаемое значение:

	Количество выбранных (подсвеченных) объектов.


ksChooseMng::First
IChooseMng::First

Получить указатель на интерфейс первого выбранного (подсвеченного) объекта.

Синтаксис Automation:

LPDISPATCH First();

Синтаксис COM:

LPUNKNOWN First();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksChooseMng::Last
IChooseMng::Last

Получить указатель на интерфейс последнего выбранного (подсвеченного) объекта.

Синтаксис Automation:

LPDISPATCH Last();

Синтаксис COM:

LPUNKNOWN Last();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksChooseMng::Next
IChooseMng::Next

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

Синтаксис Automation:

LPDISPATCH Next();

Синтаксис COM:

LPUNKNOWN Next();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksChooseMng::Prev
IChooseMng::Prev

Получить указатель на интерфейс предыдущего выбранного (подсвеченного) объекта.

Синтаксис Automation:

LPDISPATCH Prev();

Синтаксис COM:

LPUNKNOWN Prev();

Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksChooseMng::GetObjectByIndex
IChooseMng::GetObjectByIndex

Получить указатель на интерфейс выделенного (подсвеченного) объекта по индексу.

Синтаксис Automation:

LPDISPATCH GetObjectByIndex (long index);

Синтаксис COM:

LPDISPATCH GetObjectByIndex (long index);

Входной параметр:

index	- индекс выделенного (подсвеченного) объекта.
Возвращаемое значение:

	- указатель на интерфейс IDispatch или IUnknown.


ksChooseMng::GetObjectType
IChooseMng::GetObjectType

Получить тип выделенного (подсвеченного) объекта по индексу.

Синтаксис Automation:

long GetObjectType (long index);

Синтаксис COM:

int GetObjectType (int index);

Входной параметр:

index	- индекс выделенного (подсвеченного) объекта.
Возвращаемое значение:

	- тип выделенного (подсвеченного) объекта Obj3dType.


Интерфейс ksTextItemParam
ksTextItemParam

Интерфейс параметров компоненты строки текста.

Аналог данных параметров при использовании API экспортных функций - TextItemParam.

Свойства...

Методы...

Примечание:

Указатель на интерфейс можно получить при помощи метода KompasObject::GetParamStruct.

Смотрите также

KompasObject


ksTextItemParam::props
ksTextItemParam
свойства

iSNumb

s

type


ksTextItemParam::methods
ksTextItemParam
методы

GetItemFont

Init

SetItemFont


ksTextItemParam::type

Тип символа.

Тип данных - long.

Синтаксис Automation:

type = iTextItemParam.type	Получить свойство (*)
iTextItemParam.type = type	Установить свойство (*)
type = iTextItemParam.GetType()	Получить свойство (**)
iTextItemParam.SetType(type)	Установить свойство (**)


ksTextItemParam::s

Массив символов для компоненты текста.

Тип данных - BSTR.

Синтаксис Automation:

s = iTextItemParam.s	Получить свойство (*)
iTextItemParam.s = s	Установить свойство (*)
s = iTextItemParam.GetS()	Получить свойство (**)
iTextItemParam.SetS(s)	Установить свойство (**)


ksTextItemParam::iSNumb

Номер спецсимвола, символа из произвольного шрифта или тип отрисовки дроби или выражения типа суммы или 0.

Тип данных - long.

Синтаксис Automation:

iSNumb = iTextItemParam.iSNumb	Получить свойство (*)
iTextItemParam.iSNumb = iSNumb	Установить свойство (*)
iSNumb = iTextItemParam.GetISNumb()	Получить свойство (**)
iTextItemParam.SetISNumb(iSNumb)	Установить свойство (**)


ksTextItemParam::GetItemFont

Получить указатель на интерфейс свойств шрифта компоненты строки текста.

Синтаксис Automation:

LPDISPATCH GetItemFont();

Возвращаемое значение:

	указатель на интерфейс ksTextItemFont.


ksTextItemParam::SetItemFont

Установить указатель на интерфейс свойств шрифта компоненты строки текста.

Синтаксис Automation:

BOOL SetItemFont(LPDISPATCH font);

Входной параметр:

font	- указатель на интерфейс свойств шрифта компоненты строки текста ksTextItemFont.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


ksTextItemParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения.
Примечание:

Метод обнуляет все параметры компоненты строки текста.


Интерфейс ksTreeNodeParam
ksTreeNodeParam

Интерфейс параметров узла дерева библиотеки документов, библиотеки атрибутов.

Аналог данных параметров при использовании API экспортных функций - ksTreeNodeParam.

Методы...


ksTreeNodeParam::methods
ksTreeNodeParam
методы

GetComment

GetName

GetNodes

GetType

Init


ksTreeNodeParam::Init

Инициализировать параметры.

Синтаксис Automation:

BOOL Init();

Возвращаемое значение:

TRUE	- в случае удачного завершения,
FALSE	- в случае неудачи.


ksTreeNodeParam::GetType

Получить тип узла: корень, папка, файл..

Синтаксис Automation:

long GetType();

Возвращаемое значение:

	тип узла: корень, директория, файл из LtNodeType


ksTreeNodeParam::GetName

Получить имя узла.

Синтаксис Automation:

BSTR GetName();

Возвращаемое значение:

	имя узла.


ksTreeNodeParam::GetComment

Получить указатель на интерфейс массива строк комментария.

Синтаксис Automation:

LPDISPATCH GetComment();

Возвращаемое значение:

	указатель на интерфейс ksDynamicArray массива строк комментария; тип массива - CHAR_STR_ARR.


ksTreeNodeParam::GetNodes

Получить указатель на интерфейс /*ksDynamicArray*/ массива дочерних узлов.

Синтаксис Automation:

LPDISPATCH GetNodes();

Возвращаемое значение:

	указатель на интерфейс ksDynamicArray массива дочерних узлов; тип массива - TREENODEPARAM_ARR.


Функции оформления библиотек
Функции оформления библиотек типа DLL	Пример

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

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

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

Если ни одна из этих функций не определена, то считается, что библиотека без имени и может выполнять только одну команду.


Пример создания библиотеки
Пример простейшей программы в среде 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 является точкой входа в библиотеку при вызове из КОМПАС. Наличие этой функции обязательно, так как именно ей передает управление КОМПАС при обращении к библиотеке. В данном случае она обеспечивает выдачу сообщения и построение одного единственного объекта чертежа - отрезка.


Функции

LibInterfaceNotifyEntry

LibIsOnApplication7

LIBRARYBMPSIZE

LIBRARYENTRYDEMOEX

LIBRARYENTRYDEMO

LIBRARYENTRY

LIBRARYHELPFILE

LIBRARYID

LIBRARYNAME

LibToolBarId


LIBRARYNAME - Определение имени библиотеки
LIBRARYNAME 	Пример

Задать имя БИБЛИОТЕКИ.

Синтаксис:

extern "C" char * far_export pascal LIBRARYNAME()

Примечание:

После подключения библиотеки ее имя будет отражено в соответствующем меню графического редактора.


LibIsOnApplication7 - Задать тип версии API, используемого библиотекой
LibIsOnApplication7

Задать тип версии API, используемого библиотекой.

Синтаксис для C/C++:

extern "C" int WINAPI __export LibIsOnApplication7();

Синтаксис для для PASCAL:

function LibIsOnApplication7() : Integer; stdcall;

Возвращаемое значение:

1	- библиотека использует API версии 7,
0	- библиотека использует API версии 5
Примечание:

Необязательный метод оформления библиотеки. Позволяет задать тип интерфейса, который будет

передан библиотеке в параметре application метода LibInterfaceNotifyEntry.
Если метод в библиотеке не объявлен, то считается что библиотека использует API версии 5.


LIBRARYENTRY- Головная функция библиотеки
LIBRARYENTRY	Пример

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

Синтаксис:

extern "C" void far_export pascal LIBRARYENTRY(UINT Comm)

Входной параметр:

Сomm	- идентификатор выбранной команды.
Примечание:

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

2. Библиотека должна обязательно содержать предопределенную функцию LIBRARYENTRY, которая определяет точку входа в приложение или LibInterfaceNotifyEntry. При обращении к библиотеке именно ей передается управление. Кроме того, ее наличие позволяет системе КОМПАС идентифицировать произвольный DLL-файл как собственное приложение.


LibInterfaceNotifyEntry - Головная функция библиотеки Подписка на обработку событий от системы
LibInterfaceNotifyEntry

Головная функция библиотеки. Подписка на обработку событий от системы.

Синтаксис:

int LibInterfaceNotifyEntry (IDispatch *application);

Входной параметр:

application	- указатель интерфейса приложения KompasObject (для COM не используется).
Возвращаемое значение:

1	- в случае успешного завершения (подписка прошла успешно),
0	- в случае неудачи.
Примечание:

Библиотека должна обязательно содержать предопределенную функцию LibraryEntry, которая определяет точку входа в приложение или LibInterfaceNotifyEntry. При обращении к библиотеке именно ей передается управление. Кроме того, ее наличие позволяет системе КОМПАС идентифицировать произвольный DLL-файл как собственное приложение.


LIBRARYENTRYDEMO - головная функция библиотеки (демо режим)
LIBRARYENTRYDEMO 	Пример

Головная функция библиотеки (демонстрационный режим).

Синтаксис:

extern "C" void far _export pascal LIBRARYENTRYDEMO (UINT Comm)

Входной параметр:

сomm	- идентификатор выбранной команды.
Описание:

Если задан демонстрационный режим работы (демоверсии КОМПАС), эта функция (если она найдена в библиотеке), будет вызываться вместо функции LIBRARYENTRY.


LIBRARYENTRYDEMOEX - головная функция библиотеки (демо режим)
LIBRARYENTRYDEMOEX 	Пример

Головная функция библиотеки (демонстрационный режим).

Синтаксис:

extern "C" void far _export pascal LIBRARYENTRYDEMOEX (UINT comm)

Входной параметр:

сomm	- идентификатор выбранной команды.
Описание:

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


LIBRARYID - Задание идентификатора ресурсов
LIBRARYID 	Пример

Задать идентификатор ресурсов.

Синтаксис:

extern "C" unsigned int far __export pascal LIBRARYID();

Примечание:

Функция возвращает идентификатор, по которому система может считать четыре разных типа ресурсов:

 - меню с описанными операциями, которые может выполнить библиотека;

 - размеры растровового слайда;

 - имя библиотеки;

 - имя иконки для минимизированного окна библиотеки.


LIBRARYBMPSIZE - задание размера окна вывода слайда
LIBRARYBMPSIZE 	Пример

Задать размер окна вывода растрового слайда

Синтаксис:

long far __export pascal LIBRARYBMPSIZE(void)	//для VISUAL C++
extern "C" long far __export pascal LIBRARYBMPSIZE(void)	//для BORLAND C++
function LIBRARYHELPFILE : LongInt; Pascal;	//для PASCAL
Примечание:

Задает размер окна, в котором отображается слайд библиотечной функции. Данное назначение имеет более высокий приоритет по сравнению с назначением , сделанным в файле ресурсов.


LIBRARYHELPFILE - определение файла помощи, подключаемого к библиотеке
LIBRARYHELPFILE 	Пример

Определить имя файла справочной системы, подключаемого к библиотеке

Синтаксис:

extern "C" char far * pascal LIBRARYHELPFILE()

Описание:

Разделы Помощи могут иметь как библиотечные функции, так и команды меню, создаваемые внутри них и передаваемые в функции Placement и Cursor.


LibToolBarId - Получить идентификаторы инструментальных и компактных панелей
LibToolBarId

Получить идентификаторы инструментальных и компактных панелей.

Синтаксис:

extern "C" int WINAPI _export LibToolBarId (int barType, int index);

Входные параметры:

barType	- тип запрашиваемой панелей (0 - компактная панель, 1 - простая инструментальная панель).
index	- индекс панели/
Примечание:

1. Панель описывается тремя ресурсами:

 - RCDATA состава панели;

 - имя панели;

 - значок инструментальной панели для возможности включения ее в компактную панель.

2. При описании панелей в ресурсах блок RCDATA необходимо заканчиваль значением 0xffff.

3. Сначала запрашиваются обычные инструментальные панели, потом компактные панели.

4. Система будет запрашивать функцию пока возвращаемое значение не будет равно -1. Если описанная в ресурсе инструментальная панель входит в компактную, то упоминание инструментальной панели в LibToolBarId не обязательно.

5. Отображение созданных панелей можно включить, вызвав команду Вид - Панели инструментов после подключения библиотеки.

5. Кнопки типа Fly-Out.

6. Пример описания ресурсов панелей и кнопки типа Fly-Out:


кнопки типа FlyOut
Кнопки типа Fly-Out

1. Для создания кнопки типа Fly-Out необходимо описать RCDATA состава выпадаюшей панели. Идентификатор команды, указанной в инструментальной панели, должен быть увеличен на 1000 (COMMAND_ID + 1000).

2. В RCDATA должна быть та же команда, иначе она станет недоступной после загрузки панели.

3. После загрузки основной панели на Fly-Out кнопке активной будет первая кнопка из выпадающей панели.


Пример использования функций оформления библиотеки

Пример:
#define LIB_ID 1000
// Определить имя библиотеки /* LIBRARYNAME */
char* WINAPI LIBRARYNAME()
 return "Простая библиотека";
}
// Задать идентификатор ресурсов
/* LibraryID */
int WINAPI LIBRARYID()
{
 return LIB_ID; /*Идентификатор библиотеки равен 1000*/
}

// Задать размер окна вывода BITMAP-слайда
/* LibraryBmpSize */
ong WINAPI LIBRARYBMPSIZE()
{
 return MAKELONG( 170, 160 );
}

// Определить имя файла Помощи
/* LibraryHelpFile */
char WINAPI LIBRARYHELPFILE()
{
 return "Konstr.hlp";
}

// Головная функция библиотеки
void WINAPI LIBRARYENTRY( UINT Comm )
{
switch ( Comm )
{
case 1:
 DrawBolt7798;
break;

case 2:
 DrawShayba18123;
break;

case 3:
 DrawGayka6393;
 break;

case 4:
 DrawGayka5915;
 break;
case 5:
 DrawGayka15521;
 break;
case 6:
 DrawShtift10774;
 break;

}

};

/* LibraryEntry*/

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

int WINAPI LibToolBarId (int barType, int index)

{

  // Компактные панели

  if(!barType)

  {

    return !index ? COMPACT_BAR1 : -1;

  }

  // Инструментальные панели

  else

  {

    switch (index)

    {

      case 0  : return BAR_1;

      case 1  : return BAR_2;

      case 2  : return BAR_3;

    }

  }

  return -1;

}

/*LibToolBarId*/

/*

// Пример файла ресурсов (rc):

// С каждой строкой меню будет выводиться соответствующий по номеру команды BITMAP - слайд, иллюстрирующий выбранную операцию.

// Определение BITMAP-слайдов для библиотечных функций:

1 BITMAP "B7798.bmp"

2 BITMAP "Sh18123.bmp"

3 BITMAP "G6393.bmp"

4 BITMAP "G5915.bmp"

5 BITMAP "G15521.bmp"

6 BITMAP "Sh10774.bmp"

// Определение в файле ресурсов  меню операций.

// Примечание: Идентификаторы команд меню должны быть в интервале от 1 до 900.

// Команда выбранной строчки меню будет передана в функцию LibraryEntry.

KONSTR_1 MENU

{

 MENUITEM "Болт ГОСТ 7798-70", 1

  MENUITEM "Шайба ГОСТ 18123-72", 2

  POPUP "ГАЙКИ"

  {

    MENUITEM "Гайка ГОСТ 6393-73", 3

    POPUP "ГАЙКИ ШЕСТИГРАННЫЕ"

    {

      MENUITEM "Гайка ГОСТ 5915-70", 4

      MENUITEM "Гайка ГОСТ 15521-50", 5

    }

  }

  MENUITEM "Штифт ГОСТ 10774-80", 6

}

// Определение размеров окна вывода BITMAP-слайда.

// Примечание: Идентично вызову ф-ии LIBRARYBMPSIZE, но приоритет вызова функции выше.

KONSTR_1 RCDATA

{

  170   // Размер по горизонтали

  160   // Размер по вертикали

}

// Определение имени библиотеки:

// Примечание: Идентично вызову ф-ии LIBRARYNAME, но приоритет вызова функции выше.

STRINGTABLE

{

  KONSTR_1 "Конструкторская библиотека"

}

// Определение имени иконки для минимизированного окна библиотеки:

KONSTR_1 ICON "konstr.ico"

// При подключении библиотеки будет создана компактная панель "Конструкторская библиотека", в которую входят

// инструментальные панели "Болты" и "Шайбы". Также отдельно будет создана инструментальная панель "Гайки".

// Команда "Штифт ГОСТ 10774-80" не входит ни в одну из панелей.

// Определение имени панелей:

STRINGTABLE {

  BAR_1 "Болты"

  BAR_2 "Шайбы"

  BAR_3 "Гайки"

  COMPACT_BAR1 "Конструкторская библиотека"

}

#define END_OF_RESOURCE_TABLE               0xffff

// Определение состава панелей:

COMPACT_BAR1 RCDATA

{

  BAR_1

  BAR_2

  END_OF_RESOURCE_TABLE

}

BAR_1 RCDATA

{

  1 // Болт ГОСТ 7798-70

  END_OF_RESOURCE_TABLE

}

BAR_2 RCDATA

{

  2 // Шайба ГОСТ 18123-72

  END_OF_RESOURCE_TABLE

}

BAR_3 RCDATA

{

  3 // Гайка ГОСТ 6393-73

  4 // Гайка ГОСТ 5915-70

  5 // Гайка ГОСТ 15521-50

  END_OF_RESOURCE_TABLE

}

// Определение иконок инструментальных панелей:

BAR_1 ICON DISCARDABLE "bar1.ico"

BAR_2 ICON DISCARDABLE "bar2.ico"

BAR_3 ICON DISCARDABLE "bar3.ico"

*/


Функции оформления библиотек
Функции оформления библиотек типа ActiveX	Пример

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


Функции

DisplayLibraryName

ExternalGetImage

ExternalGetMenu

ExternalGetResourceModule

ExternalGetToolBarId

ExternalMenuItem

ExternalRunCommand

IsOnApplication7

GetHelpFile

GetImageHeight

GetImageWidth

GetLibraryName

LibInterfaceNotifyEntry


Пример создания библиотеки ActiveX
Пример простейшей программы в среде 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. Ее наличие обязательно, так как именно ему передает управление КОМПАС при обращении к библиотеке. В данном случае она обеспечивает выдачу сообщения и построение одного единственного объекта чертежа - отрезка.


GetLibraryName - получить имя библиотеки
GetLibraryName

Получить имя библиотеки и определить, является ли она библиотекой КОМПАС

TAutoString GetLibraryName();

Синтаксис Visual Basic:

Public Function GetLibraryName() As String

Пример


GetHelpFile - получить имя файла справки
GetHelpFile

Получить имя файла справочной системы, подключаемого к библиотеке.

TAutoString GetHelpFile();

Синтаксис Visual Basic:

Public Function GetHelpFile() As String


GetImageHeight - задать высоту окна вывода слайда
GetImageHeight

Задать высоту окна вывода слайда.

long GetImageHeight();

Синтаксис Visual Basic:

Public Function GetImageHeight() As Long

Пример


GetImageWidth - задать ширину окна вывода слайда
GetImageWidth

Задать ширину окна вывода слайда.

long GetImageWidth();

Синтаксис Visual Basic:

Public Function GetImageWidth() As Long

Пример


ExternalRunCommand - головная функция библиотеки
ExternalRunCommand

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

void ExternalRunCommand (short command,

short mode,

IDispatch* kompas);

Синтаксис Visual Basic:

Public Sub ExternalRunCommand (ByVal command As Integer,

ByVal mode As Integer,

ByVal kompas_ As Object)

Входные параметры:

command	- номер выполняемой команды;
mode	- режим работы: 0 - normal - обычный режим, 1 - demo - вызов из дистрибутивной задачи в деморежиме, 2 - demoEx - вызов из демоверсии;
kompas	- интерфейс KompasObject или IApplication
Примечание:

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

2. Библиотека должна обязательно содержать один из предопределенных методов ExternalRunCommand, который определяет точку входа в приложение или LibInterfaceNotifyEntry. Наличие хотя бы одного из этих методов позволяет системе КОМПАС идентифицировать произвольный ActiveX DLL как собственное приложение.

3. Параметр kompas может быть указателем на интерфейс IApplication если в библиотеке есть метод IsOnApplication7 и этот метод вернул значение TRUE, т.е. библиотека работает на API версии 7. Во всех остальных случаях параметр kompas будет указателем на интерфейс KompasObject.


LibInterfaceNotifyEntry - головная функция библиотеки
LibInterfaceNotifyEntry

Головная функция библиотеки. Подписка на обработку событий от системы.

Синтаксис:

BOOL LibInterfaceNotifyEntry (IDispatch *application);

Входные параметры:

application	- указатель интерфейса приложения KompasObject,
Примечание:

Библиотека должна обязательно содержать один из предопределенных методов ExternalRunCommand, который определяет точку входа в приложение, или LibInterfaceNotifyEntry. Наличие хотя бы одного из этих методов позволяет системе КОМПАС идентифицировать произвольный ActiveX DLL как собственное приложение.


ExternalGetMenu - получить меню библиотеки
ExternalGetMenu

Получить меню библиотеки.

OLE_HANDLE ExternalGetMenu (BOOL *enableDelete);

Синтаксис Visual Basic:

Public Function ExternalGetMenu (ByVal enableDelete As Boolean) As OLE_HANDLE

Параметр:

enableDelete - признак удаления меню библиотеки (TRUE - удалять)


ExternalGetImage - получить слайд команды
ExternalGetImage

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

OLE_HANDLE ExternalGetImage (short command,

short * enableDelete);

Синтаксис Visual Basic:

Public Function ExternalGetImage (ByVal command As Integer,

enableDelete As Integer) As OLE_HANDLE

Параметры:

command	-номер команды

enableDelete 	- признак удаления слайда (TRUE - удалять)

Пример


ExternalMenuItem - получить строку меню
ExternalMenuItem

Получить строку меню для создания меню в виде строк.

TAutoString ExternalMenuItem (short number,

short * itemType,

short * command);

Синтаксис Visual Basic:

Public Function ExternalMenuItem (ByVal number As Integer,

itemType As Integer,

command As Integer) As String

Параметры:

number 	- счетчик строк

itemType 	- тип строки

(0 - SEPARATOR (разделитель);

1 - MENUITEM (строка с названием пункта меню);

2 - POPUP (начало выпадающего подменю);

3 (или любое другое число) - ENDMENU (конец меню\подменю).

command 	- номер команды, если itemType = 1,

или -1 во всех остальных случаях

Пример


ExternalGetToolBarId - Задать идентификаторы панелей управления библиотеки
ExternalGetToolBarId

Задать идентификаторы панелей управления библиотеки.

long ExternalGetToolBarId(short barType, short index);

Входные параметры:

barType	- тип запрашиваемой панелей (0 - компактная панель, 1 - простая инструментальная панель).
index	- индекс панели/
Примечание:

1. Панель описывается тремя ресурсами:

 - RCDATA состава панели;

 - имя панели;

 - значок инструментальной панели для возможности включения ее в компактную панель.

2. При описании панелей в ресурсах блок RCDATA необходимо заканчиваль значением 0xffff.

3. Сначала запрашиваются обычные инструментальные панели, потом компактные панели.

4. Система будет запрашивать функцию пока возвращаемое значение не будет равно -1. Если описанная в ресурсе инструментальная панель входит в компактную, то упоминание инструментальной панели в LibToolBarId не обязательно.

5. Отображение созданных панелей можно включить, вызвав команду Вид - Панели инструментов после подключения библиотеки.

5. Кнопки типа Fly-Out.

6. Пример описания ресурсов панелей и кнопки типа Fly-Out:


GetToolBarId - ресурсы
Пример описания ресурсов панелей и кнопки типа Fly-Out

// Определение имени:

STRINGTABLE {

  COMPACT_BAR1 "Компактная панель"

}

#define END_OF_RESOURCE_TABLE               0xffff

// Определение состава:

COMPACT_BAR1 RCDATA

{

  BAR_1 // Инструментальная панель, входящая в компактную

  END_OF_RESOURCE_TABLE

}

Необходимые ресурсы для инструментальной панели:

// Определение имени панелей:

STRINGTABLE {

  BAR_1 "Инструментальная панель"

}

// Определение состава панели:

BAR_1 RCDATA

{

  1 // Идентификатор команды библиотеки

  END_OF_RESOURCE_TABLE

}

// Определение иконок инструментальной панели при включении ее в компактную панель:

BAR_1 ICON DISCARDABLE "bar1.ico"

// Определение состава панели:

BAR_1 RCDATA

{

  COMMAND_1               // Идентификатор команды библиотеки (Кнопка типа Fly-Out)

  ...                     // Остальные команды

  END_OF_RESOURCE_TABLE

}

// Определение кнопки типа Fly-Out

COMMAND_1 + 1000  RCDATA  // Кнопка с идентификатором COMMAND_1 на панели BAR_1 будет Fly-Out кнопкой

{

  COMMAND_1               // Тот же идентификатор желательно ставить первым, чтобы после загрузки

                          // эта команда становилась текущей

  ...                     // Остальные команды

  END_OF_RESOURCE_TABLE

}


DisplayLibraryName - Получить имя библиотеки
DisplayLibraryName

Получить имя библиотеки, отображаемое при работе КОМПАС.

Синтаксис:

BSTR DisplayLibraryName();

Возвращаемое значение:

	Имя библиотеки, отображаемое на дисплее во время работы КОМПАС
Примечание:

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


IsOnApplication7 - Получить тип версии API используемого библиотекой.
IsOnApplication7

Получить тип версии API используемого библиотекой.

VARIANT_BOOL IsOnApplication7();

Возвращаемое значение:

TRUE	- библиотека использует API версии 7,
FALSE	- библиотека использует API версии 5.
Примечание:

Необязательный метод оформления библиотеки. Позволяет задать тип интерфейса, который будет передан библиотеке в параметре kompas метода ExternalRunCommand и в параметре application  метода LibInterfaceNotifyEntry. Если метод в библиотеке не объявлен, то считается что библиотека использует API версии 5.


ExternalGetResourceModule - Задать модуль с ресурсами библиотеки.
ExternalGetResourceModule

Задать модуль с ресурсами библиотеки.

VARIANT ExternalGetResourceModule();

Возвращаемое значение:

HINSTANCE (тип VT_I4), либо имя файла (тип VT_BSTR) dll в котором находятся ресурсы библиотеки.TRUE
Примечание:

Добавлена возможность указания произвольного dll-файла с ресурсами.


Функции работы с событиями

Функции данного раздела обеспечивают обработку событий.


Функции работы с событиями
Функции

ksConnectionAdvise

ksConnectionUnadvise


ksConnectionAdvise - подписаться на событие
ksConnectionAdvise

Подписаться на событие.

Синтаксис:

int ksConnectionAdvise (NotifyConnectionParam * param, LPUNKNOWN object);

Входные параметры:

param	- указатель на структуру параметров подписки на события,
object	- указатель интерфейса событий.
Возвращаемое значения:

1	- в случае успеха,
0	- в случае неудачи.
Примечание:

Система выполнит AddRef на object и запомнит в текущей библиотеке или в текущей notify-библиотеке.


ksConnectionUnadvise- снять подписку на событие
ksConnectionUnAdvise

Снять подписку на событие.

Синтаксис:

int ksConnectionUnadvise (NotifyConnectionParam * param);

Входные параметры:

param	- указатель на структуру параметров подписки на события,
Возвращаемое значения:

1	- в случае успеха,
0	- в случае неудачи.
Примечание:

Для текущей библиотеки или текущей notify-библиотеки выполнит Release на соответствующий указатель событий


События приложения
ksKompasObjectNotify
IKompasObjectNotify

Интерфейс событий приложения.

ksKompasObjectNotify	- интерфейс Automation
IKompasObjectNotify	- интерфейс COM
Позволяют контролировать состояние приложения.

В Automation источником событий для подписки является объект KompasObject.

В СOM источника нет.

События...

Методы...


События приложения
ksKompasObjectNotify
IKompasObjectNotify

Интерфейс событий приложения.

ksKompasObjectNotify	- интерфейс Automation
IKompasObjectNotify	- интерфейс COM
Позволяют контролировать состояние приложения.

В Automation источником событий для подписки являются:

- для API интерфейсов версии 5 - объект KompasObject.

- для API интерфейсов версии 7 - объект IApplication.

В СOM источника нет.

События...

Методы...


События приложения (список)
События приложения

ApplicationDestroy

BeginCloseAllDocument

BeginCreate

BeginOpenDocument

BeginOpenFile

ChangeActiveDocument

CreateDocument

OpenDocument


CreateDocument

Документ создан.

Синтаксис Automation:

BOOL CreateDocument (LPDISPATCH pDoc, long docType);

Входные параметры:

pDoc	- указатель на интерфейс IDispatch созданного документа,
docType	- тип документа DocType.
Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL CreateDocument(long pDoc, int docType);

Входные параметры:

pDoc	- указатель на созданный документ,
docType	- тип документа DocType.
Возвращаемое значение:

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

1. Источником события является интерфейс KompasObject

2. Индекс события задан в перечислении событий приложения...


BeginOpenDocument

Начало открытия документа.

Синтаксис Automation:

BOOL BeginOpenDocument (BSTR docName);

Входные параметры:

docName	- имя файла документа.
Возвращаемое значение:

TRUE	- открыть документ,
FALSE	- не открывать документ.
Синтаксис COM:

BOOL BeginOpenDocument(char * docName);

Входные параметры:

docName	- имя файла документа.
Возвращаемое значение:

TRUE	- открыть документ,
FALSE	- не открывать документ.
Примечание:

1. Источником события является интерфейс KompasObject

2. Индекс события задан в перечислении событий приложения...


OpenDocument

Документ открыт.

Синтаксис Automation:

BOOL OpenDocument (LPDISPATCH pDoc, long docType);

Входные параметры:

pDoc	- указатель на интерфейс IDispatch открытого документа,
docType	- тип документа DocType.
Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL OpenDocument(long pDoc, int docType);

Входные параметры:

pDoc	- указатель на открытый документ,
docType	- тип документа DocType.
Возвращаемое значение:

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

1. Источником события является интерфейс KompasObject

2. Индекс события задан в перечислении событий приложения...


ChangeActiveDocument

Переключение на другой активный документ.

Синтаксис Automation:

BOOL OpenDocument (LPDISPATCH pDoc, long docType);

Входные параметры:

pDoc	- указатель на интерфейс IDispatch открытого документа,
docType	- тип документа DocType.
Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL OpenDocument(long pDoc, int docType);

Входные параметры:

pDoc	- указатель на открытый документ,
docType	- тип документа DocType.
Возвращаемое значение:

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

1. Источником события является интерфейс KompasObject

2. Индекс события задан в перечислении событий приложения...


ApplicationDestroy

Закрытие приложения.

Синтаксис Automation:

BOOL ApplicationDestroy();

Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL ApplicationDestroy();

Возвращаемое значение:

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

1. Источником события является интерфейс KompasObject.

2. Индекс события задан в перечислении событий приложения....

3. При обработке данного события необходимо отписаться от всех событий. Библиотека должна сама следить за отпиской событий.


BeginCreate

Начало создания документа (до диалога выбора типа.

Синтаксис Automation:

BOOL BeginCreate (long docType);

Синтаксис COM:

BOOL BeginCreate (long docType);

Входные параметры:

docName	- тип документа,
0	- если пользователь запросил диалог создания документа.
Возвращаемое значение:

TRUE	- создать документ
FALSE	- создание документа запрещено.
Примечание:

Индекс события задан в перечислении событий приложения....


BeginOpenFile

Начало открытия документа (до диалога выбора имени).

Синтаксис Automation:

BOOL BeginOpenFile();

Синтаксис COM:

BOOL BeginOpenFile();

Возвращаемое значение:

TRUE	- вызвать диалог открытия документа,
FALSE	- вызов диалога открытия документа запрещен.
Примечание:

Индекс события задан в перечислении событий приложения....


BeginCloseAllDocument

Начало закрытия всех открытых документов.

Синтаксис Automation:

BOOL BeginCloseAllDocument();

Синтаксис COM:

BOOL BeginCloseAllDocument();

Возвращаемое значение:

TRUE	- закрытие всех открытых документов,
FALSE	- закрытие всех открытых документов запрещено.
Примечание:

Индекс события задан в перечислении событий приложения....


Общие сведения о событиях
События в КОМПАС
Общие сведения

Генерация событий в КОМПАС осуществляется при помощи компактных интерфейсов событий, в которых события группируются по тематике. Подписка на события проводится во время подключения библиотеки при помощи предопределенной функции LibInterfaceNotifyEntry().

Для Automation реализация основана на стандартном механизме ConnectionPoint. Основные объекты, такие как KompasObject, ksDocument2D и т.п., которые являются источниками событий, наследуют интерфейс IConnectionPointContainer, и позволяют подписаться на один основной интерфейс и предоставляют  дополнительные объекты-источники событий. Подписаться на события или отменить подписку можно стандартным способом при помощи методов интерфейса IConnectionPoint:  IConnectionPoint::Advise и IConnectionPoint::Unadvise.

Для COM реализация основана на интерфейсах IUnknown, которые предоставляет библиотека. Подписаться на события или отменить подписку можно при помощи экспортных функций: ksConnectionAdvise и ksConnectionUnadvise.

Библиотека сама должна позаботиться о своевременной отписке от неактуальных событий. Например, в момент закрытия документа нужно обработать соответствующее событие и отписаться от всех событий, связанных с данным документом (см. таблицу связей). При закрытии приложения следует отписаться от всех событий.

События приложения...

События документа...

События документа-модели...

События графического документа...

События менеджера выделенных объектов...

События объектов графического документа...

События объектов документа-модели...

События основной надписи графического документа...

События объекта спецификации...

События для работы с описаниями спецификации...

События документа-спецификации...

Связь объектов системы с интерфейсами событий

Объекты системы	События объекта
Объект приложение KompasObject	События приложения События документа События объектов документа-модели События менеджера выделенных объектов События основной надписи графического документа События объектов графического документа События документа-модели События графического документа События объекта спецификации События для спецификации События документа-спецификации
Графический документ ksDocument2D	События документа События менеджера выделенных объектов События основной надписи графического документа События графического документа События объектов графического документа События объекта спецификации События для спецификации
Спецификация ksSpcDocument	События документа События основной надписи графического документа События объекта спецификации События для спецификации События документа-спецификации
Текстовый документ ksDocumentTxt	События документа События основной надписи графического документа
Документ-модель ksDocument3D	События документа События менеджера выделенных объектов События объектов документа-модели События объекта спецификации События для спецификации События документа-модели


Методы событий
События системы
методы

IsNotifyProcess


Перечисление событий
События системы;
перечисления

События приложения...

События документа...

События документа-модели...

События графического документа...

События менеджера выделенных объектов...

События объектов графического документа...

События объектов документа-модели...

События основной надписи графического документа...

События объекта спецификации...

События для спецификации...

События документа-спецификации...


Ограничение обрабатываемых событий
IsNotifyProcess

Ограничение обрабатываемых событий

Синтаксис Automation:

Не используется.

Синтаксис COM:

BOOL IsNotifyProcess (int notifyType);

Входной параметр:

notifyType	- номер события в перечислении событий.
Возвращаемое значение:

TRUE	- событие будет обрабатываться,
FALSE	- событие обрабатываться не будет.
Примечание:

В COM перед любым вызовом события система сделает запрос о возможности его обработки с использованием данного метода. Библиотека сама может ограничивать обрабатываемые события.


События документа
ksDocumentFileNotify
IDocumentFileNotify

События документа; работа с файлом.

ksDocumentFileNotify	- интерфейс Automation
IDocumentFileNotify	- интерфейс COM
Позволяют контролировать состояние документа.

В Automation источником событий для подписки являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

В СOM источником для подписки является указатель на документ.

События документа...

Методы...


События документа
ksDocumentFileNotify
IDocumentFileNotify

События документа; работа с файлом.

Позволяют контролировать состояние документа.

В Automation источником событий для подписки являются объекты:

- для API интерфейсов версии 5:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

- для API интерфейсов версии 7:

- IKompasDocument

В СOM источником для подписки является указатель на документ.

События документа...

Методы...


События документа (список)
События

Activate

BeginCloseDocument

BeginSaveAsDocument

BeginSaveDocument

CloseDocument

Deactivate

DocumentFrameOpen

ProcessActivate

ProcessDeactivate

SaveDocument


BeginSaveAsDocument

Начало создания документа(до диалога выбора типа).

Синтаксис Automation:

BOOL BeginSaveAsDocument();

Возвращаемое значение:

TRUE	- сохранить документ,
FALSE	- документ сохранить нельзя.
Синтаксис COM:

BOOL BeginSaveAsDocument();

Возвращаемое значение:

TRUE	- сохранить документ,
FALSE	- документ сохранить нельзя.
Примечание:

1. Индекс события задан в перечислении событий документа....

2. В Automation источником событий для подписки на данный интерфейс являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

3. В СOM источником событий для подписки на данный интерфейс является указатель на документ.


BeginCloseDocument

Начало закрытия документа.

Синтаксис Automation:

BOOL BeginCloseDocument();

Возвращаемое значение:

TRUE	- закрыть документ,
FALSE	- документ закрывать нельзя.
Синтаксис COM:

BOOL BeginCloseDocument();

Возвращаемое значение:

TRUE	- закрыть документ,
FALSE	- документ закрывать нельзя.
Примечание:

1. Индекс события задан в перечислении событий документа....

2. В Automation источником событий для подписки на данный интерфейс являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

3. В СOM источником событий для подписки на данный интерфейс является указатель на документ.


CloseDocument

Документ закрыт.

Синтаксис Automation:

BOOL CloseDocument();

Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL CloseDocument();

Возвращаемое значение:

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

1. Индекс события задан в перечислении событий документа....

2. В Automation источником событий для подписки на данный интерфейс являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

3. В СOM источником для подписки на данный интерфейс является указатель на документ.

4. При обработке данного события необходимо отписаться от всех событий, связанных с закрываемым документом. Библиотека должна сама следить за отпиской событий.


BeginSaveDocument

Начало сохранения документа.

Синтаксис Automation:

BOOL BeginSaveDocument (BSTR docName);

Входные параметры:

docName	- имя файла документа, с которым он будет сохранен.
Возвращаемое значение:

TRUE	- сохранить документ,
FALSE	- не сохранять документ.
Синтаксис COM:

BOOL BeginSaveDocument (char * docName);

Входные параметры:

docName	- имя файла документа, с которым он будет сохранен.
Возвращаемое значение:

TRUE	- сохранить документ,
FALSE	- не сохранять документ.
Примечание:

1. Индекс события задан в перечислении событий документа....

2. В Automation источником событий для подписки на данный интерфейс являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

3. В СOM источником для подписки на данный интерфейс является указатель на документ.


SaveDocument

Документ сохранен.

Синтаксис Automation:

BOOL SaveDocument();

Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL SaveDocument();

Возвращаемое значение:

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

1. Индекс события задан в перечислении событий документа....

2. В Automation источником событий для подписки на данный интерфейс являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

3. В СOM источником для подписки на данный интерфейс является указатель на документ.


ActiveDocument
Activate

Документ активизирован.

Синтаксис Automation:

BOOL Activate();

Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL Activate();

Возвращаемое значение:

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

1. Индекс события задан в перечислении событий документа....

2. В Automation источником событий для подписки на данный интерфейс являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

3. В СOM источником для подписки на данный интерфейс является указатель на документ.


DeactiveDocument
Deactivate

Документ деактивизирован.

Синтаксис Automation:

BOOL Deactivate();

Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL Deactivate();

Возвращаемое значение:

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

1. Индекс события задан в перечислении событий документа....

2. В Automation источником событий для подписки на данный интерфейс являются объекты:

- ksDoсument2D (чертеж, фрагмент),

- ksSpcDocument (спецификация),

- ksDocumentTxt (текстовый документ),

- ksDocument3D (документ-модель).

3. В СOM источником для подписки на данный интерфейс является указатель на документ.


Интерфейс ksSelectionMngNotify
 ksSelectionMngNotify

Интерфейс событий для графического документа.

В Automation источник событий для графического документа ksSelectionMngNotify можно получить при помощи метода ksDocument2D::GetSelectionMngNotify, для документа-модели источником является объект ksSelectionMng.

В СOM контейнером для подписки на данный интерфейс является указатель на графический документ или документ-модель.

События...

Примечание:

Интерфейс позволяет следить за выделением объектов в документе.


ksSelectionMngNotify события
Cобытия для графических документов,
документов-моделей - менеджер выделенных объектов.

Позволяют контролировать выделение объектов в документе.

В Automation источник событий для графического документа ksSelectionMngNotify можно получить при помощи метода ksDocument2D::GetSelectionMngNotify, документа-модели источником является объект ksSelectionMng.

В СOM контейнером для подписки на данный интерфейс является указатель на графический документ или документ-модель.

События...


ksSelectionMngNotify::events
ksSelectionMngNotify
события

Select

Unselect

UnselectAll


ksSelectionMngNotify::Select
Select

Объект выделен.

Синтаксис Automation:

BOOL Select (VARIANT obj);

Синтаксис COM:

BOOL Select (VARIANT obj);

Входные параметры:

obj	- выделенный объект.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий менеджера выделенных объектов....

2. Выделенный объект для графического документа: obj.vt = VT_I4, obj.lVal - reference объекта

3. Выделенный объект для документа-модели: obj.vt = VT_UNKNOWN, obj.punkVal - указатель на интерфейс объекта (объекты дерева - объекты, компоненты, сопряжения)


ksSelectionMngNotify::Unselect
Unselect

Выделение с объекта снято.

Синтаксис Automation:

BOOL Unselect (VARIANT obj);

Синтаксис COM:

BOOL Unselect (VARIANT obj);

Входные параметры:

obj	- объект, с которого снято выделение.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий менеджера селектирования....

2. Объект, с которого снято выделение для графического документа: obj.vt = VT_I4, obj.lVal - reference объекта

3. Объект, с которого снято выделение для документа-модели: obj.vt = VT_UNKNOWN, obj.punkVal - указатель на интерфейс объекта (объекты дерева - объекты, компоненты, сопряжения)


ksSelectionMngNotify::UnselectAll
UnselectAll

Выделение снято со всех объектов.

Синтаксис Automation:

BOOL UnselectAll();

Синтаксис COM:

BOOL UnselectAll();

Входные параметры:

obj	- объект, с которого снято выделение.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий менеджера селектирования....


Функции изменения масштаба

Функции данного раздела позволяют управлять масштабом отображения объектов документа.


Функции изменения масштаба
Функции

ksGetZoomScale

ksRefreshActiveWindow

ksZoom

ksZoomPrevNextOrAll

ksZoomScale


ksZoom - Изменение масштаба рамкой
ksZoom  	Пример

Задать масштаб изображения прямоугольной рамкой.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksZoom.

Синтаксис:

int ksZoom (double x1, double y1, double x2, double y2);

Входные параметры:

x1, y1	- координаты (в СК вида) первой точки диагонали рамки,
x2, y2	- координаты (в СК вида) второй точки диагонали рамки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksZoom - пример использования

//открыть документ "1.cdw"

reference d = OpenDocument ("1.cdw", 0);

//в текущем виде нарисовать отрезок

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

//увеличить изображение окна, чтобы отрезок оказался в центре и в окне

if(!ksZoom (15, 15, 45, 45))

  Error ("Ошибка при задании окна ");


ksZoomScale - Задать масштаб изменением коэффициента масштабирования
ksZoomScale  	Пример

Задать масштаб изображения по точке и коэффициенту масштабирования.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksZoomScale.

Синтаксис:

int ksZoomScale (double x, double y, double scale);

Входные параметры:

x1, y1	- координаты (в СК вида) точки центра изменения масштаба,
scale_	- коэффициент изменения масштаба изображения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksZoomScale - пример использования

//открыть документ "1.cdw"

reference d = OpenDocument ("1.cdw", 0);

//в текущем виде нарисовать отрезок

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

//увеличить изображение окна, чтобы отрезок оказался в центре и в окне

if(!ksZoomScale (30, 30, 2))

  Error("Ошибка при задании окна ");


ksZoomPrevNextOrAll -Показать документ в предыдущем/последующем масштабе
ksZoomPrevNextOrAll  	Пример

Показать документ в предыдущем/последующем масштабе или документ целиком.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksZoomPrevNextOrAll.

Синтаксис:

int ksZoomPrevNextOrAll (unsigned char type);

Входной параметр:

type	тип масштабирования: 0 - следующий масштаб, 1 - предыдущий масштаб, 2 - весь документ.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksZoomPrevNextOrAll - пример использования

//открыть документ "1.cdw"

reference d  =OpenDocument ("1.cdw", 0);

//показать в окне весь документ

ksZoomPrevNextOrAll (2);


ksGetZoomScale - Вернуть масштаб и центр окна документа
ksGetZoomScale 	Пример

Получить масштаб и центр активного окна графического документа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetZoomScale.

Синтаксис:

int ksGetZoomScale (double *x, double *y, 	double *scale);

Выходные параметры:

x, y	- координаты (в СК вида) точки центра изменения масштаба,
scale	- коэффициент изменения масштаба изображения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksGetZoomScale - Пример использования

double x, y, scale;

  if (ksGetZoomScale (&x, &y, &scale)) {

    ksZoomScale (100, 100, 2);

    Message("Изменен масштаб в окне");

    ksZoomScale (x, y, scale);

    Message("Предыдущий масштаб");

  }

  else

    MessageBoxResult();


ksRefreshActiveWindow - Обновление окна документа.
ksRefreshActiveWindow  	Пример

Обновить окно документа.

Синтаксис:

int ksRefreshActiveWindow ();

Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksRefreshActiveWindow - пример использования

{

ksRefreshActiveWindow ();

}


Функции ввода параметров

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


Функции

Cursor

GetValidator

ksChangeObjectInLibRequest

ksExecDialPredefinedText

ksExecDialPredefinedTextEx

ksGetCursorLimit

ksGetCursorPosition

ksIsCursorOrPlacementDocument

ksMaterialDlg

ksPhantomShowHide

Placement

ReadDouble

ReadInt

ReadLong

ReadString


Cursor - Ввод точки
Cursor 	Пример

Проставить точку или определить вариант действия.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCursor.

Синтаксис:

int Cursor (RequestInfo *info, double *x, double *y, void * phantom);

Входные параметры:

info	- указатель на структуру параметров запроса к системе,
x,y	- координаты введенной точки,
phantom	- указатель на структуру управления фантомом, определяющую тип движения курсора (аналог типа резиновой нити в версии 4).
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Возможные варианты (команды) задаются в строке commands  структуры info и разделяются  восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений. Если в качестве адреса _callBack передается NULL, то действие функции прекращается после первого шага.


Cursor- пример использования

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

int type, flag=0;

//функция обратной связи для выполнения цикла в Cursor

int far __export pascal CallBackC (int com, double *x, double *y, RequestInfo *info,

                                    void *phantom, int/* dynamic */) {

 Phantom *rub = (Phantom *)phantom;

  switch (com) {

    case 1:

    case 2:

      type = com;

    break;

    case -1: //поставить в модель

      MoveObj(rub->tipe1.gr, *x, *y);

      StoryTmpGroup(rub->type1.gr); //поставить временную группу в вид

      ClearGroup(rub->type1.gr);

      break;

  }

//группа для фантома должна быть временная и обновляться при изменении вида

//отрисовки

  if (rub->type1.gr)

    DeleteObj(rub->type1.gr);

  rub->type1.gr = NewGroup(1); // временная группа

    if((flag==1 && com==1)||(flag==2 && com==2))

    type = 3;

//обновляется не только изображение но и меню для запроса

    switch (type ) {

      case 1:

        Circle (0, 0, 20, 1);

        info->commands =  !Квадрат !Треугольник ;

        flag = 1;

        break;

      case 2:

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

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

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

        info->commands =  !Окружность !Квадрат;

        flag = 2;

        break;

      case 3:

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

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

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

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

        info->commands =  !Окружность !Треугольник;

        flag = 0;

        break;

    }

  EndGroup();

  return 1;

}

void Cursor_Example (void) {

  type = 1;

  int j = 1;

  struct Phantom  rub;

  rub.type1.xBase = 0;

  rub.type1.yBase = 0;

  rub.type1.scale = 1;

  rub.phType        = 1;

  rub.type1.ang  = 0;

  double x, y;

  rub.type1.gr = NewGroup(1); // временная группа

    Circle (0, 0, 20, 1);

  EndGroup();

  RequestInfo  info;

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

  info.commands = "!Квадрат !Треугольник";

  info.callBack = CallBackС;//указываем адрес  функции обратной связи для Cursor   ,

Cursor(&info , &x, &y, &rub);

}; /* Cursor*/

struct RequestInfo info;

memset(&info,0,sizeof(RequestInfo));     //Структура информации

info.prompt="Укажите начальную точку";

Cursor(&info,&xBase,&yBase,0);//Начальная точка

struct Phantom f;

memset(&f,0,sizeof(Phantom));     //Фантом

f.type2.xBase = xBase;

f.type2.yBase = yBase;

info.prompt="Укажите точку на окружности";

f.phType=7;  // тип "резиновой" нити - окружность

double x,y;

//если был запущен другой процесс то не запускается второй Cursor

if (!ksIsActiveProcessRunnig () && Cursor(&info,&x,&y,&f))

  Circle(xBase, yBase, DistancePntPnt (xBase, yBase, x,y),1);

else

  Message("Запущен другой процесс");

//Функция обратной связи Cursor для построения пользовательского фантома(в данном случае "резиновый" отрезок)

int far __export pascal CallBackEskLinsvzLin(int com ,double *x,double *y,RequestInfo*,void *phantom,int dynamic) {

  Phantom *rub = (Phantom *)phantom;

  if (!dynamic) {     //Фиксация точки

    if (com == -1) {

      StoreTmpGroup(rub->type6.gr);

      ClearGroup(rub->type6.gr);

    }

    DeleteObj(rub->type6.gr);

    return 0;

  }

  else {

    if (fabs(xBase -*x) > 0.001 || fabs(yBase -*y) > 0.001) {

      DeleteObj(rub->type6.gr);

      rub->type6.gr = NewGroup(1);

        LineSeg(xBase, yBase, *x, *y, 1);

      EndGroup();

    }

    return 1;

  }

}

struct RequestInfo info;

memset(&info,0,sizeof(RequestInfo));     //Структура информации

info.prompt="Укажите начальную точку";

Cursor(&info,&xBase,&yBase,0);  //Начальная точка

info.dynamic=1;

info.callBack=CallBackEskLinsvzLin;

struct Phantom f;

memset(&f,0,sizeof(Phantom));     //Фантом

f.type2.xBase = xBase;

f.type2.yBase = yBase;

f.phType=6;  //пользовательский фантом

info.prompt="Укажите точку на линии";

f.type6.gr = NewGroup(1);

  LineSeg(xBase, yBase, xBase+0.1, yBase,1);

EndGroup();

double x,y;

Cursor(&info,&x,&y,&f);


Placement - Задание точки и угла
Placement  	Пример

Задать точку и угол.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPlacement.

Синтаксис:

int Placement (RequestInfo *info, double *x, double *y, double *angle, void *phantom);

Входные параметры:

info	- указатель на структуру параметров запроса к системе,
x,y	- координаты введенной точки,
phantom	- указатель на структуру управления фантомом, определяющую тип движения курсора (аналог типа резиновой нити в версии 4),
angle	- введенный угол.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Возможные варианты (команды) задаются в строке commands структуры info и разделяются  восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла  ресурсов, то соответствующее меню будет выдано в окне приглашений. Если в качестве адреса _callBack передается NULL, то действие функции прекращается после первого шага.


Placement - пример использования

#ifndef  __MATH_H

#include <math.h>

#endif

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

int type, flag=0;

// Функция обратной связи, для выполнения цикла в Placement

int far __export pascal CallBackP (int com, double *x, double *y, double *angl,

                                                RequestInfo *info, void *phantom, int /* dynamic*/) {

  Phantom *rub = (Phantom *)phantom;

  switch (com) {

    case 1:

    case 2:

      type = com;

    break;

    case -1: //поставить в модель

      MoveObj(rub->type1.gr, *x, *y);

      if(fabs(*angl) > 0.001)

         RotateObj(rub->type1.gr, *x, *y, *angl);

      StoryTmpGroup(rub->type1.gr); //поставить временную группу в вид

      ClearGroup(rub->type1.gr);

      break;

  }

//группа для фантома должна быть временная и обновляться при изменении вида

// отрисовки

 if (rub->type1.gr)

    DeleteObj(rub->type1.gr);

  rub->type1.gr = NewGroup(1); // временная группа

    if((flag==1 && com==1)||(flag==2 && com==2))

    type = 3;

//обновляется не только изображение но и меню для запроса

 switch (type ) {

      case 1:

        Circle (0, 0, 20, 1);

        info->commands =  !Квадрат !Треугольник ;

        flag = 1;

        break;

      case 2:

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

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

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

        info->commands =  !Окружность !Квадрат;

        flag = 2;

        break;

      case 3:

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

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

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

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

        info->commands =  !Окружность !Треугольник;

        flag = 0;

        break;

    }

  EndGroup();

  return 1;

}

void Placement_Example (void) {

  type = 1;

  int j = 1;

  struct Phantom  rub;

  rub.type1.xBase = 0;

  rub.type1.yBase = 0;

  rub.type1.scale = 1;

  rub.phType        = 1;

  rub.type1.ang  = 0;

  double x, y;

  rub.type1.gr = NewGroup(1); // временная группа

    Circle (0, 0, 20, 1);

  EndGroup();

RequestInfo  info;

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

  info.commands = "!Квадрат !Треугольник";

  info.callBack = CallBackP;//указываем адрес функции обратной связи для Placement

  Placement(&info, &x, &y, &rub.type1.ang, &rub);

}; /* Placement_Example*/


ksGetCursorPosition - Вернуть координаты курсора
ksGetCursorPosition	Пример

Получить координаты курсора.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetCursorPosition

Синтаксис:

int ksGetCursorPosition (double *x,

double *y,

int type);

Входные параметры:

x,y	- координаты курсора в миллиметрах,
type	- признак способа определения координат: 0 - без учета привязок, 1 - с учетом привязок,
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи или если курсор находится не на поле чертежа.


ksGetCursorPosition - пример использования

//получить координаты курсора

 typeCursorPos = YesNo("С учетом привязок?") == 1 ? 1 : 0;

 int j ;

 double x, y;

 do {

   ksGetCursorPosition(&x, &y, typeCursorPos);   // координаты курсора в миллиметрах,

                                             // 0 - без учета привязок 1 - с учетом привязок,

   char buf[255];

   sprintf(buf, " x = %0.2f y = %0.2f; Продолжать? ", x, y);

   j = YesNo(buf);

 } while(j == 1);


ksGetCursorLimit
ksGetCursorLimit	Пример

Получить радиус окружности, вписанной в "ловушку" курсора.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetCursorLimit.

Синтаксис:

double ksGetCursorLimit();

Возвращаемое значение:

	радиус окружности, вписанной в "ловушку" курсора.


ksGetCursorLimit - пример использования

double x, y;                                 // координаты точки

RequestInfo info;                            // параметры запроса

memset(&info, 0, sizeof(info));            // очищаем параметры запроса

info.prompt = "Укажите объект";              // строка подсказки

double lim = ::ksGetCursorLimit();           // радиус ловушки курсора

while (::Cursor(&info, &x ,&y, 0)) {       // запуск процесса указания точки

reference obj = ::FindObj(x, y, lim);    // ближайщий объект

if (::ExistObj(obj))                     // если объект найден и существует

::LightObj(obj, 1);                    // подсвечиваем объект

}


ReadString - Ввод строки
ReadString  	Пример

Ввести строку.

Аналог данной функции при использовании Automation - метод KompasObject::ksReadString.

Синтаксис:

int ReadString(char *smess, char *str, int maxlen);

Входные параметры:

smess	- строка приглашения,
maxlen	- максимально допустимая длина строки,
str	- результат ввода.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


GetValidator - Определить валидатор диалога
GetValidator  	Пример

Получить валидатор.

Синтаксис:

void * (void *min, void *max, unsigned char type);

Входные параметры:

min, max	- границы интервала,
type	- тип данных.
Возвращаемое значение:

указатель на TValidator	- в случае удачного завершения,
0	- в случае неудачи или если курсор находится не на поле чертежа.
Примечание:

Функция работает только в OWL.


GetValidator - пример использования

// описание класса обработки диалога, в котором использованы два TEdit,

// чтобы ввести проверку интервала вводимых  значений.

// К TEdit подключается валидатор

#define DIALOG_1	101

#define IDC_EDIT1	1001

#define IDC_EDIT2	1002

//-----------------------------------

// ресурс диалога

DIALOG_1 DIALOG 114, 71, 103, 107

STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

CAPTION "Диалог"

FONT 8, "MS Sans Serif"

{

DEFPUSHBUTTON "OK", IDOK, 27, 80, 50, 14

EDITTEXT IDC_EDIT1, 63, 24, 21, 12

LTEXT "Исполнение", -1, 15, 27, 43, 8

EDITTEXT IDC_EDIT2, 63, 48, 32, 12

LTEXT "Длина", -1, 17, 50, 29, 8

}

//-----------------------------------

class TestDialog : public TDialog

{

float len;

int ispoln;

TEdit *hLen;    //ввод длины: значение кладется в len

TEdit *hIspoln; //ввод исполнения: значение кладется в ispoln

public:

TestDialog (TWindow *ptParent);

void SetupWindow();

protected :

void EvLen();

void EvIspoln();

void CmOk(); // IDOK

DECLARE_RESPONSE_TABLE(TestDialog);

};

DEFINE_RESPONSE_TABLE1(TestDialog , TDialog)

EV_EN_KILLFOCUS  (IDC_EDIT2,  EvLen),

EV_EN_KILLFOCUS  (IDC_EDIT1, EvIspoln),

EV_COMMAND(IDOK, CmOk),

END_RESPONSE_TABLE;

//конструктор диалога

//-----------------------------------

TestDialog::TestDialog(TWindow *ptParent):

TDialog(ptParent , DIALOG_1, module),

len(20),

ispoln (1)

{

hLen     = new TEdit(this, IDC_EDIT2, 10);

//интервал для float: тип 4;   min=0 max=100

float minF=0, maxF=100;

//валидатор контролирует значения типа float

hLen->SetValidator ((TValidator *) GetValidator(&minF, &maxF, 4));

hIspoln  = new TEdit (this, IDC_EDIT1, 10);

//интервал для int: тип 2;   min=1 max=5

//валидатор контролирует значения типа int

int minI =1, maxI=5;

hIspoln->SetValidator ((TValidator *) GetValidator (&minI, &maxI, 2));

};

//-----------------------------------

void TestDialog::SetupWindow()

{

char s[128];

TDialog::SetupWindow();

sprintf (s, "%.1f", len);

hLen->SetText(s);

sprintf (s, "%d", ispoln);

hIspoln->SetText(s);

}

//-----------------------------------

void TestDialog::EvLen()

{

if (hLen->IsValid(FALSE))	//мы в интервале

{

char buf[20];

char *c;

GetDlgItemText (IDC_EDIT2, buf, 10);

len = strtod (buf, &c);

}

}

//-----------------------------------

void TestDialog::EvIspoln()

{

if (hIspoln->IsValid(FALSE))	//мы в интервале

{

char buf[20];

char *c;

GetDlgItemText (IDC_EDIT1, buf, 10);

ispoln = (int) strtol (buf, &c, 10);

}

}

//-----------------------------------

void TestDialog::CmOk()

{

if (!hLen->IsValid(TRUE))

{

hLen->SetFocus();

return;

}

if (!hIspoln->IsValid(TRUE))

{

hIspoln->SetFocus();

return;

}

TDialog::CmOk();

char buf[128];

sprintf (buf, "len=%.3f ispoln=%d",len,ispoln);

Message (buf);

}

//--------------------------------------------------------------------------------

// Функция вызова диалога с использованием валидаторов

//--------------------------------------------------------------------------------

void TestValidator()

{

TestDialog *pDialog;

pDialog = new TestDialog (GetWindowPtr((HWND)GetHWindow()));

pDialog->Execute();

delete pDialog;

}


ksChangeObjectInLibRequest - Изменение фантома или компонентов команд
ksChangeObjectInLibRequest  	Пример

Изменить фантом или компоненты команд.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksChangeObjectInLibRequest.

Синтаксис:

int ksChangeObjectInLibRequest (RequestInfo *info, void *phantom);

Входные параметры:

info	- указатель на область памяти для замены состава команд,
phantom	- указатель на фантомную группу
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Во время работы функций Cursor и Placementможет возникнуть необходимость изменить фантом или компоненты команд. Функция ksChangeObjectInLibRequest позволяет передать изменения в цикл Cursor и Placement. Это может понадобиться для отработки команд пользовательских инструментальных панелей. Предварительно нужно убедиться, что вызов Cursor и требование к Cursor передаются в одном документе. Если какой-либо указатель равен 0, соответствующий параметр не используется.


ksChangeObjectInLibRequest - пример использования

{

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

int type, flag=0;

//функция обратной связи для выполнения цикла в Cursor

int far __export pascal CallBackC (int com, double *x, double *y, RequestInfo *info,

                                    void *phantom, int/* dynamic */) {

 Phantom *rub = (Phantom *)phantom;

rub->type1.ang  = 90;

ksChangeObjectInLibRequest (&info, &rub);

switch (com) {

    case 1:

    case 2:

      type = com;

    break;

    case -1: //поставить в модель

      MoveObj(rub->type1.gr, *x, *y);

      StoreTmpGroup(rub->type1.gr); //поставить временную группу в вид

      ClearGroup(rub->type1.gr);

      break;

  }

//группа для фантома должна быть временная и обновляться при изменении вида

//отрисовки

  if (rub->type1.gr)

    DeleteObj(rub->type1.gr);

  rub->type1.gr = NewGroup(1); // временная группа

    if((flag==1 && com==1)||(flag==2 && com==2))

    type = 3;

//обновляется не только изображение но и меню для запроса

    switch (type ) {

      case 1:

        Circle (0, 0, 20, 1);

        info->commands =  !Квадрат !Треугольник ;

        flag = 1;

        break;

      case 2:

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

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

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

        info->commands =  !Окружность !Квадрат;

        flag = 2;

        break;

      case 3:

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

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

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

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

        info->commands =  !Окружность !Треугольник;

        flag = 0;

        break;

    }

  EndGroup();

  return 1;

}

void Cursor_Example (void) {

  type = 1;

  int j = 1;

  struct Phantom  rub;

  rub.type1.xBase = 0;

  rub.type1.yBase = 0;

  rub.type1.scale = 1;

  rub.phType        = 1;

  rub.type1.ang  = 0;

  double x, y;

  rub.type1.gr = NewGroup(1); // временная группа

    Circle (0, 0, 20, 1);

  EndGroup();

  RequestInfo  info;

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

  info.commands = "!Квадрат !Треугольник";

  info.callBack = CallBackС;//указываем адрес  функции обратной связи для Cursor   ,

Cursor(&info , &x, &y, &rub);

}; /* Cursor*/

}


ksPhantomShowHide - Управление видимостью фантома.
ksPhantomShowHide  	Пример

Включить или выключить отображение фантома на экране.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPhantomShowHide.

Синтаксис:

int ksPhantomShowHide (unsigned char type);

Входные параметры:

type	- признак отрисовки фантома: 1 - включить, 0 - выключить,
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksPhantomShowHide - пример использования

{

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

int type, flag=0;

//функция обратной связи для выполнения цикла в Cursor

int far __export pascal CallBackC (int com, double *x, double *y, RequestInfo *info,

                                    void *phantom, int/* dynamic */) {

 Phantom *rub = (Phantom *)phantom;

switch (com) {

    case 1:

    case 2:

      type = com;

    break;

    case -1: //поставить в модель

      MoveObj(rub->type1.gr, *x, *y);

      ksPhantomShowHide (0);

      StoreTmpGroup(rub->type1.gr); //поставить временную группу в вид

      ClearGroup(rub->type1.gr);

      break;

  }

//группа для фантома должна быть временная и обновляться при изменении вида

//отрисовки

  if (rub->type1.gr)

    DeleteObj(rub->type1.gr);

  rub->type1.gr = NewGroup(1); // временная группа

    if((flag==1 && com==1)||(flag==2 && com==2))

    type = 3;

//обновляется не только изображение но и меню для запроса

    switch (type ) {

      case 1:

        Circle (0, 0, 20, 1);

        info->commands =  !Квадрат !Треугольник ;

        flag = 1;

        break;

      case 2:

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

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

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

        info->commands =  !Окружность !Квадрат;

        flag = 2;

        break;

      case 3:

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

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

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

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

        info->commands =  !Окружность !Треугольник;

        flag = 0;

        break;

    }

  EndGroup();

  return 1;

}

void Cursor_Example (void) {

  type = 1;

  int j = 1;

  struct Phantom  rub;

  rub.type1.xBase = 0;

  rub.type1.yBase = 0;

  rub.type1.scale = 1;

  rub.phType        = 1;

  rub.type1.ang  = 0;

  double x, y;

  rub.type1.gr = NewGroup(1); // временная группа

    Circle (0, 0, 20, 1);

  EndGroup();

  RequestInfo  info;

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

  info.commands = "!Квадрат !Треугольник";

  info.callBack = CallBackС;//указываем адрес  функции обратной связи для Cursor   ,

Cursor(&info , &x, &y, &rub);

}; /* Cursor*/

}


ksIsCursorOrPlacementDocument - Проверка текущего документа
ksIsCursorOrPlacementDocument  	Пример

Проверить, запущен ли в текущем графическом документе процесс Cursor или Placement.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksIsCursorOrPlacementDocument.

Синтаксис:

int ksIsCursorOrPlacementDocument ();

Возвращаемое значение:

1	- процесс запущен,
0	- процесс не запущен.


ksIsCursorOrPlacementDocument - пример использования

{

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

int type, flag=0;

//функция обратной связи для выполнения цикла в Cursor

int far __export pascal CallBackC (int com, double *x, double *y, RequestInfo *info,

                                    void *phantom, int/* dynamic */) {

 Phantom *rub = (Phantom *)phantom;

rub->type1.ang  = 90;

ksChangeObjectInLibRequest (&info, &rub);

switch (com) {

    case 1:

    case 2:

      type = com;

    break;

    case -1: //поставить в модель

if (ksIsCursorOrPlacementDocument () == 1)

{

      MoveObj(rub->type1.gr, *x, *y);

      StoreTmpGroup(rub->type1.gr); //поставить временную группу в вид

      ClearGroup(rub->type1.gr);

}

      break;

  }

//группа для фантома должна быть временная и обновляться при изменении вида

//отрисовки

  if (rub->type1.gr)

    DeleteObj(rub->type1.gr);

  rub->type1.gr = NewGroup(1); // временная группа

    if((flag==1 && com==1)||(flag==2 && com==2))

    type = 3;

//обновляется не только изображение но и меню для запроса

    switch (type ) {

      case 1:

        Circle (0, 0, 20, 1);

        info->commands =  !Квадрат !Треугольник ;

        flag = 1;

        break;

      case 2:

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

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

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

        info->commands =  !Окружность !Квадрат;

        flag = 2;

        break;

      case 3:

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

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

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

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

        info->commands =  !Окружность !Треугольник;

        flag = 0;

        break;

    }

  EndGroup();

  return 1;

}

void Cursor_Example (void) {

  type = 1;

  int j = 1;

  struct Phantom  rub;

  rub.type1.xBase = 0;

  rub.type1.yBase = 0;

  rub.type1.scale = 1;

  rub.phType        = 1;

  rub.type1.ang  = 0;

  double x, y;

  rub.type1.gr = NewGroup(1); // временная группа

    Circle (0, 0, 20, 1);

  EndGroup();

  RequestInfo  info;

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

  info.commands = "!Квадрат !Треугольник";

  info.callBack = CallBackС;//указываем адрес  функции обратной связи для Cursor   ,

Cursor(&info , &x, &y, &rub);

}; /* Cursor*/

}


ReadInt - Ввод целого числа
ReadInt  	Пример

Ввести целое число.

Аналог данной функции при использовании Automation - метод KompasObject::ksReadInt.

Синтаксис:

int ReadInt (char *smess, int def, int min, int max, int *R);

Входные параметры:

smess	- строка приглашения,
def	- предлагаемое значение по умолчанию,
min,max	- интервал возможных значений,
R	- результат ввода.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


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

void MessageEsc(void) {

Message(Отказ от ввода);

}

void Read_Example (void) {

int I;  long l;  double r;

char s[80], buf[80];

if (ReadInt(Ввод целого числа, 5, 0, 999, &i)) {

sprintf(buf, Результат= %4d, i);

Message(buf);

}

else MessageEsc();

if (ReadLong(Ввод длинного целого , 77, 0, 999, &l)) {

sprintf(buf, Результат= %4d, I);

Message(buf);

}

else MessageEsc();

if (ReadDouble(Ввод действительного числа, 5, 0, 999, &r)) {

sprintf(buf, Результат= %5.1f, r);

Message(buf);

}

else MessageEsc();

if (ReadString(Ввод строки, s))

Message(s);

else MessageEsc();

}; /* Read_Example */


ReadLong - Ввод длинного целого числа
ReadLong  	Пример

Ввести длинное целое число.

Синтаксис:

int ReadLong (char *smess, long def, long min, long max, long *R);

Входные параметры:

smess	- строка приглашения,
def	- предлагаемое значение по умолчанию,
min,max	- интервал возможных значений,
R	- результат ввода.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ReadDouble - Ввод вещественного числа
ReadDouble  	Пример

Ввести вещественное число.

Аналог данной функции при использовании Automation - метод KompasObject::ksReadDouble.

Синтаксис:

int ReadDouble (char *smess, double def, double min, double max, double *R);

Входные параметры:

smess	- строка приглашения,
def	- предлагаемое значение по умолчанию,
min,max	- интервал возможных значений,
R	- результат ввода.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksMaterialDlg.

Синтаксис:

int ksMaterialDlg(void *HWindow,

char * material,

int sizeStr,

double* plt,

double* kod_size,

char *kod_tip);

Входные параметры:

Hwindow	- идентификатор окна,
sizeStr	- размер строки,
Выходные параметры:

material	- строка-буфер, в которую будет помещено обозначение выбранного материала,
plt	- плотность материала,
kod_size	- четыре элемента: kod_size[0] - код вида типоразмера: 1 - толщина, 2 - диаметр, 0 - вид не определен, kod_size[1] - значение размера вида толщина, диаметр, диаметр вписанной окружности, значение А типоразмеров вида АхВ или АхВхС, kod_size[2] - значение В типоразмеров вида АхВ или АхВхС, kod_size[3] - значение С типоразмеров вида АхВхС,
kod_tip	- строка кодов типов сортаментов для отображения, через запятую; если 0 - отображается все.
Возвращаемое значение:

-1	- справочник материалов не подключился,
0	- при выходе из диалога справочника материалов по отмене,
1	- в случае удачного завершения.


ksExecDialPredefinedText - Получение предопределенного текста.
ksExecDialPredefinedText

Получить предопределенный текст из файла текстовых шаблонов.

Аналог данной функции при использовании Automation - метод KompasObject::ksExecDialPredefinedText.

Синтаксис:

int ksExecDialPredefinedText (void *HWindow, char * str, int sizeStr);

Входные параметры:

HWindow	- несущее окно,
sizeStr	- размер строки str.
Выходной параметр:

str	- строка-буфер, в которую будет помещен текст.
Возвращаемое значение:

указатель на интерфейс ksDynamicArray массива строк, тип массива - TEXT_LINE_ARR.	- в случае успеха,
NULL	- в случае неудачи.


ksExecDialPredefinedTextEx - Получение предопределенного текста.
ksExecDialPredefinedTextEx

Получить предопределенный текст из файла текстовых.

Аналог данной функции при использовании Automation - метод KompasObject::ksExecDialPredefinedTextEx.

Синтаксис:

int ksExecDialPredefinedText(void *HWindow, char * str, int sizeStr);

Входные параметры:

HWindow	- идентификатор окна,
sizeStr	- размер строки str.
Выходной параметр:

str	- строка-буфер, в которую будет помещен текст.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.


Сервисные функции

Функции данного раздела.


Функции

ChoiceFile

EnableTaskAccess

FullFileName

GetRightFileName

GetRightFileName

IsEnableTaskAccess

ksGetFullPathFromRelativePath

ksGetFullPathFromSystemPath

ksGetRelativePathFromFullPath

ksGetRelativePathFromSystemPath

ksGetSystemProfileString

ksGetSystemVersion

ksGetLookStyle

ksSetLookStyle

ksSystemPath

PumpWaitingMessages

RemoveUniqueFile

UniqueFileName


ksGetLookStyle- Получить тип отрисовки визуальной части
ksGetLookStyle

Получить тип отрисовки визуальной части.

Синтаксис:

long LIB_FUNC ksGetLookStyle();

Примечание:

Функция возвращает значения из ksTypeLookStyle.


ksSetLookStyle - Задать тип отрисовки визуальной части
ksSetLookStyle

Задать тип отрисовки визуальной части.

Синтаксис:

long LIB_FUNC ksSetLookStyle (long style);

Примечание:

Функция принимает значения из ksTypeLookStyle.


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

Получить версию системы.

Аналог данной функции при использовании Automation - метод KompasObject::ksGetSystemVersion.

Синтаксис:

void ksGetSystemVersion (int *iMajor, int *iMinor, int *iRelease, int *iBuild);

Выходные параметры:

iMajor	- старшее слово версии,
iMinor	- младшее слово версии,
iRelease	- номер выпуска внутри одной версии,
iBuild	- номер сборки внутри одного выпуска.
Примечание:

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

не выдается.


ksGetSystemVersion_example - пример использования
ksGetSystemVersion - пример использования

Получить версию системы

Пример :

Для версии 5.4 Release 2 Build 1

iMajor   = 5

iMinor   = 4

iRelease = 2

iBuild   = 1


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

Получить строку из INI-файла системы или из Registry.

Аналог данной функции при использовании Automation - метод KompasObject::ksGetSystemProfileString.

Синтаксис:

int ksGetSystemProfileString (char *lpSection,

char *lpKey,

char *lpReturnedString,

int iSize);

Выходные параметры:

lpSection	- имя секции,
lpKey	- имя ключа,
lpReturnedString	- буфер для выходной строки,
iSize	- размер буфера.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

1. Если lpReturnedString = 0 или iSize = 0, то возвращается необходимый размер буфера, иначе - возвращается количество переписанных байт (с учетом завершающего 0).

2. Если возвращаемое значение = 0, значит секция или ключ не были найдены ни в INI-файле, ни в реестре.


ksGetSystemProfileString_example - пример использования
ksGetSystemProfileString - пример использования

char buf[255];

if (ksGetSystemProfileString("Directories", "SYS", buf, 255))

Message(buf);

  else

     Error("Ключ не найден");


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetRelativePathFromSystemPath.

Синтаксис:

void ksGetRelativePathFromSystemPath (char *sourcePath,
char *destBuff,
int sizeDestBuff,
int pathType);

Входные параметры:

sourcePath	- полный путь к файлу,
sizeDestBuff	- размер буфера для возвращаемого значения,
pathType	- тип системного каталога.
Типы системных каталогов...

Возвращаемое значение:

destBuff	- буфер для сформированного относительного пути к файлу.


ksGetRelativePathFromSystemPath_example - пример использования
ksGetRelativePathFromSystemPath - пример использования

char * catalogName[] = {"каталог системных файлов",

                              "каталог библиотек"       ,

                              "каталог временных файлов",

                              "каталог конфигурации"   ,

                              "INI-файл" };

      //сформировать  полный путь к заданному файлу

      RequestInfo  info;

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

      info.title = "Каталоги файлов системы ";

      info.commands = "!Системные !Библиотеки !Временные !Конфигурация !INI-файл ";

      info.prompt = "Выберите нужный каталог";

      int j;

      static char *buf  = "user.ttt";

      char fileName[250];

      int typeCatalog;

      do {

        j = ::CommandWindow(&info);

        if (j > 0) {

          switch (j) {

            case 1 : typeCatalog = sptSYSTEM_FILES; break;//  Относительно каталога системных файлов

            case 2 : typeCatalog = sptLIBS_FILES  ; break;//  Относительно каталога файлов библиотек

            case 3 : typeCatalog = sptTEMP_FILES  ; break;//  Относительно каталога сохранения временных файлов

            case 4 : typeCatalog = sptCONFIG_FILES; break;//  Относительно каталога сохранения конфигурации системы

            case 5 : typeCatalog = sptINI_FILE    ; break;//  Относительно полного имени INI-файла системы

          }

          //полный путь

          ::ksGetFullPathFromSystemPath(buf ,          // относительный путь к файлу(без системного пути)

                                       fileName,      // (результат) полный путь к файлу

                                       250,           // размер буффера

                                       typeCatalog); // путь установленного типа см. ksSystemPath

          string mess = "Полный путь к файлу user.ttt \n";

          mess +=  catalogName[j -1];

          mess += " :\n";

          mess += fileName ;

          Message ((char*)mess.c_str());

          char  relName[250];

          //относительный путь

          ::ksGetRelativePathFromSystemPath(fileName,  //полный путь к файлу

                                             relName,    //(результат) относительный путь к файлу(без системного пути)

                                             250,  //размер буффера

                                             typeCatalog);    //путь установленного типа см. ksSystemPath

         mess = "Относительный путь к файлу \n";

         mess += fileName;

         mess += "\n";

         mess +=  catalogName[j -1];

         mess += " :\n";

         mess += relName;

         Message ((char*)mess.c_str());

        }

      } while (j > 0);


ksGetFullPathFromSystemPath - Сформировать полный путь к файлу
ksGetFullPathFromSystemPath 	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetFullPathFromSystemPath.

Синтаксис:

void ksGetFullPathFromSystemPath (char *relativePath,
char *destBuff,
int sizeDestBuff,
int pathType);

Входные параметры:

relativePath	- относительный путь к файлу,
pathType	- тип системной папки,
sizeDestBuff	- размер буфера для возвращаемого значения.
Типы системных папок...

Возвращаемое значение:

destBuff	- буфер для сформированного полного пути к файлу.


ksGetFullPathFromSystemPath_example - пример использования
ksGetFullPathFromSystemPath - пример использования

char * catalogName[] = {"каталог системных файлов",

                              "каталог библиотек"       ,

                              "каталог временных файлов",

                              "каталог конфигурации"   ,

                              "INI-файл" };

      //сформировать  полный путь к заданному файлу

      RequestInfo  info;

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

      info.title = "Каталоги файлов системы ";

      info.commands = "!Системные !Библиотеки !Временные !Конфигурация !INI-файл ";

      info.prompt = "Выберите нужный каталог";

      int j;

      static char *buf  = "user.ttt";

      char fileName[250];

      int typeCatalog;

      do {

        j = ::CommandWindow(&info);

        if (j > 0) {

          switch (j) {

            case 1 : typeCatalog = sptSYSTEM_FILES; break;//  Относительно каталога системных файлов

            case 2 : typeCatalog = sptLIBS_FILES  ; break;//  Относительно каталога файлов библиотек

            case 3 : typeCatalog = sptTEMP_FILES  ; break;//  Относительно каталога сохранения временных файлов

            case 4 : typeCatalog = sptCONFIG_FILES; break;//  Относительно каталога сохранения конфигурации системы

            case 5 : typeCatalog = sptINI_FILE    ; break;//  Относительно полного имени INI-файла системы

          }

          //полный путь

          ::ksGetFullPathFromSystemPath(buf ,          // относительный путь к файлу(без системного пути)

                                       fileName,      // (результат) полный путь к файлу

                                       250,           // размер буффера

                                       typeCatalog); // путь установленного типа см. ksSystemPath

          string mess = "Полный путь к файлу user.ttt \n";

          mess +=  catalogName[j -1];

          mess += " :\n";

          mess += fileName ;

          Message ((char*)mess.c_str());

          char  relName[250];

          //относительный путь

          ::ksGetRelativePathFromSystemPath(fileName,  //полный путь к файлу

                                             relName,    //(результат) относительный путь к файлу(без системного пути)

                                             250,  //размер буффера

                                             typeCatalog);    //путь установленного типа см. ksSystemPath

         mess = "Относительный путь к файлу \n";

         mess += fileName;

         mess += "\n";

         mess +=  catalogName[j -1];

         mess += " :\n";

         mess += relName;

         Message ((char*)mess.c_str());

        }

      } while (j > 0);


ksGetRelativePathFromFullPath - Сформировать относительный путь к файлу
ksGetRelativePathFromFullPath 	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetRelativePathFromFullPath.

Синтаксис:

void  ksGetRelativePathFromFullPath (char *mainFilePath,
char *sourcePath,
char *destBuff,
int sizeDestBuff);

Входные параметры:

mainFilePath	- полный путь к задающему файлу,
sourcePath	- полный путь к требуемому файлу,
sizeDestBuff	- размер буфера для возвращаемого значения.
Возвращаемое значение:

destBuff	- буфер для сформированного относительного пути к файлу.


ksGetRelativePathFromFullPath_example - пример использования
ksGetRelativePathFromFullPath - пример использования

char mainName[250];

      //имя задающего файла

      if((::ChoiceFile("*.*", "Все файлы (*.*)|*.*|", mainName, 250))){

        char fileName[250];

        if((::ChoiceFile("*.*", "Все файлы (*.*)|*.*|", fileName, 250))){

          char relName[250];

          //относительный путь

          ::ksGetRelativePathFromFullPath(mainName,  //полный путь к задающему файлу

                                         fileName,    //полный путь к требуемому файлу

                                         relName,      //(результат) относительный путь к требуемому файлу(без общей с задающим файлом части пути)

                                         250);  // размер буффера

          string mess = "Задающий файл - ";

          mess +=  mainName;

          mess += " \n";

          mess += "Полный путь -";

          mess += fileName ;

          mess += " \n";

          mess += "Относительный путь  -";

          mess += relName ;

          Message ((char*)mess.c_str());

          //полный путь

          char fullName[250];

          ::ksGetFullPathFromRelativePath(mainName,    //полный путь к задающему файлу

                                           relName,    //относительный путь к требуемому файлу(без общей с задающим файлом части пути)

                                           fullName,        //(результат) полный путь к требуемому файлу

                                           250);    // размер буффера

          mess = "Задающий файл - ";

          mess +=  mainName;

          mess += " \n";

          mess += "Относительный путь  -";

          mess += relName ;

          mess += " \n";

          mess += "Полный путь -";

          mess += fullName;

          mess += " \n";

          Message ((char*)mess.c_str());

        }

      }


ksGetFullPathFromRelativePath - Сформировать полный путь к файл
ksGetFullPathFromRelativePath 	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetFullPathFromRelativePath.

Синтаксис:

void ksGetFullPathFromRelativePath (char *mainFilePath,

char *relativePath,

char *destBuff,

int sizeDestBuff);

Входные параметры:

mainFilePath	- полный путь к задающему файлу,
relativePath	- относительный путь к требуемому файлу (без общей с задающим файлом части пути),
sizeDestBuff	- размер буфера для возвращаемого значения.
Возвращаемое значение:

destBuff	- буфер для сформированного относительного пути к файлу.


ksGetFullPathFromRelativePath_example - пример использования
ksGetFullPathFromRelativePath - пример использования

char mainName[250];

      //имя задающего файла

      if((::ChoiceFile("*.*", "Все файлы (*.*)|*.*|", mainName, 250))){

        char fileName[250];

        if((::ChoiceFile("*.*", "Все файлы (*.*)|*.*|", fileName, 250))){

          char relName[250];

          //относительный путь

          ::ksGetRelativePathFromFullPath(mainName,  //полный путь к задающему файлу

                                         fileName,    //полный путь к требуемому файлу

                                         relName,      //(результат) относительный путь к требуемому файлу(без общей с задающим файлом части пути)

                                         250);  // размер буффера

          string mess = "Задающий файл - ";

          mess +=  mainName;

          mess += " \n";

          mess += "Полный путь -";

          mess += fileName ;

          mess += " \n";

          mess += "Относительный путь  -";

          mess += relName ;

          Message ((char*)mess.c_str());

          //полный путь

          char fullName[250];

          ::ksGetFullPathFromRelativePath(mainName,    //полный путь к задающему файлу

                                           relName,    //относительный путь к требуемому файлу(без общей с задающим файлом части пути)

                                           fullName,        //(результат) полный путь к требуемому файлу

                                           250);    // размер буффера

          mess = "Задающий файл - ";

          mess +=  mainName;

          mess += " \n";

          mess += "Относительный путь  -";

          mess += relName ;

          mess += " \n";

          mess += "Полный путь -";

          mess += fullName;

          mess += " \n";

          Message ((char*)mess.c_str());

        }

      }


ChoiceFile - Интерактивный выбор файла по спецификации
ChoiceFile  	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksChoiceFile.

Синтаксис:

unsigned int ChoiceFile (char *ext, char *filtr, char *name, unsigned int sizeBuf);

Входные параметры:

ext	- расширение имени файла,
filtr	- фильтр поиска  (0 - формируется автоматически),
sizeBuf	- размер буфера для имени файла.
Выходные параметры:

name	- буфер для имени файла.
Возвращаемое значение:

длина имени файла	- в случае удачного завершения,
NULL	- в случае отказа от выбора.


FullFileName - Получить полное имя файла
FullFileName  	Пример

Получить полное имя файла.

Аналог данной функции при использовании Automation - метод KompasObject::ksFullFileName.

Синтаксис:

unsigned int FullFileName (char *oldName, char *newName, unsigned int sizeBuf);

Входные параметры:

oldName	- буфер для имени файла,
sizeBuf	- размер буфера для имени файла.
Выходные параметры:

newName	- буфер для полного имени файла.
Возвращаемое значение:

длина имени файла	- в случае удачного завершения,
NULL	- в случае отказа от выбора.
Примечание:

Если sizeBuf меньше требуемой длины - newName не формируется.


FullFileName, GetRightFileName - пример использования

void FileName_Example (void) {

char *s2;

//выделим буфер

s2 = new char [6];

strcpy(s2, "1.cdw");

unsigned int size2,size1 ;

//получим полное имя и поместим его в s2

size1=strlen(s2) +1;

if ((size2=FullFileName(s2, s2, size1)) >   size1) {

//требуемая длина size2 > size1, которую  мы предоставили

delete [] s2;

s2 = new char[size2];

GetRightFileName(s2, size2);

  	}

}; /* FileName_Example */


GetRightFileName - Получить действительное имя файла
GetRightFileName  	Пример

Получить действительное имя файла.

Синтаксис:

unsigned int GetRightFileName (char *fileName, unsigned int sizeBuf);

Входные параметры:

fileName	- буфер для имени файла,
sizeBuf	- размер буфера для имени файла.
Возвращаемое значение:

длина имени файла	- в случае удачного завершения,
NULL	- в случае неудачи.


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksUniqueFileName.

Синтаксис:

unsigned int UniqueFileName (char *buff, unsigned int sizeBuf);

Входные параметры:

buff	- буфер для имени файла,
sizeBuf	- размер буфера для имени файла.
Возвращаемое значение:

длина имени файла	- в случае удачного завершения,
NULL	- в случае неудачи.
Примечание:

Получить уникальное имя для создания служебного файла в процессе работы библиотеки и поместить его в буфер buff. Параметр sizeBuf определяет размер буфера. Имя регистрируется и запоминается системой. По окончании работы в случае, если файл с таким именем существует, он будет автоматически удален.


UniqueFileName, RemoveUniqueFile - пример использования

char fileName[255];

char buf[128];

FILE * f;

void CreateSysFile() {

f = fopen(fileName ,"r+t");

fputs("Это служебная информация",f);

fclose(f);

}

void ReadSysFile() {

f = fopen(fileName ,"rt");

fgets(buf, 128, f);

Message(buf);

fclose(f);

}

void UniqueFile_Example (void) {

//запросили имя служебного файла

UniqueFileName(fileName, 255);

CreateSysFile();

ReadSysFile();

//удалить служебный файл

RemoveUniqueFile(fileName);

}; /* UniqueFile_Example */


RemoveUniqueFile - Удалить уникальный служебный файл
RemoveUniqueFile  	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksRemoveUniqueFile.

Синтаксис:

void RemoveUniqueFile (char *nameFile);

Описание:

Удалить служебный файл с уникальным именем, предварительно полученным с помощью функции UniqueFileName.

Возвращаемое значение:

1	- в случае успешного выполнения,
0	- в случае ошибки.


ksSystemPath - Выдать системный путь установленного типа
ksSystemPath 	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksSystemPath.

Синтаксис:

int ksSystemPath (char *buff, int sizeBuff, int pathType);

Типы системных путей...

Входные параметры:

sizeBuff	- размер буфера для помещения строки пути,
pathType	- тип системного каталога.
Выходные параметры:

*buff	- строка полного пути (включая завершающий 0)
Возвращаемое значение:

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

Строка пути не должна завершаться символом '\' (за исключением случая корневого каталога устройства - "<drive>:\").


ksSystemPath - Пример использования

{

int BitCount;

char *Buff;

BitCount = ksSystemPath(NULL, 0, sptLIBS_FILES);

ksSystemPath(&Buff, BitCount, sptLIBS_FILES);

}


ksIsActiveProcessRunnig - Проверить, запущен ли построительный процесс
ksIsActiveProcessRunnig

Проверить, запущен ли в текущем графическом документе построительный процесс.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksIsActiveProcessRunnig.

Синтаксис:

int ksIsActiveProcessRunnig ();

Возвращаемое значение:

1	- процесс запущен,
0	- процесс не запущен,
-1	- в случае ошибки.


EnableTaskAccess - Разрешить/запретить доступ к задаче
EnableTaskAccess  	Пример

Разрешить/запретить доступ к задаче.

Аналог данной функции при использовании Automation - метод KompasObject::ksEnableTaskAccess.

Синтаксис:

void EnableTaskAccess (int enable);

Входной параметр:

enable	- признак разрешения доступа к задаче со стороны пользователя: TRUE - доступ разрешен, FALSE - доступ запрещен.
Примечание:

См. также IsEnableTaskAccess.


EnableTaskAccess, PumpWaitingMessages - пример использования

void EnableTaskAccess_Example (void)

{

EnableTaskAccess(0); //запретили доступ к задаче

for(int i=0; i<10000; i++)

{

LineSeg(10, 10+i, 20, 10+i, 1);

if(!(i%100))

{

//посылаем необрабатываемое сообщение своему приложению

//для выполнения процесса в фоновом режиме

::PostAppMessage(::GetCurrentTask(), 0, 0, 0);

// через каждые 100 отрезков обрабатываем очередь сообщений

// при этом Windows получает возможность выполнить свои

// действия (например переключиться на другую задачу)

PumpWaitingMessages();

}

}

EnableTaskAccess(1); //разрешили доступ к задаче

}; /* EnableTaskAccess_Example */


IsEnableTaskAccess - Проверить доступ к задаче
IsEnableTaskAccess  	Пример

Определить, разрешен ли доступ к задаче.

Аналог данной функции при использовании Automation - метод KompasObject::ksIsEnableTaskAccess.

Синтаксис:

int IsEnableTaskAccess ();

Возвращаемое значение:

0	- доступ к задаче со стороны пользователя запрещен,
1	- доступ к задаче со стороны пользователя разрешен.
Примечание:

См. также EnableTaskAccess.


IsEnableTaskAccess - пример использования

//проверяем доступ к задаче

bool flagEnableTaskAccess = IsEnableTaskAccess();

Message (flagEnableTaskAccess ? "Доступ разрешен" : "Доступ запрещен");

if (flagEnableTaskAccess)

{

//запрещаем доступ

EnableTaskAccess (0);

//проверяем доступ к задаче

flagEnableTaskAccess = IsEnableTaskAccess();

Message (flagEnableTaskAccess ? "Доступ разрешен" : "Доступ запрещен");

EnableTaskAccess (1);	// разрешить доступ

}


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

Установить "критический" процесс.

Аналог данной функции при использовании Automation - метод KompasObject::ksSetCriticalProcess.

Синтаксис:

int ksSetCriticalProcess ();

Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

Работа процесса, вызванного прикладной библиотекой (например, Cursor или Placement), может быть принудительно прервана переходом к другому действию (команде). Чтобы запретить возможность принудительного прерывания такого процесса, перед его активизацией требуется вызвать данную функцию. Она сделает следующий за ней процесс "критическим", и при попытке его принудительного завершения будет выдано сообщение о необходимости корректного завершения процесса. После штатного завершения процесса признак "критического" процесса снимается, и для следующих процессов (при необходимости) функцию требуется вызывать заново.


ksSetCriticalProcess - пример использования

reference pObj;

  RequestInfo  info;

  double x, y;

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

  info.prompt = "Укажите объект";

  int j =1;

  while(j) {

    if(YesNo("Включить критический режим?")==1)

      ksSetCriticalProcess ();

    j = Cursor(&info, &x ,&y, 0);

    if(j && ExistObj(pObj = FindObj(x, y, 1e6))){

      LightObj(pObj, 1);

      Message("Выделили объект");

      LightObj(pObj, 0);

    }

    int rez = ReturnResult();

    Message(rez == etLibraryClose ? "принудительное завершение выполнения библиотеки"

                                   : "Это не принудительное завершение");

    if (rez != etLibraryClose)

     j = YesNo("Продолжать?")==1;

  }


PumpWaitingMessages - Обработать список сообщений
PumpWaitingMessages  	Пример

Обработать список сообщений.

Аналог данной функции при использовании Automation - метод KompasObject::ksPumpWaitingMessages.

Синтаксис:

void PumpWaitingMessages();

Описание:

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


Сервисные библиотечные функции

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

Функции...


Сервисные функции
Функции

EditMacroMode

GetMacroParam

ksOpenHelpFile

ResultNULL

SetMacroParam

SystemControlStart

SystemControlStop


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksSystemControlStart.

Синтаксис:

int SystemControlStart (char *menuCommand);

Входные параметры:

menuCommand	- указатель на строку, помещаемую в меню для возврата в библиотеку.
Возвращаемое значение:

	тип выхода из режима работы под управлением системы КОМПАС.
Примечание:

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

Если строка не задана, то ей автоматически будет присвоено значение "Вернуться в библиотеку" (функция вернет scStoppedByMenuCommand).


SystemControlStart - Пример использования

void SystemControlStart_Example (void)

{

//построить заштрихованный квадрат

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

LineSeg (70, 30, 70, 80, 1);

LineSeg (70, 80, 20, 80, 1);

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

//штриховка появится только после возвращения управления библиотеке

SystemControlStart (0);

reference p = Hatch(0, 45, 2, 0, 0, 0);

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

LineSeg (70, 30, 70, 80, 1);

LineSeg (70, 80, 20, 80, 1);

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

EndObj();

};


SystemControlStop - Отдать управление библиотеке
SystemControlStop  	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksSystemControlStop.

Синтаксис:

void SystemControlStop ();

Примечание:

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


SystemControlStop - Пример использования

class TEskWin : public TDialog

{

public:

TEskWin(TWindow *parent);

protected:

void EvDialogCommand1();

void EvClose();

DECLARE_RESPONSE_TABLE(TEskWin);

void TEskWin::EvClose() {

TDialog::EvClose();

SystemControlStop();

}

//точка входа в библиотеку

extern "C" void far __export pascal LibraryEntry (unsigned int)

{

TWindow *parent = GetWindowPtr((HWND)GetHWindow());

if (parent)

{

TEskWin *eskw = new TEskWin(parent);

eskw->Create();  //немодальный диалог

SystemControlStart("Остановить ESK");

//в это место библиотеки вернемся только после выполнения SystemControlStop();

delete eskw;

}

};


ksOpenHelpFile - Открыть файл Помощи
ksOpenHelpFile  	Пример

Открыть файл помощи

Аналог данной функции при использовании Automation - метод KompasObject::ksOpenHelpFile

Синтаксис:

void ksOpenHelpFile (char * file, unsigned int command, unsigned int id);

Входные параметры:

file	- полное имя файла Справки,
command	- тип Справки (контекстная, по команде и т.д.),
id	- идентификатор страницы справки.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.
Примечание :

1. Синтаксис соответствует ::WinHelp.

2. Функция открывает файл Справки КОМПАС.

3. При закрытиии системы окно Справки закроется автоматически.


ksOpenHelpFile - Пример использования

//вызываем раздел помощи, идентификатор которого равен номеру команды

    ::ksOpenHelpFile ("profile.hlp", HELP_CONTEXT, 1);


ResultNULL - Обнулить результат работы библиотеки
ResultNULL

Обнулить результат работы библиотеки

Аналог данной функции при использовании Automation - метод KompasObject::ksResultNULL.

Синтаксис:

int ResultNULL();

Примечание:

Функция обнуляет результат работы библиотеки, если ошибка не фатальная.


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksExecuteLibraryCommand.

Синтаксис:

int ksExecuteLibraryCommand (char *fileName, int command);

Входные параметры:

fileName	- имя файла прикладной библиотеки,
command	- номер команды из библиотеки.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

Если задано короткое имя файла прикладной библиотеки (без пути), то эта библиотека ищется в подкаталоге …\Libs Главного каталога КОМПАС.


ksExecuteLibraryCommand - Пример использования

char fileName[255];

      ::strcpy(fileName, "C:\\libtest\\libtest.rtw");        	// имя файла библиотеки

      ksExecuteLibraryCommand(fileName, 3/*номер команды*/);

// выполнение команды 3 из библиотеки


ksGetLibraryTreeStruct

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetLibraryTreeStruct.

Синтаксис:

int LIB_FUNC ksGetLibraryTreeStruct (char * libName, TreeNodeParam * root);

Входные параметры:

libName	- полное имя файла библиотеки моделей, фрагментов, атрибутов
root	- заполняется параметрами корня дерева
Возвращаемое значение:

0	- в случае неудачи.


ksConvertLangStrEx

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

Аналог данной функции при использовании Automation - метод KompasObject::ksConvertLangStrEx.

Синтаксис:

int ksConvertLangStrEx (HINSTANCE hInstance, unsigned int strID,char* dst, int dstMaxLen );

Входные параметры:

hInstance	- HINSTANCE модуля, в котором находится переводимая строка,
strID	- идентификатор строки,
dst	- результат - переведенная строка,
dstMaxLen	- максимально допустимая длина строки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksConvertLangWindowEx

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

Аналог данной функции при использовании Automation - метод KompasObject::ksConvertLangWindowEx.

Синтаксис:

int ksConvertLangWindowEx (HWND hWnd, HINSTANCE hInstance, char* dlgID);

Входные параметры:

hWnd	- дескриптор окна,
hInstance	- HINSTANCE модуля, в котором находится переводимый диалог,
dlgID	- имя ресурса диалога.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


Функции вывода на экран

Функции данного раздела обеспечивают вывод на экран сообщений, подсказок, слайдов и обработку результата работы библиотечной функции.


Функции

DisplayLibraryName

DrawBitmap

DrawSlide

Error

FilePreviewFuncCallBack

GetHWindow

ksDrawKompasDocument

ksDrawKompasGroup

ksDrawSlideEx

ksDrawSlideFromFile

ksInitFilePreviewFunc

ksSlideBackground

MessageBoxResult

Message

Pause

ReturnResult

StrResult

WriteSlide

YesNo


Message - Выдача сообщения
Message  	Пример

Получить сообщение.

Аналог данной функции при использовании Automation - метод KompasObject::ksMessage.

Синтаксис:

void Message (char * s);

Входной параметр:

s	- строка с текстом сообщения.


Пример использования функций выдачи сообщений

void Message_Example (void) {

if (YesNo(«Выполнять действие»)

Message(«Пришло подтверждение»);

else Message(«Отказ»);

Pause(«Нажмите любую клавишу»);

Error(«Сообщение об ошибке»);

}; /* Message_Example */


Error - Выдача сообщения об ошибке
Error  	Пример

Получить сообщение об ошибке.

Аналог данной функции при использовании Automation - метод KompasObject::ksError.

Синтаксис:

void Error (char * s);

Входной параметр:

s	- строка с текстом сообщения.
Примечание::

После вывода сообщения будет ожидаться нажатие любой клавиши.


Pause - Выдача сообщения с ожиданием нажатия клавиши
Pause  	Пример

Получить сообщение с ожиданием нажатия клавиши.

Синтаксис:

void  Pause (char * s);

Входной параметр:

s	- строка с текстом сообщения.
Примечание:

После вывода сообщения будет ожидаться нажатие любой клавиши.


YesNo - Подтверждение или отказ от действия
YesNo  	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksYesNo.

Синтаксис:

int YesNo (char * s);

Входной параметр:

s	- строка сообщения.
Возвращаемое значение:

1	- при подтверждении действия,
0	- при отказе,
-1	- при отмене действия.
Примечание:

Подтверждение означает нажатие в диалоге кнопки Да (Yes, OK); отказ - нажатие кнопки Нет (No); отмена действия - нажатие кнопки Отмена (Cansel).


ReturnResult - Получить номер ошибки
ReturnResult  	Пример

Получить номер ошибки.

Аналог данной функции при использовании Automation - метод KompasObject::ksReturnResult.

Синтаксис:

int ReturnResult (void);

Возвращаемое значение:

код ошибки в зависимости от типа документа: графического или документа-модели при выполнении библиотечной программы
0	- при успешном завершении программы..
Примечание:

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

2. Ошибка с номером>0 не является фатальной. Отрицательный номер ошибки приводит к завершению программы.

3. Текст ошибок можно получить, используя функцию StrResult..

4. Сообщение с текстом ошибки можно получить, используя функцию MessageBoxResult..

5. Сбросить ошибку, если она не фатальная, можно, используя функцию ResultNULL..


ReturnResult, StrResult, MessageBoxResult - пример использования

void ReturnResult _Example (void) {

char s[80];

LineSeg (0, 0, 0, 0, 1); /* совпадающие узлы отрезка */

if (ReturnResult ()) {

/* выдать сообщение в специальном окне */

MessageBoxResult();

};

Circle (10, 10, 0, 1); /* нулевой радиус окружности */

if (ReturnResult ()) {

StrResult(s, 80);

Error(s);

}:

}; /* ReturnResult */


StrResult - Получить текст сообщения об ошибке
StrResult  	Пример

Получить текст сообщения об ошибке.

Аналог данной функции при использовании Automation - метод KompasObject::ksStrResult.

Синтаксис:

void StrResult (char *str, int limit);

Входной параметр:

limit	- ограничение по длине строки.
Возвращаемое значение:

s	- строка сообщения, соответствующая результату работы библиотеки.
Примечание:

Функция сбрасывает флаг ошибки в случае, если она не является фатальной.


MessageBoxResult - Выдать сообщение об ошибке на экран
MessageBoxResult  	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksMessageBoxResult.

Синтаксис:

void MessageBoxResult (void);

Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.
Примечание:

Функция сбрасывает флаг ошибки в случае, если она не является фатальной.


DrawBitmap - Отрисовать растровый слайд
DrawBitmap  	Пример

Отрисовать растровый слайд.

Аналог данной функции при использовании Automation - метод KompasObject::ksDrawBitmap.

Синтаксис:

int DrawBitmap (void *Hwindow,  unsigned int BitmapID);

Входной параметр:

HWindow	- дескриптор окна, в котором нужно отрисовать BITMAP-слайд
BitmapID	- идентификатор BITMAP в файле ресурсов.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


DrawBitmap, DrawSlide - пример использования

#ifndef __OWL_WINDOW_H

#include <owl\window.h>

#endif

void DrawBitmap_Example (void) {

// Пример файла ресурсов

//

//описание слайда

100 RCDATA {

  SC, 0,

  LS, 2, 1,

  LN, 12, 59, 179, 59,

  END_SLIDE

}

200 BITMAP 1.bmp

extern TModule *module ;

TWindow *st = new  TWindow (GetWindowPtr((HWND)GetHWindow()), 0);

st->Attr.X =300;

st->Attr.Y =30;

st->Attr.W =170;

st->Attr.H =160;

st->Create();   //создаем окно для отрисовки слайда

DrawBitmap ((void*) st->HWindow, 100);

DrawSlide ((void*) st->HWindow, 200);

Message(Вывод слайда);

delete st;

}; /* DrawBitmap_Example */


DrawSlide - Отрисовать векторный слайд
DrawSlide  	Пример

Отрисовать векторный слайд.

Аналог данной функции при использовании Automation - метод KompasObject::ksDrawSlide.

Синтаксис:

int DrawSlide (void *Hwindow, unsigned int SlideID);

Входной параметр:

HWindow	- дескриптор окна, в котором нужно отрисовать слайд
SlideID	- идентификатор слайда в файле ресурсов.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


WriteSlide - Записать векторный слайд
WriteSlide  	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksWriteSlide.

Синтаксис:

int WriteSlide (char *filename, unsigned int ID, double x, double y);

Входной параметр:

filename	- имя файла для записи,
ID	- идентификатор слайда в файле ресурсов,
x,y	- базовая точка.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


WriteSlide - пример использования

#ifndef __OWL_WINDOW_H

#include <owl\window.h>

#endif

void WriteSlide_Example (void) {

char name[128];

double x, y;

int slideID;

  // ввод имени файла для записи слайда

  if (SaveFile(*.rc, name)){

     if (Cursor(Укажите точку привязки слайда,&x,&y,NULL,NULL)) {

       if (ReadInt(Введите идентификатор слайда, 100, 0, 32000, &slideID)) {

         if (!WriteSlide (name, slideID, x,  y ))

           Error(Группа селектирования пуста);

         ClearGroup(0);

       }

     }

  }

}; /* DrawBitmap_Example */


ksSlideBackground - Изменить умолчательный цвет фона для отрисовки слайда
ksSlideBackground  	Пример

Изменить умолчательный цвет фона для отрисовки слайда.

Аналог данной функции при использовании Automation - метод KompasObject::ksSlideBackground.

Синтаксис:

void ksSlideBackground (COLORREF color);

Входной параметр:

color	- цвет фона слайда.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksSlideBackground - пример использования

{

ksSlideBackground (15);

}


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksDrawSlideFromFile.

Синтаксис:

int ksDrawSlideFromFile (void  *Hwindow,

         char * fileName);

Входной параметр:

Hwindow	- идентификатор окна,
fileName	- полное имя файла.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

Функция предназначена для отладки слайдов. Позволяет просмотреть отредактированный слайд в окне диалога без перетрансляции тестовой библиотеки.


ksDrawSlideFromFile - Пример использования

//фрагмент из  файла  .rc

1000 DIALOG 84, 66, 204, 133

EXSTYLE WS_EX_DLGMODALFRAME

STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

CAPTION ""

FONT 8, "MS Sans Serif"

{

 CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE |

WS_TABSTOP, 8, 111, 50, 14

 CONTROL "Cancel", IDCANCEL, "BUTTON", BS_PUSHBUTTON | WS_CHILD |

WS_VISIBLE | WS_TABSTOP, 72, 111, 50, 14

 CONTROL "", IDD_SHOW, "static", SS_BLACKFRAME | WS_CHILD | WS_VISIBLE |

WS_BORDER, 7, 3, 105, 97

}

class  TShowStatic;

//описание класса обслуживающего диалог

class TModDialog :public TDialog

{

public:

  UINT IdSlide;

TShowStatic*  Show;

TModDialog (TWindow *ptParent);

  UINT GetIdSlide() { return IdSlide; };

};

//описание класса обслуживающего элемент вывода слайда

class TShowStatic : public TStatic {

public:

 TShowStatic (TModDialog * ptParent, int resourceId);

protected :

void              EvPaint();

DECLARE_RESPONSE_TABLE(TShowStatic);

};

DEFINE_RESPONSE_TABLE1(TShowStatic,TStatic)

EV_WM_PAINT,

END_RESPONSE_TABLE;

//--------------------------------------------------------------------------

-----

//

//--------------------------------------------------------------------------

-----

TShowStatic :: TShowStatic (TModDialog *ptParent, int resourceId):

 TStatic(ptParent, resourceId) {

SetBkgndColor(GetSysColor(COLOR_APPWORKSPACE));

}

//--------------------------------------------------------------------------

-----

//

//--------------------------------------------------------------------------

-----

void TShowStatic ::EvPaint()

{

  TStatic::EvPaint();

  TModDialog * d = TYPESAFE_DOWNCAST(Parent, TModDialog);

  if (d)

//    DrawSlide ((void *) HWindow, d->GetIdSlide());

//    DrawBitmap ((void *) HWindow, d->GetIdSlide());

//в файле "c:\\libtest\\1.rc"  - находится отлаживаемый слайд

    ksDrawSlideFromFile ((void *) HWindow, "c:\\libtest\\1.rc");

}

//--------------------------------------------------------------------------

-----

//

//--------------------------------------------------------------------------

-----

TModDialog :: TModDialog (TWindow *ptParent)

 : TDialog(ptParent, 1000, module){

  IdSlide = 100;

Show=new TShowStatic(this,IDD_SHOW);

}

//--------------------------------------------------------------------------

-----

// Функция, вызывающая диалог с отрисовкой слайда или битмапа

//--------------------------------------------------------------------------

-----

void TestShowDialog() {

TModDialog *pDialog;

pDialog = new TModDialog(GetWindowPtr((HWND)GetHWindow()));

pDialog->Execute();

delete pDialog;

}

//файл 1.rc

100 RCDATA {

  GB, 168, 158,

  SC, 1,

  LS, 0, 1,

  LN, 69, 57, 69, 26,

  LN, 69, 26, 74, 18,

  LN, 74, 18, 101, 18,

  LN, 101, 18, 105, 26,

  LN, 105, 26, 105, 57,

  LN, 74, 37, 101, 37,

  AR1, 114, 57, 45, 74, 37, 69, 57,

  AR1, 61, 57, 44, 105, 57, 101, 37,

  AR1, 80, 28, 11, 69, 28, 74, 37,

  AR1, 94, 28, 11, 101, 37, 105, 28,

  LN, 69, 57, 69, 88,

  LN, 69, 88, 74, 96,

  LN, 74, 96, 101, 96,

  LN, 101, 96, 105, 88,

  LN, 105, 88, 105, 57,

  LN, 74, 77, 101, 77,

  AR1, 114, 57, 45, 69, 57, 74, 77,

  AR1, 62, 57, 44, 103, 77, 105, 57,

  AR1, 80, 86, 11, 74, 77, 69, 86,

  AR1, 95, 86, 11, 106, 86, 100, 76,

  SC, 0,

  LS, 2, 1,

  LN, 62, 57, 112, 57,

  SC, 0,

  TS, 0,

  MA, 45, 112,

  TX, "ГОСТ 15524-70\0"

  MA, 37, 127,

  TX, "Класс точности А\0"

  MA, 37, 142,

  TX, "  гайки высокие\0"

  END_SLIDE

}


ksDrawSlideEx - отрисовать слайд (расширенная функция)
ksDrawSlideEx

Отрисовать слайд (расширенная функция).

Аналог данной функции при использовании Automation - метод KompasObject::ksDrawSlideEx.

Синтаксис:

int ksDrawSlideEx (void *HWindow,

unsigned int SlideID,

HINSTANCE hInstance);

Входные параметры:

Hwindow	- идентификатор окна,
SlideID	- номер слайда в файле ресурсов приложения
hInstance	- NULL - отрисовка в текущей библиотеке,    hInstance - в подключаемой.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.


ksDrawKompasGroup - Отрисовка группы в виде слайда.
ksDrawKompasGroup	Пример

Отрисовать группу в виде слайда в окне.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDrawKompasGroup.

Синтаксис:

int ksDrawKompasGroup (void * HWindow, reference gr);

Входные параметры:

Hwindow	- несущее окно,
gr	- указатель на группу.
Описание:

Функция выполняет отрисовку указанной группы в виде слайда в присланном окне.


ksDrawKompasGroup - пример использования

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

  if (ksGetCurrentDocument(1)) {

    TWindow *st = new  TWindow (GetWindowPtr((HWND)GetHWindow()), 0);

    st->Attr.X =300;

    st->Attr.Y =30;

    st->Attr.W =170;

    st->Attr.H =160;

    st->Create();   //создали окно, в котором хотим отрисовать группу

    //создаем группу с изображением прямоугольника

    reference gr = NewGroup(1);

      Mtr(20, 15, 45, 1);

      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();

    EndGroup();

    //отрисовываем группу в окне st

    ksDrawKompasGroup ((void *)st->HWindow,             // несущее окно

                                 gr);             //группа

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

    TClientDC dc(*st);

    HPEN hPen = (HPEN) ::SelectObject(dc, ::CreatePen(PS_SOLID,2,RGB(0,0,255)));

    dc.MoveTo(0, 0);

    dc.LineTo(170, 0);

    dc.LineTo(170, 160);

    dc.LineTo(0, 160);

    dc.LineTo(0, 0);

    ::DeleteObject(::SelectObject(dc, hPen));

    Message("смотри");

    delete st;

  }

  else

    Error ("Графический документ не активен");


ksInitFilePreviewFunc - Инициализировать адрес пользовательской функции просмотра пользовательского файла.
ksInitFilePreviewFunc	Пример

Инициализировать пользовательскую функцию просмотра пользовательского файла.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksInitFilePreviewFunc.

Синтаксис:

int ksInitFilePreviewFunc (FilePreviewFuncCallBack func);

Входные параметры:

func	- пользовательская функция просмотра пользовательского файла.
Возвращаемое значение:

1	- в случае, если функция отрисовала файл,
0	- в случае, если функция не отрисовала файл.
Примечание:

Если функция не отрисовала файл, то будет предпринята попытка отрисовать его системой.


ksInitFilePreviewFunc - пример использования

//------------------------------------------------------------------------------

// функция обратной связи для отображения в окне предварительного просмотра

// файлов не документов КОМПАС

// ---

int far __export pascal MyPreviewFunc(HWND HWindow,  // идентификатор окна просмотра

  char * fileName){ // файл, который нужно показать в окне просмотра

  if (fileName) {

    char *c = strrchr(fileName, '.');

    if (c && strcmp(c, ".cdw") && strcmp(c, ".frw") && strcmp(c, ".spw") && strcmp(c, ".kdw")) {

      //если не документ КОМПАС отобразим имя файла

      c = strrchr(fileName, '\\');

      if (c) {

        TRect rect;

        ::GetClientRect(HWindow, &rect);

        TWindow *staticW = new TWindow(HWindow);

        TDC *dc = new TClientDC(*staticW);

        dc->TextOut(40, (rect.bottom - rect.top)*0.5-10, c+1, strlen(c+1));

        delete dc;

        delete staticW;

        return 1;

      }

    }

  }

  return 0;

}

//------------------------------------------------------------------------------

//

// ---

extern "C" void far __export __pascal  LibraryEntry(unsigned int com){

  switch (com) {

    case 1:  {

      //установим адрес нашей функции просмотра

      ksInitFilePreviewFunc(MyPreviewFunc);

      char fileName[250];

      //выберем файл

      if((ksChoiceFile(0,"Все файлы (*.*)|*.*|", fileName, 250, 1)) != 0)

        Message( fileName);

      // обнулим адрес

      ksInitFilePreviewFunc(0);

      // выберем файл

      if((ksChoiceFile(0,"Все файлы (*.*)|*.*|", fileName, 250, 1)) != 0)

        Message( fileName);

      break;

    }

  }

}


FilePreviewFuncCallBack - Прототип функции обратной связи для функций выбора файлов
FilePreviewFuncCallBack  	Пример

Прототип функции обратной связи для функций выбора файлов.

Синтаксис:

typedef int (far __export pascal *FilePreviewFuncCallBack) (HWND HWindow, char * fileName);

Входные параметры:

HWindow	- идентификатор окна просмотра,
fileName	- файл, который нужно показать в окне просмотра.
Возвращаемое значение:

1	- в случае, если функция отрисовала файл,
0	- в случае, если функция не отрисовала файл.


GetHWindow - Получить идентификатор главного окна
GetHWindow  	Пример

Получить идентификатор главного окна.

Аналог данной функции при использовании Automation - метод KompasObject::ksGetHWindow.

Синтаксис:

void * far __export pascal GetHWindow (void);

Возвращаемое значение:

	идентификатор (дескриптор) главного окна, который используется функциями WINDOWS для работы с окнами.


GetHWindow- пример использования

void GetHWindow_Example (void) {

/* выдача сообщения в главном окне */

MessageBox(GetHWindow(), Текст заголовка окна,

Текст сообщения,

MB_ICONINFORMATION);

}; /* GetHWindow_Example */


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

Показать КОМПАС-документ в виде слайда в окне.

Синтаксис:

int  ksDrawKompasDocument (void * HWindow, char * docFileName);

Входные параметры:

Hwindow	- несущее окно,
docFileName	- полное имя файла документа,
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Действие функции распространяется также на фрагменты и модели из библиотек. При этом имя файла должно иметь вид "c:\gr\lib1.l3d|детали|литье|фланец",
где
c:\gr\lib1.l3d 	- имя файла библиотеки,

|детали|литье| 	- разделы, подразделы внутри библиотеки,

фланец 	- имя фрагмента или модели.


ksDrawKompasDocument - пример использования

TWindow *st = new  TWindow (GetWindowPtr((HWND)GetHWindow()), 0);

  st->Attr.X =300;

  st->Attr.Y =30;

  st->Attr.W =170;

  st->Attr.H =160;

  st->Create();   //создали окно, в котором хотим отрисовать слайд

  ksDrawKompasDocument((void*) st->HWindow,      	// несущее окно

                        	      "d:\\0\\fg1.frw" ); 	// полное имя файла документа

 Message("Слайд КОМПАС");

  delete st;


Функции работы с динамическими массивами

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


Функции работыс динамическими массивами
Функции

AddArrayItem

ClearArray

CreateArray

DeleteArray

ExcludeArrayItem

GetArrayCount

GetArrayItem

GetArrayType

GetUserArrayItem

SetArrayItem


CreateArray - Создать динамический массив
CreateArray  	Пример

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

Синтаксис:

reference CreateArray (int type, DeleteFunc f);

Входной параметр:

f	- функция удаления для пользовательского динамического массива,
type	- Типы динамических массивов
Возвращаемое значение:

указатель на созданный массив	- в случае успеха,
0	- в случае ошибки.


Пример использования функций работы с дин. массивами

struct User_Data	// определение структуры пользовательского массива

{

int I;

char *c;

float f;

};

//функция удаляет элемент User_Data пользовательского массива

void far __export pascal DelUserFunc (void * val)

{

User_Data  *tmp = (User_Data *)val;

Message(tmp->c);

delete [] tmp->c;

}

//функция добавляет элемент User_Data в пользовательский массив

int CreateUserItem (reference arr, int i, char *c, float f)

{

User_Data* tmp = new User_Data;

tmp->i = I;

tmp->c = new char [strlen(c) +1];

strcpy (tmp->c, c);

tmp->f = f;

return  AddArrayItem (arr, -1, tmp, 0);

}

//функция выдает содержимое элемента User_Data

void ShowUserItem (User_Data & tmp)

{

char buf[128];

sprintf (buf, " i=%d f=%f\n c=%s ", tmp.i, tmp.f, tmp.c);

Message (buf);

}

void Array_Example (void)

{

User_Data *tmp;

//создадим пользовательский массив неопределенной длины

reference userArr = CreateArray (USER_ARR, DelUserFunc);

if (!CreateUserItem (userArr, 1, "январь", 31.))

MessageBoxResult();

if (!CreateUserItem (userArr, 2, "февраль", 29.))

MessageBoxResult();

if (!CreateUserItem (userArr, 3, "март", 31.))

MessageBoxResult();

//просмотрим массив

for (int i=0; i< GetArrayCount(userArr); i++)

{

// получим указатель на элемент массива

GetUserArrayItem (userArr, i, &(void*)tmp);

ShowUserItem (*tmp);

}

ClearArray (userArr);	//очистить массив

Message ("удаляем массив");

DeleteArray (userArr);

};


DeleteArray - Удалить динамический массив
DeleteArray  	Пример

Удалить динамический массив.

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksDeleteArray.

Синтаксис:

int DeleteArray (reference p);

Входной параметр:

p	указатель на массив
Возвращаемое значение:

1	- в случае успеха,
0	- в случае ошибки.


ClearArray - Очистить динамический массив
ClearArray  	Пример

Очистить динамический массив.

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksClearArray.

Синтаксис:

int CreateArray (reference p);

Входной параметр:

p	указатель на массив
Возвращаемое значение:

1	- в случае успеха,
0	- в случае ошибки.


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

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

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksGetArrayType.

Синтаксис:

int GetArrayType (reference p);

Входной параметр:

p	указатель на массив
Возвращаемое значение:

	тип динамического массива.


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

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

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksGetArrayCount.

Синтаксис:

int GetArrayCount (reference p);

Входной параметр:

p	указатель на массив
Возвращаемое значение:

	количество элементов массива.


AddArrayItem - Добавить элемент динамического массива
AddArrayItem  	Пример

Добавить элемент в указанный динамический массив перед элементом массива с заданным индексом.

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksAddArrayItem.

Синтаксис:

int AddArrayItem (reference p, int numb, void * value, int size);

Входной параметр:

p	- указатель на массив,
numb	- номер элемента массива,
value	- указатель на структуру-источник, содержащую значение,
size	- указатель на структуру-источник, содержащую длину элемента.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи
Примечание:

Если значение numb =1,  элемент добавляется в конец списка.


ExcludeArrayItem - Удалить элемент динамического массива
ExcludeArrayItem  	Пример

Удалить элемент динамического массива.

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksExcludeArrayItem.

Синтаксис:

int ExcludeArrayItem (reference p, int numb);

Входной параметр:

p	- указатель на массив,
numb	- номер элемента массива,
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи
Примечание:

Если  значение numb =1, удаляется последний элемент.


GetArrayItem - Получить значение элемента массива
GetArrayItem  	Пример

Получить значение элемента массива.

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksGetArrayItem.

Синтаксис:

int GetArrayItem (reference p, int numb, void * value, int size);

Входные параметры:

p	- указатель на массив,
numb	- номер элемента массива (-1 означает последний элемент),
size	- длина области памяти.
Входные параметры:

value	-  указатель на область памяти, куда будет помещено значение,
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи


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

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

Синтаксис:

int GetUserArrayItem (reference p, int numb, void * value);

Входной параметр:

p	- указатель на массив,
numb	- номер элемента массива,
Выходной параметр:

value	- указатель на элемент пользовательского динамического массива.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи
Примечание:

Если  значение numb =1, берется последний элемент.


SetArrayItem - Установить значение элемента динамического массива
SetArrayItem  	Пример

Установить значение элемента динамического массива.

Аналог данной функции при использовании Automation - метод ksDynamicArray::ksSetArrayItem.

Синтаксис:

int SetArrayItem (reference p, int numb, void * value, int size);

Входные параметры:

p	- указатель на массив,
numb	- номер элемента массива (-1 означает последний элемент),
size	- длина структуры-источника.
Выходной параметр:

value	- указатель на элемент пользовательского динамического массива.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи
Примечание:

Если значение numb =1, элемент добавляется в конец списка.


ksCreateViewObject - cоздать объект, используя визуальный процесс
ksCreateViewObject 	Пример...

Создать объект, используя визуальный процес.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateViewObject.

Синтаксис:

reference ksCreateViewObject (unsigned short int type);

Входной параметр:

type	- тип объекта (см. ltdefine.h  LINESEG_OBJ...ORDINATEDIMENSION_OBJ).
Возвращаемое значение:

	указатель на созданный объект.
Примечание:

Функция распространяется на все объекты вида, кроме:

LAYER_OBJ	-слой
CONTOUR_OBJ	-контур
MACRO_OBJ	-нетипизированный макроэлемент
FRAGMENT_OBJ	-вставной фрагмент
ELLIPSE_ARC_OBJ	-дуга эллипса


ksCreateViewObject, ksEditViewObject - пример использования

//  создать объект в интерактивном режиме (позиционная линия выноски)

  reference posLeader = ksCreateViewObject(POSLEADER_OBJ );

  if (posLeader){

    LightObj(posLeader, 1);

    Message("Позиционная линия выноски");

    LightObj(posLeader, 0);

    if (ksEditViewObject(posLeader)) {

      LightObj(posLeader, 1);

      Message("Отредактированная позиционная линия выноски");

      LightObj(posLeader, 0);

    }

  }


Функции построения примитивов

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


Функции создания графических примитивов
Функции

AnnArcByPoint

AnnLineSeg

ArcBy3Points

ArcByAngle

ArcByPoint

Circle

Equidistant

Hatch

ksColouring

ksConicArc

ksEllipseArc

ksEllipse

ksHatch

ksInsertRaster

ksParEllipseArc

ksPointsOnCurveByStep

ksPointsOnCurve

ksRectangle

ksRegularPolygon

Line

LineSeg

PointArraw

Point


Point - Создание точки
Point	Пример

Проставить точку.

Синтаксис:

reference Point (double x, double y,

unsigned int style);

Входные параметры:

x, y	- координаты точки,
style	- стиль отрисовки точек.
Возвращаемое значение:

указатель на графический объект Точка	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объект создается в текущем слое текущего вида.


Point - пример использования

void Point_Example (void)

{

// задание точек

Point (10, 10, 1);

Point (20, 10, 2);

};


PointArraw - Ввод в модель значка определенного типа
PointArraw 	Пример

Проставить значок в графическом документе.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPointArraw

Синтаксис:

reference PointArraw (double x, double y,

double ang,

unsigned char term);

Входные параметры:

x, y	- координаты точки привязки значка,
ang	- угол поворота значка,
term	- тип отрисовки значка.


PointArraw_example - пример использования
PointArraw - пример использования

{

Macro (0);

LineSeg (50, 100, 100, 100, 2);

PointArraw (50,	100,	0 /*ang*/,	1 /* стрелка изнутри*/);

PointArraw (100,	100,	180/*ang*/,	1 /* стрелка изнутри*/);

reference pMacro = EndObj();

LightObj (pMacro, 1);

Message ("Имитация размерной линии");

LightObj (pMacro, 0);

}


ksPointsOnCurveByStep - расстояние между точками на кривой
ksPointsOnCurveByStep	Пример

Получить массив точек, расположенных на кривой с заданным шагом.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksPointsOnCurveByStep.

Синтаксис:

reference ksPointsOnCurveByStep (reference curve,

double step);

Входные параметры:

curve	- указатель на кривую,
step	- шаг точек вдоль кривой.
Возвращаемое значение:

указатель на динамический массив математических точек ksDynamicArray типа POINT_ARR.	- в случае успеха,
0	- в случае неудачи.


ksPointsOnCurveByStep - пример использования

double x = 100, y = 100, step = 10.5;

      // указанная кривая

      reference pObj = ::FindObj(x, y, 1000);

      if (::ExistObj(pObj)) {       // проверим существование объекта

          reference arr = ::ksPointsOnCurveByStep(pObj, step); // массив точек

          uint count    = ::GetArrayCount(arr);                // количество полученных точек

MathPointParam point;

// нарисуем точки

          for (uint i = 0; i < count; i++)

            if (::GetArrayItem(arr, i, &point, sizeof(MathPointParam)))

              ::Point(point.x, point.y, 4);

      }


Line - Создание линии
Line  	Пример

Создать прямую линию через указанную точку под заданным углом.

Синтаксис:

reference Line (double x, double y,

double ang);

Входные параметры:

x, y	- координаты точки,
ang	- угол наклона прямой
Возвращаемое значение:

указатель на графический объект Линия.	- в случае успеха,
0	- в случае неудачи.
Примечание:

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


Line - пример использования

void Line_Example (void)

{

reference l1, l2, l3, l4 ;

double B=100, H=40;

// задание четырех прямых прямоугольника длиной B и высотой H

l1 = Line (0, 0, 90);

l2 = Line (0, H,  0);

l3 = Line (B, H, 90);

l4 = Line (B, 0,  0);

};


LineSeg - Создание отрезка прямой линии
LineSeg  	Пример

Создать отрезок прямой линии.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLineSeg.

Синтаксис:

reference LineSeg (double x1,

double y1,

double x2,

double y2,

unsigned int style);

Входные параметры:

x1, y1	- координаты первой точки отрезка,
x2, y2	- координаты второй точки отрезка,
style	- стиль линии.
Возвращаемое значение:

указатель на отрезок	- в случае удачного завершения,
0	- в случае неудачи.


LineSeg - пример использования

void LineSeg_Example (void)

{

int t = 1;	//сплошная основная

reference l1, l2, l3, l4 ;

double B=100, H=40;

//задание 4-х отрезков прямоугольника

//длиной B и высотой H

l1 = LineSeg (0, 0, 0, H, t);

l2 = LineSeg (0, H, B, H, t);

l3 = LineSeg (B, H, B, 0, t);

l4 = LineSeg (B, 0, 0, 0, t);

};


Circle - Создание окружности
Circle  	Пример

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCircle.

Создать окружность

Синтаксис:

reference Circle (double xc, double yc,

double rad,

int type);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус окружности,
type	- стиль линии.
Возвращаемое значение:

указатель на окружность	- в случае удачного завершения,
0	- в случае неудачи.


Circle - пример использования

void Circle_Example (void)

{

int tc = 1;	/сплошная основная

int tl = 3;	/осевая линия

reference l1, l2, c1, c2 ;

double x=30, y=20;

double rad1=5; 	//радиус внутренней окружности

double rad2=8; 	//радиус внешней окружности

//задание осевых линий

l1 = LineSeg (x-rad2-5, y,x+rad2+5, y, tl);

l2 = LineSeg (x, y-rad2-5, x, y+rad2+5, tl);

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

c1 = Circle (x, y, rad1, tc);

c2 = Circle (x, y, rad2, tc);

};


ArcByAngle - Создание дуги окружности
ArcByAngle  	Пример

Создать дугу окружности

Аналог данной функции при использовании Automation - метод ksDocument2D::ksArcByAngle.

Синтаксис:

reference ArcByAngle (double xc,

double yc,

double rad,

double f1,

double f2,

int n,

int type);

Входные параметры:

xc, yc	- координаты центра дуги,
rad	- радиус дуги,
f1, f2	- начальный и конечный угол дуги в градусах,
n	- направление отрисовки дуги:  1 - против часовой стрелки,  -1 - по часовой стрелке,
type	- стиль линии.
Возвращаемое значение:

указатель на дугу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объект создается в текущем слое текущего вида.


Arc - пример использования

void Arc_Example (void)

{

int t1 = 1;	// сплошная основная

int t2 = 2; 	// сплошная тонкая

//задание дуги

ArcByAngle (50, 50, 40, 0, 90, 1, t1);

//задание дуги по трем точкам

ArcBy3Points (80, 50, 50, 80, 50, 50, t2);

// задание дуги по центру, раиусу и 2-м точкам

ArcByPoint (50, 50, 100, 50, 50, 100, 1, t2);

};


ArcBy3Points - Создание дуги окружности по трем точкам
ArcBy3Points  	Пример

Создать дугу окружности по трем точкам

Аналог данной функции при использовании Automation - метод ksDocument2D::ksArcBy3Points.

Синтаксис:

reference ArcBy3Points (double x1,

 double y1,

 double x2,

 double y2,

 double x3,

 double y3,

 int style);

Входные параметры:

x1, y1	- координаты начальной точки на дуге,
x2, y2	- координаты средней точки на дуге,
x3, y3	- координаты конечной точки на дуге,
style	- стиль линии.
Возвращаемое значение:

указатель на дугу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объект создается в текущем слое текущего вида.


ArcByPoint - Создание дуги по центру и 2-м точкам
ArcByPoint  	Пример

Создать дугу по центру и конечным точкам

Аналог данной функции при использовании Automation - метод ksDocument2D::ksArcByPoint.

Синтаксис:

reference ArcByPoint (double xc,

double yc,

double rad,

double x1,

double y1,

double x2,

double y2,

int direction,

int type);

Входные параметры:

xc, yc	- координаты центра дуги,
rad	- радиус дуги,
x1, y1	- координаты начальной точки дуги,
x2, y2	- координаты конечной точки дуги,
direction	- направление отрисовки дуги:  1 - против часовой стрелки,  -1 - по часовой стрелке,
type	- стиль линии.
Возвращаемое значение:

указатель на дугу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объект создается в текущем слое текущего вида.


AnnArcByPoint - Ввод аннотационной дуги по точкам
AnnArcByPoint  	Пример

Создать аннотационную дугу по точкам.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAnnArcByPoint.

Синтаксис:

reference AnnArcByPoint (double xc, double yc, double rad,

double x2, double y2,

short direction,

unsigned char term1, unsigned char term2,

unsigned short style);

Входные параметры:

xc, yc	- координаты центра дуги,
rad	- радиус дуги,
x1, y1	- координаты начальной точки дуги,
x2, y2	- координаты конечной точки дуги,
direction	- направление отрисовки дуги:   1 - против часовой стрелки,  -1 - по часовой стрелке,
term1, term2	- типы значков на концах дуги,
style	- стиль линии.
Возвращаемое значение:

указатель на аннотационную дугу	- в случае удачного завершения,
0	- в случае неудачи.


ksConicArc - Ввод конического сечения
ksConicArc  	Пример

Построить коническое сечение.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksConicArc.

Синтаксис:

reference ksConicArc (ConicArcParam * par);

Входной параметр:

par	- указатель на структуру параметров конического сечения ConicArcParam.
Возвращаемое значение:

указатель на коническое сечение	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Коническим сечением может быть дуга окружности, дуга эллипса или кривая NURBS.


ksConicArc - Пример использования

ConicArcParam par;

//заполним структуру канонического уравнения для конического сечения- дуги эллипса

// A*x*x + B*x*y + C*y*y + D*x + E*y + F = 0;

par.A = 16.;

par.B = 0;

par.C = 9.;

par.D = 0;

par.E = 0;

par.F = -144.;

par.x1 = 3; par.y1 =0;

par.x2 = -3; par.y2 = 0;

par.style = 2;

reference p = ksConicArc(& par);

//подсветим объект

LightObj (p, 1);

Message ("Коническое сечение");

//выключим подсветку объекта

LightObj (p, 0);


ksEllipseArc - Ввод дуги эллипса.
ksEllipseArc  	Пример

Построить дугу эллипса.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksEllipseArc.

Синтаксис:

reference ksEllipseArc (EllipseArcParam *par);

Входной параметр:

par	- указатель на Структуру параметров дуги эллипса.
Возвращаемое значение:

указатель на дугу эллипса	- в случае удачного завершения,
0	- в случае неудачи.


ksEllipseArc - Пример использования

EllipseArcParam par;

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

  par.xc  = 20;

  par.yc  = 20;    //координаты центра

  par.a   = 30;

  par.b   = 10;             //полуоси эллипса

  par.ang = 45;              //угол наклона эллипса к оси X

  par.angFirst = 10;         //начальный угол дуги

  par.angSecond =300;        //конечный угол  дуги

  par.dir = 1;               //направление

  par.style = 1;    //тип линии

  reference p = KsEllipseArc(&par);

  LightObj (p, 1);  ConicArcParam par;


ksParEllipseArc - Ввод дуги эллипса.
ksParEllipseArc

Построить дугу эллипса.

Синтаксис:

reference ksParEllipseArc (EllipseArcParam1 *par);

Входной параметр:

par	- указатель на Структуру параметров дуги эллипса.
Возвращаемое значение:

указатель на дугу эллипса	- в случае удачного завершения,
0	- в случае неудачи.


ksRectangle - Создание прямоугольника
ksRectangle  	Пример

Построить прямоугольник.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRectangle.

Синтаксис:

reference ksRectangle (RectangleParam * par,

unsigned char centre);

Входные параметры:

par	- указатель на структуру параметров прямоугольника RectangleParam,
centre	- признак построения обозначения центра:  0 - нет осей,  1 - значок осей (маленький "крестик"),  2 - горизонтальная ось,  3 - обе оси.
Возвращаемое значение:

указатель на прямоугольник	- в случае удачного завершения,
0	- в случае неудачи.


ksRectangle - пример использования

RectangleParam par; // структура параметров прямоугольника

  ::memset(&par, 0, sizeof(RectangleParam));

  par.x       = -73.55; // базовая точка 1

  par.y       = 39.95;  //

  par.ang     = 0.00; // угол вектора направления от 1-ой точки ко 2-ой

  par.height  = -66.68; // высота

  par.weight  = 79.90; // ширина

  par.pCorner = ::CreateArray(CORNER_ARR, 0);  // Создание массива параметров углов

  par.style = 1; // стиль линии

  ::ksRectangle(&par, 0); // создать прямоугольник


ksColouring - Создать фоновую заливку цветом
ksColouring 	Пример

Создать фоновую заливку цветом.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksColouring.

Синтаксис:

int ksColouring (unsigned long color);

Входной параметр:

color	- цвет заливки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Заливка - составной объект. Объекты вида, вводимые между операторами ksColouring и EndObj, принадлежат заливке и образуют ее границу. EndObj возвращает указатель на заливку.

2. Если color = -1 или 0xFFFFFFFF - создается заливка цветом фона документа.


ksColouringEx - Создать фоновую заливку цветом
ksColouringEx 	Пример

Создать фоновую заливку цветом.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksColouringEx.

Синтаксис:

reference LIB_FUNC ksColouringEx (unsigned long color, reference group);

Входной параметр:

color	- цвет заливки.
group	- группа, образующая границу заливки.
Возвращаемое значение:

указатель на заливку	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если color = -1 или 0xFFFFFFFF - создается заливка цветом фона документа.


ksColouring - пример использования

//заливка цветом

Mtr(30,20,0,0.5);

char buf [128];

//построить заштрихованный квадрат

LineSeg (20, 30, 70, 30, 2);

LineSeg (70, 30, 70, 80, 2);

LineSeg (70, 80, 20, 80, 2);

LineSeg (20, 80, 20, 30, 2);

// залить квадрат цветом

if(ksColouring(RGB(168,0,168))) {

  LineSeg (20, 30, 70, 30, 2);

  LineSeg (70, 30, 70, 80, 2);

  LineSeg (70, 80, 20, 80, 2);

  LineSeg (20, 80, 20, 30, 2);

  reference p = EndObj();

  //взять параметры заливки -  цвет

  unsigned long   col;

  int t = GetObjParam(p, &col, sizeof(col), ALLPARAM);

  sprintf(buf, " t = %d, color=%d ", t, col);

  Message(buf);

  DeleteMtr();

  Mtr(0,0,0,2);

  col =  RGB(0, 255, 255);

  //изменить параметры заливки - цвет

  if(SetObjParam(p, &col, sizeof(col), ALLPARAM))

    Message(" Изменили объект");

  else

    MessageBoxResult();

  DeleteMtr();

}

else

  MessageBoxResult();


ksColouring - пример использования
ksColouringEx - пример использования

double x = 0; double y = 0;

// Указать точку в замкнутой области

if ( Cursor( NULL, &x, &y, NULL ) ) {

  // Создать контур из объектов окружающих данную точку

    reference group = ksMakeEncloseContours( 0, x, y );

    if ( group ) {

  // Создать заливку для группы

      ksColouringEx( RGB(255, 0, 0), group );

      // Удалить временную группу

DeleteObj( group );

    }

  }


ksEllipse - Создание эллипса
ksEllipse 	Пример

Создать эллипс с заданными параметрами.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksEllipse.

Синтаксис:

reference ksEllipse (EllipseParam *par);

Выходной параметр:

par	- указатель на Структуру параметров эллипса.
Возвращаемое значение:

указатель на эллипс	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объект создается в текущем слое текущего вида.


ksEllipse - пример использования

  EllipseParam  par;

  par.xc  = 20;

  par.yc  = 20;    	//координаты центра

  par.a   = 30;

  par.b   = 10;             	//полуоси эллипса

  par.ang = 45;         	//угол наклона эллипса к оси X

  par.style = 1;    	//тип линии

  reference p = ksEllipse(&par);

  LightObj (p, 1);


Equidistant - Создание эквидистанты
Equidistant 	Пример

Построить эквидистанту.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksEquidistant.

Синтаксис:

reference Equidistant (EquidistantParam *par);

Выходной параметр:

par	- указатель на структуру параметров эквидистанты.
Возвращаемое значение:

указатель на эквидистанту	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объект создается в текущем слое текущего вида.


Equidistant - пример использования

reference pContour;

RequestInfo  info;

//обнулить структуру  info;

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

double x, y;

info.prompt = "Укажите контур";

int j = Cursor (&info, &x ,&y, 0);

if (j)

{

if (ExistObj (pContour = FindObj (x, y, 1e6)) &&

GetObjParam (pContour,  0, 0, 0) == CONTOUR_OBJ) {

//если нашли объект и этот объект - контур, строим эквидистанту

      EquidistantParam  equidParam;

      //обнулить структуру  info;

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

      equidParam.geoObj   = pContour; // геометрический объект

//-базовая кривая эквидистанты

      equidParam.side     = 0 ;     // признак, с какой стороны строить эквидистанту

      equidParam.cutMode  = 1;  // тип обхода углов контура: 0-обход срезом, 1- обход дугой

      equidParam.degState = 0; // флаг разрешения вырожденных сегментов эквидистанты:

// 0-вырожденные сегменты запрещены,

//1-вырожденные сегменты разрешены

      equidParam.radRight = 1; // радиус эквидистанты справа по направлению кривой

      equidParam.radLeft  = 1;  // радиус эквидистанты слева

      equidParam.style    = 1;    // тип линии

      for (int i = 0; i < 4; i++) {

        equidParam.radRight += i;

        equidParam.radLeft += i;

        Equidistant(&equidParam); //параметры эквидистанты

      }

    }

  }


ksRegularPolygon - Создать правильный многоугольник
ksRegularPolygon	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRegularPolygon.

Синтаксис:

reference ksRegularPolygon (RegularPolygonParam * par,

unsigned char centre);

Входные параметры:

centre	- признак построения обозначения центра:  0 - нет осей,  1 - значок осей (маленький "крестик"),  2 - горизонтальная ось,  3 - обе оси.
Выходные параметры:

par	- указатель на структуру параметров правильного многоугольника
Возвращаемое значение:

указатель на многоугольник	- в случае удачного завершения,
0	- в случае неудачи.


ksRegularPolygon - пример использования

  RegularPolygonParam par;

  par.count	= 8;                              	// количество вершин многоугольника

  par.xc	= 100;                            	// центр окружности

  par.yc	= 100;

  par.ang	= 35;                             	// угол первой вершины

  par.radius	= 40;                             	// радиус окружности

  par.describe	= 1;                              	// признак описанного многоугольника.

  par.style	= 1;                              	// стиль линии

  par.pCorner	= ::CreateArray (CORNER_ARR, 0); // динамический массив

// структур параметров углов CORNER_ARR

  CornerParam cpar;                              	// структура параметров угла

  cpar.index = 5;                                	// индекс угла

  cpar.fillet = 0;                               	// признак фаски

  cpar.l1 = 40;                                  	// длина фаски 1 сегмента

  cpar.l2 = 45;                                  	// длина фаски 2 сегмента

  ::AddArrayItem(par.pCorner, -1, &cpar, sizeof(CornerParam)); // добавить угол в массив

  cpar.index = 2;                                	// индекс угла

  cpar.fillet = 1;                               	// признак скругления

  cpar.l1 = 20;                                  	// радиус

  cpar.l2 = 20;                                  	// радиус

  ::AddArrayItem(par.pCorner, -1, &cpar, sizeof(CornerParam)); // добавить угол в массив

  ::ksRegularPolygon(&par, 3);	// создаётся многоугольник с осями


Hatch - Задание штриховки
Hatch  	Пример

Создать штриховку.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksHatch.

Синтаксис:

int Hatch (unsigned int style,

double ang,

double step,

double width,

double x0, double y0);

Входные параметры:

style	- стиль штриховки,
angle	- угол штриховки в градусах,
step	- шаг штриховки,
width	- ширина полосы штрихования вдоль границы штриховки,
x0, y0	- координаты начальной точки штриховки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Все следующие далее до вызова функции EndObj геометрические примитивы определяют границы штриховки (внешние и внутренние). Порядок определения элементов границы является произвольным. Функция EndObj возвращает указатель на объект Штриховка.


Hatch - пример использования

void Hatch_Example (void) {

reference p;

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

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

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

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

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

LineSeg (70,  10,   10, 10,  1);

Hatch(1, 45, 3, 0, 0,0); /* определение штриховки */

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

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

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

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

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

LineSeg (70,  10,   10, 10,  1);

p = EndObj();   /* закончить формирование штриховки */

}; /* Hatch_Example */


ksHatch - Создать штриховку
ksHatch	Пример

Создать штриховку с заданными параметрами.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksHatchByParam.

Синтаксис:

reference ksHatch (HatchParam * par);

Входной параметр:

par	- указатель на структуру параметров штриховки HatchParam..
Возвращаемое значение:

указатель на штриховку	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Объекты границы штриховки лежат во временной группе pBoundaries. После выполнения функции ksHatch временная группа прекращает существование.


AnnLineSeg - Ввод аннотационного отрезка
AnnLineSeg  	Пример

Построить аннотационный отрезок.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAnnLineSeg.

Синтаксис:

reference AnnLineSeg (double x1, double y1,

double x2, double y2,

unsigned char term1, unsigned char term2,

unsigned short style);

Входные параметры:

x1, y1	- координаты первой точки отрезка,
x2, y2	- координаты второй точки отрезка,
term1, term2	- типы значков на концах линии,
style	- стиль линии.
Возвращаемое значение:

указатель на аннотационный отрезок	- в случае удачного завершения,
0	- в случае неудачи.


AnnLineSeg, AnnArcByPoint - Пример использования

//аннотационные отрезок и дуга

//аннотационный отрезок c большими стрелками изнутри (7мм)

reference p = AnnLineSeg(10, 10, 20,20, 6, 6,  1);

Message("аннотационный отрезок");

//трансформируем объект

Mtr(-10,-10,0, 2);

TransformObj(p);

DeleteMtr();

Message("удалим");

DeleteObj(p);

//аннотационная дуга c большими стрелками изнутри (7мм)

reference p = AnnArcByPoint (30, 40, 20,  30, 20, 50, 40, -1, 6, 6, 1);

Message ("аннотационная дуга");

//трансформируем объект

Mtr (-10,-10,0, 2);

TransformObj (p);

DeleteMtr ();

Message ("удалим");

DeleteObj (p);


ksInsertRaster - Вставить растровый объект
ksInsertRaster 	Пример

Вставить растровый объект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksInsertRaster.

Синтаксис:

reference ksInsertRaster (RasterParam *par);

Входной параметр:

par	- Структура параметров растрового объекта RasterParam.
Возвращаемое значение:

указатель на растровый объект	- в случае удачного завершения,
0	- в случае неудачи.


ksInsertRaster - пример использования

RasterParam par;	// параметры растрового обекта

      par.place.xBase = 100;	// точка привязки

      par.place.yBase = 100;

      par.place.ang   = -20;	// угол наклона

      par.place.scale = 0.5;	// масштаб

      ::strcpy (par.fileName, "C:\\BROWNBEAR.jpg");	// имя файла растра

      ::ksInsertRaster (&par);	// вставка растрового обекта

      reference iter = ::CreateIterator (RASTER_OBJ, 0);	// создать итератор по растровым объектам

      if (iter) {

        reference obj = ::MoveIterator (iter, 'F');	// смещаемся на первый объект

        if (::ExistObj(obj)) {	// если обект существует

          Message("Меняем файл");	// сообщение

          ::GetObjParam(obj, &par, sizeof(RasterParam), ALLPARAM);

// считываем параметры объекта

          ::strcpy(par.fileName, "C:\\WHITEBEAR.jpg");	// имя нового файла растра

          par.place.ang   = 0;	// угол наклона

          par.place.scale = 0;	// масштаб

          ::SetObjParam (obj, &par, sizeof(RasterParam), ALLPARAM);

// изменяем параметры объекта

        }

        ::DeleteIterator (iter);                     	// удаляем итератор

      }


Функции построения NURBS
Функции построения NURBS и кривых Безье

Функции данного радела обеспечивают построение NURBS и кривых Безье.


Функции построения NURBS
Функции

_Bezier

_kspolyline

Bezier

BezierPoint

ksAddPowerForm

ksCreatePowerArc

ksNurbsKnot

kspolyline

NurbsForConicCurve

Nurbs

NurbsPoint


BezierPoint - Задание узла кривой Безье
BezierPoint  	Пример

Построить узел кривой Безье.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksBezierPoint.

Синтаксис:

int BezierPoint (BezierPointParam *par);

Входной параметр:

par	- указатель на структуру параметров узла кривой Безье....
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


Bezier - Создание кривой Безье
Bezier  	Пример

Создать кривую Безье.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksBezier.

Синтаксис:

int Bezier (int closed, unsigned int style);

Входные параметры:

closed	- признак замыкания сплайна:  0 - незамкнутый,  1 - замкнутый,
style	стиль линии.
Системные стили линий...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Характерные точки кривой Безье задаются функциями Point (если не надо задавать производные в узлах) или BezierPoint (при необходимости задания производных) до вызова EndObj.

2. Объект создается в текущем слое текущего вида.

3. В качестве стиля линии можно задавать номер системного или пользовательского стиля линии.

4. Функция EndObj возвращает указатель на созданный объект Кривая Безье.


Bezier, _Bezier - пример использования

void Bezier_Example (void)

{

double x[5]={15, 35, 55, 75, 95 };

double y[5]={15, 75, 25, 95, 15 };

Bezier (1, 0);	// определение кривой

Point (10,  10,  1);

Point (30,  70,  1);

Point (50,  20,  1);

Point (70,  90,  1);

Point (90,  10,  1);

EndObj ();	// закончить формирование кривой

// задание производных в узлах

BezierPointParam  par;

double x[]    = { 0, 20, 50, 70, 100, 50  };

double y[]    = { 0, 20, 10, 20, 0, -50  };

double ang[]  = { 0, 30, 40, 45, -45, -30  };

double left[] = { 1, 1, 2, 3, 1, 1  };

double right[]= { 2, 2, 1, 1, 3, 4  };

reference p = Bezier (0, 1);

for (int i=0; i<5; i++)

{

par.x = x[i];  par.y = y[i];

par.ang = ang[i];

par.left = left[i]; par.right = right[i];

BezierPoint(&par);

}

EndObj();	// закончить формирование кривой

_Bezier (&par, 6, 0, 1);

};


_Bezier - Создание кривой Безье
_Bezier  	Пример

Создать кривую Безье.

Синтаксис:

reference _Bezier (BezierPointParam *par,

     int CountPoints,

     int closed,

     unsigned int style);

Входные параметры:

par	- указатель на структуру параметров узла кривой Безье....
CountPoints	- количество точек в массиве
closed	- признак замыкания сплайна:  0 - незамкнутый,  1 - замкнутый,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на кривую Безье	- в случае успешного завершения,
0	- в случае неудачи.


NurbsPoint - Создание узла NURBS-кривой
NurbsPoint  	Пример

Создать узел NURBS.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksNurbsPoint.

Синтаксис:

int    NurbsPoint (NurbsPointParam *par);

Входной параметр:

par	- указатель на структуру параметров узла NURBS....
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Узлы кривой определяются следующими далее функциями Point или NurbsPoint. Описание кривой завершается функцией EndObj, возвращающей указатель на созданную кривую.


Nurbs, NurbsPoint - пример использования

void Nurbs_Example (void) {

static NurbsPointParam  par[]={{ 0,0,1}, {20,20,1}, {50,10,1}, {70,20,1}, {100,0,1}, {50,-50,1}};

//построить Nurbs-кривую

if (Nurbs(3, 0, 1))

for (int i=0; i<6; i++) {

NurbsPoint(&par[i]);

}

reference p = EndObj();

LightObj(p, 1);

Message(NURBS);

LightObj(p, 0);

}

}; /* Nurbs_Example */


ksNurbsKnot - Создание узла NURBS-кривой
ksNurbsKnot 	Пример

Создать узел NURBS-кривой.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksNurbsKnot.

Синтаксис:

int ksNurbsKnot (double knot);

Входной параметр:

knot	- узел кривой NURBS.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция предназначена для считывания форматов обмена, в частности, DXF.

Для создания NURBS-кривой массив узлов (узловой вектор) задавать не обязательно. Но если он задан, то должен подчиняться следующим правилам:

1. Узловой вектор не должен быть убывающим.

2. Для разомкнутого сплайна количество узлов = степень сплайна + количество точек.

3. Для замкнутого сплайна количество узлов = степень сплайна + количество точек + (степень сплайна -1).


ksNurbsKnot - пример использования

static NurbsPointParam  par[]= {{ 0,0,1},  {20,20,1}, {50,10,1}, {70,20,1} };

static double     knotArr  []= { 0, 0 ,0 ,1 ,2 ,2 ,2 };

//---------------------------------------------------------------------------------

// Создать  Nurbs - сплайн

//---------------------------------------------------------------------------------

void DrawNurbs() {

  //построить Nurbs сплайн  как составной объект

  Nurbs(3, 0, 1);

    //ввод точек

    for (int i=0; i<4; i++) {

      NurbsPoint(&par[i]);

    }

    //ввод узлов - для разомкнутого сплайна и степени 3  должно быть 7 узлов

    for (int i=0; i<7; i++) {

      ksNurbsKnot(knotArr[i]);

    }

  reference p = EndObj();

  LightObj(p, 1);

  Message("NURBS");

  LightObj(p, 0);

}


Nurbs - Создание NURBS-кривой
Nurbs  	Пример

Создать NURBS.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksNurbs.

Синтаксис:

int Nurbs (unsigned char degree,

unsigned char close,

unsigned int style);

Входные параметры:

degree	- степень сплайна (от 3 до 8),
close	- признак замыкания сплайна:  FALSE - незамкнутый,  TRUE - замкнутый,
style	стиль линии.
Системные стили линий...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Узлы кривой определяются следующими далее функциями Point или NurbsPoint. Описание кривой завершается функцией EndObj, возвращающей указатель на созданную кривую.

2. Объект создается в текущем слое текущего вида.

3. В качестве стиля линии можно задавать номер предопределенного (системного) или пользовательского стиля линии.


NurbsForConicCurve - Создание NURBS-кривой
NurbsForConicCurve  	Пример

Создать NURBS по характеристическим точкам конического сечения.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksNurbsForConicCurve.

Синтаксис:

reference NurbsForConicCurve (double x[4],

double y[4],

unsigned short style);

Входные параметры:

x[4], y[4]	- массивы координат характеристических точек конического сечения; точки не должны совпадать, а касательные к кривой в этих точках не должны быть параллельными,
style	- стиль линии.
Системные стили линий...

Возвращаемое значение:

указатель на NURBS	- в случае удачного завершения,
0	- в случае неудачи.


NurbsForConicCurve - пример использования

// построить дугу эллипса (параметры эллипса: центр - 0,0, a = 20, b= 10);

double x[4], y[4];

x[0] = -19.3202; y[0] = 2.5850;	// начальная точка эллиптической дуги (1)

x[1] = -10.0;    y[1] = 20.0;   // пересечение касательных к дуге из точкек 1 и 2

x[2] =  14.6144; y[2] = 6.8268; // конечная точка эллиптической дуги (2)

x[3] =  0.0;	   y[3] = 10.0;   // точка на дуге

reference p = NurbsForConicCurve (x, y, 1);

if (p)

{

LightObj (p, 1);

Message ("Эллиптическая дуга построена");

LightObj(p, 0);

}

else

Error ("Неверно заданы характерные точки");


ksAddPowerForm - Ввод параметра для построения NURBS
ksAddPowerForm

Ввести параметр для построения NURBS кусочно-степенным способом.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAddPowerForm.

Синтаксис:

int ksAddPowerForm (double x, double y);

Входные параметры:

x, y	- параметры степенной функции  (см. Примечание).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Кусочно-степеная форма состоит из последовательности стыкующихся полиномов:

P0 [0, 1), P1 [1, 2), ... Pk [k, k+1),

где Pi - полином, [i, i+1) - интервал определения,

Pi(t).x = a0.x + a1.x * (t - i) + a2.x * (t - i) * (t - i) ... an.x * (t - i)^n

Pi(t).y = a0.y + a1.y * (t - i) + a2.y * (t - i) * (t - i) ... an.y * (t - i)^n

Функция ksAddPowerForm должна вызываться последовательно n+1 раз для пар параметров (a0.x, a0.y), (a1.x, a1.y), ... (an.x, an.y).

Затем вызывается функция ksCreatePowerArc, которая создает из переданных параметров дугу NURBS степени n + 1 и присоединяет ее к существующей кривой NURBS.


ksCreatePowerArc - Построить дугу NURBS
ksCreatePowerArc

Построить дугу NURBS кусочно-степенным способом и присоединить ее к существующей кривой NURBS.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreatePowerArc.

Синтаксис:

int ksCreatePowerArc();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание :

Параметры для построения дуги определяются функцией ksAddPowerForm.


ksTrimNurbs - Усечь NURBS
ksTrimNurbs

Усечь NURBS.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksTrimNurbs.

Синтаксис:

int ksTrimNurbs (reference pObj,

double tMin, double tMax);

Входные параметры:

pObj	- указатель на кривую NURBS или 0 для создаваемой кривой NURBS.
tMin, tMax	- границы интервала для усечения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksPolyline - Создание ломаной
ksPolyline  	Пример

Создать ломаную

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPolyline.

Синтаксис:

int ksPolyline (unsigned short style);

Входной параметр:

style	стиль линии.
Системные стили линий...

Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Узлы определяются следующими далее функциями Point. Описание завершается функцией EndObj, возвращающей указатель на созданный объект. Объект создается в текущем слое текущего вида. В качестве стиля линии можно задавать номер предопределенного (системного) или пользовательского стиля линии.


ksPolyline, _ksPolyline  - пример использования

void ksPolyline_Example (void) {

static MathPointParam    pr1[] = { {10,10}, {20,20}, {30, 10}, {40,20} };

static MathPointParam    pr2[] = { {10,15}, {20,25}, {30, 15}, {40,25} };

reference p;

if(ksPolyline(1)) {

for(int i = 0; i < 4; i++)

Point(pr1[i].x, pr1[i].y, 1);

p = EndObj();

LightObj(p, 1);

Message(Полилиния);

LightObj(p, 0);

}

PolylineParam par;

//создадим массив неопределенной длины  для математических точек

par.pMathPoint = CreateArray(POINT_ARR ,  0);

//наполним массив

for(int i = 0; i < 4; i++)

AddArrayItem(pMathPoint, -1, &pr2[i], sizeof(MathPointParam));

par.style = 2;

//создадим полилинию (тип линии - тонкая)

reference p = _ksPolyline(&par);

LightObj(p, 1);

Message(Полилиния);

LightObj(p, 0);

 }; /* ksPolyline_Example */


_ksPolyline - Создание ломаной
_ksPolyline  	Пример

Создать ломаную линию.

Синтаксис:

reference _ksPolyline (PolylineParam *par);

Выходной параметр:

par	- указатель на структуру параметров ломаной PolylineParam...
Возвращаемое значение:

указатель на ломаную линию	- в случае удачного завершения,
0	- в случае неудачи.
Описание:

1. Объект создается в текущем слое текущего вида. В стилях линии можно задавать номер предопределенного (системного) или пользовательского стиля линии.

2. В функции GetObjParam на указатель полилинии выдаются параметры полилинии в виде структуры PolylineParam (если значение par равно ALLPARAM), если значение par другоt - выдается только стиль полилинии. В функции SetObjParam можно изменить параметры полилинии.


ksPolylineEx - Создание ломаной
ksPolylineEx	Пример

Создать ломаную линию.

Синтаксис:

reference ksPolylineEx(PolylineParamEx * par);

Выходной параметр:

par	- указатель на структуру параметров ломаной PolylineParamEx...
Возвращаемое значение:

указатель на ломаную линию	- в случае удачного завершения,
0	- в случае неудачи.


ksPolylineEx - пример использования

    PolylineParamEx par;

      ::memset(&par, 0, sizeof(PolylineParamEx));

      par.pMathPoint = ::CreateArray(POINT_ARR, 0);

      MathPointParam p;

      p.x = 0;

      p.y = 0;

      ::AddArrayItem(par.pMathPoint, -1, &p, sizeof(p));

      p.x = 100;

      p.y = 0;

      ::AddArrayItem(par.pMathPoint, -1, &p, sizeof(p));

      p.x = 150;

      p.y = 100;

      ::AddArrayItem(par.pMathPoint, -1, &p, sizeof(p));

      p.x = 0;

      p.y = 100;

      ::AddArrayItem(par.pMathPoint, -1, &p, sizeof(p));

      par.style      = 1;

      par.closed     = 1;

      reference line = ::ksPolylineEx(&par);

      if (line) {

      	::Message("Изменим стиль");

      ::memset(&par, 0, sizeof(PolylineParamEx));

        ::GetObjParam(line, &par, sizeof(par), ALLPARAM);

      par.style = 3;

        ::SetObjParam(line, &par, sizeof(par), ALLPARAM);

      }


Функции построения составных объектов

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


Функции построения составных объектов
Функции

Contour

EndObj

GetMacroParam

GetMacroParamSize

ksAddObjectToMacro

ksDuplicateBoundaries

ksMakeEncloseContours

ksOpenMacro

Macro

SetMacroParam


SetMacroParam - Установка параметров макрообъекта
SetMacroParam  	Пример

Записать параметры макрообъекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetMacroParam.

Синтаксис:

int SetMacroParam (reference m,

void * value,

unsigned int size,

char *fileName,

char * libName ,

int number);

Входные параметры:

m	- указатель на макрообъект,
value	- указатель на структуру, содержащую сохраняемые параметры;
size	- размер структуры параметров редактирования;
fileName	- имя файла библиотеки;
libName	- имя библиотеки;
number	- номер функции в библиотеке.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Описание:

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


SetMacroParam - пример использования

// пример построения прямоугольника с последующим его редактированием

void DrawRect ()

{

struct

{

double a;

double b;

}

r;

if (EditMacroMode())

//режим редактирования

GetMacroParam (&r, sizeof (r));

else

//cоздание нового макроэлемента

{

r.a = 20;

r.b = 10;

}

ReadDouble ("задайте ширину",r.a,0,100, &r.a);

ReadDouble ("задайте высоту",r.b,0,100, &r.b);

reference m = Macro();

LineSeg(0, 0, r.a, 0, 0);

LineSeg(r.a, 0, r.a, r.b, 0);

LineSeg(r.a, r.b, 0, r.b, 0);

LineSeg(0, r.b, 0, 0, 0);

EndObj();

//записать параметры в макроэлемент

SetMacroParam (m, &r, sizeof(r), NULL, NULL, -1);

};


GetMacroParam - Получение параметров макрообъекта
GetMacroParam  	Пример

Получить параметры макрообъекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetMacroParam.

Синтаксис:

int GetMacroParam (reference pMacro,

void * value,

unsigned int size);

Входные параметры:

pMacro	- указатель на макрообъект.
Выходные параметры:

value	-указатель на структуру, содержащую сохраняемые параметры;
size	-размер структуры параметров редактирования.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если pMacro == 0, макрообъект открывается в режиме редактирования.


ksGetMacroEditParam - Получить параметры редактирования указанного макрообъекта
ksGetMacroEditParam	Пример

Получить параметры редактирования указанного макрообъекта

Синтаксис:

int ksGetMacroEditParam (reference ref,

char *  fileName,

unsigned int fileNameSize,

char * libName,

unsigned int libNameSize,

int * number);

Входные параметры:

ref	- указатель на макроэлемент
fileName	- указатель на буфер имени файла библиотеки
fileNameSize	- размер буферa имени файла библиотеки
libName	- указатель на буфер имени библиотеки
libNameSize	- размер буферa имени библиотеки
number	- указатель на буфер номерa функции редактирования
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция возвращает для указанного макроэлемента параметры редактирования: имя файла прикладной библиотеки, имя библиотеки и номер функции, предназначенной для редактирования данного макроэлемента.

2. При ref = 0 выдаются параметры для макроэлемента, редактирование которого производится в данный момент (если таковой имеется).

3. При значении NULL параметров fileName, libName, number или если значение fileNameSize, libNameSize меньше требуемой длины - параметры не возвращаются.


ksGetMacroEditParam - пример использования

Macro (0);

    Point (10, 10, 1);

  reference ref = EndObj ();

  SetMacroParam (ref, NULL, 0, "FileName.rtw", "LibName", 111);

  char         fileName[128];                   // буфер имени файла библиотеки

  unsigned int fileNameSize = sizeof (fileName); // размер буферa имени файла библиотеки

  char         libName[128];                    // буфер имени библиотеки

  unsigned int libNameSize = sizeof (libName);;  // размер буферa имени библиотеки

  int          number;                          // буфер номерa функции редактирования

  int res = ksGetMacroEditParam (ref, fileName, fileNameSize, libName,

                                 libNameSize, &number);

  if (res) {

    char buf[128];

    sprintf (buf, " Имя файла: %s\n Имя библиотеки: %s\n Номер функции: %i",

             fileName, libName, number);

    Message (buf);

  }

  else

    Error ("Ошибка");


GetMacroParamSize - Получить размер памяти параметров макрообъекта
GetMacroParamSize	Пример

Получить размер памяти параметров указанного макрообъекта

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetMacroParamSize.

Синтаксис:

extern "C" int GetMacroParamSize (reference ref);

Входной параметр:

ref	- указатель на макрообъект.
Возвращаемое значение:

размер памяти	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При ref = 0 выдается размер памяти параметров макроэлемента, редактирование которого производится в данный момент (если таковой имеется).


GetMacroParamSize - пример использования

reference p;

  RequestInfo  info;

  //обнулить структуру  info;

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

  double x, y;

  info.prompt = "Укажите макрообъект";

  int j = Cursor (&info, &x ,&y, 0);

  if (j) {

if (ExistObj (p = FindObj (x, y, 1e6)) && GetObjParam (p, 0, 0, 0) == MACRO_OBJ) {

int size = GetMacroParamSize (p);

char buf [128];

sprintf (buf, "Размер параметров макрообъекта = %d", size);

Message (buf);

  	}

  }


EditMacroMode - Проверка режима работы библиотечной функции
EditMacroMode  	Пример

Получить режим работы функции библиотеки (создание нового или редактирование существующего макрообъекта).

Аналог данной функции при использовании Automation - метод ksDocument2D::ksEditMacroMode.

Синтаксис:

reference EditMacroMode();

Возвращаемое значение:

указатель на редактируемый макрообъект	- при редактировании макрообъекта,
0	- при создании макрообъекта.


GetMacroPlacement - Получить точку привязки и угол поворота макрообъекта
GetMacroPlacement

Получить точку привязки и угол поворота макрообъекта

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetMacroPlacement.

Синтаксис:

int GetMacroPlacement(reference macro,

double *x,

double *y,

double *angl);

Входные параметры:

macro	- указатель на макрообъект (0 - редактируемый макрообъект),
Выходные параметры:

x, y	- координаты точки привязки макрообъекта
angl	- угол поворота макрообъекта от оси OX против часовой стрелки (в градусах)
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.
-1	- если у макрообъекта нет СК (не вызывалась функция SetMacroPlacement),


SetMacroPlacement - Установить точку привязки и угол поворота макрообъекта
SetMacroPlacement

Установить точку привязки и угол поворота макрообъекта

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetMacroPlacement.

Синтаксис:

int SetMacroPlacement(reference macro,

double x,

double y,

double angl,

int relativ);

Входные параметры:

macro	- указатель на макрообъект (0 - редактируемый макрообъект),
x, y	- координаты точки привязки макрообъекта
angl	- угол поворота макрообъекта от оси OX против часовой стрелки (в градусах)
relativ	- признак системы координат: 1 - координаты и угол заданы в СК макрообъекта, 0 - в СК вида.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.


ksOpenMacro - открыть макрообъект для редактирования
ksOpenMacro  	Пример

Открыть макрообъект для редактирования

Синтаксис:

int ksOpenMacro(reference macro);

Входной параметр:

macro	- указатель на макрообъект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. После вызова функции можно добавлять в macro новые объекты вида, использовать функцию FindObj; режим закрывается функцией EndObj();

2. Открыт доступ к внутренним объектам макрообъектов. Теперь при создании макрообъекта или при добавлении к макрообъекту новых объектов вида, на внутренние объекты выдается указатель (reference), как и на самостоятельные объекты вида Пример.

3. Допускается вводить пустой макрообъект. Пустой макрообъект является вырожденным объектом. Он живет только в период редактирования документа. После записи документа, в котором находился пустой макро, этот макро будет удален. Макрообъект считается нормальным, если в нем находится хотя бы один внутренний объект. Пример.

4. Функции работы с указателями на объекты допускают работу с внутренними объектами

макрообъекта. К ним относятся:

CopyObj

DecomposeObj

DeleteObj

GetObjGabaritRect

GetObjParam

ksEditViewObject

LightObj

MoveObj

RotateObj

SetObjParam

SymmetryObj

TransformObj


ksOpenMacro - пример использования

Macro (0);

LineSeg(50,100, 100, 150, 1);

reference p = EndObj();

Message("Создан макрообъект");

ksOpenMacro (p);

Macro (0);

reference cir = Circle(50, 50, 20, 1);

reference p1 = EndObj();

EndObj();

Message("Макрообъект отредактирован");


ksOpenMacro - пример использования

  //самостоятельный объект вида

  reference  l = LineSeg(10, 10, 20, 20, 1);

  Macro(0);

    //внутренний объект макрообъекта

    reference l1 = LineSeg(50,100, 100, 150, 1);

  reference p = EndObj();

  ksOpenMacro (p);

    //внутренний объет макрообъекта

    Macro(0);

      reference cir = Circle(50, 50, 20, 1);

    reference p1 = EndObj();

  EndObj();


ksOpenMacro - пример использования

  Macro(0);

  reference p = EndObj();

  ksOpenMacro (p);

    //внутренний объет макрообъекта

    Macro(0);

      reference cir = Circle(50, 50, 20, 1);

    reference p1 = EndObj();

  EndObj();


ksAddObjectToMacro - Добавить объект, слой, вид или группу объектов в макрообъект
ksAddObjectToMacro  	Пример

Добавить объект, слой, вид или группу объектов в макрообъект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAddObjectToMacro.

Синтаксис:

int ksAddObjectToMacro (reference macro,reference obj);

Входные параметры:

macro	- указатель на макрообъект,
obj	- указатель на добавляемый объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Слой и вид добавляются россыпью.

2. Добавляемые объекты и макрообъект должны принадлежать текущему документу и одному виду.

3. Добавляемые объекты перестают быть самостоятельными.


ksAddObjectToMacro - пример использования

//создать постоянную группу

//(окружности принадлежат текущему виду)

reference  gr = NewGroup (0);

Circle(0, 0, 100, 1);

Circle(0, 0, 50, 1);

EndGroup();

//создать макрообъект

Macro(1);

LineSeg (120, 100, 120, 150, 1);

reference m = EndObj();

//добавить в макро новый объект

ksOpenMacro(m);

LineSeg (100, 100, 150, 100, 1);

::EndObj();

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

//(объекты становятся внутренними)

::ksAddObjectToMacro(m, gr);


ksDuplicateBoundaries - Получить копию границы штриховки во временной группе
ksDuplicateBoundaries  	Пример

Получить копию границы штриховки или заливки во временной группе.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDuplicateBoundaries.

Синтаксис:

reference ksDuplicateBoundaries (reference p);

Входной параметр:

p	- указатель на штриховку или заливку.
Возвращаемое значение:

указатель на временную группу контуров, задающих границы штриховки или заливки	- в случае удачного завершения,
0	- в случае неудачи.


ksDuplicateBoundaries - пример использования

reference pObj;

  RequestInfo  info;

  double x, y;

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

  info.prompt = "Укажите штриховку или заливку";

  int j = Cursor(&info, &x ,&y, 0);

  if (j) {

    if(ExistObj(pObj = FindObj(x, y, 1e6))) {

      int objType =  GetObjParam(pObj, 0, 0, 0);

      if (objType == HATCH_OBJ || objType == COLORFILL_OBJ) {

        Phantom phantom;     // ltdefine.h

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

        //в фантом положим копию границы

        phantom.type1.gr = ksDuplicateBoundaries( pObj);

        phantom.phType = 1; //сдвиг группы

        phantom.type1.scale = 1; //сдвиг группы

        info.prompt = "Укажите точку привязки границы";

        j = Cursor(&info, &x ,&y, &phantom);

        if (j) {

          MoveObj(phantom.type1.gr, x, y); //смещаем группу в новый   центр

          StoreTmpGroup(phantom.type1.gr); //временную группу делаем постоянной

          ClearGroup(phantom.type1.gr);

          DeleteObj(phantom.type1.gr);

        }

      }

      else

        Error("Объект должен быть штриховкой или заливкой");

    }

  }


Macro - Определение макрообъекта
Macro  	Пример

Создать новый макроэлемент.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksMacro.

Синтаксис:

int Macro (unsigned char type);

Входной параметр:

type	- тип макрообъекта:  0 - объединяет объекты текущего слоя,  1- включаемые объекты могут принадлежать разным слоям.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Макроэлемент - составной объект.

2. Объекты вида, вводимые между методами ksDocument2D::ksMacro и EndObj, принадлежат макроэлементу. EndObj возвращает указатель на макроэлемент.

3. Допускается вложенность макрообъектов друг в друга (масимальное число вложений не ограничено).


Macro, EndObj - пример использования

void Macro_Example (void) {

Macro(); /* определение макрообъекта */

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

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

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

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

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

LineSeg (70,  10,   10, 10,  1);

Macro (); /* вложенный макрообъект */

LineSeg (40,  15,   50, 25,  1);

LineSeg (50,  25,   60, 15,  1);

LineSeg (60,  15,   40, 15,  1);

EndObj();

EndObj();   /* закончить формирование макрообъекта */

}; /* Macro_Example */


Contour - Задание контура
Contour  	Пример

Создать контур.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksContour.

Синтаксис:

int Contour (unsigned short style);

Входной параметр:

style	- стиль линии.
Примечание:

Все определяемые далее до вызова функции EndObj геометрические примитивы чертежа (отрезки, дуги, кривые) будут включены в контур. Контур должен быть непрерывным - начальная точка очередного объекта обязана совпадать с конечной точкой предыдущего. Полученный контур может быть использован для построения эквидистанты. Функция EndObj возвращает указатель на созданный макрообъект.


Contour - пример использования

void Contour_Example (void) {

reference p;

Contour(1); /* определение контура */

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

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

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

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

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

LineSeg (70,  10,   10, 10,  1);

p = EndObj();   /* закончить формирование контура */

}; /* Contour_Example */


EndObj - Завершить описание комплексного объекта
EndObj  	Пример

Завершить описание комплексного объекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksEndObj.

Синтаксис:

reference EndObj (void);

Возвращаемое значение:

указатель на завершенный объект (контур, макрообъект и т.п.)	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Комплексным считается объект, определяемый несколькими функциями.


Матрицы преобразования

Функции данного радела обеспечивают трансформацию объектов с использованием матриц преобразования координат.


Матрицы преобразования
Функции

DeleteMtr

ksMtr

Mtr

MtrForIGES


Mtr - Матрица преобразования координат
Mtr  	Пример

Создать матрицу преобразования координат.

Синтаксис:

int Mtr (double x, double y,

double ang,

double scale);

Входные параметры:

x, y	- координаты начала локальной системы координат,
ang	- угол наклона системы координат в градусах,
scale	- коэффициент масштабирования,
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Введенный режим преобразования отменяется функцией DeleteMtr.


Mtr, DeleteMtr - Пример использования

void Mtr_Example (void) {

int t = 1;   /*сплошная основная */

reference l1, l2, l3, l4 ;

double B=100, H=40;

        /* задание 4-х отрезков прямоугольника */

        /* длиной B и высотой H                        */

        /* в системе координат с началом 50,50, */

        /* и поворотом 45 градусов                    */

Mtr (50, 50, 45, 1);

l1 = LineSeg (0, 0, 0, H, t);

l2 = LineSeg (0, H, B, H, t);

l3 = LineSeg (B, H, B, 0, t);

l4 = LineSeg (B, 0, 0, 0, t);

DeleteMtr ();

}; /* Mtr_Example */


ksMtr - Матрица преобразования координат
ksMtr  	Пример

Создать матрицу преобразования координат.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksMtr.

Синтаксис:

int ksMtr (double x, double y,

double angle,

double scaleX,

double scaleY);

Входные параметры:

x, y	- координаты начала локальной системы координат,
angle	- угол наклона системы координат в градусах,
scaleX	- масштаб локальной системы координат по оси Х,
scaleY	- масштаб локальной системы координат по оси Y.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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

2. Объекты вида, вводимые между операторами ksMtr и DeleteMtr, подвергаются преобразованию по суммарной матрице.


ksMtr - пример использования

reference gr = NewGroup (0);

LineSeg (50, 50, 100, 100, 1);

LineSeg (100, 100, 150, 50, 1);

Circle (50, 50, 10, 1);

Circle (150, 50, 10, 1);

EndGroup ();

//масштаб по оси Х - 2 и по оси Y - 1

ksMtr (0, 0, 0, 2, 1);

TransformObj (gr);

DeleteMtr();


MtrForIGES - Ввод матрицы трансформации
MtrForIGES  	Пример

Создать матрицу преобразования координат.

Синтаксис:

int MtrForIGES (double rotateMtr[2][2],

double moveArr[2]);

Входные параметры:

rotateMtr	- матрица поворота,
moveArr	- вектор сдвига,
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Все объекты вида, вводимые между операторами MtrForIGES и DeleteMtr, подвергаются трансформации по суммарной матрице.


MtrForIGES - Пример использования

double commonArray[2][2]; // матрица 2*2 поворота,

                                          //умноженная предварительно на масштаб

  double moveArray[2];      // матрица сдвига умноженная предварительно на масштаб

// заполним матрицы

  commonArray[0][0] = 2.0;

  commonArray[0][1] = 0.0;

  commonArray[1][0] = 0.0;

  commonArray[1][1] = -2.0;

  moveArray[0] = 20.0;   // сдвиг по X

  moveArray[1] = 0.0;   // сдвиг по Y

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

//создание матрицы трансформации - симметрия по Х и с масштабом 2 и сдвиг на 10мм

  if (::MtrForIGES(commonArray,  moveArray)) {

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

    DeleteMtr();

  }


DeleteMtr - Отмена матрицы преобразования координат
DeleteMtr  	Пример

Отменить матрицу преобразования координат.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDeleteMtr.

Синтаксис:

int DeleteMtr (void);

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Описание:

Отменяет режим преобразования координат, линейных и угловых параметров, введенный функцией Mtr.


Функции построения размеров/обозначений
Функции простановки размеров/обозначений

Функции данного радела обеспечивают оформление чертежа - простановку размеров и других объектов оформления: шероховатости, линии-выноски, обозначения базы, допусков формы, линий разреза или сечения, стрелки вида.


Функции построения размеров/обозначений
Функции

AngBreakDimension

AngDimension

Base

BrandLeader

CutLine

DiamDimension

ksAxisLine

ksCentreMarker

ksCreateQualityIterator

ksGetLeaderShelfLength

ksGetQualityContensParam

ksGetQualityDefects

ksGetQualityNames

ksMoveQualityIterator

ksOrdinatedDimension

ksRemoteElement

ksSetToleranceColumnText

Leader

LinBreakDimension

LinDimension

MarkerLeader

PositionLeader

RadBreakDimension

RadDimension

Rough

Tolerance

ViewPointer


LinDimension - Создание линейного размера
LinDimension  	Пример

Проставить линейный размер.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLinDimension.

Синтаксис:

reference LinDimension (LDimParam *Par);

Выходной параметр:

Par	- указатель на структуру параметров линейного размера LDimParam...
Возвращаемое значение:

указатель на линейный размер	- в случае удачного завершения,
0	- в случае неудачи.


LinDimension - Пример использования

void LinDimension_Example (void)

{

reference p;

      LDimParam linPar;

      memset(&linPar, 0,sizeof(LDimParam));

      //параметры текста

      linPar.tPar.bitFlag = _AUTONOMINAL|_PREFIX|_TOLERANCE|_DEVIATION|_UNIT;

      linPar.tPar.sign = 1;  //диаметр

      linPar.tPar.pText = CreateArray(CHAR_STR_ARR ,0);

      AddArrayItem (linPar.tPar.pText, -1,"2отв.", 6); // _PREFIX

      AddArrayItem(linPar.tPar.pText, -1,"H12", 5); // _TOLERANCE

      AddArrayItem(linPar.tPar.pText, -1," мм", 5); // _UNIT

      //параметры привязки

      linPar.sPar.ps = 0; // 0-горизонтальный

      linPar.sPar.x1 = 50; linPar.sPar.y1 = 50; // 1-ая точка

      linPar.sPar.x2 = 70; linPar.sPar.y2 = 60;  // 2-ая точка

      linPar.sPar.dy = -20;  // вектор, определяющий

      linPar.sPar.dx = 0; // положение размерной линии

      linPar.sPar.basePoint = 1; // dx, dy откладывать от первой точки

      // параметры отрисовки линейного размера

      linPar.dPar.textPos   = 0; // автоматическая простановка

      linPar.dPar.textBase = 0; // от средины размера

      linPar.dPar.pl1         = 0; // 1-ая  выносная линия есть

      linPar.dPar.pl2         = 0; // 2-ая  выносная линия есть

      linPar.dPar.pt1         = 1; // тип стрелки у 1-ой выносной линии  1-изнутри

      linPar.dPar.pt2         =  1; // тип стрелки у 2-ой выносной линии  1-изнутри

      linPar.dPar.shelfDir   = -1; // полка направлена влево

      linPar.dPar.ang        = -30; // угол наклона ножки

      linPar.dPar.length     = 20; // длина ножки

      p = LinDimension(&linPar); //параметры линейного размера

};


LinBreakDimension - Создание линейного размера с обрывом
LinBreakDimension

Проставить линейный размер с обрывом.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLinBreakDimension.

Синтаксис:

reference LinBreakDimension (LBreakDimParam *linPar);

Выходной параметр:

linPar	- указатель на структуру параметров линейного размера с обрывом LBreakDimParam.
Возвращаемое значение:

указатель на линейный размер с обрывом	- в случае удачного завершения,
0	- в случае неудачи.


ksOrdinatedDimension - Создание размера высоты
ksOrdinatedDimension	Пример

Проставить размер высоты.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksOrdinatedDimension.

Синтаксис:

reference ksOrdinatedDimension (OrdinatedDimParam *ordPar);

Выходной параметр:

ordPar	- указатель на структуру параметров размера высоты OrdinatedDimParam.
Возвращаемое значение:

указатель на размер высоты	- в случае удачного завершения,
0	- в случае неудачи.


ksOrdinatedDimension - Пример использования

  OrdinatedDimParam par; // параметры размера высоты

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

  // автоматическое простановка номинала, с подчеркиванием

  par.tPar.bitFlag = _AUTONOMINAL|_UNDER_LINE;

  par.tPar.pText = CreateArray(CHAR_STR_ARR ,0);

  par.dPar.type = OD_FRONTVIEW; // тип - для вида спереди, с полкой и стрелкой, возможна выносная линия

  par.sPar.x0 = 0;   // координаты точки, задающей нулевой уровень

  par.sPar.y0 = 0;

  par.sPar.x1 = 0;   // координаты точки, задающей измеряемый уровень

  par.sPar.y1 = 100;

  par.sPar.x2 = 100; // координата точки, задающей положение размерной надписи

  par.sPar.y2 = 1;   // полка выше линии выноски

  reference p = OrdinatedDimension(&par); // создание размера высоты

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

  GetObjParam(p, &par, sizeof(par), ALLPARAM); // получить параметры размера

  par.sPar.y2 = -1;                              // полка ниже лини выноски

  SetObjParam(p, &par, sizeof(par), ALLPARAM); // сохранить параметры размера


AngDimension - Cоздание углового размера
AngDimension  	Пример

Проставить угловой размер.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAngDimension.

Синтаксис:

reference AngDimension (ADimParam *Par);

Выходной параметр:

Par	- указатель на структуру параметров углового размера ADimParam.
Возвращаемое значение:

указатель на угловой размер	- в случае удачного завершения,
0	- в случае неудачи.


AngDimension - Пример использования

void AngDimension_Example (void)

{

reference p;

ADimParam angPar;

memset (angPar, 0, sizeof (ADimParam));

LineSeg (40, 0, 40, 40, 1);

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

//параметры текста

angPar.tPar.bitFlag = _AUTONOMINAL|_DEVIATION|;

angPar.tPar.sign = 0;

angPar.tPar.pText = CreateArray (CHAR_STR_ARR ,0);

AddArrayItem (angPar.tPar.pText, -1, "+0.3", 5);

AddArrayItem (angPar.tPar.pText, -1, "-0.3", 5);

//привязка углового размера

angPar.sPar.xc = 40; angPar.sPar.yc = 0;	// центр

angPar.sPar.x1 = 40; angPar.sPar.y1 = 40;	// 1 - точка выхода выносной линии

angPar.sPar.x2 = 60; angPar.sPar.y2 = 20;	// 2 - точка выхода выносной линии

angPar.sPar.rad = 50;	//радиус размерной дуги

angPar.sPar.dir = -1;	// размерная линия по часовой стрелке

//отображение размера

angPar.dPar.textPos   = 0;	//автоматическая простановка

angPar.dPar.textBase  = 0;	//над серединой размерной линии

angPar.dPar.pl1 = 0;	// 1-ая выносной линия есть

angPar.dPar.pl2 = 0;	// 2-ая выносной линия есть

angPar.dPar.pt1 = 1;	// стрелка изнутри у 1-ой выносной линии

angPar.dPar.pt2 = 1;	// стрелка изнутри у 2-ой выносной линии

//параметры выносной полки

angPar.dPar.shelfDir     = 0;	//полки нет

p = AngDimension(&angPar);	//параметры углового размера

};


AngBreakDimension - Cоздание углового размера с обрывом
AngBreakDimension

Проставить угловой размер с обрывом.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAngBreakDimension.

Синтаксис:

reference AngBreakDimension (ABreakDimParam *angPar);

Выходной параметр:

angPar	- указатель на структуру параметров углового размера с обрывом ABreakDimParam.
Возвращаемое значение:

указатель на угловой размер с обрывом	- в случае удачного завершения,
0	- в случае неудачи.


ksCreateQualityIterator - Создание итератора по квалитетам
ksCreateQualityIterator

Создать итератор по квалитетам.

Аналог данной функции при использовании Automation - метод ksIterator::ksCreateQualityIterator.

Синтаксис:

reference ksCreateQualityIterator (unsigned char system,

unsigned char withLimitation);

Входные параметры:

system	- система допуска 1 - система отверстия,  0 - система вала,
withLimitation	- признак учета ограничений, наложенных в системе: 0 - без учёта ограничений,  1 - с учётом ограничений.
Возвращаемое значение:

указатель на итератор	- в случае успешного завершения,
0	- в случае неудачи.


ksMoveQualityIterator - Двигаться по квалитетам
ksMoveQualityIterator

Двигаться по квалитетам.

Аналог данной функции при использовании Automation - метод ksIterator::ksMoveQualityIterator.

Синтаксис:

int ksMoveQualityIterator (reference iterator,

QualityContensParam* param,

unsigned char inMM,

unsigned char ch);

Входные параметры:

inMM	- размерность параметров minLimit, maxLimit, high, low : 1 - миллиметры,  0 - единицы измерения текущего документа.
ch	- направление перемещения итератора: F - первый квалитет, N - следующий квалитет
Выходные параметры:

param	- указатель на структуру параметров квалитета StructQualityContensParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksGetQualityNames - Получить массив полей допусков
ksGetQualityNames	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetQualityNames.

Синтаксис:

int ksGetQualityNames (reference names,

double dimValue,

double high,

double low,

unsigned char system,

unsigned char withLimitation);

Входные параметры:

names	- указатель на динамический массив полей допусков,
dimValue	- номинальное значение размера (в мм),
high	- верхнее отклонение,
low	- нижнее отклонение,
system	- система:  1 - отверстия,   0 - вала.
withLimitation	- признак учета ограничений:  0 - без учёта ограничений,   1 - с учётом ограничений, наложенных в системе.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksGetQualityNames - Пример использования

  reference names = ::CreateArray(CHAR_STR_ARR, 0); // динамический массив строк

  // получить поля допусков для размера 139 мм, верхнее отклонение 0.16 мм,

  // нижнее - 0 мм, система отверстия, с учётом ограничений

  if (::ksGetQualityNames(names, 139, 0.16, 0, 1/*system*/, 1/*withLimitation*/)) {

    string s("");                                                // строка сообщения

    int count = ::GetArrayCount(names);        // кол-во элементов в масииве

    for (int i = 0; i < count; i++) {                      // пройдём по всему массиву

      char item[255];                                          // буфер

      if (::GetArrayItem(names, i, item, 255)) {    // взять текущую строку из массива

        s += item;                                    // добавить её к сообщению

        s += "  ";                                    // разделитель

      }

    }                                                 // выводим сообщение

    ::Message((char*)s.c_str());                    // удалить массив

    ::DeleteArray(names);

  }


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

Получить отклонения.

Аналог данной функции при использовании Automation - метод KompasObject::ksGetQualityDefects.

Синтаксис:

int ksGetQualityDefects (const char *name,

double dimValue,

double *high,

double *low,

bool inMM);

Входные параметры:

dimValue	- значение размера,
inMM	- размерность параметров dimValue, high, low: 1 - миллиметры,  0 - единицы измерения текущего документа.
Выходные параметры:

name	- поле допуска, (например, "H7"),
high	- верхнее отклонение,
low	- нижнее отклонение.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksGetQualityDefects - Пример использования

  double high = 0, low = 0;                            // отклонения

  char name[20];                                       // поле допуска

  ::strcpy(name, "H7");                              // умолчательное значение

  if (ReadString("Укажите поле допуска", name, 4)) { // запрос поля допуска у пользователя

    double dimValue = 15;                              // значение размера в мм

    if (ReadDouble("Введите размер в мм:", 15, 0, 500, &dimValue)) { // запрос значения размера у пользователя

      ::ksGetQualityDefects(name, dimValue, &high, &low, true/*inMM*/); // получить отклонения в мм

      char buf[255];                                   // строка сообщения

      ::sprintf(buf, "Поле допуска %s\nЗначение = %g, high = %g, low = %g",

                 name, dimValue, high, low);          // формируем сообщение

      ::Message(buf);                                // выводим сообщение


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetQualityContensParam.

Синтаксис:

int ksGetQualityContensParam (const char* name,

QualityContensParam* param,

unsigned char inMM);

Входные параметры:

inMM	- размерность параметров minLimit, maxLimit, high, low : 1 - миллиметры,  0 - единицы измерения текущего документа.
Выходной параметр:

param	- указатель на структуру параметров квалитета QualityContensParam.
name	- поле допуска,
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksGetQualityContensParam - Пример использования

  char name[20];                                       // поле допуска

  ::strcpy(name, "H7");                              // умолчательное значение

  if (ReadString("Укажите поле допуска", name, 4)) { // запрос поля допуска у пользователя

    char buf[255];                                     // буффер

    string s("");                                    // строка сообщения

    if (!::strcmp(name, "")) {                       // пустая строка - идём итератором

      // итератор по системе отверстия с учётом ограничений наложеных в системе

      reference iter = ::ksCreateQualityIterator(1/*system*/, 1/*withLimitation*/);

      if (iter) {                                    // итератор создан

        QualityContensParam param;                     // структура параметров квалитета

        int first = 0;                                 // начало чтения

        // продолжаем чтение пока не считаем все квалитеты

        while (::ksMoveQualityIterator(iter, &param, false/*inMM*/, !first ? 'F' : 'N')) {

          ::sprintf(buf, "Система %s, Тип квалитета %i, Поле допуска %s\n",

                     (param.systemQuality == 1 ? "Вала" : "Отверстия"), param.kindQuality,

                     param.name);                     // формируем строку для текущего квалитета

          s += buf;                                    // добавляем к сообщению

          int count = ::GetArrayCount(param.pQualityItems); // кол-во интервалов

          for (int i = 0; i < count; i++) {          // проходим по всем интервалам

            QualityItemParam item;                     // запись об одном интервале для какого-то квалитета

            // считываем текущюю запись

            if (::GetArrayItem(param.pQualityItems, i, &item, sizeof(QualityItemParam))) {

              // выводим параметры интервала в строку

              ::sprintf(buf, "Значение: %i < X < %i, high = %g, low = %g\n",

                         item.minLimit, item.maxLimit, item.high, item.low);

              s += buf;                                // добавляем к сообщению

            }

          }

          ::Message((char*)s.c_str());               // выводим сообщение

          s = "";                                      // очищаем строку сообщения

          ::DeleteArray(param.pQualityItems);        // удаляем массив интервалов

          param.pQualityItems = 0;

          if (!first)                                // пришли первый раз

            first = 1;                                 // взводим флаг

        }

        ::DeleteIterator(iter);                      // удалить итератор

      }

    }

    else {                                             // имя есть

      QualityContensParam param;                       // структура параметров квалитета

      // считываем параметры указанного квалитета

      if (::ksGetQualityContensParam(name, &param, false/*inMM*/)) {

        ::sprintf(buf, "Система %s, Тип квалитета %i, Поле допуска %s\n",

                   (param.systemQuality == 1 ? "Вала" : "Отверстия"), param.kindQuality,

                   param.name);                       // формируем строку для текущего квалитета

        s += buf;                                      // добавляем к сообщению

        int count = ::GetArrayCount(param.pQualityItems); // кол-во интервалов

        for (int i = 0; i < count; i++) {            // проходим по всем интервалам

          QualityItemParam item;                       // запись об одном интервале для какого-то квалитета

          // считываем текущюю запись

          if (::GetArrayItem(param.pQualityItems, i, &item, sizeof(QualityItemParam))) {

            // выводим параметры интервала в строку

            ::sprintf(buf, "Значение: %i < X < %i, high = %g, low = %g\n",

                       item.minLimit, item.maxLimit, item.high, item.low);

            s += buf;                                  // добавляем к сообщению

          }

        }

        ::Message((char*)s.c_str());                 // выводим сообщение

        s = "";                                        // очищаем строку сообщения

        ::DeleteArray(param.pQualityItems);          // удаляем массив интервалов

        param.pQualityItems = 0;

      }

    }

  }


DiamDimension - Создание диаметрального размера
DiamDimension  	Пример

Проставить диаметральный размер.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDiamDimension.

Синтаксис:

reference DiamDimension (RDimParam *Par);

Выходной параметр:

Par	- указатель на структуру параметров диаметрального размера RDimParam.
Возвращаемое значение:

указатель на диаметральный размер	- в случае удачного завершения,
0	- в случае неудачи.


DiamDimension - Пример использования

void DiamDimension_Example (void)

{

reference p;

RDimParam linPar;

memset (&linPar, 0, sizeof (RDimParam));

Circle(50,50,70,1);

//параметры текста

linPar.tPar.bitFlag = _AUTONOMINAL;	// автоматическая простановка текста

linPar.tPar.pText = 0;

linPar.tPar.sign = 0;	// знак диаметра ставится автоматически

//параметры привязки диаметрального  размера

linPar.sPar.xc = 50; linPar.sPar.yc = 50;	// координаты центра

linPar.sPar.rad = 70;

//параметры отрисовки диаметрального  размера

linPar.dPar.textPos   = 75;	// положение текста

inPar.dPar.pt1 = 1;	// тип стрелки -изнутри

linPar.dPar.pt2 = 1;	// тип стрелки -изнутри

//параметры выносной полки

linPar.dPar.shelfDir   = 1;	// полка направлена вправо

linPar.dPar.ang        = -30; 	// угол наклона размерной линии

p = DiamDimension(&linPar);	// диаметральный размер

};


RadDimension - Создание радиального размера
RadDimension  	Пример

Проставить радиальный размер.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRadDimension.

Синтаксис:

reference RadDimension (RDimParam *Par);

Выходной параметр:

Par	- указатель на структуру параметров радиального размера RDimParam.
Возвращаемое значение:

указатель на радиальный размер	- в случае удачного завершения,
0	- в случае неудачи.


RadDimension, RadBreakDimension - Пример использования

void RadDimension_Example (void)

{

reference p;

RDimParam linPar;

memset (&linPar, 0, sizeof(RDimParam));

Circle(50,50,70,1);

//параметры текста

linPar.tPar.bitFlag = _AUTONOMINAL;

linPar.tPar.pText = 0

linPar.tPar.sign = 0;	// значок радиуса ставится автоматически

//параметры привязки диаметрального  размера

linPar.sPar.xc = 50; linPar.sPar.yc = 50;	//центр

linPar.sPar.rad = 70;

//параметры отрисовки диаметрального  размера

linPar.dPar.textPos   = 75;	// положение текста

linPar.dPar.pt1 = 2;	// тип стрелки снаружи

linPar.dPar.pt2 = 0;	// размерная линия  рисуется

linPar.dPar.shelfDir = 1;	//полка направлена вправо

linPar.dPar.ang = 30;	//угол наклона размерной линии

p = RadDimension (&linPar);	// радиальный размер

reference p1;

RBreakDimParam linPar;

memset (&linPar, 0, sizeof (RDimParam));

Circle(150,50,70,1);

//параметры текста

linPar.tPar.bitFlag = 0;

linPar.tPar.pText = CreateArray(CHAR_STR_ARR ,0);

AddArrayItem (linPar.tPar.pText, -1, "100", 8);

linPar.tPar.sign = 0;

//параметры привязки

linPar.sPar.xc = 50; linPar.sPar.yc = 50;	//центр

linPar.sPar.rad = 70;

//параметры отрисовки

linPar.dPar.pt   = 1;	// тип стрелки изнутри

linPar.dPar.ang = 30;	// угол

linPar.dPar.pb  = 20;	// длина излома

p = RadBreakDimension(&linPar);	// радиальный размер с изломом

};


RadBreakDimension - Создание радиального размера с изломом
RadBreakDimension  	Пример

Проставить радиальный размер с изломом.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRadBreakDimension.

Синтаксис:

reference RadBreakDimension (RBreakDimParam *Par);

Выходной параметр:

Par	- указатель на структуру параметров радиального размера с изломом RBreakDimParam.
Возвращаемое значение:

указатель на радиальный размер с изломом	- в случае удачного завершения,
0	- в случае неудачи.


Rough - Проставить обозначение шероховатости
Rough  	Пример

Проставить обозначение шероховатости.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRough.

Синтаксис:

reference Rough (RoughParam *roughPar);

Выходной параметр:

roughPar	- указатель на структуру параметров обозначения шероховатости....
Возвращаемое значение:

указатель на обозначение шероховатости	- в случае удачного завершения,
0	- в случае неудачи.


Rough - Пример использования

void Rough_Example (void)

{

reference p;

RoughParam roughPar;

memset (&roughPar, 0, sizeof (RoughParam));

//заполним параметры шероховатости

roughPar.rPar.type=0;	// без обработки

roughPar.rPar.around=0;

roughPar.rPar.x = 50;  roughPar.rPar.y = 50;	// опорная точка

roughPar.rPar.ang = 90;	// угол наклона оси знака

roughPar.rPar.cText0=1;	// строк над знаком

roughPar.rPar.cText1=0;	// строк над полкой

roughPar.rPar.cText2=0;	// строк под полкой

roughPar.rPar.cText3=0;	// строк под полкой

// массив неопределенной длины строк текста

roughPar.rPar.pText =CreateArray (CHAR_STR_ARR ,0);

AddArrayItem (roughPar.rPar.pText, -1, 6,3, 4);

//параметры выносной полки

roughPar.shPar.psh   = 0;	// полки нет

roughPar.shPar.ang = 130;	// угол наклона ножки

roughPar.shPar.length= 20;	// длина ножки

p = Rough (&roughPar);	// шероховатость

};


Base - Создание обозначения базы
Base  	Пример

Проставить обозначения базы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksBase.

Синтаксис:

reference Base (BaseParam *basePar);

Выходной параметр:

basePar	- указатель на структуру параметров обозначения базы BaseParam.
Возвращаемое значение:

указатель на обозначение базы	- в случае удачного завершения,
0	- в случае неудачи.


Base - Пример использования

void Base_Example (void)

{

reference p;

BaseParam basePar;

memset (&basePar, 0, sizeof (BaseParam));

basePar.x1 = 50; basePar.y1 =50;	// базовая точка

basePar.x2 = 50; basePar.y2 =30;	// конечная точка ножки

strcpy (basePar.str, A);	// надпись

p = Base (&basePar);

};


Tolerance - Создание обозначения допуска формы
Tolerance  	Пример

Проставить обозначение допуска формы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksTolerance.

Синтаксис:

int Tolerance (ToleranceParam *par);

Выходной параметр:

par	- указатель на структуру параметров обозначения допуска формы....
Возвращаемое значение:

указатель на допуск формы	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. Допуск формы является составным объектом, состоящим из таблицы (в общем случае 10х10) и двух опор. Каждая ячейка таблицы имеет свой номер. Нумерация идет слева направо и сверху вниз.

2. Номер ячейки задается функцией ColumnNumber, а текст ячейки определяется функцией TextLine (первые два параметра - SPECIAL_SYMBOL и SPECIAL);


Нумерация таблицы


Tolerance - пример использования

void Tolerance_Example (void) {

ToleranceParam par;

memset(&par, 0, sizeof(ToleranceParam));

MathPointParam parPoint;

reference p;

  par.branch1.pMathPoint = CreateArray(POINT_ARR,  0);

  parPoint.x = 40; parPoint.y = 10;

  AddArrayItem(par.branch1.pMathPoint, -1, &parPoint , sizeof(parPoint));

  par.branch1.arrowType = 2;

  par.branch1.tCorner = 1;

  par.branch2.pMathPoint = CreateArray(POINT_ARR,  0);

  parPoint.x = 100; parPoint.y = 50;

  AddArrayItem(par.branch2.pMathPoint, -1, &parPoint , sizeof(parPoint));

  parPoint.x = 100; parPoint.y = 10;

  AddArrayItem(par.branch2.pMathPoint, -1, &parPoint , sizeof(parPoint));

  par.branch2.arrowType = 1;

  par.branch2.tCorner = 5;

  par.x = 40 ; par.y = 40;  par.type = 0;

  if (Tolerance(&par)) {

ColumnNumber(1);

int tip = 26;   //значек допуск соосности

TextLine (SPECIAL_SYMBOL  ,SPECIAL, &tip ,);

ColumnNumber(2);

tip = 2;        //значек диаметр

TextLine (SPECIAL_SYMBOL  ,SPECIAL, &tip ,);

 	TextLine (NEW_LINE  ,0,0 ,0,004);

tip=30;        //зависимый допуск

TextLine (SPECIAL_SYMBOL  ,SPECIAL, &tip ,);

ColumnNumber(3);

 	TextLine (NEW_LINE  ,0,0 ,A);

    p = EndObj();

  }

  DeleteArray(par.branch2.pMathPoint);

  DeleteArray(par.branch1.pMathPoint);

}; /* Tolerance_Example */


ksSetToleranceColumnText - Замена текста ячейки допуска формы
ksSetToleranceColumnText 	Пример

Задать текст ячейки допуска формы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetToleranceColumnText.

Синтаксис:

int ksSetToleranceColumnText (unsigned int numb, TextLineParam *par);

Входные параметры:

numb	- номер ячейки,
Выходные параметры:

par	- указатель на структуру параметров строки текста TextLineParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования допуска формы.


ksSetToleranceColumnText - пример использования

// редактирование допуска формы

reference pObj;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите допуск формы";

int j = Cursor(&info, &x ,&y, 0);

if (j)

{

if (ExistObj(pObj = FindObj (x,y, 1000000.)))

{

//узнаем тип объекта

int type =GetObjParam (pObj,0,0,0);	//указатель на графический объект

if (type == TOLERANCE_OBJ)

{

unsigned int numb;

//открыть допуск формы для редактирования

ksOpenTolerance(pObj);

TextLineParam linePar;

//в цикле будем брать все существующие ячейки

while (ksGetToleranceColumnText(&numb, &linePar)!=0)

{

TextItemParam itemPar;

for (int j=0; j< GetArrayCount(linePar.pTextItem); j++)

{

GetArrayItem (linePar.pTextItem, j, &itemPar,

sizeof (TextItemParam));

if (strlen (itemPar.s))

{

strcat (itemPar.s, "!!!");

SetArrayItem (linePar.pTextItem,

 j, &itemPar,

sizeof(TextItemParam));

}

}

ksSetToleranceColumnText(numb, &linePar);

}

EndObj();	//закрыли объект "допуск формы"

}

else

Error ("Указанный объект - не допуск формы");

}

else

Error("нет объекта");

}


CutLine - Создание линии разреза/сечения
CutLine  	Пример

Создать линию разреза/сечения.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCutLine.

Синтаксис:

reference CutLine (CutLineParam *cutPar);

Выходной параметр:

cutPar	- указатель на структуру параметров линии разреза/сечения CutLineParam.
Возвращаемое значение:

указатель на линию разреза/сечения	- в случае удачного завершения,
0	- в случае неудачи.


CutLine - пример использования

void CutLine_Example (void) {

  reference p;

  CutLineParam  cutPar;

memset(&cutPar, 0, sizeof(CutLineParam));

  cutPar.right =1;  // стрелка справа

  strcpy (cutPar.str, A); // надпись

  cutPar.x1 = 30;  //  координаты надписи у первого участка

  cutPar.y1 = 65;

  cutPar.x2 = 95; // координаты надписи у второго участка

  cutPar.y2 = 15;

  cutPar.pMathPoint = CreateArray(POINT_ARR, 0);

  MathPointParam par;

  par.x=50; par.y=50; // первая точка

  AddArrayItem(cutPar.pMathPoint, -1, &par, sizeof(par));

   par.x=50; par.y=30; // вторая  точка

  AddArrayItem(cutPar.pMathPoint, -1, &par, sizeof(par));

  p = CutLine(&cutPar);

}; /* CutLine_Example */


ViewPointer - Создание стрелки вида
ViewPointer  	Пример

Создать стрелку направления взгляда.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksViewPointer.

Синтаксис:

reference ViewPointer (ViewPointerParam *par);

Выходной параметр:

par	- указатель на структуру параметров стрелки направления взгляда ViewPointerParam.
Возвращаемое значение:

указатель на стрелку взгляда	- в случае удачного завершения,
0	- в случае неудачи.


ViewPointer - пример использования

void ViewPointer_Example (void)

{

ViewPointerParam  par;

memset (&par, 0, sizeof (ViewPointerParam));

par.x1 = 55; par.y1 = 50;	// координаты вершины(острия) стрелки

par.x2 = 40; par.y2 = 50;	// координаты конечной точки стрелки

par.xt = 40; par.yt = 52;	// координаты текста

strcpy(par.str, A);	// надпись

reference  p = ViewPointer (&par);	//параметры стрелки вида

if (ExistObj(p))

LightObj(p, 1);

};


Leader - Создание линии выноски
Leader	Пример

Создать линию-выноску.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLeader.

Синтаксис:

reference Leader (LeaderParam *leaderPar);

Выходной параметр:

leaderPar	- указатель на структуру параметров линии-выноски LeaderParam.
Возвращаемое значение:

указатель на линию-выноску	- в случае удачного завершения,
0	- в случае неудачи.


Leader - пример использования

void Leader_Example (void) {

  reference p;

  TextLineParam tLinePar;

memset(&tLinePar, 0, sizeof(TextLineParam));

  tLinePar.style=0;  //номер стиля строки текста

// массив неопределенной длины компонент строки текста

  tLinePar.pTextItem = CreateArray(TEXT_ITEM_ARR,0);

  TextItemFont  tFont;  // параметры шрифта компоненты строки текста

  tFont.fontName[0]=\0; // имя шрифта

  tFont.height=0;             // высота текста

  tFont.ksu=0;                // сужение текста

  tFont.color = RGB(0,0,0); // цвет

  tFont.bitVector=0;   // флаг параметрв

  TextItemParam  ItemPar;    // параметры компоненты строки текста

  ItemPar.tip = 0;

  ItemPar.font = tFont; // параметры шрифта для компоненты текста

  ItemPar.iSNumb = 0; // номер символа

  LeaderParam leaderPar;

  memset(&leaderPar, 0, sizeof(LeaderParam));

  leaderPar.x=50; leaderPar.y=50; // начало полки

  leaderPar.arrowType = 1; // тип стрелки

  leaderPar.dirX=1;      // полка вправо

  leaderPar.signType=0;  // тип знака

  leaderPar.around=0;   // знак обработки по контуру выключен

  leaderPar.cText0=1;   // число строк над полкой

  leaderPar.cText1=1;   // число строк под полкой

  leaderPar.cText2=1;   // число строк над ножкой

  leaderPar.cText3=1;   // число строк под ножкой

  leaderPar.pTextline = CreateArray(TEXT_LINE_ARR,0);

  strcpy(ItemPar.s,строка над полкой);

// массив символов  для компоненты текста

  AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar));

  AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar));

  ClearArray(tLinePar.pTextItem);

  strcpy(ItemPar.s,строка под полкой);

// массив символов  для компоненты текста

  AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar));

  AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar));

  ClearArray(tLinePar.pTextItem);

  strcpy(ItemPar.s,2);   // массив символов  для компоненты текста

  AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar));

  AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar));

  ClearArray(tLinePar.pTextItem);

  strcpy(ItemPar.s,3);

// массив символов  для компоненты текста

  AddArrayItem(tLinePar.pTextItem, -1, &ItemPar, sizeof(ItemPar));

  AddArrayItem(leaderPar.pTextline, -1, &tLinePar, sizeof(tLinePar));

  leaderPar.pPolyline  =CreateArray(POLYLINE_ARR,0);

  reference pPoly = CreateArray(POINT_ARR , 0);

  //две ножки по одной точке в каждой

  MathPointParam mPar;

  mPar.x = 10;  mPar.y = 10;

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

  mPar.x = 30;  mPar.y = 10;

  ClearArray(pPoly);

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

 p = Leader(&leaderPar);

}; /* Leader_Example */


PositionLeader - Создание позиционной линии выноски
PositionLeader  	Пример

Создать позиционную линию-выноску.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPositionLeader.

Синтаксис:

reference PositionLeader(PosLeaderParam *leaderPar);

Выходной параметр:

posLeaderParam	- указатель на структуру параметров позиционной линии-выноски PosLeaderParam.
Возвращаемое значение:

указатель на позиционную линию-выноску	- в случае удачного завершения,
0	- в случае неудачи.


PositionLeader - пример использования

void PositionLeader_Example (void) {

  reference p;

  PosLeaderParam  leaderPar;

  memset(&leaderPar, 0, sizeof(PosLeaderParam));

  leaderPar.x=50; leaderPar.y=50; // начало полки

  leaderPar.arrowType = 1; // тип стрелки

  leaderPar.dirX=-1;          // полка влево)

  leaderPar.pText = CreateArray(CHAR_STR_ARR,0);

  AddArrayItem(leaderPar.pText, -1, 11, 3);

  leaderPar.pPolyline  =CreateArray(POLYLINE_ARR,0);

  reference pPoly = CreateArray(POINT_ARR , 0);

  MathPointParam mPar;

  mPar.x = 10;  mPar.y = 10;

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

  mPar.x = 30;  mPar.y = 10;

  ClearArray(pPoly);

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

 p = PositionLeader(&leaderPar);

}; /* PositionLeader_Example */


BrandLeader - Создание линии выноски для обозначения клеймения
BrandLeader  	Пример

Создать линию-выноску для обозначения клеймения.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksBrandLeader.

Синтаксис:

reference BrandLeader(BrandLeaderParam *leaderPar);

Выходной параметр:

brandLeaderParam	- указатель на структуру параметров линии-выноски для обозначения клеймения BrandLeaderParam.
Возвращаемое значение:

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


BrandLeader - пример использования

void BrandLeader_Example (void) {

  reference p;

  BrandLeaderParam  leaderPar;

  memset(&leaderPar, 0, sizeof(BrandLeaderParam));

  leaderPar.cText0 = 1;  // число строк в знаке

  leaderPar.cText1 = 1;  // число строк над ножкой

  leaderPar.cText2 = 1;  // число строк под ножкой

  leaderPar.x=50; leaderPar.y=50;  // начало полки

  leaderPar.arrowType = 1; // тип стрелки

  leaderPar.dirX=-1;      // полка влево

  leaderPar.pText = CreateArray(CHAR_STR_ARR,0);

  AddArrayItem(leaderPar.pText, -1, п.11, 5);

  AddArrayItem(leaderPar.pText, -1, Ну, 3);

  AddArrayItem(leaderPar.pText, -1, Ту, 3);

  leaderPar.pPolyline  =CreateArray(POLYLINE_ARR,0);

  reference pPoly = CreateArray(POINT_ARR , 0);

  MathPointParam mPar;

  mPar.x = 10;  mPar.y = 10;

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

  mPar.x = 30;  mPar.y = 10;

  ClearArray(pPoly);

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

  p = BrandLeader(&leaderPar);

}; /* BrandLeader_Example */


MarkerLeader - Создание линии выноски для обозначения маркировки
MarkerLeader  	Пример

Создать линию-выноску для обозначения маркировки.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksMarkerLeader.

Синтаксис:

reference MarkerLeader (MarkerLeaderParam *leaderPar);

Выходной параметр:

leaderParam	- указатель на структуру параметров линии-выноски для обозначения маркировки MarkerLeaderParam.
Возвращаемое значение:

указатель на линию-выноску для обозначения маркирования	- в случае удачного завершения,
0	- в случае неудачи.


MarkerLeader - пример использования

void MarkerLeader_Example (void) {

  reference p;

  MarkerLeaderParam  leaderPar;

memset(&leaderPar, 0, sizeof(BrandLeaderParam));

  leaderPar.cText0 = 1;  // число строк в знаке

  leaderPar.cText1 = 1;  // число строк над ножкой

  leaderPar.cText2 = 1;  // число строк под ножкой

  leaderPar.x=50; leaderPar.y=50;  // начало полки

  leaderPar.arrowType = 2; // тип стрелки

  leaderPar.pText = CreateArray(CHAR_STR_ARR,0);

  AddArrayItem(leaderPar.pText, -1, п.11, 5);

  AddArrayItem(leaderPar.pText, -1, Ну, 3);

  AddArrayItem(leaderPar.pText, -1, Ту, 3);

  leaderPar.pPolyline  =CreateArray(POLYLINE_ARR,0);

  reference pPoly = CreateArray(POINT_ARR , 0);

  MathPointParam mPar;

  mPar.x = 10;  mPar.y = 10;

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

  mPar.x = 30;  mPar.y = 10;

  ClearArray(pPoly);

  AddArrayItem(pPoly , -1, &mPar, sizeof(mPar));

  AddArrayItem(leaderPar.pPolyline , -1, &pPoly, sizeof(pPoly));

  p = MarkerLeader(&leaderPar);

}; /* MarkerLeader_Example */


ksCentreMarker - Создать обозначение центра
ksCentreMarker  	Пример

Создать обозначение центра.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCentreMarker.

Синтаксис:

reference ksCentreMarker (CentreParam * par);

Выходной параметр:

par	- указатель на структуру параметров обозначения центра CentreParam.
Возвращаемое значение:

указатель на обозначение центра	- в случае удачного завершения,
0	- в случае неудачи.


ksCentreMarker - пример использования

CentreParam cPar;	// структура параметров объекта "обозначение центра"

  ::memset(&cPar, 0, sizeof(cPar));

  cPar.x = 50;                  	// точка привязки

  cPar.y = 50;

  cPar.type = 2;                	// тип обозначения центра - две оси

  cPar.lenXpTail = 40;          	// длина "хвостиков"

  cPar.lenXmTail = 60;

  cPar.lenYpTail = 20;

  cPar.lenYmTail = 45;

  ::ksCentreMarker(&cPar);    	// создать объект "обозначение центра"


ksGetLeaderShelfLength

Для выносной линии получить длину полки и координаты конца полки в системе координат вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetLeaderShelfLength.

Синтаксис:

double ksGetLeaderShelfLength (long leader, double *x, double *y);

Входные параметры:

leader	- указатель на линию-выноску
Выходные параметры:

x	- координата конечной точки полки линии выноски по оси X
y	- координата конечной точки полки линии выноски по оси Y.


ksAxisLine

Создать объект "Осевая линия".

Аналог данной функции при использовании Automation - метод  ksDocument2D::ksAxisLine.

Синтаксис:

reference ksAxisLine (AxisLineParam * param);

Входные параметры:

param	- указатель на структуру параметров осевой линии AxisLineParam.
Возвращаемое значение:

указатель на объект "Осевая линия"	- в случае успешного завершения,
0	- в случае неудачи.


 ksSetMaterialParam

Установить параметры материала в чертеже.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetMaterialParam.

Синтаксис:

int ksSetMaterialParam (reference material, double density);

Входные параметры:

material	- наименование материала, динамический массив строк текста (TEXT_LINE_ARR),
density	- плотность.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


Функции работы с таблицей и допуском формы
Функции работы с таблицей допуска формы

Функции данного радела обеспечивают оформление таблиц и допуска формы.


Функции работы с таблицей и допуском формы
Функции

ColumnNumber

ksClearTableColumnText

ksCombineTwoTableItems

ksDivideTableItem

ksGetPointOnToleranceTable

ksGetTableBorderStyle

ksGetTableColumnText

ksGetTableItemsCount

ksGetToleranceColumnText

ksOpenTable

ksOpenTolerance

ksRebuildTableVirtualGrid

ksSetTableBorderStyle

ksSetToleranceColumnText


ksOpenTable
ksOpenTable  	Пример

Oткрыть составной объект-таблицу для редактирования.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksOpenTable.

Синтаксис:

int ksOpenTable (reference table);

Входной параметр:

table	- указатель на таблицу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Чтобы закрыть редактирование таблицы, нужно вызвать функцию EndObj.


Пример использования функций для редактирования таблицы

// редактирование таблицы

reference pObj;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите таблицу";

// взять таблицу на чертеже

int j = Cursor(&info, &x ,&y, 0);

if (j)

{

if (ExistObj (pObj = FindObj (x, y, MAXDOUBLE)))

{

//узнаем тип объекта

int type =GetObjParam( pObj,0,0,0);	//указатель на графический объект

//проверить, таблица ли полученный объект

if (type == TABLE_OBJ)

{

unsigned int numb;

reference p;

char buf[128];

//открыть таблицу для редактирования

ksOpenTable(pObj);

TextParam par;

//в цикле будем брать все существующие ячейки

while ((ksGetTableColumnText(&numb, &par))!=0)

{

sprintf(buf, "numb =%d   ", numb);

Message(buf);

p=par.pTextLine;

TextLineParam par2;

for (int i=0; i < GetArrayCount(p); i++)

{

GetArrayItem (p, i, &par2, sizeof(TextLineParam));

sprintf(buf, "i =%d style=%d   ", i, par2.style);

Message(buf);

TextItemParam par3;

for (int j=0; j< GetArrayCount(par2.pTextItem); j++)

{

GetArrayItem (par2.pTextItem, j, &par3,

sizeof(TextItemParam));

if (!par3.tip)

sprintf(buf, "компонента=%d

h=%5.1f\ns=%s\n fontName=%s\nбитвектор =%d ",j, par3.font.height, par3.s,

par3.font.fontName, par3.font.bitVector);

else

sprintf (buf, "компонента=%d тип = %d

номер спецзнака=%d ",j,par3.tip,par3.iSNumb);

Message(buf);

}

//очистим массив компонент

DeleteArray(par2.pTextItem);

}

//очистим массив текстовых строк

DeleteArray(p);

}

//берем ячейку 2

ColumnNumber(2);

Text(0, 0, 0, 5, 1 ,0,"вторая ячейка");

ksDivideTableItem(3, 1, 2);

ColumnNumber(4);

Text(0, 0, 0, 5, 1 ,0,"4");

EndObj();//закрыли объект "таблица"

}

else

Error("это не таблица");

}

else

Error("нет объекта");

}

Пример редактирования допуска формы

// редактирование допуска формы

reference pObj;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите допуск формы";

//взять допуск формы на чертеже

int j = Cursor(&info, &x ,&y, 0);

if (j)

{

if (ExistObj(pObj = FindObj(x, y, MAXDOUBLE)))

{

//узнаем тип объекта

int type =GetObjParam( pObj,0,0,0);	//указатель на графический объект

//проверим,является ли пришедший объект допуском фомы

if (type == TOLERANCE_OBJ)

{

unsigned int numb;

reference p;

char buf[128];

//открыть допуск формы для редактирования

ksOpenTolerance(pObj);

ToleranceParam  par;

//возьмем параметры допуска формы

GetObjParam (pObj,	//указатель на графический объект

&par,	//указатель на структуру параметров

sizeof (ToleranceParam),	//размер

//структуры параметров

ALLPARAM);	//тип считывания параметров

sprintf (buf, "базовая точка=%d стиль=%d

расположение-%s\nx=%5.1f y=%5.1f",

par.tBase, par.style, par.type ?

"вертикальное":"горизонтальное", par.x, par.y);

Message(buf);

//в цикле будем брать все существующие ячейки

while ((p=ksGetToleranceColumnText(&numb))!=0)

{

sprintf(buf, "numb =%d   ", numb);

Message(buf);

TextLineParam par2;

for (int i=0; i < GetArrayCount(p); i++)

{

GetArrayItem(p , i, &par2, sizeof(TextLineParam));

sprintf(buf, "i =%d style=%d   ", i, par2.style);

Message(buf);

TextItemParam par3;

for (int j=0; j< GetArrayCount(par2.pTextItem); j++)

{

GetArrayItem (par2.pTextItem, j, &par3,

sizeof(TextItemParam));

if (!par3.tip)

sprintf (buf, "компонента=%d h=%5.1f\ns=%s\n

fontName=%s\nбитвектор =%d

",j,par3.font.height,par3.s

par3.font.fontName, par3.font.bitVector);

else

sprintf (buf, "компонента=%d тип = %d номер

спецзнака=%d ",j,par3.tip,par3.iSNumb);

Message(buf);

}

DeleteArray(par2.pTextItem);	//очистим массив компонент

}

//очистим массив текстовых строк

DeleteArray(p);

}

//заменим параметры допуска формы

par.x += 10;

par.y += 10;

int rez = SetObjParam (pObj,	//указатель на графический объект

&par,	//указатель на структуру параметров

sizeof(ToleranceParam),	//размер структуры параметров

ALLPARAM); //тип считывания параметров

// заменим текст в ячейке 2

ColumnNumber(2);

TextLine (NEW_LINE  ,0,0 ,"вторая ячейка");

//разделим ячейку 3 вертикальным ребром с типом " тонкая"

ksDivideTableItem(3, 1, 2);

//перестроим виртуальную сетку

ksRebuildTableVirtualGrid();

// введем текст в ячейку 4

ColumnNumber(4);

TextLine (NEW_LINE  ,0,0 ,"4");

EndObj();//закрыли объект "допуск формы"

}

else

Error("это не допуск формы");

}

else

Error("нет объекта");

}


ksRebuildTableVirtualGrid
ksRebuildTableVirtualGrid  	Пример

Перестроить виртуальную сетку таблицы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRebuildTableVirtualGrid.

Синтаксис:

int ksRebuildTableVirtualGrid();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция используется в режиме редактирования таблицы или допуска формы. Таблица работает с виртуальной сеткой - регулярная таблица, наложенная на редактируемую таблицу, отображающая все ячейки. Если редактируемая таблица регулярная, то ее виртуальная сетка полностью совпадает с таблицей.

2. Нумерация ячеек начинается с левого верхнего угла и с единицы по строкам.

3. Перестраивать сетку нужно после объединения или разделения ячеек.


ksGetTableItemsCount
ksGetTableItemsCount 	Пример

Получить количество ячеек в таблице.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetTableItemsCount.

Синтаксис:

int  ksGetTableItemsCount (unsigned char type);

Входной параметр:

type	- признак, какое число требуется получить: 0 - общее число ячеек,  1 - число ячеек в строке,  2 - число ячеек в колонке.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования таблицы или допуска формы.


ksGetTableColumnText
ksGetTableColumnText  	Пример

Получить текст ячейки.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetTableColumnText.

Синтаксис:

int ksGetTableColumnText (unsigned int *numb, TextParam *par);

Выходные параметры:

numb	- номер ячейки,
par	- указатель на структуру параметров текста TextParam.
Возвращаемое значение:

указатель на динамический массив  строк текста - TEXT_LINE_ARR	- в случае успешного завершения,
0	- все графы пройдены,
номер графы	- в случае ошибки.
Примечание:

1. Функция используется в режиме редактирования таблицы.

2. Нумерация ячеек начинается с единицы.

3. Если не определен номер ячейки с помощью функции ColumnNumber, функция начинает работу с первой ячейки.

4. После выполнения метода происходит смещение на следующую ячейку.


ksClearTableColumnText
ksClearTableColumnText 	Пример

Очистить ячейку таблицы или допуска формы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksClearTableColumnText.

Синтаксис:

int ksClearTableColumnText (unsigned int numb);

Входной параметр:

numb	- номер ячейки,
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Если numb = 0, очищается вся таблица.

2. Нумерация ячеек начинается с 1.

3. Функция используется в режиме редактирования таблицы или допуска формы.


ksCombineTwoTableItems
ksCombineTwoTableItems 	Пример

Объединить две ячейки таблицы, если они имеют общее ребро.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCombineTwoTableItems.

Синтаксис:

int ksCombineTwoTableItems (unsigned int index1, unsigned int index2);

Входные параметры:

index1	- номер первой ячейки,
index2	- номер второй ячейки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Нумерация ячеек начинается с 1.

2. Функция используется в режиме редактирования таблицы или допуска формы.


ksDivideTableItem
ksDivideTableItem  	Пример

Разделить ячейку таблицы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDivideTableItem.

Синтаксис:

int ksDivideTableItem (unsigned int index, unsigned char vertical, unsigned short style);

Входные параметры:

index	- номер ячейки,
vertical	- направление разделения ячейки: 1 - вертикально,  0 - горизонтально,
style	- стиль линии получившейся границы: 0 - невидимая,  1 - основная,  2 - тонкая,  7 - утолщенная.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. умерация ячеек начинается с 1.

2. Функция используется в режиме редактирования таблицы или допуска формы.


ksSetTableBorderStyle
ksSetTableBorderStyle  	Пример

Изменить стиль границы ячейки.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetTableBorderStyle.

Синтаксис:

int ksSetTableBorderStyle (unsigned int index, unsigned char typeBorder, unsigned short style);

Входные параметры:

index	- номер ячейки,
typeBorder	- тип границы: 0 - левая,  1 - правая,  2 - верхняя,  3 - нижняя,
style	- стиль линии границы: 0 - невидимая,  1 - основная,  2 - тонкая,  7 - утолщенная.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Нумерация ячеек начинается с 1.

2. Функция используется в режиме редактирования таблицы или допуска формы.


ksGetTableBorderStyle
ksGetTableBorderStyle  	Пример

Получить стиль границы ячейки.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetTableBorderStyle.

Синтаксис:

int ksGetTableBorderStyle (unsigned int index, unsigned char typeBorder);

Входные параметры:

index	- номер ячейки,
typeBorder	- тип границы: 0 - левая,  1 - правая,  2 - верхняя,  3 - нижняя.
Возвращаемое значение:

- стиль линии границы: 0 - невидимая,  1 - основная,  2 - тонкая,  7 - утолщенная.	- в случае успешного завершения,
-1	- в случае неудачи.
Примечание:

1. Нумерация ячеек начинается с 1.

2. Функция используется в режиме редактирования таблицы или допуска формы.


ksOpenTolerance
ksOpenTolerance  	Пример

Открыть допуск формы для редактирования.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksOpenTolerance.

Синтаксис:

int ksOpenTolerance (reference tolerance);

Входной параметр:

tolerance	- указатель на допуск формы.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Чтобы завершить редактирование допуска формы, нужно вызвать функцию EndObj.


Пример использования функций для редактирования допуска формы

// редактирование допуска формы

  reference pObj;

  RequestInfo  info;

  double x, y;

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

  info.prompt = "Укажите допуск формы";

  int j = Cursor(&info, &x ,&y, 0);

  if (j) {

    if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

      //узнаем тип объекта

      int type =GetObjParam( pObj,0,0,0);   //указатель на графический

объект

      if (type == TOLERANCE_OBJ) {

        unsigned int numb;

        char buf[128];

        //открыть допуск формы для редактирования

        ksOpenTolerance(pObj);

        ToleranceParam  par;

        //параметры допуска формы

        GetObjParam( pObj,   //указатель на графический объект

                    &par,  //указатель на структуру параметров

                    sizeof(ToleranceParam),   //размер структуры

параметров

                    ALLPARAM); //тип считывания параметров

        sprintf(buf, "базовая точка=%d стиль=%d расположение-%s\nx=%5.1f

y=%5.1f  ",

                          par.tBase, par.style, par.type ?

"вертикальное":"горизонтальное", par.x, par.y);

        Message(buf);

        TextLineParam par1;

        //в цикле будем брать все существующие ячейки

        while (ksGetToleranceColumnText(&numb, &par1)!=0) {

          sprintf(buf, "numb =%d   ", numb);

          Message(buf);

          sprintf(buf, "style=%d ", par1.style);

          Message(buf);

          TextItemParam par3;

          for (int j=0; j< GetArrayCount(par1.pTextItem); j++) {

            GetArrayItem(par1.pTextItem, j, &par3, sizeof(TextItemParam));

            if (!par3.tip)

              sprintf(buf, "компонента=%d h=%5.1f\ns=%s\n

fontName=%s\nбитвектор =%d ",j,par3.font.height,par3.s,

                        par3.font.fontName, par3.font.bitVector);

            else

              sprintf(buf, "компонента=%d тип = %d номер спецзнака=%d

",j,par3.tip,par3.iSNumb);

            Message(buf);

          }

          DeleteArray(par1.pTextItem);  //очистим массив компонент

        }

      //заменим параметры

        par.x += 10;

        par.y += 10;

        SetObjParam( pObj,   //указатель на графический объект

                      &par,  //указатель на структуру параметров

                      sizeof(ToleranceParam ),   //размер структуры

параметров

                      ALLPARAM); //тип считывания параметров

        ColumnNumber(2);

        TextLine (NEW_LINE  ,0,0 ,"вторая ячейка");

        ksDivideTableItem(3, 1, 2);

        ColumnNumber(4);

        TextLine (NEW_LINE  ,0,0 ,"4");

//            ksSetTableBorderStyle(1,2,1);

//            ksClearTableColumnText(0);

        EndObj();//закрыли объект "допуск формы"

      }

      else

        Error("это не допуск формы");

    }

    else

      Error("нет объекта");

  }


ksGetToleranceColumnText
ksGetToleranceColumnText 	Пример

Получить текст ячейки.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetToleranceColumnText.

Синтаксис:

int ksGetToleranceColumnText (unsigned int *numb, TextLineParam *par);

Выходные параметры:

numb	- номер ячейки,
par	- указатель на структуру параметров строки текста TextLineParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция используется в режиме редактирования допуска формы

2. Нумерация ячеек начинается с единицы.

3. Если не определен номер ячейки с помощью функции ColumnNumber, функция начинает работу с первой ячейки.

4. После выполнения функции происходит смещение на следующую ячейку.

5. Если par=0, все графы пройдены.

6. После использования массив par->pTextItem желательно удалить.

7. Если numb = NULL , функция возвращает номер графы.


ksGetPointOnToleranceTable
ksGetPointOnToleranceTable 	Пример

Получить координаты точки на таблице допуска формы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetPointOnToleranceTable.

Синтаксис:

int ksGetPointOnToleranceTable (reference tolerance, unsigned char entry, MathPointParam * point);

Входные параметры:

tolerance	- указатель на допуск формы,
entry	- положение базовой точки.
Выходной параметр:

point	- указатель на структуру параметров математической точки MathPointParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksGetPointOnToleranceTable - пример использования

reference pObj;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите допуск формы";

int j = Cursor(&info, &x ,&y, 0);

if (j) {

  if(ExistObj(pObj = FindObj(x, y, 1e6))){

    //узнаем тип объекта

    int type =GetObjParam( pObj,0,0,0);   //указатель на графический объект

    if (type == TOLERANCE_OBJ) {

      for(unsigned char  i = 1; i < 9 ; i++) {

        MathPointParam  parPoint;

        if (ksGetPointOnToleranceTable(pObj,         // указатель на допуск формы

                                         i,     // тип точки на таблице допуска формы

                                         &parPoint)) // координаты точки

           Point(parPoint.x, parPoint.y,   //координаты точки

                  (unsigned short)(i-1)); //стиль отрисовки  точки

      }

    }

    else

      Error("это не допуск формы");

  }

  else

    Error("нет объекта");

}


Функции работы с текстовыми надписями и таблицами

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


Функции работы с текстовыми надписями и таблицами
Функции

GetTextLengthFromReference

GetTextLength

ksConvertTextToCurve

ksEditTextLine

ksGetTextAlign

ksReadTableFromFile

ksSetTableColumnText

ksSetTextAlign

ksSetTextLineAlign

Paragraph

Table

TextLine

Text


Text - Создание простого текста
Text  	Пример

Создать текст в графическом документе.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksText.

Синтаксис:

reference Text (double x,
double y,
double ang,
double hStr,
double ksuStr,
unsigned int bitVector,
char *s);

Входные параметры:

x, y	- координаты точки привязки текста,
ang	- угол наклона текста,
hStr	- высота символов,
ksuStr	- сужение текста,
bitVector	- битовый вектор, задающий признаки начертания текста,
Признаки начертания текста...

Выходные параметры:

s	- строка символов.
Возвращаемое значение:

указатель на текст	- в случае удачного завершения,
0	- в случае неудачи.


Text, TextLine, Paragraph - пример использования

void Text_Example (void) {

reference p;

// Простой текст

Text (30 , 90, 0, 5, 1, 0,Простой текст);

Text (30 , 80, 0, 5, 1, 0,Пример дроби$dЧислитель;Знаменатель$);

Text (30 , 70, 0, 5, 1, 0,Пример отклонений 20$+0.5;-0.3$);

Text (30 , 60, 0, 5, 1, 0,Пример спецсимвола &32);

// Структурированный текст

ParagraphParam par;

par.x = 30; par.y = 40; par.ang = 0;

par.hToleranceat = 0; par.vToleranceat = 0;

par.height = 25; par.width  = 20;

int j=2;

p =  Paragraph (&par);

TextLine (NEW_LINE  ,0,0 ,Первая строка);

//числитель, наклон, высота дроби в 1.5 раза меньше высоты текста

TextLine (NUMERATOR|ITALIC_ON,FRACTION_TYPE ,&j ,Числитель);

//знаменатель, утолщение

TextLine (DENOMINATOR|BOLD_ON,0 ,0 ,Знаменатель);

//конец дроби, снятие утолщения,снятие наклона

TextLine (END_FRACTION|BOLD_OFF | ITALIC_OFF, 0, 0 ,4444);

  	TextLine (NEW_LINE  ,0,0 ,Вторая строка);

int tip = 65;

//спецзнак шероховатость

TextLine (SPECIAL_SYMBOL  ,SPECIAL, &tip ,Rz80);

//конец спецзнака

TextLine (SPECIAL_SYMBOL_END  ,0, 0 ,222);

 	EndObj();

}; /* Text_Example */


TextLine - Задание подстроки параграфа текста
TextLine  	Пример

Задать подстроку параграфа текста.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksTextLine.

Синтаксис:

int TextLine (unsigned int bitVector, int type, void *value, char * s);

Входной параметр:

bitVector	- значения свойств, устанавливаемые двоичными флагами,
type	- тип свойства,
Выходной параметр:

value	- указатель на значение свойства,
s	- создаваемый компонент текста.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция предназначена для задания сложноструктурированного текста, отдельные компоненты которого имеют различные параметры.

2. Спецзнак задается отдельной компонентой.


Paragraph - Определение параграфа текста
Paragraph  	Пример

Начать параграф.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksParagraph.

Синтаксис:

int Paragraph (ParagraphParam *par);

Выходной параметр:

par	- указатель на структуру параметров параграфа ParagraphParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Описание:

1. Параграфом называется автоматически форматируемый блок текста (левосторонний, правосторонний, центрированный, по двум сторонам).

2. При работе в текстовом процессоре он завершается символом <ENTER>. Описание параграфа заканчивается функцией EndObj, возвращающей указатель на созданный объект.


GetTextLength - Получить длину текста
GetTextLength  	Пример

Получить длину текста.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetTextLength.

Синтаксис:

double GetTextLength (char * text, unsigned short style);

Входные параметры:

style	- стиль текста.
Системные стили текстов...

Входные параметры:

text	- указатель на строку текста,
Возвращаемое значение:

	вычисленное значение длины текста (в миллиметрах).
Примечание:

Функция может принимать строку в синтаксисе версии КОМПАС 4 (спецзнаки, дроби, отклонения).


GetTextLength - пример использования

/*GetTextLenght_example*/

{

reference pText;

double     len1, len2;

len1 = GetTextLenght(« Пример текста», 1);   // Пример функции GetTextLenght

pText = Text (30 , 90, 0, 5, 1, 0,Простой текст);

len2 = GetTextLenghtFromReference(pText);     // Пример функции GetTextLenghtFromReference

}


GetTextLengthFromReference - Получить длину текста, заданного указателем
GetTextLengthFromReference  Пример

Получить длину текста, заданного указателем.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetTextLengthFromReference.

Синтаксис:

double GetTextLengthFromReference (reference pText);

Входной параметр:

pText	- указатель на текст.
Возвращаемое значение:

	вычисленное значение длины текста (в миллиметрах).
Примечание:

Функция может принимать строку в синтаксисе версии КОМПАС 4 (спецзнаки, дроби, отклонения).


ksConvertTextToCurve - Преобразовать указанный текст в кривые
ksConvertTextToCurve  Пример

Преобразовать указанный текст в кривые.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksConvertTextToCurve.

Синтаксис:

reference ksConvertTextToCurve (reference pText);

Входной параметр:

pText	- указатель на текст.
Возвращаемое значение:

указатель на временную группу кривых	- в случае удачного завершения,
0	- в случае неудачи.


ksConvertTextToCurve - пример использования

reference pText;

      RequestInfo  info;

      //обнулить структуру  info;

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

      double x, y;

      info.prompt = "Укажите текст";

      int j = Cursor (&info, &x ,&y, 0);

      if (j) {

        if (ExistObj (pText = FindObj (x, y, 1e6)) &&

          GetObjParam (pText,  0, 0, 0) == TEXT_OBJ) {

          reference gr = ksConvertTextToCurve (pText);

          if (gr) {

            Phantom phantom;     	// ltdefine.h

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

            phantom.type1.gr = gr; 	//временная группа

            phantom.phType = 1; 	//сдвиг группы

            phantom.type1.scale = 1; 	//сдвиг группы

            j = Cursor (&info, &x ,&y, &phantom);

            if (j == -1) { 	//поставить в модель

              MoveObj (phantom.type1.gr, x, y); 	//смещаем группу в новый   цетр

              StoreTmpGroup (phantom.type1.gr);//временную группу делаем постоянной

              ClearGroup (phantom.type1.gr);

              DeleteObj (phantom.type1.gr);

            }

          }

        }

        else

          Error ("Это не текст");

      }


Table - Определение таблицы
Table  	Пример

Создать таблицу в графическом документе.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksTable.

Синтаксис:

reference Table (void);

Возвращаемое значение:

указатель на таблицу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. После вызова функции и далее до вызова функции EndObj объекты чертежа (включая вертикальные и горизонтальные отрезки и тексты) будут объединены в таблицу.

2. Таблица может быть регулярной и нерегулярной.


Table - пример использования

void Table_Example (void)

{

reference p;

p = Table ();

LineSeg(50, 50, 90, 50, 0);

LineSeg(50, 40, 90, 40, 0);

LineSeg(50, 30, 90, 30, 0);

LineSeg(50, 50, 50, 30, 0);

LineSeg(70, 50, 70, 30, 0);

LineSeg(90, 50, 90, 30, 0);

Text(52, 48, 0, 5, 1,0, Простой текст);	//первая ячейка по точке привязки

ParagraphParam par;

par.x = 72;  par.y = 48;	//вторая ячейка

par.ang = 0; par.hToleranceat = 0; par.vToleranceat = 0;

par.height = 20;	//высота блока форматирования

par.width  = 20;	//ширина блока форматирования

Paragraph (&par);

int j=2;

TextLine (NEW_LINE, 0, 0, Сложный);

TextLine (NEW_LINE|BOLD_ON, 0, 0, структурированный);

TextLine (NEW_LINE|BOLD_OFF | ITALIC_ON, 0, 0, текст);

EndObj();

EndObj();

};


ksSetTableColumnText - Замена текста в ячейке таблицы
ksSetTableColumnText	Пример

Задать текст ячейки таблицы.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetTableColumnText.

Синтаксис:

int ksSetTableColumnText (unsigned int numb, TextParam *par);

Входные параметры:

numb	- номер ячейки,
Выходные параметры:

par	- указатель на структуру параметров строки текста TextParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования таблицы:

ksOpenTable ();

ksSetTableColumnText ();

EndObj ();


ksSetTableColumnText - пример использования

// редактирование таблицы

reference pObj;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите таблицу";

// взять таблицу на чертеже

int j = Cursor(&info, &x ,&y, 0);

if (j)

{

if (ExistObj (pObj = FindObj (x, y, 100000)))

{

//узнаем тип объекта

int type =GetObjParam (pObj,0,0,0);	//указатель на графический объект

//проверить, таблица ли полученный объект

if (type == TABLE_OBJ)

{

unsigned int numb;

reference p;

//открыть таблицу для редактирования

ksOpenTable (pObj);

TextParam par;

//в цикле будем брать все существующие ячейки

while ((ksGetTableColumnText (&numb, &par))!=0)

{

p=par.pTextLine;

TextLineParam linePar;

for (int i=0; i < GetArrayCount(p); i++)

{

GetArrayItem(p , i, &linePar, sizeof(TextLineParam));

TextItemParam itemPar;

for (int j=0; j< GetArrayCount(linePar.pTextItem); j++)

{

GetArrayItem (linePar.pTextItem, j, &itemPar,

sizeof (TextItemParam));

if (strlen(itemPar.s))

{

strcat(itemPar.s, "!!!");

SetArrayItem (linePar.pTextItem, j, &itemPar,

sizeof(TextItemParam));

}

}

SetArrayItem(p , i, &linePar, sizeof(TextLineParam));

}

//очистим массив текстовых строк

ksSetTableColumnText(numb, &par);

}

EndObj();//закрыли объект "таблица"

}

else

Error("Указанный объект - не таблица");

}

else

Error("нет объекта");

}


ksReadTableFromFile - Создать таблицу, используя файл *.tbl
ksReadTableFromFile  	Пример

Создать таблицу, используя файл таблицы *.tbl

Аналог данной функции при использовании Automation - метод ksDocument2D::ksReadTableFromFile.

Синтаксис:

reference ksReadTableFromFile (char * tblFileName);

Выходной параметр:

tblFileName	- полное имя файла таблицы.
Возвращаемое значение:

указатель на таблицу	- в случае удачного завершения,
0	- в случае неудачи.


ksReadTableFromFile - пример использования

char tabName[250];

  int j1;

  do {

     //выберем  файл таблицы

    if((j1 = ksChoiceFile("*.tbl","таблицы(*.tbl)|*.tbl|Все файлы (*.*)|*.*|", tabName, 250, 0)) != 0){

      double x, y;

      //подготовим структуры фанома и запросов для Placement

      struct Phantom  rub;

      rub.type1.xBase = 0;

      rub.type1.yBase = 0;

      rub.type1.scale = 1;

      rub.phType      = 1;

      //во временную группу положим вставку фрагмента, взятую из библиотеки фрагментов

      PlacementParam  par;

      par.xBase = 0;

      par.yBase = 0;

      par.ang   = 0;

      par.scale = 1 ;

      //создаем временную группу

      rub.type1.gr = NewGroup (1);

      reference  pTab =  ksReadTableFromFile(tabName); //полное имя к файлу таблицы

      EndGroup();

      if (pTab && Cursor(NULL, &x, &y, &rub)) {

        //сдвигаем группу

        MoveObj(rub.type1.gr, x, y);

        //ставим группу в модель

        StoreTmpGroup(rub.type1.gr);

        ClearGroup(rub.type1.gr);

        DeleteObj(rub.type1.gr);

      }

      else {

        if (pTab)

          Error("Ошиба при считывании таблицы");

        DeleteObj(rub.type1.gr);

      }

    }

  } while(j1);


ksGetTextAlign
ksGetTextAlign 	Пример

Получить точку привязки текста.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetTextAlign.

Синтаксис:

int ksGetTextAlign (reference pText);

Входной параметр:

pText	- указатель на объект "текст".
Возвращаемое значение:

тип привязки текста	- в случае успешного завершения,
-1	- в случае неудачи.
Типы привязки текста...


ksSetTextAlign
ksSetTextAlign 	Пример

Установить точку привязки текста.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetTextAlign.

Синтаксис:

int ksSetTextAlign (reference pText, unsigned int align);

Входные параметры:

pText	- указатель на объект "текст",
align	- тип привязки текста.
Типы привязки текста...

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksGetTextAlign, ksSetTextAlign - пример использования

    	reference iter = ::CreateIterator(TEXT_OBJ, 0); // итератор по всем текстам документа

      if (iter) {

      	reference txt = ::MoveIterator(iter, 'F');    // первый текст

        while (::ExistObj(txt)) {                     // пройдем по всем текстам

if (::ksGetTextAlign(txt) == txta_Left)     // если точка привязки текста слева

          	::ksSetTextAlign(txt, txta_Right);        // установим ее справа

        	txt = ::MoveIterator(iter, 'N');            // следующий текст

        }

      }

      ::DeleteIterator(iter);                         // удалим итератор


ksSetTextLineAlign
ksSetTextLineAlign 	Пример

Установить выравнивание текста.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetTextLineAlign.

Синтаксис:

int ksSetTextLineAlign (unsigned char align);

Входной параметр:

align	- признак выравнивания: 0 - по левому краю, 1 - по центру, 2 - по правому краю, 3 - по ширине.
Возвращаемое значение:

предыдущий признак выравнивания	- в случае успешного завершения,
-1	- в случае неудачи.


ksSetTextLineAlign - пример использования

  if (::OpenStamp()) {

    ::ColumnNumber(2); // 2-справа

    ::ksSetTextLineAlign(0);

    ::TextLine(NEW_LINE, 0, 0 , "1111111");

    ::CloseStamp();

  }


ksEditTextLine - Диалог редактирования текста
ksEditTextLine

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

Синтаксис:

int ksEditTextLine (void *HWindow,

char *str,

int sizeStr);

Входные параметры:

HWindow	- HWND окна
sizeStr	- размер строки str
Выходной параметр:

str	- строка текста
Возвращаемое значение:

1	- выход из диалога по кнопке OK,
0	- выход из диалога по кнопке Отмена.


Функции работы со слоями

Функции данного радела обеспечивают работу со слоями вида или фрагмента чертежа (создание и обработка слоя, слияние слоев и редактирование их параметров).


Функции работы со слоями
Функции

ChangeObjectLayer

GetLayerNumber

GetLayerReference

Layer


Layer - Определить текущий слой
Layer  	Пример

Сделать слой текущим.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLayer.

Синтаксис:

reference Layer (int n);

Входной параметр:

n	- номер слоя.
Возвращаемое значение:

указатель на слой	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если слоя с заданным номером нет, он создается.


Пример использования функций работы со слоями

void Layers_Example (void) {

reference lay1, lay2;

int number;

char buf[128];

LayerParam par;

lay1 = Layer (1); /* создание слоя 1 */

strcpy(par.name, Квадрат);

par.state = 0; par.color = RGB(255, 0, 0); /* красный */

SetObjParam (lay1,&par,sizeof(par), ALLPARAM);

LineSeg (0,       0,     0,   100, 1);  /* объекты записываются   */

LineSeg (0,    100, 100,   100, 1);  /* в слой 1 - Квадрат       */

LineSeg (100, 100, 100,      0, 1);

LineSeg (100,    0,     0,      0, 1);

lay2 = Layer (2); /* создание слоя 2 */

strcpy(par.name, Треугольник);

par.state = 0; par.color = RGB(0, 255, 0); /* зеленый */

SetObjParam (lay2,&par,sizeof(par), ALLPARAM);

LineSeg (10,     10,   50,    90, 2);  /* объекты записываются   */

LineSeg (50,    90,   90,    10, 2);  /* в слой Треугольник      */

LineSeg (90,    10,   10,    10, 2);

number = GetLayerNumber (lay1); /* получить номер 1*/

sprintf(buf,number=%d,number);

Message(buf);

lay2 = GetLayerReference(2); /* получить указатель на слой с номером 2 */

}; /* Layers_Example */


GetLayerReference - Получить указатель слоя
GetLayerReference  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetLayerReference.

Синтаксис:

reference GetLayerReference (int number);

Входной параметр:

number	- номер слоя.
Возвращаемое значение:

указатель на слой	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Возврат нулевого значения означает, что слой с таким номером в документе отсутствует.


GetLayerNumber - Получить номер слоя
GetLayerNumber  	Пример

Получить номер слоя.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetLayerNumber.

Синтаксис:

int GetLayerNumber (reference p);

Входной параметр:

p	- указатель на слой.
Возвращаемое значение:

номер слоя	- в случае удачного завершения,
-1	- в случае неудачи.
Примечания:

1. Системный слой имеет номер 0.

2. Если p - объект слоя, возвращается номер слоя этого объекта.

3. Если p = 0, то возвращается номер текущего слоя.


ChangeObjectLayer - Изменить слой объекта
ChangeObjectLayer  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksChangeObjectLayer.

Синтаксис:

int ChangeObjectLayer (reference obj, int number);

Входные параметры:

obj	- указатель на объект,
number	- номер слоя, на который переносится объект.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

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


ChangeObjectLayer - пример использования

{

reference obj;

Layer (1);

obj = LineSeg (10, 10 , 50, 50, 1);

Layer (2);

ChangeObjectLayer(obj, 2);

}


Функции работы с видами

Функции данного радела обеспечивают работу с видами чертежа (создание и изменение их параметров).


Функции работы с видами
Функции

CreateSheetView

GetViewNumber

GetViewReference

ksCreateSheetArbitraryView

ksCreateSheetArrowView

ksCreateSheetProjectionView

ksCreateSheetRemoteView

ksCreateSheetSectionView

ksCreateSheetStandartViews

ksRemoteElement

NewViewNumber

OpenView


ksCreateSheetStandartViews

Создать стандартные ассоциативные виды.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateSheetStandartViews.

Синтаксис:

extern "C" int LIB_FUNC ksCreateSheetStandartViews (AssociationViewParam *par,
unsigned int bitVector,
double dx,
double dy);

Входные параметры:

par	- структура параметров ассоциативного вида AssociationViewParam,
bitVector	- набор типов стандартных видов, которые нужно создать,
dx	- расстояние между видами по горизонтали,
dy	- расстояние между видами по вертикали.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Последний из созданных видов становится текущим.


ksCreateSheetProjectionView

Создать проекционный ассоциативный вид.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateSheetProjectionView.

Синтаксис:

extern "C" reference LIB_FUNC ksCreateSheetProjectionView(AssociationViewParam *par,
int *number,
reference view);

Входные параметры:

par	- структура параметров ассоциативного вида AssociationViewParam,
number	- номер создаваемого вида,
view	- указатель на базовый вид.
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Базовый вид должен быть ассоциативным.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksCreateSheetArrowView

Создать ассоциативный вид по стрелке.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateSheetArrowView.

Синтаксис:

extern "C" reference LIB_FUNC ksCreateSheetArrowView (AssociationViewParam *par,
int *number,
reference obj);

Входные параметры:

par	- структура параметров ассоциативного вида AssociationViewParam,
number	- номер создаваемого вида,
obj	- указатель на объект "стрелка вида".
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Объект "стрелка вида" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksCreateSheetSectionView

Создать ассоциативный вид разреза/сечения.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateSheetSectionView.

Синтаксис:

extern "C" reference LIB_FUNC ksCreateSheetSectionView (AssociationViewParam *par,
int *number,
reference obj);

Входные параметры:

par	- структура параметров ассоциативного вида AssociationViewParam,
number	- номер создаваемого вида,
obj	- указатель на объект "линия разреза".
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Объект "линия разреза" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksRemoteElement

Создать объект "Выносной элемент".

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRemoteElement.

Синтаксис:

reference LIB_FUNC ksRemoteElement (RemoteElementParam * par);

Входные параметры:

par	- структура параметров выносного элемента RemoteElementParam,
Возвращаемое значение:

указатель на объект "Выносной элемент"	- в случае успешного завершения,
Примечание:

Создается новый объект "Выносной элемент" в текущем виде и в текущем документе.


ksCreateSheetRemoteView

Создать ассоциативный выносной вид.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateSheetRemoteView.

Синтаксис:

extern "C" reference LIB_FUNC ksCreateSheetRemoteView (AssociationViewParam *par,
int *number,
reference obj);

Входные параметры:

par	- структура параметров ассоциативного вида AssociationViewParam,
number	- номер создаваемого вида,
obj	- указатель на объект "Обозначение выносного элемента"
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Объект "Обозначение выносного элемента" должен быть построен в ассоциативном виде. Этот вид будет базовым для создаваемого вида.

3. Если значение параметра number = 0, то создается вид с номером по возрастанию.

4. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


ksCreateSheetArbitraryView

Создать произвольный ассоциативный вид.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateSheetArbitraryView.

Синтаксис:

extern "C" reference LIB_FUNCksCreateSheetArbitraryView (AssociationViewParam *par,
int *number);

Входные параметры:

number	- номер создаваемого вида.
par	- структура параметров ассоциативного вида AssociationViewParam.
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вид становится текущим.

2. Если значение параметра number = 0, то создается вид с номером по возрастанию.

3. Если значение параметра *number = n, где n = 1 … 255, то создается вид с номером n. Если вид n существует, то ничего не создается.


Функции редактирования чертежа
Функции редактирования объектов чертежа

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


Функции редактирования чертежа
Функции

CopyObj

CursorEx

DecomposeObj

DeleteObj

DestroyObjects

ExistObj

GetMacroPlacement

GetObjParam

ksApproximationCurve

ksCalcRasterScale

ksChangeObjectsOrder

ksClearGroup

ksClearRegion

ksCopyObjEx

ksCopyObj

ksEditViewObject

ksGetMacroEditParam

ksGetOrthoMode

ksGetParametrizationParam

ksMovePointOnCurve

ksParametrizeObjects

ksReadGroupFromClip

ksSetOrthoMode

ksSymmetryObj

ksTextEx

ksTrimCurve

ksTrimNurbs

ksWriteGroupToClip

LightObj

MoveObj

PlacementEx

RotateObj

SetMacroPlacement

SetObjParam

SymmetryObj

TransformObj


ksGetOrthoMode - Получить режим ортогонального черчения
ksGetOrthoMode

Получить режим ортогонального черчения.

Синтаксис:

long LIB_FUNC ksGetOrthoMode (reference doc);

Входной параметр:

doc	- указатель на документ.
Возвращаемое значение:

1	- режим ортогонального черчения включен,
0	- режим ортогонального черчения выключен.


ksSetOrthoMode- Задать режим ортогонального черчения
ksSetOrthoMode

Задать режим ортогонального черчения.

Синтаксис:

long LIB_FUNC ksSetOrthoMode (reference doc, long orthoMode);

Входной параметр:

doc	- указатель на документ.
orthoMode	- режим ортогонального черчения (1 - включить, 0 - выключить).
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.
Примечание :

1. Используется только для визуальных документов.

2. Если указатель doc = 0, устанавливается режим ортогонального черчения для активного документа.


ksChangeObjectsOrder - изменить порядок отрисовки объектов чертежа
ksChangeObjectsOrder

Изменить порядок отрисовки объектов чертежа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksChangeObjectsOrder.

Синтаксис:

int ksChangeObjectsOrder (reference group, reference obj, int orderType);

Входной параметр:

obj	- указатель на объект относительно которого изменяется отрисовка группы,
group	- указатель на группу объектов, для которой требуется изменить последовательность отрисовки,
orderType	- тип изменения порядка объектов.
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.


ExistObj - Проверить существование объекта
ExistObj  	Пример

Проверить существование объекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksExistObj.

Синтаксис:

int ExistObj (reference obj);

Входной параметр:

obj	- указатель на объект.
Возвращаемое значение:

1	- в случае наличия объекта,
0	- в случае отсутствия объекта.


ExistObj, ExistGroupObj - пример использования

void ExistObj_Example (void) {

reference l1, gr ;

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg(0, 0, 80, 0, 3); /* осевая линия */

gr = NewGroup(0); /* определение группы объектов */

LineSeg (70,  10,   10, 10,  1);

EndGroup();   /* закончить формирование группы */

/* добавить  объекты в интерактивном режиме */

SelectGroup(gr, 0, 0, 0, 0, 0);

LightObj(gr, 1);	/* подсветить группу */

if ((!(ExistGroupObj(gr))) && (YesNo(Удалять группу?))) 	//удалить группу, если она пустая ?

DeleteObj(gr);

if (ExistObj(l1)) LightObj(l1,1);

}; /* ExistObj_Example */


ksEditViewObject- редактирование объекта, используя визуальный процесс
ksEditViewObject  	Пример

Запустить визуальный процесс редактирования объекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksEditViewObject.

Синтаксис:

int ksEditViewObject(reference obj);

Входной параметр:

obj	- указатель на объект.
Возвращаемое значение:

1	- объект отредактирован,
0	- объект не отредактирован.
Примечание :

Функция распространяется на все объекты вида кроме:

LAYER_OBJ	-слой
CONTOUR_OBJ	-контур
MACRO_OBJ	-нетипизированный макроэлемент
FRAGMENT_OBJ	-вставной фрагмент
ELLIPSE_ARC_OBJ	-дуга эллипса


DeleteObj - Удаление объекта
DeleteObj  	Пример

Удалить объект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDeleteObj.

Синтаксис:

int DeleteObj (reference obj);

Входной параметр:

obj	- указатель на объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель obj равен нулю, то удаляются выделенные объекты документа.


DestroyObjects - Удаление объекта
DestroyObjects

Разрушить присланные составные объекты.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDestroyObjects.

Синтаксис:

long LIB_FUNC ksDestroyObjects(reference p).

Входной параметр:

p	- указатель на объект, вид, слой или группу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Разрушает не только составные объекты (макроэлементы, вставки фрагментов, эквидистанты, прямоугольники, контуры) но и виды (если у них есть связь с моделью). Пока работает в визуальном режиме.


DeleteObj - пример использования

void DeleteObj_Example (void) {

reference gr ;

gr = NewGroup(0); /* задание группы объектов */

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg (70,  10,   10, 10,  1);

EndGroup();   /* закончить формирование группы */

if (Yes_No(Удалять группу?))

DeleteObj(gr);

}; /* DeleteObj_Example */


CopyObj - Копирование объекта
CopyObj  	Пример

Копировать объект

Синтаксис:

int CopyObj (reference obj,

double xb,

double yb,

double xn,

double yn,

double scale,

double ang);

Входные параметры:

obj	- указатель на объект,
xb, yb	- координаты базовой точки объекта,
xn, yn	- координаты нового положения базовой точки,
scale	- масштаб,
ang	- угол поворота в градусах.
Возвращаемое значение:

указатель на получившийся объект или группу объектов	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. Если указатель на объект равен нулю, то копируются выделенные объекты документа.

2. Функция устарела, рекомендуется вместо нее использовать функцию ksCopyObj.


CopyObj - пример использования

void CopyObj_Example (void)

{

reference gr ;

double x,y,ang; scale;

/* задание группы объектов */

gr = NewGroup(0);

/* объекты записываются в модель текущего вида */

LineSeg (-15,    0,  15,    0,  3);

LineSeg (   0, -15,    0,  15,  3);  /* */

Circle (0,  0,  10,  1);

/* закончить формирование группы */

EndGroup();

RequestInfo  info;

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

info.promt = " Новое положение базовой точки ";

/* задание параметров копирования */

if ((Cursor (&info, &x, &y, 0)) &&

    (ReadFloat (Угол поворота, 0, 0, 360, ang)) &&

    (ReadFloat(Масштаб, 1, 0, 999, scale)))

CopyObj(gr,  0, 0, x, y,  ang, scale);	/* копирование группы gr */

/* базовая точка совпадает с 0,0 */

};


ksCopyObj - Копирование объекта
ksCopyObj  	Пример

Копировать объект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCopyObj.

Синтаксис:

int ksCopyObj (reference obj,

double xb, double yb,

double xn, double yn,

double ang,

double scale);

Входные параметры:

obj	- указатель на объект,
xb, yb	- координаты базовой точки объекта,
xn, yn	- координаты нового положения базовой точки,
scale	- масштаб,
ang	- угол поворота в градусах.
Возвращаемое значение:

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

1. Если указатель на объект равен нулю, то копируются выделенные объекты документа.

2. Значения xb,yb, xn,yn задаются в системе координат текущего вида.


ksCopyObj - пример использования

ViewParam par;

   int number = 5;

   par.x = 20;

   par.y = 60;

   par.scale = 1;

   par.ang = 0;

   par.color = RGB(10,20,10);

   par.state = stACTIVE;

   strcpy(par.name, "user view");

   //создали вид

   reference v = CreateSheetView(&par, &number);

   //создали слой

   Layer(5);

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

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

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

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

   //копируем вид (для вида точки задаются в листовых координатах)

   reference p = ksCopyObj(l1, 20, 60, 40, 80, 1, 0 );

   LightObj (p, 1);

   Message("Подсветили скопированный вид");

   LightObj (p, 0);

   //сдвинули скопированный вид

   MoveObj(p, 50, 0);


SymmetryObj - Осевая симметрия объекта
SymmetryObj  	Пример

Отразить объект относительно оси.

Синтаксис:

int SymmetryObj (reference obj,

double x1, double y1,

double x2, double y2 ,

unsigned char withCopy);

Входные параметры:

obj	- указатель на объект,
x1, y1	- координаты первой точки на оси,
x2, y2	- координаты второй точки на оси,
withCopy	- режим копирования: 0 - исходные объекты удаляются, 1 - исходные объекты оставляются.
Возвращаемое значение:

указатель на получившийся объект или группу объектов	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. Если указатель obj равен нулю, то зеркально отображаются выделенные объекты документа.

2. Функция устарела, рекомендуется вместо нее использовать функцию ksSymmetryObj.


SymmetryObj - пример использования

void SymmetryObj_Example (void) {

reference gr ;

gr = NewGroup(0); /* задание группы объектов */

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg (70,  10,   10, 10,  1);

EndGroup();   /* закончить формирование группы */

/* симметрия относительно оси X */

if (Yes_No(Выполнять осевую симметрию))

SymmetryObj(gr,  0, 0, 100, 0, 0);

}; /* SymmetryObj_Example */


ksSymmetryObj - Осевая симметрия объекта
ksSymmetryObj  	Пример

Отразить объект относительно оси.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSymmetryObj.

Синтаксис:

int SymmetryObj (reference obj,

double x1, double y1,

double x2, double y2 ,

unsigned char copy);

Входные параметры:

obj	- указатель на объект,
x1, y1	- координаты первой точки на оси,
x2, y2	- координаты второй точки на оси,
copy	- режим копирования: 0 - исходные объекты удаляются, 1 - исходные объекты оставляются.
Возвращаемое значение:

указатель на получившийся объект или группу объектов	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если указатель obj равен нулю, то зеркально отображаются выделенные объекты документа.


ksSymmetryObj - пример использования

reference cir =Circle(20, 10, 20, 1);

   reference p = ksSymmetryObj(cir, 20, 35, 40, 35, 1);      // указатель на объект

   LightObj (p, 1);

   Message("подсветили полученный объект");

   LightObj (p, 0);


TransformObj - Преобразование объекта
TransformObj  	Пример

Преобразовать объект по установленной матрице.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksTransformObj.

Синтаксис:

int TransformObj (reference ref);

Входной параметр:

ref	- указатель на объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Для работы с матрицами служат функции Mtr и DeleteMtr.


TransformObj - пример использования

reference pObj;

RequestInfo info;

double x, y;

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

info.prompt = "Укажите объект";

reference g;

int j = Cursor (&info, &x ,&y, 0);

if (j)

{

if (ExistObj (pObj = FindObj (x, y, 1e6)))

{

Mtr (-10,-10,0, 2);

TransformObj (pObj);

DeleteMtr();

}

}


ksMovePointOnCurve - Сдвиг точки по кривой
ksMovePointOnCurve  	Пример

Получить координаты точки, находящейся на указанном вдоль кривой расстоянии от указанной точки.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksMovePointOnCurve.

Синтаксис:

int ksMovePointOnCurve (reference curve,

double * x, double * y,

double len,

int dir);

Входные параметры:

curve	- указатель на кривую,
len	- расстояние, на которое нужно сместить точку,
dir	- направление продвижения точки:   1 - в направлении построения кривой,  -1 - в обратном направлении.
Выходные параметры:

x, y	- координаты точки.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Если точка не находится на кривой, она проецируется на кривую.


ksMovePointOnCurve - пример использования

//неравномерное размещение точек и перпендикуляров к ним на кривой

  static double pointLen[] = { 0, 5, 10, 15, 10, 5 };

  int count = 6;

  reference  pObj;

  RequestInfo  info;

  double x, y;

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

  info.prompt = "Укажите точку на кривой";

  int j = Cursor(&info, &x ,&y, 0);

  if (j) {

    if(ExistObj(pObj = FindObj(x, y, 1e6))){

      //узнаем тип объекта

      int type = GetObjParam(pObj, 0, 0, 0); //указатель на графический объект

      if (type == CIRCLE_OBJ        	||    //окружность

           type == ARC_OBJ           	||    //дуга

           type == NURBS_OBJ         	||    //nurbs

           type == LINESEG_OBJ       	||    //отрезок

           type == BEZIER_OBJ        	||    //bezier

           type == CONTOUR_OBJ       	||    //контур

           type == POLYLINE_OBJ      	||    //полилиния

           type == ELLIPSE_OBJ       	||    //эллипс

           type == ELLIPSE_ARC_OBJ   	||    //дуга элипса

           type == RECTANGLE_OBJ     	||    //прямоугольник

           type == REGULARPOLYGON_OBJ      //многоугольник

         ) {

        for (int i = 0; i < count; i++) {

          if (ksMovePointOnCurve(pObj, //указатель на кривую

                            &x, &y,      //координаты точки

                            pointLen[i], //расстояние на которое нужно сместить точку

                            1)) {      //направление продвижения точки(1 - в направлении построения кривой, -1 в обратном напрвлении)

             //построим точку

            Point(x, y, 0);

            //найдем перпендикуляр к кривой в точке

            double angl =  ksGetCurvePerpendicular(pObj, x, y);

            //построим перпендикуляр (отрезок длиной 10 мм)

            double x1 = x, y1 = y, x2 = x, y2 = y;

            MovePoint ( &x1, &y1, angl, 5);

            MovePoint ( &x2, &y2, angl+180, 5);

            LineSeg (x1, y1, x2, y2, 2);

          }

        }

      }

      else

        Error("Выбранный объект не кривая");

    }

  }


ksReadGroupFromClip - прочитать геометрию из буфера обмена
ksReadGroupFromClip	Пример

Прочитать графические объекты из буфера обмена и разместить их во временной группе.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksReadGroupFromClip.

Синтаксис:

reference ksReadGroupFromClip();

Возвращаемое значение:

указатель на группу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. Графические объекты должны принадлежать одному виду.

2. Параметрические связи и ограничения объектов при чтении из буфера теряются, атрибуты сохраняются.


ksWriteGroupToClip - поместить группу в буфер обмена
ksWriteGroupToClip  	Пример

Разместить группу в буфере обмена с удалением или оставлением геометрии в документе-источнике (скопировать или вырезать геометрию в буфер обмена).

Аналог данной функции при использовании Automation - метод ksDocument2D::ksWriteGroupToClip.

Синтаксис:

int ksWriteGroupToClip (reference g, unsigned char copy);

Входные параметры:

g	- указатель на группу,
copy	- признак копирования или вырезания:  1 - копирование,  0 - вырезание.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksWriteGroupToClip, ksReadGroupFromClip - пример использования

//делаем активным документ 1.cdw

 OpenDocument("c:\\1.cdw", 0);

 double x, y, x1,y1;

 RequestInfo  info;

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

 info.prompt = "Укажите начальную точку окна";

 if (Cursor(&info, &x, &y, 0)) {

   info.prompt = "Укажите конечную точку окна";

   Phantom phantom;     // ltdefine.h

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

   //Задаем тип резиноыой нити - прямоугольник и передаем в Cursor, чтобы ввести область выделения

   phantom.phType = 3; //прямоугольник

   phantom.type3.xBase = x;

   phantom.type3.yBase = y;

   if (Cursor(&info, &x1, &y1, &phantom)) {

     //создадим пустую рабочую группу

     reference gr = NewGroup(0);

     EndGroup();

     //помещаем в группу  геометрию, которая попала в область выделения

     if (SelectGroup(gr, 1 ,x, y,  x1, y1)) {

       // группу выделения записываем в буфер обмена

       int rez =  ksWriteGroupToClip(gr,         // указатель на группу

                                      1); // 1 - с копированием; 0 - с удалением из текущего документа

       if (rez) {

         //делаем активным другой документ, например 1.frw, куда нужно перенести геометрию из буфера обмена

         OpenDocument("d:\\0\\1.frw", 0);

         //обнулить структуру  info;

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

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

         int j = 1;

         //группу считываем из буфера обмена

         phantom.type1.gr = ksReadGroupFromClip();

         phantom.phType = 1; //сдвиг группы

         phantom.type1.scale = 1; //сдвиг группы

         while (j) {

           j = Cursor(&info, &x ,&y, &phantom);

           if ( j == -1) {

             MoveObj(phantom.type1.gr, x, y); //смещаем группу в новый   цетр

             StoreTmpGroup(phantom.type1.gr); //временную группу делаем постоянной

             ClearGroup(phantom.type1.gr);

             DeleteObj(phantom.type1.gr);

             //группу считываем из буфера обмена

             phantom.type1.gr = ksReadGroupFromClip(); //временная группа

           }

         }

       }

     }

   }

 }


MoveObj - Сдвиг объекта
MoveObj  	Пример

Сдвинуть объект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksMoveObj.

Синтаксис:

int MoveObj (reference obj, double dx, double dy);

Входные параметры:

obj	- указатель на объект,
dx, dy	- вектор смещения объекта.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель obj равен нулю, то сдвигаются выделенные объекты документа.


MoveObj - пример использования

void MoveObj_Example (void) {

reference gr ;

double x1,y1,x2,y2;

gr = NewGroup(0); /* задание группы объектов */

LineSeg (-15,    0,  15,    0,  3);  /* объекты записываются   */

LineSeg (   0, -15,    0,  15,  3);  /* в модель текущего вида */

Circle (0,  0,  10,  1);

EndGroup();   /* закончить формирование группы */

RequestInfo  info;

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

info.commands = " Базовая точка ";	/* задание вектора сдвига */

if (Cursor(&info,&x1,&y1,0)){

     info.commands = " Ее новое положение ";	/* задание вектора сдвига */

    if (Cursor(&info,&x2,&y2, 0))

        MoveObj(gr,  x2-x1, y2-y1,  0);  /* сдвиг группы gr */

}

}; /* MoveObj_Example */


RotateObj - Поворот объекта
RotateObj  	Пример

Повернуть объект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRotateObj.

Синтаксис:

int RotateObj (reference obj, double xc, double yc, double ang);

Входные параметры:

obj	- указатель на объект,
xc, yc	- координаты центра поворота,
ang	- угол поворота (в градусах).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель obj равен нулю, то поворачиваются выделенные объекты документа.


RotateObj - пример использования

void RotateObj_Example (void)

{

reference gr ;

double x,y,ang;

gr = NewGroup (0);	//задание группы объектов

LineSeg (-15, 0, 15, 0, 3);	// объекты записываются

LineSeg (0, -15, 0, 15, 3);	// в модель текущего вида

Circle (0, 0, 10, 1);

EndGroup();   /* закончить формирование группы */

RequestInfo  info;

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

info.promt = " Центр поворота ";

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

if ((Cursor(&info,&x,&y, 0)) && (ReadFloat (Угол поворота, 0, 0, 360, ang)))

RotateObj (gr,  x, y,  ang);	// поворот группы gr

};


DecomposeObj - Разбить объект
DecomposeObj  	Пример

Разбить объект на составляющие части - отрезки, дуги, тексты.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDecomposeObj.

Синтаксис:

reference DecomposeObj (reference p,

unsigned char level,

double arrow,

unsigned char type);

Входные параметры:

p	- указатель на разбиваемый объект,
level	- степень детализации разбиения: 0 - отрезки, дуги, тексты, точки, 1 - отрезки, тексты, точки, 2 - отрезки, дуги, тексты, 4 - отрезки, дуги, точки, 5 - отрезки, дуги, тексты, заливки стрелок и треугольников баз, 6 - разбиение объектов из ассоциативного чертежа на составляющие с учетом видимых и невидимых участков,
arrow	- размер "стрелки прогиба",
type	- признак выбранной системы координат:  0 - разбиение объекта в СК вида,  1 - разбиение объекта в СК листа
Возвращаемое значение:

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

1. Метод используется при разработке различных конверторов, преобразующих информацию из системы КОМПАС во внешние форматы.

2. Текущий документ должен быть графическим.

3. Графический документ разбивается по частям. Такими частями могут быть объекты вида, основная надпись, технические требования, спецификация на листе, знак неуказанной шероховатости.

4. Документ-спецификация разбивается по листам (количество листов спецификации можно получить при помощи функции ksGetSpcDocumentPagesCount). Если функция используется для разбиения спецификации, то параметр type представляет собой номер листа спецификации, начиная с 1.

5. Сложные кривые заменяются набором отрезков и дуг (при level=1 - только набором отрезков).

6. Точность приближения к исходному объекту задается значением параметра arrow - максимальным расстоянием между исходным объектом и аппроксимирующим отрезком.

7 Если level=2, точки превращаются в графические объекты, служащие для отрисовки этих точек в КОМПАС-ГРАФИК (например, в два отрезка для точки типа "крест"). В остальных случаях точки (в том числе отрисованные в виде "крестов", "треугольников" и т.д.) превращаются в объект типа "точка".

8. Во всех случаях, кроме level=4, сложные тексты (например, тексты, написанные буквами разного начертания - прямого и курсивного) разбиваются на тексты с одинаковыми признаками. При level=4 тексты не изменяются.

9. Исходный объект после разбиения не изменяется.


DecomposeObj - пример использования

{

reference p;

LDimParam linPar;

memset(&linPar, 0,sizeof(LDimParam));

//параметры текста

  linPar.tPar.bitFlag = _AUTONOMINAL|_PREFIX|_TOLERANCE|_DEVIATION|_UNIT;

  linPar.tPar.sign = 1;  //диаметр

  linPar.tPar.pText = CreateArray(CHAR_STR_ARR ,0);

  AddArrayItem(linPar.tPar.pText, -1, 2отв., 6);  // _PREFIX

  AddArrayItem(linPar.tPar.pText, -1, H12, 4);    // _TOLERANCE

  AddArrayItem(linPar.tPar.pText, -1, мм, 5);     // _UNIT

//параметры привязки

  linPar.sPar.ps = 0;            // 0-горизонтальный

  linPar.sPar.x1 = 50; linPar.sPar.y1 = 50; // 1-ая точка

  linPar.sPar.x2 = 70; linPar.sPar.y2 = 60; // 2-ая

  linPar.sPar.dy = -20; // вектор определяющий положение размерной линии

  linPar.sPar.dx = 0;

  linPar.sPar.basePoint = 1;  // признак 1-dx, dy -откладвать от первой точки, 2- от второй

// параметры отрисовки линейного размера

  linPar.dPar.textPos   = 0;   // автоматическая простановка

  linPar.dPar.textBase = 0;   // от средины размера

  linPar.dPar.pl1         = 0;   // 1-ая  выносная линия есть

  linPar.dPar.pl2         = 0;   // 2-ая  выносная линия есть

  linPar.dPar.pt1         = 1;   // тип стрелки у 1-ой выносной линии  1-изнутри

  linPar.dPar.pt2         =  1;  // тип стрелки у 2-ой выносной линии  1-изнутри

  linPar.dPar.shelfDir   = -1;  // полка направлена влево

  linPar.dPar.ang        = -30; // угол наклона ножки

  linPar.dPar.length     = 20;  // длина ножки

  p = LinDimension(&linPar); //параметры линейного размера

DecomposeObj(p, 0, 5, 0);

}


ksApproximationCurve - Аппроксимировать кривую дугами
ksApproximationCurve 	Пример

Аппроксимировать кривую дугами.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksApproximationCurve.

Синтаксис:

reference ksApproximationCurve (reference p,

double eps,

unsigned char  curentLayer,

double maxRad,

unsigned char smooth);

Входные параметры:

p	- указатель на аппроксимируемую кривую,
eps	- точность аппроксимации (от 1e-7 до 1)
curentLayer	- тип размещения получившихся объектов на слоях:  0 - на слой кривой,  0 - в текущий слой,
maxRad	- максимально допустимый радиус дуг,  (0 - ограничение не накладывается),
smooth	- признак сопряжения: 1 - гладкое,  0 - не гладкое.
Возвращаемое значение:

указатель на контур, дугу, отрезок	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Аппроксимируются кривые Безье, NURBS, эквидистанты, эллипсы, дуги эллипсов и контуры. Остальные кривые игнорируются.


ksApproximationCurve - пример использования

if (ksGetCurrentDocument(1)) {

    reference pObj;

    RequestInfo  info;

    double x, y;

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

    info.prompt = "Укажите кривую для аппроксимации";

    int j;

    double eps       = 0.1;    //точтость апроксимации

    bool curentLayer = true;//строить на текущий слой

    bool delParent   = false; //не удалять подложку

    do {

      j = Cursor(&info, &x ,&y, 0);

      if (j) {

        if(ExistObj(pObj = FindObj(x, y, 1e6))){

          j = GetObjParam(pObj,  0,0,0);

          if (j == BEZIER_OBJ || j == NURBS_OBJ || j == ELLIPSE_OBJ || j == ELLIPSE_ARC_OBJ

               || j == EQUID_OBJ || j == CONTOUR_OBJ) {

            reference pApp = ksApproximationCurve(pObj,           // указатель на кривую

                                                 eps,         // точность  аппроксимации 1e-7...1

                                                 curentLayer,

                                                 0, 1);// тип размещения по слоям 0 - на слой кривой 1- в текущий слой

            LightObj(pApp, 1);

            if (delParent)

              DeleteObj(pObj);

            Message("Аппроксимированная кривая");

            LightObj(pApp, 0);

          }

          else

            Error("Неверно указана кривая для аппроксимации");

        }

      }

    }while (j);

  }

  else

    Error("Документ не активизирован или не является листом/фрагментом");


ksCopyObjEx

Копировать объект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCopyObjEx.

Синтаксис:

extern "C" reference LIB_FUNC ksCopyObjEx (CopyObjectParam * param);

Входные параметры:

param	- указатель на структуру параметров CopyObjectParam.
Возвращаемое значение:

указатель на объект или группу объектов	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция позволяет копировать объект (объект вида, вид, группу, слой) в новую точку с возможностью задания масштабирования копии и поворота ее вокруг базовой точки.


ksClearRegion - Очистить указанную область
ksClearRegion  	Пример

Очистить указанную область

Аналог данной функции при использовании Automation - метод ksDocument2D::ksClearRegion.

Синтаксис:

int ksClearRegion (reference grClear,

reference grRegion,

unsigned char inside);

Входные параметры:

grClear	- группа геометрии, которую нужно очистить (0 - просматривать все объекты текущего вида),
grRegion	- группа объектов, задающая область очистки,
inside	- признак расположения удаляемых объектов:  0 - снаружи области, ограниченной grRegion,  1 - внутри области.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksClearRegion - пример использования

reference gr = NewGroup(0);  // группа геометрии, представляющая область очистки

    ::Circle(0, 0, 40, 1);

  EndGroup();

  reference gr1 = NewGroup(1); //  группа геометрии, которую нужно очистить

    ::LineSeg(100, 100, -100, -100, 1);

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

  EndGroup();

  // очистка заданной области

  ::ksClearRegion(gr1/*группа которую надо очистить*/, gr/*область очистки*/, 1);

  ::StoreTmpGroup(gr1); // записываем результат в документ


ksTrimCurve - Усечь кривую
ksTrimCurve	Пример

Усечь кривую, оставив часть между указанными точками.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksTrimCurve.

Синтаксис:

reference ksTrimCurve (reference curve,

double x1, double y1,

double x2, double y2,

double x3, double y3,

unsigned char deleteOldCurve);

Входные параметры:

curve	- указатель на усекаемую кривую,
x1, y1	- координаты начала оставляемого участка,
x2, y2	- координаты конца оставляемого участка,
x3, y3	- координаты точки, определяющей направление усечения для замкнутых кривых (эта точка принадлежит оставляемому участку),
deleteOldCurve	- признак удаления усекаемой кривой: 1 - кривая будет удалена после усечения,  0 - кривая не будет удалена после усечения.
Возвращаемое значение:

указатель на усеченную кривую	- в случае успеха,
0	- в случае неудачи.
Примечание:

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


ksTrimCurve - пример использования

reference iter = ::CreateIterator(ALL_OBJ, 0);  // итератор по всем объектам

      if (iter) {

        reference obj  = ::MoveIterator(iter, 'F');   // первый объект

      	// если объект геометрический - усечем его

        if (::IsGeomObject(obj)) {

        	reference newCurve = ::ksTrimmCurve(obj, 0, 20, 0, -20, 1, false);

        	if (newCurve) {

            ::LightObj(newCurve, 1);    	            // подсветим объект

            ::Message ("Усекли кривую");              // выдадим сообщение

            ::LightObj(newCurve, 0);         	    // погасим подсветку объекта

}

        }

        ::DeleteIterator(iter);                     	// удалить итератор

      }


LightObj - Выделение объекта цветом
LightObj  	Пример

Выделить объект цветом.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLightObj.

Синтаксис:

int LightObj(reference obj, int reg);

Входные параметры:

obj	- указатель на объект,
reg	- режим подсветки: 1 - установить выделение, 0 - снять выделение.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При reg=1 объект выделяется, при reg=0 выделение снимается.


LightObj - пример использования

void LightObj_Example (void) {

reference gr ;

char name[40];

gr = NewGroup(0); /* определение группы объектов */

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg (70,  10,   10, 10,  1);

EndGroup();   /* закончить формирование группы */

LightObj(gr, 1);	/* подсветить группу */

if (Yes_No(Сохранять группу в модели?)) {

ReadString(Имя группы, name, 40);

SaveGroup(gr, name);

}

LightObj(gr, 0);	/* снять выделение группы */

}; /* LightObj_Example */


GetObjParam - Получить параметры объекта
GetObjParam  	Пример...

Получить параметры объекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetObjParam.

Синтаксис:

int GetObjParam (reference ref,

void *param,

int parSize,

int parType);

Входной параметр:

ref	- указатель на объект,
parType	- тип параметров объекта.
parSize	- размер структуры для записи параметров
Выходные параметры:

param	- указатель на структуру параметров,
Возвращаемое значение:

тип объекта	- в случае удачного завершения,
0	- в случае неудачи.
Смотрите также

SetObjParam


GetObjParam, SetObjParam - пример использования

void GetObjParam_Example(void)  {

char buf [128];

reference p;

LineSegParam par;

int t;

Mtr(30, 20, 45, 1);

p = LineSeg(0, 0, 30, 0, 1);

/* взять параметры отрезка */

t = GetObjParam(p, &par, sizeof(par), ALLPARAM);

sprintf(buf, " t=%d, x1=%4.1f y1=%4.1f x2=%4.1f y2=%4.1f tl=%d",t,

                                par.x1, par.y1 ,par.x2, par.y2 , par.style);

Message(buf);

/* заменить параметры отрезка */

par.x2 = 0;  par.y2 = 40;   par.style = 2;

if(SetObjParam(p, &par, sizeof(par), ALLPARAM))

Message(" Изменили объект");

else    MessageBoxResult();

DeleteMtr();

} /* _Example */

/***************************************************************************/

/*Второй пример использования GetObjParam и SetObjParam*/

// редактирование позиционной линии выноски

      reference pObj;

      RequestInfo  info;

      double x, y;

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

      info.prompt = "Укажите позиционную линию выноски";

      int j = Cursor(&info, &x ,&y, 0);

      if (j) {

        if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

          if (GetObjParam(pObj, 0,0,0) == POSLEADER_OBJ) {

            PosLeaderParam  leaderPar;

            GetObjParam(pObj,   //указатель на графический объект

                         &leaderPar,  //указатель на структуру параметров

                         sizeof(LeaderParam),   //размер структуры параметров

                         ALLPARAM); //тип считывания параметров

            leaderPar.x += 10;

            leaderPar.y += 10;

            int rez = SetObjParam(pObj,   //указатель на графический объект

                                   &leaderPar,  //указатель на структуру параметров

                                   sizeof(LeaderParam),   //размер структуры параметров

                                   ALLPARAM); //тип считывания параметров

            if (rez) {

              LightObj(pObj,1);

              Message ("линия выноски по параметрам");

              LightObj(pObj,0);

            }

            else

              MessageBoxResult();  //сообщение об ошибке

          }

          else

            Error("Объект не позиционная линия выноски");

        }

      }


SetObjParam - Установить параметры объекта
SetObjParam  	Пример...

Задать параметры указанного объекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetObjParam.

Синтаксис:

int SetObjParam (reference ref,

void *param,

int parSize,

int parType);

Входные параметры:

ref	- указатель на объект,
parSize	- размер структуры для записи параметров
paramType	- тип параметров объекта.
Выходные параметры:

param	- указатель на структуру параметров.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Данная функция позволяет обрабатывать параметры графического объекта (отрезка, размеров и т.п.), вида, слоя.

Смотрите также

GetObjParam


ksCalcRasterScale - Рассчитать масштаб для вставки растра в прямоугольник заданных габаритов
ksCalcRasterScale

Рассчитать масштаб для вставки растра в прямоугольник заданных габаритов.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCalcRasterScale.

Синтаксис:

double LIB_FUNC ksCalcRasterScale (const char* fileName, double w, double h);

Входные параметры:

fileName	- полный путь к файлу,
w	- ширина габаритного прямоугольника,
h	- высота габаритного прямоугольника.
Возвращаемое значение:

значение масштаба	- в случае успешного завершения,
0	- в случае неудачи.


ksTextEx - Создать многострочный текст
ksTextEx

Создать многострочный текст по структуре параметров TextParam.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksTextEx.

Синтаксис:

reference LIB_FUNC ksTextEx (TextParam * txtParam, int align);

Входные параметры:

txtParam	- указатель на структуру TextParam параметров текста,
align	- выравнивание текста: 0 - слева, 1 - по центру, 2 - справа, 3 - по ширине, -1 установить выравнивание как у стиля текста.
Возвращаемое значение:

указатель на созданный тест	- в случае успешного завершения,
0	- в случае неудачи.


ksParametrizeObjects - Параметризовать группу объектов
ksParametrizeObjects

Параметризовать группу объектов.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksParametrizeObjects.

Синтаксис:

int LIB_FUNC ksParametrizeObjects (reference group, IParametrizeParam* param);

Входные параметры:

group	- указатель на группу объектов,
param	- параметры параметризации объектов.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Если group = 0, параметризуется группа выделенных объектов.

2. Допуск на совпадение точек должен лежать в диапазоне [0...10] мм.

3. Угловой допуск должен лежать в диапазоне [0...10] градусов.

4. Получить интерфейс параметров параметризации можно при помощи функции ksGetParametrizationParam.


ksGetParametrizationParam - Получить интерфейс параметров параметризации объектов
ksGetParametrizationParam

Получить интерфейс параметров параметризации объектов.

Аналог данной функции при использовании Automation - метод KompasObject::GetParamStruct. В метод необходимо передать константу ko_ParametrizationParam.

Синтаксис:

IParametrizationParam* LIB_FUNC ksGetParametrizationParam();

Возвращаемое значение:

Указатель на интерфейс параметров параметризации объектов IParametrizationParam	- в случае успешного завершения,
NULL	- в случае неудачи.
Примечание:

Данная функция используется совместно с ksParametrizeObjects. Объявление интерфейса IParametrizationParam дано в библиотеке типов kAPI2D5COM.tlb.


CursorEx - Запрос к системе на получение точки
CursorEx

Запрос к системе на получение точки.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCursorEx.

Синтаксис:

int LIB_FUNC CursorEx (RequestInfo *info,
double *x,
double *y,
void *phantom,
LPUNKNOWN processParam);

Входные параметры:

info	- указатель на структуру параметров запроса к системе,
x, y	- координаты введенной точки,
phantom
- указатель на структуру управления фантомом, определяющую тип движения курсора (аналог типа резиновой нити в версии 4),
processParam	- указатель на интерфейс параметры процесса IProcessParam.
Выходные параметры:

x, y	- возвращаемые координаты точки.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Возможные варианты (команды) задаются в строке commands структуры info и разделяются восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений. Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


PlacementEx - Запрос к системе на получение точки и угла.
PlacementEx

Запрос к системе на получение точки и угла.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPlacementEx.

Синтаксис:

int LIB_FUNC PlacementEx (RequestInfo *info,
double *x,
double *y,
double *angle,
void *phantom,
LPUNKNOWN processParam);

Входные параметры:

info	- указатель на структуру параметров запроса к системе,
x, y	- координаты введенной точки,
angle	- введенный угол,
phantom	- указатель на структуру управления фантомом, определяющую тип движения курсора (аналог типа резиновой нити в версии 4),
processParam	- указатель на интерфейс параметры процесса IProcessParam.
Выходные параметры:

x, y	- возвращаемые координаты точки,
angle	- возвращаемое значение угла.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Возможные варианты (команды) задаются в строке commands структуры info и разделяются восклицательными знаками или пробелами. Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений. Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


Функции работы с группами объектов

Операции редактирования можно проводить с выделенными объектами. После выделения их можно объединить в отдельную группу для дальнейшего использования. Функции данного раздела позволяют выделить объекты, объединить их в группу на текущий сеанс работы или с последующей записью в документ, а также обрабатывать имеющиеся в документе группы объектов.


Функции работы с группами объектов
Функции

AddObjGroup

ClearGroup

EndGroup

ExistGroupObj

ExistObj

ExlcudeObjGroup

GetGroup

ksViewGetObjectArea

LightObj

NewGroup

SaveGroup

SelectGroup

StoreTmpGroup


NewGroup - Создание группы объектов
NewGroup  	Пример

Создать новую группу объектов.

Синтаксис:

reference NewGroup (int type);

Входной параметр:

type	- тип групы:  0 - модельная,  1 - временная.
Возвращаемое значение:

указатель на группу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. Создаваемые в дальнейшем до вызова функции EndObj объекты чертежа записываются в модель или во временный список объектов (например, для фантомной прорисовки при вводе).

2. Для дальнейшей обработки группы используются те же функции редактирования, что и для отдельных объектов, так как указатель на группу ничем не отличается от указателя на отдельный объект (оба они имеют тип reference).

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

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


NewGroup, EndGroup - пример использования

void NewGroup_Example (void) {

reference gr ;

double x,y,m,ang;

Phantom FANTOM;

gr = NewGroup(1); /* задание группы объектов */

LineSeg (-15,    0,  15,    0,  3);  /* объекты записываются   */

LineSeg (   0, -15,    0,  15,  3);  /* во временный список     */

Circle (0,  0,  10,  1);

EndGroup();   /* закончить формирование группы */

/* ввод точки с отображением фантома и копирование группы*/

FANTOM.phType=1;

FANTOM.type1.gr=gr;

FANTOM.type1.xBase=0; FANTOM.type1.yBase=0;

FANTOM.type1.scale=1; FANTOM.type1.ang=0;

RequestInfo  info;

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

info.promt = " Точка привязки ";

if (Cursor(&info, &x, &y, &FANTOM))

CopyObj(gr, x, y, m, ang);

if (YesNo(Удалять?))

DeleteObj(gr);

}; /* NewGroup_Example */


EndGroup - Завершить создание группы объектов
EndGroup  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksEndGroup.

Синтаксис:

void EndGroup (void);

Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.
Примечание:

Завершить создание группы объектов, начатое функцией NewGroup.


AddObjGroup - Добавить объект в группу
AddObjGroup  	Пример

Добавить объект в группу.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAddObjGroup.

Синтаксис:

int AddObjGroup (reference group, reference obj);

Входные параметры:

group	- указатель на группу,
obj	- указатель на добавляемый объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель на группу равен нулю, то добавление производится в группу выделения (т.е. происходит выделение объекта).


AddObjGroup - пример использования

void AddObjGroup_Example (void) {

reference gr,p ;

p = LineSeg(0, 0, 80, 0, 3); /* осевая линия */

gr = NewGroup(0); /* задание группы объектов */

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg (70,  10,   10, 10,  1);

EndGroup();   /* закончить формирование группы */

AddObjGroup(gr, p); /* добавить объект p */

LightObj(gr, 1);	/* подсветить группу */

if (Yes_No(Удалять группу?))

DeleteObj(gr);

}; /* AddObjGroup_Example */


SelectGroup - Автоматическое формирование группы объектов
SelectGroup  	Пример

Автоматически сформировать группу объектов.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSelectGroup.

Синтаксис:

int SelectGroup (reference group, int selectMode, double x1, double y1, double x2, double y2);

Входные параметры:

group	- указатель на группу,
selectMode	- тип выделения: 1 - объекты внутри прямоугольника-"ловушки", 2 - объекты снаружи прямоугольника-"ловушки", 3 - объекты, пересекающие прямоугольник-"ловушку",
x1, y1	- координаты левой нижней вершины прямоугольника-"ловушки",
x2, y2	- координаты правой верхней вершины прямоугольника-"ловушки".
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


SelectGroup - пример использования

void SelectGroup_Example (void) {

reference gr ;

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg (70,  10,   10, 10,  1);

LineSeg(0, 0, 80, 0, 3); /* осевая линия */

gr = NewGroup(0); /* определение группы объектов */

EndGroup();   /* закончить формирование группы */

/* добавить  объекты, расположенные внутри прямоугольника */

SelectGroup(gr, 1, 5, 5, 75, 35);

LightObj(gr, 1);	/* подсветить группу */

if (Yes_No(Удалять группу?))

DeleteObj(gr);

}; /* SelectGroup_Example */


ExcludeObjGroup - Исключить объект из группы
ExcludeObjGroup  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksExcludeObjGroup.

Синтаксис:

int ExcludeObjGroup (reference group, reference obj);

Входные параметры:

group	- указатель на группу,
obj	- указатель на исключаемый объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


ExcludeObjGroup - пример использования

void ExcludeObjGroup_Example (void) {

reference gr,p ;

gr = NewGroup(0); /* задание группы объектов */

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg (70,  10,   10, 10,  1);

p = LineSeg(0, 0, 80, 0, 3); /* осевая линия */

EndGroup();   /* закончить формирование группы */

ExcludeObjGroup(gr, p); /* исключить объект p */

LightObj(gr, 1);	/* подсветить группу */

if (Yes_No(Удалять группу?))

DeleteObj(gr);

}; /* ExcludeObjGroup_Example */


ksGetGroupName - Получить имя группы по указателю на группу
ksGetGroupName  	Пример

Получить имя группы по указателю на группу.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetGroupName.

Синтаксис:

int ksGetGroupName (reference gr,

char *name,

int size);

Входные параметры:

gr	- указатель на группу,
name	- указатель строки для имени группы
size	- размер строки
Выходной параметр:

-1	- у группы есть имя, но размер size меньше требуемой длины имени группы (имя не передается)
0	- ошибка указания группы,
1	- именная группа (имя есть),
2	- рабочая группа (имени нет).
Возвращаемое значение:

	строка с именем группы.


ksGetGroupName - пример использования

//создаем рабочую группу

  reference gr = 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 ();

  //рабочую группу сохраняем в именной

  //именная группа хранится в документе

  SaveGroup (gr, "group1");

  char grName [255];

  //получим имя группы

  ksGetGroupName (gr,             	// указатель на группу

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

255);	// размер строки

  Message (grName);


ClearGroup - Очистить группу объектов
ClearGroup  	Пример

Очистить группу объектов

Аналог данной функции при использовании Automation - метод ksDocument2D::ksClearGroup.

Синтаксис:

int ClearGroup (reference group);

Входные параметры:

group	- указатель на очищаемую группу  (0 - очищается группа выделения),
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Описание:

1. Все объекты исключаются из группы. Если группа создавалась как временная, то при этом все ее объекты автоматически удаляются.

2. Если указатель group равен нулю, то очистится группа выделения (снимется текущее выделение объектов).


ClearGroup - пример использования

void ClearGroup_Example (void)

{

reference gr ;

gr = NewGroup(0);	// задание группы объектов

LineSeg (10,  10,  10,  20,  1);	// объекты записываются

LineSeg (10,  20,   40, 20,  1);	// в модель текущего вида

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

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

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

LineSeg (70,  10,   10, 10,  1);

EndGroup();	// закончить формирование группы

//симметрия относительно оси X

if (Yes_No (Выполнять осевую симметрию))

{

SymmetryObj (gr,  0, 0, 100, 0, 0);

ClearGroup(gr);	// очистка группы после использования

}

};


ksClearGroup - Очистить группу
ksClearGroup  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksClearGroup.

Синтаксис:

int ksClearGroup (reference g,

unsigned char deleteTmp);

Входные параметры:

g	- указатель на очищаемую группу  (0 - очищается группа выделения),
deleteTmp	- признак удаления временных элементов:  1 - временные элементы удаляются, 0 - временные элементы сохраняются.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksClearGroup - пример использования

  reference gr = NewGroup(1); // временная группа геометрии

    ::LineSeg(100, 100, -100, -100, 1);

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

  EndGroup();

  // Удалить или нет временные объекты

  bool deleteTmp = ::YesNo("Удалить временные объекты") == 1 ? true : false;

  ::ksClearGroup(gr, deleteTmp/*true - удалять временные объекты, false - не удалять*/);

  ::StoreTmpGroup(gr); // записываем результаты в документ


ExistGroupObj - Проверить группу на наличие объектов
ExistGroupObj  	Пример

Проверить группу на наличие объектов.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksExistGroupObj.

Синтаксис:

int ExistGroupObj (reference group);

Входной параметр:

group	- указатель на группу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


StoreTmpGroup
StoreTmpGroup  	Пример

Вставить временную группу в документ (группа "рассыпается").

Аналог данной функции при использовании Automation - метод ksDocument2D::ksStoreTmpGroup.

Синтаксис:

int StoreTmpGroup (reference g);

Входной параметр:

g	- указатель на группу.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Временные объекты не записываются в документ и на экране не отображаются. Они сохраняются только до конца работы создающей их библиотечной команды. Временная группа чаще всего служит для отрисовки фантомного изображения и используется в качестве параметров в функциях Placement и Cursor. Функция StoreTmpGroup записывает все объекты временной группы в модель (т.е. фиксирует ее). Сама же группа получает статус постоянной.


StoreTmpGroup- пример использования

void StoreTmpGroup_Example (void) {

reference gr ;

gr = NewGroup(1); /* задание группы объектов */

LineSeg (-15,    0,  15,    0,  3);  /* объекты записываются   */

LineSeg (   0, -15,    0,  15,  3);  /* во временный список     */

Circle (0,  0,  10,  1);

EndGroup();   /* закончить формирование группы */

if (Yes_No(Фиксируем группу?)) {

StoreTmpGroup(gr);

}; /* StoreTmpGroup*/


GetGroup - Получить указатель на группу
GetGroup  	Пример

Получить указатель на группу.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetGroup.

Синтаксис:

reference GetGroup (char *name);

Входной параметр:

name	- имя группы.
Возвращаемое значение:

указатель на группу	- в случае удачного завершения,
0	- в случае неудачи.


GetGroup- пример использования

void GetGroup_Example (void)

{

reference gr, p ;

gr = NewGroup(1);	// задание группы объектов

LineSeg (-15,    0,  15,    0,  3);	// объекты записываются

LineSeg (   0, -15,    0,  15,  3);	// во временный список

Circle (0,  0,  10,  1);

EndGroup();	// закончить формирование группы

SaveGroup (gr, Отверстие);

p = GetGroup (Отверстие);

LightObj (p, 1);

};


SaveGroup - Сохранение группы объектов в чертеже
SaveGroup  	Пример

Сохранить группу объектов в документе.

Синтаксис:

int SaveGroup (reference group, char *name);

Входные параметры:

group	- указатель на группу,
name	- имя сохраняемой группы.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


SaveGroup - пример использования

void SaveGroup_Example (void) {

reference gr ;

char name[40];

gr = NewGroup(0); /* определение группы объектов */

LineSeg (10,  10,  10,  20,  1);  /* объекты записываются   */

LineSeg (10,  20,   40, 20,  1);  /* в модель текущего вида */

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

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

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

LineSeg (70,  10,   10, 10,  1);

EndGroup();   /* закончить формирование группы */

LightObj(gr, 2);	/* подсветить группу */

if (Yes_No(Сохранять группу в модели?)) {

ReadString(Имя группы, name, 40);

SaveGroup(gr, name);

}

LightObj(gr, 0);	/* снять выделение группы */

}; /* SaveGroup_Example */


ksViewGetObjectArea - Получить группу графических объектов
ksViewGetObjectArea 	Пример

Получить группу графических объектов.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksViewGetObjectArea.

Синтаксис:

reference ksViewGetObjectArea();

Возвращаемое значение:

указатель на временную группу	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Так как сиcтема может работать только с одним процессом, нужно завершить другие процессные функции: Cursor, Placement, CommandWindow, ksEditViewObject.


ksViewGetObjectArea - пример использования

//определим группу выделения

reference  gr = ksViewGetObjectArea();

if (gr) 	{

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

    	StoreTmpGroup(gr);

    	//подсветим

    	LightObj(gr, 1);

    	Message("Область выделения");

    	//выключим подсветку

    	LightObj(gr, 0);

  	}

else

    	Message("Группы нет");


Функции работы с документами

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

Функции навигации по модели обеспечивают обработку объектов чертежа - поиск объекта по характерной точке, вычисление его габаритов, а также навигацию по графической модели чертежа. Использование функций работы с моделью позволяет проводить специализированную обработку изображения (например, перебрать все объекты вида и выдать их во внешний файл специального формата).

Атрибут - дополнительная информация произвольной структуры, сохраняемая с любым объектом чертежа начиная от отрезка и заканчивая видом, штампом или техническими требованиями. Каждый объект может иметь произвольное количество атрибутов. Описания типов атрибутов могут храниться как отдельной специальной библиотеке, так и в конкретном чертеже. Атрибуты используются для хранения в чертеже негеометрической информации с целью ее дальнейшей обработки в конкретном приложении. Функции данного раздела позволяют обрабатывать атрибуты объектов.

Функции обработки параметрических переменных и параметрических связей обеспечивает работу с параметрическими переменными в графическом документе.

Функции работы с настройкам и стилями документа позволяют получать и изменять настройки системы, документа и примененные стили.


Общие функции работы с документами
Общие функции

CloseDocument

CreateDocument

CreateTextDocument

GetDocOptions

ksDrawKompasDocumentByReference

ksGetDocumentType

ksGetDocumentTypeByName

ksGetTxtDocumentPagesCount

OpenDocument

SaveDocument

SetDocOptions


Функции печати документа
Функции вывода на печать

ksPrintKompasDocument

ksPrintPreviewWindow


CreateDocument - Создать документ (чертеж, фрагмент, текстовый документ)
CreateDocument  	Пример

Создать документ (чертеж, фрагмент, текстовый документ, деталь, сборку).

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateDocument.

Синтаксис:

reference CreateDocument (DocumentParam * par);

Выходной параметр:

par	- указатель на структуру параметров документа DocumentParam.
Возвращаемое значение:

указатель на документ	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Документ может быть открыт как в видимом режиме, так и в невидимом (в этом случае документ не виден на экране и все операции над ним скрыты от пользователя).

2. Созданный документ автоматически становится текущим.

3. Документ не будет создан в случае, если уже открыт документ с таким же именем.


Пример использования функций работы с документами

void Document_Example (void) {

reference pDoc;

DocumentParam   doc, doc1;

char buf[ 128 ];

lstrcpy(doc.fileName,c:\\gr\\2.cad);

lstrcpy(doc.comment , Чертеж );

lstrcpy(doc.author ,Иванов);

doc.regim=0;  //видимый режим

doc.type=1; doc.stPar.Toleranceat=3; doc.stPar.multiply=1;

doc.stPar.direct=0; doc.stPar.shtType=1;

pDoc = CreateDocument (&doc);

// создадим вид  с номеров 2

ViewParam par;

int number = 2;

par.x = 10; par.y = 20; par.scale = 2; par.ang = 45;

par.color = RGB(10,20,10);

par.state = stACTIVE;  // вид будет активным

strcpy(par.name, пользовательский вид);

CreateSheetView(&par, &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);

SaveDocument (pDoc, );  //сохранить документ

CloseDocument(pDoc);      //закрыть документ

//откроем созданный документ «с:\gr\2.cad» в видимом режиме отображения

OpenDocument(«с:\gr\2.cad», 0);

}; /* Document_Example */


OpenDocument - Открыть документ (чертеж, фрагмент, текстовый документ)
OpenDocument  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksOpenDocument.

Синтаксис:

reference OpenDocument (char *name, unsigned char regim);

Входные параметры:

regim	режим работы с документом: 0 - видимый,  1 - невидимый ("слепой") 3 - для спецификации - видимый без синхронизации со сборкой, 4 - для спецификации - "слепой" без синхронизации со сборкой.
Выходные параметры:

name	- полное имя файла открываемого документа,
Возвращаемое значение:

указатель на документ	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Невидимый режим применяетмя при пакетном (скрытом) формировании документа.

2. Открытый документ автоматически становится текущим.


CloseDocument - Закрыть документ
CloseDocument  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCloseDocument.

Синтаксис:

int CloseDocument (reference sheet);

Входные параметры:

sheet	- указатель на закрываемый документ
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если документ не сохранен, взводится флаг соответствующей ошибки.


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

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSaveDocument.

Синтаксис:

int SaveDocument (reference sheet,

char * fileName);

Входной параметр:

sheet	- указатель на сохраняемый документ
Входной параметр:

fileName	- полное имя файла, в котором требуется сохранить документ.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Если sheet = 0, сохраняется текущий документ.

2. Если fileName - NULL, используется имя файла из документа (т.е. параметр fileName определяет имя файла при сохранении в режиме Save As...). Если и в документе имя файла также NULL, появляется ошибка.


GetDocOptions - Получить настройки документа
GetDocOptions	Пример

Получить настройки документа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetDocOptions.

Синтаксис:

int GetDocOptions (int optionsType void * param, int sizePar);

Входной параметр:

optionsType	- тип настройки,
sizePar	- размер структуры параметров
Выходной параметр:

param	- указатель на структуру параметров
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Соответствие входных и выходных параметров...

Примечание:

Функция позволяет получить настройки текущего документа (в настоящее время функция реализована только для настроек размеров) и заполнить ими соответствующую структуру.


GetDocOptions - пример использования

DimensionsOptrions par;

memset (&par, 0, sizeof (DimensionsOptrions));

if (GetDocOptions (DIMENTION_OPTIONS, &par, sizeof(DimensionsOptrions)))

{

char buf[128];

Message("Настройки размеров текущего документа");

sprintf (buf, "Выход выносных линий за размерную=%0.1f;

Расстояние от разм.линии до текста=%0.1f;",

par.proLineExtension, par.textDistanceFromDimLine);

Message(buf);

sprintf (buf, "Расстояние от выносных линий до текста=%0.1f;

Выход размерной линии за текст=%0.1f;",

par.textDistanceFromProLine, par.dimLineExtension);

Message(buf);

sprintf (buf, "Длина стрелки для размера=%0.1f; Кол-во знаков после запятой=%d;",

par.arrowLength, par.decimalsCount);

Message(buf);

sprintf (buf, "Стиль текста=%d; точность углового размера=%s", par.style,

!par.anglePrecisionLevel ? "градусы" : par.anglePrecisionLevel ==1 ? "минуты" :

"секунды");

Message(buf);

}


SetDocOptions - заменитьнастройки документа
SetDocOptions	Пример

Заменить настройки документа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetDocOptions.

Синтаксис:

int SetDocOptions (int optionsType void * param, int sizePar);

Входной параметр:

optionsType	- тип настройки,
sizePar	- размер структуры параметров
Выходной параметр:

param	- указатель на структуру параметров
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Соответствие входных и выходных параметров...

Примечание:

Функция позволяет получить настройки текущего документа (в настоящее время функция реализована только для настроек размеров) и заполнить ими соответствующую структуру.


ksGetDocumentType

Получить тип документа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetDocumentType.

Синтаксис:

int ksGetDocumentType (reference doc);

Входные параметры:

doc	- указатель на документ.
Возвращаемое значение:

тип документа	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель doc = 0, возвращается тип активного документа.


ksDrawKompasDocumentByReference

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

Аналог данной функции при использовании Automation - метод KompasObject::DrawKompasDocumentByReference.

Синтаксис:

int LIB_FUNC ksDrawKompasDocumentByReference (void *HWindow, reference pDoc);

Входные параметры:

Hwindow	- несущее окно,
pDoc	- указатель на документ.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель pdoc = 0, отрисовывается текущий документ.


ksGetDocumentTypeByName

Получить тип документа.

Аналог данной функции при использовании Automation - метод KompasObject::GetDocumentTypeByName.

Синтаксис:

int ksGetDocumentTypeByName (char * fileName);

Входные параметры:

fileName	- полное имя файла документа.
Возвращаемое значение:

int	- тип документа,
0	- в случае неудачи.
Примечание:

1. Документ при вызове этой функции не создается.

2. Независимо от используемого оформления возвращается:

- для чертежа              - lt_DocSheetStandart

- для спецификации         - lt_DocSpc

- для текстового документа - lt_DocTxtStandart


CreateTextDocument

Создать текстовый документ.

Аналог данной функции при использовании Automation - метод ksDocumentTxt::ksCreateDocument.

Синтаксис:

reference LIB_FUNC CreateTextDocument (TextDocumentParam * par);

Входные параметры:

par	- указатель на структуру параметров TextDocumentParam.
Возвращаемое значение:

указатель на документ	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Документ становится текущим (видимым или невидимым).

2. Задается полное имя файла.


ksGetTxtDocumentPagesCount

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

Аналог данной функции при использовании Automation - метод ksDocumentTxt::GetTxtDocumentPagesCount.

Синтаксис:

int LIB_FUNC ksGetTxtDocumentPagesCount (reference txtDoc);

Входные параметры:

txtDoc	- указатель на текстовый документ.
Возвращаемое значение:

количество листов	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если txtDoc=0 - возвращается количество листов текущего текстового документа.


ksGetObject2DNotifyResult

Получить интерфейс результатов редактирования объекта 2D документа.

Аналог данной функции при использовании Automation - метод ksDocument2D::GetObject2DNotifyResult.

Синтаксис:

IObject2DNotifyResult * ksGetObject2DNotifyResult();

Возвращаемое значение:

- указатель на интерфейс источника событий IObject2DNotifyResult


ksPrintPreviewWindow - Запуск окна просмотра документа перед печатью.
ksPrintPreviewWindow  	Пример...

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

Аналог данной функции при использовании Automation - метод KompasObject::ksPrintPreviewWindow.

Синтаксис:

int ksPrintPreviewWindow (reference docsArr, int inquiry);

Входные параметры:

docsArr	- массив типа CHAR_STR_ARR полных имен документов, которые нужно распечатать,
inquiry	- признак запроса документов: 1 - если docsArr = NULL или массив пуст, запросить документы у пользователя, 0 - показать документы без запроса.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksPrintPreviewWindow - пример использования

char buf[128];

   //создать динамический массив строк

   reference docsArr = CreateArray(CHAR_STR_ARR,0);

   //наполним массив

   strcpy(buf,"d:\\0\\_222.cdw");

   AddArrayItem(docsArr, -1, buf, sizeof(buf));

   strcpy(buf,"d:\\0\\_2.cdw");

   AddArrayItem(docsArr, -1, buf, sizeof(buf));

   //в просмотровом окне должно появиться два документа, которые нужно распечатать

   if (! ksPrintPreviewWindow(docsArr,   // динамический массив указателей CHAR_STR_ARR

                                	         1)) {   	// 1 - если  docsArr = 0 или массив пуст,

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

                                                      	// 0 - без запроса

   // если неудачное завершение - выдадим результат работы нашей функции

   MessageBoxResult();


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

Напечатать КОМПАС-документ.

Аналог данной функции при использовании Automation - метод KompasObject::ksPrintKompasDocument.

Синтаксис:

int ksPrintKompasDocument(const char * fileName,

const char * toFile,

double scale);

Входные параметры:

fileName	- полное имя файла печатаемого документа,
toFile	- имя файла, в который требуется выводить документ (*.prn и т.д.), или NULL, если нужно вывести сразу на принтер,
scale	- масштаб вывода.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


Функции оформления чертежа

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


Функции оформления чертежа
Функции

ClearStamp

CloseStamp

CloseTechnicalDemand

ColumnNumber

CreateSheetView

GetStampColumnText

GetViewNumber

GetViewReference

ksPoint3DToAssociationView

ksSpecRough

NewViewNumber

OpenStamp

OpenTechnicalDemand

OpenView

SetStampColumnText

SpecRough


CreateSheetView - Создать новый вид чертежа
CreateSheetView 	Пример

Создать новый вид в чертеже.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCreateSheetView.

Синтаксис:

reference CreateSheetView(ViewParam *par,

int *number);

Входные параметры:

number	- номер вида.
Выходные параметры:

par	- указатель на структуру параметров вида,
Возвращаемое значение:

указатель на вид	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

1. Созданный вид становится текущим.

2. Если указать *number = 0, то создается вид с номером по возрастанию.

3. Если *number = n, создается вид с номером n. Если вид n существует, ничего не создается (reference = 0) - ошибка.


CreateSheetView, OpenView - пример использования

void OpenView_Example (void)

{

reference view;

int n;

ViewParam *par

par->x=100;   par->y=200;   par->scale=1;   par->ang=0; par.state=0;

CreateSheetView(par,1);  /* создать вид 1 */

LineSeg (0,       0,     0,   100, 1);  /* объекты записываются   */

LineSeg (0,    100, 100,   100, 1);  /* в вид 1                          */

LineSeg (100, 100, 100,      0, 1);

LineSeg (100,    0,     0,      0, 1);

par->x=300;   par->y=200;   par->scale=1;   par->ang=0; par.state=0;

CreateSheetView(par,2); /* создать вид 2 */

Circle (50, 50, 20, 2);  /* объект записывается в вид 2 */

OpenView(1); /* открыть вид 1 */

};


ksAssociationViewMatrix3D - Создать матрицу ассоциативного вида.
ksAssociationViewMatrix3D	Пример

Создать матрицу ассоциативного вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAssociationViewMatrix3D.

Синтаксис:

VARIANT ksAssociationViewMatrix3D (reference view);

Входные параметры:

view	- указатель на ассоциативный вид.
Возвращаемое значение:

SAFEARRAY double (VT_ARRAY | VT_R8)

В массиве будут лежать 16 элементов, которые представляют собой матрицу размера 4х4.

Примечание:

Если указатель на вид не задан (view = 0), то функция будет выполняться для текущего вида.


OpenView - Открыть вид
OpenView  	Пример

Открыть вид.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksOpenView.

Синтаксис:

reference OpenView (int view);

Входной параметр:

view	- номер вида, который требуется открыть
Возвращаемое значение:

указатель на вид	- в случае успешного завершения,
0	- в случае неудачи.
Описание:

Открытый вид становится текущим (после открытия или создания чертежа по умолчанию текущим является системный вид с номером 0).


NewViewNumber - Определить номер следующего вида
NewViewNumber  	Пример

Определить номер следующего вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksNewViewNumber.

Синтаксис:

int NewViewNumber();

Возвращаемое значение:

номер следующего вида	- в случае успешного завершения,
0	- в случае неудачи.


NewViewNumber - пример использования

reference v;

char buf[128];

int number = NewViewNumber();

ViewParam par;

memset (&par, 0, sizeof (ViewParam));

par.x = 10;

par.y = 20;

par.scale = 0.5;

par.ang = 45;

par.color = RGB(10,20,10);

par.state = stACTIVE;

strcpy (par.name, "user view");

//создали вид

v=CreateSheetView(&par, &number);

int numb = GetViewNumber( v);

sprintf (buf,"создали вид numb=%d, number=%d", numb, number);

Message(buf);


GetViewReference - Определить указатель на вид по его номеру
GetViewReference 	Пример

Определить указатель на вид по его номеру.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetViewReference.

Синтаксис:

reference GetViewReference(int number);

Входной параметр:

number	- номер вида.
Возвращаемое значение:

указатель на вид	- в случае удачного завершения,
0	- в случае неудачи.


GetViewReference - пример использования

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

reference v = GetViewReference (1);

if (v)

{

ViewParam par;

//возьмем параметры вида

if (GetObjParam (v, &par, sizeof (ViewParam), ALLPARAM))

{

char buf[255];

sprintf (buf,

"Параметры вида\nx = %0.1f, y = %0.1f\nscale=

%0.1f ang =%0.1f state=%d\nname=%s",

par.x, par.y, par.scale, par.ang, par.state, par.name);

Message(buf);

}

}


GetViewNumber - Определить номер вида по его указателю
GetViewNumber  	Пример

Определить номер вида по его укзателю.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetViewNumber.

Синтаксис:

int GetViewNumber (reference p);

Входной параметр:

p	- указатель на вид.
Возвращаемое значение:

номер вида	- в случае удачного завершения,
-1	- в случае неудачи.
Примечание:

1. Если p - указатель на объект вида, возвращается номер вида этого объекта.

2. Если p = 0, то возвращается номер текущего вида


GetViewNumber - пример использования
GetViewNumber, SheetToView, ViewToSheet - пример использования

//перенесем отрезки из текущего вида в вид номер 2

//получим номер текущего вида

int currentViewNumb = GetViewNumber(0);

reference obj;

//в текущем документе и виде создадим итератор для хождения по отрезкам

reference itObj = CreateIterator (LINESEG_OBJ,	//тип поиска объекта

0);	//указатель на объект

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

if (itObj)

{

if (ExistObj (obj = MoveIterator (itObj, 'F')))

{

do

{

LineSegParam par;

//берем параметры отрезка в системе координат текущего вида

GetObjParam (obj, &par, sizeof (LineSegParam), ALLPARAM);

//переводим координаты отрезка из вида в лист

ViewToSheet (par.x1, par.y1, &par.x1, &par.y1);

ViewToSheet(par.x2, par.y2, &par.x2, &par.y2);

//открываем  вид 2

OpenView (2);

//переводим координаты отрезка из  листа в вид 2

SheetToView (par.x1, par.y1, &par.x1, &par.y1);

SheetToView (par.x2, par.y2, &par.x2, &par.y2);

//создаем отрезок в виде 2

LineSeg (par.x1, par.y1, par.x2, par.y2, par.style);

//возвращаемся назад в вид currentViewNumb

OpenView (currentViewNumb);

//удаляем отрезок в текущем виде

DeleteObj (obj);

}

while (ExistObj (obj = MoveIterator (itObj, 'N')));

}

}


OpenStamp - Открыть штамп чертежа/текстового документа
OpenStamp  	Пример

Открыть штамп чертежа/текстового документа.

Аналог данной функции при использовании Automation - метод ksStamp::ksOpenStamp.

Синтаксис:

int OpenStamp();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Следующие далее функции до вызова CloseStamp определяют текст граф основной надписи штампа.


Пример задания штампа

void Stamp_Example (void)

{

if (OpenStamp())

{

ColumnNumber(2);

TextLine (NEW_LINE, 0, 0, 1К11.00.00.021);

ColumnNumber(1);

TextLine (NEW_LINE, 0, 0, Крестовина);

CloseStamp();

}

ClearStamp(2);  //очистить вторую графу

};


CloseStamp - Закрыть штамп чертежа/текстового документа
CloseStamp  	Пример

Закрыть штамп чертежа/текстового документа.

Аналог данной функции при использовании Automation - метод ksStamp::ksCloseStamp.

Синтаксис:

int CloseStamp();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод действителен для чертежа и спецификации.


ColumnNumber - Определить номер графы штампа
ColumnNumber  	Пример

Определить номер графы штампа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksColumnNumber.

Синтаксис:

int ColumnNumber (unsigned int numb);

Входной параметр:

numb	- номер ячейки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция используется в режиме редактирования штампа, таблицы, допуска формы, в режиме создания допуска формы.


GetStampColumnText - Выдать текст графы штампа
GetStampColumnText  	Пример

Выдать текст графы штампа.

Аналог данной функции при использовании Automation - метод ksStamp::ksGetStampColumnText.

Синтаксис:

reference GetStampColumnText (unsigned int *numb);

Выходной параметр:

numb	- номер ячейки основной надписи.
Возвращаемое значение:

указатель на динамический массив строк текста - TEXT_LINE_ARR и номер графы (если numb!= NULL)..	- в случае успеха,
0	- когда все графы пройдены или в случае ошибки
Примечание:

1. Функция используется в режиме редактирования штампа.

2. Функция выдает текст графы с указанным номером и смещается на следующую графу. Если не определен номер графы с помощью функции ColumnNumber или при предыдущем вызове самой этой функции, начинает с первой графы.

3. После использования полученный массив желательно удалить.


ClearStamp - Очистить графу штампа чертежа/текстового документа
ClearStamp  	Пример

Очистить графу штампа чертежа/текстового документа.

Аналог данной функции при использовании Automation - метод ksStamp::ksClearStamp.

Синтаксис:

int ClearStamp (unsigned int numb);

Входной параметр:

numb	- номер очищаемой ячейки основной надписи (0 - очищается вся основная надпись).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод действителен для чертежа и спецификации.


SetStampColumnText - Заменить текст графы штампа
SetStampColumnText	Пример

Заменить текст графы штампа.

Аналог данной функции при использовании Automation - метод ksStamp::ksSetStampColumnText.

Синтаксис:

int SetStampColumnText (unsigned int numb,

reference textArr);

Входные параметры:

numb	- номер ячейки основной надписи,
textArr	- указатель на динамический массив строк текста - TEXT_LINE_ARR.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод используется в режиме редактирования штампа.


SetStampColumnText - пример использования
SetStampColumnText, GetStampColumnText - пример использования

if (OpenStamp())

{

unsigned int numb;

reference p;

//в цикле будем брать все существующие графы

while ((p=GetStampColumnText (&numb))!=0)

{

// p - текст текущей графы

char buf[128];

sprintf (buf, "numb =%d   ", numb);

Message(buf);

TextLineParam parLine;

for (int i=0, count = GetArrayCount(p); i < count; i++)

{

//берем текущую строку графы

GetArrayItem (p , i, &parLine, sizeof(TextLineParam));

sprintf (buf, "i =%d style=%d   ", i, parLine.style);

Message(buf);

TextItemParam parItem;

for (int j=0, count1 = GetArrayCount(parLine.pTextItem); j < count1; j++)

{

//берем текущую компоненту строки

GetArrayItem (parLine.pTextItem, j,

&parItem, sizeof (TextItemParam));

sprintf (buf, "компонента=%d h=%5.1f\ns=%s\n fontName=%s ",j,

parItem.font.height,parItem.s, parItem.font.fontName);

strcat (parItem.s, "!!!");

//меняем текущую компоненту строки

SetArrayItem (parLine.pTextItem, j, &parItem, sizeof (TextItemParam));

Message(buf);

}

DeleteArray (parLine.pTextItem); 	//очистим массив компонент

}

//меняем текущую строку в массиве

SetArrayItem (p , i, &parLine, sizeof(TextLineParam));

//меняем текущую графу

SetStampColumnText (numb, p);

//очистим массив текстовых строк

DeleteArray (p);

}

CloseStamp();

}

else

Error ("Штамп не найден");


OpenTechnicalDemand - Открыть технические требования
OpenTechnicalDemand  	Пример

Открыть технические требования.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksOpenTechnicalDemand.

Синтаксис:

int OpenTechnicalDemand (reference pGab);

Входные параметры:

pGab	- указатель на динамический массив параметров листов технических требований типа RECT_ARR.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Следующие далее функции до вызова CloseTechnicalDemand определяют текст технических требований. Параметр pGab определяет массив габаритных прямоугольников страниц технических требований неопределенной длины. Если pGab = 0, то технические требования размещаются на одной странице автоматически.


Пример задания технических требований

void TechnicalDemand_Example (void) {

reference p;

reference pGab = CreateArray(RECT_ARR,0) ;

  RectParam par;

  par.pTop.x= 230;  par.pTop.y = 80;

  par.pBot.x= 415;  par.pBot.y = 65;

  AddArrayItem(pGab,-1, &par, sizeof(RectParam));

  par.pTop.x= 45;  par.pTop.y = 30;

  par.pBot.x= 230;  par.pBot.y = 15;

  AddArrayItem(pGab,-1, &par, sizeof(RectParam));

  // размещение на 2 страницах

reference tDem;

  if(OpenTechnicalDemand( pGab)) {

TextLine (NEW_LINE  ,0,0 ,1111111);

TextLine (NEW_LINE  ,0,0 ,222222);

TextLine (NEW_LINE  ,0,0 ,3333333);

TextLine (NEW_LINE  ,0,0 ,4444444);

TextLine (NEW_LINE  ,0,0 ,5555555);

TextLine (NEW_LINE  ,0,0 ,6666666);

tDem =CloseTechnicalDemand();

  }

  DeleteArray(pGab);

// размещение на 1 странице

  if(OpenTechnicalDemand( 0)) {

TextLine (NEW_LINE  ,0,0 ,1111111);

TextLine (NEW_LINE  ,0,0 ,222222);

TextLine (NEW_LINE  ,0,0 ,3333333);

TextLine (NEW_LINE  ,0,0 ,4444444);

TextLine (NEW_LINE  ,0,0 ,5555555);

TextLine (NEW_LINE  ,0,0 ,6666666);

CloseTechnicalDemand();

  }

}; /* TechnicalDemand_Example */


CloseTechnicalDemand - Закрыть технические требования
CloseTechnicalDemand  	Пример

Закрыть технические требования.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksCloseTechnicalDemand.

Синтаксис:

reference CloseTechnicalDemand ();

Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


SpecRough - Задать шероховатость неуказанных поверхностей
SpecRough  	Пример

Задать шероховатость неуказанных поверхностей.

Синтаксис:

int SpecRough (unsigned char type, unsigned char t, char * s);

Входные параметры:

type	- тип знака 0 - вид обработки не устанавливается 1 - обработка удалением слоя материала 2 - обработка без удаления слоя материала
t	- наличие знака в скобках (1 - есть, 0 - нет),
Выходные параметры:

s	- строка текста
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


SpecRough - пример использования

void SpecRough_Example (void) {

SpecRough(0, 1, Rz40);

}; /* SpecRough_Example */


ksSpecRough - шероховатость неуказанных поверхностей
ksSpecRough  	Пример

Задать шероховатость неуказанных поверхностей

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSpecRough.

Синтаксис:

reference ksSpecRough (SpecRoughParam * par);

Выходной параметр:

par	- указатель на структуру параметров знака неуказанной шероховатости SpecRoughParam.
Возвращаемое значение:

указатель на знак неуказанной шероховатости	- в случае удачного завершения,
0	- в случае неудачи.


ksSpecRough - пример использования

void ksSpecRough_Example (void)

{

SpecRoughParam *par;

par.style = 1;	//стиль

par.sign = 0;

par.t = 1;

par.s [4] = «Rz40»;

SpecRoughObj = ksSpecRough(&par);

};


GetReferenceDocumentPart
GetReferenceDocumentPart  	Пример

Получить указатель на основную надпись или технические требования или неуказанную шероховатость или текущий вид или спецификацию на листе.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetReferenceDocumentPart.

Синтаксис:

reference GetReferenceDocumentPart (unsigned char t);

Входной параметр:

t	- Тип объекта оформления чертежа.
Возвращаемое значение:

указатель на объект выбранного типа	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Метод предназначен для использования в листе чертежа.


GetReferenceDocumentPart - пример использования

if (ksGetCurrentDocument (1))	// документ должен быть графическим

{

//получим указатель на технические требования

reference pTT = GetReferenceDocumentPart (1);

if (pTT)

{

TechnicalDemandParam par;

//получим параметры описания ТТ

GetObjParam (pTT, &par, sizeof (par), TECHNICAL_DEMAND_PAR);

char buf[128];

sprintf (buf, "число строк TT =%d",par.strCount);

Message (buf);

//открываем ТТ на редактирование

//(ТТ должны быть открыты, чтобы менять тексты)

OpenTechnicalDemand (par.pGab,	//динамический массив

// листов технических требований или 0

par.style);	//стиль текста для технических требований

// (если 0 - умолчательное значение)

//пройдемся по ТТ и получим текст

TextLineParam parLine;

for (int i = 0; i < par.strCount; i++)

{

//берем текущую строку

GetObjParam (pTT, &parLine,

sizeof (TextLineParam),

TT_FIRST_STR+i);

TextItemParam parItem;

for (int j=0, count1 = GetArrayCount(parLine.pTextItem); j < count1; j++)

{

//берем текущий компонент строки

GetArrayItem (parLine.pTextItem,

j, &parItem,

sizeof (TextItemParam));

strcat (parItem.s, "!!!");

//меняем текущий компонент строки

SetArrayItem (parLine.pTextItem,

j, &parItem,

sizeof (TextItemParam));

Message (parItem.s);

}

//меняем текущую строку

SetObjParam (pTT, &parLine,

sizeof (TextLineParam),

TT_FIRST_STR+i);

}

//закрываем ТТ

CloseTechnicalDemand ();

return;

}

}

Error ("Документ должен быть листом");


ksGetZona
ksGetZona	Пример

Определить, в какой зоне текущего чертежа лежит заданная точка.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetZona.

Синтаксис:

int ksGetZona (double x, double y,

char * zona,

int size);

Входные параметры:

x, y	- координаты точки в текущем документе.
size	- размер буфера.
Выходной параметр:

zona	- буфер для возврата зоны,
Возвращаемое значение:

1	- успешное завершение,
0	- ошибка (например, точка вне документа или документ - не чертеж),
-1	- в текущем документе нет разбиения на зоны;


ksGetZona - пример использования

RequestInfo  info;

//обнулить структуру  info;

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

double x, y;

info.prompt = "Укажите точку";

char zona [128];

while (Cursor (&info, &x ,&y, 0) == -1) {

int rez =  ksGetZona(x, y, zona, 128);      //размер присланного буфера

if (rez == -1 || !rez) {

Error(rez ? "В текущем документе нет разбиения на зоны" : "Ошибка");

break;

}

else

    	Message (zona);

}


ksRebuildDocument

Перестроить графический документ.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksRebuildDocument.

Синтаксис:

extern "C" int LIB_FUNC ksRebuildDocument (reference sheet);

Входные параметры:

sheet	- указатель на графический документ.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Позволяет перестроить все ассоциативные виды чертежа. Если в чертеже нет ни одного ассоциативного вида, перестраиваться ничего не будет. После вызова функции ассоциативные виды перерисовываются в соответствии с деталями, изображение которых в них содержится.

2. Если sheet = 0, перестраивается текущий документ.


ksPoint3DToAssociationView - Преобразовать координаты 3D точки в координаты ассоциативного вида.
ksPoint3DToAssociationView

Преобразовать координаты 3D точки в координаты ассоциативного вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPoint3DToAssociationView.

Синтаксис:

int ksPoint3DToAssociationView (reference view,
double x3D, double y3D, double z3D,
double * x2D, double * y2D);

Входные параметры:

view	- указатель на ассоциативный вид,
x3D, y3D, z3D	- координаты 3D точки.
Выходные параметры:

x2D, y2D	- координаты 3D точки в ассоциативном виде.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если указатель на вид не задан (view = 0), то функция будет выполняться для текущего вида.


Функции навигации по модели
Функции

CreateIterator

DeleteIterator

FindObj

GetObjGabaritRect

GetViewObjCount

KeepReference

MoveIterator

ReleaseReference


CreateIterator - Создать блок параметров навигации по модели
CreateIterator  	Пример

Создать блок параметров навигации по модели.

Аналог данной функции при использовании Automation - метод ksIterator::ksCreateIterator.

Синтаксис:

reference LIB_FUNC CreateIterator(int tipSearch, reference parent);

Входные параметры:

type	- тип поиска объекта
parent	- указатель на объект (для движения по группе, внутри макрообъекта, по слою).
Типы объектов и интерфейсы...

Возвращаемое значение:

указатель на найденный объект	- в случае успешного завершения,
0	- в случае неудачи.
Описание:

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

Новое в версии 8:

Вместо parent теперь может быть задан указатель на ВИД. В этом случае итератор будет ограничен поиском указанных объектов внутри вида


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

//позиционирование в текущем виде текущего документа по всем элементам

void Iterator_Example (void)

{

reference itAllObj;

reference obj;

int count  = 0;

char buf[128];

//Создать итератор

itAllObj = CreateIterator(ALL_OBJ ,  0);

if (itAllObj)

{

if (ExistObj(obj = MoveIterator(itAllObj, 'F')))

{

// поиск первого объекта и следующего в цикле

do

{

LightObj(obj, 1);

count ++;

sprintf(buf,"номер = %d", count);

Message(buf);

LightObj(obj, 0);

}

while (ExistObj (obj = MoveIterator (itAllObj, 'N')));

}

}

//Удалить итератор

DeleteIterator(itAllObj);

};


DeleteIterator - Удалить блок параметров навигации по модели
DeleteIterator  	Пример

Удалить блок параметров навигации по модели.

Аналог данной функции при использовании Automation - метод ksIterator::ksDeleteIterator.

Синтаксис:

int DeleteIterator (reference iterator);

Входной параметр:

iterator	- указатель на итератор
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


MoveIterator - Переместить итератор (позиционироваться на объект)
MoveIterator  	Пример

Переместить итератор (позиционироваться на объект)

Аналог данной функции при использовании Automation - метод ksIterator::ksMoveIterator

Синтаксис:

reference MoveIterator (reference iterator,

unsigned char type);

Входной параметр:

iterator	- указатель на итератор,
type	- направление перемещения итератора: F - первый объект, N - следующий объект.
Возвращаемое значение:

указатель на объект	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция перемещает текущий указатель итератора (блока параметров навигации) iterator на очередной объект модели. Режим позиционирования (тип объектов, участвующих в поиске) определяются при создании итератора.

При позиционировании на именнованную группу она автоматически становится текущей (рабочей). К ней будут относиться операции добавления и исключения объектов (при исключении всех объектов из именнованной группы она автоматически удаляется).


KeepReference - Запомнить указатель на объект
KeepReference  	Пример

Запомнить указатель на объект

Аналог данной функции при использовании Automation - метод ksDocument2D::ksKeepReference.

Синтаксис:

int KeepReference (reference r);

Входной параметр:

r	- указатель на графический объект.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Примечание:

Указатель на объект запоминается для использования при повторном выполнении команды библиотеки. Объект переносится из динамической таблицы объектов в глобальную. В результате указатель на него доступен из другого метода данной библиотеки.


KeepReference - пример использования

extern "C" void far __export __pascal  LibraryEntry (unsigned int Comm)

{

switch (Comm)

{

case 1:	//создание геометрии

Macro(0);

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

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

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

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

pRect=EndObj ();

KeepReference(pRect);

break;

case 2:	//  подсветить

LightObj (pRect, 1);

break;

case 3:	//  выключить подсветку

LightObj(pRect, 0);

break;

case 4:	//сдвинуть объект

MoveObj(pRect, 10, 10);

break;

case 5:	//удалить

DeleteObj(pRect);

break;

}

}


ReleaseReference - освободить указатель на объект
ReleaseReference  	Пример

Освободить указатель на объект.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksReleaseReference.

Синтаксис:

int ReleaseReference (reference p);

Входной параметр:

p	- указатель на объект.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Не временный объект не уничтожается. В результате таблица объектов сокращается, а операции, связанные с перебором объектов, ускоряются.


ReleaseReference - пример использования

reference p = LineSeg (100, 50, 200, 50, 1);

LightObj (p, 1);

/освобождается указатель на объект,

/после вызова ReleaseReference к объекту р обращаться нельзя

ReleaseReference (p);

LightObj (p, 0);

//взводится ошибка "В текущем документе объект не найден"

MessageBoxResult();


GetViewObjCount - Получить количество объектов вида
GetViewObjCount  	Пример

Получить количество объектов вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetViewObjCount.

Синтаксис:

long GetViewObjCount (reference p);

Входной параметр:

p	- указатель на вид.
Возвращаемое значение:

количество объектов в виде	- в случае удачного завершения,
-1	- в случае неудачи.
Примечание:

В случае, если p=0, возвращается число объектов текущего вида или фрагмента.


GetViewObjCount - пример использования

void GetViewObjCount_Example (void)

{

long n;

char buf[80];

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

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

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

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

n = GetViewObjCount(0); // в текущем виде/фрагменте

sprintf (buf,"Количество объектов=%5d);

Message(buf);

};


FindObj - Найти ближайший к заданной точке объект вида.
FindObj	Пример

Найти ближайший к заданной точке объект вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksFindObj.

Синтаксис:

reference FindObj (double x,
double y,
double dist);

Входные параметры:

x, y	- координаты точки,
dist	- размер стороны квадрата-"ловушки" с центром в указанной точке.
Возвращаемое значение:

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

1. Зона поиска - квадрат со указанной стороной и центром.

2. Если значение dist равно MAXDOUBLE, выполняется поиск ближайшего к указанной точке объекта без ограничения зоны поиска.


FindObj - пример использования

{

reference pLine;

LineSeg(0, 0, 50, 50, 1);

LineSeg(50, 50, 70, 20, 1);

pLine = FindObj(20, 20, 5);

LightObj(pLine, 1);

}


GetObjGabaritRect - Выдать габаритный прямоугольник объекта.
GetObjGabaritRect  	Пример

Получить габаритный прямоугольник объекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetObjGabaritRect.

Синтаксис:

int GetObjGabaritRect (reference p, RectParam *par);

Входные параметры:

p	- указатель на объект,
par	- указатель на структуру размеров габаритного прямоугольника RectParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Габаритный прямоугольник возвращается в координатах листа.


GetObjGabaritRect - пример использования

{

reference      pObj;

RectParam   Rect;

pObj = LineSeg(10, 10, 50, 50, 1);

GetObjGabaritRect(pObj, &Rect);

}


Пример создания библиотеки Addin
Пример создания библиотеки типа 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, DllUnregisterServer.

- при помощи regsvr32.exe libname.

Чтобы отменить регистрацию, необходимо вызвать regsvr32.exe \u libname.

AddIn библиотеки работают в режиме "Меню". Сменить режим нельзя, так же как и отключить библиотеку.

  #define ADDINS_PATH "HKEY_CURRENT_USER\Software\ASCON\KOMPAS-3D\AddIns\Моя библиотека"

     STDAPI DllRegisterServer()

     {

       HRESULT hr = NOERROR;

       TCHAR   szModulePath[MAX_PATH];

       GetModuleFileName( theApp.m_hInstance, szModulePath,

                          sizeof(szModulePath)/sizeof(TCHAR) );

       CString strPath( ADDINS_PATH );

       HKEY hKey;

       DWORD dwDisposition;

       if ( RegCreateKeyEx(HKEY_CURRENT_USER,

            strPath, 0L, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL,

            &hKey, &dwDisposition) != ERROR_SUCCESS )

       {

         hr = E_UNEXPECTED;

       }

       else

       {

  	     hr = RegSetValueEx( hKey, "Path", 0L, REG_SZ,

                         (CONST BYTE*)szModulePath, strlen(szModulePath) );

         DWORD dwVal = 1;

  	     hr = RegSetValueEx( hKey, "AutoConnect", 0L, REG_DWORD,

                         (CONST BYTE*)&dwVal, sizeof(DWORD) );

       }

       return hr;

     }

     STDAPI DllUnregisterServer()

     {

       HRESULT hr = NOERROR;

       if ( RegDeleteKey(HKEY_CURRENT_USER, ADDINS_PATH) != ERROR_SUCCESS ) {

         hr = E_UNEXPECTED;

       }

       return hr;

     }

  2. Файлом типа reg

     Пример :

       Файл реестра "MyLibrary.reg"

       REGEDIT4

       [HKEY_CURRENT_USER\Software\ASCON\KOMPAS-3D\AddIns\Моя библиотека]

       "ProgID"="MyLibrary.class1"

       "Path"="c:\\MyLibrary.rtw"

       "AutoConnect"=dword:00000001

       Содержимое реестра после регистрации файла "MyLibrary.reg"

       HKEY_CURRENT_USER

         Software

           ASCON

             KOMPAS-3D

               AddIns

                 Моя библиотека

                   ProgID       MyLibrary.class1

                   Path         c:\\MyLibrary.rtw

                   AutoConnect  1


Функции работы с атрибутами

ChoiceAttr

ChoiceAttrTypes

CreateAttr

CreateAttrIterator

CreateAttrType

DeleteAttr

DeleteAttrType

GetAttrColumnInfo

GetAttrKeysInfo

GetAttrRow

GetAttrTabInfo

GetAttrType

GetAttrValue

GetSizeAttrRow

GetSizeAttrValue

ksAddAttrRow

ksChoiceAttr3D

ksCreateAttr3D

KsCreateAttr

KsCreateAttrType

ksDeleteAttr3D

ksDeleteAttrRow

ksGetAttrType

ksGetAttrValue

ksGetLibraryAttrTypesArray

ksGetSizeAttrRow

ksGetSizeAttrValue

ksSetAttrRow

ksSetAttrType

ksSetAttrValue

MoveAttrIterator

SetAttrRow

SetAttrType

SetAttrValue

ViewEditAttrType

ViewEditAttr


ksChoiceAttr3D- Просмотреть атрибуты объекта
ksChoiceAttr3D

Просмотреть атрибуты объекта.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksChoiceAttr3D.

Синтаксис:

LPATTRIBUTE3D LIB_FUNC ksChoiceAttr3D (LPUNKNOWN pObj);

Входные параметры:

pObj	- указатель на объект,
Возвращаемое значение:

указатель на интерфейс атрибута IAttribute3D	- в случае удачного завершения,
0	- в случае неудачи.


ksDeleteAttr3D- Удалить атрибут
ksDeleteAttr3D

Удалить атрибут.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksDeleteAttr3D.

Синтаксис:

int _IFUNC ksDeleteAttr3D(LPUNKNOWN pObj, LPATTRIBUTE3D pAttr, char* password);

Входные параметры:

pObj	- указатель на объект у которого удаляется атрибут
pAttr	- указатель на атрибут
password	- пароль
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksCreateAttr3D - Создать атрибут
ksCreateAttr3D

Cоздать атрибут по номеру типа атрибута из библиотеки.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksCreateAttr3D.

Синтаксис:

LPATTRIBUTE3D_IFUNC ksCreateAttr3D (LPUNKNOWN pObj, ksAttribute * attr, double attrID, char *libname);

Входные параметры:

pObj	- указатель на объект для которого создается атрибут,
attr	- параметры атрибута,
attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута берется в документе.
Возвращаемое значение:

Указатель на интерфейс атрибута IAttribute3D	- в случае удачного завершения,
0	- в случае неудачи.


pObj - Возможные значения
Возможные значения параметра pObj

NULL или указатель на интерфейс документа IDocument3D	- выполняется операция с атрибутом у документа,
Указатель на группу объектов дерева IFeatureCollection	- выполняется операция с групповым атрибутом,
Указатель на объект дерева IFeature	- выполняется операция с атрибутом определенного объекта,
Указатель на COM-интерфейс из диапазона: o3d_planeXOY...o3d_planeYOZ,o3d_sketch, o3d_axis2Planes...o3d_lastEntityElement-1,o3d_entity	- выполняется операция с атрибутом у соответствующего ему элемента дерева.


CreateAttrType - Создать описание типа атрибута
CreateAttrType  	Пример

Создать описание типа атрибута.

Синтаксис:

double CreateAttrType (AttributeType * attrType, char * libname);

Входные параметры:

attrType	- информация о типе атрибута
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута создается в текущем документе.
Структура типа атрибута...

Возвращаемое значение:

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

Функция устарела, рекомендуется использовать ksCreateAttrType.


CreateAttrType - пример использования

void CreateAttrType_Example (void)

{

//создадим тип атрибута - строка

AttributeType attrType;	//структура типа атрибута

char nameFile[128];

reference pCol;	//указатель  на массив колонок

ColumnInfo  parStruct;	//структура для колонки

//создадим массив колонок  типа атрибута

pCol = CreateArray (ATTR_COLUMN_ARR,0);

//опишем единственную колонку типа STRING_ATTR_TYPE

strcpy (parStruct.header, "строка");	// заголовoк-комментарий столбца

parStruct.type = STRING_ATTR_TYPE;	// тип данных в столбце - см.ниже

// дополнительный признак, который позволит отличить две переменные с одинаковым типом

parStruct.key = 0;

strcpy(parStruct.def,"линия");	// значение по умолчанию

parStruct.flagEnum =0;	// режим заполнения

parStruct.fieldEnum = 0;	// массив неопределенной длины перечислений (строки)

parStruct.columns = 0;	// массив неопределенной длины информации

// о колонках для записи

AddArrayItem(pCol, -1, &parStruct, sizeof(parStruct)); //добавили колонку

//заполним структуру типа атрибута

strcpy(attrType.header,"тип строка");	// заголовoк-комментарий типа

attrType.rowsCount = 1;	// кол-во строк в таблице

attrType.flagVisible = 1;	// видимый/невидимый

strcpy(attrType.password,"");	// пароль

attrType.columns = pCol;	// массив неопределенной длины информации о колонках

//запросить имя библиотеки

if(!ChoiceFile("lta", NULL, nameFile, 128))

nameFile[0]='\0';  //будем создавать в документе

//создать тип атрибута

double  numbType = CreateAttrType (&attrType,	// информация о типе атрибута

nameFile);	// имя библиотеки типов атрибутов

if (numbType > 1)

{

char buf[128];

sprintf(buf, "numbType=%f ",numbType);

Message(buf);

}

else MessageBoxResult();	// ошибка

//удалим  массив колонок

DeleteArray(pCol);

};


ksCreateAttrType - Создать описание типа атрибута
ksCreateAttrType  	Пример

Создать новый тип атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksCreateAttrType.

Синтаксис:

double ksCreateAttrType (ksAttributeType * attrType,

   char * libname);

Входные параметры:

attrType	- информация о типе атрибута
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута создается в текущем документе.
Структура типа атрибута...

Возвращаемое значение:

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


ksCreateAttrType - пример использования

//-------------------------------------------------------------------------

//  создадим  тип атрибута болта

//-------------------------------------------------------------------------

void TypeAttrBolt()

{

//Инициализация данных для создания шаблона

//заполним структуру типа атрибута

ksAttributeType attrType;

strcpy(attrType.header,"Болт");	// заголовoк-комментарий типа

attrType.rowsCount = 1;	// кол-во строк в таблице

attrType.flagVisible  = 1;	// видимый, невидимый   в таблице

strcpy (attrType.password,"");	// пароль, если не пустая строка

//- защищает от несанкционированного изменения типа

attrType.columns = CreateArray (ATTR_COLUMN_ARR, 0);	// динамический массив

//компонент записи

attrType.key1 = ST_KEY1;

attrType.key2 = ST_KEY2_GOST;

attrType.key3 = ST_KEY3;

attrType.key4 = 0;

ColumnInfo parStruct1;

//массив полей записи

// колонка 1 "Имя элем."

strcpy (parStruct1.header, "Имя элем.");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см.ниже

parStruct1.key = 1;	// дополнительный признак,  очередность сортировки

strcpy (parStruct1.def,"Болт");	// значение по умолчанию

parStruct1.flagEnum =0;	// флаг, включающий режим,

// когда значение поля атрибута

// будет заполнятся из массива

// перечисленных значений 1 и 0 отключен

parStruct1.fieldEnum = 0;	// массив неопределенной длины

//перечислений (строки)

parStruct1.columns = 0;	// массив неопределенной длины

// информации о колонках для записи

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 2 "Исполнение"

strcpy(parStruct1.header, "Исполнение");	// заголовoк-комментарий столбца

parStruct1.type = UINT_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 3;	// дополнительный признак,  очередность сортировки

strcpy (parStruct1.def,"1");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 3 "Резьба"

strcpy (parStruct1.header, "Резьба");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	//   очередность сортировки

strcpy (parStruct1.def,"М");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 4 "Диаметр"

strcpy (parStruct1.header, "Диаметр");	// заголовoк-комментарий столбца

parStruct1.type = UINT_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 3;	//   очередность сортировки

strcpy (parStruct1.def,"12");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 5 "разделитель"

strcpy (parStruct1.header, ""); 	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	// очередность сортировки

strcpy (parStruct1.def,"х");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 6 "Шаг"

strcpy (parStruct1.header, "Шаг");	// заголовoк-комментарий столбца

parStruct1.type = FLOAT_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 3;	// очередность сортировки

strcpy(parStruct1.def,"1.25");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 7 "Поле допуска"

strcpy (parStruct1.header, "Поле допуска");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 3;	// очередность сортировки

strcpy (parStruct1.def,"-6g");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 8 "разделитель"

strcpy (parStruct1.header, "");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	// очередность сортировки

strcpy (parStruct1.def,"х");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 9 "Длина"

strcpy (parStruct1.header, "Длина");	// заголовoк-комментарий столбца

parStruct1.type = UINT_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 3;	// очередность сортировки

strcpy(parStruct1.def,"60");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 10 "Кл. прочности"

strcpy (parStruct1.header, "Кл. прочности");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	// очередность сортировки

strcpy (parStruct1.def,".58");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 11 "Материал"

strcpy (parStruct1.header, "Материал");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце

parStruct1.key = 0;	// очередность сортировки

strcpy (parStruct1.def,".35Х");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 12 "Покрытие"

strcpy (parStruct1.header, "Покрытие");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	// очередность сортировки

strcpy (parStruct1.def,".16");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 13 "ГОСТ"

strcpy (parStruct1.header, "ГОСТ");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	// очередность сортировки

strcpy(parStruct1.def,"ГОСТ");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 14 "Номер"

strcpy (parStruct1.header, "Номер");	// заголовoк-комментарий столбца

parStruct1.type = UINT_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 2;	// очередность сортировки

strcpy (parStruct1.def,"7808");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 15 "разделитель"

strcpy (parStruct1.header, "");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	// очередность сортировки

strcpy (parStruct1.def,"-");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof (parStruct1));

// колонка 16 "Год"

strcpy (parStruct1.header, "Год");	// заголовoк-комментарий столбца

parStruct1.type = STRING_ATTR_TYPE;	// тип данных в столбце - см. "ltdefine.h"

parStruct1.key = 0;	// очередность сортировки

strcpy (parStruct1.def,"70");	// значение по умолчанию

//добавим компоненту в массив компонент

AddArrayItem (attrType.columns, -1, &parStruct1, sizeof(parStruct1));

// создать  шаблон  обозначения

ksCreateAttrType (&attrType,	// информация о типе атрибута

ATTR_TYPE_LIB_NAME_KEY3);	// имя библиотеки типов атрибутов

MessageBoxResult();	// проверяем результат работы нашей функции

//удалим  массив колонок

DeleteArray (attrType.columns);

}


DeleteAttrType - Удалить описание атрибута
DeleteAttrType  	Пример

Удалить описание атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksDeleteAttrType.

Синтаксис:

int DeleteAttrType (double attrID, char *libname, char * password);

Входные параметры:

attrID	- уникальный номер типа,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута удаляется из текущего документа.
password	- пароль типа атрибута.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


DeleteAttrType - пример использования

void DeleteAttrType_Example (void)

{

double numb;

int j;

char nameFile[128];

char password[11];

//запросить имя библиотеки

if (!ChoiceFile("tip", NULL, nameFile, 128))

nameFile[0]='\0'; //будем искать в документе

do

{

j = ReadDouble (" номер типа атрибута", 1000.,0, 1e12,&numb);

if (j)

{

j = ReadString (" пароль типа атрибута", password, 10);

if (j)

{

if (!DeleteAttrType (numb, nameFile, password))

MessageBoxResult();	// проверяем результат работы функции

}

}

}

while (j);

};


GetAttrType - Получить описание типа атрибута
GetAttrType  	Пример

Получить описание типа атрибута.

Функция устарела, рекомендуется использовать ksGetAttrType.

Синтаксис:

int GetAttrType (double attrID, char *libname, AttributeType * attrType);

Входной параметр:

attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута из текущего документа.
Выходной параметр:

attrType	- указатель на структуру типа атрибута....
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


GetAttrType - пример использования

{

//создадим тип атрибута - строка

 AttributeType attrType, NewAttrType;   //структура типа атрибута

  char nameFile[128];

  reference pCol;           //указатель  на массив колонок

  ColumnInfo  parStruct;  //структура для колонки

  //создали массив колонок  типа атрибута

  pCol = CreateArray(ATTR_COLUMN_ARR,0);

   //опишем единственную колонку типа STRING_ATTR_TYPE

    strcpy(parStruct.header, "строка");   // заголовoк-комментарий столбца

    parStruct.type = STRING_ATTR_TYPE; // тип данных в столбце - см.ниже

// дополнительный признак, который позволит отличить две переменные с одинаковым типом

    parStruct.key = 0;

    strcpy(parStruct.def,"линия");  // значение по умолчанию

    parStruct.flagEnum =0;      // режим заполнения

    parStruct.fieldEnum = 0;    // массив неопределенной длины перечислений (строки)

    parStruct.columns = 0;      / массив неопределенной длины информации о колонках для записи

    AddArrayItem(pCol, -1, &parStruct, sizeof(parStruct)); //добавили колонку

//заполним структуру типа атрибута

  strcpy(attrType.header,"тип строка");   // заголовoк-комментарий типа

  attrType.rowsCount        = 1;    // кол-во строк в таблице

  attrType.flagVisible      = 1;      // видимый/невидимый

  strcpy(attrType.password,"");   // пароль

  attrType.columns          = pCol;  // массив неопределенной длины информации о колонках

//запросить имя библиотеки

  if(!ChoiceFile("lta", NULL, nameFile, 128))

    nameFile[0]='\0';  //будем создавать в документе

  //создать тип атрибута

  double  numbType =  CreateAttrType(&attrType,   // информация о типе атрибута

                                     nameFile); // имя библиотеки типов атрибутов

  if (numbType > 1)  {

    char buf[128];

    sprintf(buf, "numbType=%f ",numbType);

    Message(buf);

  }

  else MessageBoxResult();  // ошибка

 GetAttrType(numbType, nameFile, &NewAttrType);

 //удалим  массив колонок

 DeleteArray(pCol);

}


ksGetAttrType - Получить описание типа атрибута
ksGetAttrType  	Пример

Получить описание типа табличного атрибута из библиотеки.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetAttrType.

Синтаксис:

int ksGetAttrType (double attrID, char * libname, ksAttributeType * attrType);

Входной параметр:

attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута из текущего документа.
Выходной параметр:

attrType	- указатель на структуру типа атрибута....
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksGetAttrType - пример использования
ksGetAttrType, ChoiceAttrTypes - пример использования

static void ShowColumns (reference pCol, BOOL fl);

void ShowCol (ColumnInfo &par,int iCol, BOOL fl);

//--------------------------------------------------------------------------

//  показать колонку

//--------------------------------------------------------------------------

void ShowCol (ColumnInfo &par,int iCol, BOOL fl)

{

char buf[128];

char s[10];

if (fl)

strcpy(s, "структура");

else

s[0]='\0';

//выдадим поля колонки не указатели

sprintf (buf,"%s i=%d header=%s type=%d def=%s flagEnum=%d",

s,iCol,par.header,

par.type, par.def, par.flagEnum);

Message(buf);

if (par.type == RECORD_ATTR_TYPE)	//структура

ShowColumns(par.columns,TRUE);

else

{

if (par.flagEnum)	//выдадим массив перечислений

{

int n1 = GetArrayCount (par.fieldEnum);

Message ("массив перечислений");

for (int i1=0; i1<n1; i1++)

{

if (!GetArrayItem (par.fieldEnum , i1, &buf, sizeof(buf)))

MessageBoxResult();	// проверяем результат работы

// нашей функции

else

Message(buf);

}

}

}

}

//--------------------------------------------------------------------------

// показать колонки

//--------------------------------------------------------------------------

static void ShowColumns (reference pCol, BOOL fl)

{

ColumnInfo par;

par.columns = CreateArray (ATTR_COLUMN_ARR,0);

par.fieldEnum = CreateArray (CHAR_STR_ARR,0);

int n = GetArrayCount (pCol);

for (int i = 0; i < n; i++)

{

if (!GetArrayItem(pCol, i, &par, sizeof(par)))

MessageBoxResult();	// проверяем результат работы нашей функции

else

ShowCol(par,i, fl);

}

DeleteArray (par.columns);

DeleteArray (par.fieldEnum);

}

//--------------------------------------------------------------------------

// получить тип атрибута

//--------------------------------------------------------------------------

void ShowTypeAttr ()

{

double numb;

char buf[128], nameFile[128];

ksAttributeType attrType;

attrType.columns = CreateArray (ATTR_COLUMN_ARR,0);

//запросить имя библиотеки

if (!ChoiceFile ("*.lat",NULL, nameFile,128))

nameFile[0]='\0';	//будем искать в документе

do

{

numb = ChoiceAttrTypes (nameFile);

if (numb)

{

if (!ksGetAttrType (numb, nameFile, &attrType))

MessageBoxResult();	// проверяем результат работы

// нашей функции

else

{

sprintf (buf,"key1 = %d key2 =%d key3 = %d key4 =&d",

attrType.key1,attrType.key2,attrType.key3,attrType.key4);

Message (buf);

sprintf (buf,"header=%s rowsCount=%d flagVisible=%d password=%s",

attrType.header,attrType.rowsCount,

attrType.flagVisible,attrType.password);

Message (buf);

ShowColumns (attrType.columns, FALSE);	//пользовательская

// функция

}

}

}

while(numb);

//удалим  массив колонок

DeleteArray(attrType.columns);

}


SetAttrType - Установить описание типа атрибута
SetAttrType  	Пример

Установить описание типа атрибута.

Функция устарела, рекомендуется использовать ksSetAttrType.

Синтаксис:

int SetAttrType (double attrID,  char  *libname, AttributeType * attrType, char * password);

Входные параметры:

attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то обрабатывается локальный атрибут текущего документа.
attrType	- Структура типа атрибута...,
password	- пароль типа атрибута.
Возвращаемое значение:

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


SetAttrType - пример использования

{

//создадим тип атрибута - строка

 AttributeType attrType, NewAttrType;   //структура типа атрибута

  char nameFile[128];

  reference pCol;           //указатель  на массив колонок

  ColumnInfo  parStruct;  //структура для колонки

  //создали массив колонок  типа атрибута

  pCol = CreateArray(ATTR_COLUMN_ARR,0);

   //опишем единственную колонку типа STRING_ATTR_TYPE

    strcpy(parStruct.header, "строка");   // заголовoк-комментарий столбца

    parStruct.type = STRING_ATTR_TYPE; // тип данных в столбце - см.ниже

// дополнительный признак, который позволит отличить две переменные с одинаковым типом

    parStruct.key = 0;

    strcpy(parStruct.def,"линия");  // значение по умолчанию

    parStruct.flagEnum =0;      // режим заполнения

    parStruct.fieldEnum = 0;    // массив неопределенной длины перечислений (строки)

    parStruct.columns = 0;      / массив неопределенной длины информации о колонках для записи

    AddArrayItem(pCol, -1, &parStruct, sizeof(parStruct)); //добавили колонку

//заполним структуру типа атрибута

  strcpy(attrType.header,"тип строка");   // заголовoк-комментарий типа

  attrType.rowsCount        = 1;    // кол-во строк в таблице

  attrType.flagVisible      = 1;      // видимый/невидимый

  strcpy(attrType.password,"");   // пароль

  attrType.columns          = pCol;  // массив неопределенной длины информации о колонках

//запросить имя библиотеки

  if(!ChoiceFile("lta", NULL, nameFile, 128))

    nameFile[0]='\0';  //будем создавать в документе

  //создать тип атрибута

  double  numbType =  CreateAttrType(&attrType,   // информация о типе атрибута

                                     nameFile); // имя библиотеки типов атрибутов

  if (numbType > 1)  {

    char buf[128];

    sprintf(buf, "numbType=%f ",numbType);

    Message(buf);

  }

  else MessageBoxResult();  // ошибка

//заполним структуру нового типа атрибута

  strcpy(attrType.header,"тип строка");   // заголовoк-комментарий типа

  attrType.rowsCount        = 1;    // кол-во строк в таблице

  attrType.flagVisible      = 1;      // видимый/невидимый

  strcpy(attrType.password,"pass");   // пароль

  attrType.columns          = pCol;  // массив неопределенной длины информации о колонках

  SetAttrType (numbType,  nameFile,  &attrType, «pass»);

 //удалим  массив колонок

 DeleteArray(pCol);

}


ksSetAttrType - Установить описание типа атрибута
ksSetAttrType  	Пример

Изменить тип атрибута в библиотеке типов атрибутов.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksSetAttrType.

Синтаксис:

double ksSetAttrType (double attrID,

                                                char  * libname,

                                                ksAttributeType * attrType,

                                                char * password);

Входные параметры:

attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута изменяется в текущем документе.
attrType	- Структура типа атрибута...,
password	- пароль типа атрибута.
Возвращаемое значение:

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


ksSetAttrType - пример использования

double numb;

int j;

char nameFile[128];

char password[11];

ksAttributeType attrType;

attrType.columns = CreateArray (ATTR_COLUMN_ARR, 0);

//поменяем местами первую колонку и последнюю

ColumnInfo par1;	//структура для первой колонки

par1.columns = CreateArray (ATTR_COLUMN_ARR,0);

par1.fieldEnum = CreateArray (CHAR_STR_ARR,0);

ColumnInfo parN;	//структура для последней колонки

parN.columns = CreateArray (ATTR_COLUMN_ARR,0);

parN.fieldEnum = CreateArray (CHAR_STR_ARR,0);

//запросить имя библиотеки

if (!ChoiceFile("*.lat",NULL, nameFile,128))

nameFile[0]='\0'; //будем искать в документе

do

{

j = ReadDouble ("Ввести номер типа атрибута", 1000.,0, 1e12,&numb);

if (j)

{

j = ReadString ("Ввести пароль типа атрибута", password, 10);

if (j)

{

//считаем тип атрибута

if (!ksGetAttrType(numb, nameFile, &attrType))

MessageBoxResult();	// проверяем результат работы

//нашей функции

else

{

strcpy (attrType.password,password);

// число колонок

int n = GetArrayCount (attrType.columns);

//считаем первую колонку

GetArrayItem (attrType.columns, 0, &par1, sizeof (par1));

//считаем последнюю колонку

GetArrayItem(attrType.columns, n-1, &parN, sizeof (parN));

//заменим первую колонку

SetArrayItem (attrType.columns, 0, &parN, sizeof (parN));

//заменим последнюю колонку

SetArrayItem (attrType.columns, n-1, &par1, sizeof (par1));

//заменим  тип атрибута  на новый

double numbType = ksSetAttrType (numb, nameFile,

&attrType, password);

if (numbType > 1)

{

char buf[128];

sprintf (buf, "numbType=%f ",numbType);

Message (buf);

}

else

MessageBoxResult();	// неудачное завершение -

// выдадим результат работы нашей функции

}

}

}

}

while(j);

//удалим все созданные массивы

DeleteArray (par1.columns);

DeleteArray (par1.fieldEnum);

DeleteArray(parN.columns);

DeleteArray(parN.fieldEnum);

DeleteArray(attrType.columns);


CreateAttr - Создать атрибут объекта
CreateAttr  	Пример

Создать атрибут объекта.

Замечание:

Функция устарела, рекомендуется использовать ksCreateAttr.

Синтаксис:

reference CreateAttr (reference pObj,

Attribute * attr,

double attrID,

char *libname);

Входные параметры:

pObj	- указатель на объект (группа, вид, отдельный объект), атрибут которого создается.  Если pObj = 0, то создается атрибут документа,
attr	- указатель на структуру параметров табличного атрибута ksAttribute,
attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:

указатель на атрибут	- в случае удачного завершения,
0	- в случае неудачи.


CreateAttr - пример использования

void CreateAttr_Example (void) {

//   создадим атрибут  для типа атрибута с колонками

//   DOUBLE_ATTR_TYPE,  STRING_ATTR_TYPE,  LINT_ATTR_TYPE

//   Предполагается, что данный тип уже существует

Attribute    attrPar;

//структура данных для  оформления атрибута

struct {

  double a;

  char c[127];

  long b;

} bufS;

// заполним поля атрибута

bufS.a = 987654321.0;

bufS.b = 99999l;

strcpy(bufS.c,"Исполнение 1");

//заполним параметры структуры атрибута

strcpy(attrPar.comment,"элемент");         //комментарий атрибута

attrPar.key1 = 1;      // рекоменд. как код разработчика

attrPar.key2 = 10;    // рекоменд. как код атрибута

attrPar.key3 = 100;  // рекоменд. как код разработчика

attrPar.key4 = 0;      // системный код атрибута

                                        // значения от 0 до 1000 зарезервированы АСКОН

attrPar.flagVisible = 0;    //массив, определяющий для каждой колонки

                                            // атрибут видимость-невидимость

                                            // 0 -видимое поле 1- невидимое поле

attrPar.values = &bufS;   // массив значений ячеек таблицы атрибутов

                                             // сначала все значения для 1-ой строки,

                                             // затем все значения для 2-ой строки и т.д.

attrPar.valSize = sizeof(bufS);

strcpy(attrPar.password,"111"); //пароль

double x, y;

reference pObj;

RequestInfo  info;

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

info.promt = " Укажите объект ";

int j = Cursor(&info, &x ,&y, 0, 0);

if (j) {

  if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

LightObj(pObj, 1);

//запросить имя библиотеки

char nameFile[128];

if(!ChoiceFile("*.tip",NULL, nameFile))

nameFile[0]='\0'; //будем искать в документе

double numb;

j = ReadDouble("Ввести номер типа атрибута", 1000.,0, 1e12,&numb);

if(j) {

reference attr= CreateAttr(pObj, &attrPar, numb, nameFile);

if (!attr) MessageBoxResult(); // неудачное завершение

}

LightObj(pObj, 0);

  }

}

}; /* CreateAttr */


ksCreateAttr - Создать атрибут объекта
ksCreateAttr  	Пример

Создать атрибут объекта.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksCreateAttr.

Синтаксис:

reference ksCreateAttr (reference pObj,

ksAttribute * attr,

double attrID,

char *libname);

Входные параметры:

pObj	- указатель на объект (группа, вид, отдельный объект), атрибут которого создается.  Если pObj = 0, то создается атрибут документа,
attr	- указатель на структуру параметров табличного атрибута ksAttribute,
attrID	- уникальный номер типа атрибута,
libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:

указатель на атрибут	- в случае удачного завершения,
0	- в случае неудачи.


ksCreateAttr - пример использования

//Создадим атрибут типа "таблица неопределенной длины",

//тип содержит три колонки: DOUBLE_ATTR_TYPE(double),

// STRING_ATTR_TYPE(строка),LINT_ATTR_TYPE(long int).

//Атрибут создадим для внутреннего макрообъекта.

//Макрообъект на момент создания атрибута временный, т.е. не в модели чертежа.

//Отредактируем атрибут в диалоге редактирования атрибута - добавим строку, удалим.

ksAttribute    attrPar;

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

struct TypeStr {

double a;

char c [MAX_TEXT_LENGTH];

long b;

} ;

  static    TypeStr arrBuf [3] = { {187654321.0, "1 строка", 19999l},

                                  {287654321.0, "2 строка", 29999l},

                                  {387654321.0, "3 строка", 39999l} };

//массив, определяющий для каждой колонки видимость-невидимость

//(вторая колонка выключена)

  unsigned char fV[3]= {1,0,1};

  attrPar.key1 = 1;                          	// рекоменд. как код разработчика

  attrPar.key2 = 10;                         // рекоменд. как код атрибута

  attrPar.key3 = 100;                       // рекоменд. как код разработчика

  attrPar.key4 = 0;                          	// системный код атрибута

                                             	// значения от 0 до 1000 зарезервированы

                                             	// за АО "АСКОН"

  attrPar.flagVisible = fV;                 //массив, определяющий для каждой колонки

                                             	// атрибута видимость-невидимость

                                             	//0 -видимое поле 1- невидимое поле

  attrPar.values = &arrBuf ;             // массив значений ячеек таблицы атрибутов

                                         // сначала все значения для 1-ой строки,

               	// затем все значения для 2-ой строки и т.д.

  attrPar.valSize = sizeof(TypeStr)*3;

  strcpy(attrPar.password,"111");	//пароль

  reference pObj;

  char nameFile[128];

  if(!ChoiceFile("*.lat",NULL, nameFile, 128))

    nameFile[0]='\0'; 	//будем искать в документе

//номер типа атрибута

//(тип создан ранее,

//если nameFile пустое - ищем тип атрибута в документе)

  double numb;

  int j = ReadDouble ("Ввести номер типа атрибута", 1000.,0, 1e12,&numb);

  if(j) {

    //временная группа

    reference  g = NewGroup(1);

      //создадим пустой macro

      Macro (0);

      reference  m = EndObj();

      pObj = LineSeg(10, 10, 20, 20, 1);

      //добавим отрезок в macro

      ksAddObjectToMacro (m, 	//указатель на макрообъект

                           pObj ); 	//указатель на добавляемый объект

//создадим для отрезка, который принадлежит macro атрибут

      reference attr= ksCreateAttr(pObj, &attrPar, numb, nameFile);

if (!attr)

        MessageBoxResult();  // неудачное завершение - выдадим результат работы нашей функции

      else {

        //вызываем диалог для редактирования атрибута

        ViewEditAttr ( attr, 2, "111"); // пароль атрибута  для просмотра 0

        TypeStr arrBuf1 = { 222222222222.0, "новая строка", 4444444l} ;

        //добавим в конец атрибута еще одну строку

        ksAddAttrRow (attr,              // указатель атрибута

                       -1,       	       // номер строки, после которой вставлять, -1 -в конец

                        fV,   // указатель на массив флагов видимости ячеек строки

                        &arrBuf1,                // указатель на память пользователя, откуда копируются данн

                        sizeof(TypeStr),        // размер выделенной памяти под value

                        "111");            	// пароль атрибута

         //удалим первую строку

         ksDeleteAttrRow (attr,         	// указатель атрибута

                           0, "111");   	// номер строки

         //узнаем количество колонок и строк в атрибуте

         unsigned int rowsCount, columnsCount;

         GetAttrTabInfo (attr,              // указатель атрибута

                          &rowsCount,     // количество строк

                          &columnsCount);// количество  столбцов

         char buf[250];

         sprintf(buf, "rowsCount = %d columnsCount = %d",rowsCount,columnsCount);

         //выведем количество колонок и строк в атрибуте на экран

         Message (buf);

      }

    //закроем временную группу

    EndGroup();

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

    StoreTmpGroup(g);

  }


DeleteAttr - Удалить атрибут объекта
DeleteAttr  	Пример

Удалить атрибут объекта.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksDeleteAttr.

Синтаксис:

int DeleteAttr (reference pObj, reference PAttr, char * password);

Входные параметры:

pObj	- указатель на объект, к которому подключен атрибут.  Если pObj = 0 - атрибут текущего документа,
pAttr	- указатель на удаляемый атрибут,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


DeleteAttr - пример использования

{

//   создадим атрибут  для типа атрибута с колонками

//   DOUBLE_ATTR_TYPE,  STRING_ATTR_TYPE,  LINT_ATTR_TYPE

//   Предполагается, что данный тип уже существует

Attribute    attrPar;

//структура данных для  оформления атрибута

struct {

  double a;

  char c[127];

  long b;

} bufS;

// заполним поля атрибута

bufS.a = 987654321.0;

bufS.b = 99999l;

strcpy(bufS.c,"Исполнение 1");

//заполним параметры структуры атрибута

strcpy(attrPar.comment,"элемент");         //комментарий атрибута

attrPar.key1 = 1;      // рекоменд. как код разработчика

attrPar.key2 = 10;    // рекоменд. как код атрибута

attrPar.key3 = 100;  // рекоменд. как код разработчика

attrPar.key4 = 0;      // системный код атрибута

                                        // значения от 0 до 1000 зарезервированы АСКОН

attrPar.flagVisible = 0;    //массив, определяющий для каждой колонки

                                            // атрибут видимость-невидимость

                                            // 0 -видимое поле 1- невидимое поле

attrPar.values = &bufS;   // массив значений ячеек таблицы атрибутов

                                             // сначала все значения для 1-ой строки,

                                             // затем все значения для 2-ой строки и т.д.

attrPar.valSize = sizeof(bufS);

strcpy(attrPar.password,"111"); //пароль

double x, y;

reference pObj;

RequestInfo  info;

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

info.promt = " Укажите объект ";

int j = Cursor(&info, &x ,&y, 0, 0);

if (j) {

  if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

LightObj(pObj, 1);

//запросить имя библиотеки

char nameFile[128];

if(!ChoiceFile("*.tip",NULL, nameFile))

nameFile[0]='\0'; //будем искать в документе

double numb;

j = ReadDouble("Ввести номер типа атрибута", 1000.,0, 1e12,&numb);

if(j) {

reference attr= CreateAttr(pObj, &attrPar, numb, nameFile);

if (!attr) MessageBoxResult(); // неудачное завершение

}

LightObj(pObj, 0);

  }

}

DeleteAttr (pObj, attr, «111»);

};


GetAttrValue - Получить значение атрибута
GetAttrValue  	Пример

Получить значение атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetAttrValue.

Синтаксис:

int GetAttrValue (reference pAttr, unsigned int rowNumb, unsigned int columnNumb,

 unsigned char *flagVisible, void *value, unsigned int size);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
columnNumb	- номер колонки,
flagVisible	- указатель на массив флагов видимости ячеек строки,
size	- размер выделенной под value памяти
Выходной параметр:

value	- указатель на память пользователя, куда копируются даннные,
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


GetAttrValue, SetAttrValue, GetAttrRow, SetAttrRow - пример использования

void GetAttrvalue_Example (void) {

// если у объекта есть  атрибут с ключом key1 = 100 и паролем  "str",

// то заменим содержимое атрибута

  double x, y;

  reference pObj;

  int j;

  char buf[127];

  char s[128];

  RequestInfo  info;

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

  info.prompt = "Укажите объект";

  j = Cursor(&info, &x ,&y, 0, 0);

  if (j) {

    if (ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

      LightObj(pObj, 1);

      //создадим итератор для поиска по атрибутам объекта  c ключами 1,10,100

      reference iter = CreateAttrIterator(pObj, 0,0,0,0,0);

      //встали на первый атрибут

      reference attr = MoveAttrIterator(iter, 'F', 0);

      if (attr) {

        // получили данные для первой строки из таблицы атрибута

        // если тип атрибута - STRING_ATTR_TYPE,то таблица атрибута будет состоять

        // из 1 строки и 1 колонки, ячейка и строка в таблице  атрибутов будет

        // совпадать, поэтому в данном случае  функции

        // GetAttrRow и GetAttrValue  будут работать одинаково

        GetAttrRow (attr, 0, 0, &buf, sizeof(buf));

        sprintf(s, "содержимое атрибута - %s",buf);

        Message(s);

        strcpy(buf, "дуга");

        // изменили содержимое строки в таблице атрибута

        // функции SetAttrRow и SetAttrValue в данном случае будут работать одинаково

        SetAttrRow(attr, 0, 0, &buf, sizeof(buf), "str");

      }

      else Message("атрибут не найден");

      LightObj(pObj, 0);

    }

  }

}; /* GetAttrValue */


SetAttrValue - Установить значение атрибута
SetAttrValue  	Пример

Установить значение атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksSetAttrValue.

Синтаксис:

int SetAttrValue (reference pAttr,
unsigned int rowNumb,
unsigned int columnNumb,
unsigned char *flagVisible,
void *value,
unsigned int size, char * password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
columnNumb	- номер колонки,
flagVisible	- флаг видимости ячейки (одно значение, если не запись и массив значений, если запись),
value	- указатель на память пользователя, откуда копируется значение ячейки,
size	- размер выделенной памяти под value
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksSetAttrValue - Установить значение атрибута
ksSetAttrValue

Установить значение атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksSetAttrValue.

Синтаксис:

int ksSetAttrValue(reference pAttr,

unsigned int rowNumb,

unsigned int columnNumb,

unsigned char *flagVisible,

unsigned char *columnKeys,

void *value,

unsigned int size,

char *password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
columnNumb	- номер колонки,
flagVisible	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек,
columnKeys	- ключ поля колонки (одно значение, если не запись и массив значений, если запись),
value	- указатель на ключ поля колонки (одно значение, если не запись   и массив значений, если запись),
size	- размер выделенной под value памяти,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksGetAttrValue - Получить значение ячейки из таблицы атрибута
ksGetAttrValue

Получить значение ячейки из таблицы атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetAttrValue.

Синтаксис:

int ksGetAttrValue (reference pAttr,

unsigned int rowNumb,

unsigned int columnNumb,

unsigned char *flagVisible,

unsigned char *columnKeys,

void *value,

unsigned int size);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
columnNumb	- номер колонки,
flagVisible	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек,
columnKeys	- указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи полей колонки.
Выходной параметр:

value	- указатель на интерфейс ksUserParam, куда копируется значение ячейки.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


GetAttrRow - Получить строку табличного атрибута
GetAttrRow  	Пример

Получить строку табличного атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetAttrRow.

Синтаксис:

int GetAttrRow (reference pAttr, unsigned int rowNumb,

 unsigned char *flagVisible, void *value, unsigned int size);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
flagVisible	- указатель на массив флагов видимости ячеек строки,
size	- размер выделенной под value памяти
Выходной параметр:

value	- указатель на память пользователя, куда копируются даннные,
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


SetAttrRow - Установить строку табличного атрибута
SetAttrRow  	Пример

Установить строку табличного атрибута.

Синтаксис:

int SetAttrRow (reference pAttr, unsigned int rowNumb, unsigned char *flagVisible,

void *value, unsigned int size, char * password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
flagVisible	- указатель на массив флагов видимости ячеек строки,
value	- указатель на память пользователя, откуда копируются даннные,
size	- размер выделенной под value памяти
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksSetAttrRow - Установить строку табличного атрибута
ksSetAttrRow

Установить строку табличного атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksSetAttrRow.

Синтаксис:

int ksSetAttrRow(reference pAttr,

unsigned int rowNumb,

unsigned char *flagVisible,

unsigned char *columnKeys,

void *value,

unsigned int size,

char *password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
flagVisible	- указатель на массив флагов видимости ячеек строки,
columnKeys	- указатель на массив ключей ячеек строки,
value	- указатель на память пользователя, откуда копируются даннные,
size	- размер выделенной под value памяти
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Смотрите также:

ksLtVariant


ksAddAttrRow - Добавить строку к табличному атрибуту
ksAddAttrRow	Пример

Добавить строку к табличному атрибуту.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksAddAttrRow.

Синтаксис:

int ksAddAttrRow (reference pAttr,
int rowNumb,
unsigned char *flagVisible,
void *value,
unsigned int size,
char * password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
flagVisible	- указатель на массив флагов видимости ячеек строки,
value	- указатель на память пользователя, откуда копируются даннные,
size	- размер выделенной под value памяти
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksDeleteAttrRow - Удалить строку табличного атрибута
ksDeleteAttrRow	Пример

Удалить строку табличного атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksDeleteAttrRow.

Синтаксис:

int ksDeleteAttrRow (reference pAttr, unsigned int rowNumb, char * password);

Входные параметры:

pAttr	- указатель на атрибут,
rowNumb	- номер строки,
password	- пароль атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksDeleteAttrRow - пример использования
ksDeleteAttrRow, ksAddAttrRow - пример использования

//создадим атрибут для табличного типа  неопределенной длины, тип содержит три колонки

//DOUBLE_ATTR_TYPE(double),STRING_ATTR_TYPE(строка),LINT_ATTR_TYPE(long int).

// Атрибут создадим для внутреннего объекта macro.

// Macro на момент создания атрибута времменый, т.е. не в модели чертежа.

// Отредактируем атрибут - в диалоге редактирования атрибута, добавим строку, удалим

Attribute attrPar;

struct TypeStr

{

double a;

char c[MAX_TEXT_LENGTH];

long b;

} ;

static TypeStr arrBuf[3] =

{

{187654321.0, "1 строка", 19999l},

{287654321.0, "2 строка", 29999l},

{387654321.0, "3 строка", 39999l}

};

//массив, определяющий для каждой колонки видимость-невидимость

// (вторая колонка выключена)

unsigned char fV[3]= {1,0,1};

attrPar.key1 = 1;	// рекоменд. как код разработчика

attrPar.key2 = 10;	// рекоменд. как код атрибута

attrPar.key3 = 100;	// рекоменд. как код разработчика

attrPar.key4 = 0;	// системный код атрибута

// значения от 0 до 1000 зарезервированы

// за АО "АСКОН"

attrPar.flagVisible = fV;	// массив, определяющий для каждой колонки атрибута

// видимость-невидимость

// 0 -видимое поле 1- невидимое поле

attrPar.values = &arrBuf ;	// массив значений ячеек таблицы атрибутов

// сначала все значения для 1-ой строки,

// затем все значения для 2-ой строки и т.д.

attrPar.valSize = sizeof(TypeStr)*3;

strcpy (attrPar.password,"111");	// пароль, если не пустая строка

// - защищает от несанкционированного

// изменения информации в атрибуте

reference pObj;

char nameFile[128];

if (!ChoiceFile ("*.lat",NULL, nameFile, 128))

nameFile[0]='\0';	//будем искать в документе

//номер типа атрибута (тип создан ранее, если nameFile пустое - ищем тип атрибута в документе)

double numb;

int j = ReadDouble ("Ввести номер типа атрибута", 1000.,0, 1e12,&numb);

if (j)

{

//временная группа

reference  g = NewGroup (1);

//создадим пустой macro

Macro (0);

reference m = EndObj ();

pObj = LineSeg (10, 10, 20, 20, 1);

//добавим отрезок в macro

ksAddObjectToMacro (m,	//указатель на макрообъект

pObj);	//указатель на добавляемый объект

//создадим для отрезка, который принадлежит macro, атрибут

reference attr= CreateAttr (pObj, &attrPar, numb, nameFile);

if (!attr)

MessageBoxResult();	// неудачное завершение - выдадим результат работы

// нашей функции

else

{

//вызываем диалог для редактирования атрибута

ViewEditAttr (attr, 2, "111");	// пароль атрибута  для просмотра 0

TypeStr arrBuf1 = { 222222222222.0, "NEW строка", 4444444l} ;

//добавим в конец атрибута еще одну строку

ksAddAttrRow (attr,	// указатель атрибута

-1,	// вставлять строку в конец

fV,	// указатель на массив флагов

// видимости ячеек строки

&arrBuf1,	// указатель на память пользователя,

// откуда копируются данные

sizeof (TypeStr),// размер выделенной памяти под value

"111");	// пароль атрибута

//удалим первую строку

ksDeleteAttrRow (attr,	// указатель атрибута

0, "111");   // номер строки и пароль

//узнаем количество колонок и строк в атрибуте

unsigned int rowsCount, columnsCount;

GetAttrTabInfo (attr,	// указатель атрибута

&rowsCount,	// количество строк

&columnsCount);// количество столбцов

char buf[250];

sprintf (buf, "rowsCount = %d columnsCount = %d",rowsCount,columnsCount);

//выведем количество колонок и строк в атрибуте на экран

Message (buf);

}

//закроем временную группу

EndGroup();

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

StoreTmpGroup(g);

}


GetSizeAttrValue - Получить длину поля атрибута
GetSizeAttrValue  	Пример

Получить длину поля атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetSizeAttrValue.

Синтаксис:

int GetSizeAttrValue (reference pAttr, unsigned int columnNumb);

Входные параметры:

pAttr	- указатель на атрибут,
columnNumb	- номер колонки.
Возвращаемое значение:

длина поля атрибута	- в случае удачного завершения,
0	- в случае неудачи.


GetSizeAttrValue - пример использования

void GetAttrvalue_Example (void) {

// если у объекта есть  атрибут с ключом key1 = 100 и паролем  "str",

// то заменим содержимое атрибута

  double x, y;

  reference pObj;

  int j;

  char buf[127];

  char s[128];

  RequestInfo  info;

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

  info.prompt = "Укажите объект";

  j = Cursor(&info, &x ,&y, 0, 0);

  if (j) {

    if (ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

      LightObj(pObj, 1);

      //создадим итератор для поиска по атрибутам объекта  c ключами 1,10,100

      reference iter = CreateAttrIterator(pObj, 0,0,0,0,0);

      //встали на первый атрибут

      reference attr = MoveAttrIterator(iter, 'F', 0);

      if (attr) {

        // получили данные для первой строки из таблицы атрибута

        // если тип атрибута - STRING_ATTR_TYPE,то таблица атрибута будет состоять

        // из 1 строки и 1 колонки, ячейка и строка в таблице  атрибутов будет

        // совпадать, поэтому в данном случае  функции

        // GetAttrRow и GetAttrValue  будут работать одинаково

        GetAttrRow (attr, 0, 0, &buf, sizeof(buf));

// GetSizeAttrRow и GetSizeAttrValue  будут работать одинаково

        int len1 = GetSizeAttrValue (attr, 0);

int count = 1; // количество колонок

 int len2 = ksGetSizeAttrValue (attr, 0, &count );

 int len3 = ksGetSizeAttrRow (attr, &count );        sprintf(s, "содержимое атрибута - %s",buf);

        Message(s);

        strcpy(buf, "дуга");

        // изменили содержимое строки в таблице атрибута

        // функции SetAttrRow и SetAttrValue в данном случае будут работать одинаково

        SetAttrRow(attr, 0, 0, &buf, sizeof(buf), "str");

      }

      else Message("атрибут не найден");

      LightObj(pObj, 0);

    }

  }

}; /* GetAttrValue */


ksGetSizeAttrValue - получить размер данных ячейки
ksGetSizeAttrValue	Пример

Получить размер данных ячейки атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetSizeAttrValue.

Синтаксис:

int ksGetSizeAttrValue (reference pAttr, unsigned int columnNumb, int *count);

Входные параметры:

pAttr	- указатель на атрибут,
columnNumb	- номер колонки.
Выходной параметр:

count	- число ячеек с учетом записей.
Возвращаемое значение:

длина строки ячейки атрибута	- в случае удачного завершения,
0	- в случае неудачи.


GetSizeAttrRow - Получить длину строки табличного атрибута
GetSizeAttrRow  	Пример

Получить длину строки табличного атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetSizeAttrRow.

Синтаксис:

int GetSizeAttrRow (reference pAttr);

Входной параметр:

pAttr	- указатель на атрибут.
Возвращаемое значение:

длина строки атрибута	- в случае удачного завершения,
0	- в случае неудачи.


GetSizeAttrRow - пример использования

void GetAttrvalue_Example (void) {

// если у объекта есть  атрибут с ключом key1 = 100 и паролем  "str",

// то заменим содержимое атрибута

  double x, y;

  reference pObj;

  int j;

  char buf[127];

  char s[128];

  RequestInfo  info;

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

  info.prompt = "Укажите объект";

  j = Cursor(&info, &x ,&y, 0, 0);

  if (j) {

    if (ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

      LightObj(pObj, 1);

      //создадим итератор для поиска по атрибутам объекта  c ключами 1,10,100

      reference iter = CreateAttrIterator(pObj, 0,0,0,0,0);

      //встали на первый атрибут

      reference attr = MoveAttrIterator(iter, 'F', 0);

      if (attr) {

        // получили данные для первой строки из таблицы атрибута

        // если тип атрибута - STRING_ATTR_TYPE,то таблица атрибута будет состоять

        // из 1 строки и 1 колонки, ячейка и строка в таблице  атрибутов будет

        // совпадать, поэтому в данном случае  функции

        // GetAttrRow и GetAttrValue  будут работать одинаково

        GetAttrRow (attr, 0, 0, &buf, sizeof(buf));

// GetSizeAttrRow и GetSizeAttrValue  будут работать одинаково

        int len1 = GetSizeAttrValue (attr, 0);

int count = 1; // количество колонок

 int len2 = ksGetSizeAttrValue (attr, 0, &count );

 int len3 = ksGetSizeAttrRow (attr, &count );

int rowsCount, columnsCount;

int GetAttrTabInfo ( pObj, &rowsCount, &columnsCount );

sprintf( s, "Количество колонок - %i", columnsCount );

Message( s );

sprintf( s, "Количество строк - %i", rowsCount );

Message( s );

        sprintf(s, "содержимое атрибута - %s",buf);

        Message(s);

        strcpy(buf, "дуга");

        // изменили содержимое строки в таблице атрибута

        // функции SetAttrRow и SetAttrValue в данном случае будут работать одинаково

        SetAttrRow(attr, 0, 0, &buf, sizeof(buf), "str");

      }

      else Message("атрибут не найден");

      LightObj(pObj, 0);

    }

  }

}; /* GetAttrValue */


ksGetSizeAttrRow
ksGetSizeAttrRow  	Пример

Получить длину строки указанного табличного атрибута с указателем.

Синтаксис:

int ksGetSizeAttrRow (reference pAttr, int * count);

Входной параметр:

pAttr	- указатель на атрибут.
Выходной параметр:

count	- число ячеек с учетом записей.
Возвращаемое значение:

длина строки атрибута	- в случае удачного завершения,
0	- в случае неудачи.


GetAttrKeysInfo - Получить информацию для поиска
GetAttrKeysInfo  	Пример

Получить информацию для поиска.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetAttrKeysInfo.

Синтаксис:

int GetAttrKeysInfo (reference pAttr,

unsigned int *key1,

unsigned int *key2,

unsigned int *key3,

unsigned int *key4,

double *numb);

Входной параметр:

pAttr	- указатель на атрибут,
Выходные параметры:

key1, key2, key3, key4	- ключи атрибута для поиска по значению,
numb	- номер типа атрибута для поиска по типу
Возвращаемое значение:

1	- в случае удачного завершения.
0	- - в случае неудачи.


GetAttrKeysInfo - пример использования

void ReadObjAttr ()

{

struct

{

double d;

char s[127];

long l;

}

sBuf;

double x, y;

reference pObj;

int j;

char buf[127];

RequestInfo  info;

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

info.prompt = "Укажите объект";

do

{

j = Cursor (&info, &x ,&y, 0);

if (j)

{

if (ExistObj(pObj = FindObj(x, y, MAXDOUBLE)))

{

LightObj(pObj, 1);

//создадим итератор для хождения по атрибутам объекта

reference iter = CreateAttrIterator (pObj, 0,0,0,0,0);

//встали на первый атрибут

reference attr = MoveAttrIterator (iter, 'F', 0);

if (attr)

{

Message("тип и ключи атрибута");

unsigned int k1,k2,k3,k4;

double numb;

GetAttrKeysInfo (attr,&k1,&k2,&k3,&k4,&numb);

sprintf (buf, "k1=%d k2=%d k3=%d k4=%d

numb=%f ", k1, k2, k3, k4, numb);

Message (buf);

Message ("количество колонок");

unsigned int col;

GetAttrTabInfo (attr, 0, &col);

sprintf (buf, "column=%d",col);

Message (buf);

Message("информация о колонках");

ColumnInfo par;	//структура для первой колонки

par.columns = CreateArray (ATTR_COLUMN_ARR);

par.fieldEnum = CreateArray (CHAR_STR_ARR);

for (int i=0; i < col; i++)

{

GetAttrColumnInfo (attr, i, &par);

ShowCol (par,i, FALSE);

}

DeleteArray (par.columns);

DeleteArray (par.fieldEnum);

Message("строка атрибута");

GetAttrRow (attr, 0, 0, &sBuf, sizeof (sBuf));

sprintf (buf, "d=%f s=%s l=%ld",sBuf.d, sBuf.s, sBuf.l);

Message (buf);

Message("заменим строку атрибута");

sBuf.d = numb;

strcpy (sBuf.s,"1234567\nasdfgh\nzxcvb");

sBuf.l = 88888l;

SetAttrRow (attr, 0, 0, &sBuf, sizeof (sBuf), "111");

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

GetAttrRow (attr, 0, 0, &sBuf, sizeof (sBuf));

sprintf (buf, "d=%f s=%s l=%ld",sBuf.d, sBuf.s, sBuf.l);

Message (buf);

}

else

Message("атрибут не найден");

LightObj(pObj, 0);

}

}

}

while (j);

}


GetAttrColumnInfo - Получить информацию по столбцу
GetAttrColumnInfo  	Пример

Получить информацию по столбцу.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetAttrColumnInfo.

Синтаксис:

int GetAttrColumnInfo (reference pAttr, unsigned int columnNumb, ColumnInfo *columnInfo);

Входные параметры:

pAttr	- указатель на атрибут,
columnNumb	- номер колонки.
Выходной параметр:

columnInfo	- адрес структуры для записи результата.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


GetAttrColumnInfo - пример использования

void ReadObjAttr() {

  struct {

    double d;

    char s[127];

    long l;

  } sBuf;

  double x, y;

  reference pObj;

  int j;

  char buf[127];

  RequestInfo  info;

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

  info.prompt = "Укажите объект";

  do {

    j = Cursor(&info, &x ,&y, 0);

    if (j) {

      if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

        LightObj(pObj, 1);

        //создадим итератор для хождения по атрибутам объекта

        reference iter = CreateAttrIterator(pObj, 0,0,0,0,0);

        //встали на первый атрибут

        reference attr = MoveAttrIterator(iter, 'F', 0);

        if (attr) {

          Message("тип и ключи атрибута");

          unsigned int k1,k2,k3,k4;

          double numb;

          GetAttrKeysInfo(attr,&k1,&k2,&k3,&k4,&numb);

          sprintf (buf, "k1=%d k2=%d k3=%d k4=%d numb=%f ",k1,k2,k3,k4,numb);

          Message(buf);

          Message("количество колонок");

          unsigned int col;

          GetAttrTabInfo(attr, 0, &col);

          sprintf (buf, "column=%d",col);

          Message(buf);

          Message("информация о колонках");

          ColumnInfo par;  //структура для первой колонки

          par.columns = CreateArray(ATTR_COLUMN_ARR);

          par.fieldEnum = CreateArray(CHAR_STR_ARR);

          for (int i=0; i < col; i++) {

            GetAttrColumnInfo (attr, i, &par);

            ShowCol(par,i, FALSE);

          }

          DeleteArray(par.columns);

          DeleteArray(par.fieldEnum);

          Message("строка атрибута");

          GetAttrRow (attr, 0, 0, &sBuf, sizeof(sBuf));

          sprintf (buf, "d=%f s=%s l=%ld",sBuf.d, sBuf.s, sBuf.l);

          Message(buf);

          Message("заменим строку атрибута");

          sBuf.d = numb;

          strcpy(sBuf.s,"1234567\nasdfgh\nzxcvb");

          sBuf.l = 88888l;

          SetAttrRow(attr, 0, 0, &sBuf, sizeof(sBuf), "111");

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

          GetAttrRow (attr, 0, 0, &sBuf, sizeof(sBuf));

          sprintf (buf, "d=%f s=%s l=%ld",sBuf.d, sBuf.s, sBuf.l);

          Message(buf);

        }

        else

          Message("атрибут не найден");

        LightObj(pObj, 0);

      }

    }

  } while (j);

}


GetAttrTabInfo - Получить информацию по табличному атрибуту
GetAttrTabInfo  	Пример

Получить информацию по табличному атрибуту.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetAttrTabInfo.

Синтаксис:

int GetAttrTabInfo (reference pAttr, unsigned int * rowsCount, unsigned int * columnsCount);

Входной параметр:

pAttr	- указатель на атрибут.
Выходные параметры:

rowsCount	- количество строк и столбцов атрибута,
columnsCount	- количество столбцов атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ViewEditAttr - Установить строку табличного атрибута
ViewEditAttr  	Пример...

Установить строку табличного атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksViewEditAttr.

Синтаксис:

int ViewEditAttr (reference pAttr, unsigned int type, char * password);

Входные параметры:

pAttr	- указатель на атрибут,
type	- режим работы: 1 - режим просмотра, 2 - режим редактирования
password	- пароль типа атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ViewEditAttr - пример использования

void ViewEditAttr_Example (void) {

 // поиск объектов по значению атрибута

 double x, y;

 //найдем объект

 int j;

 reference pObj;

 RequestInfo  info;

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

 info.prompt = "Укажите объект";

 do {

    j = Cursor(&info, &x ,&y, 0, 0);

    if (j) {

      if(ExistObj(pObj = FindObj(x, y, MAXDOUBLE))){

      //создадим итератор для движения по атрибутам с ключом 10

        reference iter = CreateAttrIterator(pObj, 10, 0,0,0,0);

        LightObj(pObj, 1); //подсветили объект

        // позиционировались на первый атрибут

        reference pAttr =  MoveAttrIterator( iter, 'F', 0);

        if (pAttr) {

          do {

            // выдать параметры атрибута

            ViewEditAttr (pAttr, 1, 0);

            // на следующий атрибут

            pAttr = MoveAttrIterator( iter, 'N', 0);

          } while(pAttr);

        }

        LightObj(pObj, 0); //выключим подсветку

        DeleteIterator(iter);

      }

    }

  }while(j);

}; /* ViewEditAttr */


ViewEditAttrType - Установить строку табличного атрибута
ViewEditAttrType  	Пример

Установить строку табличного атрибута.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksViewEditAttrType.

Синтаксис:

int ViewEditAttrType (char * libname, unsigned int type, double attrId, char * password);

Входные параметры:

libName	- имя библиотеки типов атрибутов.  Если libname = NULL, типы атрибутов берутся из текущего документа,
type	- режим работы:   - 1 - режим просмотра,     2 - режим редактирования,
attrId	- уникальный номер типа атрибута,
password	- пароль типа атрибута.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ViewEditAttrType - пример использования

void ViewEditAttrType_Example (void) {

//выбираем библиотеку типов , задаем номер, пароль типа и редактируем тип

  char nameFile[128];

  char password[10];

  int j;

  if(!ChoiceFile("*.tip", nameFile))

    nameFile[0]='\0'; //будем искать в документе

  double numb;

  j = ReadDouble("номер типа атрибута", 1000.,0, 1e12,&numb);

  if (j)  {

    j = ReadString("пароль типа атрибута", password, 10);

    if (j)  {

      //отредактировать атрибут с уникальным номером numb

      ViewEditAttrType (nameFile, 2, numb, password);

    }

  }

}; /* ViewEditAttrType */


CreateAttrIterator - Создать итератор для перебора атрибутов
CreateAttrIterator  	Пример

Создать итератор для перебора атрибутов объекта.

Аналог данной функции при использовании Automation - метод ksIterator::ksCreateAttrIterator.

Синтаксис:

reference CreateAttrIterator(reference obj,

                                       unsigned int key1,

                                       unsigned int key2,

                                       unsigned int key3,

                                       unsigned int key4,

                                       double numb);

Входные параметры:

obj	- указатель на объект,
key1, key2, key3, key4	- ключи для поиска по ключам,
numb	- номер типа атрибута для поиска по номеру.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Если obj = 0, то производится перемещение по объектам с заданным атрибутом внутри графического документа.

2. Если obj не равен 0, то объектом может быть объект вида, вид, группа, слой, тогда движение будет происходить по атрибутам этого объекта.

3. Если obj не равен 0, то объектом может быть документ, тогда движение будет происходить по атрибутам документа.


CreateAttrIterator - пример использования

double x, y;

reference pObj;

char password[11];

int j;

RequestInfo  info;

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

info.prompt = "Укажите объект";

do

{

j = Cursor (&info, &x ,&y, 0);

if (j)

{

if (ExistObj(pObj = FindObj (x, y, 1e6)))

{

LightObj (pObj, 1);

//создадим итератор для хождения по атрибутам объекта

reference iter = CreateAttrIterator (pObj, 0,0,0,0,0);

//встали на первый атрибут

reference attr = MoveAttrIterator (iter, 'F', 0);

if (attr)

{

j = ReadString ("Ввести пароль типа атрибута", password, 10);

if (j)

{

//удалить атрибут

if (!DeleteAttr (pObj, attr, password))

MessageBoxResult();	// неудачное завершение -

// выдадим результат работы

// нашей функции

}

}

else

Message("атрибут не найден");

LightObj (pObj, 0);

}

}

}

while (j);


MoveAttrIterator - перебирать атрибуты
MoveAttrIterator  	Пример

Перебирать атрибуты по итератору.

Аналог данной функции при использовании Automation - метод ksIterator::ksMoveAttrIterator.

Синтаксис:

reference MoveAttrIterator (reference iterator,

unsigned char ch,

reference * pObj);

Входные параметры:

iterator	- указатель на итератор
ch	- направление перемещения итератора: F - первый атрибут, N - следующий атрибут,
pObj	- указатель на группу.
Возвращаемое значение:

указатель на атрибут	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Если итератор создан для движения по элементам с определенным атрибутом, то pObj - указатель на объект с данным атрибутом. Если pObj = NULL, pObj не заполняется.


ChoiceAttrTypes - Выдать диалог выбора типа атрибута
ChoiceAttrTypes  	Пример

Выдать диалог для просмотра в библиотеке атрибутов списка типов атрибутов и  выбора нужного типа.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksChoiceAttrTypes.

Синтаксис:

double ChoiceAttrTypes (char * libname);

Входной параметр:

libName	- имя библиотеки типов атрибутов,  если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:

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

Диалог "привязан" к главному окну.


ChoiceAttr - Выдать диалог выбора типа атрибута
ChoiceAttr  	Пример

Вывести диалог просмотра атрибутов объекта.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksChoiceAttr.

Синтаксис:

reference ChoiceAttr (reference pObj);

Входной параметр:

pObj	- указатель на объект, к которому подключены атрибуты.
Возвращаемое значение:

указатель на атрибут	- в случае удачного завершения,
0	- в случае неудачи.


ChoiceAttr - пример использования

double x, y;

reference pObj;

int j;

RequestInfo  info;

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

info.prompt = "Укажите объект";

do

{

j = Cursor (&info, &x ,&y, 0);

if (j)

{

if (ExistObj(pObj = FindObj (x, y, 1e6)))

{

LightObj (pObj, 1);

ChoiceAttr (pObj);

LightObj (pObj, 0);

}

}

}

while (j);


ksGetLibraryAttrTypesArray - Получить массив типов атрибутов, находящихся в указанной библиотеке
ksGetLibraryAttrTypesArray  	Пример

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

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetLibraryAttrTypesArray.

Синтаксис:

reference ksGetLibraryAttrTypesArray (char * libname);

Входной параметр:

libName	- имя библиотеки типов атрибутов. Если libname = NULL, то типы атрибутов из текущего документа.
Возвращаемое значение:

указатель на динамический массив LIBRARY_ATTR_TYPE_ARR - массив типов атрибутов, находящихся в заданной библиотеке типов	- в случае удачного завершения.
0	- в случае неудачи.


ksGetLibraryAttrTypesArray - пример использования

//получим массив типов атрибутов в spc.lat

  reference typeArr = ksGetLibraryAttrTypesArray(("d:\\0\\Spc.lat"));   // полное имя библиотеки стилей

  if (typeArr) {

    char buf[128];

    //определим количество типов и отобразим на экране

    int count = GetArrayCount(typeArr);

    sprintf(buf, "count = %d", count);

    Message(buf);

    //в цикле получим информацию о каждом типе и отобразим на экране

    for (uint i = 0; i < count; i++) {

      LibraryAttrTypeParam par;

      GetArrayItem(typeArr, // указатель на массив

                    i,        // индекс в массиве (нумерация начинается с 0)

                    &par,     // указатель на структуру элемента

                    sizeof(LibraryAttrTypeParam));  // размер структуры элемента

      sprintf(buf, "ID = %f\nname=%s", par.typeId, par.name);

      Message(buf);

    }

  }


Функции работы с параметрическими переменными
Функции

ksGetDimensionVariableName

ksGetDocVariableArray

ksSetDocVariableArray

ksDestroyObjConstraint

ksGetObjConstraints

ksSetObjConstraint


ksGetDocVariableArray - Определить массив параметрических переменных
ksGetDocVariableArray	Пример

Определить массив параметрических переменных.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetDocVariableArray.

Синтаксис:

reference ksGetDocVariableArray (reference p);

Входной параметр:

p	- указатель на документ или вставку фрагмента.
Возвращаемое значение:

указатель на динамический массив структур VariableParam	- в случае успеха
0	- в случае неудачи


ksSetDocVariableArray - Заменить значения параметрических переменных
ksSetDocVariableArray  	Пример

Заменить значения параметрических переменных.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetDocVariableArray.

Синтаксис:

int  ksSetDocVariableArray (reference obj,

reference arr,

unsigned char setNote);

Входные параметры:

obj	- указатель на документ или вставку фрагмента,
arr	- указатель на динамический массив VARIABLE_ARR.
setNote	признак редактирования комментариев: 0 - комментарии не менять,  1 - комментарии менять.
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


Пример использования функций работы с параметрическими переменными
ksGetDocVariableArray, ksSetDocVariableArray - пример использования

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

reference doc = ksGetCurrentDocument(1); 	// 0 - любой документ,

// 1- только графический документ

// 2 - только спецификацию

if (doc)

{

char buf [250];

//получить массив внешних переменных документа

reference arrayVar =  ksGetDocVariableArray(doc); 	//указатель на документ

//или вставку фрагмента

for (int i=0, count = GetArrayCount(arrayVar); i < count; i++)

{

VariableParam  par;

//получить текущую переменную

GetArrayItem(arrayVar, i, &par, sizeof(VariableParam));

sprintf(buf, "имя = %s\nзначение = %f\nкомментарий = %s", par.name, par.value, par.note);

Message(buf);

par.value = 100;

strcat(par.note, "!!!");

//заменить текущую переменную в массиве

SetArrayItem(arrayVar, i, &par, sizeof(VariableParam));

}

//заменить значения  внешних переменных документа

ksSetDocVariableArray (doc,	// указатель на документ или вставку фрагмента

arrayVar,	// указатель на динамический массив VARIABLE_ARR

1);	// комментарии менять

}

else

Error ("Документ должен быть графическим");


ksSetObjConstraint - Установить параметрическую связь или ограничение
ksSetObjConstraint	Пример

Установить параметрическую связь или ограничение.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetObjConstraint.

Синтаксис:

int ksSetObjConstraint (reference obj,

ConstraintParam *par);

Входные параметры:

obj	- объект, на который накладывается связь или ограничение,
par	- указатель на структуру параметрической связи или ограничения ConstraintParam....
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksSetObjConstraint - пример использования

//Установить ограничение "равенство радиусов двух дуг/окружностей"

reference p;

RequestInfo  info;

//обнулить структуру  info;

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

double x, y;

info.prompt = "Укажите первую дугу или окружность";

int j = Cursor (&info, &x ,&y, 0);

if (j) {

if (ExistObj(p = FindObj (x, y, 1e6))) {

info.prompt = "Укажите вторую дугу или окружность";

j = Cursor (&info, &x ,&y, 0);

reference p1;

if (j) {

if (ExistObj (p1 = FindObj (x, y, 1e6))) {

ConstraintParam par;

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

par.constrType = CONSTRAINT_EQUAL_RADIUS;

par.partner = p1;

ksSetObjConstraint (p, &par);

}

}

}

}


ksGetObjConstraints - Получить параметрические связи и ограничения, наложенные на объект
ksGetObjConstraints	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetObjConstraints.

Синтаксис:

reference ksGetObjConstraints (reference obj);

Входной параметр:

obj	- указатель на объект,
Возвращаемое значение:

указатель на структуру параметров связей и ограничений ConstraintParam типа CONSTRAINT_ARR.	- в случае успеха,
0	- в случае неудачи.


ksDestroyObjConstraint - Удалить параметрическую связь или ограничение
ksDestroyObjConstraint	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDestroyObjConstraint.

Синтаксис:

int ksDestroyObjConstraint (reference obj,

ConstraintParam *par);

Входные параметры:

obj	- указатель на объект,
par	- указатель на структуру параметрической связи или ограничения ConstraintParam...
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksGetObjConstraints, ksDestroyObjConstraint - пример использования

static char *str [] = {"фиксировать точку", "точка на кривой",

"горизонталь", "вертикаль",

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

"перпендикулярность двух прямых или отрезков",

"равенство длин двух отрезков",

"равенство радиусов двух дуг/окружностей",

"выравнивать две точки по горизонтали",

"выравнивать две точки по вертикали",

"совпадение двух точек"};

reference p;

RequestInfo  info;

//обнулить структуру  info;

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

double x, y;

info.prompt = "Укажите объект";

int j = Cursor(&info, &x ,&y, 0);

if (j) {

if (ExistObj (p = FindObj (x, y, 1e6))) {

//вернуть ограничения данного объектка

reference arr = ksGetObjConstraints (p);

int count = GetArrayCount (arr);

char buf [255];

sprintf (buf, " число ограничений = %d ", count);

Message (buf);

ConstraintParam par;

for (int i = 0; i < count; i++) {

GetArrayItem (arr, i, &par, sizeof (ConstraintParam));

sprintf (buf, " constrType=%s ",str [par.constrType-1]);

Message (buf);

switch (par.constrType) {

case CONSTRAINT_POINT_ON_CURVE : {	//точка на кривой

LightObj (par.partner, 1);

sprintf (buf, "Подсветили партнера->index=%d ", par.partnerIndex);

Message (buf);

LightObj (par.partner, 0);

break;

}

case CONSTRAINT_MERGE_POINTS :	//объединение точек

case CONSTRAINT_HOR_ALIGN_POINTS :	//выравнивать точки по оси X

case CONSTRAINT_VER_ALIGN_POINTS : { //выравнивать точки по оси Y

LightObj(par.partner, 1);

sprintf (buf, "Подсветили партнера->index=%d\n наш index = %d ",

par.partnerIndex, par.index);

Message (buf);

LightObj (par.partner, 0);

break;

          	}

case CONSTRAINT_FIXED_POINT : {	//фиксировать точку

sprintf (buf, "наш index = %d ", par.partnerIndex);

Message (buf);

break;

}

case CONSTRAINT_PARALLEL :	//параллельность двух

//прямых или отрезков

case CONSTRAINT_PERPENDICULAR :	//перпендикулярность двух

//прямых или отрезков

case CONSTRAINT_EQUAL_LENGTH :	//равенство длин двух отрезков

case CONSTRAINT_EQUAL_RADIUS : { 	//равенство радиусов двух

//дуг/окружностей

LightObj (par.partner, 1);

Message ("Подсветили партнера");

LightObj (par.partner, 0);

break;

          	}

        	}

if (YesNo("Удалить ограничение?"))

ksDestroyObjConstraint (p, &par);

}

}

 }


ksGetDimensionVariableName - Получить имя параметрической переменной размера
ksGetDimensionVariableName	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetDimensionVariableName.

Синтаксис:

int ksGetDimensionVariableName (reference dimObj,

char * varName,

int size);

Входной параметр:

dimObj	- указатель на размер.
Выходной параметр:

varName	- имя переменной, если размеру поставлена в соответствие переменная,
size	- размер буфера, выделенного под имя переменной
пустая строка	- если размеру не поставлена в соответствие переменная  или в случае неудачи
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.


ksGetDimensionVariableName - пример использования

reference iter = ::CreateIterator(LDIMENSION_OBJ, 0); // создаем итератор по линейным размерам

  if (iter) {

  	reference obj = ::MoveIterator(iter, 'F');          // первый объект

char buf[128];                                        // буфер для имени переменной

    while (::ExistObj(obj)) {                           // размер существует

if (::ksGetDimensionVariableName(obj, buf, 128))  // получим имя параметрической переменной размера

      	::Message(buf);                                 // выведем имя переменнной

      else                                                // у размера нет переменной

      	::Message("Размер не имеет переменной");        // сообщение

    	obj = ::MoveIterator(iter, 'N');                  // следующий объект

    }

  	::DeleteIterator(iter);                             // удалим итератор


Функции работы с фрагментами

Функции данного раздела позволяют работать с фрагментами и библиотеками фрагментов.


Функции работы с фрагментами
Функции

CloseLocalFragmentDefinition

FragmentDefinition

InsertFragment

ksGetMacroWaitDblClickEdit

ksInsertFragmentEx

ksReadFragmentToGroup

ksReadFragmentToGroupEx

ksSetMacroWaitDblClickEdit

LocalFragmentDefinition

ReadFragment

WriteFragment


ksGetMacroWaitDblClickEdit - Получить режим ожидания DblClick
ksGetMacroWaitDblClickEdit

Получить режим ожидания DblClick при редактировании макрообъекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetMacroWaitDblClickEdit.

Синтаксис:

extern "C" long LIB_FUNC ksGetMacroWaitDblClickEdit (reference ref);

Входные параметры:

ref	- указатель на макроэлемент.
Возвращаемое значение:

1	- режим ожидания DblClick включен,
0	- режим ожидания DblClick выключен,
Примечание:

Макрообъект созданный библиотекой может редактироваться двумя способами:
- по первому щелчку мыши - через характерные точки и\или интерфейс внешних воздействий;
- по двойному щелчку - через команду библиотеки.

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

При выключенном режиме ожидания DblClick пауза отсутствует и нажатие всегда интерпретируется как одинарное нажатие.


ksSetMacroWaitDblClickEdit - Изменить режим ожидания DblClick
ksSetMacroWaitDblClickEdit

Изменить режим ожидания DblClick при редактировании макрообъекта.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSetMacroWaitDblClickEdit.

Синтаксис:

extern "C" long LIB_FUNC ksSetMacroWaitDblClickEdit (reference ref, long waitDblClick);

Входные параметры:

ref	- указатель на макроэлемент.
waitDblClick	- режим ожидания DblClick (1 - включить, 0 - выключить)
Возвращаемое значение:

1	- в случае успеха,
0	- в случае неудачи.
Примечание:

Макрообъект созданный библиотекой может редактироваться двумя способами:
- по первому щелчку мыши - через характерные точки и\или интерфейс внешних воздействий;
- по двойному щелчку - через команду библиотеки.

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

При выключенном режиме ожидания DblClick пауза отсутствует и нажатие всегда интерпретируется как одинарное нажатие.


ReadFragment - Прочитать фрагмент в текущий вид
ReadFragment  	Пример

Прочитать фрагмент в текущий вид.

Аналог данной функции при использовании Automation - метод ksFragment::ksReadFragment.

Синтаксис:

int ReadFragment (char *fileName, unsigned char currentLayer, PlacementParam * par);

Входные параметры:

fileName	- имя фрагмента,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на структуру параметров привязки
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.

В этом случае фрагмент берется из библиотеки фрагментов.


Пример использования функций работы с фрагментами

void ReadFragment_Example (void) {

PlacementParam  par;

par.xBase = 30;  par.yBase = 40;

par.ang   = 0;  par.scale = 1 ;

ReadFragment("c:\\kompas5\\1.frw", 0, &par);

//Пример вставки фрагмента  внешней ссылкой

//определим фрагмент для вставки

pDefFrg = FragmentDefinition("c:\\kompas5\\1.frw", "frw1", 1);

if(pDefFrg) {

PlacementParam  par;

par.xBase = 80;  par.yBase = 70;

par.ang   = 45;   par.scale = 2 ;

reference  pInsFrg =  InsertFragment(pDefFrg, 0, &par);

LightObj (pInsFrg, 1);

Message("вставка фрагмента внешней ссылкой");

LightObj (pInsFrg, 0);

}

// Пример вставки локального фрагмента

// определим фрагмент для вставки

reference pDefFrg = 0;

//определим локальный фрагмент

 if(LocalFragmentDefinition("local")) {

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

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

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

pDefFrg =  CloseLocalFragmentDefinition();

}

if(pDefFrg) {

PlacementParam  par;

par.xBase = 100; par.yBase = 40;

par.ang   = 45;  par.scale = 1 ;

reference  p =  InsertFragment(pDefFrg, 0, &par);

LightObj (p, 1);

Message("вставка локального фрагмента");

LightObj (p, 0);

}

}; /* ReadFragment */


FragmentDefinition - Определить данные для вставки фрагмента
FragmentDefinition  	Пример

Определить данные для вставки фрагмента.

Аналог данной функции при использовании Automation - метод ksFragment::ksFragmentDefinition.

Синтаксис:

reference   FragmentDefinition (char * fileName,

char * comment,

unsigned char insertType);

Входные параметры:

fileName	- имя файла фрагмента,
comment	- имя вставки,
insertType	- тип вставки (действителен для внешнего фрагмента):  0 - взять в документ,  1 - внешней ссылкой.
Возвращаемое значение:

указатель на определение фрагмента	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция определяет данные для вставки фрагмента (внешнего или находящегося непосредственно в документе) с указанным именем по ссылке.

2. Непосредственно вставка фрагмента (вставка ссылки) производится

при помощи метода ksFragment::ksInsertFragment.

3. Допускается задание имени фрагмента следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где:
- c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

- |детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

- фланец - имя фрагмента.

В этом случае определение создается для фрагмента из библиотеки фрагментов.

4. Определение для данного фрагмента одно; вставок может быть сколько угодно.


InsertFragment - Вставить ссылку на фрагмент
InsertFragment	Пример

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

Замечание:

Функция устарела, рекомендуется использовать вместо нее функцию ksInsertFragmentEx.

Аналог данной функции при использовании Automation - метод ksFragment::ksInsertFragment.

Синтаксис:

reference InsertFragment (reference p,

unsigned char currentLayer,

PlacementParam * par);

Входные параметры:

p	- указатель на фрагмент,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на структуру параметров привязки
Возвращаемое значение:

указатель на вставку фрагмента	- в случае успешного завершения,
0	- в случае неудачи.


ksInsertFragmentEx - Вставить фрагмент в документ
ksInsertFragmentEx

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

Аналог данной функции при использовании Automation - метод ksFragment::ksInsertFragmentEx.

Синтаксис:

reference ksInsertFragmentEx (reference p,

unsigned char currentLayer,

PlacementParam * par,

unsigned char scaleProjLinesSize);

Входные параметры:

p	- указатель на фрагмент,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на структуру параметров привязки
scaleProjLinesSize	- признак масштабирования длины выносных линий размеров: 1 - выносные линии масштабируются, 0 - выносные линии не масштабируются.
Возвращаемое значение:

указатель на вставку фрагмента	- в случае успешного завершения,
0	- в случае неудачи.


WriteFragment - Запись группы во фрагмент
WriteFragment  	Пример

Записать группу во фрагмент.

Аналог данной функции при использовании Automation - метод ksFragment::ksWriteFragment.

Синтаксис:

int WriteFragment (reference gr,

char *filename,

char *comment,

double xb,

double yb);

Входные параметры:

gr	- указатель на группу (0 - записывается группа выделения)
filename	- имя файла фрагмента,
comment	- комментарий для фрагмента,
xb, yb	- координаты точки привязки.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


WriteFragment - пример использования

//пример использования WriteFragment

     double x, y, x1,y1;

     RequestInfo info;

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

     info.prompt = "Укажите начальную точку окна";

     if (Cursor(&info, &x, &y, 0))

     {

     	info.prompt = "Укажите конечную точку окна";

 	if (Cursor(&info, &x1, &y1, 0))

{

//создадим рабочую группу

reference gr = NewGroup(0);

         	EndGroup();

         	if (SelectGroup(gr, 1 ,x, y,  x1, y1))

{

            	LightObj(gr, 1);//подсветим выделенную группу

            	char name[128];

            	//запросить имя файла фрагмента

            	if(SaveFile("*.frw",0,0, name,128))

{

              	info.prompt = "Укажите точку привязки фрагмента";

              	if (Cursor(&info, &x, &y, 0))

{

//записать содержимое группы во фрагмент

WriteFragment(gr,  name, "фрагмент из рабочей группы" ,x, y);

                	Message("Фрагмент записан");

              	}

            	}

            	LightObj(gr, 0);//снять подсветку выделенной группы

         	}

       	}

     }


LocalFragmentDefinition - Начать определение локального фрагмента
LocalFragmentDefinition  	Пример

Начать определение локального фрагмента.

Аналог данной функции при использовании Automation - метод ksFragment::ksLocalFragmentDefinition.

Синтаксис:

int LocalFragmentDefinition(char * comment);

Входной параметр:

comment	- имя вставки
Возвращаемое значение:

указатель на определение фрагмента	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Вставка ссылки на фрагмент производится с помощью функции InsertFragment. Указатель на определение фрагмента возвращается при окончании описания - функцией CloseLocalFragmentDefinition. Отдельного файла фрагмента нет; "тело" фрагмента хранится в документе.


CloseLocalFragmentDefinition - Закончить определение локального фрагмента
CloseLocalFragmentDefinition  	Пример

Закончить определение локального фрагмента.

Аналог данной функции при использовании Automation - метод ksFragment::ksCloseLocalFragmentDefinition.

Синтаксис:

reference CloseLocalFragmentDefinition (void);

Возвращаемое значение:

указатель на определение фрагмента	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Все объекты вида, вводимые между функциями LocalFragmentDefinition и CloseLocalFragmentDefinition, принадлежат локальному фрагменту.

2. Возвращаемый указатель используется в функциях InsertFragment, DeleteObj.


ksReadFragmentToGroup- вставить фрагмент россыпью во временную группу
ksReadFragmentToGroup 	Пример

Вставить фрагмент россыпью во временную группу.

Замечание:

Функция устарела, рекомендуется использовать вместо нее функцию ksReadFragmentToGroupEx.

Аналог данной функции при использовании Automation - метод ksFragment::ksReadFragmentToGroup.

Синтаксис:

reference ksReadFragmentToGroup (char * fileName,

unsigned char  curentLayer,

PlacementParam *  par);

Входные параметры:

fileName	- имя фрагмента,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на структуру параметров привязки
Возвращаемое значение:

указатель на временную группу	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где:
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.

В этом случае фрагмент берется из библиотеки фрагментов.


ksReadFragmentToGroup_example - пример использования
ksReadFragmentToGroup, ksChoiceFile - пример использования

char frwName[250];

int j1;

do

{

//выберем  фрагмент

if ((j1 = ksChoiceFile ("*.frw","фрагменты(*.frw)|*.frw|Все файлы (*.*)|*.*|",

frwName,128,1))!=0)

{

double x, y;

//подготовим структуры фанома и запросов для Placement

struct Phantom  rub;

rub.type1.xBase = 0;

rub.type1.yBase = 0;

rub.type1.scale = 1;

rub.phType = 1;

//во временную группу положим вставку фрагмента,

//взятую из библиотеки фрагментов

PlacementParam  par;

par.xBase = 0;

par.yBase = 0;

par.ang = 0;

par.scale = 1 ;

int j;

do

{

//если нужно вставить несколько фрагментов,

//группу лучше порождать новую,

//так как вместе с геометрией могут прийти атрибуты,

//объекты спецификации, стили, которые связаны с геометрией.

//При простом копировании группы эта связь будет потеряна.

rub.type1.gr  = ksReadFragmentToGroup (frwName,	// имя фрагмента

0,	// на свои слои,

&par);	//параметры привязки

if (rub.type1.gr && (j = Placement(NULL, &x, &y, &rub.type1.ang, &rub))!=0)

{

//сдвигаем группу

MoveObj(rub.type1.gr, x, y);

//поворачиваем группу

if (fabs(rub.type1.ang) > 0.001)

RotateObj (rub.type1.gr, x, y, rub.type1.ang);

//ставим группу в модель

StoreTmpGroup (rub.type1.gr);

ClearGroup (rub.type1.gr);

DeleteObj (rub.type1.gr);

}

else

{

if (rub.type1.gr)

DeleteObj(rub.type1.gr);

j = 0;

}

}

while (j);

}

}

while(j1);


ksReadFragmentToGroupEx - Вставка фрагмента во временную группу
ksReadFragmentToGroupEx

Вставить фрагмент россыпью во временную группу.

Аналог данной функции при использовании Automation - метод ksFragment::ksReadFragmentToGroupEx.

Синтаксис:

reference ksReadFragmentToGroupEx (char * fileName,

unsigned char  curentLayer,

PlacementParam *  par.

unsigned char scaleProjLinesSize);

Входные параметры:

fileName	- имя фрагмента,
curentLayer	- тип размещения объектов фрагмента по слоям: 0 - на "свои" слои,  1- на текущий слой,
par	- указатель на структуру параметров привязки
scaleProjLinesSize	- признак масштабирования длины выносных линий размеров: 1 - выносные линии масштабируются, 0 - выносные линии не масштабируются.
Возвращаемое значение:

указатель на временную группу	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.

В этом случае фрагмент берется из библиотеки фрагментов.


Функции работы с библиотекой фрагментов

ksAddFragmentToLibrary

ksCheckFragmentLibrary

ksChoiceFragmentFromLib

ksExistFragmentInLibrary

ksFragmentLibrary

ksIsLibraryEnabled


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksIsLibraryEnabled.

Синтаксис:

int ksIsLibraryEnabled (char * libName);

Входные параметры:

libName	- имя библиотеки либо полное, либо относительно директория LIBS.
Возвращаемое значение:

1	- выполнять библиотеку можно,
0	- выполнять библиотеку нельзя.
Примечание:

Функция применима для библиотек rtw, библиотек фрагментов lfr, библиотек моделей l3d


ksChoiceFragmentFromLib- выбор имени фрагмента, хранящегося в библиотеке фрагментов
ksChoiceFragmentFromLib 	Пример

Выбрать имя фрагмента, хранящегося в библиотеке фрагментов.

Аналог данной функции при использовании Automation - метод ksFragmentLibrary::ksChoiceFragmentFromLib

Синтаксис:

int ksChoiceFragmentFromLib (char * fileLibFrw,

char * nameFrw,

unsigned int size);

Входные параметры:

fileLibFrw	- полное имя библиотеки фрагментов
size	- размер буфера фрагмента
Выходные параметры:

nameFrw	- имя фрагмента
Возвращаемое значение:

3	- имя фрагмента,
2	- имя папки,
1	- корень библиотеки фрагментов,
0	- в случае неудачи.
Примечание:

Библиотека фрагментов открывается в режиме диалога. Ее редактирование запрещено. Нажатие <Enter> - выбор имени фрагмента. <Esc> - отказ.


ksChoiceFragmentFromLib - пример использования

char libName[250];

int j1;

//выберем  библиотеку фрагментов

if (ChoiceFile ("*.lfr","Библиотки фрагментов(*.lfr)|*.lfr|Все файлы (*.*)|*.*|", libName, 128))

{

char buf[250];

do

{

//выбрать фрагмент в библиотеке фрагментов

if ((j1 = ksChoiceFragmentFromLib(libName, buf, 250))!=0)

{

//выделим имя вставки

char * insertName = strrchr (buf, '|');

if (insertName)

{

double x, y;

//подготовим структуры фантома и запросов для Placement

struct Phantom rub;

rub.type1.xBase = 0;

rub.type1.yBase = 0;

rub.type1.scale = 1;

rub.phType      = 1;

reference pDefFrg;

// создадим описание  вставки фрагментов

pDefFrg = FragmentDefinition (buf,	//имя файла фрагмента

insertName+1,	//имя вставки

1);	// внешней ссылкой

if (pDefFrg)

{

//во временную группу положим вставку фрагмента,

//взятую из библиотеки фрагментов

rub.type1.gr = NewGroup (1);	// временная группа

PlacementParam  par;

par.xBase = 0;

par.yBase = 0;

par.ang   = 0;

par.scale = 1 ;

//создаем объект "вставка фрагмента"

reference p = InsertFragment (pDefFrg,	// Указатель

//определения  фрагмента

0,	// на свои слои

&par);	//параметры привязки

EndGroup();

int j;

do

{

rub.type1.ang  = 0;

//запрос точки и угла поворота фрагмента

if ((j = Placement (NULL, &x, &y, &rub.type1.ang, &rub))!=0)

{

CopyObj (p,	// указатель на графический объект

0,0,	// базовая точка объекта

x, y,	// точка, в которую копировать

1,	// масштаб

rub.type1.ang );	// угол поворота а градусах

}

}

while (j);

DeleteObj (rub.type1.gr);

}

else

Error ("ошибка создания описания вставки фрагмента");

}

else

Error("имя вставки не определено");

}

}

while(j1);

}


ksExistFragmentInLibrary - Проверка существования указанного фрагмента в библиотеке
ksExistFragmentInLibrary 	Пример

Проверить наличие указанного фрагмента или раздела в библиотеке фрагментов.

Аналог данной функции при использовании Automation - метод ksFragmentLibrary::ksExistFragmentInLibrary.

Синтаксис:

int ksExistFragmentInLibrary (char *frwName);

Входной параметр:

frwName	- имя фрагмента
Возвращаемое значение:

1	- указанный фрагмент или папка есть в библиотеке,
0	- указанного фрагмента или папки нет,
-1	- нет указанной библиотеки.
Примечание:

Пример формирования имени фрагмента:

"c:\_f\gr\lib1.lfr|детали|литье|фланец", где

c:\_f\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье|- разделы, подразделы внутри библиотеки,

фланец - имя фрагмента или имя подраздела).


ksExistFragmentInLibrary - пример использования

char frwName [250];

 strcpy (frwName, "C:\\0\\Детали.lfr|Фланцы|Исполнение 1");

 if (ReadString ("Введите имя фрагмента или папки",   // строка приглашения

                  frwName, 250)) {

    int j =  ksExistFragmentInLibrary(frwName);

    char buf [250];

    sprintf (buf, "%s\n%s",frwName, j==0 ? "нет фрагмента или папки" : j==-1 ? "нет библиотеки" : "фрагмент или папка есть");

    Message(buf);

  }


ksFragmentLibrary - Открыть библиотекарь фрагментов
ksFragmentLibrary 	Пример

Открыть библиотекарь фрагментов

Аналог данной функции при использовании Automation - метод ёksFragmentLibrary::ksFragmentLibraryOperation.

Синтаксис:

int ksFragmentLibrary (char * libName, int type);

Входные параметры:

libName	- имя файла библиотеки фрагментов,
type	- тип действия с библиотекой фрагментов.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При выполнении операций типа -1, 0, 1, 4, 5 libName - полное имя файла библиотеки фрагментов.

При выполнении операций типа 2, 3 libName - полное имя файла библиотеки фрагментов + путь внутри библиотеки с именем редактируемого фрагмента.


ksFragmentLibrary_example - пример использования
ksFragmentLibrary - пример использования

char libName[250];

int j1;

//выберем библиотеку фрагментов

if (ChoiceFile ("*.lfr","Библиотки фрагментов(*.lfr)|*.lfr|Все файлы (*.*)|*.*|", libName, 128))

{

char buf[250];

do

{

//выбрать фрагмент в библиотеке фрагментов

if ((j1 = ksChoiceFragmentFromLib(libName, buf, 250))!=0)

{

//выделим имя вставки

char * insertName = strrchr (buf, '|');

if (insertName)

{

double x, y;

//подготовим структуры фантома и запросов для Placement

struct Phantom  rub;

rub.type1.xBase = 0;

rub.type1.yBase = 0;

rub.type1.scale = 1;

rub.phType = 1;

reference pDefFrg;

// создадим описание  вставки фрагментов

pDefFrg = FragmentDefinition (buf,	//имя файла фрагмента

insertName+1,	//имя вставки

1);	// внешней ссылкой

if (pDefFrg)

{

//во временную группу положим вставку фрагмента,

//взятую из библиотеки фрагментов

rub.type1.gr = NewGroup (1);	// временная группа

PlacementParam  par;

par.xBase = 0;

par.yBase = 0;

par.ang   = 0;

par.scale = 1 ;

//создаем объект "вставка фрагмента"

reference  p = InsertFragment (pDefFrg,	// указатель определения

//фрагмента

0,	//на свои слои

&par);	//параметры привязки

EndGroup();

int j;

do

{

rub.type1.ang  = 0;

//запрос точки и угла поворота фрагмента

if ((j = Placement(NULL, &x, &y, &rub.type1.ang, &rub))!=0)

{

CopyObj (p,	// указатель на графический объект

0,0,	// базовая точка объекта

x, y,	//точка, куда копировать

1,	// масштаб

rub.type1.ang);// угол поворота а градусах

}

}

while (j);

DeleteObj (rub.type1.gr);

}

else

Error ("Ошибка создания описания вставки фрагмента");

}

else

Error("Имя вставки не определено");

}

}

while (j1);

}


ksAddFragmentToLibrary- добавить фрагмент в библиотеку фрагментов
ksAddFragmentToLibrary 	Пример

Добавить фрагмент в библиотеку фрагментов

Аналог данной функции при использовании Automation - метод ksFragmentLibrary::ksAddFragmentToLibrary.

Синтаксис:

int ksAddFragmentToLibrary (char * libName, char * frwName);

Входные параметры:

libName	- имя фрагмента в библиотеке,
frwName	- имя файла фрагмента.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Допускается задание имени фрагмента следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец",
где:
c:\gr\lib1.lfr - имя файла библиотеки фрагментов,

|детали|литье| - разделы, подразделы внутри библиотеки фрагментов,

фланец - имя фрагмента.


ksAddFragmentToLibrary_example - пример использования
ksAddFragmentToLibrary - пример использования

char libName[250];

char buf [250];

//выберем  библиотеку фрагментов

if (ChoiceFile("*.lfr","Библиотки фрагментов(*.lfr)|*.lfr|Все файлы (*.*)|*.*|", libName, 128))

{

RequestInfo  info;

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

info.commands = "!Новый_фрагмент !Редактировать_фрагмент !Удалить_фрагмент ";

int j;

int typeEdit;

string nameFrg;

do

{

j = CommandWindow(&info);

switch (j)

{

case 1:	//!Новый_фрагмент

if (ReadString("Введите имя нового фрагмента",	// строка приглашения

buf,	//возвращаемая строка

250))	// допустимая длина

// строки

{

nameFrg = libName;

if (buf[0] != '|')

nameFrg += "|";

nameFrg += buf;

typeEdit = 2;	//запустить на редактирование

}

else

typeEdit = 0;

break;

case 2:	//Редактировать_фрагмент

case 3:	//Удалить_фрагмент

//выберем имя файла фрагмента

if ((j == 2 || j == 3) && ksChoiceFragmentFromLib(libName, buf, 250)!=0)

{

nameFrg = buf;

typeEdit = j;	// 2- запустить на редактирование, 3-удалить

}

else

typeEdit = 0;

break;

}

if (j > 0 && typeEdit)

{

if (::ksFragmentLibrary((char*)nameFrg.c_str(), typeEdit))

{

if (typeEdit == 2)

{

::ksFragmentLibrary ((char *)nameFrg.c_str(), 4);

//минимизировать окно библиотекаря

//редактируем фрагмент из библиотеки

Text (0, 100,	//точка привязки текста

0,	//угол наклона текста

5,	//высота текста

1,	//сужение текста

0,	//свойства строки

"Редактируем фрагмент из библиотеки");	//строка символов

LineSeg (0, 100, 110, 100, 1);

//редактируем фрагмент в интерактивном режиме

//после выбора в меню "Сервис" команды

//"Закончить редактирование фрагмента",

//возвращаемся в библиотеку

::SystemControlStart("Закончить редактирование фрагмента");

::ksFragmentLibrary((char *)nameFrg.c_str(), 0); //закрыть

//c сохранением

}

}

else

MessageBoxResult();

}

}

while (j != -1);

}


ksCheckFragmentLibrary - Проверить, открыта ли библиотека фрагментов
ksCheckFragmentLibrary 	Пример

Проверить, открыта ли библиотека фрагментов

Аналог данной функции при использовании Automation - метод ksFragmentLibrary::ksCheckFragmentLibrary.

Синтаксис:

int ksCheckFragmentLibrary (char * libName, unsigned char possibleMessage);

Входные параметры:

libName	- имя файла библиотеки фрагментов,
possibleMessage	- признак выдачи сообщения: - 1 - сообщать, если библиотека уже открыта, - 0 - не сообщать.
Возвращаемое значение:

1	- если библиотека открыта,
0	- если библиотека не открыта,


ksCheckFragmentLibrary_example - пример использования
ksCheckFragmentLibrary - пример использования

if (!ksCheckFragmentLibrary ("1.lfr",	// имя файла библиотеки фрагментов

1))	// сообщать, если файл уже открыт

Message ("Библиотека 1.lfr из текущего директория  не загружена");


Функции работы со спецификацией

Функции данного раздела позволяют работать с документом-спецификацией.


Функции

CreateSpcIterator

D3GetSpcObjForGeomWithLimit

D3SpcIncludePart

ksAddSpcDescription

ksD3GetSpcObjGeometry

ksDeleteSpcDescription

ksEditWindowSpcObject

ksGetCurrentSpcObject

ksGetSpcColumnNumb

ksGetSpcColumnType

ksGetSpcDescription

ksGetSpcDocumentPagesCount

ksGetSpcObject

ksGetSpcObjectColumnText

ksGetSpcObjectNumber

ksGetSpcObjForGeom

ksGetSpcObjForGeomWithLimit

ksGetSpcObjGeometry

ksGetSpcSectionName

ksGetSpcSheetSB

ksGetSpcStyleParam

ksGetSpcTableColumn

ksGetTuningSpcStyleParam

ksGetWidthColumnSpc

ksIsModuleSpecificationActive

ksModuleSpecification

ksSetCurrentSpcObject

ksSetSpcDescription

ksSetSpcObjectColumnText

ksSetSpcObjectColumnTextEx

ksSetSpcSheetSB

ksSetTuningSpcStyleParam

ksSpcChangeValue

ksSpcCount

ksSpcIncludeReference

ksSpcMassa

ksSpcObjectCreate

ksSpcObjectEdit

ksSpcObjectEnd

ksSpcPosition

ksSpcVisible

ksSpecificationOnSheet


ksSpcObjectEdit - Принять объект спецификации для редактирования
ksSpcObjectEdit 	Пример

Редактировать объект спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcObjectEdit.

Синтаксис:

int  ksSpcObjectEdit (reference spcObj);

Входной параметр:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

1. После вызова данного метода у объекта можно изменить атрибуты, геометрию, линии выноски, позицию, массу.

2. Редактирование объекта завершится вызовом функции ksSpcObjectEnd.


ksSpcObjectEnd - Завершить объект спецификации
ksSpcObjectEnd 	Пример

Завершить создание или редактирование объекта спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcObjectEnd.

Синтаксис:

reference ksSpcObjectEnd();

Возвращаемое значение:

	указатель на объект спецификации.
Примечание:

1. Все изменения будут занесены в документ.

2. Если объект новый,  он подключается к соответствующему описанию спецификации текущего документа.


ksGetSpcObjForGeomWithLimit - Получить указатель на объект спецификации
ksGetSpcObjForGeomWithLimit 	Пример

Получить указатель на объект спецификации, подключенный к данному графическому объекту с ограничениями по номеру раздела и типу атрибута.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcObjForGeomWithLimit.

Синтаксис:

reference ksGetSpcObjForGeomWithLimit (char * nameLib,

unsigned int numb,

reference obj,

unsigned char equal,

unsigned char first,

unsigned short section,

double attrTypeNumb);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации в библиотеке,
obj	- указатель на графический объект или группу объектов (если obj = 0, функция работает с макрообъектом редактирования),
equal	- признак вхождения геометрии в состав объекта: 1 - геометрия идентична геометрии объекта спецификации,  0 - геометрия входит в объект спецификации.
first	- 1 -первый объект, 0 - следующий объект
section	- номер раздела, в котором нужно найти объект (0 - номер не ограничивается),
attrTypeNumb	- номер типа атрибута, для которого нужно найти объект (0 - номер не ограничивается).
Возвращаемое значение:

	указатель на объект спецификации.
Примечания:

1. Данный метод - только для графических документов.

2. В настоящий момент метод реализован только для equal = 1.


ksGetSpcObjForGeomWithLimit - пример использования

reference pObj;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите макрообъект болт";

reference g;

int j = Cursor (&info, &x ,&y, 0);

if (j)

{

if (ExistObj(pObj = FindObj(x, y, 1e6)) && GetObjParam(pObj, 0, 0, 0) == MACRO_OBJ )

{

//найдем объект спецификации по заданной геометрии

reference spcObj = ::ksGetSpcObjForGeomWithLimit ("graphic.lyt",	//имя

//библиотеки стилей

1,	//номер

//стиля спецификации

pObj ,

0,	//присланная

//геометрия входит

// в объект спецификации

1, 	//-первый объект

25,	//номер раздела

313277777065.0);

if (spcObj)

{

char buf[TEXT_LENGTH];

//получим наименование объекта спецификации

ksGetSpcObjectColumnText (spcObj,	//объект спецификации

SPC_CLM_NAME ,	//тип колонки

1,	//номер колонки данного типа

1,	//номер блока

buf,	//указатель

TEXT_LENGTH);	//длина строки s

Message(buf);

}

else

Error("Это не объект спецификации Болт");

}

else

Error("Это не макрообъект");

}


ksSpcChangeValue - Изменить значение компоненты
ksSpcChangeValue 	Пример

Изменить значение компоненты с номером itemNumb в колонке с номером colNumb.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcChangeValue.

Синтаксис:

int ksSpcChangeValue (unsigned int colNumb,
unsigned int itemNumb,
void *val,
unsigned char typeVal);

Входные параметры:

colNumb	- номер колонки, начиная с единицы,
itemNumb	- номер компоненты, начиная с единицы,
userPars	- указатель на значение,
typeVal	- тип данных.
Типы данных...

Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.- в случае неудачи.
Примечания:

1. Функция работает в режиме создания нового или редактирования существующего объекта спецификации.

2. Если typeVal - запись (RECORD_ATTR_TYPE), в колонке может быть несколько компонент и itemNumb может быть не равен 1.


ksSpcVisible - Показать компоненту
ksSpcVisible 	Пример

Показать компоненту.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcVisible.

Синтаксис:

int ksSpcVisible (unsigned int colNumb,
unsigned int itemNumb,
unsigned char flagOn);

Входные параметры:

colNumb	- номер колонки, начиная с единицы,
itemNumb	- номер компоненты, начиная с единицы,
flagOn	- признак видимости компонента: 1 -включить,  0- выключить.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.- в случае неудачи.
Примечания:

1. Функция работает в режиме создания нового или редактирования существующего объекта спецификации.

2. В случае записи в колонке может быть несколько компонент и itemNumb может быть не равен 1.


ksSpcMassa - Установить  массу детали
ksSpcMassa 	Пример

Установить массу детали.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcMassa.

Синтаксис:

int ksSpcMassa (char * sMassa);

Выходной параметр:

sMassa	- строка с массой детали.
Возвращаемое значение:

1	- в случае удачного завершения (если в объекте существует колонка с типом "масса").
0	- в случае неудачи.
Примечание:

Функция работает в режиме создания нового или редактирования существующего объекта спецификации


ksSpcCount - Установить количество детали для определенного исполнения
ksSpcCount 	Пример

Установить количество деталей для определенного исполнения.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcCount.

Синтаксис:

int ksSpcCount (unsigned char ispoln, char * sCount);

Входные параметры:

ispoln	- номер исполнения, начиная с 1,
Входные параметры:

sCount	- количество деталей.
Возвращаемое значение:

1	- в случае удачного завершения (если в объекте существует колонка с типом "количество").
0	- в случае неудачи.


ksSpcPosition - Установить номер позиции
ksSpcPosition 	Пример

Установить  номер позиции.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcPosition.

Синтаксис:

int ksSpcPosition (unsigned short pos);

Входной параметр:

pos	- номер позиции.
Возвращаемое значение:

1	- в случае удачного завершения (если в объекте существует колонка с типом "позициия").
0	- в случае неудачи.


ksSpcIncludeReference - Добавить или изменить геометрию
ksSpcIncludeReference 	Пример

Добавить или изменить геометрию или линии-выноски в объекте спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcIncludeReference.

Синтаксис:

int ksSpcIncludeReference (reference obj, unsigned char clear);

Входные параметры:

obj	- группа объектов или объект вида,
clear	- признак обработки существующей геометрии объекта спецификации: 1 - удалить геометрию,  0 - добавить новые объекты к существующей геометрии.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksGetSpcObjForGeom - Получить указатель  объекта
ksGetSpcObjForGeom 	Пример

Получить указатель объекта СП по геометрии для текущего графического документа.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcObjForGeom.

Синтаксис:

reference ksGetSpcObjForGeom (char * nameLib,
unsigned int numb,
reference obj,
unsigned char equal,
unsigned char first);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации в библиотеке,
obj	- указатель на графический объект или группу объектов (0 - макрообъект редактирования),
equal	- признак вхождения геометрии в состав объекта: 1 - геометрия идентична геометрии объекта спецификации,  0 - геометрия входит в объект спецификации.
first	- 1 -первый объект, 0 - следующий объект
Возвращаемое значение:

	указатель на объект спецификации.
Примечания:

1. Данный метод - только для графических документов.

2. В настоящий момент метод реализован только для equal = 1.


ksEditWindowSpcObject - Редактирование объекта спецификации
ksEditWindowSpcObject 	Пример

Редактирование объекта спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksEditWindowSpcObject.

Синтаксис:

bool  ksEditWindowSpcObject (reference spcObj);

Входной параметр:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

1. Функция открывает диалог редактирования для объекта спецификации, расположенного в графическом документе.

2. Функция запускает процесс. Так как система может работать только с одним процессом, нужно завершить другие процессные функции Cursor, Placement, CommandWindow, ksEditViewObject, ksCreateViewObject;


ksGetSpcObjectNumber - Выдать уникальный номер объекта спецификации
ksGetSpcObjectNumber 	Пример

Выдать уникальный номер объекта спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcObjectNumber.

Синтаксис:

double ksGetSpcObjectNumber (reference spcObj);

Входной параметр:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

	уникальный номер объекта спецификации.


ksGetSpcObject - Выдать объект спецификации по номеру
ksGetSpcObject

Выдать объект спецификации по номеру.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcObject.

Синтаксис:

reference ksGetSpcObject (double objNumb);

Входной параметр:

objNumb	- уникальный номер объекта спецификации.
Возвращаемое значение:

	указатель на объект спецификации.


CreateSpcIterator - Создать итератор для перебора объектов спецификации
CreateSpcIterator 	Пример

Создать итератор для перебора объектов спецификации.

Аналог данной функции при использовании Automation - метод ksIterator::ksCreateSpcIterator.

Синтаксис:

reference CreateSpcIterator (char * nameLib,
unsigned int styleNumb,
int spcObjType);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
styleNumb	- номер стиля спецификации в библиотеке,
spcObjType	- тип объектов: 0 - базовые, 1 - вспомогательные, 2 - базовые и вспомагательные из сортированного массива, 3 - все объекты.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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

2. В документе-спецификации параметры nameLib и styleNumb не используются (т.к. все объекты в ней создаются по единственному описанию, однозначно определяемому текущим стилем).


CreateSpcIterator - пример использования
CreateSpcIterator, ksGetSpcObjectColumnText, ksSetSpcObjectColumnText - пример использования

reference spcObj = 0;

double numbObj; //уникальный номер объекта

  //создадим объект спецификации

  if( ::ksSpcObjectCreate("graphic.lyt", //имя библиотеки типов

       1,         //   номер типа спецификации

20,  0,    //номер раздела и подраздела

0,         //тип атрибута

0)) {    //базовый объект

    spcObj = ::ksSpcObjectEnd();

    //запомним номер объекта

    numbObj = ::ksGetSpcObjectNumber  ( spcObj);

  }

  //создадим итератор для навигации по объектам спецификации

  reference iter = ::CreateSpcIterator("graphic.lyt", 1, 0);

  if (!iter)

    ::MessageBoxResult();  // неудачное завершение - выдадим результат работы нашей функции

  else {

    reference spcObj;

    char buf[120];

    // найдем первый объект

    spcObj = ::MoveIterator(iter, 'F');

    if (spcObj && ::ExistObj(spcObj)) {

      //у всех объектов в обозначении добавим "-01"

      //а у объекта с номером  numbObj  - "-02"

      do {

        //возьмем текст обозначения

        ::ksGetSpcObjectColumnText  (spcObj

                                    SPC_CLM_MARK, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER

                                    1,     //номер колонки данного типа начиная с 1

                                    buf, 120);              //указатель

        double n = ::ksGetSpcObjectNumber  (spcObj);

        //добавим к обозначению нужную добавку

        strcat(buf, n == numbObj ? "-02"  : "-01");

        //откроем объект на редактирование

        ::ksSpcObjectEdit(spcObj);

          //в этом блоке можно редактировать все колонки спецификации,

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

          //в нашем случае заменим обозначение

          ::kSetSpcObjectColumnText  (SPC_CLM_MARK, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER

                                      1,     //номер колонки данного типа начиная с 1

                                      buf);              //указатель

        //закроем объет после редактирования

        ::ksSpcObjectEnd();

        //найдем следующий объект

        spcObj = ::MoveIterator(iter, 'N');

      } while(spcObj  &&  ::ExistObj(spcObj));

    }

    //удалим итератор

    ::DeleteIterator(iter);

  }

}


ksGetSpcObjectColumnText - Выдать текст из определенной колонки объекта спецификации
ksGetSpcObjectColumnText 	Пример

Выдать текст из определенной колонки объекта спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcObjectColumnText.

Синтаксис:

int ksGetSpcObjectColumnText (reference spcObj,

unsigned int columnType

unsigned int ispoln,

unsigned int block,

char *s,

unsigned int size_s);   // длина строки s

Входные параметры:

spcObj	- указатель на объект спецификации,
columnType	- тип колонки,
ispoln	- номер исполнения данного типа
block	- номер блока исполнений, начиная с 0 (если количество исполнений больше числа колонок типа "количество").
s	- указатель на строку, в которую требуется положить полученный текст
size_s	длина строки s
Типы колонок спецификации...

Выходные параметры:

	строка с текстом из колонки.
Возвращаемое значение:

0	- в случае успешного завершения,
количество символов	- если длина строки оказалась меньше требуемой size_s,
-1	в случае ошибки.


ksSetSpcObjectColumnText - Заменить текст в определенной колонке объекта спецификации
ksSetSpcObjectColumnText 	Пример

Заменить текст в определенной колонке объекта спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSetSpcObjectColumnText.

Синтаксис:

int ksSetSpcObjectColumnText (unsigned int columnType,

unsigned int ispoln,

unsigned int block,

char *s);

Входные параметры:

columnType	- тип колонки,
ispoln	- номер исполнения данного типа,
block	- номер блока исполнений, начиная с 0 (если количество исполнений больше числа колонок типа "количество"),
s	- строка, из которой нужно взять текст.
Типы колонок спецификации...

Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.


ksGetSpcDocumentPagesCount - Определить количество листов документа-спецификации
ksGetSpcDocumentPagesCount 	Пример

Получить количество листов документа-спецификации.

Аналог данной функции при использовании Automation - метод ksSpcDocument::ksGetSpcDocumentPagesCount.

Синтаксис:

int ksGetSpcDocumentPagesCount (reference spcDoc);

Входные параметры:

spcDoc	- указатель на документ-спецификацию (если spcDoc = 0, функция работает для текущей спецификации)
Возвращаемое значение:

	количество листов документа-спецификации.


ksGetSpcDocumentPagesCount - пример использования

//функция для декомпозирования текущей спецификации и помещения ее во фрагмент

//найдем текущий документ спецификацию

reference iDoc = CreateIterator (SPC_DOCUMENT_OBJ , 0);

if (iDoc)

{

reference pDoc = MoveIterator (iDoc, 'F');

if (pDoc)

{

do

{

int state;

if (GetObjParam (pDoc, &state, sizeof (state), DOCUMENT_STATE)

&& state == stACTIVE)

break;

pDoc = MoveIterator(iDoc, 'N');

}

while (pDoc);

}

DeleteIterator(iDoc);	//указатель на итератор

if (pDoc)

{

//найдем количество листов спецификации

int pageCount = ksGetSpcDocumentPagesCount (pDoc);

//найдем габариты одного листа спецификации

RectParam spcGabarit;

GetObjGabaritRect (pDoc, &spcGabarit);

//создадим фрагмент

DocumentParam doc;

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

doc.regim = 0;

doc.type = 3;

CreateDocument (&doc);

for (int i = 0; i < pageCount; i++)

{

//получили временную группу i-го листа спецификации

reference  group =  DecomposeObj (pDoc,	//указатель на объект

0,	//уровень разбиения:

//отрезки,дуги,тексты,точки;

0.4,	//стрелка прогиба

uint8(i+1));// 0 - разбиение объекта

// в СК вида,

// 1- в СК листа

if (group)

{

int column=i%3;

double x = (spcGabarit.pTop.x-spcGabarit.pBot.x + 5)*column;

int row = i/3;

double y = (spcGabarit.pTop.y-spcGabarit.pBot.y + 5)*row;

//сдвинули группу

MoveObj (group, x, -y);

//поставили в модель

StoreTmpGroup (group);	//указатель группы

ClearGroup (group);

DeleteObj(group);

}

}

char buf[128];

sprintf (buf, "Преобразовано %d листов СП", pageCount);

Message (buf);

}

else

Error("Спецификация должна быть текущей");

}


ksGetSpcTableColumn - Получить количество колонок для стиля спрецификации
ksGetSpcTableColumn 	Пример

Получить количество колонок для стиля спецификации в текущем документе.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcTableColumn.

Синтаксис:

int ksGetSpcTableColumn (char * nameLib,
unsigned int numb,
unsigned char additioanalCol);

Входные параметры:

nameLib	- имя библиотеки стилей спецификаций,
numb	- номер стиля в библиотеке,
additioanalCol	- признак колонок:  0 - колонки таблицы спецификации,  1 - дополнительные колонки.
Возвращаемое значение:

количество колонок для стиля спецификации в текущем документе.	-в случае успеха,
0	- в случае неудачи.
Примечания:

1. Если документ - спецификация, то параметры nameLib и numb не используются.

2. Если количество исполнений больше числа колонок "количество" в бланке спецификации, то количество колонок выдается с учетом всех исполнений.


ksGetSpcColumnType - По номеру колонки для данного объекта получить тип колонки и номер блока
ksGetSpcColumnType	Пример

По номеру колонки для данного объекта спецификации получить тип колонки, номер колонки данного типа, номер блока.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcColumnType.

Синтаксис:

int ksGetSpcColumnType (reference spcObj,
unsigned int colNumb,
SpcColumnParam * par);

Входные параметры:

spcObj	- указатель на объект спецификации,
colNumb	- номер колонки, начиная с 1.
Выходной параметр:

par	- указатель на структуру параметров колонки спецификации SpcColumnParam....
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Типы колонок спецификации...

Примечание:

Если число исполнений больше количества колонок для исполнений в бланке спецификации, недостающие колонки исполнений получают номера, следующие за номерами колонок таблицы спецификации, затем нумеруются дополнительные колонки


ksGetSpcColumnNumb - Для данного объекта спецификации по типу колонки и номеру блока получить номер колонки
ksGetSpcColumnNumb 	Пример

Для данного объекта спецификации по типу колонки и номеру блока получить номер колонки.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcColumnNumb.

Синтаксис:

int ksGetSpcColumnNumb (reference spcObj,
unsigned int columnType,
unsigned int typeNumb,
unsigned int block);

Входные параметры:

spcObj	- указатель на объект спецификации,
columnType	- тип колонки,
ispoln	- номер колонки данного типа, начиная с 1,
block	- номер блока исполнений.
Возвращаемое значение:

номер колонки спецификации.	- в случае успеха,
0	- в случае неудачи.
Типы колонок спецификации...


ksGetSpcTableColumn - пример использования
ksGetSpcTableColumn, ksGetSpcColumnType , ksGetSpcColumnNumb - пример использования

char spwName[250];

  int j1;

  //выберем спецификацию

  if((j1 = ksChoiceFile("*.spw","спецификации(*.spw)|*.spw|Все файлы (*.*)|*.*|", spwName, 250, 1)) != 0){

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

    reference pDoc = OpenDocument (spwName, 0);

    //создать итератор по объектам СП

    reference iter = CreateSpcIterator(0, 0, 0);

    //встаем на первый объект спецификации

    reference spcObj = MoveIterator(iter, 'F');

    if (spcObj && ExistObj(spcObj)) {

      do {

        //узнаем количество колонок у базового объекта спецификации

        int count = ksGetSpcTableColumn(0, 0, 0);

        // пройдем по всем колонкам

        for (uint i = 1; i <= count; i++) {

          unsigned int  columnType, typeNumb, block;

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

          if (ksGetSpcColumnType(spcObj,          //объект спецификации

                                  i,      // номер колонки, начиная с 1

                                  &columnType, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER

                                  &typeNumb,     //номер колонки данного типа

                                  &block)) {  //номер блока

            char buf[250];

            //возьмем текст

            ksGetSpcObjectColumnText  (spcObj,       //объект спецификации

                                        columnType, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER

                                        typeNumb,     //номер колонки данного типа

                                        block,

                                        buf,          //указатель

                                        250);        //длина строки s

            char buf1 [128];

            sprintf (buf1, "\ntype = %d номер =%d block = %d", columnType,typeNumb,block);

            strcat (buf, buf1);

            Message(buf);

            //по типу колонки, номеру исполнения и блоку определим номер колонки

            int colNumb = ksGetSpcColumnNumb( spcObj,         //объект спецификации

                                               columnType, //тип колонки SPC_CLM_FORMAT...SPC_CLM_USER

                                               typeNumb,     //номер колонки данного типа начиная

                                               block);    //номер блока

            sprintf (buf, "i = %d colNumb =%d", i, colNumb);

            Message(buf);

          }

        }

        //встаем на следующий объект спецификации

        spcObj = MoveIterator(iter, 'N');

      }  while(spcObj  &&  ExistObj(spcObj));

    }

    DeleteIterator(iter);

    CloseDocument(pDoc);

  }


ksGetSpcSheetSB - Получить динамический массив листов сборочного чертежа, подключенных к спецификации
ksGetSpcSheetSB 	Пример

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

Аналог данной функции при использовании Automation - метод ksSpcDocument::ksGetSpcSheetSB.

Синтаксис:

reference ksGetSpcSheetSB (reference spcDoc);

Входной параметр:

spcDoc	- указатель на спецификацию,
Возвращаемое значение:

указатель на динамический массив листов сборочного чертежа типа CHAR_STR_ARR.	- в случае успеха
0	- в случае неудачи.


ksSetSpcSheetSB - Заменить динамический массив листов сборочного чертежа, подключенных к спецификации
ksSetSpcSheetSB 	Пример

Заменить динамический массив листов сборочного чертежа, подключенных к спецификации.

Аналог данной функции при использовании Automation - метод ksSpcDocument::ksSetSpcSheetSB.

Синтаксис:

int ksSetSpcSheetSB (reference spcDoc, reference arr);

Входной параметр:

spcDoc	- указатель на спецификацию,
arr	- указатель на динамический массив типа CHAR_STR_ARR.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksSetSpcSheetSB - пример использования
ksGetSpcSheetSB, ksSetSpcSheetSB - пример использования

//откроем спецификацию

reference pDoc = OpenDocument ("d:\\0\\4.spw", 0);

if (pDoc)

{

//заполним массив листов сборки, которые нужно подключить к спецификации

reference arr = CreateArray(CHAR_STR_ARR, 0);

char buf [255];

strcpy (buf, "d:\\0\\1.cdw");

AddArrayItem (arr, -1, buf, strlen(buf)+1);

strcpy (buf, "d:\\0\\2.cdw");

AddArrayItem (arr, -1, buf, strlen(buf)+1);

//подключим листы сборочного чертежа к спецификации

ksSetSpcSheetSB (pDoc , arr);

DeleteArray (arr);

//просмотрим листы сборки, подключенные к спецификации

reference p = ksGetSpcSheetSB (pDoc);

if (p)

{

for (uint i=0, count = GetArrayCount( p); i < count; i++)

{

char buf1[255];

GetArrayItem(p, i, buf1, 255);

Message(buf1);

}

}

SaveDocument(pDoc, 0);

CloseDocument(pDoc);

}


ksGetSpcSectionName - Получить название раздела спецификации, которому принадлежит указанный объект спецификации
ksGetSpcSectionName	Пример

Получить название раздела спецификации, которому принадлежит указанный объект спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcSectionName.

Синтаксис:

int ksGetSpcSectionName (reference spcObj, char* name, int size);

Входной параметр:

spcObj	- указатель на объект спецификации.
Выходные параметры:

name	- буфер для имени раздела.
size	- размер буфера.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksGetSpcSectionName - пример использования

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

reference iter = ::CreateSpcIterator (0, 0, 1/*вспомогательные объекты спецификации*/);

if (iter) {

// встаем на первый объект спецификации

reference spcObj = ::MoveIterator (iter, 'F');

// проверяем, что объект действительно существует

if (spcObj && ::ExistObj (spcObj)) {

do {

char spcSectionName[128]; 	// имя раздела спецификации

// запрашиваем имя раздела

if (::ksGetSpcSectionName (spcObj, spcSectionName, sizeof (spcSectionName)))

::Message (spcSectionName);

// встаем на следующий объект спецификации

spcObj = ::MoveIterator (iter, 'N');

}  while (spcObj  && ::ExistObj (spcObj));

}

::DeleteIterator(iter); // удаляем итератор

}


ksGetSpcStyleParam - Получить параметры указанного стиля спецификации
ksGetSpcStyleParam	Пример

Получить параметры указанного стиля спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcStyleParam.

Синтаксис:

int ksGetSpcStyleParam (char * nameLib,

unsigned int numb,

void * par,

unsigned int size,

int tPar);

Входные параметры:

nameLib	- имя библиотеки стилей спецификаций (NULL - параметры берутся у текущго документа),
numb	- номер стиля спецификации в библиотеке,
tPar	- тип возвращаемых параметров.
Выходной параметр:

par	- структура параметров стиля спецификации.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

1. Если tPar =ALLPARAM, то заполняется структура параметров стиля спецификации SpcStyleParam....

2. Если tPar = SPC_TUNING_PARAM, то заполняется заполняется структура параметров настроек спецификации SpcTuningStyleParam....


ksGetSpcStyleParam - пример использования

SpcStyleParam par;                                      // параметры стиляСП

      ::memset(&par.layoutName1, 0, sizeof(SpcStyleParam)); 	// очищаем структуру

      // Получить параметры для стиля спецификации с номером numb из библиотеки nameLib

::ksGetSpcStyleParam ("graphic.lyt",	// имя библиотеки стилей

               	1,	// номер стиля спецификации

&par,	// структура параметров

sizeof (SpcStyleParam),	// размер структуры параметров

ALLPARAM);	// вернуть все параметры стиля спецификации

      ::Message (par.layoutName1);	 // имя файла библиотеки оформлений для первого листа

      ::Message(par.tuning.predefinedTextFileName); // имя файла предопределенных текстов

      int count = ::GetArrayCount (par.arrColumn);	// количество элементов в массиве

      for (int i = 0; i < count; i++) {                     	// проходим по массиву стилей колонок СП

       SpcStyleColumnParam param;                       // структура параметров стиля

//колонки спецификации

       ::GetArrayItem(par.arrColumn, i, &param, sizeof(SpcStyleColumnParam));

// считываем i-й элемент массива

      }


ksGetSpcDescription - Получить параметры описания спецификации
ksGetSpcDescription	Пример

Получить параметры описания спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcDescription.

Синтаксис:

int ksGetSpcDescription (reference pDoc,

int index,

SpcDescrParam * param,

unsigned char* state);

Входной параметр:

pDoc	- указатель на документ,
index	- индекс (номер) описания спецификации в документе (-1 - текущее описание).
Выходные параметры:

param	- указатель на интерфейс ksSpcDescrParam параметров описания спецификации,
state	- состояние описания спецификации: TRUE - текущее,  FALSE - не текущее.
Описание:

1. Функция возвращает параметры описания спецификации для указанного документа.

2. Если index = -1, берется текущее описание. Для документа-спецификации параметр index не используется.


ksSetSpcDescription - Установить параметры описания спецификации
ksSetSpcDescription	Пример

Установить параметры описания спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSetSpcDescription.

Синтаксис:

int ksSetSpcDescription (reference pDoc,

int index,

SpcDescrParam* param,

unsigned char state);

Входные параметры:

pDoc	- указатель на документ
index	- индекс (номер) описания спецификации в документе (-1 - текущее описание),
param	- указатель на параметры описания спецификации
state	- состояние описания спецификации: TRUE - текущее,  FALSE - не текущее.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Структура параметров описания спецификации....

Примечания:

1. Метод изменяет параметры описания спецификации и/или делает его активным, если state = TRUE.

2. Если param = NULL - меняется только состояние.

3. Для документа-спецификации параметр index не используется.


ksAddSpcDescription - Добавить описание спецификации в графический документ
ksAddSpcDescription	Пример

Добавить описание спецификации в графический документ.

Аналог данной функции при использовании Automation - метод ksSpecification::ksAddSpcDescription.

Синтаксис:

int ksAddSpcDescription (reference pDoc,
SpcDescrParam* param);

Входной параметр:

pDoc	- указатель на документ,
param	- параметры описания спецификации.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Структура параметров описания спецификации....


ksDeleteSpcDescription - Удалить описание спецификации из графического документа
ksDeleteSpcDescription	Пример

Удалить описание спецификации из графического документа.

Аналог данной функции при использовании Automation - метод ksSpecification::ksDeleteSpcDescription.

Синтаксис:

int ksDeleteSpcDescription (reference pDoc,

int index);

Входной параметр:

pDoc	- указатель на документ
index	- индекс (номер) описания спецификации в документе.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


Пример использования функций работы с описаниями спецификации

reference doc = ::ksGetCurrentDocument(0);           // текущий документ

   if (doc) {

     	SpcDescrParam param;                                 // параметры описания

        ::memset(&param, 0, sizeof(SpcDescrParam));        // очистить параметры

        ::strcpy(param.layoutName, "C:\\gr\\graphic.lyt"); // имя файла библиотеки

//стилей спецификаций

        param.styleId = 15;                                  // номер стиля в библиотеке

        if (::ksAddSpcDescription(doc, &param)) {          // добавить описание в документ

        bool state;                                        // состояние описания СП

          if (::ksGetSpcDescription(doc, 0, &param, &state)) { // считать описание с индексом 0

            char buf[1000];                                  // создать сообщение

            ::sprintf(buf, "индекс СП: %d,\nИмя библиотеки: %s,\nНомер стиля: %d,\nИмя файла: %s,\nСостояние: %s",

                       0, param.layoutName, param.styleId, param.spcName, state ? "Активный" : "Неактивный");

            ::Message(buf);                                // вывести сообщение

          }

        param.styleId = 2;                                 // номер стиля в библиотеке

          if (::ksSetSpcDescription(doc, 0, &param, state))      // изменить описание с индексом 0

          if (::ksGetSpcDescription(doc, 0, &param, &state)) { // считать описание с индексом 0

              char buf[1000];                                // создать сообщение

              ::sprintf(buf, "индекс СП: %d,\nИмя библиотеки: %s,\nНомер стиля: %d,\nИмя файла: %s,\nСостояние: %s",

                         0, param.layoutName, param.styleId, param.spcName, state ? "Активный" : "Неактивный");

              ::Message(buf);                              // вывести сообщение

            }

        	::ksDeleteSpcDescription(doc, 0);                // удалить описание с индексом 0

        }

      }


ksSpecificationOnSheet - Включить или выключить показ спецификации на листе чертежа
ksSpecificationOnSheet

Включить или выключить показ спецификации на листе чертежа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSpecificationOnSheet.

Синтаксис:

int ksSpecificationOnSheet (unsigned char onSheet);

Входной параметр:

onSheet	- признак размещения спецификации на листе 1 - включено,  0 - выключено.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksGetSpcObjectColumnTextEx

Получить текст объекта спецификации для определенного типа колонки и исполнения в виде динамического массива TEXT_LINE_ARR.

Аналог данной функции при использовании Automation - метод ksSpecification::GetSpcObjectColumnTextEx.

Синтаксис:

reference ksGetSpcObjectColumnTextEx (reference spcObj,
unsigned int columnType,
unsigned int ispoln,
unsigned int block)

Входные параметры:

spcObj	объект спецификации,
columnType	тип колонки SPC_CLM_FORMAT...SPC_CLM_USER,
ispoln	номер колонки данного типа, начиная с 1,
block	номер блока.
Возвращаемое значение:

- динамический массив строк текста TEXT_LINE_ARR,	- в случае успеха,
0	- в случае ошибки.
Примечание:

Если номер блока block = 0 - число исполнений меньше количества исполнений в бланке спецификации (для групповой спецификации 2.113-75 число исполнений меньше 10).


ksSetSpcObjectColumnTextEx

Задать текст объекта спецификации для определенного типа колонки и исполнения.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSetSpcObjectColumnTextEx.

Синтаксис:

int ksSetSpcObjectColumnTextEx (unsigned int columnType,
unsigned int ispoln,
unsigned int block,
reference p);

Входные параметры:

columnType	тип колонки SPC_CLM_FORMAT...SPC_CLM_USER
ispoln	номер колонки данного типа, начиная с 1
block	номер блока
p	динамический массив строк текста TEXT_LINE_ARR
Возвращаемое значение:

1	- в случае успеха,
0	- в случае ошибки.
Примечание:

Функция работает в режиме создания нового или редактирования существующего объекта спецификации ksSpcObjectCreate или ksSpcObjectEdit... ksSetSpcObjectColumnTextEx(...); reference spsObj = ksSpcObjectEnd();.


ksSetTuningSpcStyleParam

Изменить параметры настроек спецификации документа.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSetTuningSpcStyleParam.

Синтаксис:

extern "C" int LIB_FUNC ksSetTuningSpcStyleParam (reference pDoc,
int index,
SpcTuningStyleParam * par)

Входные параметры:

pDoc	- указатель на документ,
index	- индекс описания спецификации в документе.
par	- структура параметров SpcTuningStyleParam.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Если pDoc == 0, то изменяются параметры настроек для текущего документа;

2. Если index == -1, то изменяются параметры настроек текущего описания спецификации;

3. Для документа-спецификации настройки можно заменить всегда;
для графического документа: в случае, если документ подключен к спецификации или включен режим "Спецификация на листе";
для 3d документа: в случае, если документ подключен к спецификации.


ksGetTuningSpcStyleParam

Получить изменения параметров настроек спецификации документа.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetTuningSpcStyleParam.

Синтаксис:

extern "C" int LIB_FUNC ksGetTuningSpcStyleParam (reference pDoc,
int index,
SpcTuningStyleParam * par)

Входные параметры:

pDoc	- указатель на документ,
index	- индекс описания спецификации в документе.
par	- структура параметров настройки спецификации.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Если pDoc == 0, то изменяются параметры настроек для текущего документа;

2. Если index == -1, то изменяются параметры настроек текущего описания спецификации;

3. Для документа-спецификации настройки можно заменить всегда;
для графического документа: в случае, если документ подключен к спецификации или включен режим "Спецификация на листе";
для 3d документа: в случае, если документ подключен к спецификации.


ksGetSpcObjGeometry

Получить деталь или подсборку, подключенную к объекту спецификации.

Аналог данной функции при использовании Automation - метод ksSpecification::ksGetSpcObjGeometry.

Синтаксис:

extern "C" reference LIB_FUNC ksGetSpcObjGeometry (reference spcObj);

Входные параметры:

spcObj	- указатель на объект спецификации.
Возвращаемое значение:

указатель на группу	- в случае успешного завершения,
0	- в случае если геометрия не подключена или в случае ошибки.


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksIsModuleSpecificationActive

Синтаксис:

int ksIsModuleSpecificationActive();

Возвращаемое значение:

1	- работа со спецификацией разрешена,
0	- работа со спецификацией запрещена.


ksModuleSpecification - Управление подключением модуля спецификации
ksModuleSpecification

Управление подключением модуля спецификации для режима сетевой работы системы.

Аналог данной функции при использовании Automation - метод KompasObject::ksModuleSpecification.

Синтаксис:

int ksModuleSpecification (unsigned char attach);

Входной параметр:

attach	признак выполняемого действия: 1 - включить работу со спецификацией, 0 - выключить работу со спецификацией.
Возвращаемое значение:

1	- если был инициирован процесс подключения или отключения спецификации,
0	- в случае неудачного завершения.


ksSpcObjectCreate - Создать объект спецификации в графическом документе
ksSpcObjectCreate 	Пример

Создать объект спецификации в графическом документе.

Аналог данной функции при использовании Automation - метод ksSpecification::ksSpcObjectCreate.

Синтаксис:

int  ksSpcObjectCreate (char * nameLib,

unsigned int styleNumb,

unsigned short secNumb,

unsigned short subSecNumb,

double numb,

unsigned char typeObj);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
styleNumb	- номер стиля спецификации в библиотеке,
secNumb	- номер раздела,
subSecNumb	- номер подраздела,
numb	- для базового объекта - тип атрибута, который задан по ключам, или 0, для вспомогательного объекта - номер базового объекта, к которому прикрепляется вспомогательный, либо 0,
typeObj	- тип строки спецификации (0- базовый объект, 1 – вспомогательный объект).
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

1. Объект спецификации - составной объект. Его создание завершается функцией ksSpcObjectEnd.


ksSpcObjectCreate_example - пример использования
ksSpcObjectCreate - пример использования

а)

#define   SPC_NAME       5     //наименование

//-----------------------------------------------------------------------------------------------

//  создадим объект спецификации для раздела "Детали"

//-----------------------------------------------------------------------------------------------

reference  EditSpcObj(reference geom){

  reference spcObj = 0;

  //если редактируем макрообъект , то войдем в режим редактирования объекта

  if (::EditMacroMode()) {

    //найдем объкт спецификации по геометрии

    spcObj = ::ksGetSpcObjForGeom("graphic.lyt" , //имя библиотеки типов

                                   1,         //   номер типа спецификации

                                   0,         //для макроредактирования

                                   1, 1);

    //войдем в режим редактирования

    if (!::ksSpcObjectEdit(spcObj))

      spcObj  = 0;

  }

 //если объекта нет, войдем в режим создания объекта спецификации

 if(spcObj ||  ::ksSpcObjectCreate("graphic.lyt", //имя библиотеки типов

                                   1,         //   номер типа спецификации

                                   20,  0,    //номер раздела и подраздела

                                   0,0)) {    //тип атрибута

   //наименование

   ::ksSpcChangeValue(SPC_NAME/*номер колонки*/ , 1, "Втулка", STRING_ATTR_TYPE );

   //подключим геометрию

   if (geom)

     ::ksSpcIncludeReference(geom, 1);

   spcObj = ::ksSpcObjectEnd();

   //если объект спецификации создан, дадим возможность пользователю на него посмотреть и отредактировать.  Функцию нужно запускать вне Cursor и Placement

   if (spcObj)

     if (::ksEditWindowSpcObject(spcObj))

       return spcObj;

 }

 return 0;

}

б)

Для стандартных изделий в стиле спецификации (см. "graphic.lyt")  колонка "Наименование" имеет тип значения "запись". Это значит, что наименование формируется по шаблону обозначения для даннного стандартного изделия (например, болта). Шаблоны создаются на базе типов атрибутов и хранятся в библиотеке типов атрибутов, которая определена в стиле спецификации (например, "spc.lat").

При простановке болта из библиотеки из базы данных заполняется некоторая структура данных BOLT, которая несет информацию для построения геометрии болта и формирования обозначения.

  struct BOLT {

    float dr;	/*диаметр резьбы*/

    float p;	/*шаг резьбы */

    float s;	/*размер под ключ*/

    float h;	/*высота головки */

    float D;	/* диаметр описанной окружности*/

    float d3;	/*диаметр отв. в стержне*/

    float h2;	/*высота подголовка*/

    float  L;	/*длина стержня*/

    float l1;	/*расстояние до отверстия в стержне*/

    float b;	/*длина резьбовой части*/

    float d2;	/*диаметр под головкой*/

    float z4;	/*величина фаски конца*/

    short    k;	// 1 - длина резьбы ниже ломаной (резьба только на b) ; 2 - выше ломаной (резьба до головки и на в)

    unsigned short f;	/*битовые маски*/

    short klass;	/*класс точности*/

    unsigned short gost;	/*номер госта*/

  };

#define   SPC_NAME       5     //наименование

//-----------------------------------------------------------------------------------------------

//  создадим объект спецификации для раздела "Стандартные изделия"

//-----------------------------------------------------------------------------------------------

reference EditSpcObj (BOLT &tmp,  reference geom) {

  reference spcObj = 0;

  //если редактируем макро объект , то войдем в режим редактирования объекта

  if (::EditMacroMode()) {

    //найдем объкт спецификации по геометрии

    spcObj = ::ksGetSpcObjForGeom("graphic.lyt" , //имя библиотеки типов

                                   1,         //   номер типа спецификации

                                   0,         //для макроредактирования

                                   1, 1);

    //войдем в режим редактирования

    if (!::ksSpcObjectEdit(spcObj))

      spcObj  = 0;

  }

 if(spcObj ||  ksSpcObjectCreate("graphic.lyt" , //имя библиотеки типов

                                   1,         //   номер типа спецификации

                                   25,  0,    //номер раздела и подраздела определены в стиле спецификации

                                   308437807397.0 , 0)) //тип атрибута определен в библиотеке типов атрибутов spc.lat

   uint uBuf;

   //исполнение

   if(!(tmp.f & ISPOLN)) //если исполнения нет

     ::ksSpcVisible(SPC_NAME, 2, 0); //выключим исполнение

   else {

     uBuf = (uint) 2;

     ::ksSpcVisible(SPC_NAME, 2, 1);

     ::ksSpcChangeValue(SPC_NAME , 2, &uBuf, UINT_ATTR_TYPE );

   }

   //изменим диаметр

   uBuf = (uint) tmp.dr;

   ::ksSpcChangeValue(SPC_NAME , 4, &uBuf, UINT_ATTR_TYPE );

   //отследим мелкий шаг

   if(!(tmp.f & PITCH)){//выключить шаг и его разделитель

     ::ksSpcVisible(SPC_NAME, 5, 0);

     ::ksSpcVisible(SPC_NAME, 6, 0);   //шаг

   }

   else {

     ::ksSpcVisible(SPC_NAME, 5, 1);

     ::ksSpcVisible(SPC_NAME, 6, 1);   //шаг

     ::ksSpcChangeValue(SPC_NAME , 6, &tmp.p, FLOAT_ATTR_TYPE);

   }

   // выключим поле допуска

   ::ksSpcVisible(SPC_NAME, 7, 0);

   //изменим длину

   uBuf = (uint) tmp.L;

   ::ksSpcChangeValue(SPC_NAME , 9, &uBuf, UINT_ATTR_TYPE );

   // выключим класс прочности

   ::ksSpcVisible(SPC_NAME, 10, 0);

   // выключим материал

   ::ksSpcVisible(SPC_NAME, 11, 0);

   // выключим покрытие

   ::ksSpcVisible(SPC_NAME, 12, 0);

   //изменим ГОСТ

   uBuf = (uint) tmp.gost;

   ::ksSpcChangeValue(SPC_NAME , 14, &uBuf, UINT_ATTR_TYPE );

   //подключим геометрию

   if (geom)

     ::ksSpcIncludeReference(geom, 1);

   spcObj = ::ksSpcObjectEnd();

   //если объект спецификации создан, дадим возможность пользователю на него посмотреть и отредактировать.  Функцию нужно запускать вне Cursor и Placement

   if (spcObj)

     if (::ksEditWindowSpcObject(spcObj))

       return spcObj;

 }

 return 0;

}

в) пример создания шаблона обозначения для стандартного изделия "болт":

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

Можно создать шаблон обозначения средствами apptool из библиотеки.

Полное обозначение болта :

  Болт 1 М12 х 1.25 -6g x 60.58.35X.16 ГОСТ 7808 - 70

Представим это обозначение в виде компонент :

Номер	Имя компоненты	Умолчательное значение	Тип	Очередность сортировки

1 Имя элем.	Болт	строка	1

2 Исполнение	1	uint	3

3 Резьба	М	строка	0 (не сортируется)

4 Диаметр	12	uint 	4 или 3 (сортирует подряд)

5 Разделитель	х	строка	0 (не сортируется)

6 Шаг	1.25	float	    	5 или 3 (сортирует подряд)

7 Поле допуска	-6g	строка	6 или 3 (сортирует подряд)

8 Разделитель	х	строка	0 (не сортируется)

9 Длина	60	uint	7 или 3 (сортирует подряд)

10 Кл. прочности	.58	строка	0 (не сортируется)

11 Материал	.35Х	строка	0 (не сортируется)

12 Покрытие	.16	строка	0 (не сортируется)

13 ГОСТ	ГОСТ	строка	0 (не сортируется)

14 Номер	7808	uint	2

15 Разделитель	-	строка	0 (не сортируется)

16 Год	70	строка	0 (не сортируется)

//ключи определены в стиле спецификации

#define   ST_KEY1      100    //ключи для стандапртных изделий

#define   ST_KEY2_GOST  5      //для стандартных изделий

#define   ST_KEY3       1

#define   ATTR_TYPE_LIB_NAME_KEY3      "d:\\gr\\spc.lat"  имя библиотеки типов атрибутов

//-------------------------------------------------------------------------

//  создадим  тип атрибута болта

//-------------------------------------------------------------------------

void TypeAttrBolt() {

//Инициализация данных для создания шаблона

//заполним структуру типа атрибута

  ksAttributeType attrType;

  strcpy(attrType.header,"Болт");   // заголовoк-комментарий типа

  attrType.rowsCount        = 1;    // кол-во строк в таблице

  attrType.flagVisible      = 1;    // видимый, невидимый   в таблице

  strcpy(attrType.password,"");     // пароль, если не пустая строка  - защищает от несанкционированного изменения типа

  attrType.columns          = CreateArray(ATTR_COLUMN_ARR,0); // динамический массив компонент записи

  attrType.key1 = ST_KEY1;

  attrType.key2 = ST_KEY2_GOST;

  attrType.key3 = ST_KEY3;

  attrType.key4 = 0;

  ColumnInfo parStruct1;

   //массив полей записи

   //  колонка 1 "Имя элем."

    strcpy(parStruct1.header, "Имя элем.");// заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;    // тип данных в столбце - см.ниже

    parStruct1.key = 1;              // дополнительный признак,  очередность сортировки

    strcpy(parStruct1.def,"Болт");         // значение по умолчанию

    parStruct1.flagEnum =0;                 // флаг, включающий режим, когда значение поля атрибута будет заполняться из массива перечисленных значений (1-режим включен, 0-отключен

    parStruct1.fieldEnum = 0;           // массив неопределенной длины перечислений (строки)

    parStruct1.columns = 0;                // массив неопределенной длины информации о колонках для записи

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   //  колонка 2 "Исполнение"

    strcpy(parStruct1.header, "Исполнение"); // заголовoк-комментарий столбца

    parStruct1.type = UINT_ATTR_TYPE;       // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 3;               // дополнительный признак,  очередность сортировки

    strcpy(parStruct1.def,"1");             // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 3 "Резьба"

    strcpy(parStruct1.header, "Резьба"); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,"М");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 4 "Диаметр"

    strcpy(parStruct1.header, "Диаметр"); // заголовoк-комментарий столбца

    parStruct1.type = UINT_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 3;                  //   очередность сортировки

    strcpy(parStruct1.def,"12");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 5 "разделитель"

    strcpy(parStruct1.header, ""); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,"х");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 6 "Шаг"

    strcpy(parStruct1.header, "Шаг"); // заголовoк-комментарий столбца

    parStruct1.type = FLOAT_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 3;                  //   очередность сортировки

    strcpy(parStruct1.def,"1.25");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 7 "Поле допуска"

    strcpy(parStruct1.header, "Поле допуска"); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 3;                  //   очередность сортировки

    strcpy(parStruct1.def,"-6g");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 8 "разделитель"   strcpy(parStruct1.header, ""); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,"х");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 9 "Длина"

    strcpy(parStruct1.header, "Длина"); // заголовoк-комментарий столбца

    parStruct1.type = UINT_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 3;                  //   очередность сортировки

    strcpy(parStruct1.def,"60");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 10 "Кл. прочности"

    strcpy(parStruct1.header, "Кл. прочности"); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,".58");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 11 "Материал"

    strcpy(parStruct1.header, "Материал"); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см.ниже

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,".35Х");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 12 "Покрытие"

    strcpy(parStruct1.header, "Покрытие"); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,".16");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 13 "ГОСТ"

    strcpy(parStruct1.header, "ГОСТ"); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,"ГОСТ");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

    // колонка 14 "Номер"

    strcpy(parStruct1.header, "Номер"); // заголовoк-комментарий столбца

    parStruct1.type = UINT_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 2;                  //  очередность сортировки

    strcpy(parStruct1.def,"7808");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

    // колонка 15 "разделитель"

    strcpy(parStruct1.header, ""); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,"-");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

   // колонка 16 "Год"

    strcpy(parStruct1.header, "Год"); // заголовoк-комментарий столбца

    parStruct1.type = STRING_ATTR_TYPE;  // тип данных в столбце - см. "ltdefine.h"

    parStruct1.key = 0;                  //   очередность сортировки

    strcpy(parStruct1.def,"70");          // значение по умолчанию

    //добавим компоненту в массив компонент

    AddArrayItem(attrType.columns, -1, &parStruct1, sizeof(parStruct1));

    // создать  шаблон  обозначения

 /*double  numbType =*/  ksCreateAttrType(&attrType,   // информация о типе атрибута

                                       ATTR_TYPE_LIB_NAME_KEY3); // имя библиотеки типов атрибутов

 MessageBoxResult();  // проверяем результат работы нашей функции

 //удалим  массив колонок

 DeleteArray(attrType.columns);

}

г) пример  простановки линии-выноски к объекту спецификации :

//фрагмент ресурса

STRINGTABLE {

 STR225 "Линию-выноску проставлять?"

 STR226 "Укажите позиционную линию-выноску"

 STR227 "!Создать новую линию-выноску !Подключить существующую"

 STR228 "Ошибка! Объект - не позиционная линия-выноска!"

}

MENU_POS_LEADER MENU

{

 MENUITEM "Подключить существующую", 2

 MENUITEM "Создать новую линию-выноску ", 1

}

extern TModule *module;

//----------------------------------------------------------------------------------------------

// Отрисовать позиционную линию-выноску

// Уже проверено , что объект спецификации есть

// Функцию нужно запускать вне Cursor и Placement

//----------------------------------------------------------------------------------------------

void DrawPosLeader(reference _spcObj) {

  RequestInfo info;

  bool flag = false;

  reference posLeater = 0;

  double x1, y1;

  char buf[128];

  do {

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

    info.commands = (char*)MENU_POS_LEADER;

    module->LoadString(STR226, buf, 128); //"Укажите позиционную линию-выноску"

    info.prompt = buf;

    int j1 = Cursor(&info, &x1, &y1, 0);

    switch (j1) {

      case 1: //Создать новую линию-выноску

        posLeater = ::ksCreateViewObject(POSLEADER_OBJ);

        flag = false;

        break;

      case 2: //Подключить существующую

        module->LoadString(STR226, buf, 128); //"Укажите линию-выноску."

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

        info.commands = buf;

        if(Cursor(&info, &x1, &y1, 0)) {

          posLeater = ::FindObj(x1, y1, 100);      // величина стороны окошка-ловушки с центром x,y

          if (!(posLeater && ::GetObjParam(posLeater, 0, 0, 0) == POSLEADER_OBJ)) {

             module->LoadString(STR228, buf, 128); //"Ошибка! Объект-не позиционная линия-выноска!"

             Error(buf);

             posLeater = 0;

             flag = true;

          }

          else

            flag = false;

          break;

        }

        else

          flag = false;

        break;

      case -1:

        posLeater = ::FindObj(x1, y1, 100);      // величина стороны окошка-ловушки с центром x,y

        if (!(posLeater && ::GetObjParam(posLeater, 0, 0, 0) == POSLEADER_OBJ)) {

           module->LoadString(STR228, buf, 128); //"Ошибка! Объект-не позиционная линия-выноска!"

           Error(buf);

           posLeater = 0;

           flag = true;

        }

        else

          flag = false;

      break;

    }

  }  while(flag);

  //линия-выноска есть, подключим ее к объекту спецификации

  if (posLeater ) {

    //войдем в режим редактирования объекта спецификации

    if (::ksSpcObjectEdit(_spcObj)) {

      //подключим линию-выноску

      ::ksSpcIncludeReference(posLeater, true);

      //закроем объект спецификации

      ::ksSpcObjectEnd();

    }

  }

}


ksGetWidthColumnSpc

Получить ширину колонки или текста в колонке.

Аналог данного метода при использовании Automation - метод ksSpecification::ksGetWidthColumnSpc.

Синтаксис Automation:

double ksGetWidthColumnSpc (int numColumn,

unsigned char cellOrText)

Входные параметры:

numColumn	- номер колонки,
cellOrText	- признак объекта, ширину которого требуется узнать: 1 - колонка, 0 - текст в колонке.
Возвращаемое значение:

	ширина колонки или текста в колонке.
Примечание:

Номер колонки должен начинаться с единицы.


ksGetCurrentSpcObject

Получить указатель текущего (выделенного или редактируемого) объекта спецификации.

Аналог данного метода при использовании использовании Automation - метод ksGetCurrentSpcObject.

Синтаксис Automation:

long ksGetCurrentSpcObject();

Возвращаемое значение:

указатель на текущий объект	- в случае успеха,
0	- в случае неудачи.
Примечание:

Метод работает для видимых таблиц спецификации.


ksSetCurrentSpcObject

Установить текущий объект спецификации по указателю на него либо по его индексу.

Аналог данного метода при использовании Automation - метод ksSetCurrentSpcObject.

Синтаксис:

long ksSetCurrentSpcObject (long spcObj, long index);

Входные параметры:

spcObj	- указатель на объект,
index	- индекс объекта.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Метод работает для видимых таблиц спецификации.


D3SpcIncludePart

Добавить или изменить трехмерный компонент (деталь или подсборку) в объекте спецификации.

Аналог данного метода при использовании Automation - метод  D3SpcIncludePart.

Синтаксис:

BOOL D3SpcIncludePart (LPDISPATCH part, BOOL fillTexts);

Входные параметры:

part	- указатель на интерфейс компонента ksPart,
fillTexts	- признак автоматического заполнения: наименование, обозначение, масса из свойств ksPart: TRUE - автозаполнение включено,  FALSE - выключено.
Возвращаемое значение:

TRUE	- в случае удачного завершения.


D3GetSpcObjForGeomWithLimit

Получить указатель на объект спецификации, подключенный к трехмерному компоненту (детали или подсборке) с ограничениями по номеру раздела и типу атрибута.

Аналог данного метода при при использовании Automation - метод D3GetSpcObjForGeomWithLimit.

Синтаксис:

long D3GetSpcObjForGeomWithLimit (BSTR nameLib,

long numb,

LPDISPATCH part,

short first,

short section,

double attrTypeNumb);

Входные параметры:

nameLib	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации в библиотеке,
part	- указатель на интерфейс добавляемого компонента ksPart,
first	- 1 -первый объект, 0 - следующий объект,
section	- номер раздела, в котором нужно найти объект (0 - номер не ограничивается),
attrTypeNumb	- номер типа атрибута, для которого нужно найти объект (0 - номер не ограничивается).
Возвращаемое значение:

	указатель на объект спецификации.


ksD3GetSpcObjGeometry

Получить деталь или подсборку, подключенную к объекту спецификации.

Аналог данного метода при при использовании Automation - метод ksD3GetSpcObjGeometry.

Синтаксис:

LPDISPATCH D3GetSpcObjGeometry (long spcObj);

Входные параметры:

spcObj	- указатель на объект спецификации,
Возвращаемое значение:

Указатель на интерфейс ksPart	- в случае успешного завершения,
0	- если деталь не подключена или в случае ошибки.


Функции работы с базами данных

Функции работы с базами данных обеспечивают как работу со стандартными СУБД (через интерфейс ODBC), так и возможность хранения данных в обычных текстовых файлах. В последнем случае каждая строка соответствует одной записи, а поля отделяются друг от друга разделителем (пробелом или запятой).

Работа с базой данных начинается с создания ее блока заголовка. Блок заголовка базы данных является управляющей структурой, содержащей имя базы данных и ее параметры. Конкретная привязка блока заголовка к файлу базы данных осуществляется функцией ConnectDB, причем в процессе работы возможно его отсоединение и повторное связывание.

Перед выполнением запроса необходимо создать специальный буфер, называемый отношением. Структура задается блоком функций Relation.....EndRelation, внутри которого определяются перечень полей и их типы. Сам запрос задается функцией DoStatement, а его условие можно определить с помощью функции Condition. После выполнения запроса можно последовательно получить с помощью функции ReadRecord все записи базы даннных, соответствующие его условию.


Функции работы с базами данных
Функции

CloseTextFile

Condition

ConnectDB

CreateDB

DeleteDB

DisconnectDB

DoStatement

EndRelation

FreeStatement

GetColumnName

GetTableName

IsODBCOkey

OpenTextFile

Rchar

Rdouble

ReadRecord

ReadStrFromTextFile

Relation

Rfloat

RInt

Rlong


CreateDB - Создать блок заголовка базы данных
CreateDB  	Пример

Создать блок заголовка базы данных.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksCreateDB.

Синтаксис:

reference CreateDB(char *s);

Входной параметр:

s	- тип базы данных: TXT_DB - текстовый файл,  ODBC_DB - ODBC-база.
Возвращаемое значение:

указатель на блок заголовка базы данных	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Одновременно может существовать сколько угодно объектов баз.


Пример использования функций работы с базами данных

//пример текстового файла 1.loa с тремя параметрами - шириной, высотой и типом линии прямоугольника

/*

   10.0             100           1

   15.0              80           2

   20.0             120           1

*/

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

#ifndef __LIBDB_H

#include <libdb.h>

#endif

static void ReadFirstStatement(reference bd, reference r1, void *b) {

// вспомогательная функция чтения записей

  char buf[40];

  int I;

  do { // считываем все записи выборки

    i= ReadRecord(bd, r1, b);

    if (i) {

      sprintf(buf, "a=%4.1f b=%4.1f t= %d", b->a, b->b, b->t);

      Message(buf);

    }

  } while(i);

  Message("конец выборки");

} /* ReadFirstStatement */

void ExampleDB (void) {

  int I;

  char buf[40];

  struct {

   double a;

   double b;

   int    t;

  } b;

// создать блок заголовка базы данных

  reference bd = CreateDB ("TXT_DB");

// связать с файлом  базы данных 1.loa

  ConnectDB(bd, "1.loa");

  // задаем отношение из двух действительных и одного целого поля

  reference r1 = Relation(bd);

   RDouble ("a");

   RDouble ("b");

   RInt    ("");

  EndRelation();

  // определяем запрос для считывания всех полей(колонок) записи

  DoStatement(bd, r1, ""); // равносильно DoStatement(bd, r1, "1 2 3");

  // cчитываем все записи

  ReadFirstStatement(bd, r1, &b);

  // выдать вторую запись

  Condition(bd, r1, "Index1000 = 2");

  ReadFirstStatement(bd, r1, &b);

  // по условию выдать первую и  третью запись(см. файл 1.loa)

  Condition(bd, r1, "a=10 || b>100");

  ReadFirstStatement(bd, r1, &b);

  //задаем  отношение для считывания только второго поля записи

  reference r2 = Relation(bd);

    RChar("b", 20, 0);

  EndRelation();

// Освободить запрос базы данных

FreeStatement(bd,  r1, «»);

  DoStatement(bd, r2, "2");

  do {

    i= ReadRecord(bd, r2, buf);

    if (i) {

      Message(buf);

    }

  } while(i);

  Message("конец выборки");

  DisconnectDB(db);

  // удаляем блок заголовка базы данных

  DeleteDB(bd);

}; /* ExampleDB */


DeleteDB - Удаление блока заголовка базы данных
DeleteDB  	Пример

Удалить блок заголовка базы данных.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksDeleteDB.

Синтаксис:

int DeleteDB(reference bd);

Входной параметр:

bd	- указатель на объект БД.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Происходит автоматическое отсоединение базы данных и удаление всех созданных ранее запросов.


ConnectDB - Связать заголовок и базу данных
ConnectDB  	Пример

Связать заголовок и базу данных

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksConnectDB.

Синтаксис:

int ConnectDB (reference bd, char * dataBaseName);

Входные параметры:

bd	- указатель на блок заголовка,
dataBaseName	- имя БД (для ODBC - имя БД в администраторе ODBC, для текстового файла - имя файла).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Функция связывает блок заголовка с указателем bd и базу данных с именем dataBaseName. Если база данных представлена в виде текстового файла, то функция работает аналогично стандартной функции WINDOWS OpenFile. При режиме работы через ODBC-интерфейс имя базы данных задается в файле ODBC.INI, содержащем список определенных баз данных.


DisconnectDB - Отсоединить блок заголовка от базы данных
DisconnectDB  	Пример

Отсоединить блок заголовка от базы данных.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksDisconnectDB.

Синтаксис:

int DisconnectDB(reference bd);

Входной параметр:

bd	- указатель на объект БД.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При удалении блока заголовка (функция DeleteDB) отсоединение выполняется автоматически, поэтому использовать ее рекомендуется только при переопределения базы данных.


IsODBCOkey - Проверить подключение ODBC
IsODBCOkey

Проверить подключение ODBC.

Синтаксис:

int IsODBCOkey();

Возвращаемое значение:

1	- если соединение с ODBC установлено,
0	- если соединения нет.


GetTableName - Считать имя таблицы из БД
GetTableName	Пример

Считать имя таблицы из базы данных.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksGetTableName.

Синтаксис:

int GetTableName (reference db,

char * tableName,

int size,

unsigned char firstOrNext);

Входные параметры:

db	- указатель на объект БД,
firstOrNext	- признак таблицы: F - первая таблица,  N - следующая таблица.
size	- размер буфера
Выходной параметр:

tableName	- имя таблицы
Возвращаемое значение:

1	- если в указанной базе еще существуют несчитанные имена таблиц,
0	- если все имена таблиц считаны.


GetColumnName - Считать имя колонки таблицы из БД
GetColumnName	Пример

Считать имя колонки таблицы из базы данных.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksGetColumnName.

Синтаксис:

int GetColumnName (reference db,

char * tableName,

char * columnName,

int size,

unsigned char firstOrNext);

Входные параметры:

db	- указатель на базу данных,
tableName	- ODBC - имя таблицы, текстовая БД - имя файла,
size	- размер буфера
firstOrNext	- признак колонки: F - первая колонка,  N - следующая колонка.
Выходной параметр:

columnName	- имя колонки
Возвращаемое значение:

1	- если в указанной базе еще существуют несчитанные имена колонок таблиц,
0	- если все имена колонок таблиц считаны.


GetTableName, GetColumnName - пример использования

char buf[128],nameOBDC[128];	//имя источника данных

//создать объект, обслуживающий базу данных

reference bd = CreateDB ("ODBC_DB");

if (ConnectDB (bd, nameOBDC)) {

if (GetTableName (bd, buf, 128, 'F')) {

do {

Message(buf);

if (GetColumnName (bd, buf, buf, 128, 'F')) {

do {

Message(buf);

} while (GetColumnName (bd, buf, buf, 128, 'N'));

}

} while (GetTableName (bd, buf, 128, 'N')) ;

}

}


Relation - Создать новое отношение
Relation  	Пример

Создать новое отношение.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksRelation.

Синтаксис:

reference Relation (reference bd);

Входной параметр:

bd	- указатель на объект БД.
Возвращаемое значение:

указатель на отношение	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Отношение характеризует один запрос и представляет собой описание памяти, необходимой для размещения очередной записи выборки, выполняемого функцией ReadRecord. Является составным объектом, каждое поле которого описывает тип и имя поля (колонки) в таблице базы данных. Имя действительно только в случае работы с текстовым файлом, так как при обмене через ODBC-интерфейс имена уже описаны в блоке заголовка. Количество отношений, определенных для базы данных, не ограничивается.


EndRelation - Завершить описание отношения
EndRelation  	Пример

Завершить описание отношения.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksEndRelation.

Синтаксис:

void EndRelation();

Примечание :

Функция завершает описание отношения, начатое функцией Relation.


RDouble - Определить double-поле в отношении
RDouble  	Пример

Определить double-поле в отношении.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksRDouble.

Синтаксис:

int RDouble (char *name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


RFloat - Определить float-поле в отношении
RFloat  	Пример

Определить float-поле в отношении.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksRFloat.

Синтаксис:

int RFloat (char *name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


RInt - Определить int-поле в отношении
RInt  	Пример

Определить int-поле в отношении.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksRInt.

Синтаксис:

int RInt (char *name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


RLong - Определить double-поле в отношении
RLong  	Пример

Определить long-поле в отношении.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksRLong.

Синтаксис:

int RLong (char *name);

Входной параметр:

name	- имя поля.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр name действителен только при работе с текстовыми базами данных.


RChar - Определить строковое поле в отношении
RChar  	Пример

Определить строковое поле в отношении.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksRChar.

Синтаксис:

int RChar (char *name, int size, long int type);

Входные параметры:

name	- имя колонки таблицы.
size	- размер буфера,
type	- тип данных, хранящихся в БД (действительно для ODBC-баз).
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Параметр name действителен при работе с текстовой базой данных.

2. Параметр type имеет смысл только  для баз данных, связанных через ODBC, и описывает действительный тип колонки базы данных, с которой будет связано поле при выполнении операции DoStatement. Это позволяет получать строковое представление записи произвольного типа. Описания типов для ODBC хранятся в файле SQL.h, который поставляется вместе с модулями ODBC.


DoStatement - Выполнить запрос базы данных
DoStatement  	Пример

Выполнить запрос базы данных.

Синтаксис:

int DoStatement (reference bd, reference rel, char * str);

Входные параметры:

bd	- указатель на объект БД,
rel	- действительный указатель на отношение,
str	- запрос.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр str при работе через ODBC-интерфейс содержит строку SQL-запроса, а при работе с текстовыми файлами - номера полей (колонок) или пустую строку (если обрабатываются все поля таблицы). Для текстовых баз данных  созданный запрос будет обрабатывать все записи, а непосредственно условие выборки определяется функцией Condition.


FreeStatement - Освободить запрос базы данных
FreeStatement  	Пример

Освободить запрос базы данных.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksFreeStatement.

Синтаксис:

int FreeStatement (reference bd, reference rel, unsigned short int fOption);

Входные параметры:

bd	- указатель на объект БД,
rel	- указатель на отношение,
fOption	- тип освобождения.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Происходит освобождение памяти, отведенной для буфера записи функцией Relation. Параметр fOption имеет значение при работе через ODBC-интерфейс и означает тип освобождения (описан в помощи модуля ODBC).


Condition - Задать новое условие запроса
Condition  	Пример

Задать новое условие запроса.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksCondition.

Синтаксис:

int Condition (reference bd, reference rel, char * str);

Входные параметры:

bd	- указатель на объект БД,
rel	- указатель на отношение,
str	- запрос.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

При работе с базой данных через ODBC-интерфейс происходит переопределение составляющей SQL-запроса, начинающейся с ключевого слова WHERE. Состав обрабатываемых полей записи, определенный в отношении, не изменяется. При работе с текстовыми файлами использование функции Condition является единственной возможностью определения условия запроса, так как в функции DoStatement определяется только список обрабатываемых полей записи. Следует отметить, что при работе с текстовыми базами данных не обрабатывается вложенность условий (например, "where d > 10 and d < 14").


ReadRecord - Получить запись базы данных
ReadRecord  	Пример

Получить запись базы данных.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksReadRecord.

Синтаксис:

int ReadRecord (reference bd, reference rel, void *v);

Входные параметры:

bd	- указатель на объект БД,
rel	- указатель на отношение,
v	- объем памяти для хранения хранения одной записи.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Количество и типы полей в структуре v должны соответствовать отношению rel.


ReadStrFromTextFile - Считать строку из текстового файла запросов
ReadStrFromTextFile 	Пример

Считать строку из текстового файла запросов.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksReadStrFrFile.

Синтаксис:

int ReadStrFromTextFile (reference f, char * buff, int numb);

Входные параметры:

f	- указатель на текстовый файл,
numb	- номер строки.
Выходной параметр:

buff	- результат работы метода
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Строка обращения к базе данных начинается с номера, далее после двоеточия идет текст обращения, например:

3:select d,f from Table1 where d=10 and f>d


OpenTextFile - Открыть текстовый файл запросов
OpenTextFile  	Пример

Открыть текстовый файл запросов.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksOpenTextFile.

Синтаксис:

reference OpenTextFile(char * fileName);

Входной параметр:

fileName	- имя файла.
Возвращаемое значение:

указатель на открытый файл	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция работает по правилам стандартной процедуры WINDOWS OpenFile.

2. Реализованные в рамках данного раздела функции работы с текстовыми файлами обеспечивают их построчную обработку и позволяют вынести обращения к базе данных во внешний текстовый файл. Это дает возможность работать с разными платформами СУБД без изменения выполняемого кода приложения.


OpenTextFile, CloseTextFile, ReadStrFromTextFile- пример использования

////////////////////////////////////////////////////////////////////////

//пример текстового файла 1.loa

   10.0             100           1

   15.0              80            2

   20.0             120           1

////////////////////////////////////////////////////////////////////////

//пример текстового файла запросов 11.txt  привязанный к файлу 1.loa

1:TXT_DB

2:1.loa

3:1 2 3

4:a=%.1f

//////////////////////////////////////////////////////////////////////////

//пример текстового файла  запросов 12.txt  привязанный к БД ACCECC c именем

// test в ODBC.INI. ODBCSDK должен быть установлен на ПК

1:ODBC_DB

2:test

3:select a,b,t from table1

4:where a=%.1f

//////////////////////////////////////////////////////////////////////////

#ifndef __LIBTOOL_H

#include <libtool.h>

#endif

#ifndef __LIBDB_H

#include <libdb.h>

#endif

void DrawRect (void) {

  char buf[40], s[128];

  struct {

   double a;

   double b;

   int t;

  } r;

  reference  f = OpenTextFile("11.txt");

  if (EditMacroMode())   //режим редактирования

    GetMacroParam(&r, sizeof(r));

  else {  //cоздание нового макроэлемента

    r.a = 20;

    r.b = 10;

  }

  // считали тип БД  - "TXT_DB"

  if (!ReadStrFromTextFile(f,buf,1)) {Error("Ошибка"); return; }

  reference bd = CreateDB (buf);

  // считали имя БД  - "1.loa"

  if (!ReadStrFromTextFile(f,buf,2)) {Error("Ошибка"); return; }

  ConnectDB(bd, buf);

  //задаем отношение

  reference r1 = Relation(bd);

   RDouble ("a");

   RDouble ("b");

   RInt    ("");

  EndRelation();

  //считывать все  колонки "1 2 3"

  if (!ReadStrFromTextFile(f,buf,3)) {Error("Ошибка"); return; }

  DoStatement(bd, r1, buf);

  ReadDouble("задайте ширину",r.a,0,100, &r.a);

  //считать условие   "a=%.1f"

  if (!ReadStrFromTextFile(f,buf,4)) {Error("Ошибка"); return; }

  sprintf (s, buf,r.a); // условие например a=10.0

  Condition(bd, r1, s);

  if (ReadRecord(bd, r1, &r))  {

    reference m = Macro();

      LineSeg(0, 0, r.a, 0, r.t);

      LineSeg(r.a, 0, r.a, r.b, r.t);

      LineSeg(r.a, r.b, 0, r.b, r.t);

      LineSeg(0, r.b, 0, 0, r.t);

    EndObj();

   //записать параметры в макроэлемент

    SetMacroParam( m, &r, sizeof(r), NULL, NULL, -1);

  }

  else

    Error("прямоугольник с такими параметрами не найден в БД");

  DeleteDB(bd);

  CloseTextFile(f);

}; /* OpenTextFile */


CloseTextFile - Закрыть текстовый файл запросов
CloseTextFile  	Пример

Закрыть текстовый файл запросов.

Аналог данной функции при использовании Automation - метод ksDataBaseObject::ksCloseTextFile.

Синтаксис:

void CloseTextFile (reference f);

Входной параметр:

f	- указатель на текстовый файл.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


Математические функции

Функции данного раздела позволяют выполнять математические вычисления.


Математические функции
Функции

AtanD

CosD

ksDistanceT1T2OnCurve

ksEqualPoints

ksGetCurveMinMaxParametr

ksGetCurvePerpendicular

ksGetCurvePoint

ksGetCurvePointProjection

ksGetCurvePointProjectionEx

ksIsCurveClosedks

ksIsPointInsideContour

ksLengthFromMtr

ksLengthIntoMtr

ksMakeEncloseContours

ksPointFromMtr

ksPointIntoMtr

ksPointsOnCurve

ksTanCurvCurv

MovePoint

Rotate

SheetToView

SinD

Symmetry

TanD

ViewToSheet


SinD - Вычисление синуса
SinD  	Пример

Получить синус аргумента.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksSinD.

Синтаксис:

double SinD (double ang);

Входной параметр:

ang	- угол в градусах.
Возвращаемое значение:

	синус аргумента.


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

void Trig_Example (void) {

double h, b, Ang =60;

        /* Построение прямоугольного треугольника с гипотенузой L и углом Ang */

h = L * SinD (Ang); /* высота треугольника */

b = L * CosD (Ang); /* основание треугольника */

LineSeg ( 0,  0,  0,  h, 1);

LineSeg ( 0,  h,  b,  0, 1);

LineSeg ( b,   0,  0, 0, 1);

        /* Связь катетов */

h = b * TanD (Ang);

        /* Обратное вычисление угла */

Ang = AtanD (h / b);

}; /* Trig_Example */


CosD - Вычисление косинуса
CosD  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksCosD.

Синтаксис:

double CosD (double ang);

Входной параметр:

ang	- угол в градусах.
Возвращаемое значение:

	косинус аргумента.


TanD - Вычисление тангенса
TanD  	Пример

Получить тангенс аргумента.

Аналог данной функции при использовании Automation - метод ksMathematic2D::TanD.

Синтаксис:

double TanD (double ang);

Входной параметр:

ang	- угол в градусах.
Возвращаемое значение:

	тангенс аргумента.


AtanD - Вычисление арктангенса
AtanD  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksAtanD.

Синтаксис:

double AtanD (double tang);

Входной параметр:

tang	- тангенс угла.
Возвращаемое значение:

	значение угла (в градусах).


Symmetry - Осевая симметрия точки
Symmetry  	Пример

Получить координаты точки, симметричной относительно заданной оси.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksSymmetry.

Синтаксис:

void Symmetry (double x, double y,double x1, double y1, double x2, double y2, double *xs, double *ys,);

Входные параметры:

x, y	- координаты базовой точки,
x1, y1	- координаты первой точки на оси симметрии,
x2, y2	- координаты второй точки на оси симметрии,
Выходные параметры:

xs, ys	- координаты симметричной точки.
Возвращаемое значение:

TRUE	- в случае удачного завершения.
FALSE	- в случае неудачи.


Symmetry - пример использования

void Symmetry_Example (void) {

double x[2], y[2];

/* Построение симметричного отрезка относительно горизонтальной оси*/

LineSeg (  10,  60,  60,  90, 1);

Symmetry (10, 60, 0, 50, 100, 50, x[0], y[0]);

Symmetry (60, 90, 0, 50, 100, 50, x[1], y[1]);

LineSeg (x[0], y[0], x[1], y[1], 1);

}; /* Symmetry_Example */


Rotate - Поворот точки
Rotate  	Пример

Повернуть точку относительно центра.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksRotate.

Синтаксис:

void Rotate (double x, double y, double xc, double yc, double ang, double *xr, double *yr);

Входные параметры:

x, y	- координаты базовой точки,
xс, yс	- координаты центра поворота,
ang	- угол поворота.
Выходные параметры:

xr, yr	- координаты точки после поворота.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


Rotate - пример использования

void Rotate_Example (void) {

double x[2], y[2];

LineSeg (  10,  60,  60,  90, 1);

Rotate (10, 60, 0, 0, 90,  x[0], y[0]);

Rotate (60, 90, 0, 0, 90,  x[1], y[1]);

LineSeg (x[0], y[0], x[1], y[1], 1);

}; /* Rotate_Example */


MovePoint - Сдвиг точки по вектору
MovePoint  	Пример

Сдвинуть точку по вектору.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksMovePoint.

Синтаксис:

void MovePoint (double *x, double *y, double ang, double len);

Входные параметры:

x, y	- координаты точки,
ang	- угол вектора сдвига в градусах,
len	- длина вектора сдвига.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Параметры x и y являются одновременно и входными, и выходными. На входе они представляют собой начальные координаты точки, а в результате работы метода они преобразуются в координаты точки после сдвига.


MovePoint - пример использования

void MovePointExample (void) {

double x1, y1, x2, y2 ;

x1 = 10;

y1 = 60;

x2 = 60;

y2 = 90;

LineSeg (  x1,  y1,  x2,  y2, 1);

MovePoint (&x1, &y1, 90,  100);

MovePoint (&x2, &y2, 90,  100);

LineSeg (  x1,  y1,  x2,  y2, 1);

}; /* MovePointExample */


ksPointIntoMtr - Пересчет точки из СК вида в локальную СК
ksPointIntoMtr  	Пример

Пересчитать координаты точки из СК вида в локальную СК.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPointIntoMtr.

Синтаксис:

int ksPointIntoMtr (double x, double y, double *xn, double *yn);

Входные параметры:

x, y	- координаты точки в системе координат вида,
Выходные параметры:

xn, yn	- координаты точки в локальной СК.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksPointIntoMtr - пример использования

{

double x, y, xn, yn;

x = 10;

y = 20;

Point (x, y, 1);

Mtr(100, 100, 45, 2);

ksPointIntoMtr (x, y, &xn, &yn);

}


ksPointFromMtr - Пересчет точки из локальной СК в СК вида
ksPointFromMtr  	Пример

Пересчитать координаты точки из локальной СК в СК вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksPointFromMtr.

Синтаксис:

int ksPointFromMtr (double x, double y, double *xn, double *yn);

Входные параметры:

x, y	- координаты точки в локальной системе координат,
Выходные параметры:

xn, yn	- координаты точки в СК вида.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksPointFromMtr - пример использования

{

double x, y, xn, yn;

Mtr(100, 100, 45, 2);

x = 10;

y = 20;

Point (x, y, 1);

ksPointFromMtr (x, y, &xn, &yn);

}


ViewToSheet - Пересчет точки из СК текущего вида в СК листа
ViewToSheet  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksViewToSheet.

Синтаксис:

int ViewToSheet (double x, double y, double * outX, double * outY);

Входные параметры:

x, y	- координаты точки в системе координат вида,
Выходные параметры:

outX, outY	- координаты точки в системе координат листа.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


SheetToView - Пересчет точки из СК листа в СК текущего вида
SheetToView  	Пример

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

Аналог данной функции при использовании Automation - метод ksDocument2D::ksSheetToView.

Синтаксис:

int (double x, double y, double * outX, double * outY);

Входные параметры:

x, y	- координаты точки в системе координат листа,
Выходные параметры:

outX, outY	- координаты точки в системе координат вида.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.


ksLengthIntoMtr - Пересчет длины из СК вида в локальную СК
ksLengthIntoMtr  	Пример

Пересчитать длину из СК вида в локальную СК.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLengthIntoMtr.

Синтаксис:

int ksLengthIntoMtr (double *len);

Входной и выходной параметр:

len	- длина.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр len является одновременно и входным, и выходным. На входе он представляет собой длину в СК вида, а в результате работы функции преобразуется в длину в локальной СК.


ksLengthIntoMtr - пример использования

{

double Len;

Len = 100;

Mtr(100, 100, 45, 2);

ksLenghtIntoMtr (&Len);

}


ksLengthFromMtr - Пересчет длины из локальной СК в СК вида
ksLengthFromMtr  	Пример

Пересчитать длину из локальной СК в СК вида.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksLengthFromMtr.

Синтаксис:

int ksLengthFromMtr (double *len);

Входной и выходной параметр:

len	- длина.
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Параметр len является одновременно и входным, и выходным. На входе он представляет собой длину в локальной СК, а в результате работы функции преобразуется в длину в СК вида.


ksLengthFromMtr - пример использования

{

double Len;

Mtr(100, 100, 45, 2);

Len = 100;

ksLenghtFromMtr (&Len);

}


ksEqualPoints - Определяет эквивалентность двух точек
ksEqualPoints  	Пример

Определить эквивалентность (совпадение) двух точек.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksEqualPoints.

Синтаксис:

int ksEqualPoints(double x1, double y1, double x2, double y2);

Входные параметры:

x1, y1	- координаты первой точки,
x2, y2	- координаты второй точки.
Возвращаемое значение:

1	- точки совпадают,
0	- точки не совпадают.


ksEqualPoints - пример использования

double x1 = 10, y1= 10;

  double x2 = 20, y2= 20;

  if(ksEqualPoints(x1, y1, x2, y2))

    Message("Точки эквивалентны");

  else

    Message("Точки не эквивалентны");


ksPointsOnCurve - Определить массив точек, равномерно расположенных вдоль кривой
ksPointsOnCurve 	Пример

Получить массив равномерно расположенных по кривой точек.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksPointsOnCurve.

Синтаксис:

reference ksPointsOnCurve (reference curve, int count);

Входные параметры:

curve	- указатель на кривую,
count	- количество точек.
Возвращаемое значение:

- указатель на массив равномерно расположенных на указанной кривой точек.	- в случае успеха,
0	- в случае неудачи.


ksGetCurvePerpendicular - Определение угла нормали к кривой
ksGetCurvePerpendicular 	Пример

Получить угол нормали к кривой в заданной точке.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksGetCurvePerpendicular.

Синтаксис:

double ksGetCurvePerpendicular (reference curve, double x, double y);

Входные параметры:

curve	- указатель на кривую,
x, y	- координаты точки.
Возвращаемое значение:

угол нормали к кривой в заданной точке (в градусах).	- в случае успеха,
-1	- в случае неудачи.
Примечание:

Если указанная точка не находится на кривой, она проецируется на кривую.


ksGetCurvePerpendicular - пример использования
ksGetCurvePerpendicular, ksPointsOnCurve - пример использования

//равномерное размещение точек и перпендикуляров к ним на кривой

reference  pObj;

int count = 10;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите кривую";

int j = Cursor (&info, &x ,&y, 0);

if (j)

{

if (ExistObj(pObj = FindObj(x, y, 1e6)))

{

//узнаем тип объекта

int type = GetObjParam (pObj, 0, 0, 0);	//указатель на графический объект

if 	(type == CIRCLE_OBJ	||	//окружность

type == ARC_OBJ	||	//дуга

type == NURBS_OBJ	||	//nurbs

type == LINESEG_OBJ	||	//отрезок

type == BEZIER_OBJ	||	//bezier

type == CONTOUR_OBJ	||	//контур

type == POLYLINE_OBJ	||	//полилиния

type == ELLIPSE_OBJ	||	//эллипс

type == ELLIPSE_ARC_OBJ	||	//дуга элипса

type == RECTANGLE_OBJ	||	//прямоугольник

type == REGULARPOLYGON_OBJ)	//многоугольник

{

//получим массив точек

reference pointArr =  ksPointsOnCurve (pObj,	//указатель на кривую

count);	//количество точек

if (pointArr)

{

for (uint i = 0; i < count; i++)

{

//в цикле получим все точки на кривой

MathPointParam par;

if (GetArrayItem (pointArr,	// указатель на массив

i,	// индекс в массиве

// (нумерация начинается с 0)

&par,	// указатель на структуру элемента

sizeof (MathPointParam)))

// размер структуры элемента

{

//построим точку

Point (par.x, par.y, 0);

//найдем перпендикуляр к кривой в точке

double angl =  ksGetCurvePerpendicular(pObj, par.x, par.y);

//построим перпендикуляр (отрезок длиной 10 мм)

double x1 = par.x, y1 = par.y, x2 = par.x, y2 = par.y;

MovePoint ( &x1, &y1, angl, 5);

MovePoint ( &x2, &y2, angl+180, 5);

LineSeg (x1, y1, x2, y2, 2);

}

else

MessageBoxResult ();	//ошибка доступа к объекту массива

}

}

else

MessageBoxResult ();	//ошибка

}

else

Error ("Выбранный объект - не кривая");

}

}


ksMakeEncloseContours - Определить группу объектов, охватывающих заданную точку
ksMakeEncloseContours	Пример

Определить группу объектов, охватывающих заданную точку.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksMakeEncloseContours.

Синтаксис:

reference ksMakeEncloseContours (reference gr, double x, double y);

Входные параметры:

gr	- временная группа  или 0, если требуются контуры в текущем виде,
x, y	- координаты точки внутри охватываемых контуров.
Возвращаемое значение:

указатель на временную группу контуров	- в случае удачного завершения,
0	- если контуров не нашлось  или в случае неудачи.


ksMakeEncloseContours, ksHatch - пример использования

RequestInfo  info;

  //обнулить структуру  info;

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

  double x, y;

  info.prompt = "Укажите точку внутри области";

  int j = Cursor(&info, &x ,&y, 0);

  if (j) {

    HatchParam par;

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

    par.step = 2;

    par.ang  = 45;

    //границы штриховки вычисляем

    par.pBoundaries = ksMakeEncloseContours(0, x, y);

    //штриховка

    reference h = ksHatch(&par);

    if (h) {

      LightObj(h, 1);

      Message("Создали штриховку в виде по точке внутри области");

      LightObj(h, 0);

    }

    else

      Error("Ошибка в задании штриховки");

  }


ksIsCurveClosed - Проверить, замкнута ли указанная кривая
ksIsCurveClosed 	Пример

Проверить, замкнута ли указанная кривая.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksIsCurveClosed.

Синтаксис:

int ksIsCurveClosed (reference p);

Входной параметр:

p	- указатель на кривую.
Возвращаемое значение:

1	- кривая замкнута,
0	- кривая разомкнута,
-1	- в случае неудачи.


ksIsPointInsideContour - Проверить положение точки относительно кривой
ksIsPointInsideContour  	Пример

Проверить положение точки относительно кривой.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksIsPointInsideContour.

Синтаксис:

int  ksIsPointInsideContour (reference p, double x, double y, double precision);

Входные параметры:

p	- указатель на контур,
x, y	- координаты точки,
precision	- точность проверки (от 1 до 1E-6).
Возвращаемое значение:

0	- в случае неудачи,
1	- точка вне контура,
2	- точка на контуре,
3	- точка внутри контура.


ksIsPointInsideContour, ksIsCurveClosed - пример использования

reference pObj;

  RequestInfo  info;

  double x, y;

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

  info.prompt = "Укажите контур";

  int j = Cursor(&info, &x ,&y, 0);

  if (j) {

    //выбрать контур

    if(ExistObj(pObj = FindObj(x, y, 1e6)) && GetObjParam(pObj, 0,0,0) == CONTOUR_OBJ ){

      //проверим контур на замкнутость

      int close = ksIsCurveClosed(pObj);

      char buf[250];

      sprintf(buf, " контур %s", close ? "замкнут" : "разомкнут");

      Message(buf);

      info.prompt = "Укажите точку";

      do {

        //задать точку

        j = Cursor(&info, &x ,&y, 0);

        if (j) {

          //проверяем расположение точки

          int side = ksIsPointInsideContour(pObj, x, y, 0.001);

          sprintf(buf, " точка %s", side==1 ? "вне контура" : side==2 ? "на контуре" : "внутри контура");

          Message(buf);

        }

      } while(j);

    }

    else

      Error("Это не контур");

  }


ksGetCurvePointProjection - Определить координаты.
ksGetCurvePointProjection	Пример

Получить координаты проекции точки на кривую.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksGetCurvePointProjection.

Синтаксис:

int ksGetCurvePointProjection (reference curve,

double x, double y,

double *kx, double *ky);

Входные параметры:

curve	- указатель на кривую,
x, y	- координаты проецируемой точки.
Выходные параметры:

kx, ky	- координаты проекции точки на кривую.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksGetCurvePointProjectionEx - Определить координаты.
ksGetCurvePointProjectionEx

Расчитать координаты проекции точки на кривую.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksGetCurvePointProjectionEx.

Синтаксис:

int LIB_FUNC ksGetCurvePointProjectionEx (reference curve,

  	double x, double y,

double *kx, double *ky,

double *t);

Входные параметры:

curve	- указатель на кривую,
x, y	- координаты проецируемой точки.
Выходные параметры:

kx, ky	- координаты проекции точки на кривую,
t	- параметр кривой.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

См. также ksGetCurvePointProjection


ksGetCurvePoint - Преобразовать параметр кривой t в координаты вида.
ksGetCurvePoint

Преобразовать параметр кривой t в координаты вида.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksGetCurvePoint.

Синтаксис:

int LIB_FUNC  ksGetCurvePoint (reference curve,

 double t

 double *kx, double *ky);

Входные параметры:

curve	- указатель на кривую,
t	- параметр кривой.
Выходные параметры:

kx, ky	- координаты проекции точки на кривую,
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

См. также ksGetCurvePointProjectionEx


ksGetCurveMinMaxParametr - Получить минимальный и максимальный параметр кривой.
ksGetCurveMinMaxParametr

Получить минимальный и максимальный параметр кривой.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksGetCurveMinMaxParametr.

Синтаксис:

int LIB_FUNC ksGetCurveMinMaxParametr (reference curve,

double *tMin,

double *tMax);

Входные параметры:

curve	- указатель на кривую,
Выходные параметры:

tMin	- минимальный параметр кривой,
tMax	- максимальный параметр кривой
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


ksDistanceT1T2OnCurve - Получить расстояние между двумя точками на кривой по парамертрам кривой в данных точках
ksDistanceT1T2OnCurve

Получить расстояние между двумя точками на кривой по параметрам кривой в данных точках.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistanceT1T2OnCurve.

Синтаксис:

extern "C" double LIB_FUNC ksDistanceT1T2OnCurve (reference curve,

double t1,

double t2);

Входные параметры:

curve	- указатель на кривую,
t1	- параметр кривой в точке 1,
t2	- параметр кривой в точке 2.
Возвращаемое значение:

	Расстояние между двумя точками на кривой


ksTanCurvCurv - Функция расчета касательных к двум кривым
ksTanCurvCurv	Пример

Функция расчета касательных к двум кривым.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksTanCurvCurv.

Синтаксис:

int LIB_FUNC ksTanCurvCurv(reference p1,

reference p2,

reference pointArr1,

reference pointArr2);

Входные параметры:

p1	- указатель на первую кривую,
p2	- указатель на вторую кривую.
Выходные параметры:

pointArr1	- динамический массив математических точек POINT_ARR на кривой p1,
pointArr2	- динамический массив математических точек POINT_ARR на кривой p2.
Возвращаемое значение:

1	- успешное завершение,
0	- построить касательную нельзя (кривые совпадают или одна кривая вложена в другую),
-1	- первый объект не существует,
-2	- второй объект не существует,
-3	- кривые расположены в разных видах,
-4	- не совпадают СК определения кривых (геометрическая и аннотационная),
-5	- первый объект не является кривой,
-6	- второй объект не является кривой,
-7	- ошибка.


ksTanCurvCurv - пример использования

double x = 0, y = 0;

    if ( Cursor( NULL, &x, &y, NULL) )

    {

      reference obj1 = FindObj( x, y, ::ksGetCursorLimit() );

      if ( obj1 )

      {

        if ( Cursor( NULL, &x, &y, NULL) )

        {

          reference obj2 = FindObj( x, y, ::ksGetCursorLimit() );

          if ( obj2 && obj2 != obj1 )

          {

            reference pointArr1 = CreateArray( POINT_ARR, NULL );

            reference pointArr2 = CreateArray( POINT_ARR, NULL );

            if ( pointArr1 && pointArr2 )

            {

              int res = ksTanCurvCurv( obj1, obj2, pointArr1, pointArr2 );

              if ( res == 1 )

              {

                int count = GetArrayCount( pointArr1 );

                for ( int i = 0; i < count; i++ )

                {

                  MathPointParam point1;

                  MathPointParam point2;

                  GetArrayItem( pointArr1, i, &point1, sizeof(MathPointParam) );

                  GetArrayItem( pointArr2, i, &point2, sizeof(MathPointParam) );

                  LineSeg( point1.x, point1.y, point2.x, point2.y, 1 );

                }

              }

            }

            DeleteArray( pointArr1 );

            DeleteArray( pointArr2 );

          }

        }

      }

    }


Функции вычисления пересечений

Функции данного раздела обеспечивают вычисление пересечений геометрических объектов друг с другом.


Функции вычисления пересечений
Функции

IntersectArcArc

IntersectArcLine

IntersectCirArc

IntersectCirCir

IntersectCirLin

IntersectCurvCurv

IntersectLinLin

IntersectLinSArc

IntersectLinSCir

IntersectLinSLin

IntersectLinSLinS

ksIntersectCurvCurv

Perpendicular


IntersectLinLin - Пересечение прямых
IntersectLinLin  	Пример

Получить координаты точки пересечения двух прямых.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectLinLin.

Синтаксис:

void IntersectLinLin (double x1, double y1,

double angle1,

double x2, double y2,

double angle2,

int *kp,

double *xp, double *yp);

Входные параметры:

x1, y1	- координаты точки на первой прямой,
angle1	- угол наклона первой прямой,
x2, y2	- координаты точки на второй прямой,
angle2	- угол наклона второй прямой,
Выходной параметр:

kp	- число пересечений (0 или 1)
xp, yp	- координаты точки пересечения


IntersectLinLin - пример использования

void IntersectLinLin_Example (void) {

double x, y;

int k;

Line (  20,  20,   45);

Line (  80,  20,  120);

IntersectLinLine (20,  20,  45,  80,  20,  120, &k, &x, &y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k) Point (x, y, 1); /* точка пересечения */

}; /* IntersectLinLin_Example */


IntersectLinSLine - Пересечение отрезка и прямой
IntersectLinSLine  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectLinSLine.

Синтаксис:

void IntersectLinSLine (double x1,
double y1,
double x2,
double y2,
double x,
double y,
double ang,
int *kp,
double *xp,
double *yp);

Входные параметры:

x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
x, y	- координаты точки на прямой,
ang	- угол наклона прямой.
Выходные параметры:

kp	- число пересечений (0 или 1)
xp, yp	- координаты точки пересечения


IntersectLinSLine - пример использования

void IntersectLinSLine_Example (void) {

double x, y;

int k;

LineSeg (  20,  20,   100,  100,  1);

Line (  80,  20,  120);

IntersectLinSLine (20,  20,  100, 100,  80,  20,  120, &k, &x, &y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k) Point (x, y, 1); /* точка пересечения */

};


IntersectCirLin - Пересечение окружности и прямой
IntersectCirLin  	Пример

Получить координаты точек пересечения окружности и прямой.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectCirLin.

Синтаксис:

void IntersectCirLin (double xc,
double yc,
double rad,
double x,
double y,
double ang,
int *kp,
double xp,
double yp);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус окружности,
x, y	- координаты точки на прямой,
ang	- угол наклона прямой.
Выходные параметры:

kp	- число пересечений (от 0 до 2)
xp, yp	- координаты точки пересечения


IntersectCirLin - пример использования

void IntersectCirLin_Example (void) {

double x, y;

int k;

Circle (  60,  60,   30,  1);

Line (  20,  20,   45);

IntersectCirLine (60,  60,  30,  20,  20,  45, &k, &x, &y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k) Point (x, y, 1); /* точка пересечения */

};


IntersectArcLine - Пересечение дуги окружности и прямой
IntersectArcLine 	Пример

Получить координаты точек пересечения дуги окружности и прямой.

Синтаксис:

void IntersectArcLine (double xc,
double yc,
double rad,
double f1,
double f2,
int n,
double x,
double y,
double ang,
int *kp,
double xp[],
double yp[]);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус дуги,
f1, f2	- углы начальной и конечной точек дуги,
n	- направление дуги,
x, y	- координаты точки на прямой,
ang	- угол наклона прямой.
Выходные параметры:

kp	- число пересечений (от 0 до 2)
xp, yp	- координаты точки пересечения


IntersectArcLine - пример использования

void IntersectArcLin_Example (void) {

double x[2], y[2];

int k, i;

Arc (  60,  60,   30,  0,  90,  1,  1);

Line (  20,  20,  45);

IntersectArcLin (60,  60,   30,  0,  90,  1,  20,  20,  45, &k, x, y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k)

for (I=0; i<k; I++)  Point (x[i], y[i], 1); /* точки пересечения */

};


IntersectLinSLinS - Пересечение отрезка с отрезком
IntersectLinSLinS  	Пример

Получить координаты точки пересечения двух отрезков.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectLinSLinS.

Синтаксис:

voidIntersectLinSLinS (double x11, double y11,

double x12, double y12,

double x21, double y21,

double x22, double y22,

int * kp,

double * xp, double *yp);

Входные параметры:

x11, y11	- координаты начальной точки первого отрезка,
x12, y12	- координаты конечной точки первого отрезка,
x21, y21	- координаты начальной точки второго отрезка,
x22, y22	- координаты конечной точки второго отрезка.
Выходные параметры:

kp	- число пересечений (0 или 1)
xp, yp	- координаты точки пересечения


IntersectLinSLinS - пример использования

void IntersectLinSLinS_Example (void) {

double x, y;

int k;

LineSeg (  20,  20,   100,  100,  1);

LineSeg (  80,  20,   0,  50,  1);

IntersectLinSLinS (20,  20,  100, 100,  80,  20,  0, 50, &k, &x, &y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k) Point (x, y, 1); /* точка пересечения */

};


IntersectLinSCir - Пересечение отрезка и окружности
IntersectLinSCir  	Пример

Получить координаты точек пересечения отрезка и окружности.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectLinSCir.

Синтаксис:

void IntersectLinSCir (double x1, double y1,

double x2, double y2,

double xc, double yc,

double rad,

int * kp,

double xp, double yp);

Входные параметры:

x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
xc, yc	- координаты центра окружности,
rad	- радиус окружности.
Выходные параметры:

kp	- число пересечений (от 0 до 2)
xp, yp	- координаты точки пересечения


IntersectLinSCir - пример использования

void IntersectLinSCir_Example (void) {

double x, y;

int k;

Circle (  60,  60,   30,  1);

LineSeg (  20,  20,   100, 100, 1);

IntersectLinSCir (20, 20, 100, 100, 60,  60,  30,  &k, &x, &y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k) Point (x, y, 1); /* точка пересечения */

};


IntersectLinSArc - Пересечение отрезка и дуги
IntersectLinSArc  	Пример

Получить координаты точек пересечения отрезка и дуги.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectLinSArc.

Синтаксис:

void IntersectLinSArc (double x1, double y1,

double x2, double y2,

double xc, double yc,

double rad,

double f1, double f2,

short direct,

int * kp,

double xp, double yp);

Входные параметры:

x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
xc, yc	- координаты центра дуги,
rad	- радиус дуги,
f1, f2	- углы начальной и конечной точек дуги,
direct	- направление дуги: - 1 - против часовой стрелки, - 1 - по часовой стрелке.
Выходные параметры:

kp	- число пересечений (от 0 до 2)
xp, yp	- координаты точки пересечения


IntersectLinSArc - пример использования

void IntersectLinSArc_Example (void) {

double x, y;

int k;

Arc (  60,  60,   30,  0,  90,  1,  1);

LineSeg (  20,  20,   100, 100, 1);

IntersectArcLin (20, 20, 100, 100, 60,  60,   30,  0,  90,  1, &k, x, y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k) Point (x, y, 1); /* точка пересечения */

};


IntersectCirCir - Пересечение 2-х окружностей
IntersectCirCir  	Пример

Получить координаты точек пересечения двух окружностей.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectCirCir.

Синтаксис:

void IntersectCirCir (double xc1,double yc1,
double rad1, double xc2,
double yc2, double rad2,
int *kp, double xp, double yp);

Входные параметры:

xc1, yc1	- координаты центра первой окружности,
rad1	- радиус первой окружности,
xc2, yc2	- координаты центра второй окружности,
rad2	- радиус второй окружности,
Выходные параметры:

kp	- число пересечений (от 0 до 2)
xp, yp	- координаты точки пересечения


IntersectCirCir - пример использования

void IntersectCirCir_Example (void) {

double x[2], y[2];

int k, i;

Circle    (  60,  60,     30,   1);

Circle    (  75,  60,     30,   1);

IntersectCirCir (60,  60,  30,  75,  60,  30, &k, x, y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k)

for (I=0; i<k; I++)  Point (x[i], y[i], 1); /* точки пересечения */

};


IntersectArcArc - Пересечение 2-х дуг окружностей
IntersectArcArc  	Пример

Получить координаты точек пересечения двух дуг окружностей.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectArcArc.

Синтаксис:

void IntersectArcArc (double xac, double yac,

double rada,

double fa1, double fa2,

short directa,

double xbc, double ybc,

double radb,

double fb1, double fb2,

short directb,

int * kp,

double  xp, double yp);

Входные параметры:

xac, yac	- координаты центра первой дуги,
rada	- радиус первой дуги,
fa1, fa2	- углы начальной и конечной точек первой дуги,
directa	- направление первой дуги:   1 - против часовой стрелки,  -1 – по часовой стрелке,
xbc, ybc	- координаты центра второй дуги,
radb	- радиус второй дуги,
fb1, fb2	- углы начальной и конечной точек второй дуги,
directb	- направление второй дуги:   1 - против часовой стрелки,  -1 – по часовой стрелке,
Выходные параметры:

kp	- число пересечений (от 0 до 2)
xp, yp	- координаты точки пересечения


IntersectArcArc - пример использования

void IntersectArcArc_Example (void) {

double x[2], y[2];

int k, i;

Arc    (  60,  60,     30,   -90,  90,   1,  1);

Arc    (  75,  60,     30,   -90,  90,  -1,  1);

IntersectArcArc (60,  60,  30, -90,  90,  1,  75,  60,  30, -90,  90, -1, &k, x, y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k)

for (I=0; i<k; I++)  Point (x[i], y[i], 1); /* точки пересечения */

};


IntersectCirArc - Пересечение окружности и дуги
IntersectCirArc  	Пример

Получить координаты точек пересечения окружности и дуги.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectCirArc.

Синтаксис:

void IntersectCirArc (double xcc, double ycc,

double radc,

double xac, double yac,

double rada,

double fa1, double fa2,

short directa,

int * kp,

double  xp, double yp);

Входные параметры:

xcс, ycс	- координаты центра окружности,
radc	- радиус окружности,
xac, yac	- координаты центра дуги,
rada	- радиус дуги,
fa1, fa2	- углы начальной и конечной точек дуги,
directa	- направление дуги:   1 - против часовой стрелки,  -1 - по часовой стрелке.
Выходные параметры:

kp	- число пересечений (от 0 до 2)
xp, yp	- координаты точки пересечения


IntersectCirArc - пример использования

void IntersectCirArc_Example (void) {

double x[2], y[2];

int k, i;

Circle (  60,  60,     30,   1);

Arc    (  75,  60,     30,   -90,  90,  -1,  1);

IntersectCirArc (60,  60,  30,  75,  60,  30, -90,  90, -1, &k, x, y);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k)

for (I=0; i<k; I++)  Point (x[i], y[i], 1); /* точки пересечения */

};


IntersectCurvCurv - Пересечение 2-х кривых
IntersectCurvCurv  	Пример

Получить координаты точек пересечения двух кривых.

Синтаксис:

void IntersectCurvCurv (reference p1, reference p2, int *kp, double xp, double yp, int MaxCount);

Входные параметры:

p1	- указатель на первую кривую,
p2	- указатель на вторую кривую.
MaxCount	- максимальное число выдаваемых точек пересечений
Выходные параметры:

kp	- число пересечений
xp, yp	- координаты точки пересечения


IntersectCurvCurv - пример использования

void IntersectCurvCurv_Example (void) {

double x[8], y[8];

int k, I;

reference p1, p2;

p1 = Circle  (  60,  60,     30,   1);

p2 = Bezier (  0,  2);

Point ( 20,  20,  0);

Point ( 40,  50,  0);

Point ( 50,  30,  0);

Point ( 70,  90,  0);

Point (100,  20,  0);

EndObj();

IntersectCurvCurv (p1,  p2, &k, x, y, 99);

    char buf[128];

    sprintf(buf, "Количество пересечений = %i", k);

    ::Message(buf);

if (k)

for (I=0; i<k; I++)  Point (x[i], y[i], 1); /* точки пересечения */

};


ksIntersectCurvCurv - Пересечение 2-х кривых
ksIntersectCurvCurv	Пример

Получить координаты точек пересечения двух кривых.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksIntersectCurvCurv.

Синтаксис:

int ksIntersectCurvCurv (reference p1, reference p2, reference array);

Входные параметры:

p1	- указатель на первую кривую,
p2	- указатель на вторую кривую.
Выходной параметр:

array	- динамический массив точек пересечения MathPointParam.
Возвращаемое значение:

1	- пересечение данных объектов обнаружено,
0	- пересечение не обнаружено (кривые не пересекаются или совпадают),
-1	- первый объект не существует,
-2	- второй объект не существует,
-3	- кривые расположены в разных видах,
-4	- не совпадают СК определения кривых,
-5	- первый объект не является кривой,
-6	- второй объект не является кривой,
-7	- ошибка: массив типа POINT_ARR предварительно не создан.
Примечание :

Динамический массив точек пересечения array должен быть создан до передачи его в функцию.


ksIntersectCurvCurv - пример использования

reference line = ::LineSeg(-100, -100, 100, 100, 1); // отрезок

reference cir  = ::Circle (20,   20,   35,       1); // окружность

reference array = ::CreateArray(POINT_ARR, 0);       // создать пустой массив точек пересечения

if (::ksIntersectCurvCurv(line, cir, array) > 0) {   // наити точки пересечения кривых

  int count = ::GetArrayCount(array);                // количество элементов в массиве

    char buf[128];

    ::sprintf(buf, "кол-во элементов = %i", ::GetArrayCount(arr));

    ::Message(buf);

    MathPointParam par;

    for (int i = 0; i < count; i++) {

  if (::GetArrayItem(array, i, &par, sizeof(MathPointParam))) {

    ::sprintf(buf, "координаты %i-й точки : %g ; %g", i, par.x, par.y);

    ::Message(buf);

    }

  }

}


Perpendicular -Определить точку пересечения отрезка и перпендикуляра к нему из заданной точки.
Perpendicular  	Пример

Получить координаты точки пересечения отрезка и перпендикуляра к нему, проходящего через заданную точку.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksPerpendicular.

Синтаксис:

void Perpendicular (double x, double y, double x1, double y1,

double x2, double y2, double *xp, double *yp);

Входные параметры:

x, y	- координаты точки,
x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка,
Выходные параметры:

xp, yp	- координаты точки пересечения отрезка и перпендикуляра к нему, проходящего через заданную точку.


Perpendicular - пример использования

{

double xp, yp;

Perpendicular (-10, 10, -50, -50,

                             50, 50, &xp, &yp);

}


События менеджера выделенных объектов
ksSelectionMngNotify
ISelectionMngNotify

События менеджера выделенных объектов

ksSelectionMngNotify	- интерфейс Automation
ISelectionMngNotify	- интерфейс COM
Позволяют контролировать выделение объектов документа.

В Automation источник событий для графического документа ksSelectionMngNotify можно получить при помощи метода ksDocument2D::GetSelectionMngNotify, для документа-модели источником событий является объект ksSelectionMng.

В СOM источником для подписки является указатель на графический документ или документ-модель.

События...

Методы...


События
менеджера выделенных объектов

Select

Unselect

UnselectAll


Sel_mngSelect
Select

Объект выделен.

Синтаксис Automation:

BOOL Select (VARIANT obj);

Синтаксис COM:

BOOL Select (VARIANT obj);

Входные параметры:

obj	- выделенный объект.
Возвращаемое значение:

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

1. Индекс метода задан в перечислении событий менеджера выделенных объектов....

2. Выделенный объект для графического документа: obj.vt = VT_I4, obj.lVal - reference объекта

3. Выделенный объект для документа-модели: obj.vt = VT_UNKNOWN, obj.punkVal - указатель на интерфейс объекта (объекты дерева - объекты, компоненты, сопряжения)


Sel_mngUnSelect
Unselect

Выделение с объекта снято.

Синтаксис Automation:

BOOL Unselect (VARIANT obj);

Синтаксис COM:

BOOL Unselect (VARIANT obj);

Входные параметры:

obj	- объект, с которого снято выделение.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий менеджера выделенных объектов....

2. Объект, с которого снято выделение для графического документа: obj.vt = VT_I4, obj.lVal - reference объекта

3. Объект, с которого снято выделение для документа-модели: obj.vt = VT_UNKNOWN, obj.punkVal - указатель на интерфейс объекта (объекты дерева - объекты, компоненты, сопряжения)


Sel_mngUnSelectAll
UnselectAll

Выделение снято со всех объектов.

Синтаксис Automation:

BOOL UnselectAll();

Синтаксис COM:

BOOL UnselectAll();

Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий менеджера выделенных объектов....


Варианты оформления спецификации

Параметр variant может иметь следующие значения для выбора варианта оформления спецификации:

0	- простая
1	- групповая, вариант А
2	- групповая, вариант Б
3	- групповая, вариант В	- временно недоступен
4	- групповая, вариант Г	- временно недоступен


Типы колонок спецификации

SPC_CLM_FORMAT	1	- формат
SPC_CLM_ZONE	2	- зона
SPC_CLM_POS	3	- позиция
SPC_CLM_MARK	4	- обозначение
SPC_CLM_NAME	5	- наименование
SPC_CLM_COUNT	6	- количество
SPC_CLM_NOTE	7	- примечание
SPC_CLM_MASSA	8	- масса
SPC_CLM_MATERIAL	9	- материал
SPC_CLM_USER	10	- пользовательская
SPC_CLM_KOD	11	- код
SPC_CLM_FACTORY	12	- предприятие-изготовитель


Типы значений в колонках спецификации

Параметр typeVal может иметь следующие значения для выбора типа данных в колонке спецификации:

SPC_INT	1	- целый
SPC_DOUBLE	2	- вещественный
SPC_STRING	3	- строка
SPC_RECORD	4	- запись


Типы строк спецификации

SPC_BASE_OBJECT	1	- базовый объект
SPC_COMMENT	2	- вспомогательный объект
SPC_SECTION_NAME	3	- заголовок раздела
SPC_BLOCK_NAME	4	- заголовок блока исполнений
SPC_RESERVE_STR	5	- резервная строка
SPC_EMPTY_STR	6	- пустая строка в конце страницы


Типы сортировки объектов в разделе спецификации

SPC_SORT_OFF	0	- нет сортировки
SPC_SORT_COMPOS	1	- составная сортировка
SPC_SORT_ALPHABET	2	- сортировка по алфавиту
SPC_SORT_UP	3	- сортировка по возрастанию числового значения
SPC_SORT_DOCUMENT	4	- сортировка раздела документация
SPC_SORT_DOWN	5	- сортировка по убыванию числового значения


SpcColumnParam - структура параметров колонки спецификации
SpcColumnParam

Структура параметров колонки спецификации

Аналог данных параметров при использовании Automation - интерфейс ksSpcColumnParam.

unsigned int	columnType	тип колонки
unsigned int	ispoln	номер колонки данного типа, начиная с 1
unsigned int	block	номер блока исполнений
unsigned int	typeVal	тип данных в колонке
char	name [TEXT_LENGTH]	имя колонки
Типы колонок спецификации...

Типы данных в колонках...


SpcObjParam - структура параметров объекта спецификации
SpcObjParam

Структура параметров объекта спецификации

Аналог данных параметров при использовании Automation - интерфейс ksSpcObjParam.

reference	docArr	документы, прикрепленные к объекту спецификации
unsigned short	typeObj	тип строки спецификации
unsigned short	numbSection	номер раздела, которому принадлежит объект
unsigned short	blockNumber	номер блока исполнений (нумерация блоков начинается с нуля)
unsigned short	numbSubSection	номер подраздела, которому принадлежит объек
char	subSectionName [MAX_TEXT_LENGTH]	имя подраздела, которому принадлежит объект
unsigned char	firstOnSheet	признак принудительного разрыва страницы перед объектом (0 - разрыва нет,   1 - объект располагается с начала страницы)
unsigned char	insFrgType	признак объекта спецификации, пришедшего со вставкой фрагмента (0 - самостоятельный объект, 1 - объект из вставки фрагмента,   2 - объект из вставки фрагмента редактировался в документ
unsigned	char posInc	признак возрастания позиции объекта (0 - позиция совпадает с позицией предыдущего объекта, 1 - позиция возрастает)
unsigned char	first	признак уникальности текстовой части объекта  (1 - уникальный объект,   0 - объект имеет такую же текстовую часть,    как ближайший расположенный над ним уникальный объект
unsigned char	draw	признак отображения объекта в таблице   (0 - объект не показывать,   1 - объект показывать)
unsigned char	posNotDraw	признак отображения номера позиции объекта (0 - позицию показывать,  1 - не показывать)
unsigned char	ispoln	признак объекта-исполнения   (0 - объект не является исполнением   1 - объект является исполнением)
Структура параметров документов, прикрепленных к объекту  DocAttachedSpcParam...

Типы строк спецификации...

Примечания:

1. В качестве параметра docArr используется динамический массив DOC_SPCOBJ_ARR, содержащий структуры параметров документов, прикрепленных к объекту спецификации (DocAttachedSpcParam).

2. Параметры numbSection, subSectionName, typeObj, insFrgType, first используются только при чтении параметров функцией GetObjParam. Функцией SetObjParam установить значения этих параметров невозможно.

3. Параметры first, draw, posNotDraw, ispoln используются только для базовых объектов спецификации.

4. Параметр blockNumber используется только для вспомогательных объектов спецификации.

5. Параметры docArr, numbSubSection, subSectionName, firstOnSheet, insFrgType и posInc используются для базовых и вспомогательных объектов спецификации.


DocAttachedSpcParam - структура параметров документа, подключенного к объекту спецификации
DocAttachedSpcParam

Структура параметров документа, подключенного к объекту спецификации

Аналог данных параметров при использовании Automation - интерфейс ksDocAttachedSpcParam.

char	fileName [MAX_TEXT_LENGTH]	имя файла подключенного документа
char	comment [MAX_TEXT_LENGTH]	комментарий к подключенному документу
unsigned char	transmit	признак передачи в документ изменений в объекте спецификации (0 - не передавать в изменения в документ,  1 - передавать в изменения в документ)


NumberTypeAttrParam - структура числового значения в колонке спецификации
NumberTypeAttrParam

Структура числового значения в колонке спецификации

Аналог данных параметров при использовании Automation - интерфейс ksNumberTypeAttrParam.

double	minValue	минимальное значение в колонке спецификации
double	maxValue	максимальное значение в колонке спецификации
Примечание:

1. Данная структура заполняется для числовых типов значений в колонке спецификации (SPC_DOUBLE и SPC_INT).


SpcStyleColumnParam - структура параметров стиля колонки спецификации
SpcStyleColumnParam

Структура параметров стиля колонки спецификации

Аналог данных параметров при использовании Automation - интерфейс ksSpcStyleColumnParam.

char	nameColumn [MAX_TEXT_LENGTH]	имя колонки
unsigned int	columnType	тип колонки спецификации
unsigned int	ispoln	номер колонки данного типа
unsigned int	typeVal	тип значения в колонке
unsigned char	edit	разрешение редактирования (1 - редактировать колонку в данном разделе,   0 - не редактировать колонку в данном разделе)
unsigned char	createSum	разрешение расчета суммы (1 - рассчитывать сумму значений в колонке,   0 - не рассчитывать сумму значений в колонке)
unsigned char	multiplyToCount	разрешение умножения при расчете суммы  (1 - при расчете суммы умножать значения в колонке на количество,   0 - не умножать)
unsigned char	useForSectionTitle	признак размещения имен разделов (1 - использовать колонку для показа имени раздела,   0 - не использовать колонку для показа имени раздела)
unsigned char	textDn	признак размещения текста в колонке (1 - выравнивать текст в колонке по нижней строке объекта специифкации,   0 - выравнивать текст в колонке по верхней стро
char	rezerv[10]	служебный параметр
unsigned int	linkId	номер ячейки штампа для связи с данной колонкой
RecordTypeAttrParam	recordType	параметры записи в колонке спецификаци
NumberTypeAttrParam	numberType	параметры числового значения в колонке спецификаци
Типы колонок спецификации...

Структура параметров записи в колонке спецификации RecordTypeAttrParam...

Структура параметров числового значения в колонке спецификации NumberTypeAttrParam...

Примечания:

1. В качестве типа значения в колонке используются LINT_ATTR_TYPE, DOUBLE_ATTR_TYPE, STRING_ATTR_TYPE и RECORD_ATTR_TYPE.

2. В настоящее время параметр rezerv не используется.

3. Структура recordType заполняется, если тип значения в колонке - запись (SPC_RECORD).

4. Структура numberType заполняется для числовых значений в колонке (SPC_DOUBLE и SPC_INT).


SpcStyleSectionParam - структура параметров стиля раздела спецификации
SpcStyleSectionParam

Структура параметров стиля раздела спецификации:

Аналог данных параметров при использовании Automation - интерфейс ksSpcStyleSectionParam.

char	sectionName [MAX_TEXT_LENGTH]	имя раздела
unsigned short	number	номер раздела
unsigned int	sortColumnType	общий тип колонки, по данным в которой производится сортировка
unsigned int	sortIspoln	номер колонки, по данным в которой производится сортировка
unsigned char	dataType	способ ввода данных (0 - ручное заполнение колонок,  1 - ручное заполнение или чтение из основной надписи подключенного документа)
unsigned short	sortType	тип сортировки объектов в разделе
reference	arrColumn	массив структур параметров стиля колонок спецификации
reference	arrAdditionalColumn	массив структур параметров стиля  дополнительных колонок спецификации
char	rezerv[10]	служебный параметр
Типы сортировки объектов в разделе спецификации...

Структура параметров стиля колонки спецификации SpcStyleColumnParam...

Примечание:

1. В настоящее время параметр rezerv не используется.


SpcSubSectionParam - структура параметров подраздела спецификации
SpcSubSectionParam

Структура параметров подраздела спецификации

Аналог данных параметров при использовании Automation - интерфейс ksSpcSubSectionParam.

char	name [MAX_TEXT_LENGTH]	имя подраздела
unsigned short	number	номер подраздела


SpcTuningSectionParam - структура параметров настройки раздела спецификации
SpcTuningSectionParam

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

Аналог данных параметров при использовании Automation - интерфейс ksSpcTuningSectionParam.

unsigned char	subsectionOn	признак деления на подразделы (1 - включено, 0 - выключено)
unsigned char	geometryOn	признак подключения геометрии к объектам раздела (1 - разрешено подключение геометрии,  0 - запрещено подключение геометрии)
unsigned char	positionOn	признак простановки позиций в разделе (1 - позиции ставить, 0 - позиции не ставить)
unsigned char	sortOn	признак наличия сортировки объектов в разделе (1 - сортировка включена, 0 - сортировка выключена)
unsigned char	firstOnSheet	признак размещения раздела (1 - начинать раздел с новой страницы,   0 - начинать раздел после предыдущего раздела
char	rezerv[10]	служебный параметр
unsigned short	rezervCount	число резервных строк (и позиций) в разделе
unsigned short	number	номер раздела
reference	arrSubSection	массив структур параметров подразделов данного раздела
Структура параметров подраздела SpcSubSectionParam...

Примечания:

1. Параметр number предназначен только для чтения.

2. В настоящее время параметр rezerv не используется.


SpcTuningStyleParam - структура параметров настройки спецификации
SpcTuningStyleParam

Структура параметров настройки спецификации

Аналог данных параметров при использовании Automation - интерфейс ksSpcTuningStyleParam.

unsigned char	grToSP	связь сборочного чертежа со спецификацией  (0 – нет связи,  1 - только вставка объектов спецификации,  2 - связь с расчетом позиций)
unsigned char	zoneCalc	расчет зон (1 - рассчитывать зоны, 0 - не рассчитывать зоны)
unsigned char	showSectionName	показ имен разделов (1 - показывать имена разделов в таблице,   0 - не показывать имена разделов)
unsigned char	positionCalc	расчет номеров позиций (1 - позиции рассчитывать  0 - позиции не рассчитывать)
unsigned char	geometryDel	признак удаления геометрии   удаленного объекта спецификации (1 - удалять геометрию при удалении   объекта спецификации, 0 - не удалять геометрию)
unsigned char	positionDel	зарезервировано
unsigned char	massCalc	зарезервировано
unsigned char	disableEmptyStr	наличие пустых строк вокруг заголовка раздела (1 - пустых строк нет,  0 - пустые строки есть)
unsigned char	insertNull	префикс автоматически формируемого номера исполнения (1 - вставлять нули перед числом,  0 - не вставлять нули перед числом)
unsigned char	insertDash	префикс автоматически формируемого номера исполнения (1 - вставлять тире перед числом,  0 - не вставлять тире перед числом)
unsigned char	disableEmptyBlockStr	наличие пустых строк вокруг заголовка блока (1 - пустых строк нет,  0 - пустые строки есть)
unsigned char	showInfoByDetBlock	порядок представления информации (0 - выдавать информацию блоками    1- выдавать информацию по объектам)
unsigned char	ispolnOn	создание исполнений объектов в спецификации (1 - разрешено,  0 - запрещено)
unsigned char	ispolnMarkFull	отображение номеров исполнений объектов (1 - обозначение исполнения показывать полностью,  0 - показывать только номер исполнения)
unsigned char	blocOnNewPage	признак размещения блоков (1 - начинать блоки с новой страницы,   0 - начинать блоки после предыдущих)
unsigned char	userTextStyle	стиль текста объектов спецификации (1 - пользовательский,  0 - из стиля спецификации)
unsigned char	countIspoln	количество исполнений
char	rezerv[10]	служебный параметр
TextStyleParam	sectionTextStyleFirst	параметры стиля текста первой строки заголовков разделов
TextStyleParam	sectionTextStyleNext	параметры стиля текста последующих строк заголовков разделов
TextStyleParam	objectTextStyle	параметры стиля текста объектов спецификации
char	predefinedTextFileName [MAX_TEXT_LENGTH]	имя файла предопределенных текстов, использующегося при заполнении спецификации
reference	arrSection	массив структур параметров настроек разделов
Структура параметров стиля текста TextStyleParam...

Структура параметров настроек раздела спецификации SpcTuningSectionParam...

Примечания:

1. Значение параметра showInfoByDetBlock учитывается, только если количество исполнений больше, чем количество колонок, предназначенных для записи количества на исполнение.

2. В настоящее время параметр rezerv не используется.


SpcStyleParam - структура параметров стиля спецификации
SpcStyleParam

Структура параметров стиля спецификации

Аналог данных параметров при использовании Automation - интерфейс ksSpcStyleParam.

char	layoutName1 [MAX_TEXT_LENGTH]	имя файла библиотеки оформлений для первого листа спецификации
char	layoutName2 [MAX_TEXT_LENGTH]	имя файла библиотеки оформлений для последующих листов спецификации
unsigned int	shtType1	номер оформления из библиотеки для первого листа спецификации
unsigned int	shtType2	номер оформления из библиотеки для последующих листов спецификации
unsigned char	ispolnVariant	вариант оформления спецификации   (0 - простая,   1 - групповая, вариант А,   2 - групповая, вариант Б,   3 - групповая, вариант В,  4 - групповая, вариант Г)
unsigned char	sectionOn	деление на разделы (0 - выключено,  1- включено)
char	rezerv[10]	служебный параметр
SpcTuningStyleParam	tuning	параметры умолчательных настроек спецификации
reference	arrColumn	массив структур параметров колонок
reference	arrAdditionalColumn	массив структур параметров дополнительных колонок
reference	arrSection	массив структур параметров разделов
unsigned	char type	формат листа бумаги  (0 - стандартный,   1 - пользовательский)
struct StandartSheet	stPar	параметры листа бумаги стандартного формата
struct SheetSize	usPar	параметры листа бумаги пользовательского формата
Структура параметров настроек спецификации SpcTuningStyleParam...

Структура параметров стиля колонки спецификацииSpcStyleColumnParam...

Структура параметров раздела спецификации SpcStyleSectionParam...

Структура параметров стандартного листа StandartSheet...

Структура параметров нестандартного листа SheetSize...

Примечания:

1. Структура stPar заполняется, если параметр type равен 1, структура usPar заполняется, если параметр type равен 0.

2. В настоящее время параметр rezerv не используется.


SpcDescrParam - структура параметров описания спецификации
SpcDescrParam

Структура параметров описания спецификации

Аналог данных параметров при использовании Automation - интерфейс ksSpcDescrParam.

char	layoutName [MAX_TEXT_LENGTH]	имя файла библиотеки стилей
unsigned int	styleId	номер стиля в библиотеке
char	spcName [MAX_TEXT_LENGTH]	имя подключенного файла спецификации, имеющей данный стиль


RecordTypeAttrParam - структура записи в колонке спецификации
RecordTypeAttrParam

Структура записи в колонке спецификации

Аналог данных параметров при использовании Automation - интерфейс ksRecordTypeAttrParam.

char	attrLibName [MAX_TEXT_LENGTH]	имя файла библиотеки типов атрибутов
int	key1	значения ключей атрибутов, служащих шаблонами заполнения колонки спецификации в данном разделе
int	key2
int	key3
int	key4
Примечания:

1. Данная структура заполняется, если тип значения в колонке спецификации - запись (SPC_RECORD).

2. Если значение какого-либо ключа 0, то этот ключ не учитывается.


Системные стили текстов

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

0	- умолчательный стиль для данного типа объекта
1	- обычный текст
2	- текст для технических требований
3	- текст размерной надписи
4	- текст в обозначении шероховатости
5	- текст на позиционной линии-выноске
6	- текст над\под полкой линии-выноски
7	- текст на ответвлении линии-выноски
8	- текст в обозначении допуска формы
9	- текст для заголовка таблицы
10	- текст для ячейки таблицы
11	- текст для линии разреза
12	- текст для стрелки направления взгляда
13	- текст в обозначении неуказанной шероховатости
14	- текст в обозначении изменения


Типы привязки текста
TextAlign

Типы привязки текста

txta_Left	0	- точка привязки слева,
txta_Center	1	- точка привязки вцентре,
txta_Right	2	- точка привязки справа.


Признаки начертания текста

INVARIABLE	0	- не менять флаги текста,
NUMERATOR	0x1	- числитель,
DENOMINATOR	0x2	- знаменатель,
END_FRACTION	0x3	- конец дроби,
UPPER_DEVIAT	0x4	- верхнее отклонение,
LOWER_DEVIAT	0x5	- нижнее отклонение,
END_DEVIAT	0x6	- конец отклонений,
S_BASE	0x7	- основание выражения с под- или надстрокой,
S_UPPER_INDEX	0x8	- верхний индекс выражения с под- или надстрокой,
S_LOWER_INDEX	0x9	- нижний индекс выражения с под- или надстрокой,
S_END	0x10	- конец выражения с под- или надстрокой,
SPECIAL_SYMBOL	0x11	- спецзнак,
SPECIAL_SYMBOL_END	0x12	- конец спецзнака для спецзнаков с текстом,
RETURN_BEGIN	0x13	- начало для ввода следующих строк в спецзнаке с текстом, дробях, отклонениях
RETURN_DOWN	0x14	- для ввода следующих строк в спецзнаке с текстом, дробях, отклонениях,
RETURN_RIGHT	0x15	- для ввода строк справа в спецзнаке с текстом, дробях, отклонениях,
TAB	0x16	- табуляция по текущему стилю,
FONT_SYMBOL	0x17	- символ фонта,
ITALIC_ON	0x40	- включить наклон,
ITALIC_OFF	0x80	- выключить наклон,
BOLD_ON	0x100	- включить жирное начертание,
BOLD_OFF	0x200	- выключить жирное начертание,
UNDERLINE_ON	0x400	- включить подчеркивание,
UNDERLINE_OFF	0x800	- выключить подчеркивание,
NEW_LINE	0x1000	- новая строка в параграфе.


TextParam - структура параметров текста
TextParam

Структура параметров текста

Аналог данных параметров при использовании Automation - интерфейс ksTextParam.

ParagraphParam	par	параметры параграфа
reference	pTextLine	указатель на динамический массив строк текста TEXT_LINE_ARR
Структура параметров ParagraphParam...


TextLineParam - структура параметров строки текста
TextLineParam

Структура параметров строки текста

Аналог данных параметров при использовании Automation - интерфейс ksTextLineParam.

unsigned short	style	номер стиля строки текста (0 - стиль по умолчанию)
reference	pTextItem	указатель на динамический массив компонент строки текста TEXT_ITEM_ARR
Системные стили текстов...


TextItemFont - структура параметров шрифта компонента строки текста
TextItemFont

Структура параметров шрифта компоненты строки текста

Аналог данных параметров при использовании Automation - интерфейс ksTextItemFont.

char	fontName [MAX_TEXT_LENGTH]	имя шрифта
double	height	высота шрифта (в миллиметрах)
double	ksu	коэффициент сужения символов
unsigned	long color	цвет символов
unsigned int	bitVector	битовый вектор, определяющий начертание символов (наклон, толщину, подчеркивание, тип составной части - дробь, отклонение и т.д.)


TextItemParam - структура параметров компоненты строки текста
TextItemParam

Структура параметров компоненты строки текста:

Аналог данных параметров при использовании Automation - интерфейс ksTextItemParam.

int	tip	SPECIAL_SYMBOL  или FONT_SYMBOL  или FRACTION_TYPE  или SUM_TYPE   или 0
TextItemFont	font	параметры шрифта компоненты строки текста
char	s [TEXT_LENGTH]	массив символов компоненты строки текста
unsigned int	iSNumb	номер спецсимвола  или символа из произвольного шрифта  или тип отрисовки дроби  или выражения типа суммы  или 0
Структура параметров TextItemFont...


TextStyleParam - структура параметров стиля текста
TextStyleParam

Структура параметров стиля текста:

Аналог данных параметров при использовании Automation - интерфейс ksTextStyleParam.

char	name [TEXT_LENGTH]	имя стиля
double	height	высота текста шрифта
double	ksu	коэффициент сужения символов
double	step	шаг строк
char	fontName [TEXT_LENGTH]	имя шрифта
unsigned long	color	цвет
unsigned char	align	выравнивание (0 - влево, 1 - по центру, 2 - вправо, 3 - на всю ширину
unsigned char	bold	начертание символов  (0 - не утолщенные, 1 - утолщенные)
unsigned char	italic	начертание символов (0 - без наклона, 1 - с наклоном)
unsigned char	underline	подчеркивание (0 - без подчеркивания, 1 - с подчеркиванием)
double	posKS	отступ красной строки (в миллиметрах)
double	stepParPre	интервал перед текстом
double	stepParPst	интервал после текста
double	leftEdge	отступ текста слева
double	rightEdge	отступ текста справа


Структура параметров текстового документа
TextDocumentParam

Структура параметров текстового документа

Аналог данных параметров при использовании Automation - интерфейс ksTextDocumentParam.

unsigned char	regim	0 - видимый режим, 1 - невидимый режим
char	fileName [MAX_TEXT_LENGTH]	имя файла
char	comment [TEXT_LENGTH	комментарий
char	author [TEXT_LENGTH]	автор
LibraryStyleParam	firstSheet	оформление первого листа, структура LibraryStyleParam (имя библиотеки стилей, номер стиля в библиотеке)
LibraryStyleParam	evenSheet	оформление четных листов, структура LibraryStyleParam (имя библиотеки стилей, номер стиля в библиотеке)
LibraryStyleParam	oddSheet	оформление нечетных листов, структура LibraryStyleParam (имя библиотеки стилей, номер стиля в библиотеке)
reference	arrTitleSheet	динамический массив оформлений титульных листов LIBRARY_STYLE_ARR
reference	arrTailSheet	динамический массив оформлений листов заключительной части LIBRARY_STYLE_ARR
unsigned char	type	тип документа из DocType (lt_DocTxtStandart или lt_DocTxtUser)
struct StandartSheet	stPar	параметры стандартного формата, структура StandartSheet, не используется
struct SheetSize	usPar	параметры нестандартного формата, структура SheetSize.


ParagraphParam - структура параметров параграфа
ParagraphParam

Структура параметров параграфа

Аналог данных параметров при использовании Automation - интерфейс ksParagraphParam.

unsigned short	style	номер стиля текста (0 - стиль по умолчанию)
double	x, y	координаты точки привязки текста
double	ang	угол наклона текста
unsigned int	hFormat	признак горизонтального форматирования  (0 - нет форматирования,  1 - сужение текста,  2 - перенос на другую строку)
unsigned int	vFormat	признак вертикального форматирования  (0 - нет форматирования,  1-изменение шага строк)
double	width	ширина блока форматирования
double	height	высота блока форматирования
Системные стили текстов...


Системные стили отрисовки точек

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

0	- точка
1	- крестик
2	- х-точка
3	- квадрат
4	- треугольник
5	- окружность
6	- звезда
7	- перечеркнутый квадрат
8	- утолщенный плюс


Системные стили линий

Параметр style может иметь следующие значения для выбора системного стиля линии:

1	- основная линия,
2	- тонкая линия,
3	- осевая линия,
4	- штриховая линия,
5	- для линии обрыва
6	- вспомогательная линия,
7	- утолщенная,
8	- штрих-пунктирная линия с двумя точками,
9	- штриховая толстая линия
10	- осевая толстая линия
11	- тонкая линия, включаемая в штриховку


Параметры пера пользовательского стиля линии

Второе поле параметра curveType может иметь следующие значения для выбора толщины пера при отрисовке пользовательского стиля линии:

LIKE_BASIC_LINE	0x10	- параметры пера как у системной основной линии
LIKE_THIN_LINE	0x20	- параметры пера как у системной тонкой линии
LIKE_HEAVY_LINE	0x30	- параметры пера как у системной утолщенной линии


Системные стили штриховок

Параметр style может иметь следующие значения для выбора системного стиля штриховки:

0	- металл
1	- неметалл
2	- дерево
3	- камень естественный
4	- керамика
5	- бетон
6	- стекло
7	- жидкость
8	- естественный грунт
9	- насыпной грунт
10	- камень искусственный
11	- железобетон
12	- напряженный железобетон
13	- дерево в продольном сечении
14	- песок


Системные стили значков
Системные типы значков

0	- без значка,
1	- стрелка изнутри,
2	- стрелка снаружи,
3	- засечка с продолжением кривой (с "хвостиком"),
4	- верхняя половина стрелки изнутри,
5	- нижняя половина стрелки изнутри,
6	- большая (7 мм) стрелка изнутри,
7	- стрелка для размера высоты (штрихи длиной 4 мм, расположенные под углом 45 градусов),
8	- треугольник по направлению кривой,
9	- окружность радиусом 2 мм тонкой линией,
10	- обозначение фиктивного центра в виде большого "креста",
11	- знак склеивания,
12	- знак пайки,
13	- знак сшивания,
14	- знак соединения внахлестку металлическими скобами,
15	- знак углового соединения металлическими скобами,
16	- знак монтажного шва,
17	- засечка без продолжения кривой (без "хвостика")


PointParam - структура параметров точки
PointParam

Структура параметров точки (графического объекта)

Аналог данных параметров при использовании Automation - интерфейс ksPointParam.

double	x, y	координаты точки
unsigned short	style	стиль отрисовки точки
Системные стили отрисовки точек...


LineParam - структура параметров вспомогательной прямой
LineParam

Структура параметров вспомогательной прямой

Аналог данных параметров при использовании Automation - интерфейс ksLineParam.

double	x, y	координаты точки на прямой
double	ang	угол наклона прямой к оси X


LineSegParam - структура параметров отрезка
LineSegParam

Структура параметров отрезка:

Аналог данных параметров при использовании Automation - интерфейс ksLineSegParam.

double	x1,y1	координаты начальной точки
double	x2,y2	координаты конечной точки
unsigned short	style	стиль линии
Системные стили линий...


CircleParam - структура параметров окружности
CircleParam

Структура параметров окружности

Аналог данных параметров при использовании Automation - интерфейс ksCircleParam.

double	xc,yc	координаты центра окружности
double	rad	радиус окружности
unsigned short	style	стиль линии
Системные стили линий...


ArcParam - структура параметров дуги
ArcParam

Структура параметров дуги окружности по центру, радиусу и углам

Аналог данных параметров при использовании Automation - интерфейс ksArcByAngleParam.

double	xc,yc	координаты центра дуги
double	rad	радиус дуги
double	ang1	начальный угол
double	ang2	конечный угол
short	dir	направление построения дуги
unsigned short	style	стиль линии
Системные стили линий...


ArcParam1 - структура параметров дуги по точкам
ArcParam1

Структура параметров дуги по точкам

Аналог данных параметров при использовании Automation - интерфейс ksArcByPointParam.

double	xc,yc	координаты центра дуги
double	rad	радиус дуги
double	x1,y1	начальная точка дуги
double	x2,y2	конечная точка дуги
short	dir	направление построения дуги
unsigned short	style	стиль линии
Системные стили линий...


EllipseParam - структура параметров эллипса
EllipseParam

Структура параметров эллипса

Аналог данных параметров при использовании Automation - интерфейс ksEllipseParam.

double	xc,yc	координаты центра эллипса
double	a, b	длина полуосей эллипса
double	ang	угол наклона оси а эллипса к оси X
unsigned short	style	стиль линии
Системные стили линий...


EllipseArcParam - структура параметров дуги эллипса
EllipseArcParam

Структура параметров дуги эллипса

Аналог данных параметров при использовании Automation - интерфейс ksEllipseArcParam.

double	xc;yc	координаты центра эллипса
double	a, b	длина полуосей эллипса
double	ang	угол наклона оси а эллипса к оси X
double	angFirst	начальный угол дуги к оси a
double	angSecond	конечный угол  дуги к оси a
short	dir	направление построения
unsigned short	style	стиль линии
Системные стили линий...


EquidistantParam - структура параметров эквидистанты
EquidistantParam

Структура параметров эквидистанты

Аналог данных параметров при использовании Automation - интерфейс ksEquidistantParam.

reference	geoObj	графический объект - базовая кривая эквидистанты
unsigned char	side	указание, с какой стороны строить эквидистанту  (0 - слева по направлению,   1 - справа по направлению,   2 - с двух сторон)
unsigned char	cutMode	тип обхода углов контура  (0 - обход срезом,   1 - обход дугой)
unsigned char	degState	флаг построения вырожденных сегментов эквидистанты  (0 - вырожденные сегменты запрещены,   1 - вырожденные сегменты разрешены)
double	radRight	радиус эквидистанты справа по направлению кривой
double	adLeft	радиус эквидистанты слева по направлению кривой
unsigned short	style	стиль линии
Системные стили линий...


BezierPointParam - структура параметров узла кривой Безье
BezierPointParam

Структура параметров узла кривой Безье

Аналог данных параметров при использовании Automation - интерфейс ksBezierPointParam.

double	x, y	координаты базовой точк
double	ang	угол наклона касательной к кривой в базовой точке
double	left	расстояние от базовой точки к левой точке узла
double	right	расстояние от базовой точки к правой точке узла


BezierParam - структура параметров кривой Безье
BezierParam

Структура параметров кривой Безье

Аналог данных параметров при использовании Automation - интерфейс ksBezierParam.

reference	pMathPoint	массив неопределенной длины математических точек сплайна
unsigned char	closed	признак замкнутости кривой (0 - не замкнута  1 - замкнута)
unsigned short	style	стиль линии
Системные стили линий...


NurbsPointParam - структура параметров точки NURBS
NurbsPointParam

Структура параметров точки NURBS

Аналог данных параметров при использовании Automation - интерфейс ksNurbsPointParam.

double	x, y	координаты базовой точки
double	weight	вес точки (должен быть больше нуля)


NurbsParam - структура параметров кривой NURBS
NurbsParam

Структура параметров кривой NURBS

Аналог данных параметров при использовании Automation - интерфейс ksNurbsParam.

unsigned char	degree	степень сплайна (от 3 до 8 включительно)
unsigned char	close	признак замыкания сплайна  ( 0 - незамкнутый,  1 - замкнутый)
unsigned short	style	стиль линии
reference	pPoint	динамический массив  точек сплайна (NurbsPointParam)
reference	pKnot	динамический массив узлов сплайна
unsigned char	periodic	признак периодичности сплайна (0 - сплайн непериодический,  1 - сплайн периодический)
Системные стили линий...

Структура параметров точки NURBS (NurbsPointParam)...

Примечание:

1. Параметр periodic используется только для функкции GetObjParam.

2. Если для описания NURBS выбран вариант ALLPARAM или SHEET_ALLPARAM, то способ заполнения массивов pPoint и kPoint определяется значением параметра Close:

- Если Close=0 (NURBS замкнут) - параметры с разжатым узловым вектором,

- Если Close=1 (NURBS разомкнут) - параметры с зажатым узловым вектором.

Если для описания NURBS выбран вариант NURBS_CLAMPED_PARAM или NURBS_CLAMPED_SHEETPARAM, то вне зависимости от значения параметра Close возвращаются параметры с зажатым узловым вектором.


RectParam - структура параметров прямоугольника
RectParam

Структура параметров прямоугольника по диагональным точкам

Аналог данных параметров при использовании Automation - интерфейс ksRectParam.

MathPointParam	pBot	параметры левой нижней точки прямоугольника
MathPointParam	pTop	параметры правой верхней точки прямоугольника
Структура параметров MathPointParam...


RectangleParam - структура параметров прямоугольника
RectangleParam

Структура параметров прямоугольника:

Аналог данных параметров при использовании Automation - интерфейс ksRecangletParam.

double	x, y	координаты базовой точки прямоугольника - одной из его вершин
double	ang	угол наклона стороны прямоугольника, выходящей из базовой точки
double	height	высота прямоугольника
double	wight	"ширина" прямоугольника - длина стороны, характеризующейся углом наклона ang
unsigned short	style	стиль линии
reference	pCorner	динамический массив CORNER_ARR структур параметров скругленных (или усеченных) углов CornerParam
Системные стили линий...

Структура параметров CornerParam...


RegularPolygonParam - структура параметров правильного многоугольника
RegularPolygonParam

Структура параметров правильного многоугольника

Аналог данных параметров при использовании Automation - интерфейс ksRegularPolygonParam

int	count	количество вершин многоугольника
double	xc, yc	центр вписанной или описанной окружности
double	ang	угол радиус-вектора, направленного от центра к первой вершине
double	radius	радиус вписанной или описанной окружности
unsigned char	describe	признак описанного или вписанного многоугольника (0 - вписанный многоугольник,  1 - описанный многоугольник)
unsigned short	style	стиль линии
reference	pCorner	динамический массив CORNER_ARR структур параметров скругленных (или усеченных) углов CornerParam
Системные стили линий...

Структура параметров CornerParam...


CornerParam - структура параметров скругленных углов многоугольников
CornerParam

Структура параметров скругленных (или усеченных) углов прямоугольников и правильных многоугольников

Аналог данных параметров при использовании Automation - интерфейс ksCornerParam.

int	index	индекс (номер) угла (0, 1, 2, ...)
unsigned char	fillet	признак фаски/скругления: 0 - фаска, 1  -скругление.
double	l1	длина фаски первого сегмента или радиус скругления
double	l2	длина фаски второго сегмента
Примечание:

Данная структура используется внутри структуры параметров прямоугольника RectangleParam или правильного многоугольника RegularPolygonParam для задания скруглений и фасок на определенных углах этого многоугольника. Если скругления и фаски не нужны, то структура CornerParam не используется.

Пример работы со структурой CornerParam и массивом CORNER_ARR


CornerParam - пример использования
Пример использования структуры параметров CornerParam
и массива CORNER_ARR

reference arr = ::CreateArray (CORNER_ARR, 0); 	// создать массив параметров углов

 CornerParam par;	// структура параметров угла

 par.index = 5;	// индекс угла

 par.fillet = 0;	// признак фаски

 par.l1 = 345;	// длина фаски 1 сегмента

 par.l2 = 456.987;	// длина фаски 2 сегмента

 ::AddArrayItem (arr, -1, &par, sizeof (CornerParam)); // добавить угол в массив

 par.index = 45;	// индекс угла

 par.fillet = 0;	// признак фаски

 par.l1 = 345;	// длина фаски 1 сегмента

 par.l2 = 456.987;	// длина фаски 2 сегмента

 ::AddArrayItem (arr, -1, &par, sizeof (CornerParam));// добавить угол в массив

 par.index = 65;	// индекс угла

 par.fillet = 0;	// признак фаски

 par.l1 = 345;	// длина фаски 1 сегмента

 par.l2 = 456.987;	// длина фаски 2 сегмента

 ::AddArrayItem (arr, -1, &par, sizeof (CornerParam));// добавить угол в массив

 par.index = 85;	// индекс угла

 par.fillet = 0;	// признак фаски

 par.l1 = 345;	// длина фаски 1 сегмента

 par.l2 = 456.987;	// длина фаски 2 сегмента

 ::AddArrayItem (arr, -1, &par, sizeof (CornerParam));// добавить угол в массив

 int count = ::GetArrayCount (arr);	// количество элементов в массиве

 for ( int i = 0; i < count; i++ ) {

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

char buf[128];

if ( ::GetArrayItem (arr, i, &par, sizeof (CornerParam))) {

::sprintf ( buf, "индекс элемента %i равен %i; %i, %f, %f", i,

par.index, par.fillet, par.l1, par.l2);

::Message (buf);

}

 }

 ::ExcludeArrayItem (arr, 2);	// удаляем второй элемент массива

 count = ::GetArrayCount (arr);	// количество элементов в массиве

 for ( int i = 0; i < count; i++ ) {

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

char buf [128];

if ( ::GetArrayItem (arr, i, &par, sizeof (CornerParam))) {

::sprintf (buf, "индекс элемента %i равен %i; %i, %f, %f", i, par.index,

par.fillet, par.l1, par.l2 );

::Message( buf );

}

 }

 if ( ::GetArrayItem (arr, 1, &par, sizeof (CornerParam))) {

// изменяем параметры элемента с индексом 1

par.index = 0;

par.fillet = 0;

par.l1 = 0;

par.l2 = 0;

::SetArrayItem( arr, 1, &par, sizeof(CornerParam) );

}

 count = ::GetArrayCount (arr);	// количество элементов в массиве

 for ( int i = 0; i < count; i++ ) {

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

char buf[128];

if ( ::GetArrayItem (arr, i, &par, sizeof (CornerParam))) {

::sprintf (buf, "индекс элемента %i равен %i; %i, %f, %f", i, par.index,

par.fillet, par.l1, par.l2);

::Message( buf );

}

 }

 ::ClearArray (arr);	// очищаем массив

 char buf[128];

 ::sprintf (buf, "кол-во элементов = %i", ::GetArrayCount (arr));

 ::Message (buf);

 ::DeleteArray (arr);	// удаляем массив


HatchParam - структура параметров штриховки
HatchParam

Структура параметров штриховки

Аналог данных параметров при использовании Automation - интерфейс ksHatchParam.

unsigned short	style	- стиль штриховки
double	ang	- угол штриховки
double	step	- шаг штриховки
double	width	- ширина полосы штриховки (0 - штриховать всю область)
double	x, y	- базовая точка  (нужна только для отрисовки штриховки)
reference	pBoundaries	- временная группа - границы штриховки
Системные стили штриховок...

Примечание:

Параметр pBoundaries используется для функций GetObjParam и ksHatch.


HatchParamEx - расширенная структура параметров штриховки
HatchParamEx

Расширенная структура параметров штриховки

Аналог данных параметров при использовании Automation - интерфейс ksHatchParam.

unsigned short	style	- стиль штриховки
double	ang	- угол штриховки
double	step	- шаг штриховки
double	width	- ширина полосы штриховки (0 - штриховать всю область)
double	x, y	- координаты базовой точки (нужна только для отрисовки штриховки)
reference	pBoundaries	- временная группа - границы штриховки
unsigned long	color	Цвет, по умолчанию FREE_COLOR (0xff000000l)
unsigned char	sheetAng	0 - угол собственный (накатка); 1 - угол листовой (обычная штриховка)
Системные стили штриховок...

Примечание:

Параметр pBoundaries используется для функций GetObjParam и ksHatch.


CentreParam - структура параметров обозначения центра
CentreParam

Структура параметров обозначения центра

Аналог данных параметров при использовании Automation - интерфейс ksCentreParam.

reference	baseCurve	- указатель на базовую геометрическую кривую (например, окружность) или 0, если создается отдельное обозначение центра
double	x, y	- координаты точки привязки, (если задана базовая кривая, эти параметры не используются)
double	ang	- угол наклона обозначения центра (если задана базовая кривая, этот параметр не используется)
unsigned char	type	- тип обозначения центра:   0 - маленький крестик,   1 - одна ось,   2 - две оси
unsigned char	standXpTail,	- признаки длины для каждого "хвостика" обозначения центра   (0 – длина "хвостика" задается   1 - "хвостик" стандартный)
unsigned char	standXmTail,
unsigned char	standYpTail,
unsigned char	standYmTail
double	lenXpTail,	- длина для каждого "хвостика", если он нестандартный
double	lenXmTail,
double	lenYpTail,
double	lenYmTail
Примечание:

1. Индексация полуосей обозначения центра следующая:

Xp	- по оси абсцисс системы координат обозначения центра

Xm	- против оси абсцисс системы координат обозначения центра

Yp	- по оси ординат системы координат обозначения центра

Ym	- против оси ординат системы координат обозначения центра

2. Система координат обозначения центра – система, оси которой совпадают с осями обозначения, а сама она повернута относительно текущей системы координат на угол ang.


CurvePattern - структура параметров участка прерывистой кривой
CurvePattern

Структура параметров участка штриховой кривой:

Аналог данных параметров при использовании Automation - интерфейс ksCurvePattern.

double	visibleSeg	длина видимого участка
double	invisibleSeg	длина невидимого участка


CurvePicture - структура параметров картинки в стиле линии
CurvePicture

Структура параметров "картинки", включаемой в стиль линии:

Аналог данных параметров при использовании Automation - интерфейс ksCurvePicture.

reference	polygon	динамический массив POLYLINE_ARR ломаных линий, описывающий картинку
reference	fill	динамический массив POLYLINE_ARR точек, описывающий границу заливки
Примечание:

Координаты точек в массивах POLYLINE_ARR и POLYLINE_ARR задаются в масштабе листа относительно нулевой точки картинки.


CurvePatternEx - расширенная структура параметров картинки в стиле линии
CurvePatternEx

Структура параметров участка штриховой кривой (расширенная):

Аналог данных параметров при использовании Automation - интерфейс ksCurvePatternEx.

double	visibleSeg	длина видимого участка
double	invisibleSeg	длина невидимого участка
double	dx, dy	положение базовой точки ("нуля") картинки относительно начала образца
unsigned char	pictureType	тип картинки (0 - картинка в виде массивов ломаных линий,  1 - картинка в виде фрагмента)
struct CurvePicture	picture	параметры картинки, состоящей из ломаных линий
char	frwName[TEXT_LENGTH]	имя фрагмента-источника картинки
Примечания:

1. Какой из параметров - picture или frwName используется, определяется значением параметра pictureType.

2. Картинка в виде фрагмента используется только в функции AddStyle (при создании стиля).


CurveStyleParam - структура параметров стиля кривой
CurveStyleParam

Структура параметров стиля кривой:

Аналог данных параметров при использовании Automation - интерфейс ksCurveStyleParam.

char	name[TEXT_LENGTH]	имя стиля
unsigned long	color	цвет
double	paperWidth	толщина линии на бумаге ("толщина пера")
unsigned char	screenWidth	толщина линии на экране (в пикселах)
unsigned char	curveType	набор полей, определяющих тип кривой  (0 - сплошная,  1 - прерывистая   2 - прерывистая, содержащая картинки)
reference	pattern	для прерывистой кривой - динамический массив параметров участков штриховой кривой
unsigned char	even	для прерывистой кривой:  1 - кривая всегда оканчивается штрихами 0 - кривая оканчивается "как получится"
Структура параметров CurvePattern...

Структура параметров CurvePatternEx...

Параметры пера пользовательского стиля линии...

Примечания:

1. В качестве параметра pattern для прерывистой кривой используется динамический массив CURVE_STYLE, содержащий структуры параметров участков CurvePattern, а для прерывистой кривой, содержащей картинки - динамический массив CURVE_STYLE_EX со структурами CurvePatternEx.

2. Параметр curveType представляет собой набор полей, задающих тип кривой и толщину пера при отрисовке этой кривой.

Например, если curveType = 1|LIKE_BASIC_LINE, то линия прерывистая с параметрами пера как у системной основной линии.

Пример работы со структурой CurveStyleParam


CurveStyleParam - пример использования
Пример использования структуры параметров CurveStyleParam

CurveStyleParam par;   	//структура параметров стиля кривой

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

CurvePattern  cPatt;   	//структура параметров участка штриховой кривой

par.pattern = CreateArray (CURVE_PATTERN_ARR, 0);

cPatt.visibleSeg = 15;

cPatt.invisibleSeg = 7;

AddArrayItem (par.pattern, -1, &cPatt, sizeof (cPatt));

cPatt.visibleSeg = 3;

cPatt.invisibleSeg = 7;

AddArrayItem (par.pattern, -1, &cPatt, sizeof (cPatt));

strcpy (par.name, "style from library"); 	//имя стиля

par.color = RGB (255, 0, 0);             	//цвет линии

par.paperWidth = 0.8;                     	//толщина пера на бумаге

par.screenWidth = 3;                       	//толщина линии на экране

par.curveType = 1|LIKE_BASIC_LINE;         //прерывистая линия с параметрами пера

//как у системной основной линии

par.even = 1;                             	//кривая всегда оканчивается штрихом

UINT tl = AddStyle (CURVE_STYLE,  &par, sizeof (par), 0);

LineSeg (20, 20, 70, 20, tl);

int t = GetStyleParam (CURVE_STYLE, tl, &par, sizeof (par));

if (t) {

char buf[128];

sprintf (buf, "curveType = %s",

par.curveType & LIKE_BASIC_LINE ? "LIKE_BASIC_LINE" : "NO");

Message (buf);

}

else

Error("Ошибка");


ConicArcParam - структура параметров конического сечения
ConicArcParam

Структура параметров конического сечения:

Аналог данных параметров при использовании Automation - интерфейс ksConicArcParam.

double	A, B, C, D, E, F	коэффициенты канонического уравнения
double	x1, y1	координаты начальной точки
double	x2, y2	координаты конечной точки
double	style	стиль линии
double
double
double
Системные стили линий...


PolylineParam - структура параметров ломаной линии
PolylineParam

Структура параметров ломаной линии:

Аналог данных параметров при использовании Automation - интерфейс ksPolylineParam.

reference	pMathPoint	динамический массив математических точек  POINT_ARR
unsigned short	style	стиль линии
Системные стили линий...


PolylineParamEx - расширенная структура параметров ломаной линии
PolylineParamEx

Структура параметров ломаной линии (расширенная):

Аналог данных параметров при использовании Automation - интерфейс ksPolylineParam.

reference	pMathPoint	динамический массив математических точек  POINT_ARR
unsigned short	style	стиль линии
unsigned char	closed	признак замкнутой кривой  (1 - ломаная замкнута, 0 - ломаная разомкнута)
Системные стили линий...


Типы фантомов

Параметр phType может иметь следующие значения для выбора типа фантома:

1	- сдвиг группы
2	- отрезок
3	- прямоугольник
4	- отрезок с заданным углом
5	- половина прямоугольника
6	- пользовательский фантом
7	- окружность


Типы фантомов

0		- удаление фантома
1	ksType1	- сдвиг группы
2	ksType2	- отрезок
3	ksType3	- прямоугольник
4	ksType3	- отрезок с заданным углом
5	ksType5	- половина прямоугольника
6	ksType6	- пользовательский фантом (только рисовать группу, матрицу сдвига не устанавливать)
7	ksType2	окружность


Phantom - структура параметров фантома
Phantom

Структура параметров фантома:

Аналог данных параметров при использовании Automation - интерфейс ksPhantom.

unsigned short	phType	тип фантома
struct Type1	type1	параметры сдвига группы (phType=1)
struct Type2	type2	параметры фантома-отрезка (phType=2)
struct Type3	type3	параметры фантома-прямоугольника (phType=3)
struct Type3	type4	параметры фантома-отрезка с заданным углом (phType=4)
struct Type5	type5	параметры фантома-половины прямоугольника (phType=5)
struct Type6	type6	параметры пользовательского фантома (phType=6)
struct Type2	type7	параметры фантома-окружности (phType=7)
Типы фантомов...

Структура параметров Type1...

Структура параметров Type2...

Структура параметров Type3...

Структура параметров Type5...

Структура параметров Type6...

Примечания:

1. Какая из структур параметров фантома - Type1, Type2, Type3, Type5 или Type6 используется, зависит от значения параметра phType.

2. Фантом-отрезок и фантом-окружность используют одну структуру параметров - Type2.

3. Фантом-прямоугольник и фантом-отрезок с заданным углом используют одну структуру параметров - Type3.


Type1 - структура параметров для сдвига группы
Type1

Структура параметров сдвига группы:

Аналог данных параметров при использовании Automation - интерфейс ksType1.

double	xBase, yBase	координаты начальной точки группы
double	ang	угол поворота группы
double	scale	масштаб
reference	gr	указатель на группу


Type2 - структура параметров фантома-отрезка или фантома-окружности
Type2

Структура параметров фантома-отрезка или фантома-окружности:

Аналог данных параметров при использовании Automation - интерфейс ksType2.

double	xBase, yBase	координаты начальной точки отрезка или центра окружности


Type3 - структура параметров фантома-отрезка с заданным углом и фантома-прямоугольника
Type3

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

Аналог данных параметров при использовании Automation - интерфейс ksType3.

double	xBase, yBase	координаты начала отрезка или угла прямоугольника
double	ang	угол наклона отрезка или диагонали прямоугольника


Type5 - структура параметров фантома-половины прямоугольника с заданным углом
Type5

Структура параметров фантома-половины прямоугольника c заданным углом диагонали:

Аналог данных параметров при использовании Automation - интерфейс ksType5.

double	xBase, yBase	координаты угла прямоугольника
double	ang	угол наклона диагонали прямоугольника
unsigned char	horizon	признак, с какой стороны подходить к курсору (1 - по горизонтали, 0 - по вертикали)


Type6 - структура параметров пользовательского фантома
Type6

Структура параметров пользовательского фантома:

Аналог данных параметров при использовании Automation - интерфейс ksType6.

reference	gr	указатель на временную группу объектов, которая отображается в виде фантома
Примечание:

В этой структуре, в отличие от структуры Type1, не устанавливаются параметры поворота и масштабирования группы.


HotPointDescription - структура параметров характерной точки
HotPointDescription

Структура параметров характерной точки:

double	x, y	координаты точки в СК объекта
char	text	текст (однострочный), расположенный рядом с точкой
int	cursorId	идентификатор стандартного курсора
HINSTANCE	cursorInst	описание курсора при прохождении над точкой
Примечание:

Текст text должен быть статическим хотя бы на время работы с библиотечным элементом.


EllipseArcParam1 - структура параметров дуги эллипса
EllipseArcParam1

Структура параметров дуги эллипса (при параметрическом построении):

Аналог данных параметров при использовании Automation - интерфейс ksEllipseArcParam1.

double	xc, yc	координаты центра эллипса
double	a, b	длина полуосей эллипса
double	ang	угол наклона полуоси a к оси ОX
double	parFirst	начальное значение параметра
double	parSecond	конечное значение параметра
short	dir	направление построения дуги
unsigned short	style	стиль линии
Системные стили линий...


HatchStyleParam - структура параметров стиля штриховки
HatchStyleParam

Структура параметров стиля штриховки:

Аналог данных параметров при использовании Automation - интерфейс ksHatchStyleParam.

char	name[TEXT_LENGTH]	имя стиля штриховки
double	step	шаг штриховки по умолчанию
double	ang	угол наклона
MathPointParam	refPoint	базовая точка штриховки
double	width	ширина полосы штриховки
unsigned long	color	цвет штриховки (по умолчанию FREE_COLOR (0xff000000l))
unsigned	char mayChangeAngle	признак, показывающий, разрешено ли менять угол наклона штриховки
unsigned char	mayChangeWidth	признак, показывающий, разрешено ли менять ширину полосы штриховки
unsigned char	mayChangeSpace	признак, показывающий, разрешено ли менять шаг (масштаб) штриховки
unsigned char	isScalable	признак изменения расстояния между линиями штриховки  (1 - по масштабу, 0 - по шагу)
reference	arrLineParam	массив структур параметров линий, участвующих в штриховке (HatchLineParam)
Структура параметров MathPointParam...

Структура параметров HatchLineParam...


HatchLineParam - структура параметров линии штриховки
HatchLineParam

Структура параметров линии штриховки:

Аналог данных параметров при использовании Automation - интерфейс ksHatchLineParam.

double	x, y	точка привязки линии,
double	dx, dy	смещение для следующей линии; dy должен быть отличен от нуля!
double	ang	угол наклона линии
unsigned char	typeCurvStyle	признак стиля линии (0 - системный 1 - пользовательский)
unsigned short	style	системный стиль линии
CurveStyleParam	curPar	параметры пользовательского стиля линии
Системные стили линий...

Структура параметров CurveStyleParam...


AxisLineParam - структура параметров осевой линии
AxisLineParam

Структура параметров осевой линии

Аналог данных параметров при использовании Automation - интерфейс ksAxisLineParam.

MathPointParam	begPoint	координаты начальной точки осевой линии
MathPointParam	endPoint	координаты конечной точки осевой линии
Форматы растра...

Цвета вывода объектов...

Цветность растра...


TAN - структура параметров касательной кривой
TAN

Структура параметров прямой, касательной к двум кривым

Аналог данных параметров при использовании Automation - интерфейс ksTAN.

double	x1, y1	координаты первой точки касания
double	x2, y2	координаты второй точки касания


CON - структура параметров сопрягающей окружности
CON

Структура параметров сопряжения двух кривых окружностью

Аналог данных параметров при использовании Automation - интерфейс ksCON.

double	xc, yc	координаты центра сопрягающей окружности
double	x1, y1	координаты первой точки сопряжения
double	x2, y2	координаты второй точки сопряжения


Типы параметров объектов

ALLPARAM	-1	- все параметры объекта,
SHEET_ALLPARAM	-2	- все параметры объекта в СК листа,
NURBS_CLAMPED_ALLPARAM	-5	- параметры NURBS; преобразовать узловой вектор в зажатый,
NURBS_CLAMPED_SHEET_ALLPARAM	-6	- параметры NURBS в СК листа; преобразовать узловой вектор в зажатый,
VIEW_ALLPARAM	-7	- все параметры объекта в СК вида,
ANGLE_ARC_PARAM	0	- параметры дуги по углам (для дуги и эллиптической дуги),
POINT_ARC_PARAM	1	- параметры дуги по точкам (для дуги и эллиптической дуги),
VIEW_LAYER_STATE	1	- состояние слоя, вида,
DOCUMENT_STATE	1	- состояние документа,
DOCUMENT_SIZE	0	- размер листа,
DIM_TEXT_PARAM	0	- параметры текста для размеров,
DIM_SOURSE_PARAM	1	- параметры привязки размера,
DIM_DRAW_PARAM	2	- параметры отрисовки размера,
DIM_VALUE	3	- значение размера,
DIM_PARTS	4	- составляющие части для размеров (структура DimensionPartsParam),
SHEET_DIM_PARTS	5	- составляющие части для размеров (структура DimensionPartsParam в СК листа),
TECHNICAL_DEMAND_PAR	-1	- параметры технических требований,
TT_FIRST_STR	1000	- начало отсчета для получения или замены текста техтребований по строкам,
CONIC_PARAM	2	- параметры конического сечения (для эллипса и эллиптической дуги),
SPC_TUNING_PARAM	0	- параметры настроек для стиля спецификации,
ALL_OBJ	0	все объекты, которые могут входить в вид, кроме вспомогательных.


Константы типов интерфейсов параметров для COM в 2D

kо_ParametrizeParam	9000	ksParametrizationParam - параметры параметризации группы объектов.


Типы отрисовки стрелок в размерах

0	- стрелки нет
1	- стрелка изнутри
2	- стрелка снаружи
3	- засечка
4	- точка
0xff	- размер с обрывом


Типы размеров высоты

OD_FRONTVIEW	0x00	- для вида спереди, с полкой и стрелкой, возможна выносная линия,
OD_TOPVIEW	0x08	- для вида сверху без линии-выноски - только текст в рамке,
OD_TOPVIEWLEADER	0x10	- для вида сверху с линией-выноской.


Признаки размерной надписи

_AUTONOMINAL	0x1	- автоматическое определение номинального значения размера,
_RECTTEXT	0x2	- текст в рамке,
_PREFIX	0x4	- есть текст до номинала,
_NOMINALOFF	0x8	- нет  номинала,
_TOLERANCE	0x10	- проставлять квалитет,
_DEVIATION	0x20	- проставлять отклонения,
_UNIT	0x40	- единица измерения,
_SUFFIX	0x80	- есть текст после номинала,
_DEVIATION_INFORM	0x100	- при включенном флаге _DEVIATION отклонения есть в массиве текстов (даже если простановка отклонений - не ручная).
_UNDER_LINE	0x200	размер с подчеркиванием
_BRACKETS	0x400	размер в скобках
_SQUARE_BRACKETS	0x800	размер в квадратных скобках, используется вместе с _BRACKETS
Пример использования


Пример
Пример использования

_BRACKETS размер в круглых скобках

_BRACKETS | _SQUARE_BRACKETS - размер в квадратных скобках


DimText - структура параметров размерной надписи
DimText

Структура параметров размерной надписи:

Аналог данных параметров при использовании Automation - интерфейс ksDimTextParam.

unsigned short	style	стиль текста размера,  (0 - стиль по умолчанию)
unsigned int	sign	номер условного значка перед номиналом  (0 - нет значка,  1 - диаметр,  2 - квадрат  3 - радиус   > 3 - номер значка из шрифта Symbol type A
unsigned int	bitFlag	0 - ручное задание или набор битовых полей, задающих признаки размерной надписи
reference	pText	динамический массив строк
unsigned char	stringFlag	флаг используемого типа массива строк (0 - динамический массив  строк символов CHAR_STR_ARR 1 - динамический массив  строк текста TEXT_LINE_ARR
Признаки размерной надписи...

Структура параметров TextLineParam...

Примечание:

1. Строки в pText должны лежать в последовательности с учетом включения битовых флагов в bitFlag: текст перед номиналом, номинал, квалитет, верхнее отклонение, нижнее отклонение, единицы измерения, текст после размера, последующие строки.

2. Верхнее отклонение, нижнее отклонение принимаются, если флаг TOLERANCE не включен, а DEVIATION включен (это признак ручной простановки отклонений).

3. Для функции GetObjParam нужно определить флаг stringFlag. Если он равен нулю, выдается динамический массив  строк символов.

4. Динамический массив TEXT_LINE_ARR содержит структуру TextLineParam.


LDimSource - структура параметров привязки линейного размера
LDimSource

Структура параметров привязки линейного  размера:

Аналог данных параметров при использовании Automation - интерфейс ksLDimSourceParam.

unsigned char	ps	признак ориентации размерной линии (0 -горизонтально, 1-вертикально, 2 - параллельно отрезку, соединяющему точки привязки 3 - по dx, dy, 4 - параллельно отрезку с выносными линиями по dx, dy.
double	x1, y1	координаты первой точки привязки
double	x2, y2	координаты второй точки привязк
double	dx, dy	вектор, определяющий положение размерной линии
unsigned char	basePoint	признак, указывающий, от какой точки откладывать dx, dy:(1 - от первой точки, 2 - от второй точки)
Примечание:

Вектор, определяющий положение размерной линии - аннотационный (не зависит от масштаба).


LDimParam - структура параметров линейного размера
LDimParam

Структура параметров линейного размера:

Аналог данных параметров при использовании Automation - интерфейс ksLDimParam.

DimText	tPar	параметры размерной надписи
DimDrawing	dPar	параметры изображения размера
LDimSource	sPar	параметры привязки линейного размера
Структура параметров размерной надписи DimText...

Структура параметров изображения размера DimDrawing...

Структура параметров привязки линейного размера LDimSource...


LBreakDimSource - структура параметров привязки линейного размера с обрывом
LBreakDimSource

Структура параметров привязки линейного размера с обрывом:

Аналог данных параметров при использовании Automation - интерфейс ksLBreakDimSource.

double	x1, y1	координаты первой точки привязки
double	x2, y2	координаты точки выхода стрелки
double	x3, y3	координаты точки на размерной линии


LBreakDimParam - структура параметров линейного размера с обрывом
LBreakDimParam

Структура параметров линейного размера с обрывом:

Аналог данных параметров при использовании Automation - интерфейс ksLBreakDimParam.

DimText	tPar	параметры размерной надписи
BreakDimDrawing	dPar	параметры изображения размера
LBreakDimSource	sPar	параметры привязки линейного размера
Структура параметров размерной надписи DimText...

Структура параметров изображения размера с обрывом BreakDimDrawing...

Структура параметров привязки линейного размера с обрывом LBreakDimSource...


ADimSource - структура параметров привязки углового размера
ADimSource

Структура параметров привязки углового размера:

Аналог данных параметров при использовании Automation - интерфейс ksADimSourceParam.

double	xc, yc	координаты центра размерной дуги
double	rad	радиус размерной дуги
double	ang1	начальный угол  размерной дуги
double	ang2	конечный угол  размерной дуги
int	dir	направление: (1 - размерная линия против часовой стрелки; -1 - по часовой стрелке)
double	x1, y1	координаты точки выхода первой выносной линии
double	x2, y2	координаты точки выхода второй выносной линии
Примечание:

Радиус размерной дуги - аннотационный параметр (он не зависит от масштаба).


ADimParam - структура параметров углового размера
ADimParam

Структура параметров углового размера:

Аналог данных параметров при использовании Automation - интерфейс ksADimParam.

DimText	tPar	параметры размерной надписи
DimDrawing	dPar	параметры изображения размера
ADimSource	sPar	параметры привязки углового размера
Структура параметров размерной надписи DimText...

Структура параметров изображения размера DimDrawing...

Структура параметров привязки углового размера ADimSource...


ABreakDimParam - структура параметров углового размера с обрывом
ABreakDimParam

Структура параметров углового размера с обрывом:

Аналог данных параметров при использовании Automation - интерфейс ksABreakDimParam.

DimText	tPar	параметры размерной надписи
BreakDimDrawing	dPar	параметры изображения размера
ADimSource	sPar	параметры привязки углового размера
Структура параметров размерной надписи DimText...

Структура параметров изображения размера с обрывом BreakDimDrawing...

Структура параметров привязки углового размера ADimSource...


BreakDimDrawing - структура параметров отрисовки размера с обрывом
BreakDimDrawing

Структура параметров отрисовки линейного или углового размера с обрывом:

Аналог данных параметров при использовании Automation - интерфейс ksBreakDimDrawing.

unsigned char	pl	признак отрисовки выносной линии (0 - отрисовка включена, 1 - отрисовка выключена)
unsigned char	pt	тип стрелки у первой выносной линии  (0 - стрелки нет, 1 - стрелка изнутри, 2 - стрелка снаружи, 3 - засечка, 4 - точка)
int	textPos	положение текста:  0 - автоматическое размещение текста, > 0 - значение расстояния от выносной линии до текста в направлении от первой точки ко второй)
int	shelfDir	признак отрисовки полки  (0 - нет полки, -1 - полка направлена влево,  1 - полка направлена вправо,  2 - полка направлена вверх,   3 - полка направлена вниз)
double	ang	угол наклона "ножки" полки
int	length	длина "ножки" полки
Примечание:

Параметры textPos и length являются аннотационными (не зависят от масштаба, показывают расстояние и длину "на бумаге")


RDimSource - структура параметров привязки диаметрального и радиального размеров
RDimSource

Структура параметров привязки диаметрального и радиального размеров:

Аналог данных параметров при использовании Automation - интерфейс ksRDimSourceParam.

double	xc, yc	координаты центра дуги или окружности
double	rad	радиус дуги или окружности


DimDrawing - структура параметров изображения линейного и углового размеров
DimDrawing

Структура параметров отрисовки линейного и углового размеров:

Аналог данных параметров при использовании Automation - интерфейс ksDimDrawingParam.

unsigned char	pl1	признак отрисовки первой выносной линии: (0 - включена, 1 - выключена)
unsigned char	pl2	признак отрисовки второй выносной линии: (0 - включена, 1 - выключена)
unsigned char	pt1	тип стрелки у первой выносной линии
unsigned char	pt2	тип стрелки у второй выносной линии
int	textPos	положение текста (0 - автоматическое размещение текста, > 0 - на указанное расстояние в направлении от первой точки ко второй; < 0 - на указанное расстояние в направлении от второй точки к первой;
unsigned char	extBase	параметр отрисовки текста:  (0 - в центре, 1- textPos относительно 1 точки; 2 - textPos относительно 2 точки; 3 - общая размерная линия)
int	shelfDir	наличие выносной полки:  (0 - нет выносной полки, -1 - полка направлена влево   1 - полка направлена вправо,  2 - полка направлена вверх,  3 - полка направлена вниз)
double	ang	угол наклона "ножки" выносной полки
int	length	длина "ножки" выносной полки
Типы отрисовки стрелок в размерах...

Примечания:

1. Значение параметра textPos задается в миллиметрах для линейных размеров и в градусах для угловых. Этот параметр - аннотационный (не зависит от масштаба).

2. Параметр length - аннотационный (не зависит от масштаба).


RDimDrawing - структура параметров изображения диаметрального и радиального размеров
RDimDrawing

Структура параметров отрисовки  диаметрального и радиального размеров:

Аналог данных параметров при использовании Automation - интерфейс ksRDimDrawingParam.

unsigned char	pt1	тип стрелки у первой выносной линии
unsigned char	pt2	диаметральный размер: тип стрелки у второй выносной линии, радиальный размер: 0 - размер от центра, 1 - не от центра
int	textPos	параметр отрисовки текста или длина ножки; аннотационный ( не зависит от масштаба )
int	shelfDir	наличие горизонтальной выносной полки:  (0 - нет выносной полки,  -1 - полка направлена влево,    1 - полка направлена вправо,   2 - полка направлена вверх,   3 - полка направлена вниз)
double	ang	угол наклона размерной линии
struct RDimDrawing {

Типы отрисовки стрелок в размерах...


RDimParam - структура параметров диаметрального и обычного радиального размера
RDimParam

Структура параметров диаметрального  и  обычного радиального размера:

Аналог данных параметров при использовании Automation - интерфейс ksRDimParam.

DimText	tPar	параметры размерной надписи
RDimDrawing	dPar	параметры изображения размера
RDimSource	sPar	параметры привязки диаметрального и радиального размеров
Структура параметров DimText...

Структура параметров RDimDrawing...

Структура параметров RDimSource...


RBreakDrawing - структура параметров изображения радиального размера с изломом
RBreakDrawing

Структура параметров изображения радиального размера с изломом

Аналог данных параметров при использовании Automation - интерфейс ksRBreakDrawingParam.

unsigned char	pt	тип стрелки
double	ang	угол наклона размерной линии
unsigned int	pb	длина излома
Типы отрисовки стрелок в размерах...

Примечание:

Длина излома - аннотационный параметр (он не зависит от масштаба).


RBreakDimParam - структура параметров радиального размера с изломом
RBreakDimParam

Структура параметров радиального размера с изломом:

Аналог данных параметров при использовании Automation - интерфейс ksRBreakDimParam.

RDimSource	sPar	параметры привязки углового размера
RBreakDrawing	dPar	параметры изображения размера
DimText	tPar	параметры размерной надписи
Структура параметров RDimSource...

Структура параметров RBreakDrawing...

Структура параметров DimText...


ShelfPar - структура параметров выносной полки
ShelfPar

Структура параметров выносной полки:

Аналог данных параметров при использовании Automation - интерфейс ksShelfPar.

int	psh	направление полки параллельно оси X (0 - нет выносной полки, -1 - полка направлена влево,  1 - полка направлена вправо,  2 - полка направлена вверх,  3 - полка направлена вниз)
double	ang	угол наклона размерной линии для диаметрального и радиального размеров
int	length	длина "ножки" выносной линии


DimensionPartsParam - структура параметров объектов, составляющих размер
DimensionPartsParam

Структура параметров объектов, составляющих размер:

Аналог данных параметров при использовании Automation - интерфейс ksDimensionPartsParam.

reference	line1	первая выносная линия
reference	line2	вторая выносная линия
reference	dimLine	размерная  линия
reference	dimLine1	продолжение размерной линии
reference	leg	"ножка"
reference	shelf	полка
reference	gr	временная группа всех объектов размера, включая тексты
reference	curveExt	- продолжение базовой кривой (у радиального размера дуги) - линия-"указатель", проведенная от размерной надписи к дуге (у размера дуги).
Примечание:

Данная структура содержит ссылки на все составляющие размера. Для их получения "рассыпается" копия размера в памяти. Размер в документе остается единым объектом.


DimensionsOptions - структура параметров для определения настроек размеров
DimensionsOptions

Структура параметров для определения настроек размеров:

Аналог данных параметров при использовании Automation - интерфейс ksDimensionsOptions.

double	proLineExtension	выход выносных линий за размерную
double	textDistanceFromDimLine	расстояние от размерной линии до текста
double	textDistanceFromProLine	расстояние от выносных линий до текста
double	dimLineExtension	выход размерной линии за текст
double	arrowLength	длина стрелки размера
unsigned short	style	стиль текста
unsigned char	decimalsCount	количество знаков после запятой (от 0 до 9)
int	anglePrecisionLevel	точность углового размера: 0 - градусы, 1- минуты, 2- секунды.
int	hiddenToleranceNumber	максимальный номер показываемого квалитета (от 1 до 17) -1 - показ квалитета не включен


OrdinatedDrawing - структура параметров изображения размера высоты
OrdinatedDrawing

Структура параметров изображения размера высоты:

Аналог данных параметров при использовании Automation - интерфейс ksOrdinatedDrawingParam.

unsigned char	type	тип размера высоты
Типы размеров высоты...


OrdinatedSource - структура параметров привязки размера высоты
OrdinatedSource

Структура параметров привязки размера высоты:

Аналог данных параметров при использовании Automation - интерфейс ksOrdinatedSourceParam.

double	x0, y0	координаты точки, задающей нулевой уровень
double	x1, y1	координаты точки, задающей измеряемый уровень
double	x2, y2	координаты точки, задающей положение размерной надписи


OrdinatedDimParam - структура параметров размера высоты
OrdinatedDimParam

Структура параметров размера высоты:

Аналог данных параметров при использовании Automation - интерфейс ksOrdinatedDimParam.

DimText	tPar	размерная надпись
OrdinatedDrawing	dPar	параметры изображения размера
OrdinatedSource	sPar	параметры привязки размера
Структура параметров изображения размера высоты OrdinatedDrawing...

Структура параметров привязки размера высоты OrdinatedSource...


Типы объектов оформления чертежа

0	- основная надпись,
1	- технические требования,
2	- знак неуказанной шероховатости,
3	- текущий вид,
4	- спецификация на листе,
5	- текущий слой.


RoughPar - структура параметров обозначения шероховатости
RoughPar

Структура параметров обозначения шероховатости

Аналог данных параметров при использовании Automation - интерфейс ksRoughPar.

unsigned short	style	стиль текста; (если style = 0, то стиль умолчательный, если style = INDICATIN_TEXT_LINE_ARR,   то pText - массив TEXT_LINE_ARR
unsigned char	type	тип шероховатости  (0 - вид обработки не устанавливается,  1 - обработка удалением слоя материала,   2 - обработка без удаления слоя материала)
unsigned char	around	признак наличия обозначения контура: 0 - обычный знак шероховатости, 1 - шероховатость "по контуру
double	x, y	координаты точки привязки
double	ang	угол наклона оси значка шероховатости к оси X
unsigned char	cText0	количество строк в тексте над знаком
unsigned char	cText1	количество строк в тексте над полкой
unsigned char	cText2	количество строк в первом тексте под полкой (не более 2 строк)
unsigned char	cText3	количество строк во втором тексте под полкой (не более 1 строки)
reference	pText	динамический массив строк: - если style = INDICATIN_TEXT_LINE_ARR, то TEXT_LINE_ARR, - если style - другой, то CHAR_STR_ARR.
Примечания:

1. Текст над знаком содержит параметры шероховатости по ГОСТ 2789-73.

Текст над полкой содержит вид обработки и дополнительные указания по ГОСТ 2789-73.

Первый текст под полкой содержит базовую длину по ГОСТ 2789-73.

Второй текст под полкой содержит условное обозначение направления неровностей по ГОСТ 2789-73.

2. Если cText0 = 0 или cText1 = 0 или cText2 = 0 или cText3 = 0, то соответствующий текст в обозначении шероховатости отсутствует.


ToleranceBranch - структура параметров опоры допуска формы
ToleranceBranch

Структура параметров "опоры" допуска формы

Аналог данных параметров при использовании Automation - интерфейс ksToleranceBranch.

unsigned char	arrowType	тип опоры; (0 - нет опоры,  1 - треугольник, 2 - стрелка)
unsigned char	tCorner	число от 1 до 8 определяющее возможные положения точки выхода "опоры" из таблицы.
reference	pMathPoint	динамический массив математических точек (POINT_ARR)
Примечания:

1. В динамический массив математических точек (POINT_ARR) не нужно помещать первый узел "опоры" - точку на таблице (она определена параметром tCorner). Остальные узлы - точки изломов "опоры" (они могут отсутствовать). Последний узел - конец опоры (указывает на опорный объект).


ToleranceParam - структура параметров обозначения допуска формы
ToleranceParam

Структура параметров обозначения допуска формы и расположения поверхностей

Аналог данных параметров при использовании Automation - интерфейс ksToleranceParam.

unsigned char	tBase	число от 1 до 8 определяющее возможные положения базовой точки
unsigned short	style	стиль текста (0 - стиль по умолчанию)
double	x, y	координаты базовой точки
unsigned char	type	ориентация таблицы допуска (0 - горизонтально,  1- вертикально)
ToleranceBranch	branch1	структура параметров первой "опоры"
ToleranceBranch	branch2	структура параметров второй "опоры"
Структура параметров ToleranceBranch...

Примечания:

Чтобы вторая "опора" отсутствовала, ее параметр arrowType должен быть равен нулю.


Положения базовой точки
Возможные положения базовой точки на таблице допуска формы

1	- левый нижний угол,
2	- середина левой стороны,
3	- левый верхний угол,
4	- середина верхней стороны,
5	- правый верхний угол,
6	- середина правой стороны,
7	- правый нижний угол,
8	- середина нижней стороны.


RoughParam - структура параметров обозначения шероховатости с полкой
RoughParam

Структура параметров обозначения шероховатости с выносной полкой:

Аналог данных параметров при использовании Automation - интерфейс ksRoughParam.

RoughPar	rPar	параметры знака шероховатости
ShelfPar	shPar	параметры выносной полки
Структура параметров RoughPar...

Структура параметров ShelfPar...


LeaderParam - структура параметров линии-выноски
LeaderParam

Структура параметров линии-выноски

Аналог данных параметров при использовании Automation - интерфейс ksLeaderParam.

double	x, y	координаты базовой точки (начало полки, точка выхода из нее "ножки")
unsigned char	arrowType	тип стрелки:   (0 - стрелка отсутствует,   1 - точка,   2 - стрелка    3 - верхняя половина стрелки    4 - нижняя половина стрелки
int	dirX	направление полки    (0 - нет полки,  -1 - полка влево,   1 - полка вправо,   2 - полка вверх,   3 - полка вниз)
unsigned char	signType	тип знака на "ножке"   (0 - знак отсутствует,   1 - знак склеивания,   2 - знак пайки,   3 - знак сшивания,   4 - знак соединения внахлестку металлическими скобами,   5 - знак углового соединения металлическими скобами,   6 - знак монтажного шва
unsigned char	around	простановка знака обработки по контуру    (0 - выключена, 1 - включена)
unsigned char	cText0	количество строк текста над полкой
unsigned char	cText1	количество строк текста под полкой
unsigned char	cText2	количество строк текста над "ножкой" (не более 1 строки)
unsigned char	cText3	количество строк текста под "ножкой" (не более 1 строки)
reference	pTextline	TEXT_LINE_ARR - динамический массив строк текста
reference	pPolyline	POLYLINE_ARR - массив неопределенной длины "ножек" (ответвлений) линии-выноски
Примечания:

1. Если cText0 = 0 или cText1 = 0 или cText2 = 0 или cText3 = 0, то соответствующий текст на линии-выноске отсутствует.

2. Строки текста в массиве TEXT_LINE_ARR должны учитывать последовательность расположения текстов на линии-выноске (текст над полкой, текст под полкой, текст над "ножкой", текст под "ножкой").

3. В общем случае одна "ножка" в массиве POLYLINE_ARR - это ломаная линия. Ее первый узел - базовая точка линии-выноски. Базовую точку в массив помещать не нужно - она общая для всех ответвлений. Остальные узлы - изломы "ножки" (они могут отсутствовать). Последний узел - конец ответвления (указывает на объект).


PosLeaderParam - структура параметров позиционной линии-выноски
PosLeaderParam

Структура параметров позиционной линии-выноски:

Аналог данных параметров при использовании Automation - интерфейс ksPosLeaderParam.

unsigned short	style	стиль текста,  если style = 0, то стиль умолчательный,  если style = INDICATIN_TEXT_LINE_ARR,   то pText - массив TEXT_LINE_ARR
double	x, y	координаты базовой точки (начало первой полки, точка выхода из нее "ножки")
unsigned char	arrowType	тип стрелки
int	dirX	направление полки вдоль оси X (1 - вправо, -1 - влево)
int	dirY	направление построения полок вдоль оси Y (1 - вверх, -1 - вниз)
reference	pText	динамический массив строк:  если style = INDICATIN_TEXT_LINE_ARR, то TEXT_LINE_ARR,  если style - другой, то CHAR_STR_ARR
reference	pPolyline	POLYLINE_ARR - массив неопределенной длины "ножек" (ответвлений) линии-выноски
Примечания:

1. В каждой строке массива TEXT_LINE_ARR или CHAR_STR_ARR лежит один номер позиции.

2. В общем случае одна "ножка" в массиве POLYLINE_ARR - это ломаная линия. Ее первый узел - базовая точка линии-выноски. Базовую точку в массив помещать не нужно - она общая для всех ответвлений. Остальные узлы - изломы "ножки" (они могут отсутствовать). Последний узел - конец ответвления (указывает на объект).


BrandLeaderParam - структура параметров линии-выноски для обозначения клеймения
BrandLeaderParam

Структура параметров линии-выноски для обозначения клеймения:

Аналог данных параметров при использовании Automation - интерфейс ksBrandLeaderParam.

int	dirX	направление полки вдоль оси X (1 - вправо, -1 - влево)
double	x, y	координаты базовой точки  (начало первой полки, точка выхода из нее "ножки")
unsigned char	arrowType	тип стрелки
unsigned short	style1	стиль текста в знаке клеймения (если style = 0, то стиль умолчательный,   если style = INDICATIN_TEXT_LINE_ARR,  то pText - массив TEXT_LINE_ARR
unsigned short	style2	стиль текстов у ножки (если style = 0, то стиль умолчательный)
unsigned char	cText0	количество строк текста в знаке клеймения (не более 1 строки)
unsigned char	cText1	количество строк текста над "ножкой" (не более 1 строки)
unsigned char	cText2	количество строк текста под "ножкой" (не более 1 строки)
reference	pText	динамический массив строк: если style1 = INDICATIN_TEXT_LINE_ARR, то TEXT_LINE_ARR, если style1 - другой, то CHAR_STR_ARR
reference	pPolyline	POLYLINE_ARR - массив неопределенной длины "ножек" (ответвлений) линии-выноски
Примечания:

1. Если cText0 = 0 или cText1 = 0 или cText2 = 0, то соответствующий текст на линии-выноске отсутствует.

2. Строки текста в массиве TEXT_LINE_ARR должны учитывать последовательность расположения текстов на линии-выноске (текст над полкой, текст над "ножкой", текст под "ножкой").

3. В общем случае одна "ножка" в массиве POLYLINE_ARR - это ломаная линия. Ее первый узел - базовая точка линии-выноски. Базовую точку в массив помещать не нужно - она общая для всех ответвлений. Остальные узлы - изломы "ножки" (они могут отсутствовать). Последний узел - конец ответвления (указывает на объект).


MarkerLeaderParam - структура параметров линии-выноски для обозначения маркировки
MarkerLeaderParam

Структура параметров линии-выноски для обозначения маркировки:

Аналог данных параметров при использовании Automation - интерфейс ksMarkerLeaderParam.

double	x, y	координаты базовой точки (начало первой полки, точка выхода из нее "ножки")
unsigned char	arrowType	тип стрелки
unsigned short	style1	стиль текста в знаке маркировки (если style = 0, то стиль умолчательный,  если style = INDICATIN_TEXT_LINE_ARR, то pText - массив TEXT_LINE_ARR
unsigned short	style2	стиль текстов у ножки (если style = 0, то стиль умолчательный)
unsigned char	cText0	количество строк текста в знаке маркировки (не более 1 строки)
unsigned char	cText1	количество строк текста над "ножкой" (не более 1 строки)
unsigned char	cText2	количество строк текста под "ножкой" (не более 1 строки)
reference	pText	динамический массив строк: если style1 = INDICATIN_TEXT_LINE_ARR, то TEXT_LINE_ARR, если style1 - другой, то CHAR_STR_ARR
reference	pPolyline	POLYLINE_ARR - массив неопределенной длины "ножек" (ответвлений) линии-выноски
Примечания:

1. Если cText0 = 0 или cText1 = 0 или cText2 = 0, то соответствующий текст на линии-выноске отсутствует.

2. Строки текста в массиве TEXT_LINE_ARR должны учитывать последовательность расположения текстов на линии-выноске (текст над полкой, текст над "ножкой", текст под "ножкой").

3. В общем случае одна "ножка" в массиве POLYLINE_ARR - это ломаная линия. Ее первый узел - базовая точка линии-выноски. Базовую точку в массив помещать не нужно - она общая для всех ответвлений. Остальные узлы - изломы "ножки" (они могут отсутствовать). Последний узел - конец ответвления (указывает на объект).


BaseParam - структура параметров обозначения базы
BaseParam

Структура параметров обозначения базы:

Аналог данных параметров при использовании Automation - интерфейс ksBaseParam.

unsigned short	style	стиль текста (0 - стиль по умолчанию)
double	x1, y1	координаты базовой точки (начало "опоры")
double	x2, y2	координаты конечной точки "опоры"
unsigned char	type	способ задания надписи в обозначении базы (0 - текст в виде строки,  1 - динамический массив компонент текста)
char	str [50]	текст в обозначении базы
reference	pTextItem	динамический массив компонент текста TEXT_ITEM_ARR
Примечание:

Какой из параметров - str или pTextItem используется, определяется значением параметра type.


CutLineParam - структура параметров линии разреза/сечения
CutLineParam

Структура параметров линии разреза/сечения:

Аналог данных параметров при использовании Automation - интерфейс ksCutLineParam.

unsigned short	style	стиль текста (0 - стиль по умолчанию)
unsigned char	right	признак положения стрелок  (0 - слева, 1 - справа по направлению ломаной)
double	x1, y1	координаты надписи у первого участка
double	x2, y2	координаты надписи у второго участка
unsigned char	type	способ задания надписи на линии (0 - текст в виде строки,  1 - динамический массив компонент текста)
char	str[50]	текст на линии
reference	pTextItem	динамический массив компонент текста TEXT_ITEM_ARR
reference	pMathPoint	динамический массив POINT_ARR точек ломаной линии  (начальная точка, точки перегибов, конечная точка)
Примечание:

Какой из параметров - str или pTextItem используется, определяется значением параметра type.


ViewPointerParam - структура параметров стрелки направления взгляда
ViewPointerParam

Структура параметров стрелки направления взгляда:

Аналог данных параметров при использовании Automation - интерфейс ksViewPointerParam.

unsigned short	style	стиль текста (0 - стиль по умолчанию)
double	x1, y1	координаты вершины ("острия") стрелки
double	x2, y2	координаты конечной точки стрелки
double	xt, yt	координаты точки привязки текста
unsigned char	type	способ задания надписи на линии (0 - текст в виде строки,  1 - динамический массив компонент текста)
char	str[50]	текст на стрелке
reference	pTextItem	динамический массив компонент текста TEXT_ITEM_ARR


TechnicalDemandParam - структура параметров технических требований
TechnicalDemandParam

Структура параметров технических требований:

Аналог данных параметров при использовании Automation - интерфейс ksTechnicalDemandParam.

reference	pGab	динамический массив габаритных прямоугольников RECT_ARR (структуры RectParam)
unsigned short	style	номер стиля текста
unsigned short	strCount	количество строк в технических требованиях


SpecRoughParam - структура параметров знака неуказанной шероховатости
SpecRoughParam

Структура параметров знака неуказанной шероховатости

Аналог данных параметров при использовании Automation - интерфейс ksSpecRoughParam.

unsigned short	style	номер стиля текста
unsigned char	sign	тип знака (0 - вид обработки не устанавливается,   1 - обработка удалением слоя материала,   2 - обработка без удаления слоя материала)
unsigned char	t	наличие знака в скобках (0 - нет знака, 1 - есть знак)
char	s[TEXT_LENGTH]	текст


QualityContensParam - структура параметров квалитета
QualityContensParam

Структура параметров квалитета

Аналог данных параметров при использовании Automation - интерфейс ksQualityContensParam.

LtQualSystem	systemQuality	система квалитета
LtQualDir	kindQuality	тип квалитета
char	name[MAX_TEXT_LENGTH]	поле допуска
reference	pQualityItems	массив интервалов


LtQualSystem - система квалитета
LtQualSystem

Система квалитета

lt_qsShaft	1	вала
lt_qsHole	2	отверстия


LtQualDir - квалитеты
LtQualDir

Квалитеты

lt_qdPreferable	1	предпочтительные
lt_qdBasic	2	основные
lt_qdAdditional	3	дополнительные


QualityItemParam - структура параметров интервала квалитета
QualityItemParam

Структура параметров интервала квалитета:

Аналог данных параметров при использовании Automation - интерфейс ksQualityItemParam.

short	minLimit	минимальное значение в интервале размеров
short	maxLimit	максимальное значение в интервале размеров
double	high	верхнее отклонение
double	low	нижнее отклонение


Типы значка объекта "Выносной элемент
LtRemoteElmSignType

Типы значка объекта "Выносной элемент"

re_Circle	0	окружность
re_Rectangle	1	прямоугольник
re_Ballon	2	скругленный прямоугольник


Параметры объекта "Выносной элемент"
RemoteElementParam

Структура параметров объекта "Выносной элемент"

Аналог данных параметров при использовании Automation - интерфейс ksRemoteElementParam.

unsigned short	style	стиль текста. если style = INDICATIN_TEXT_LINE_ARR, то pText - массив TEXT_LINE_ARR если style = 0, то pText = TEXT_LINE_ARR
long	signType	тип значка из перечислителя LtRemoteElmSignType
double	x	координаты центра выносного элементам
double	y
double	width	ширина (для прямоугольника и скругленного прямоугольника)
double	height	высота (для прямоугольника и скругленного прямоугольника)
double	smooth	высота (для прямоугольника и скругленного прямоугольника)
double	radius	радиус окружности (для окружности)
double	shelfX;	координаты начала полки
double	shelfY
int	shelfDir	направление полки: 1 - вправо; -1- влево, 2 - вверх, 3 - вниз
reference	pText	если style = INDICATIN_TEXT_LINE_ARR, то pText = TEXT_LINE_ARR - динамический массив строк текста, если style = 0, то pText = CHAR_STR_ARR - динамический массив строк символов текста шероховатости.


Структура параметров для осуществления подписки, отписки событий в COM
NotifyConnectionParam

Структура параметров для осуществления подписки, отписки событий в COM

reference	pContainer	- указатель на объект КОМПАС, контейнер событий. Для приложения 0. Для документа указатель документа.
long	objType	Дополнительный параметр. Либо тип объекта, либо указатель на объект(для ksObject2DNotify).
int	ifType	Тип интерфейсов событий ksNotifyType.
LPUNKNOWN	iContainer	Указатель на объект КОМПАС, контейнер сообщений.
LPUNKNOWN	iObj	Дополнительный параметр. Указатель на объект (для ksObject3DNotify).


Перечень интерфейсов событий
ksNotifyTypeEnum

Перечень интерфейсов событий

ntKompasObjectNotify	1	События приложения.
ntDocumentFileNotify	2	События документа, работа с файлом.
ntStampNotify	3	События основной надписи.
ntObject2DNotify	4	События объекта графического документа.
ntSelectionMngNotify	5	События менеджера выделенных объектов.
ntSpcObjectNotify	6	События объекта спецификации.
ntSpcDocumentNotify	7	События документа-спецификации.
ntSpecificationNotify	8	События спецификаци.
ntDocument3DNotify	9	События документа-модели.
ntObject3DNotify	10	События объекта документа-модели.
ntDocument2DNotify	11	События графического документа.
ntPropertyManagerNotify	12	События для Панели свойств.
ntPropertyUserControlNotifyEnum	13	События пользовательского элемента управления.
ntDocumentFrameNotify	14	События для окна документа.
ntViewsAndLayersManagerNotify	15	События для менеджера видов и слоев.
ntLibraryManagerNotify	16	События для менеджера библиотек


События приложения
ksKompasObjectNotifyEnum

События приложения

koCreateDocument	1	- документ создан,
koBeginOpenDocumen	2	- начало открытия документа,
koOpenDocumen	3	- документ открыт,
koChangeActiveDocument	4	- переключение на другой активный документ,
koApplicatinDestroy	5	- закрытие приложения.
koBeginCreate	6	- начало создания документа (до диалога выбора типа)
koBeginOpenFile	7	- начало открытия документа (до диалога выбора имени)
koBeginCloseAllDocument	8	- начало закрытия всех открытых документов


События документа (работа с файлами)
ksDocumentFileNotifyEnum

События для документов; работа с файлом.

kdBeginCloseDocument	1	- начало закрытия документа,
kdCloseDocument	2	- документ закрыт,
kdBeginSaveDocument	3	- начало сохранения документа,
kdSaveDocument	4	- документ сохранен,
kdActiveDocument	5	- документ активизировался.
kdDeactiveDocument	6	- документ деактивизировался
kdBeginSaveAsDocument	7	- начало сохранения документа c другим именем (до диалога выбора имени)
kdDocumentFrameOpen	8	Окно документа открылось
kdProcessActivate	9	Процесс активизирован
kdProcessDeactivate	10	Процесс деактивизирован


События менеджера выделенных объектов
ksSelectionMngNotifyEnum

События менеджера выделенных объектов

ksmSelect	1	- объект выделен,
ksmUnselect	2	- снято выделение с объекта,
ksmUnselectAll	3	- снято выделение со всех объектов.


События объектов 2D документов
ksObject2DNotifyEnum

События объектов графических документов

koChangeActive	1	переключение активности объекта( вид, слой),
koBeginDelete	2	начало удаления объекта,
koDelete	3	объект удален,
koBeginMove	4	начало сдвига объекта,
koMove	5	завершние сдвига объекта,
koBeginRotate	6	начало поворота объекта,
koRotate	7	завершение поворота объекта,
koBeginScale	8	начало масштабирования объекта,
koScale	9	завершение масштабирования объекта,
koBeginTransform	10	начало трансформации объекта,
koTransform	11	завершение трансформации объекта,
koBeginCopy	12	начало копирования объекта,
koCopy	13	завершение копирования объекта,
koBeginSymmetry	14	начало симметричного преобразования объекта,
koSymmetry	15	завершение симметричного преобразования объекта,
koBeginProcess	16	начало редактирования\создания объекта,
koEndProcess	17	завершение редактирования\создания объекта,
koCreateObject	18	создание объекта,
koUpdateObject	19	редактирование объекта.


События объектов 3D документов
ksObject3DNotifyEnum

События объектов документа-модели

o3BeginDelete	1	Начало удаления объектов
o3Delete	2	Oбъекты удалены
o3Excluded	3	Oбъект исключен/включен в расчет
o3Hidden	4	Oбъект скрыт/показан
o3BeginPropertyChanged	5	Начало изменения свойств объекта
o3PropertyChanged	6	Изменены свойства объета
o3BeginPlacementChanged	7	Начало изменения положения объета
o3PlacementChanged	8	Начало изменения положения объекта
o3BeginProcess	9	Начало
o3EndProcess	10	Конец редактирования\создания объекта
o3CreateObject	11	Создание объекта
o3UpdateObject	12	Редактирование объекта


События основной надписи графических документов
ksStampNotifyEnum

События основной надписи графических документов (штампа)

kdBeginEditStamp	1	Начало работы со штампом
kdEndEditStamp	2	Завершение работы со штампом
kdStampCellDblClick	3	Двойной щелчок мышью в ячейке штампа
kdStampCellBeginEdit	4	Начало редактирования в ячейке штампа


События документа-модели
ksDocument3DNotifyEnum

События документа-модели

d3BeginRebuild	1	Начало перестроения модели
d3Rebuild	2	Модель перестроена
d3BeginChoiceMaterial	3	Начало выбора материала
d3СhoiceMaterial	4	Закончен выбор материала
d3BeginChoiceMarking	5	Начало выбора обозначения
d3ChoiceMarking	6	Закончен выбор обозначения
d3BeginSetPartFromFile	7	Начало установки компонента в сборку (до диалога выбора имени)
d3BeginCreatePartFromFile	8	Начало создания компонента в сборке (до диалога выбора имени)


События графического документа
ksDocument2DNotifyEnum

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

d2BeginRebuild	1	Начало перестроения модели
d2Rebuild	2	Модель перестроена
d2BeginChoiceMaterial	3	Начало выбора материала
d2СhoiceMaterial	4	Закончен выбор материала
d2BeginInsertFragment	5	Начало вставки фрагмента (до диалога выбора имени)


События документа-спецификации
ksSpcDocumentNotifyEnum

События документа-спецификации

sdDocumentBeginAdd	1	Начало добавления документа сборочного чертежа
sdDocumentAdd	2	Добавлен документ сборочного чертежа
sdDocumentBeginRemove	3	Начало удаления документа сборочного чертежа
sdDocumentRemove	4	Удален документ сборочного чертеж
sdSpcStyleBeginChange	5	Начало изменения стиля спецификации
sdSpcStyleChange	6	Стиль спецификации изменился


События объекта спецификации
ksSpcObjectNotifyEnum

События объекта спецификации

soBeginDelete	1	Начало удаления объекта
soDelete	2	Объект удален
soCellDblClick	3	Двойной щелчок в ячейке
soCellBeginEdit	4	Начало редактирования в ячейке
soChangeCurrent	5	Текущий объект изменен
soDocumentBeginAdd	6	Начало добавления документа
soDocumentAdd	7	Документ в объекте спецификации добавлен
soDocumentRemove	8	Документ из объекта спецификации удален
soBeginGeomChange	9	Начало измения геометрии объекта спецификации.
soGeomChange	10	Геометрия объекта спецификации изменилась
soBeginProcess	11	Начало редактирования\создания объекта
soEndProcess	12	Конец редактирования\создания объекта
soCreateObject	13	Объект создан
soUpdateObject	14	Объект изменен


События для спецификации
ksSpecificationNotifyEnum

События для спецификации

ssTuningSpcStyleBeginChange	1	Начало изменения настроек спецификации
ssTuningSpcStyleChange	2	Настройки спецификации изменились
ssChangeCurrentSpcDescription	3	Изменилось текущее описание спецификации
ssSpcDescriptionAdd	4	Добавилось описание спецификации
ssSpcDescriptionRemove	5	Удалилось описание спецификации
ssSpcDescriptionBeginEdit	6	Начало редактирования описания спецификации
ssSpcDescriptionEdit	7	Отредактировали описание спецификации
ssSynchronizationBegin	8	Начало синхронизации
ssSynchronization	9	Синхронизация проведена
ssBeginCalcPositions	10	Начало расчета позиций
ssCalcPositions	11	Проведен расчет позиций
ssBeginCreateObject	12	Начало создания объекта спецификации (до диалога выбора раздела)


ksLayoutSheetsNotifyEnum - События для листов оформления.
ksLayoutSheetsNotifyEnum

События для листов оформления.

ksLayoutAdd	1	Добавлен лист
ksLayoutDelete	2	Удален лист оформления
ksLayoutUpdate	3	Изменены параметры листа оформления


ksLibraryManagerNotifyEnum - События для менеджера библиотек.
ksLibraryManagerNotifyEnum

События для менеджера библиотек.

ksLMBeginAttach	1	Подключить библиотеку
ksLMAttach	2	Библитотека подключена
ksLMBeginDetach	3	Отключить библиотеку
ksLMDetach	4	Библитотека отключена
ksLMBeginExecute	5	Запуск выполнения команды библиотеки
ksLMEndExecute	6	Завершение выполнения команды библиотеки
ksLMSystemControlStop	7	Передача управления библиотеке
ksLMSystemControlStart	8	Передача управления системе
ksLMAddLibraryDescription	9	Добавлено описание библиотеки
ksLMDeleteLibraryDescription	10	Удалено описание библиотеки
ksLMAddInsert	11	Добавлен документ в библиотеку документов
ksLMDeleteInsert	12	Удален документ из библиотеки документов
ksLMEditInsert	13	Редактирование документа из библиотеки документов


ColumnInfo - структура параметров столбца табличного атрибута
ColumnInfo

Структура параметров одного столбца табличного атрибута:

Аналог данных параметров при использовании Automation - интерфейс ksColumnInfoParam.

char	header [80]	заголовoк-комментарий столбца
unsigned char	type	тип данных в столбце табличного атрибута
unsigned char	key	дополнительный признак ("ключ"), который позволит отличить разные переменные с одинаковым типом
char	def [TEXT_LENGTH]	значение в столбце по умолчанию
unsigned char	flagEnum	флаг, включающий режим, когда значение поля атрибута будет заполнятся из массива перечисленных значений (1 - включен, 0 - отключен)
reference	fieldEnum	массив неопределенной длины перечислений (строки)
reference	columns	динамический массив неопределенной длины информации о колонках записи
Примечание:

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


AttributeType - структура параметров типа табличного атрибута
AttributeType

Структура параметров типа табличного атрибута:

char	header [80]	заголовoк-комментарий типа
unsigned int	rowsCount	количество строк в таблице
unsigned char	flagVisible	флаг видимости атрибута в таблице: (0 - невидимый,  1 - видимый)
char	password[10]	пароль, если не пустая строка - защищает от несанкционированного изменения типа
reference	columns	массив неопределенной длины информации о столбцах
Примечания:

1. Эта структура и использующая ее функция CreateAttrType устарели. Рекомендуется вместо них использовать структуру ksAttributeType и функцию ksCreateAttrType.

2. Массив columns содержит структуры параметров столбцов ColumnInfo.


ksAttributeType - структура параметров типа табличного атрибута
ksAttributeType

Структура параметров типа табличного атрибута:

Аналог данных параметров при использовании Automation - интерфейс ksAttributeTypeParam.

unsigned int	key1	рекомендуется как код разработчика
unsigned int	key2	рекомендуется как код атрибута
unsigned int	key3	рекомендуется как код разработчика
unsigned int	key4	системный код атрибута
char	header[80]	заголовoк-комментарий типа
unsigned int	rowsCount	количество строк в таблице
unsigned char	flagVisible	флаг видимости атрибута в таблице: (0 - видимый,  1 - невидимый)
char	password[10]	пароль, если не пустая строка - защищает от несанкционированного изменения типа
reference	columns	массив неопределенной длины информации о столбцах
Примечание:

1. Значения параметра key4 от 0 до 1000 зарезервированы за АО "АСКОН"

2. Массив columns содержит структуры параметров столбцов ColumnInfo.


Attribute - структура параметров табличного атрибута
Attribute

Структура параметров табличного атрибута:

unsigned int	key1	рекомендуется как код разработчика
unsigned int	key2	рекомендуется как код атрибута
unsigned int	key3	рекомендуется как код разработчика
unsigned int	key4	системный код атрибута
unsigned char	*flagVisible	массив, определяющий для каждой колонки атрибута видимость или невидимость: (0 - видимое поле, 1- невидимое поле)
void	*values	массив значений ячеек таблицы атрибутов (сначала все значения для первой строки, затем все значения для второй строки и т.д.)
unsigned int	valSize	размер массива значений ячеек
char	password [10]	пароль, если не пустая строка - защищает от несанкционированного изменения информации в атрибуте
Примечания:

1. Значения параметра key4 от 0 до 1000 зарезервированы за АО "АСКОН"

2. Эта структура и использующая ее функция CreateAttr устарели. Рекомендуется вместо них использовать структуру ksAttribute и функцию ksCreateAttr.


ksAttribute - структура параметров табличного атрибута
ksAttribute

Структура параметров табличного атрибута:

Аналог данных параметров при использовании Automation - интерфейс ksAttributeParam.

unsigned int	key1	рекомендуется как код разработчика
unsigned int	key2	рекомендуется как код атрибута
unsigned int	key3	рекомендуется как код разработчика
unsigned int	key4	системный код атрибута
unsigned char	*flagVisible	массив, определяющий для каждой колонки атрибута видимостьили невидимость (0 - видимое поле, 1- невидимое поле)
void	*values	массив значений ячеек таблицы атрибутов (сначала все значения для первой строки, затем все значения для второй строки и т.д.)
unsigned int	valSize	размер массива значений ячеек
char	password[10]	пароль, если не пустая строка - защищает от несанкционированного изменения информации в атрибуте
unsigned char	*columnKeys	массив ключей колонок
Примечание:

Значения параметра key4 от 0 до 1000 зарезервированы за АО "АСКОН".


LibraryAttrTypeParam - структура параметров для типа атрибута в библиотеке типов атрибутов
LibraryAttrTypeParam

Структура параметров для типа атрибута в библиотеке типов атрибутов

Аналог данных параметров при использовании Automation - интерфейс ksLibraryAttrTypeParam.

char	name [MAX_TEXT_LENGTH]	имя типа атрибута
double	typeId	номер типа атрибута в библиотеке


Типы данных в столбце табличного атрибута

CHAR_ATTR_TYPE	1	- целое (от -128 до 127)
UCHAR_ATTR_TYPE	2	- целое (от 0 до 255)
INT_ATTR_TYPE	3	- целое (от -32768 до 32767)
UINT_ATTR_TYPE	4	- целое (от 0 до 65535)
LINT_ATTR_TYPE	5	- целое
FLOAT_ATTR_TYPE	6	- действительное (от -1Е38 до 1Е38)
DOUBLE_ATTR_TYPE	7	- действительное (от -1Е308 до 1Е307)
STRING_ATTR_TYPE	8	- строка фиксированной длины  MAX_TEXT_LENGTH
RECORD_ATTR_TYPE	9	- запись


Типы документов системы КОМПАС
DocType

Типы документов системы КОМПАС

lt_DocSheetStandart	1	- чертеж стандартного формата
lt_DocSheetUser	2	- чертеж нестандартного формата
lt_DocFragment	3	- фрагмент
lt_DocSpc	4	- спецификация
lt_DocPart3D	5	- деталь
lt_DocAssemble3D	6	- сборка
lt_DocTxtStandart	7	- текстовый документ стандартный
lt_DocTxtUser	8	- текстовый документ нестандартный
lt_DocSpcUser	9	- спецификация - нестандартный формат


Стандартные форматы листа

0	- формат А0
1	- формат А1
2	- формат А2
3	- формат А3
4	- формат А4


Типы локальной привязки

	0	- нет локальной привязки
SN_NEAREST_POINT	1	- Ближайшая точка
SN_NEAREST_MIDDLE	2	- Середина
SN_CENTRE	3	- Центр
SN_INTERSECT	4	- Пересечение
SN_GRID	5	- По сетке
SN_XY_ALIGN	6	- Выравнивание
SN_ANGLE	7	- Угловая привязка
SN_POINT_CURVE	8	- Точка на кривой


Общие настройки привязок

SN_DYNAMICALLY	0x1	- динамически отслеживать привязки
SN_ASSISTANT	0x2	- отображать название действующей привязки
SN_BACKGROUND_LAYER	0x4	- учитывать фоновые слои и виды
SN_SUSPENDED	0x8	- подавить привязки


Состояния слоев и видов

stACTIVE	0	- активный (видимый + фоновый),
stREADONLY	1	- фоновый,
stINVISIBLE	2	- невидимый (погашенный),
stCURRENT	3	- текущий.


форматы сохранения модели
Форматы для сохранения модели

FORMAT_SAT	1	- SAT,
FORMAT_XT	2	- XT,
FORMAT_STEP	3	- STEP,
FORMAT_IGES	4	- IGES,
FORMAT_VRML	5	- VRML,
FORMAT_STL	6	- STL.


Форматы растра

FORMAT_BMP	0	- BMP,
FORMAT_GIF	1	- GIF,
FORMAT_JPG	2	- JPEG,
FORMAT_PNG	3	- PNG,
FORMAT_TIF	4	- TIFF,
FORMAT_TGA	5	- TGA,
FORMAT_PCX	6	- PCX.


Цвета вывода объектов

BLACKWHITE	0	- черный,
COLORVIEW	1	- цвет, установленный для вида,
COLORLAYER	2	- цвет, установленный для слоя,
COLOROBJECT	3	- цвет, установленный для объекта.


Цветность растра
Глубина цвета растра

BPP_COLOR_01	1	- монохромный,
BPP_COLOR_02	2	- 4 цвета,
BPP_COLOR_04	4	- 16 цветов,
BPP_COLOR_08	8	- 256 цветов,
BPP_COLOR_16	16	- 16 разрядов,
BPP_COLOR_24	24	- 24 разряда,
BPP_COLOR_32	32	- 32 разряда.


LayerParam - структура параметров слоя
LayerParam

Структура параметров слоя

Аналог данных параметров при использовании Automation - интерфейс ksLayerParam.

unsigned short	state	состояние слоя
unsigned long	color	цвет слоя в активном состоянии
char	name [TEXT_LENGTH]	имя слоя


ViewParam - структура параметров вида
ViewParam

Структура параметров вида

Аналог данных параметров при использовании Automation - интерфейс ksViewParam.

unsigned short	state	состояние вида
double	x,y	точка привязки вида
double	scale	масштаб вида
double	ang	угол поворота вида
unsigned long	color	цвет вида в активном состоянии
char	name [TEXT_LENGTH]	имя вида


PlacementParam - структура параметров привязки
PlacementParam

Структура параметров местоположения (привязки)

Аналог данных параметров при использовании Automation - интерфейс ksPlacementParam.

double	xBase, yBase	координаты базовой точки в СК вида
double	scale	масштаб
double	ang	угол поворота в СК вида


StandartSheet - структура параметров стандартного листа
StandartSheet

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

Аналог данных параметров при использовании Automation - интерфейс ksStandartSheet

unsigned char	format	формат листа  0 (А0) ... 4(А4)
unsigned char	multiply	кратность формата
unsigned char	direct	расположение штампа: - 0 - вдоль короткой стороны, - 1 - вдоль длинной.
Стандартные форматы листа...


SheetSize - структура параметров нестандартного листа
SheetSize

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

Аналог данных параметров при использовании Automation - интерфейс ksSheetSize.

double	width	длина листа
double	height	высота листа


SheetPar - структура параметров оформления документов
SheetPar

Структура параметров оформления

Аналог данных параметров при использовании Automation - интерфейс ksSheetPar.

char	layoutName [MAX_TEXT_LENGTH]	для чертежа: - имя библиотеки оформления, для спецификации: - имя библиотеки стилей спецификации, пустая строка - библиотека Graphic.lyt
unsigned int	shtType	для чертежа - тип штампа из указанной библиотеки для спецификации - номер стиля из указанной библиотеки
struct StandartSheet	stPar	параметры листа чертежа стандартного формата
struct SheetSize	usPar	параметры листа чертежа нестандартного формата
Примечание:

Один из параметров - stPar или usPar - используется только для чертежа. Стандартный чертеж или нестандартный, определяется значением параметра type из структуры параметров документа DocumentParam.


DocumentParam - структура параметров документа
DocumentParam

Структура параметров документа

Аналог данных параметров при использовании Automation - интерфейс ksDocumentParam.

unsigned char	regim	режим (0 - видимый, 1 - "слепой")
unsigned char	type	тип документа
char	fileName [MAX_TEXT_LENGTH]	имя  файла документа
char	comment [TEXT_LENGTH]	комментарий к документу
char	author [TEXT_LENGTH]	автор документа
SheetPar	sheet	структура параметров оформления документов
Примечание:

Структура параметров sheet используется для чертежей и спецификаций, т.е. когда параметр type имеет значения 1, 2, 4.


RasterFormatParam - структура параметров записи в растровый формат
RasterFormatParam

Структура параметров записи в растровый формат

Аналог данных параметров при использовании Automation - интерфейс ksRasterFormatParam.

unsigned char	format	формат растра
unsigned char	colorBPP	глубина цвета (бит на пиксел)
unsigned char	greyScale	признак сохранения в оттенках серого  (0 - цветной растр, >0 - оттенки серого)
int	extResolution	разрешение растра (0 - текущее разрешение)
double	extScale	масштаб
unsigned char	colorType	цвет вывода объектов
unsigned char	onlyThinLine	признак вывода всех линий тонкими  (0 - установленные для объектов толщины линий, >0 - выводит все тонкими линиями)
char	pages[MAX_TEXT_LENGTH]	список диапазонов выводимых страниц в формате "beg1-end1, beg2-end2, beg3-end3, ..."
unsigned char	rangeIndex	признак выбора стороны страниц  (0 - все, 1- нечетные, 2 - четные),
unsigned char	multiPageOutput	признак сохранения всех листов в одном файле  (0 - сохранять листы в отдельных файлах,  >0 сохранять все листы в одном файле) (признак используется только для формата TIFF)
Форматы растра...

Цвета вывода объектов...

Глубина цвета растра...


Типы проекций
ProjectionType

Типы проекций

vp_None	-1	Не определена
vp_NormalTo	0	Нормально к текущему планару
vp_Front	1	Спереди - Фронтальная плоскость
vp_Rear	2	Сзади
vp_Up	3	Сверху - Горизонтальная плоскость
vp_Down	4	Снизу
vp_Left	5	Слева - Профильная плоскость
vp_Right	6	Справа
vp_IsoXYZ	7	Изометрия XYZ
vp_IsoYZX	8	Изометрия YZX
vp_IsoZXY	9	Изометрия ZXY
vp_Dio	10	Диметрия


Типы стандартных видов

VIEW_FRONT	0x1	Спереди
VIEW_REAR	0x2	Сзади
VIEW_UP	0x4	Сверху
VIEW_DOWN	0x8	Снизу
VIEW_LEFT	0x10	Слева
VIEW_RIGHT	0x20	Справа
VIEW_ISO	0x40	Изометрия


Структура параметров копирования объекта графического документа
CopyObjectParam

Структура параметров копирования объекта графического документа

Аналог данных параметров при использовании Automation - интерфейс ksCopyObjectParam.

reference	p	указатель на объект, группу, вид, слой
double	xOld	координаты базовой точки объекта
double	yOld
double	xNew	координаты точки вставки
double	yNew
double	scale	масштаб
double	angle	угол поворота в градусах
unsigned char	attrCopy	признак копирования атрибутов
unsigned char	dimLineScale	признак масштабирования выносных линий


Параметры перекрывающихся объектов
OverlapObjectOptions

Параметры перекрывающихся объектов

Аналог данных параметров при использовании Automation - интерфейс ksOverlapObjectOptions.

unsigned short	overlap	1 - перекрывать штриховки и линии при пересечении, 0 - не перекрывать
double	gap	Зазор при перекрывании объектов


Параметры цвета фона
ViewColorParam

Параметры цвета фона

Аналог данных параметров при использовании Automation - интерфейс ksViewColorParam.

long	color	Цвет фона, -1 если используется цвет окна, установленный в Windows
unsigned char	useGradient	1 - использовать градиентный переход при полутоновом отображении 0 - не использовать (доступно только для документов деталей и сборок).
long	topColor	Верхний цвет перехода (доступно только для документов деталей и сборок).
long	bottomColor	Нижний цвет перехода (доступно только для документов деталей и сборок).


Структура параметров оформления
SheetOptions

Структура параметров оформления

Аналог данных параметров при использовании Automation - интерфейс ksSheetOptions.

SheetPar	sheetPar	Структура параметров оформления SheetPar
unsigned char	docType	Тип документа


Структура параметров привязок в графическом документе
SnapOptions

Структура параметров привязок в графическом документе

Аналог данных параметров при использовании Automation - интерфейс ksSnapOptions.

struct	SnapOptions	Глобальные привязки
unsigned char	nearestPoint	Ближайшая точка
unsigned char	nearestMiddle	Середина
unsigned char	intersect	Пересечение
unsigned char	tangentToCurve	Касание
unsigned char	normalToCurve	Нормаль
unsigned char	grid	По сетке
unsigned char	xyAlign	Выравнивание
unsigned char	angSnap	Угловая привязка
unsigned char	pointOnCurve	Точка на кривой
unsigned int	commonOpt	Общие настройки привязок: динамически отслеживать, отображать текст, с учетом фоновых слоев, подавить привязки
double	angleStep	Угловой шаг для привязок
unsigned char	localSnap	Tип локальной привязки
Типы локальной привязки...

Общие настройки привязок...


Структура параметров ассоциативного вида
AssociationViewParam

Структура параметров ассоциативного вида

Аналог данных параметров при использовании Automation - интерфейс ksAssociationViewParam.

ViewParam	viewPar	- Параметры обычного вида, структура ViewParam
char	fileName[MAX_TEXT_LENGTH]	- Имя файла документа-модели
char	projectionName[TEXT_LENGTH]	- Имя проекции (из списка проекций в документе-источнике)
unsigned char	viewType	- Тип вида из LtViewType (параметр только для чтения)
unsigned char	dimensionLayoutScaling	- Признак масштабирования аннотационных объектов вида (только для SetObjParam)
unsigned char	projectionLink	- Проекционная связь
unsigned char	disassembly	- Разнести
long	visibleLinesStyle	- Номер стиля отрисовки видимых ребер и очерков, если 0 - умолчательный стиль
long	hiddenLinesStyle	- Номер стиля отрисовки всех невидимых линий, если 0 - умолчательный стиль
long	tangentEdgesStyle	- Номер стиля отрисовки видимых линий перехода, если 0 - умолчательный стиль
unsigned char	hiddenLinesShow	- Признак отрисовки невидимых линий
unsigned char	tangentEdgesShow	- Признак отрисовки видимых линий перехода
unsigned char	projBodies	- Признак проецирования тел
unsigned char	projSurfaces	- Признак проецирования поверхностей
unsigned char	projThreads	- Признак проецирования резьбы
unsigned char	reserve[30]	- Резерв
HatchParamEx	hatchPar	- Параметры штриховки, структура HatchParamEx (используется только в виде разрез\сечение)
unsigned char	sameHatch	- Одинаковая штриховка всех деталей сборки
unsigned char	section	- Признак разрез/сечение


_Типы видов
LtViewType

Типы видов

vt_System	0	системный вид (с номером 0, создается автоматически, существует всегда)
vt_Normal	1	обычный вид
vt_Arbitrary	2	произвольный вид
vt_Standart	3	стандартный вид
vt_Projected	4	проекционный
vt_Arrow	5	по стрелке
vt_Remote	6	выносной вид
vt_Section	7	разрез\сечение


ChangeOrderType - Типы изменения порядка объектов
ChangeOrderType

Типы изменения порядка объектов

co_Top	1	Выше всех
co_Bottom	2	Ниже всех
co_BeforeObject	3	Перед объектом
co_AfterObject	4	За объектом
co_UpLevel	5	На уровень вперед
co_DownLevel	6	На уровень назад


Режимы навигации по модели

ALL_OBJ	0	все объекты,кроме вспомогательных
LINESEG_OBJ	1	отрезок
CIRCLE_OBJ	2	окружность
ARC_OBJ	3	дуга
TEXT_OBJ	4	текст
POINT_OBJ	5	точка
HATCH_OBJ	7	штриховка
BEZIER_OBJ	8	bezier сплайн
LDIMENSION_OBJ	9	линейный размер
ADIMENSION_OBJ	10	угловой размер
DDIMENSION_OBJ	13	диаметральный размер
RDIMENSION_OBJ	14	радиальный размер
RBREAKDIMENSION_OBJ	15	радиальный размер с изломом
ROUGH_OBJ	16	шероховатость
BASE_OBJ	17	база
WPOINTER_OBJ	18	стрелка вида
CUT_OBJ	19	линия разреза
LEADER_OBJ	20	простая линия-выноска
POSLEADER_OBJ	21	линия-выноска для обозначения позиции
BRANDLEADER_OBJ	22	линия-выноска для обозначения клеймения
MARKERLEADER_OBJ	23	линия-выноска для обозначения маркирования
TOLERANCE_OBJ	24	допуск формы
TABLE_OBJ	25	таблица
CONTOUR_OBJ	26	контур
MACRO_OBJ	27	нетипизированный макроэлемент
LINE_OBJ	28	линия
LAYER_OBJ	29	слой
FRAGMENT_OBJ	30	вставной фрагмент
POLYLINE_OBJ	31	полилиния
ELLIPSE_OBJ	32	эллипс
NURBS_OBJ	33	nurbs сплайн
ELLIPSE_ARC_OBJ	34	дуга эллипса
RECTANGLE_OBJ	35	прямоугольник
REGULARPOLYGON_OBJ	36	многоугольник
EQUID_OBJ	37	эквидистанта
LBREAKDIMENSION_OBJ	38	линейный размер с обрывом
ABREAKDIMENSION_OBJ	39	угловой размер с обрывом
ORDINATEDIMENSION_OBJ	40	размер высоты
VIEW_OBJ	123	вид
DOCUMENT_OBJ	124	документ
SELECT_GROUP_OBJ	127	группа выделенных объектов
NAME_GROUP_OBJ	128	именная группа
WORK_GROUP_OBJ	129	рабочая группа
SPC_DOCUMENT_OBJ	130	документ-спецификация
D3_DOCUMENT_OBJ	131	документ-модель (деталь или сборка)
MAX_TIP_SEARCH	132	верхняя граница типов поиска


RasterParam - структура параметров растрового объекта
RasterParam

Структура параметров растрового объекта:

Аналог данных параметров при использовании Automation - интерфейс ksRasterParam.

PlacementParam	place	структура местоположения
char	fileName[MAX_TEXT_LENGTH]	полный путь к файлу
unsigned char	embeded	признак внедрения или ссылки (1 - внедрять данные в объект, 0 - связывать объект файлом на диске)
Примечание:

Значение параметра embeded = 0 в данный момент не используется (связь растрового объекта с файлом на диске в КОМПАС-ГРАФИК не реализована).


Коды ошибок 2D
ErrorType

Коды ошибок графического документа

etNo3dDocument	-7	Документ не активизирован или не является трехмерной моделью
etNoAllDocument	-6	Документ не активизирован
etNoSPCDocument	-5	Документ не активизирован или не является спецификацией
etLibraryClose	-4	Принудительное завершение выполнения библиотеки
etNoPreView	-3	В режиме предварительного просмотра нельзя создавать или открывать выводимые документы
etNoDocument	-2	Документ не активизирован или не является листом/фрагментом
etAbort	-1	Аварийное завершение
etSuccess	0	Успешное завершение
etError1	1	Попытка выполнить EndObj при неоткрытом составном элементе
etError2	2	Попытка поставить в сплайн недопустимый объект
etError3	3	Попытка поставить в штриховку недопустимый объект
etError4	4	Попытка выполнить delete_mtr при невведенной локальной системе координат
etError5	5	Ошибка при введении локальной системы координат
etError6	6	Группа дожна быть постоянной
etError7	7	Объект не существует
etError8	8	В текущем документе объект не найден
etError9	9	Нет памяти
etError10	10	Вырожденный объект
etError11	11	Неверный указатель группы
etError12	12	Объект не принадлежит группе
etError13	13	Объект нельзя поставить в группу
etError14	14	Группа должна быть временной
etError15	15	Первый объект не существует  или не является кривой
etError16	16	Второй объект не существует или не является кривой
etError17	17	Кривые расположены в разных видах
etError18	18	Один (или оба) из указанных объектов - не геометрический
etError19	19	Первый объект не является кривой
etError20	20	Второй объект не является кривой
etError21	21	Объект уже находится в группе
etError22	22	Временный объект не может быть в постоянной группе
etError23	23	В документе не предусмотрена работа с видами
etError24	24	Вид с заданным номером уже существует
etError25	25	Недопустимое значение номера вида
etError26	26	В текущем документе вид не найден
etError27	27	Неверный указатель вида
etError28	28	Вид не редактируется
etError29	29	Состояние вида задано неверно
etError30	30	Параметры текущего вида не меняются
etError31	31	Неверный указатель макроэлемента
etError32	32	Должен быть режим редактирования макроэлемента
etError33	33	Неверный тип параметров редактирования макроэлемента
etError34	34	В виде остались не закрытые составные элементы
etError35	35	Неверный указатель слоя
etError36	36	Недопустимое значение номера слоя
etError37	37	В текущем виде слой не найден
etError38	38	У объекта нет параметров
etError39	39	Размер структуры параметров не соответствует указанному
etError40	40	Состояние слоя задано неверно
etError41	41	Параметры текущего слоя не меняются
etError42	42	В указанном виде редактирование запрещено
etError43	43	В указанном слое редактирование запрещено
etError44	44	Параметры системного вида не меняется
etError45	45	Попытка поставить в текст недопустимый объект
etError46	46	Неверный ввод текста
etError47	47	Неверный тип массива
etError48	48	Неверный указатель массива
etError49	49	Указатель на структуру параметров должен быть не NULL
etError50	50	Неверный индекс массива
etError51	51	Неверное редактирование текста
etError52	52	Точка кривой Безье используется неверно
etError53	53	Неправильный индекс
etError54	54	Режим работы документа задан неверно
etError55	55	Режим обработки документов задан неверно
etError56	56	Неверный указатель на документ
etError57	57	Попытка сохранить документ без имени
etError58	58	Документ закрыт без сохранения
etError59	59	Имя файла документа задано неверно
etError60	60	Объект не соответствует типу поиска
etError61	61	Невозможно создать документ. Документ с таким именем уже открыт
etError62	62	Поиск объектов задан неверно
etError63	63	В текущем документе итератор не найден
etError64	64	Документ не найден или неверная структура файла
etError65	65	Документ открыт в видимом режиме
etError66	66	Документ открыт в невидимом режиме
etError67	67	Нельзя менять тип документа
etError68	68	Стиль спецификации не найден
etError69	69	У фрагмента нет размеров  листа
etError70	70	Режим работы документа не меняется
etError71	71	Вид должен быть активным или текущим
etError72	72	Тип атрибута задан неверно
etError73	73	Тип атрибута не найден
etError74	74	Неверный пароль
etError75	75	Не найдено определение локального фрагмента
etError76	76	Атрибут в документе не найден
etError77	77	Атрибут не принадлежит объекту
etError78	78	Неправильный номер колонки атрибута
etError79	79	Неправильный номер строки атрибута
etError80	80	Родительское окно не найдено
etError81	81	Библиотека атрибутов не найдена или ошибка в библиотеке
etError82	82	Текст размера задан неверно
etError83	83	Параметры привязки размера заданы неверно
etError84	84	Текст шероховатости задан неверно
etError85	85	Неверный указатель линейного размера
etError86	86	Текст линии выноски задан неверно
etError87	87	Параметры линии выноски заданы неверно
etError88	88	Попытка поставить в контур недопустимый объект
etError89	89	У звеньев контура не совпадают  узлы
etError90	90	В документе не предусмотрена работа с техническими требованиями
etError91	91	В документе не предусмотрена работа с неуказанной шероховатостью
etError92	92	Попытка поставить в таблицу недопустимый объект
etError93	93	В составном объекте не предусмотрена работа с техническими требованиями
etError94	94	В документе не предусмотрена работа с основной надписью
etError95	95	В составном объекте не предусмотрена  работа с основной надписью
etError96	96	Попытка поставить в допуск формы недопустимый объект
etError97	97	Точка кривой NURBS используется неверно
etError98	98	Попытка поставить в ломаную линию недопустимый объект
etError99	99	Объект должен быть геометрическим
etError100	100	Эквидистанту в контур включать нельзя
etError101	101	Неправильная работа с указателем на определение вставного фрагмента
etError102	102	Рекурсивная вставка фрагмента
etError103	103	Ошибка чтения файла фрагмента
etError104	104	Аналогичное определение вставки фрагмента уже есть. Новый комментарий не принимается
etError105	105	Неправильная работа с указателем на основную надпись
etError106	106	Неправильная работа с указателем на неуказанную шероховатость
etError107	107	Неправильная работа с указателем на технические требования
etError108	108	Документ должен быть активным
etError109	109	Стиль кривой не найден
etError110	110	Объект должен быть кривой
etError111	111	Стиль текста не найден
etError112	112	Неверно заданы параметры для расчета длины текста
etError113	113	Новый слой должен существовать и быть доступным для редактирования
etError114	114	Номер раздела задан неверно
etError115	115	Стиль спецификации не найден
etError116	116	В текущем документе объект спецификации не найден
etError117	117	Попытка подключить к объекту спецификации недопустимый объект
etError118	118	Тип объекта задан неверно
etError119	119	Объект заданного типа не редактируется
etError120	120	Нужно завершить редактирование составного объекта
etError121	121	Объект должен быть таблицей
etError122	122	Объект должен быть допуском формы
etError123	123	Не найден файл для отрисовки слайда
etError124	124	Неверная структура файла
etError125	125	Нужно завершиить редактирование объекта спецификации
etError126	126	Объект должен быть макрообъектом
etError127	127	Попытка поставить в макрообъект недопустимый объект
etError128	128	Библиотека фрагментов уже закрыта или не открывалась
etError129	129	Библиотека фрагментов уже открыта
etError130	130	Файл библиотеки фрагментов не найден
etError131	131	Ошибка в структуре файла библиотеки фрагментов
etError132	132	Ошибка в имени файла библиотеки фрагментов
etError133	133	Ошибка в имени фрагмента для библиотеки фрагментов
etError134	134	Доступ к фрагменту в библиотеке фрагментов невозможен"
etError135	135	В документе не предусмотрена работа со спецификацией на листе
etError136	136	Некорректный вид типа атрибута
etError137	137	Номер листа спецификации задан неверно
etError138	138	Документ должен быть открыт в видимом режиме
etError139	139	Ошибка при обработке картинки для стиля кривой
etError140	140	Объект должен быть штриховкой
etError141	141	Объект должен быть текстом
etError142	142	В документе не предусмотрена работа со спецификацией на листе
etError143	143	В документе не предусмотрена работа с зонами
etError144	144	Объект спецификации не редактируется
etError145	145	Файл c растровым объектом не найден
etError146	146	Ошибка в определении параметров описания спецификации
etError147	147	Описание спецификации не найдено
etError148	148	Имя файла спецификации уже используется в листе
etError149	149	Описание спецификации данного типа уже есть в листе
etError150	150	Необходимо завершить текущую операцию
etError151	151	Редактируемый макрообъект удалять нельзя
etError152	152	Служебный файл допусков graphic.tol не найден
etError153	153	Попытка поставить в макрообъект собственный объект
etError154	154	Неправильно задано оформление первого листа спецификации: не указана таблица, предназначенная для спецификации
etError155	155	Не найдено оформление первого листа спецификации
etError156	156	Неправильно задано оформление первого листа спецификации: не найдены ячейки типа "Для спецификации".
etError157	157	Неправильно задано оформление второго и последующих листов спецификации: не указана таблица, предназначенная для спецификации
etError158	158	Не найдено оформление второго и последующих листов спецификации.
etError159	159	Неправильно задано оформление второго и последующих листов спецификации: не найдены ячейки типа "Для спецификации".
etError160	160	Попытка изменить параметры объекта только для чтения.
etError161	161	Попытка изменить параметры объкекта только для чтения.
etError162	162	Ошибка создания файла библиотекаря фрагментов.
etError163	163	Текущий документ пустой. Сохранение в выбранном формате производиться не будет.
etError164	164	Не найдена библиотека стилей спецификаций.
etError165	165	Размер растра превышает допустимый максимальный размер (65536 x 65536).
etError166	166	Не хватает памяти для создания растра указанного размера.
etError167	167	Выбранный диапазон страниц в документе не существует.
etError168	168	Неверный указатель линии выноски.
etError169	169	Имя документа изменить нельзя. Документ с таким именем уже открыт.
etError170	170	Базовый вид должен быть ассоциативным.
etError171	171	Базовый объект должен быть стрелкой вида.
etError172	172	Базовый объект должен быть выносным элементом.
etError173	173	Неправильно задан цвет.
etError174	174	Неправильно заданы единицы измерения.


Коды ошибок 3D
ErrorType3D

Коды ошибок 3D

etNo3dDocument	-7	Документ не активизирован или не является трехмерной моделью
etAbort	-1	Аварийное завершение
et3dError1	1	3D документ уже создан
et3dError2	2	Документ 3D-модели уже открыт
et3dError3	3	Ошибка при создании документа 3D-модели
et3dError4	4	Недопустимая операция для  3D-модели
et3dError5	5	Объект не найден в данном документе 3D-модели
et3dError6	6	Неверный тип параметров редактирования
et3dError7	7	Объект должен быть 3D локальной системой координат
et3dError8	8	Недостаточное количество эскизов для операции
et3dError9	9	У контура слишком много осей
et3dError10	10	У контура не хватает осей
et3dError11	11	Слишком много контуров
et3dError12	12	У контура есть "звезда"
et3dError13	13	Самопересечение контура
et3dError14	14	Самопересечение в продолжении контура
et3dError15	15	Пересечение контуров
et3dError16	16	Образующий контур не пересекает тела
et3dError17	17	Образующий контур не пересекает сечения (для операции построения тела по сечениям)
et3dError18	18	Фрагмент не найден в библиотеке
et3dError19	19	Контур должен быть замкнут
et3dError20	20	Контур должен быть разомкнут
et3dError21	21	Пересечение контура с осью
et3dError22	22	Вырожденная ось у контура
et3dError23	23	Тело состоит из отдельных частей
et3dError24	24	Ошибочная кривая
et3dError25	25	Ошибочный контур
et3dError26	26	Ошибочная поверхность
et3dError27	27	Ошибочное тело
et3dError28	28	Ошибочный параметр
et3dError29	29	Неправильно задана толщина
et3dError30	30	Непоследовательное расположение сечений вдоль кривой (для операции построения тела по сечениям)
et3dError31	31	Объект самопересекается
et3dError32	32	Объекты не пересекаются
et3dError33	33	Объекты пересекается с ошибкой
et3dError34	34	Ошибка в булевой операции
et3dError35	35	Ребра не найдены
et3dError36	36	Ошибка при подготовке операции
et3dError37	37	Ошибка при создании фаски ребра
et3dError38	38	Ошибка при создании скругления ребра
et3dError39	39	Созданы фаски не на всех ребрах
et3dError40	40	Скруглены не все ребра
et3dError41	41	Ошибка при создании поверхности фаски ребра
et3dError42	42	Ошибка при создании поверхности скругления ребра
et3dError43	43	Слишком большые катеты фаски
et3dError44	44	Слишком большой радиус скругления
et3dError45	45	Фаски построены не для всех ребер
et3dError46	46	Скруглены не все ребра
et3dError47	47	Ошибка резки поверхностью
et3dError48	48	Ошибка при создании тонкостенного тела
et3dError49	49	Слишком большая толщина стенки при создании тонкостенного тела
et3dError50	50	Ошибочная грань
et3dError51	51	Контур пустой
et3dError52	52	Неизвестная ошибка постановки ребра жесткости
et3dError53	53	Неизвестная ошибка уклона граней тела
et3dError54	54	Неизвестная ошибка
et3dError55	55	Ошибка в определении имени файла
et3dError56	56	Ошибка в определении детали
et3dError57	57	Ошибка в определении объекта
et3dError58	58	Ошибка в определении типа сопряжения
et3dError59	59	Ошибка при выполненин сопряжения
et3dError60	60	Имя файла компонента сборки не определено
et3dError61	61	Нужно выполнить процесс по выделению объектов
et3dError62	62	Ошибка в определении массива объектов
et3dError63	63	Массив объектов не соответствует документу 3D-модели детали
et3dError64	64	Тип 3D объекта задан неверно
et3dError65	65	Ошибка при вставке 3D-модели детали
et3dError66	66	Нужно завершить режим разнесенного вида
et3dError67	67	Базовая операция может быть только одна
et3dError68	68	Для построения нужна базовая операция
et3dError69	69	Попытка изменить редактируемую деталь в процессе вставки детали в модель
et3dError70	70	Библиотека моделей не найдена
et3dError71	71	Библиотека моделей уже закрыта или не открывалась
et3dError72	72	Библиотека моделей уже открыта
et3dError73	73	Файл библиотеки моделей не найден
et3dError74	74	Ошибка в структуре файла библиотеки моделей
et3dError75	75	Ошибка в имени файла библиотеки моделей
et3dError76	76	Ошибка в имени моделей для библиотеки моделей
et3dError77	77	Доступ к модели в библиотеке моделей  невозможен
et3dError78	78	Ошибка! в выбранном направлении отсутствует поверхность
et3dError79	79	Ошибка! локальное тело поглощает результат
et3dError80	80	Ошибка! ломаная должна иметь не менее двух вершин
et3dError81	81	Ошибка! сплайн должен иметь не менее двух вершин
et3dError82	82	Ошибка в определении эскиза
et3dError83	83	Ошибка в определении ребра
et3dError84	84	Ошибка в определении вершины
et3dError85	85	Ошибка в определении планарной плоскости
et3dError86	86	Ошибка в определении поверхности
et3dError87	87	Ошибка создания файла библиотекаря моделей
et3dError88	88	Неподходящий тип объекта для проецирования
et3dError89	89	Вырожденная проекция объекта на плоскость эскиза
et3dError90	90	Некоторые ребра не спроецированы
et3dError91	91	Документ с таким именем уже открыт
et3dError92	92	Компонент не найден
et3dError93	93	Материал у компонента не найден
et3dError94	94	Попытка изменить деталь из библиотеки моделей или стандартную деталь
et3dError95	95	Компонент не является компонентом сборки
et3dError96	96	Недопустимая операция для компонента, редактируемого на месте
et3dError97	97	Цвет и оптические свойства объекта в сборке изменить нельзя
et3dError98	98	Импортированная поверхность задана неверно
et3dError99	99	Геометрия модели изменилась, данные могут быть не корректными
et3dError100	100	Ошибка при получении данных триангуляции
et3dError101	101	Ошибка при получении данных циклов
et3dError102	102	Не выбран ни один плоский объект
et3dError103	103	Ошибка при получении данных поверхности
et3dError104	104	Ошибка при получении данных 3d плоскости
et3dError105	105	Ошибка при получении данных конической поверхности
et3dError106	106	Ошибка при получении данных цилиндлической поверхности
et3dError107	107	Ошибка при получении данных сферы
et3dError108	108	Ошибка при получении данных тора
et3dError109	109	Ошибка при получении данных кривой
et3dError110	110	Ошибка при получении данных линии
et3dError111	111	Ошибка при получении данных окружности
et3dError112	112	Ошибка при получении данных эллипса
et3dError113	113	У 3d модели нет размеров листа


Структуры параметров

A...B

C

D...F

G...K

L

M...O

P

Q-R

S

T

U...Z


A...B

Типы динамических массивов

ADimParam - структура параметров углового размера

ADimSource - структура параметров привязки углового размера

ArcParam - структура параметров дуги

ArcParam1 - структура параметров дуги по точкам

AStyles - Типы отрисовки стрелок в размерах

Attribute - структура параметров табличного атрибута

AttributeType - структура параметров типа табличного атрибута

ATTypes - Типы данных в столбце табличного атрибута

AxisLineParam - структура параметров осевой линии

BaseParam - структура параметров обозначения базы

BezierParam - структура параметров кривой Безье

BezierPointParam - структура параметров узла кривой Безье

BrandLeaderParam - структура параметров линии-выноски для обозначения клеймения

BreakDimDrawing - структура параметров отрисовки размера с обрывом


C

CentreParam - структура параметров обозначения центра

CircleParam - структура параметров окружности

ColumnInfo - структура параметров столбца табличного атрибута

CON - структура параметров сопрягающей окружности

ConicArcParam - структура параметров конического сечения

ConstraintParam - структура параметрических связей и ограничений

CopyObjectParam - Структура параметров копирования объекта графического документа

CornerParam - структура параметров скругленных углов многоугольников

CTypes - Типы колонок спецификации

CurvePattern -структура параметров участка прерывистой кривой

CurvePatternEx - расширенная структура параметров картинки в стиле линии

CurvePicture - структура параметров картинки в стиле линии

CurveStyleParam - структура параметров стиля кривой

CutLineParam - структура параметров линии разреза/сечения


D...F
D-F

DataTypes - Типы данных

DimDrawing - структура параметров изображения линейного и углового размеров

DimensionPartsParam - структура параметров объектов, составляющих размер

DimensionsOptions - структура параметров для определения настроек размеров

DimText - структура параметров размерной надписи

DModes - Признаки размерной надписи

DocAttachedSpcParam - структура параметров документа, подключенного к спецификации

DocType - Типы документов системы КОМПАС

DocumentParam - структура параметров документа

EllipseArcParam - структура параметров дуги эллипса

EllipseArcParam1 - структура параметров дуги эллипса

EllipseParam - структура параметров эллипса

EndType - Типы действий с библиотеками моделей и фрагментов

EquidistantParam - структура параметров эквидистанты

ErrorCodes - Коды ошибок

FolderTypes - Типы системных каталогов

FStyles - Стандартные форматы листа


G...K
G-K

HatchLineParam - структура параметров линии штриховки

HatchParam - структура параметров штриховки

HatchParamEx - расширенная структура параметров штриховки

HatchStyleParam - структура параметров стиля штриховки

HotPointDescription - структура параметров характерной точки

HStyles - Системные стили штриховок

InertiaParam - структура параметров для расчета МЦХ плоской фигуры

InsertFragmentParam - структура параметров вставки фрагмента

InsertFragmentParamEx - расширенная структура параметров вставки фрагмента

ksAttribute - структура параметров табличного атрибута

ksAttributeType - структура параметров типа табличного атрибута


L

L3DExportFormats - форматы сохранения модели

LayerParam - структура параметров слоя

LayerTypes - Состояния слоев и видов

LBreakDimParam - структура параметров линейного размера с обрывом

LBreakDimSource - структура параметров привязки линейного размера с обрывом

LDimParam - структура параметров линейного размера

LDimSource - структура параметров привязки линейного размера

LeaderParam - структура параметров линии-выноски

LenTypes - Размерности длины

LibPathTypes - Типы пути в библиотеке моделей

LibraryAttrTypeParam - структура параметров для типа атрибута в библиотеке типов атрибутов

LibraryStyleParam - структура параметров стиля в библиотеке стилей

LibStyle - структура параметров для подключения стиля из библиотеки

LineParam - структура параметров вспомогательной прямой

LineSegParam - структура параметров отрезка

LObjColors - Цвета вывода объектов

LPalettes - Цветность растра

LRasterFormats - форматы растра

LStyles - Системные стили линий

LtRemoteElmSignType - Типы значка объекта "Выносной элемент

LtVariant - структура параметров для хранения данных некоторого типа

LtViewType - Типы видов

LTypes - Типы библиотек стилей


M...O
M-O

MarkerLeaderParam - структура параметров линии-выноски для обозначения маркировки

MarkTypes - Системные стили значков

MassInertiaParam - структура параметров для расчета МЦХ тел вращения и выдавливания

MathPointParam - структура параметров математической точки

MTypes - Размерности и типы тел

NumberTypeAttrParam - структура числового значения в колонке спецификации

NurbsParam - структура параметров кривой NURBS

NurbsPointParam - структура параметров узла NURBS

ObjTypes - Типы объектов и интерфейсы

OrdinatedDimParam - структура параметров размера высоты

OrdinatedDimTypes - Типы размеров высоты

OrdinatedDrawing - структура параметров изображения размера высоты

OrdinatedSource - структура параметров привязки размера высоты

OverlapObjectOptions - Параметры перекрывающихся объектов


P

ParagraphParam - структура параметров параграфа

ParamRestrictionTypes - Типы параметрических ограничений

ParamTypes - Типы параметров объектов

Phantom - структура параметров фантома

PhantomTypes - Типы фантомов

PlacementParam - структура параметров привязки

PointParam - структура параметров точки

PolylineParam - структура параметров ломаной линии

PolylineParamEx - расширенная структура параметров ломаной линии

PosLeaderParam - структура параметров позиционной линии-выноски

ProjectionType - Типы проекций

PStyles - Системные стили отрисовки точек

PTypes - Типы фантомов


Q...R
Q-R

QualityContensParam - структура параметров квалитета

QualityItemParam - структура параметров интервала квалитета

RasterFormatParam - структура параметров записи в растровый формат

RasterParam - структура параметров растрового объекта

RBreakDimParam - структура параметров радиального размера с изломом

RBreakDrawing - структура параметров изображения радиального размера с изломом

RDimDrawing - структура параметров изображения диаметрального и радиального размеров

RDimParam - структура параметров диаметрального и обычного радиального размера

RDimSource - структура параметров привязки диаметрального и радиального размеров

RecordTypeAttrParam - структура записи в колонке спецификации

RectangleParam - структура параметров прямоугольника

RectParam - структура параметров прямоугольника

RegularPolygonParam - структура параметров правильного многоугольника

RemoteElementParam - Параметры объекта "Выносной элемент"

RequestInfo - структура параметров запроса к системе

RoughPar - структура параметров обозначения шероховатости

RoughParam - структура параметров обозначения шероховатости с полкой


S

SetTypes - Типы настроек

SheetObjTypes - Типы объектов оформления чертежа

SheetOptions - Структура параметров оформления

SheetPar - структура параметров оформления документов

SheetSize - структура параметров нестандартного листа

ShelfPar - структура параметров выносной полки

SnapOptions - Структура параметров привязок в графическом документе

SortamentTypes - Коды типов сортаментов

SpcColumnParam - структура параметров колонки спецификации

SpcDescrParam - структура параметров описания спецификации

SpcObjParam - структура параметров объекта спецификации

SpcSortTypes - Типы сортировки объектов в разделе спецификации

SpcStrTypes - Типы строк спецификации

SpcStyleColumnParam - структура параметров стиля колонки спецификации

SpcStyleParam - структура параметров стиля спецификации

SpcStyleSectionParam - структура параметров стиля раздела спецификации

SpcSubSectionParam - структура параметров подраздела спецификации

SpcTuningSectionParam - структура параметров настройки раздела спецификации

SpcTuningStyleParam - структура параметров настройки спецификации

SpcVariants - Варианты оформления спецификации

SpecRoughParam - структура параметров знака неуказанной шероховатости

SSTypes - Общие настройки привязок

StandartSheet - структура параметров стандартного листа

StandartViewTypes - Типы стандартных видов

StopTypes - Типы выхода из режима ksSystemControlStart

StructAssociationViewParam - Структура параметров ассоциативного вида

StructType2D - Типы интерфейсов

StTypes - Типы стилей и интерфейсы

STypes - Типы локальной привязки


T

TAN - структура параметров касательной кривой

TechnicalDemandParam - структура параметров технических требований

TextDocumentParam - Структура параметров текстового документа

TextFlags - Признаки начертания текста

TextItemFont - структура параметров шрифта компонента строки текста

TextItemParam - структура параметров компоненты строки текста

TextLineParam - структура параметров строки текста

TextParam - структура параметров текста

TextStyleParam - структура параметров стиля текста

ThicknessTypes - Параметры пера пользовательского стиля линии

ToleranceBranch - структура параметров опоры допуска формы

ToleranceParam - структура параметров обозначения допуска формы

TextAlign - Типы привязки текста

TStyles - Системные стили текстов

Type1 - структура параметров для сдвига группы

Type2 - структура параметров фантома-отрезка или фантома-окружности

Type3 - структура параметров фантома-отрезка с заданным углом и фантома-прямоугольника

Type5 - структура параметров фантома-половины прямоугольника с заданным углом

Type6 - структура параметров пользовательского фантома


U...Z
U-Z

VariableParam - структура параметров параметрической переменной

ViewColorParam - Параметры цвета фона

ViewParam - структура параметров вида

ViewPointerParam - структура параметров стрелки направления взгляда

VTypes - Типы значений в колонках спецификации


События объектов графического документа
ksObject2DNotify
IObject2DNotify

События объектов графических документов.

ksObject2DNotify	- интерфейс Automation
IObject2DNotify	- интерфейс COM
Позволяют контролировать редактирование объектов графического документа.

В Automation источник событий для подписки можно получить при помощи метода ksDocument2D::GetObject2DNotify.

В СOM контейнером для подписки является указатель на графический документ.

Дополнительный параметр при подписке задает объекты, для которых предназначен данный интерфейс событий.

Таким параметром является либо тип объекта (ALL_OBJ...AXISLINE_OBJ, VIEW_OBJ), либо указатель на объект.

Если задан тип объекта, события генерируются для всех объектов этого типа.

Если задан указатель на объект, события генерируются только для этого объекта.

Если задан тип объектов ALL_OBJ, события генерируются для всех объектов.

В процессе обработки события можно получить информацию о редактировании объекта при помощи интерфейса IObject2DNotifyResult для COM или ksObject2DNotifyResult для Automation.

В Automation получить интерфейс результата можно при помощи метода ksDocument2D::GetObject2DNotifyResult.

В COM получить интерфейс результата можно при помощи экспортной функции ksGetObject2DNotifyResult.

События...

Методы...


События объектов графического документа
События
объектов графических документов

ChangeActive

BeginDelete

Delete

BeginMove

Move

BeginRotate

Rotate

BeginScale

Scale

BeginTransform

Transform

BeginCopy

Copy

BeginSymmetry

Symmetry

BeginProcess

EndProcess

CreateObject

UpdateObject


Obj_2Ddoc::ChangeActive
ChangeActive

Переключение активности объекта(вид, слой).

Синтаксис Automation:

BOOL ChangeActive (long objRef);

Синтаксис COM:

BOOL ChangeActive (long objRef);

Входные параметры:

objRef	- указатель на вид или слой.
Возвращаемое значение:

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

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::BeginDelete
BeginDelete

Начало удаления объекта.

Синтаксис Automation:

BOOL BeginDelete (long objRef);

Синтаксис COM:

BOOL BeginDelete (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- удалить объект,
FALSE	- удаление объекта запрещено.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::Delete
Delete

Завершение удаления объекта.

Синтаксис Automation:

BOOL BeginDelete (long objRef);

Синтаксис COM:

BOOL BeginDelete (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::BeginMove
BeginMove

Начало сдвига объекта.

Синтаксис Automation:

BOOL BeginMove (long objRef);

Синтаксис COM:

BOOL BeginMove (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- сдвинуть объект,
FALSE	- сдвиг объекта запрещен.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::Move
Move

Завершение сдвига объекта.

Синтаксис Automation:

BOOL Move (long objRef);

Синтаксис COM:

BOOL Move (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::BeginRotate
BeginRotate

Начало поворота объекта.

Синтаксис Automation:

BOOL BeginMove (long objRef);

Синтаксис COM:

BOOL BeginRotate (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- повернуть объект,
FALSE	- поворот объекта запрещен.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::Rotate
Rotate

Завершение поворота объекта.

Синтаксис Automation:

BOOL Rotate (long objRef);

Синтаксис COM:

BOOL Rotate (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::BeginScale
BeginScale

Начало масштабирования объекта.

Синтаксис Automation:

BOOL BeginScale (long objRef);

Синтаксис COM:

BOOL BeginScale (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- масштабировать объект,
FALSE	- масштабирование объекта запрещено.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::Scale
Scale

Завершение масштабирования объекта.

Синтаксис Automation:

BOOL Scale (long objRef);

Синтаксис COM:

BOOL Scale (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::BeginTransform
BeginTransform

Начало трансформации объекта.

Синтаксис Automation:

BOOL BeginTransform (long objRef);

Синтаксис COM:

BOOL BeginTransform (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- трансформировать объект,
FALSE	- трансформация объекта запрещена.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::Transform
Transform

Завершение трансформации объекта.

Синтаксис Automation:

BOOL Transform (long objRef);

Синтаксис COM:

BOOL Transform (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::BeginCopy
BeginCopy

Начало копирования объекта.

Синтаксис Automation:

BOOL BeginCopy (long objRef);

Синтаксис COM:

BOOL BeginCopy(long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- копировать объект,
FALSE	- копирование объекта запрещено.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc::Copy
Copy

Завершение копирования объекта.

Синтаксис Automation:

BOOL Copy (long objRef);

Синтаксис COM:

BOOL Copy (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc_BeginSymmetry
BeginSymmetry

Начало симметричного преобразования объекта.

Синтаксис Automation:

BOOL BeginSymmetry (long objRef);

Синтаксис COM:

BOOL BeginSymmetry (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- преобразовать объект,
FALSE	- преобразование объекта запрещено.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc_Symmetry
Symmetry

Завершение симметричного преобразования объекта.

Синтаксис Automation:

BOOL Symmetry (long objRef);

Синтаксис COM:

BOOL Symmetry (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc_BeginProcess
BeginProcess

Начало редактирования\создания объекта.

Синтаксис Automation:

BOOL BeginProcess (long pType, long objRef);

Синтаксис COM:

BOOL BeginProcess (long pType, long objRef);

Входные параметры:

pType	-тип процесса (LINESEG_OBJ...AXISLINE_OBJ, VIEW_OBJ)
objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

TRUE	- преобразовать объект,
FALSE	- преобразование объекта запрещено.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc_EndProcess
EndProcess

Завершение редактирования/создания объекта.

Синтаксис Automation:

BOOL EndProcess (long pType);

Синтаксис COM:

BOOL EndProcess (long pType);

Входные параметры:

pType	- тип процесса (SPC_BASE_OBJECT, SPC_COMMENT)
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc_CreateObject
CreateObject

Объект создан.

Синтаксис Automation:

BOOL CreateObject (long objRef);

Синтаксис COM:

BOOL CreateObject (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Obj_2Ddoc_UpdateObject
UpdateObject

Объект отредактирован.

Синтаксис Automation:

BOOL UpdateObject (long objRef);

Синтаксис COM:

BOOL UpdateObject (long objRef);

Входные параметры:

objRef	- указатель на объект или группу объектов.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий объектов графических документов....


Интерфейс ksObject2DNotify
 ksObject2DNotify

Интерфейс событий для объектов графического документа.

В Automation источник событий для графического документа ksObject2DNotify можно получить при помощи метода ksDocument2D::GetObject2DNotify.

В СOM контейнером для подписки на данный интерфейс является указатель на графический документ или документ-модель.

События...

Примечание:

Интерфейс позволяет следить и управлять редактированием объектов графического документа.


Интерфейс ksObject2DNotifyResult
 ksObject2DNotifyResult
IObject2DNotifyResult

Интерфейс результатов редактирования объекта.

ksObject2DNotifyResult	- интерфейс Automation
IObject2DNotifyResult	- интерфейс COM
В Automation получить интерфейс результата можно при помощи метода ksDocument2D::GetObject2DNotifyResult.

В COM получить интерфейс результата можно при помощи экспортной функции ksGetObject2DNotifyResult.

Методы...

Примечание:

В процессе обработки события Object2DNotifyEnum можно получить информацию о редактировании объекта.


ksObject2DNotifyResult::methods
ksObject2DNotifyResult
методы

GetAngle

GetCopyObject

GetNotifyType

GetScale

GetSheetPoint

IsCopy


ksObject2DNotifyResult::GetNotifyType
IObject2DNotifyResult::GetNotifyType

Получить тип события.

Синтаксис Automation:

long GetNotifyType();

Синтаксис COM:

long GetNotifyType();

Возвращаемое значение:

	тип события


ksObject2DNotifyResult::IsCopy
IObject2DNotifyResult::IsCopy

Получить признак копирования исходных объектов.

Синтаксис Automation:

BOOL IsCopy();

Синтаксис COM:

BOOL IsCopy();

Возвращаемое значение:

TRUE	- процесс с копированием,
FALSE	- процесс без копирования.


ksObject2DNotifyResult::GetSheetPoint
IObject2DNotifyResult::GetSheetPoint

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

Синтаксис Automation:

BOOL GetSheetPoint (BOOL from, double *x, double *y);

Синтаксис COM:

BOOL GetSheetPoint (BOOL from, double *x, double *y);

Входные параметры:

from	- TRUE - начало сдвига, центр поворота, центр масштабирования, первая точка оси симетрии, начало копирования - FALSE - конец сдвига, вторая точка оси симетрии, конец копирования.
Выходные параметры:

x, y,	- значения координат точки в системе координат листа
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ksObject2DNotifyResult::GetCopyObject
IObject2DNotifyResult::GetCopyObject

Получить копию объекта, если выполнялась операция копирования.

Синтаксис Automation:

long GetCopyObject();

Синтаксис COM:

long GetCopyObject();

Возвращаемое значение:

	указатель на объект.


ksObject2DNotifyResult::GetAngle
IObject2DNotifyResult::GetAngle

Получить угол поворота объекта.

Синтаксис Automation:

double GetAngle();

Синтаксис COM:

double GetAngle();

Возвращаемое значение:

	угол поворота объекта.


ksObject2DNotifyResult::GetScale
IObject2DNotifyResult::GetScale

Получить коэффициенты масштабирования по координатным осям.

Синтаксис Automation:

BOOL GetScale (double *sx, double *sy);

Синтаксис COM:

BOOL GetScale (double *sx, double *sy);

Выходные параметры:

sx	- масштаб по оси X,
sy	- масштаб по оси Y.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


События объектов документа-модели
ksObject3DNotify
IObject3DNotify

События объектов документа-модели.

ksObject3DNotify	- интерфейс Automation
IObject3DNotify	- интерфейс COM
Позволяют контролировать редактирование объектов документа-модели.

В Automation источник событий для подписки можно получить при помощи метода ksPart::GetObject3DNotify.

В СOM контейнером для подписки является указатель на компонент - IPart.

Дополнительный параметр при подписке задает объекты, для которых предназначен данный интерфейс событий. Таким параметром является либо тип объекта (o3d_unknown...o3d_sketch, o3d_axis2Planes...o3d_thread, o3d_part, o3d_feature), либо указатель на объект.

Если задан тип объекта, события генерируются для всех объектов этого типа.

Если задан указатель на объект, события генерируются только для этого объекта.

Если задан тип объектов o3d_unknown, события генерируются для всех объектов.

В процессе обработки события можно получить информацию о редактировании объекта при помощи интерфейса IObject3DNotifyResult для COM или ksObject3DNotifyResult для Automation.

В Automation получить интерфейс результата можно при помощи метода ksPart::GetObject3DNotifyResult.

В COM получить интерфейс результата можно при помощи экспортной функции IPart::GetObject3DNotifyResult.

События...

Методы...


События
объектов документа-модели

BeginDelete

BeginPlacementChanged

BeginProcess

BeginPropertyChanged

CreateObject

Delete

EndProcess

Excluded

Hidden

PlacementChanged

PropertyChanged

UpdateObject


Obj_3Ddoc::BeginDelete
BeginDelete

Начало удаления объекта.

Синтаксис Automation:

BOOL BeginDelete (LPDISPATCH obj);

Синтаксис COM:

BOOL BeginDelete (LPUNKNOWN obj);

Входные параметры:

obj	- указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

TRUE	- удалить объект,
FALSE	- удаление объекта запрещено.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::Delete
Delete

Завершение удаления объекта.

Синтаксис Automation:

BOOL Delete (LPDISPATCH obj);

Синтаксис COM:

BOOL Delete (LPUNKNOWN obj);

Входные параметры:

obj	- указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::Excluded
Excluded

Oбъект исключен/включен в расчет.

Синтаксис Automation:

BOOL Excluded (LPDISPATCH obj, BOOL excluded);

Синтаксис COM:

BOOL Excluded (LPUNKNOWN obj, BOOL excluded);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
excluded	TRUE - исключен из расчета, FALSE - включен в расчет.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::Hidden
Hidden

Oбъект скрыт/показан.

Синтаксис Automation:

BOOL Hidden (LPDISPATCH obj, BOOL _hidden);

Синтаксис COM:

BOOL Hidden (LPUNKNOWN obj, BOOL _hidden);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
_hidden	TRUE - объект скрыт FALSE - объект показан.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::BeginPropertyChanged
BeginPropertyChanged

Начало изменения свойств объекта.

Синтаксис Automation:

BOOL BeginPropertyChanged (LPDISPATCH obj);

Синтаксис COM:

BOOL BeginPropertyChanged (LPUNKNOWN obj);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

TRUE	- изменить свойства объекта,
FALSE	- изменение свойств объекта запрещено.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::PropertyChanged
PropertyChanged

Изменены свойства объета.

Синтаксис Automation:

BOOL PropertyChanged (LPDISPATCH obj);

Синтаксис COM:

BOOL PropertyChanged (LPUNKNOWN obj);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::BeginPlacementChanged
BeginPlacementChanged

Начало изменения положения объекта.

Синтаксис Automation:

BOOL BeginPlacementChanged (LPDISPATCH obj);

Синтаксис COM:

BOOL BeginPlacementChanged (LPUNKNOWN obj);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

TRUE	- изменить положение объекта,
FALSE	- изменение положения объекта запрещено.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::PlacementChanged
PlacementChanged

Изменено положения объекта.

Синтаксис Automation:

BOOL PlacementChanged (LPDISPATCH obj);

Синтаксис COM:

BOOL PlacementChanged (LPUNKNOWN obj);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::BeginProcess
BeginProcess

Начало редактирования\создания объекта.

Синтаксис Automation:

BOOL BeginProcess (long pType, LPDISPATCH obj);

Синтаксис COM:

BOOL BeginProcess (long pType, LPUNKNOWN obj);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
pType	тип процесса (o3d_sketch, o3d_axis2Planes...o3d_lastEntityElement, o3d_part, o3d_feature )
Возвращаемое значение:

TRUE	- редактировать\создать объект,
FALSE	- редактирование\создание объекта запрещено.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::EndProcess
EndProcess

Редактирования\создания объекта завершено.

Синтаксис Automation:

BOOL EndProcess (long pType);

Синтаксис COM:

BOOL EndProcess (long pType);

Входные параметры:

pType	- тип процесса (o3d_sketch, o3d_axis2Planes...o3d_thread, o3d_part, o3d_feature)
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::CreateObject
CreateObject

Объект создан.

Синтаксис Automation:

BOOL CreateObject (LPDISPATCH obj);

Синтаксис COM:

BOOL CreateObject (LPUNKNOWN obj);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Obj_3Ddoc::UpdateObject
UpdateObject

Объект изменен.

Синтаксис Automation:

BOOL UpdateObject (LPDISPATCH obj);

Синтаксис COM:

BOOL UpdateObject (LPUNKNOWN obj);

Входные параметры:

obj	-  указатель на интерфейс ksFeature(IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объектов документов-моделей....


Интерфейс ksObject3DNotify
 ksObject3DNotify

Интерфейс событий для объектов документа-модели.

В Automation источник событий ksObject3DNotify можно получить при помощи метода ksPart::GetObject3DNotify.

События...

Примечание:

Интерфейс позволяет следить и управлять редактированием объектов документа-модели.


Интерфейс ksObject3DNotifyResult
 ksObject3DNotifyResult

Интерфейс результатов редактирования объекта документа-модели.

ksObject3DNotifyResult	- интерфейс Automation
IObject3DNotifyResult	- интерфейс COM
В Automation получить интерфейс результата можно получить при помощи метода ksPart::GetObject3DNotifyResult.

В COM получить интерфейс результата можно при помощи метода IPart::GetObject3DNotifyResult.

Методы...

Примечание:

В процессе обработки события Object3DNotifyEnum можно получить информацию о редактировании объекта.


ksObject3DNotifyResult::methods
ksObject3DNotifyResult
методы

GetFeatureCollection

GetNotifyType

GetPlacement


ksObject3DNotifyResult::GetNotifyType
IObject3DNotifyResult::GetNotifyType

Получить тип события.

Синтаксис Automation:

long GetNotifyType();

Синтаксис COM:

long GetNotifyType();

Возвращаемое значение:

	тип события


ksObject3DNotifyResult::GetFeatureCollection
IObject3DNotifyResult::GetFeatureCollection

Получить массив удаляемых объектов.

Синтаксис Automation:

ksFeatureCollection * GetFeatureCollection();

Синтаксис COM:

IFeatureCollection * GetFeatureCollection();

Возвращаемое значение:

	указатель на интерфейс массива удаляемых объектов ksFeatureCollection (IFeatureCollection).


ksObject3DNotifyResult::GetPlacement
IObject3DNotifyResult::GetPlacement

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

Синтаксис Automation:

ksPlacement * GetPlacement();

Синтаксис COM:

IPlacement * GetPlacement();

Возвращаемое значение:

	указатель на интерфейс исходных локальных систем координат ksPlacement (IPlacement)


Функции работы с файлами
Функции работы с файлами документов

Функции данного раздела обеспечивают вызов диалогов выбора файлов и получение ссылки на текущий документ.


Функции

ksChoiceFileAppointedDir

ksChoiceFile

ksChoiceFiles

ksGetCurrentDocument

KsSaveFile


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksSaveFile.

Синтаксис:

unsigned  int ksSaveFile (char * ext,

char * oldName,

char * filter,

char * name,

unsigned int bufSize,

unsigned char preview);

Входные параметры:

ext	- расширение имени файла,
oldName	- имя файла по умолчанию,
filter	- фильтр поиска  (0 - формируется автоматически),
preview	- признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Выходные параметры:

name	- буфер для имени файла
bufSize	- размер отведенного буфера для name
Возвращаемое значение:

	требуемая длина буфера.
Описание:

Если размер отведенного буфера меньше требуемой длины bufSize - имя файла не заполняется. В этом случае имя файла можно получить функцией GetRightFileName.


ksSaveFile - пример использования

//создать массив строк

reference arrName = CreateArray (CHAR_STR_ARR, 0);

//выберем файлы, которые хотим перезаписать

if (ChoiceFiles ("*.cdw",    // расширение имени файла

"Чертежи(*.cdw)|*.cdw|Фрагменты(*.frw)|*.frw|Все файлы (*.*)|*.*|", // фильтр поиска

//(0 - формируется автоматически)

arrName))	// массив неопределенной длины на строки CHAR_STR_ARR

{

int count = GetArrayCount (arrName);

char fileName[ MAX_TEXT_LENGTH ];

for (uint i = 0; i < count; i++)

{

char oldFileName[ MAX_TEXT_LENGTH ];

//выберем старое имя файла

GetArrayItem (arrName,	// указатель на массив

i,	// индекс в массиве

//(нумерация начинается с 0)

oldFileName,	// указатель на структуру элемента

MAX_TEXT_LENGTH);// размер структуры элемента

//выберем новое имя файла

if (ksSaveFile ("*.cdw",	// расширение имени файла

oldFileName,	// имя файла по умолчанию

"Чертежи(*.cdw)|*.cdw|Фрагменты(*.frw)|*.frw|Все файлы (*.*)|*.*|",

// фильтр поиска (0 - формируется автоматически)

fileName,	// буфер для имени файла

MAX_TEXT_LENGTH , // размер отведенного буфера name

1)) 	// 1-с подключением окна

// предварительного просмотра

{

//если новое и старое имя не совпадают, перезапишем документ

if (lstrcmp (oldFileName, fileName))

{

reference doc = OpenDocument (oldFileName, 1);

if (doc)

{

SaveDocument (doc, fileName);

CloseDocument (doc);

}

}

}

else

break;

}

}

//удалить массив

DeleteArray(arrName);


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

Выдать диалог выбора файла для чтения.

Аналог данной функции при использовании Automation - метод KompasObject::ksChoiceFile

Синтаксис:

unsigned  int ksChoiceFile (char *ext,

char * filter,

char * name,

unsigned int bufSize,

unsigned char preview);

Входные параметры:

ext	- расширение имени файла,
filter	- фильтр поиска  (0 - формируется автоматически),
preview	- признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Выходные параметры:

name	- буфер для имени файла
bufSize	- размер отведенного буфера для name
Возвращаемое значение:

строка с именем файла	- в случае удачного завершения,
NULL	- в случае отказа от выбора.
Примечание:

Если размер отведенного буфера меньше требуемой длины bufSize - имя файла не заполняется. В этом случае имя файла можно получить функцией GetRightFileName.


ksChoiceFiles - Выдать диалог выбора группы файлов для чтения
ksChoiceFiles 	Пример

Выдать диалог выбора файлов для чтения.

Аналог данной функции при использовании Automation - метод KompasObject::ksChoiceFiles

Синтаксис:

int ksChoiceFile (char * ext,

char * filter,

reference p,

unsigned char preview);

Входные параметры:

ext	- расширение имени файла,
filter	- фильтр поиска  (0 - формируется автоматически),
preview	- признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
Выходной параметр:

p	- указатель на динамический массив строк CHAR_STR_ARR.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.


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

Выдать диалог выбора файла для чтения.

Аналог данной функции при использовании Automation - метод KompasObject::ksChoiceFileAppointedDir

Синтаксис:

unsigned int ksChoiceFileAppointedDir (char *ext,

char * filter,

char * name,

unsigned int bufSize,

unsigned char preview

int typeDir);

Входные параметры:

ext	- расширение имени файла,
filter	- фильтр поиска (0 - фильтр формируется автоматически),
preview	- признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
typeDir	- стартовый каталог.
Выходные параметры:

name	- буфер для имени файла
bufSize	- размер отведенного буфера для name
Возвращаемое значение:

строка с именем файла	- в случае удачного завершения,
NULL	- в случае отказа от выбора.
Примечание:

1. Параметр typeDir может иметь значения sptSYSTEM_FILES и sptLIBS_FILES; во всех остальных случаях открывается текущий каталог.

2. Если размер отведенного буфера меньше требуемой длины bufSize - имя файла не заполняется.

3. В этом случае имя файла можно получить функцией GetRightFileName.


ksChoiceFileAppointedDir - Пример использования

char fileName[ MAX_TEXT_LENGTH ];

if (ksChoiceFileAppointedDir ("*.cdw",	// расширение имени файла

"Чертежи(*.cdw)|*.cdw|Фрагменты(*.frw)|*.frw|Все файлы (*.*)|*.*|",

// фильтр поиска (0 - формируется автоматически)

fileName	// буфер для имени файла

MAX_TEXT_LENGTH, // размер отведенного буфера name

1,  // -с подключением окна предварительного просмотра,

sptSYSTEM_FILES))

{

OpenDocument (fileName, 0);

}


ksGetCurrentDocument - Получить указатель на текущий документ
ksGetCurrentDocument 	Пример

Получить указатель на текущий документ

Синтаксис:

reference ksGetCurrentDocument (unsigned char type);

Возвращаемое значение:

type - тип документа:  0 - любой документ,  1 - только графический документ,  2 - только спецификация  3 - объемная модель (деталь или сборка)  4 - текстовый документ	- в случае удачного завершения,
0	- в случае неудачи.


ksGetCurrentDocument - Пример использования

if (ksGetCurrentDocument (1)) 	// документ должен быть графическим

{

//получим указатель на технические требования

reference pTT = GetReferenceDocumentPart(1);

if (pTT)

{

TechnicalDemandParam par;

//получим параметры описания ТТ

GetObjParam(pTT, &par, sizeof(par), TECHNICAL_DEMAND_PAR);

char buf[128];

sprintf (buf, "число строк TT =%d",par.strCount);

Message(buf);

//открываем ТТ на редактирование

//(ТТ должны быть открыты, чтобы менять тексты)

OpenTechnicalDemand (par.pGab,	//динамический массив

//листов технических требований

//или 0

par.style); 	//стиль текста для технических требований

//(если 0 - умолчательное значение)

//пройдемся по ТТ и получим текст

TextLineParam parLine;

for(int i = 0; i < par.strCount; i++)

{

//берем текущую строку

GetObjParam(pTT, &parLine, sizeof(TextLineParam), TT_FIRST_STR+i);

TextItemParam parItem;

for (int j=0, count1 = GetArrayCount(parLine.pTextItem); j < count1; j++)

{

//берем текущий компонент строки

GetArrayItem(parLine.pTextItem, j, &parItem, sizeof(TextItemParam));

strcat(parItem.s, "!!!");

//меняем текущий компонент строки

SetArrayItem(parLine.pTextItem, j, &parItem, sizeof(TextItemParam));

Message(parItem.s);

}

//меняем текущую строку

SetObjParam(pTT, &parLine, sizeof(TextLineParam), TT_FIRST_STR+i);

}

//закрываем ТТ

CloseTechnicalDemand();

return;

}

}

Error ("Документ должен быть графическим");


Функции настройки конфигурации
Функции

GetDocOptions

ksGetSysOptions

ksGetWorkWindowColor

ksSetSysOptions

SetDocOptions


Функции работы со стилями
Функции

AddStyle

GetStyleParam

ksDeleteStyleFromDocument

ksGetLibraryStylesArray

ksIsStyleInDocument


ksGetWorkWindowColor - получить цвет фона рабочего окна
ksGetWorkWindowColor  	Пример

Получить цвет фона рабочего окна.

Аналог данной функции при использовании Automation - метод KompasObject::ksGetWorkWindowColor.

Синтаксис:.

unsigned long ksGetWorkWindowColor();

Возвращаемое значение:

	цвет фона рабочего окна.


ksGetWorkWindowColor - пример использования

unsigned long color = ksGetWorkWindowColor ();

char buf [128];

sprintf (buf, "Цвет фона рабочего окна = %ld ", color);

Message (buf);


ksSetSysOptions - заменить системные настройки
ksSetSysOptions  	Пример

Задать системные настройки.

Аналог данной функции при использовании Automation - метод KompasObject::ksSetSysOptions.

Синтаксис:

int ksSetSysOptions (int optionsType, void * param, int sizePar);

Входной параметр:

optionsType	- тип настройки (реализовано для привязок),
sizePar	- размер структуры параметров
Выходной параметр:

param	- указатель на структуру параметров,
Возвращаемое значение:

1	- в случае удачного завершения,
0	- в случае неудачи.
Соответствие входных и выходных параметров...


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

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

Аналог данной функции при использовании Automation - метод KompasObject::ksGetSysOptions.

Синтаксис:

int ksGetSysOptions (int optionsType, void * param, int sizePar);

Входной параметр:

optionsType	- тип настройки (реализовано для привязок),
sizePar	- размер структуры параметров
Выходной параметр:

param	- указатель на структуру параметров
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Соответствие входных и выходных параметров...


ksGetSysOptions, ksSetSysOptions - пример использования

if (ksGetCurrentDocument(1)) {

    SnapOptrions par;

    char mes[700];

    memset(&par, 0, sizeof(SnapOptrions));

    //получим параметры привязок

    ksGetSysOptions(SNAP_OPTIONS, &par, sizeof(SnapOptrions));

    sprintf(mes            , "Привязка 'Ближайшая точка '-%s\n", par.nearestPoint   ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'Середина        '-%s\n", par.nearestMiddle  ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'Пересечение     '-%s\n", par.intersect      ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'Касание         '-%s\n", par.tangentToCurve ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'Нормаль         '-%s\n", par.normalToCurve  ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'По сетке        '-%s\n", par.grid           ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'Выравнивание    '-%s\n", par.xyAlign        ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'Угловая привязка'-%s\n", par.angSnap          ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Привязка 'Точка на кривой '-%s\n", par.pointOnCurve   ? "включена" : "отключена");

    sprintf(mes+strlen(mes), "Общие настройки : динамически %sотслеживать\n", par.commonOpt & SN_DYNAMICALLY   ? "" : "не ");

    sprintf(mes+strlen(mes), "                : %sотображать текст\n"       , par.commonOpt & SN_ASSISTANT     ? "" : "не ");

    sprintf(mes+strlen(mes), "                : %sучитывать фоновые слои и виды\n", par.commonOpt & SN_BACKGROUND_LAYER ? "" : "не ");

    sprintf(mes+strlen(mes), "                : %sподавить привязки\n", par.commonOpt & SN_SUSPENDED ? "" : "не ");

    sprintf(mes+strlen(mes), " угловой шаг %f", par.angleStep);

    sprintf(mes+strlen(mes), " локальная привязка = %d", par.localSnap);

    Message(mes);

    //очистим структуру привязок

    memset(&par, 0, sizeof(SnapOptrions));

    //включим привязку Касание

    par.tangentToCurve = 1;

    //включим привязку Точка на кривой

    par.pointOnCurve = 1;

    //текст отображать

    par.commonOpt  = par.commonOpt | SN_ASSISTANT;

    par.angleStep = 10;

    //локальная привязка

    par.localSnap = SN_GRID;

    // заменим привязки

    ksSetSysOptions(SNAP_OPTIONS, &par, sizeof(SnapOptrions));

  }


AddStyle - Добавить стиль
AddStyle  	Пример

Добавить стиль.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksAddStyle.

Синтаксис:

unsigned short AddStyle (unsigned char type,

void *param,

unsigned int sizePar,

unsigned char flag);

Входные параметры:

type	- тип стиля,
param	- указатель на структуру параметров стиля
flag	- признак создания стиля: 0 - создать вручную,  1- взять стиль из библиотеки.
sizePar	- размер структуры параметров стиля
Возвращаемое значение:

идентификатор стиля	- в случае удачного завершения,
0	- в случае неудачи.
Примечания:

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

2. При копировании стиля из библиотеки param - указатель на интерфейс ksLibStyle.

3. При создании стиля вручную:

- для обыкновенного стиля кривых type равен CURVE_STYLE, param - указатель на структуру CurveStyleParam.

- для стиля кривых, содержащего фрагменты, type равен CURVE_STYLE_EX, param - указатель на структуру CurveStyleParam.

- для стиля текста type равен TEXT_STYLE, param - указатель на структуру TextStyleParam.


AddStyle - пример использования

{

unsigned short StyleID;

CurveStyleParam   CrvStyle;

StyleID = AddStyle (CURVE_STYLE, &CrvStyle,

                                     sizeof (CurveStyleParam), 0);

}

Пример создания стиля кривой, содержащего фрагменты (кривой "с картинками")

LibStyle  par;   //структура параметров стиля из библиотеки

  strcpy(par.fileName, "d:\\0\\1.lcs") ;

  par.styleNumber = 1;

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

  unsigned short tl = AddStyle(CURVE_STYLE_EX,  &par, sizeof(par), 1);

  CurveStyleParam curPar;

  //берем параметры стиля

  GetStyleParam(CURVE_STYLE_EX, tl, &curPar, sizeof(curPar));

  //если стиль с картинками продолжаем

  if (curPar.curveType == 2) {

    CurvePatternEx par;

    int count = GetArrayCount(curPar.pattern);

    //убеждаемся, что в стиле есть преривистые участки

    if (count){

      //берем первый участок

      GetArrayItem(curPar.pattern, // указатель на массив

                    0,    // индекс в массиве (нумерация начинается с 0)

                    &par,// указатель на структуру элемента

                    sizeof(par));  // размер структуры элемента

      //устанавливаем признак, что картинку возьмем из фрагмента

      par.pictureType = 1;

      //удаляем  масивы полилиний прежней картинки

      DeleteArray(par.picture.polygon);

      DeleteArray(par.picture.fill);

      //подставляем фрагмент

      strcpy(par.frwName, "d:\\0\\1.frw");

      //заменяем первый участок в стиле

      SetArrayItem(curPar.pattern, // указатель на массив

                    0,    // индекс в массиве (нумерация начинается с 0)

                    &par,// указатель на структуру элемента

                    sizeof(par));  // размер структуры элемента

    }

  }

  //создаем новый стиль, который будет иметь картинку, взятую из фрагмента

  unsigned short tl1 = AddStyle(CURVE_STYLE_EX,  &curPar, sizeof(curPar), 0);

  //создадим окружность с этим стилем

  Circle(100,100, 50, tl1);


GetStyleParam - Получить параметры стиля из документа
GetStyleParam  	Пример

Получить параметры стиля из документа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksGetStyleParam.

Синтаксис:

int GetStyleParam (unsigned char type,

unsigned short styleNumber,

void *param,

unsigned int sizePar);

Входные параметры:

type	- тип стиля,
styleNumber	- номер стиля,
sizePar	- размер структуры параметров
Выходные параметры:

param	- указатель на структуру параметров стиля
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. В случае неудачи структура param заполняется параметрами стиля по умолчанию.

2. Функция получает параметры стиля из документа. Различаются стили кривых, штриховок, текстов, оформления. В настоящее время функция реализована для стилей кривых и текстов.

3. Для обыкновенного стиля кривых type равен CURVE_STYLE, param - указатель на структуру CurveStyleParam.

4. Для стиля кривых, содержащего фрагменты, type равен CURVE_STYLE_EX, param - указатель на структуру CurveStyleParam.

5. Для стиля текста type равен TEXT_STYLE, param - указатель на структуру TextStyleParam.


GetStyleParam - пример использования

{

CurveStyleParam   CrvStyle;

GetStyleParam(CURVE_STYLE, 1,

                          &CrvParam, sizeof(CurveStyleParam));

}


ksGetLibraryStylesArray - Получить указатель на массив стилей
ksGetLibraryStylesArray  	Пример

Получить указатель на динамический массив стилей.

Аналог данной функции при использовании Automation - метод KompasObject::ksGetLibraryStylesArray.

Синтаксис:

reference ksGetLibraryStylesArray (char * libraryName,

unsigned char  libraryType);

Входные параметры:

libraryName	- полное имя библиотеки стилей,
libraryType	- тип библиотеки стиля.
Возвращаемое значение:

указатель на динамический массив LIBRARY_STYLE_ARR стилей заданного типа.	- в случае успеха,
0	- в случае неудачи.


ksGetLibraryStylesArray - пример использования

//получим массив оформлений для графических документов из библиотеки  graphic.lyt

reference styleArr = ksGetLibraryStylesArray ("d:\\Kompas56\\Sys\\graphic.lyt",

GRAPHIC_LAYOUT_STYLE_LIBRARY);// библиотека оформлений

if (styleArr)

{

char buf[128];

//определим количество стилей и отобразим на экране

int count = GetArrayCount(styleArr);

sprintf(buf, "count = %d", count);

Message(buf);

//в цикле получим информацию о каждом стиле и отобразим на экране

for (uint i = 0; i < count; i++)

{

LibraryStyleParam par;

GetArrayItem (styleArr,	// указатель на массив

i,	// индекс в массиве (нумерация начинается с 0)

&par,	// указатель на структуру элемента

sizeof (LibraryStyleParam));	// размер структуры элемента

sprintf(buf, "ID = %d\nname=%s", par.styleId, par.styleName);

Message(buf);

}

}


ksIsStyleInDocument - Проверить, есть ли данный стиль в текущем документе
ksIsStyleInDocument	Пример

Проверить, есть ли данный стиль в текущем документе.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksIsStyleInDocument.

Синтаксис:

int ksIsStyleInDocument (unsigned char type,

void * param,

unsigned int size,

unsigned char flag);

Входные параметры:

type	- тип стиля,
flag	- признак используемой структуры стиля: 0 - создать вручную,  1- взять стиль из библиотеки.
size	- размер структуры параметров
Выходные параметры:

param	- указатель на структуру параметров стиля.
Возвращаемое значение:

1	- стиль в документе есть,
0	- стиля в документе нет.
Примечание:

1. В случае, если стиль задается вручную (flag = 0), требуется указать его параметры:

- для стиля кривой type = CURVE_STYLE, param - указатель на структуру CurveStyleParam,

- для расширенного стиля кривой type = CURVE_STYLE_EX, param - указатель на структуру CurveStyleParam,

- для стиля текста type = TEXT_STYLE, param - указатель на структуру TextStyleParam.

2. В случае, когда стиль берется из библиотеки (flag = 1), требуется задать имя библиотеки и номер стиля: для стиля кривых и для стиля текста param - указатель на структуру LibStyle.


ksDeleteStyleFromDocument - Удалить стиль из документа
ksDeleteStyleFromDocument	Пример

Удалить стиль из документа.

Аналог данной функции при использовании Automation - метод ksDocument2D::ksDeleteStyleFromDocument.

Синтаксис:

int ksDeleteStyleFromDocument (unsigned char  type,

void *param,

unsigned int size,

unsigned char flag);

Входные параметры:

type	- тип стиля,
flag	- признак используемой структуры стиля: 0 - создать вручную,  1- взять стиль из библиотеки.
size	- размер структуры параметров
Выходные параметры:

param	- указатель на структуру параметров стиля
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. В случае, если стиль задается вручную (flag = 0), требуется указать его параметры:

- для стиля кривой type = CURVE_STYLE, param - указатель на структуру CurveStyleParam,

- для расширенного стиля кривой type = CURVE_STYLE_EX, param - указатель на структуру CurveStyleParam,

- для стиля текста type = TEXT_STYLE, param - указатель на структуру TextStyleParam.

2. В случае, когда стиль берется из библиотеки (flag = 1), требуется задать имя библиотеки и номер стиля: для стиля кривых и для стиля текста param - указатель на структуру LibStyle.


ksIsStyleInDocument, ksDeleteStyleFromDocument - пример использования

LibStyle  par;   	//структура параметров стиля кривой

strcpy(par.fileName, "с:\\1.lcs") ;

par.styleNumber = 1;

par.typeAllocation = 1; 	//ссылка на библиотеку стилей

//проверяем, есть ли стиль в текущем документе

if (!ksIsStyleInDocument (CURVE_STYLE,  &par, sizeof (par), 1)) {

Message ("Стиля в документе нет");

unsigned short tl = AddStyle (CURVE_STYLE,  &par, sizeof (par), 1);

LineSeg (20, 20, 70, 20, tl);

CurveStyleParam par1;

int t = GetStyleParam (CURVE_STYLE, tl, &par1, sizeof (par1));

if (t) {

Message (par1.name);

//стиль уже должен быть

if (ksIsStyleInDocument (CURVE_STYLE,  &par, sizeof (par), 1))

Message ("Стиль в документе есть");

//удалим стиль из документа

ksDeleteStyleFromDocument (CURVE_STYLE,  &par, sizeof (par), 1);

}

    	else

      	Error ("ошибка");

  }


Функции вычисления расстояний и углов
Функции вычисления длин, расстояний, углов и МЦХ

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


Функции вычисления расстояний и углов
Функции

Angle

DistancePntPnt

ksCalcInertiaProperties

ksCalcMassInertiaProperties

ksDistancePntArc

ksDistancePntCircle

ksDistancePntLineForPoint

ksDistancePntLine

ksDistancePntLineSeg

ksDistancePntPntOnCurve

ksGetCurvePerimeter

ksViewGetDensity


DistancePntPnt - Определить расстояние между точками.
DistancePntPnt  	Пример

Получить расстояние между двумя точками.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntPnt.

Синтаксис:

double DistancePntPnt (double x1, double y1, double x2, double y2);

Входные параметры:

x1, y1	- координаты первой точки,
x2, y2	- координаты второй точки.
Возвращаемое значение:

расстояние между двумя точками.	- в случае успеха,
0	- в случае неудачи.


DistancePntPnt - пример использования

{

double len;

len = DistancePntPnt (10, 10, 50, 50);

}


ksDistancePntLineSeg - расстояние между  точкой и отрезком
ksDistancePntLineSeg  	Пример

Получить расстояние между точкой и отрезком.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntLineSeg.

Синтаксис:

double ksDistancePntLineSeg (double x, double y,

double x1, double y1,

double x2, double y2);

Входные параметры:

x, y	- координаты точки,
x1, y1	- координаты начальной точки отрезка,
x2, y2	- координаты конечной точки отрезка.
Возвращаемое значение:

расстояние между точкой и отрезком.	- в случае успеха,
0	- в случае неудачи.


ksDistancePntLineSeg - пример использования

Point (10, 10, 1);

  LineSeg(20,15,20,25,1);

  double  len =  ksDistancePntLineSeg (10, 10,    //координаты точки

                                          20, 15,     //первая точка отрезка

                                          20, 25);  //вторая точка отрезка

  char buf[128];

  sprintf(buf, "len = %5.1f", len);

  Message(buf);


ksDistancePntArc - расстояние между  точкой и дугой
ksDistancePntArc  	Пример

Получить расстояние между точкой и дугой.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntArc.

Синтаксис:

double ksDistancePntArc (double x, double y,
double xac, double yac,
double rada,
double fa1, double fa2,
short directa);

Входные параметры:

x, y	- координаты точки,
xac, yac	- координаты центра дуги,
rada	- радиус дуги,
fa1, fa2	- начальный и конечный углы дуги,
directa	- направление дуги:   1 - против часовой стрелки,  -1 – по часовой стрелке.
Возвращаемое значение:

расстояние между точкой и дугой.	- в случае успеха,
0	- в случае неудачи.


ksDistancePntCircle - расстояние между  точкой и окружностью
ksDistancePntCircle  	Пример

Получить расстояние между точкой и окружностью.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntCircle.

Синтаксис:

double ksDistancePntCircle (double x,
double y,
double xc, double yc,
double rad);

Входные параметры:

x, y	- координаты точки,
xc, yc	- координаты центра окружности,
rad	- радиус окружности.
Возвращаемое значение:

расстояние между точкой и окружностью.	- в случае успеха,
0	- в случае неудачи.


ksDistancePntLine - расстояние между  точкой и прямой
ksDistancePntLine  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntLine.

Синтаксис:

double ksDistancePntLine (double x,
double y,
double x1,
double y1,
double angle);

Входные параметры:

x, y	- координаты точки,
x1, y1	- координаты точки на прямой,
angle	- угол наклона прямой.
Возвращаемое значение:

расстояние между точкой и прямой.	- в случае успеха,
0	- в случае неудачи.


ksDistancePntLineForPoint - расстояние между  точкой и прямой
ksDistancePntLineForPoint  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntLineForPoint.

Синтаксис:

double ksDistancePntLineForPoint (double x,
double y,
double x1,
double y1,
double x2,
double y2);

Входные параметры:

x, y	- координаты точки,
x1, y1	- координаты первой точки на прямой,
x2, y2	- координаты второй точки на прямой.
Возвращаемое значение:

расстояние между точкой и прямой.	- в случае успеха,
0	- в случае неудачи.


ksDistancePntLineForPoint - пример использования

reference pObj;

RequestInfo  info;

double x, y;

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

info.prompt = "Укажите отрезок";

reference g;

int j = Cursor (&info, &x ,&y, 0);

if (j)

{

//найдем объект и убедимся, что это отрезок

if (ExistObj(pObj = FindObj (x, y, 1e6)) && GetObjParam (pObj, 0, 0, 0) == LINESEG_OBJ)

{

info.prompt = "Укажите точку";

//получим точку

j = Cursor (&info, &x ,&y, 0);

if (j)

{

LineSegParam  par;

//берем параметры отрезка

GetObjParam (pObj, &par, sizeof (LineSegParam), ALLPARAM);

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

double len = ksDistancePntLineForPoint (x,  y,	//координаты точки

par.x1, par.y1,	//координаты точки на прямой

par.x2, par.y2);	//координаты точки на прямой

char buf[TEXT_LENGTH];

sprintf (buf, "расстояние = %f ", len);

Message (buf);

}

}

else

Error("Это не отрезок");

}


ksDistancePntPntOnCurve - расстояние между точками на кривой
ksDistancePntPntOnCurve	Пример

Получить расстояние между двумя точками на кривой.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksDistancePntPntOnCurve.

Синтаксис:

double ksDistancePntPntOnCurve (reference curve,

double x1, double y1,

double x2, double y2);

Входные параметры:

curve	- указатель на кривую,
x1, y1	- координаты первой точки,
x2, y2	- координаты второй точки.
Возвращаемое значение:

расстояние между двумя точками на кривой	- в случае успеха,
0	- в случае неудачи
Примечание:

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


ksDistancePntPntOnCurve - пример использования

double x, y;

if (::Cursor(NULL, &x, &y, NULL)) {          // указываем кривую

reference curve = ::FindObj(x, y, 1000);   // найти ближайщую кривую

  double x1, y1;

  if (::ExistObj(curve) && ::Cursor(NULL, &x, &y, NULL) // проверим, существует ли кривая

    	 && ::Cursor(NULL, &x1, &y1, NULL)) {   // и укажем две точки на кривой

double len = ::ksDistancePntPntOnCurve(curve, x, y, x1, y1); // расстояние между точками

    char buf[128];

   ::sprintf(buf, "Расстояние между точками = %g", len);

    ::Message(buf);                          // выведем результат

  }

}


ksGetCurvePointProjection - пример использования

reference curve = ::LineSeg (300, 100, -400, -200, 1);

double x = 100;

double y = 50;

::ksGetCurvePointProjection (curve, x, y, &x, &y); // проецируем точку на кривую

char buf[128];

::sprintf (buf, "координаты проекции точки на кривой: (%g, %g)", x, y);

::Message(buf);


Angle - Вычисление угла по двум точкам
Angle  	Пример

Получить угол (в градусах) между осью OX и вектором, заданным двумя точками.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksAngle.

Синтаксис:

double Angle (double x1, double y1, double x2, double y2);

Входные параметры:

x1, y1	- координаты начальной точки вектора,
x2, y2	- координаты конечной точки вектора.
Возвращаемое значение:

угол в градусах.	- в случае успеха,
0	- в случае неудачи.


Angle - пример использования

void Angle_Example (void)

{

double Ang;

//Вычисление угла отрезка 0,0; 60,40

LineSeg (  0,  0,  60,  40, 1);

Ang = Angle (0,  0,  60,  40);

gprintf(Угол = %6.2f, Ang);

};


ksGetCurvePerimeter - Вычисление периметра кривой
ksGetCurvePerimeter  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksGetCurvePerimeter.

Синтаксис:

double ksGetCurvePerimeter (reference curve,

 unsigned char dimension);

Входные параметры:

curve	- указатель на кривую,
dimension	- размерность длины.
Размерности длины...

Возвращаемое значение:

длина периметра кривой	- в случае успеха,
0	- в случае неудачи.


ksGetCurvePerimeter - пример использования
ksGetCurvePerimeter, ksCalcInertiaProperties, ksCalcMassInertiaProperties - пример использования

reference  pObj;

  RequestInfo  info;

  double x, y;

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

  info.prompt = "Укажите кривую";

  int j = Cursor(&info, &x ,&y, 0);

  if (j) {

    if(ExistObj(pObj = FindObj(x, y, 1e6))){

      //узнаем тип объекта

      int type = GetObjParam( pObj,0,0,0); //указатель на графический объект

      if (type == CIRCLE_OBJ        	||    //окружность

           type == ARC_OBJ           	||    //дуга

           type == NURBS_OBJ         	||    //nurbs

           type == LINESEG_OBJ       	||    //отрезок

           type == BEZIER_OBJ        	||    //bezier

           type == CONTOUR_OBJ       	||    //контур

           type == POLYLINE_OBJ      	||    //полилиния

           type == ELLIPSE_OBJ       	||    //эллипс

           type == ELLIPSE_ARC_OBJ   	||    //дуга элипса

           type == RECTANGLE_OBJ     	||    //прямоугольник

           type == REGULARPOLYGON_OBJ      //многоугольник

         ) {

        //периметр кривой

        double  perimeter = ksGetCurvePerimeter(pObj, ST_MIX_MM);  //указатель на кривую

        char buf[255];

        sprintf(buf, "Периметр = %f", perimeter);

        Message(buf);

        InertiaParam inertiaPar;

        //рассчитаем плоские моментно - центровочные характеристики кривой

        int rez =  ksCalcInertiaProperties(pObj,        //указатель на кривую или группу кривых

                                            &inertiaPar, //указатель на структуру моментно-центровочных характкристик

                                            ST_MIX_MM);  //размерность в интервале [ST_MIX_SM..ST_MIX__M]

        if (rez) {

          sprintf(buf, "Центр xc = %f yc = %f площадь = %f", inertiaPar.xc, inertiaPar.yc, inertiaPar.f);

          Message(buf);

          sprintf(buf, "Моменты инерции относительно исходных осей x и y\nlx = %f ly = %f lxy = %f", inertiaPar.lx, inertiaPar.ly, inertiaPar.lxy);

          Message(buf);

          sprintf(buf, "Центральные моменты инерции\nmx = %f my = %f mxy = %f", inertiaPar.mx, inertiaPar.my, inertiaPar.mxy);

          Message(buf);

          sprintf(buf, "Главные центральные моменты инерции\njx = %f jy = %f угол = %f", inertiaPar.jx, inertiaPar.jy, inertiaPar.a);

          Message(buf);

          MassInertiaParam  mInertiaPar;

          //для тела выдавливания моментно-центровочные характеристики

          rez = ksCalcMassInertiaProperties(pObj,          // указатель на кривую или группу кривых

                                       &mInertiaPar, // указатель на структуру массо-центровочных характкристик

                                       ST_MIX_MM|ST_MIX_GR|ST_MIX_EXT ,  // набор флагов

                                       2.7,    // плотность в г/см3

                                       100);   // если тело вращения-угол раствора в градусах, тело выдавливания - толщина

          if (rez) {

            sprintf(buf, "плотность = %f масса = %f объем = %f", mInertiaPar.r, mInertiaPar.m, mInertiaPar.v);

            Message(buf);

            sprintf(buf, "координаты центра тяжести\n xc= %f yc = %f zc = %f", mInertiaPar.xc, mInertiaPar.yc, mInertiaPar.zc);

            Message(buf);

            sprintf(buf, "центробежные моменты инерции\n lxy= %f lxz = %f lyz = %f", mInertiaPar.lxy, mInertiaPar.lxz, mInertiaPar.lyz);

            Message(buf);

            sprintf(buf, "осевые моменты инерции\n lx= %f ly = %f lz = %f", mInertiaPar.lx, mInertiaPar.ly, mInertiaPar.lz);

            Message(buf);

            sprintf(buf, "плоскостные моменты инерции\n jy0z= %f jx0z = %f lx0y = %f", mInertiaPar.jy0z, mInertiaPar.jx0z, mInertiaPar.jx0y);

            Message(buf);

            sprintf(buf, "Главные центробежные моменты инерции\n jxy= %f jxz = %f jyz = %f", mInertiaPar.jxy, mInertiaPar.jxz, mInertiaPar.jyz);

            Message(buf);

            sprintf(buf, "Главные осевые моменты инерции \n jx= %f jy = %f jz = %f", mInertiaPar.jx, mInertiaPar.jy, mInertiaPar.jz);

            Message(buf);

          }

        }

        else

          Error ("Ошибка");

      }

      else

        Error("Выбранный объект не кривая");

    }

  }


ksCalcInertiaProperties - Вычисление МЦХ плоских тел
ksCalcInertiaProperties  	Пример

Получить плоские массо-центровочные характеристики кривой или группы кривых.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksCalcInertiaProperties.

Синтаксис:

int ksCalcInertiaProperties (reference p,
InertiaParam * properties,
unsigned char dimension);

Входные параметры:

p	- указатель на кривую или группу кривых,
dimension	- размерность длины.
Размерности длины...

Выходные параметры:

properties	- - указатель на структуру параметров для расчета плоских МЦХ.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечание:

Кривые должны быть замкнутыми и представлять собой наружные и внутренние контура.


ksCalcMassInertiaProperties - Вычисление МЦХ тел вращения и выдавливания
ksCalcMassInertiaProperties  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksCalcMassInertiaProperties.

Синтаксис:

int ksCalcMassInertiaProperties (reference p,

 MassInertiaParam * properties,

 unsigned int bitVector,

 double density,

 double param);

Входные параметры:

p	- указатель на кривую или группу кривых,
density	- плотность тела (в г/см3),
param	- параметр тела (для тела вращения - угол раствора в градусах, для тела выдавливания - толщина),
bitVector	- структура параметров, определяющая размерности длины, массы и типы деталей.
Выходные параметры:

properties	- указатель на структуру параметров для расчета МЦХ объемных тел.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

Кривые должны быть замкнутыми и представлять собой наружные и внутренние контура.


ksViewGetDensity - Выбрать из диалога значение плотности
ksViewGetDensity  	Пример

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

Аналог данной функции при использовании Automation - метод KompasObject::ksViewGetDensity.

Синтаксис:

double ksViewGetDensity (void * HWindow);

Входной параметр:

HWindow	- handle "родительского" окна или NULL.
Возвращаемое значение:

плотность (в г/см3)	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Плотность выбирается из системного файла плотностей graphic.dns.


ksViewGetDensity - пример использования

char buf[128];

//вызываем диалог  выбора плотности

  double density =  ksViewGetDensity(0); // HWND окна родителя или NULL

  sprintf(buf, " densyty = %f г/см3", density);

  Message(buf);


Функции вычислений касаний и сопряжений

Функции данного раздела обеспечивают вычисление касаний и сопряжений геометрических объектов.


Функции вычислений касаний и сопряжений
Функции

CouplingLineLine

ksCouplingCircleCircle

ksCouplingLineCircle

ksCouplingLineLine

ksTanLinePointCurve

TanCirсleCircle

TanLineAngCircle

TanLinePointCircle


TanLinePointCircle - Касательная к окружности из внешней точки
TanLinePointCircle  	Пример

Получить точки касания окружности и прямой, проходящей через заданную точку.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksTanLinePointCircle.

Синтаксис:

void TanLinePointCircle (double x,
double y,
double xc,
double yc,
double rad,
int *kp,
double xp,
double yp);

Входные параметры:

x, y	- координаты точки,
xc, yc	- координаты центра окружности,
rad	- радиус окружности.
Выходной параметр:

kp	- число касательных (от 0 до 2),
xp, yp	- координаты точки касания.
Примечание:

Построение касательной невозможно в случае, если точка лежит внутри окружности. В противном случае точек касания или две (точка вне окружности), или одна (если точка принадлежит окружности).


TanLinePointCircle- пример использования

void TanLinePointCircle_Example (void) {

double x[2], y[2];

int k, i;

Circle    (  60,  60,     30,   1);

Point     (  20,  50,     1);

TanLinePointCircle (20,  50,  60,  60,  30,  &k, x, y);

gprintf(Количество касаний = %2d, k);

if (k)

for (I=0; i<k; I++)  {

LineSeg (20, 50, x[i], y[i], 1); /* линия касания */

Point (x[i], y[i], 1); /* точка касания */

}

}; /* TanLinePointCircle_Example */


TanLineAngCircle - Касательная к окружности под углом
TanLineAngCircle  	Пример

Получить точки касания окружности и прямой, проходящей под заданным углом.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksTanLineAngCircle.

Синтаксис:

void TanLineAngCircle (double xc,
double yc,
double rad,
double ang,
double xp,
double yp);

Входные параметры:

xc, yc	- координаты центра окружности,
rad	- радиус окружности,
ang	- угол касательной прямой.
Выходные параметры:

xp, yp	- координаты точки касания.


TanLineAngCircle - пример использования

void TanLineAngCircle_Example (void) {

double x[2], y[2];

int k, i;

Circle    (  60,  60,     30,   1);

TanLineAngCircle (60,  60,  30,  45, &k, x, y);

gprintf(Количество касаний = %2d, k);

}; /* TanLineAngCircle_Example */


TanCircleCircle - Определить касание двух окружностей.
TanCircleCircle  	Пример

Получить координаты точек касания прямых к двум окружностям.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksTanCircleCircle.

Синтаксис:

int TanCircleCircle (double xc1,
double yc1,
double radius1,
double xc2,
double yc2,
double radius2,
struct TAN tang);

Входные параметры:

xc1, yc1	- координаты центра первой окружности,
radius1	- радиус первой окружности,
xc2, yc2	- координаты центра второй окружности,
radius2	- радиус второй окружности.
Выходной параметр:

tang	- указатель на массив структур параметров касательных отрезков.
Описание:

Функция определяет точки касания прямых к двум окружностям. Структура типа TAN (описана в LIBTOOL.H) содержит координаты двух точек касания и определяет одну касательную прямую. Касательных прямых может быть от 0 до 4.


TanCircleCircle - пример использования

void TanCircleCircle_Example (void)

{

TAN Tang[4];

int k, i;

Circle(60,60,30,1);

Circle (0, 0, 50, 1);

TanCircleCircle (60, 60, 30, 0, 0, 50, &tang[]);

gprintf(Количество касаний = %2d, k);

if (k)

for (I=0; i<k; I++)

{

LineSeg (tang.x1[i], tang.y1[i], tang.x2[i], tang.y2[i], 1); /* линия касания */

Point (tang.x1[i], tang.y1[i], 1); /* точка касания */

}

};


CouplingLineLine - Касательная к 2 прямым
CouplingLineLine  	Пример

Получить параметры окружностей, касательных к двум прямым.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksCouplingLineLine.

Синтаксис:

void CouplingLineLine (double x1,
double y1,
double ang1,
double x2,
double y2,
double ang2,
double rad,
int *kp,
CON *con);

Входные параметры:

x1, y1	- координаты точки на первой прямой,
angl1	- угол наклона первой прямой,
x2, y2	- координаты точки на второй прямой,
angl2	- угол наклона второй прямой.
Выходные параметры:

rad	- радиус окружности сопряжения.
kp	-количество сопрягающих окружностей
con	- Структура параметров сопрягающей окружности... (описана в LTDEFINE.H
Примечание:

Возможное число сопряжений - от 0 до 4.


CouplingLineLine - пример использования

{

CON  con[4];

Line(0, 0, 45);

Line(50, 50, 175);

CouplingLineLine (0, 0, 45, 50, 50, 175,  30, &kp, &con);

}


ksCouplingLineLine - Вычисление сопряжений двух прямых
ksCouplingLineLine  	Пример

Получить параметры сопряжения двух прямых.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksCouplingLineLine.

Синтаксис:

void CouplingLineLine (double x1,
double y1,
double angle1,
double x2,
double y2,
double angle2,
double rad,
int *kp,
CON *con);

Входные параметры:

x1, y1	- координаты точки на первой прямой,
angle1	- угол наклона первой прямой,
x2, y2	- координаты точки на второй прямой,
angle2	- угол наклона второй прямой.
Выходные параметры:

rad	- радиус окружности сопряжения.
kp	-количество сопрягающих окружностей
con	- Структура параметров сопрягающей окружности... (описана в LTDEFINE.H
Примечание:

Заполняются 4 структуры con, если сопряжение есть.


ksCouplingLineLine - пример использования

{

CON  con[4];

Line(0, 0, 45);

Line(50, 50, 175);

ksCouplingLineLine (0, 0, 45, 50, 50, 175,  30, &kp, &con);

}


ksCouplingCircleCircle - Вычисление сопряжений двух окружностей.
ksCouplingCircleCircle  	Пример

Получить параметры сопрягающих окружностей определенного радиуса и точки сопряжения для двух окружностей.

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksCouplingCircleCircle.

Синтаксис:

void ksCouplingCircleCircle (double xc1,
double yc1,
double radc1,
double xc2,
double yc2,
double radc2
double rad
int *kp,
CON *con);

Входные параметры:

xc1, yc1	- координаты центра первой окружности,
radc1	- радиус первой окружности,
xc2, yc2	- координаты центра второй окружности,
radc2	- радиус второй окружности.
Выходные параметры:

rad	- радиус окружности сопряжения.
kp	-количество сопрягающих окружностей
con	- Структура параметров сопрягающей окружности... (описана в LTDEFINE.H
Примечание:

Заполняются до 8 структур CON, если сопряжение существует.


ksCouplingCircleCircle - пример использования

//поиск  окружностей сопряжения для двух окружностей

      double rad = 20;

      int kp;

      CON con[8];

      Circle(100, 100, 100, 1);

      Circle(100, 150, 100, 1);

      ksCouplingCircleCircle(100, 100, 100, //параметры первой окружности

                              100, 150, 100, //параметры второй окружности

                              rad, &kp, con);

      //отрисуем окружности и точки сопряжения

      for (short i = 0 ; i<8; i++) {

        Circle(con[i].xc, con[i].yc, rad,2);

        Point(con[i].x1,con[i].y1,i);

        Point(con[i].x2,con[i].y2,i);

      }


ksCouplingLineCircle - Вычисление сопряжений окружности и прямой.
ksCouplingLineCircle  	Пример

Получить параметры сопрягающих окружностей определенного радиуса и точки касания при сопряжении окружности и прямой.

Аналог данной функции при использовании Automation - метод Mathematic2D::ksCouplingLineCircle.

Синтаксис:

void ksCouplingLineCircle (double xc,
double yc,
double radc,
double x1,
double y1,
double angle1,
double rad,
int *kp,
CON *con);

Входные параметры:

xc, yc	- координаты центра окружности,
radc	- радиус окружности,
x1, y1	- координаты точки на прямой,
angle1	- угол наклона прямой.
Выходные параметры:

rad	- радиус окружности сопряжения.
kp	-количество сопрягающих окружностей
con	- Структура параметров сопрягающей окружности... (описана в LTDEFINE.H
Примечание:

Заполняются до 8 структур CON, если сопряжение существует.


ksCouplingLineCircle - пример использования

//поиск окружностей сопряжения для прямой и окружности

      double rad = 20;

      int kp;

      CON con[8];

      Circle(100, 100, 100, 1);

      Line(100, 100, 45);

      ksCouplingLineCircle(100, 100, 100,  //параметры окружности

                            100, 100, 45,   //параметры линии

                            rad, &kp, con);

      //отрисуем окружности и точки сопряжения

      for (short i = 0 ; i<8; i++) {

        Circle(con[i].xc, con[i].yc, rad,2);

        Point(con[i].x1,con[i].y1,i);

        Point(con[i].x2,con[i].y2,i);

      }


ksTanLinePointCurve - Вычисление точек касания кривой и прямой из заданной точки.
ksTanLinePointCurve  	Пример

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

Аналог данной функции при использовании Automation - метод ksMathematic2D::ksTanLinePointCurve.

Синтаксис:

extern "C" int ksTanLinePointCurve (double x,
double y,
reference pCur,
reference array);

Входные параметры:

pCur	- указатель на кривую,
x, y	- координаты точки.
Выходной параметр:

array	- указатель на динамический массив точек касания MathPointParam.
Возвращаемое значение:

количество точек касания	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

Динамический массив точек касания array должен быть создан до передачи его в функцию.


ksTanLinePointCurve - пример использования

//поиск окружностей сопряжения для прямой и окружности

  RequestInfo  info;

  ::memset(&info, 0, sizeof(info));

  info.commands = "Укажите объект";

  double x, y;

  int j;

  reference pArray = ::CreateArray(POINT_ARR, 0);

  do { //найдем объект

    j = ::Cursor(&info, &x ,&y, 0);

    if (j) {

      reference pObj = ::FindObj(x, y, 1e6);

      if(::ExistObj(pObj)){

        info.commands = "Укажите точку";

        if (::Cursor(&info, &x ,&y, 0)) {

          ::ksTanLinePointCurve(x, y,     // координаты точки

                                 pObj,     // указатель на кривую

                                 pArray); // массив точек касания

          MathPointParam par;              // Структура параметров математической точки

          ::memset(&par, 0, sizeof(MathPointParam));

          for(int i = 0, count = ::GetArrayCount(pArray); i < count; i++) {

            ::GetArrayItem(pArray, i, &par, sizeof(MathPointParam));

            ::LineSeg(x, y, par.x, par.y, 1);

          }

          ::ClearArray(pArray);

        }

      }

      else

        ::Error("объект не найден");

    }

  } while(j);


Функции документа-модели

Функции данного раздела позволяют работать с документом-моделью.


Функции документа-модели
Функции

ksGet3dDocumentFromReference

ksGet3dDocument

ksGetActive3dDocument

ksGetModelLibrary

ksGetObjectsFilter3D

ksGetReferenceFrom3dDocument


ksGetObjectsFilter3D

Получить интерфейс фильтрации объектов 3D.

Аналог данной функции при использовании Automation - метод KompasObject::ksGetObjectsFilter3D.

Синтаксис:

IObjectsFilter3D * LIB_FUNC ksGetObjectsFilter3D();

Возвращаемое значение:

указатель на интерфейс ksObjectsFilter3D


ksGet3dDocument

Получить указатель на объект документа трехмерной модели.

Синтаксис:

LPDOCUMENT3D ksGet3dDocument();

Возвращаемое значение:

указатель на объект документа трехмерной модели	- в случае удачного завершения,
NULL	- если такого документа нет.


ksGetActive3dDocument

Получить указатель на активный документ трехмерной модели.

Синтаксис:

LPDOCUMENT3D ksGetActive3dDocument();

Возвращаемое значение:

указатель на активный документ трехмерной модели	- в случае удачного завершения,
NULL	- если активного документа нет.


ksGet3dDocumentFromReference

Получить указатель на документ трехмерной модели, соответствующий присланному указателю.

Аналог данной функции при использовании Automation - метод KompasObject::ksGet3dDocumentFromRef.

Синтаксис:

LPDOCUMENT3D ksGet3dDocumentFromReference (reference doc);

Входной параметр:

doc	- указатель на документ.
Возвращаемое значение:

указатель на документ трехмерной модели	- в случае удачного завершения,
NULL	- если такого документа нет.


ksGetReferenceFrom3dDocument

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

Синтаксис:

reference ksGetReferenceFrom3dDocument (LPDOCUMENT3D doc);

Входной параметр:

doc	- интерфейс документа трехмерной модели.
Возвращаемое значение:

указатель на документ трехмерной модели	- в случае удачного завершения,
NULL	- если такого документа нет.


ksGetModelLibrary

Получить указатель на интерфейс Библиотекаря моделей.

Аналог данной функции при использовании Automation - метод KompasObject::GetModelLibrary.

Синтаксис:

LPMODELLIBRARY ksGetModelLibrary();

Возвращаемое значение:

	указатель на интерфейс ksModelLibrary.


Функции экспорта
Функции экспорта документов

Функции данного раздела обеспечивают сохранение КОМПАС-документов в растровых форматах.


Функции экспорта
Функции

ksSaveAsToRasterFormat

ksSaveAsToUncompressedRasterFormat


ksSaveAsToRasterFormat - Сохранить документ в растровом формате
ksSaveAsToRasterFormat

Сохранить документ в растровом формате.

Аналог данной функции при использовании Automation - метод ksDocument2D::SaveAsToRasterFormat.

Синтаксис:

int ksSaveAsToRasterFormat (reference sheet,

char * fileName,

RasterFormatParam * par);

Входные параметры:

sheet	- указатель на документ,
fileName	- полное имя файла документа,
par	- структура параметров записи в растровый формат.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

1. Метод позволяет сохранить присланный документ в растровом формате (BMP, GIF, JPG, PNG, TIF, TGA, PCX) с заданными свойствами.

2. Метод используется для чертежей, фрагментов, спецификаций, деталей и сборок.

3. Для трехмерной модели предварительно нужно получить reference, используя функцию ksGetReferenceFrom3dDocument для COM или свойство ksDocument3D::reference для Automation.

4. Если параметр sheet=0, сохраняется текущий документ.


ksSaveAsToUncompressedRasterFormat

Сохранить документ в растровом формате без сжатия.

Аналог данной функции при использовании Automation - метод ksDocument2D::SaveAsToUncompressedRasterFormat.

Синтаксис:

extern "C" int LIB_FUNC ksSaveAsToUncompressedRasterFormat (reference pDoc,
char * fileName,
RasterFormatParam * par);

Входные параметры:

pDoc	- указатель на документ,
fileName	- имя файла документа, должно быть задано полное имя файла.
par	- структура параметров для конвертации в растровый формат
Возвращаемое значение:

1	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

1. Функция позволяет сохранить документ в растровом формате без сжатия, с заданными свойствами: цветом, форматом (BMP, GIF, JPG, PNG, TIF, TGA, PCX) и т.п. Подробнее см. описание StructRasterFormatParam.

2. Функция используется для графических документов (чертеж, фрагмент), документов деталей и сборок, для спецификаций и текстовых документов. Для документов деталей и сборок предварительно нужно получить reference, используя функцию ksGetReferenceFrom3dDocument для COM или свойство reference для Automation.


Объекты документа-модели


Типы фантомов


Элементы модели
Интерфейсы элементов модели


Интерфейсы элементов грани


что нового
Новое в API по сравнению с предыдущими версиями КОМПАС

Новые возможности API КОМПАС-3D V7...

Новые возможности API КОМПАС-3D V8...


что нового_7
Новое в API КОМПАС-3D V7

Новые интерфейсы...

Новые объекты...

Новые структуры параметров и константы...

Новые интерфейсы событий...

Новые методы и свойства...

Новые методы создания прикладных библиотек...

Измененные методы и свойства...


что нового_8
Новое в API КОМПАС-3D V8

Новые интерфейсы...

Новые структуры параметров и константы...

Новые интерфейсы событий...

Новые методы и свойства...

Измененные методы и свойства...


Новые методы разработки
Новые методы создания
прикладных библиотек

Библиотека КОМПАС-Макро предлагает новый подход к подготовке пользовательских приложений. Средой разработки в данном случае является Python. Язык программирования Python является объектно-ориентированным языком высокого уровня, имеет простой синтаксис и одновременно обладает большой мощностью. Использование языка Python позволяет решать задачи практически любой сложности.

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

Библиотека КОМПАС-Макро позволяет выполнять подготовленные таким образом пользовательские приложения без вызова языка программирования Python.

Специальные функци библиотеки КОМПАС-Макро.


Функции библиотеки КОМПАС-Макро
Специальные функции
библиотеки КОМПАС-Макро

addAngBreakDimension - Создать угловой размер с обрывом.

addAngDimension - Создать угловой размер.

addAxisLine - Создать объект "Осевая линия".

addBase - Проставить обозначения базы.

addBezier - Создать кривую Безье.

addBrandLeader - Создать линию-выноску для обозначения клеймения.

addCentreMarker - Проставить обозначение центра.

addCreateSheetView - Создать новый вид в чертеже.

addCutLine - Создать линию разреза/сечения.

addDiamDimension - Проставить диаметральный размер.

addEquidistant - Построить эквидистанту.

addFragment - Вставить фрагмент.

addLeader - Создать линию-выноску.

addLinBreakDimension - Проставить линейный размер с обрывом.

addLinDimension - Создать линейный размер.

addMarkerLeader - Создать линию-выноску для обозначения маркирования.

addNurbs - Создать кривую NURBS.

addOrdinatedDimension - Проставить размер высоты.

addParagraph - Начать параграф.

addPolyline - Создать ломаную линию.

addPositionLeader - Создать позиционную линию-выноску.

addRadBreakDimension - Создать радиальный размер с изломом.

addRadDimension - Создать радиальный размер.

addRemoteElement - Создать объект "Выносной элемент".

addRough - Проставить обозначение шероховатости.

addSpecRough - Задать шероховатость неуказанных поверхностей.

addTable - Создать таблицу в графическом документе.

addTechnicalDemand - Создать технические требования в графическом документе.

addTolerance - Проставить допуск формы.

addViewPointer - Создать стрелку направления взгляда.

ClearStamp - Очистить графу штампа чертежа/текстового документа.

GetSpcObjectColumn - Получить текст объекта спецификации.

GetStampColumn - Получить текст ячейки основной надписи.

SetLayer - Создать слой.

SetStampColumn - Заменить текст в ячейке.

SpcObjectCreate - Создать объект спецификации.

SpcObjEdit - Редактировать объект спецификации.


Новые методы
Новые методы и свойства v.7

ksAxis2PlanesDefinition::GetCurve3D - Получить указатель на интерфейс математической кривой.

ksAxisOperationsDefinition::GetCurve3D - Получить указатель на интерфейс математической кривой.

ksAxis2PointsDefinition::GetCurve3D - Получить указатель на интерфейс математической кривой.

ksAxisConefaceDefinition::GetCurve3D - Получить указатель на интерфейс математической кривой.

ksAxisEdgeDefinition::GetCurve3D - Получить указатель на интерфейс математической кривой.

ksPlaneOffsetDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlaneAngleDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlane3PointsDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlaneNormalToSurfaceDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlaneTangentToSurfaceDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlaneEdgePointDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlaneParallelDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlanePerpendicularDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlaneLineToEdgeDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksPlaneLineToPlaneDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

ksSketchDefinition::GetSurface - Получить указатель на интерфейс математической поверхности.

IsOnApplication7 - Задать тип версии API используемого библиотекой.

KompasObject::GetParamStruct - Получить интерфейс параметров параметризации объектов.

KompasObject::ksAttachKompasLibrary - Подключить библиотеку.

KompasObject::ksDetachKompasLibrary - Отключить библиотеку.

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

ksCurve3D::NearPointProjection - Получить ближайшую проекцию точки на кривую.

ksDocument2D::ksCalcRasterScale - Рассчитать масштаб для вставки растра в прямоугольник заданных габаритов.

ksDocument2D::ksColouringEx - Создать фоновую заливку цветом.

ksDocument2D::ksParametrizeObjects - Параметризовать группу объектов.

ksDocument2D::ksTextEx - Создать многострочный текст.

ksPlacement/IPlacement::SetAxes - Установить оси X и Y.

ksPlacement/IPlacement::PointProjection - Получить проекцию точки на плоскость XY.

ksPlacement/IPlacement::PointOn - Получить пространственную точку по точке на плоскости XY.

ksSurface::NearPointProjectionПолучить ближайшую проекцию точки на поверхность.

Экспортные функции

IsNotifyProcess - Ограничение обрабатываемых событий.

IsOnApplication7 - Задать тип версии API, используемого библиотекой.

ksCalcRasterScale - Рассчитать масштаб для вставки растра в прямоугольник заданных габаритов.

ksColouringEx - Создать фоновую заливку цветом.

ksGetParametrizationParam - Получить интерфейс параметров параметризации объектов.

ksParametrizeObjects - Параметризовать группу объектов.

ksTextEx - Создать многострочный текст по структуре параметров.

LibIsOnApplication7 - Задать тип версии API, используемого библиотекой.


Новые методы_8
Новые методы,
экспортные функции и свойства v.8

Автоматизация

ksAttributeObject::ksSetSpcObjectAttributeNumber - Установить номер атрибута объекта спецификации.

ksAttributeObject::ksGetSpcObjectColumnTextAlign - Получить выравнивание для текста колонки объекта спецификации.

ksAttributeObject::ksGetSpcObjectSummaryCount - Получить суммарное количество для одинаковых объектов.

ksAttributeObject::ksGetSpcObjectAttributeNumber - Получить номер атрибута объекта спецификации

ksAttributeObject::ksSetSpcObjectColumnTextAlign - Установить выравнивание для текста колонки объекта спецификации.

ksBody::CheckIntersectionWithBody - Проверить наличие пересечений с другим телом.

ksBody::CurveIntersection - Рассчитать пересечения с кривой.

ksDocument2D::ksAssociationViewMatrix3D - Создать матрицу ассоциативного вида.

ksDocument2D::ksPoint3DToAssociationView - Преобразовать координаты 3D точки в координаты ассоциативного вида.

ksDocument3D::GetInterface - Получить интерфейс 3D объекта по типу.

ksMathematic2D::ksTanCurvCurv - Рассчитать касательные к двум кривым.

ksPart::CurveIntersection - Рассчитать пересечения с кривой.

ksPart::TransformPoint - Перевести координаты точки присланной детали part1 в систему координат детали.

ksSurface::CurveIntersection - Рассчитать пересечения с кривой.

ksViewProjection::SetMatrix3D - Установить систему координат отображения модели в окне по матрице.

Экспортные функции

ksSetSpcObjectAttributeNumber - Установить номер атрибута объекта спецификации.

ksGetSpcObjectColumnTextAlign - Получить выравнивание для текста колонки объекта спецификации.

ksGetSpcObjectSummaryCount - Получить суммарное количество для одинаковых объектов.

ksGetSpcObjectAttributeNumber - Получить номер атрибута объекта спецификации

ksSetSpcObjectColumnTextAlign - Установить выравнивание для текста колонки объекта спецификации.

ksAssociationViewMatrix3D - Создать матрицу ассоциативного вида.

ksPoint3DToAssociationView - Преобразовать координаты 3D точки в координаты ассоциативного вида.

ksTanCurvCurv - Функция расчета касательных к двум кривым.

Свойства

IApplication::KompasError - Информация о ошибке системы КОМПАС.

IApplication::LibraryManager - Менеджер библиотек.

IKompasDocument::LayoutSheets - Листы оформления.

IKompasDocument::SpecificationDescriptions - Описания спецификации.

ksPart::hidden - Состояние видимости объекта.


Новые функции создания библиотек_8
Новые функции создания библиотек v.8

ExternalGetResourceModule - Задать модуль с ресурсами библиотеки.


Измененные методы, свойства, функции_8
Измененные методы и свойства v.8

CreateIterator - Создать блок параметров навигации по модели.


Новые интерфейсы_8
Новые интерфейсы v.8

IAdditionalBlockStyles - Интерфейс коллекции стилей блоков дополнительных (вложенных) разделов.

IAdditionalBlockStyle - Интерфейс стиля блока дополнительных (вложенных) разделов спецификации.

IAdditionalBlockTunings - Интерфейс коллекции настроек блоков дополнительных (вложенных) разделов.

IAdditionalBlockSectionTunings - Интерфейс коллекции настроек разделов блока дополнительных (вложенных) разделов.

IAdditionalBlockSectionTuning - Интерфейс настройки раздела блока дополнительных (вложенных) разделов.

IAttachedDocuments - Интерфейс коллекции присоединенных документов к объекту спецификации.

IAttachedDocument - Интерфейс параметров присоединенного документа к объекту спецификации.

IConjunctivePointDefinition - Интерфейс параметров объекта "Присоединительная точка".

IInsertsLibrary - Интерфейс библиотеки элементов (документов) КОМПАС.

IInsertsLibraries - Интерфейс коллекции библиотек элементов (документов) КОМПАС.

IInsert - Интерфейс элемента (документа) библиотеки элементов (документов)..

IInserts - Интерфейс коллекции элементов (документов) библиотеки.

IKompasError - Информация о ошибке системы КОМПАС.

ILayoutSheet - Интерфейс параметров листа оформления.

ILayoutSheets - Интерфейс коллекции листов оформления.

ILibrary - Базовый класс для всех библиотек Компас.

ILibraryManager - Интерфейс Менеджера библиотек.

IProceduresLibrary - Интерфейс прикладной библиотеки КОМПАС.

IProceduresLibraries - Интерфейс коллекции прикладных библиотек КОМПАС.

IProcedures - Интерфейс коллекции процедур прикладной библиотеки КОМПАС.

IProcedure - Интерфейс процедуры прикладной библиотеки КОМПАС.

IPropertyColor - Интерфейс элемента Панели свойств - Выбор цвета.

IPropertyFileName - Интерфейс элемента Панели свойств - Выбор файла.

ISheetFormat - Интерфейс формата листа.

ISpecificationColumns - Интерфейс коллекции колонок объекта спецификации.

ISpecificationColumn - Интерфейс колонки объекта спецификации.

ISpecificationColumnItems - Интерфейс коллекции элементов колонки объекта спецификации.

ISpecificationColumnItem - Интерфейс элемента колонки объекта спецификации.

ISpecificationColumnStyle - Интерфейс стиля колонки спецификации.

ISpecificationColumnStyles - Интерфейс коллекции стилей колонок спецификации.

ISpecificationDescriptions - Интерфейс коллекции описаний спецификации у документа.

ISpecificationDescription - Интерфейс описания спецификации у документа.

ISpecificationObject - Интерфейс объекта спецификации.

ISpecificationSectionStyle - Интерфейс стиля раздела спецификации.

ISpecificationSectionStyles - Интерфейс коллекции стилей разделов спецификации.

ISpecificationStyle - Интерфейс стиля спецификации.

ISpecificationTuning - Интерфейс настроек спецификации.

ISpecificationTuningSections - Интерфейс коллекции настроек разделов спецификации.

ISpecificationTuningSection - Интерфейс настройки раздела спецификации.

ISpecificationSubsections - Интерфейс коллекции подразделов спецификации.

ISpecificationBaseObjects - Интерфейс коллекции базовых объектов спецификации.

ISpecificationBaseObject - Интерфейс базового объекта спецификации.

ISpecificationCommentObjects - Интерфейс коллекции вспомогательных объектов спецификации.

ISpecificationCommentObject - Интерфейс вспомогательного объекта спецификации.

ISpecificationSubsection - Интерфейс подраздела спецификации.

ITextFont - Интерфейс параметров шрифта.

ITextStyle - Интерфейс параметров стиля текста.

ksControlPointDefinition - Интерфейс параметров объекта "Контрольная точка".

ksCoordinate3dCollection - Интерфейс коллекции трехмерных координат.

ksIntersectionResult - Интерфейс результатов пересечения тел.

ksMoldCavityDefinition - Интерфейс операции вычитания ksPlaneMiddleDefinition - Интерфейс параметров конструктивной плоскости "Средняя плоскость".

ksUnionComponentsDefinition - Интерфейс операции объединения компонентов.


Измененые интерфейсы_8
Измененые интерфейсы v.8

ksDrawingObjectNotify - Интерфейс событий для объектов графического документа..


Новые события_8
Новые интерфейсы событий v.8

ksLayoutSheetsNotify - Интерфейс событий для листов оформления.

ksLibraryManagerNotify - Интерфейс событий менеджера библиотек.

ksSpecificationDescriptionNotify - Интерфейс событий для описания спецификации.

ksSpecificationObjectNotify - Интерфейс событий объектов спецификации.


Новые константы_8
Новые структуры параметров и константы v.8

ksAlignEnum - Выравнивание.

ksDocumentFormatEnum - Форматы листа.

ErrorType - Ошибки API, кроме 3D.

Intersection_Type - Типы пересечений.

ksSystemControlStartEnum - Результаты передачи управления системе КОМПАС.

ksLibraryTypeEnum - Типы библиотек.

ksLibraryStyleEnum - Стили отображения прикладных библиотек.

ksSpecificationColumnTypeEnum - Типы колонок спецификации.

ksSortTypeEnum - Типы сортировки.

ksSpecificationLinkTypeEnum - Режимы связи сборки или чертежа со спецификацией.

ksSpecificationObjectTypeEnum - Типы объектов для спецификации.

ksSpecificationObjectStateEnum - Состояние объекта спецификации.

ksSpecificationVariantEnum - Варианты оформления спецификации.

ksTabulatorFillingEnum - Заполнение табулятора.

ksValueTypeEnum - Типы значения атрибута, его колонок и колонок спецификации.

Перечисления событий

ksLibraryManagerNotifyEnum - События для менеджера библиотек.

ksLibraryManagerNotifyEnum - События для менеджера библиотек.

ksLayoutSheetsNotifyEnum - События для листов оформления.


Измененые константы_8
Измененные структуры параметров и константы v.8

ProcessTypeEnum - Типы процессов в КОМПАС-3D.

ksNotifyType - Перечень интерфейсов событий.

ControlTypeEnum - Типы элементов управления Панели свойств.

KompasAPIObjectTypeEnum - Типы объектов КОМПАС API.


Новые 3D объекты_8
Новые типы трехмерных объектов v.8

o3d_UnionComponents - Операция объединение компонентов ksUnionComponentsDefinition.

o3d_MoldCavity - Операция вычитание компонентов ksMoldCavityDefinition.

o3d_coordinate3dCollection - Интерфейс колекции координат ksCoordinate3dCollection.

o3d_planeMiddle - Средняя плоскость.

o3d_controlPoint - Контрольная точка.

o3d_conjunctivePoint - Присоединительная точка.

Новые компоненты

pInPlace_Part - Компонент, редактируемый на месте.


Измененные методы, свойства, функции
Измененные методы и свойства v.7

ExternalRunCommand - Оформление прикладных библиотек типа ActiveX.


Новые интерфейсы
Новые интерфейсы v.7

IApplication - Интерфейс приложения КОМПАС-3D.

IAssemblyDocument - Интерфейс сборки.

IAssociationView - Интерфейс ассоциативного вида графического документа.

IDocument2DSettings - Настройки графического документа.

IDocumentFrame - Интерфейс окна документа.

IDocumentFrames - Коллекция окон документа.

IDocumentSettings - Интерфейс настроек документа.

IDocuments - Коллекция документов, открытых в приложении КОМПАС-3D.

IDrawingDocument - Интерфейс чертежа.

IDrawingDocumentSettings - Настройки чертежа.

IDrawingObject - Базовый интерфейс для всех графических объектов

IDrawingObjects - Базовый интерфейс для коллекций графических объектов.

IFragmentDocument - Интерфейс фрагмента.

IFragmentDocumentSettings - Настройки фрагмента.

IGabaritObject - Вспомогательные данные для изменения габарита документа.

IKompasAPIObject - Базовый объект КОМПАС API (скрытый).

IKompasCollection - Базовая коллекция КОМПАС API (скрытый).

IKompasDocument2D - Базовый класс графических документов КОМПАС.

IKompasDocument3D - Базовый класс документов-моделей КОМПАС (скрытый).

IKompasDocument - Базовый класс документов КОМПАС.

ILayerFilterCondition - Интерфейс условия фильтрации слоев.

ILayerFilterConditions - Интерфейс коллекции условий фильтрации слоев.

ILayerGroup - Интерфейс группы слоев.

ILayerGroups - Интерфейс коллекции групп слоев.

ILayer - Интерфейс слоя графического документа.

ILayers - Интерфейс коллекции слоев графического документа.

IPaintObject - Интерфейс вспомогательных данных для отрисовки документа.

IPartDocument - Интерфейс детали.

IProcessParam - Интерфейс параметров процесса.

IPropertyCheckBox - Интерфейс элемента управления Панели свойств "Опция".

IPropertyControl - Базовый интерфейс элемента управления Панели свойств.

IPropertyControls - Интерфейс коллекции элементов управления.

IPropertyEdit - Интерфейс элемента управления Панели свойств типа "Поле ввода".

IPropertyGrid - Интерфейс элемента управления Панели свойств типа "Сетка".

IPropertyList - Интерфейс элемента управления Панели свойств "Набор кнопок".

IPropertyManager - Интерфейс Панели свойств.

IPropertyMultiButton - Интерфейс элемента управления Панели свойств "Набор кнопок".

IPropertySeparator - Интерфейс элемента управления Панели свойств типа "разделитель" (сепаратор).

IPropertySlideBox - Интерфейс элемента управления Панели свойств типа "Окно отображения слайда, растрового изображения, файла документа КОМПАС или группы файлов".

IPropertySpinEdit - Интерфейс элемента управления Панели свойств типа "Поле ввода со счетчиком".

IPropertyTab - Интерфейс вкладки Панели свойств.

IPropertyTabs - Интерфейс коллекции вкладок Панели свойств.

IPropertyUserControl - Интерфейс элемента управления Панели свойств "Пользовательский элемент управления".

ISpecificationDocument - Интерфейс документа-спецификации.

ITextDocument - Интерфейс текстового документа.

IView - Интерфейс вида графического документа.

IViewsAndLayersManager - Интерфейс менеджера видов и слоев графического документа.

IViews - Интерфейс коллекции видов графического документа.

ksMacro3DDefinition/IMacro3DDefinition - Интерфейс макрообъекта документа-модели.

ksParametrizationParam/IParametrizationParam - Интерфейс параметров параметризации группы объектов.


Новые события
Новые интерфейсы событий v.7

ksPropertyManagerNotify/IPropertyManagerNotify - Интерфейс событий Панели свойств или процессных параметров.

ksViewsAndLayersManagerNotify/IViewsAndLayersManagerNotify - Интерфейс событий менеджера видов и слоев.

ksDocumentFileNotify/IDocumentFileNotify - Интерфейс событий документа - работа с файлом.

ksDocumentFrameNotify/IDocumentFrameNotify - Интерфейс событий для окна документа (клавиатура, мышь, события по отрисовке документа).

ksDrawingObjectNotify/IDrawingObjectNotify - Интерфейс событий для графического объекта.

ksKompasObjectNotify/IKompasObjectNotify - Интерфейс событий приложения.

ksPropertyUserControlNotify/IPropertyUserControlNotify - Интерфейс событий пользовательского элемента управления.


Новый объект - компонент ActiveX
Новый объект API v.7 - компонент ActiveX

Константы ActiveX.

Интерфейсы ActiveX.

События ActiveX.


События ActiveX

_DKGAXEvents - Интерфейс событий ActiveX компонента.


Константы ActiveX

KDocument3DDrawMode - Режимы отображения документа-модели.

KDocumentType - Предопределенные типы документов.

KLibManagerMode - Режимы установки текущего менеджера библиотек.

KZoomType - Способы масштабирования окна документа.


Интерфейсы ActiveX

_DKGAX - Dispatch интерфейс для элемента KGAX.

GabaritObject - Интерфейс вспомогательных данных для события OnKgAddGabatit.

GLObject - Интерфейс вспомогательных данных для события OnKgCreateGLList

PaintObject - Интерфейс вспомогательных данных для события OnKgPaint.


Новые константы
Новые структуры параметров и константы v.7

ButtonTypeEnum - Типы кнопок для элемента Панели свойств Набор кнопок.

CheckStateEnum - Состояния переключателя поля ввода.

ControlTypeEnum - Типы элементов управления Панели свойств.

ConvertCoordTypeEnum - Типы преобразования логических координат в координаты документа.

DefaultFixTypeEnum - Тип фиксированности для умолчательных элементов управления Панели свойств.

DocumentCloseOptions - Действия при закрытии документа КОМПАС.

DocumentTypeEnum - Типы документов КОМПАС.

DrawingObjectTypeEnum - Типы графических объектов.

FilterConditionStateEnum - Состояние параметра в условии фильтрации слоев.

FrameRegimeEnum - Pежим отображения окна.

InterfaceParamTypeEnum - Константы типов интерфейсов параметров для COM в 2D.

ko_Parametrization - Структура параметров параметризации группы объектов в перечислителе Типы интерфейсов, создаваемых методом GetParamStruct объекта KompasObject.

KompasAPIObjectTypeEnum - Типы объектов КОМПАС API.

LayersGroupWayEnum - Способ группировки слоев.

LtViewType - Типы видов чертежа.

ProcessTypeEnum - Типы процессов в КОМПАС API.

PropertyControlNameVisibility - Видимость имени элемента управления на Панели свойств.

PropertyManagerLayout - Положение Панели свойств.

SeparatorTypeEnum - Типы элемента управления Панели свойств - разделитель.

SlideTypeEnum - Тип отображения слайда в окне.

SpecPropertyButtonEnum - Предопределенные кнопки панели свойств.

SpecPropertyToolBarEnum - Предопределенные спецпанели для панели свойств.

ZoomTypeEnum - Тип изменения масштаба отображения документа в окне.

Перечисления событий

ksDocumentFileNotifyEnum - События документа (работа с файлами).

ksDocumentFrameNotifyEnum - События для окна документа.

ksPropertyManagerNotifyEnum - События Панели свойств.

ksPropertyUserControlNotifyEnum - События пользовательского элемента управления.

ksViewsAndLayersManagerNotifyEnum - События менеджера видов и слоев.


Интерфейсы ksCopyCurveDefinition, ICopyCurveDefinition
ksCopyCurveDefinition,
ICopyCurveDefinition

Интерфейс операции копирования по кривой.

ksCopyCurveDefinition	- интерфейс Automation
ICopyCurveDefinition	- интерфейс COM
Свойства...

Методы...


ksCopyCurveDefinition::props
ksCopyCurveDefinition
свойства

count

factor

fullCurve

geomArray

keepAngle

sence

step


ksCopyCurveDefinition::methods
ksCopyCurveDefinition
методы

CurveArray

DeletedCollection

OperationArray


ksCopyCurveDefinition::count
ICopyCurveDefinition::count

Количество копий.

Тип данных - long.

Синтаксис Automation:

count = iCopyCurve.count	Получить свойство (*)
iCopyCurve.count = count	Установить свойство (*)
count = iCopyCurve.GetСount()	Получить свойство (**)
iCopyCurve.SetСount(count)	Установить свойство (**)


ksCopyCurveDefinition::step
ICopyCurveDefinition::step

Шаг копирования.

Тип данных - double.

Синтаксис Automation:

step = iCopyCurve.step	Получить свойство (*)
iCopyCurve.step = step	Установить свойство (*)
step = iCopyCurve.GetStep()	Получить свойство (**)
iCopyCurve.SetStep(step)	Установить свойство (**)


ksCopyCurveDefinition::factor
ICopyCurveDefinition::factor

Признак полного шага.

Тип данных - BOOL.

Значения свойства:

TRUE	- полный шаг,
FALSE	- шаг между соседними копиями.
Синтаксис Automation:

factor = iCopyCurve.factor	Получить свойство (*)
iCopyCurve.factor = factor	Установить свойство (*)
factor = iCopyCurve.GetFactor()	Получить свойство (**)
iCopyCurve.SetFactor(factor)	Установить свойство (**)


ksCopyCurveDefinition::keepAngle
ICopyCurveDefinition::keepAngle

Признак сохранения угла элементов относительно траектории в начальной точке.

Тип данных - BOOL.

Значения свойства:

TRUE	- сохранять угол,
FALSE	- не сохранять угол.
Синтаксис Automation:

keepAngle = iCopyCurve.keepAngle	Получить свойство (*)
iCopyCurve.keepAngle = keepAngle	Установить свойство (*)
keepAngle = iCopyCurve.GetKeepAngle()	Получить свойство (**)
iCopyCurve.SetKeepAngle(keepAngle)	Установить свойство (**)


ksCopyCurveDefinition::fullCurve
ICopyCurveDefinition::fullCurve

Признак распределения копий.

Тип данных - BOOL.

Значения свойства:

TRUE	- по всей длине траектории,
FALSE	- по шагу и количеству.
Синтаксис Automation:

fullCurve = iCopyCurve.fullCurve	Получить свойство (*)
iCopyCurve.fullCurve = fullCurve	Установить свойство (*)
fullCurve = iCopyCurve.GetFullCurve()	Получить свойство (**)
iCopyCurve.SetFullCurve(fullCurve)	Установить свойство (**)


ksCopyCurveDefinition::sence
ICopyCurveDefinition::sence

Направление копирования.

Тип данных - BOOL.

Значения свойства:

TRUE	- по часовой стрелке,
FALSE	- против часовой стрелки.
Синтаксис Automation:

sence = iCopyCurve.sence	Получить свойство (*)
iCopyCurve.sence = sence	Установить свойство (*)
sence = iCopyCurve.GetSence()	Получить свойство (**)
iCopyCurve.SetSence(sence)	Установить свойство (**)


ksCopyCurveDefinition::geomArray
ICopyCurveDefinition::geomArray

Признак использования геометрического копирования.

Тип данных - BOOL.

Значения свойства:

TRUE	- использовать геометрическое копирование. Содержимое оперций источников (грани, ребра) копируется без пересчета. В простых случаях операция ускоряется, но возможны ошибки при копировании скруглений и фасок на криволинейных поверхностях.
FALSE	- при копировании все операции-источники строятся заново, т.е. производится полноценный расчет.
Синтаксис Automation:

geomArray = iMeshCopyDefinition.geomArray	Получить свойство (*)
iMeshCopyDefinition.geomArray = geomArray	Установить свойство (*)
geomArray = iMeshCopyDefinition.GetGeomArray()	Получить свойство (**)
iMeshCopyDefinition.SetGeomArray( geomArray)	Установить свойство (**)


ksCopyCurveDefinition::OperationArray
ICopyCurveDefinition::OperationArray

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

Синтаксис Automation:

IDispatch * OperationArray();

Синтаксис COM:

LPENTITYCOLLECTION OperationArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива операций, подлежащих копированию ksEntityCollection или IEntityCollection.


ksCopyCurveDefinition::CurveArray
ICopyCurveDefinition::CurveArray

Получить указатель на массив кривых, образующих траекторию копирования.

Синтаксис Automation:

IDispatch * CurveArray();

Синтаксис COM:

LPENTITYCOLLECTION CurveArray();

Возвращаемое значение:

	указатель на интерфейс динамического массива кривых ksEntityCollection или IEntityCollection.


ksCopyCurveDefinition::DeletedCollection
ICopyCurveDefinition::DeletedCollection

Получить массив индексов удаленных копий.

Синтаксис Automation:

LPDISPATCH DeletedCollection();

Синтаксис COM:

LPDELETEDCOPYCOLLECTION DeletedCollection();

Возвращаемое значение:

указатель на интерфейс ksDeletedCopyCollection или IDeletedCopyCollection	- в случае успешного завершения.
NULL	- в случае неудачи
Примечание:

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


События основной надписи
ksStampNotify
IStampNotify

События основной надписи графического документа.

ksStampNotify	- интерфейс Automation
IStampNotify	- интерфейс COM
Позволяют контролировать состояние основной надписи.

В Automation источником событий для подписки является указатель на интерфейс ksStamp.

В СOM контейнером для подписки является указатель на документ.

События...

Методы...


События основной надписи (список)
События

BeginEditStamp

EndEditStamp

StampCellBeginEdit

StampCellDblClick


BeginEditStamp

Начало работы со штампом.

Синтаксис Automation:

BOOL BeginEditStamp();

Возвращаемое значение:

TRUE	- редактировать штамп,
FALSE	- штамп редактировать нельзя.
Синтаксис COM:

BOOL BeginEditStamp();

Возвращаемое значение:

TRUE	- редактировать штамп,
FALSE	- штамп редактировать нельзя.
Примечание:

Индекс метода задан в перечислении событий штампа....


EndEditStamp

Завершение работы со штампом

Синтаксис Automation:

BOOL EndEditStamp (BOOL editResult);

Входные параметры:

editResult	- результат редактирования штампа.
Возвращаемое значение:

	не используется
Синтаксис COM:

BOOL EndEditStamp (BOOL editResult);

Входные параметры:

editResult	- результат редактирования штампа.
Возвращаемое значение:

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

Индекс метода задан в перечислении событий штампа....


StampCellDblClick

Двойной щелчок мышью в ячейке штампа.

Синтаксис Automation:

BOOL StampCellDblClick (long number);

Входные параметры:

number	- номер ячейки.
Возвращаемое значение:

TRUE	- обработать двойной щелчок в ячейке,
FALSE	- обработка щелчка запрещена.
Синтаксис COM:

BOOL StampCellDblClick (long number);

Входные параметры:

number	- номер ячейки.
Возвращаемое значение:

TRUE	- обработать двойной щелчок в ячейке,
FALSE	- обработка щелчка запрещена.
Примечание:

Индекс метода задан в перечислении событий штампа....


StampCellBeginEdit

Начало редактирования в ячейке штампа.

Синтаксис Automation:

BOOL StampCellBeginEdit (long number);

Входные параметры:

number	- номер редактируемой ячейки.
Возвращаемое значение:

TRUE	-  редактировать ячейку,
FALSE	- редактирование ячейки запрещено.
Синтаксис COM:

BOOL StampCellBeginEdit (long number);

Входные параметры:

number	- номер редактируемой ячейки.
Возвращаемое значение:

TRUE	-  редактировать ячейку,
FALSE	- редактирование ячейки запрещено.
Примечание:

Индекс метода задан в перечислении событий штампа....


Интерфейс Document3DNotify
 Document3DNotify

Источник событий для документа-модели.

Интерфейс позволяет контролировать редактирование документа-модели.

Указатель на интерфейс можно получить можно получить при помощи метода ksDocument3D::GetDocument3DNotify.

В COM источником для подписки является документ-модель.

События...


Document3DNotify события
ksDocument3DNotify
IDocument3DNotify

События для документа - модели.

ksDocument3DNotify	- интерфейс Automation
IDocument3DNotify	- интерфейс COM
Позволяют контролировать редактирование документа-модели.

В Automation источник событий для подписки Document3DNotify можно получить при помощи метода ksDocument3D::GetDocument3DNotify.

В COM источником для подписки является документ-модель.

События...

Методы...


Document3DNotify::events
ksDocument3DNotify
IDocument3DNotify
события

BeginCreatePartFromFile

BeginSetPartFromFile

BeginRebuild

Rebuild

BeginChoiceMaterial

ChoiceMaterial

BeginChoiceMarking

ChoiceMarking


Document3DNotify::BeginSetPartFromFile
BeginSetPartFromFile

Начало установки компонента в сборку (до диалога выбора имени).

Синтаксис Automation:

BOOL BeginSetPartFromFile();

Синтаксис COM:

BOOL BeginSetPartFromFile();

Возвращаемое значение:

TRUE	- установить компонент в сборку,
FALSE	- установка компонента в сборку запрещена.
Примечание:

Индекс метода задан в перечислении событий документа-модели....


Document3DNotify::BeginCreatePartFromFile
BeginCreatePartFromFile

Начало создания компонента в сборке (до диалога выбора имени).

Синтаксис Automation:

BOOL BeginCreatePartFromFile (BOOL part, ksEntity * plane);

Синтаксис COM:

BOOL BeginCreatePartFromFile (BOOL part, LPENTITY plane);

Входные параметры:

part	TRUE - вставить деталь,
	FALSE - вставить сборку,
plane	- плоскость, на которой создается деталь
Возвращаемое значение:

TRUE	- перестроить модель,
FALSE	- перестройка модели запрещена.
Примечание:

Индекс метода задан в перечислении событий документа-модели....


Document3DNotify::BeginRebuild
BeginRebuild

Начало перестроения модели.

Синтаксис Automation:

BOOL BeginRebuild();

Синтаксис COM:

BOOL BeginRebuild();

Возвращаемое значение:

TRUE	- перестроить модель,
FALSE	- перестройка модели запрещена.
Примечание:

Индекс метода задан в перечислении событий документа-модели....


Document3DNotify::Rebuild
Rebuild

Модель перестроена.

Синтаксис Automation:

BOOL Rebuild();

Синтаксис COM:

BOOL Rebuild();

Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий документа-модели....


Document3DNotify::BeginChoiceMaterial
BeginChoiceMaterial

Начало выбора материала.

Синтаксис Automation:

BOOL BeginChoiceMaterial();

Синтаксис COM:

BOOL BeginChoiceMaterial();

Возвращаемое значение:

TRUE	- выбрать материал,
FALSE	- выбор материала запрещен.
Примечание:

Индекс метода задан в перечислении событий документа-модели....


Document3DNotify::ChoiceMaterial
СhoiceMaterial

Закончен выбор материала.

Синтаксис Automation:

BOOL СhoiceMaterial (BSTR material, double density);

Синтаксис COM:

BOOL СhoiceMaterial (char * material, double density);

Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий документа-модели....

2. В настоящее время событие не реализовано.


Document3DNotify::BeginChoiceMarking
BeginChoiceMarking

Начало выбора обозначения.

Синтаксис Automation:

BOOL BeginChoiceMarking();

Синтаксис COM:

BOOL BeginChoiceMarking();

Возвращаемое значение:

TRUE	- выбрать обозначение,
FALSE	- выбор обозначения запрещен.
Примечание:

Индекс метода задан в перечислении событий документа-модели....


Document3DNotify::ChoiceMarking
ChoiceMarking

Закончен выбор обозначения.

Синтаксис Automation:

BOOL СhoiceMarking (BSTR material);

Синтаксис COM:

BOOL СhoiceMarking (char * material);

Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий документа-модели....


Интерфейс SpcDocumentNotify
 SpcDocumentNotify

Источник событий для документа-спецификации.

Интерфейс позволяет контролировать редактирование документа-спецификации.

Указатель на интерфейс можно получить можно получить при помощи метода ksSpcDocument::GetSpcDocumentNotify.

В COM источником для подписки является документ-спецификация.

События...


События документа-спецификации
 ksSpcDocumentNotify
ISpcDocumentNotify

События документа-спецификации.

ksSpcDocumentNotify	- интерфейс Automation
ISpcDocumentNotify	- интерфейс COM
Позволяют контролировать редактирование документа-спецификации.

Указатель на интерфейс можно получить можно получить при помощи метода ksSpcDocument::GetSpcDocumentNotify.

В COM источником для подписки является документ-спецификация.

События...

Методы...


SpcDocumentNotify::events
SpcDocumentNotify
события

DocumentAdd

DocumentBeginAdd

DocumentBeginRemove

DocumentRemove

SpcStyleBeginChange

SpcStyleChange


SpcDocumentNotify::DocumentBeginAdd
DocumentBeginAdd

Начало добавления документа сборочного чертежа.

Синтаксис Automation:

BOOL DocumentBeginAdd();

Синтаксис COM:

BOOL DocumentBeginAdd();

Возвращаемое значение:

TRUE	- добавить документ сборочного чертежа,
FALSE	- добавление документа запрещено.
Примечание:

Индекс метода задан в перечислении событий документа-спецификации....


SpcDocumentNotify::DocumentAdd
DocumentAdd

Добавлен документ сборочного чертежа.

Синтаксис Automation:

BOOL DocumentAdd (BSTR docName);

Синтаксис COM:

BOOL DocumentAdd (char * docName);

Входные параметры:

docName	- имя файла документа.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий документа-спецификации....


SpcDocumentNotify::DocumentBeginRemove
DocumentBeginRemove

Начало удаления документа сборочного чертежа.

Синтаксис Automation:

BOOL DocumentBeginRemove (BSTR docName);

Синтаксис COM:

BOOL DocumentBeginRemove (char * docName);

Входные параметры:

docName	- имя файла документа.
Возвращаемое значение:

TRUE	- удалить документ сборочного чертежа,
FALSE	- удаление документа запрещено.
Примечание:

Индекс метода задан в перечислении событий документа-спецификации....


SpcDocumentNotify::DocumentRemove
DocumentRemove

Документ удален.

Синтаксис Automation:

BOOL DocumentRemove (BSTR docName);

Синтаксис COM:

BOOL DocumentRemove (char * docName);

Входные параметры:

docName	- имя файла документа.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий документа-спецификации....


SpcDocumentNotify::SpcStyleBeginChange
SpcStyleBeginChange

Начало изменения стиля спецификации.

Синтаксис Automation:

BOOL SpcStyleBeginChange (BSTR libName, long numb);

Синтаксис COM:

BOOL SpcStyleBeginChange (char * libName, long numb);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
Возвращаемое значение:

TRUE	- изменить стиль спецификации,
FALSE	- изменение стиля запрещено.
Примечание:

Индекс метода задан в перечислении событий документа-спецификации....


SpcDocumentNotify::SpcStyleChange
SpcStyleChange

Стиль спецификации изменен.

Синтаксис Automation:

BOOL SpcStyleChange(BSTR libName, long numb);

Синтаксис COM:

BOOL SpcStyleChange(char * libName, long numb);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий документа-спецификации....


Интерфейс SpcObjectNotify
 ksSpcObjectNotify
ISpcObjectNotify

События для объекта спецификации.

ksSpcObjectNotify	- интерфейс Automation
ISpcObjectNotify	- интерфейс COM
Интерфейс позволяет контролировать редактирование объекта спецификации.

Указатель на интерфейс можно получить можно получить при помощи метода ksSpecification::GetSpcObjectNotify.

В COM источником для подписки является документ-спецификация, графический документ, документ-модель.

События...


SpcObjectNotify события
ksSpcObjectNotify
ISpcObjectNotify
события

Позволяют контролировать редактирование объектов спецификации.

В Automation источник событий для подписки SpcObjectNotify можно получить при помощи метода ksSpecification::GetSpcObjectNotify.

В COM источником для подписки является документ (графический, документ-модель, спецификация).

События...

Методы...


SpcObjectNotify::events
SpcObjectNotify
события

BeginDelete

BeginGeomChange

BeginProcess

CellBeginEdit

CellDblClick

ChangeCurrent

CreateObject

Delete

DocumentAdd

DocumentBeginAdd

DocumentRemove

EndProcess

GeomChange

UpdateObject


SpcObjectNotify::BeginDelete
BeginDelete

Начало удаления объекта.

Синтаксис Automation:

BOOL BeginDelete (long objRef);

Синтаксис COM:

BOOL BeginDelete (long objRef);

Входные параметры:

objRef	- указатель на объект.
Возвращаемое значение:

TRUE	- удалить объект,
FALSE	- удаление объекта запрещено.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::Delete
Delete

Объект удален.

Синтаксис Automation:

BOOL Delete (long objRef);

Синтаксис COM:

BOOL Delete (long objRef);

Входные параметры:

objRef	- указатель на объект.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::CellDblClick
CellDblClick

Двойной щелчок в ячейке

Синтаксис Automation:

 BOOL StampCellDblClick (long objRef, long number);

Синтаксис COM:

BOOL StampCellDblClick (long objRef, long number);

Входные параметры:

number	- номер ячейки,
objRef	- указатель на объект.
Возвращаемое значение:

TRUE	- обработать двойной щелчок,
FALSE	- обработка двойного щелчка запрещена.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::CellBeginEdit
CellBeginEdit

Документ удален.

Синтаксис Automation:

BOOL DocumentRemove (BSTR docName);

Синтаксис COM:

BOOL DocumentRemove (char * docName);

Входные параметры:

docName	- имя файла документа.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::ChangeCurrent
ChangeCurrent

Текущий объект изменен.

Синтаксис Automation:

BOOL ChangeCurrent (long objRef);

Синтаксис COM:

BOOL ChangeCurrent (long objRef);

Входные параметры:

objRef	- указатель на объект.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::DocumentBeginAdd
DocumentBeginAdd

Начало добавления документа.

Синтаксис Automation:

BOOL DocumentBeginAdd (long objRef);

Синтаксис COM:

BOOL DocumentBeginAdd (long objRef);

Входные параметры:

objRef	- указатель на объект.
Возвращаемое значение:

TRUE	- добавить документ сборочного чертежа,
FALSE	- добавление документа сборочного чертежа
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::DocumentAdd
DocumentAdd

Документ в объекте спецификации добавлен.

Синтаксис Automation:

BOOL DocumentAdd (long objRef, BSTR docName);

Синтаксис COM:

BOOL DocumentAdd (long objRef, char * docName);

Входные параметры:

objRef	- указатель на объект,
docName	- имя файла документа.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::DocumentRemove
DocumentRemove

Удаление документа из объекта спецификации

Синтаксис Automation:

BOOL DocumentRemove (long objRef, BSTR docName);

Синтаксис COM:

BOOL DocumentRemove (long objRef, char * docName);

Входные параметры:

objRef	- указатель на объект,
docName	- имя файла документа.
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::BeginGeomChange
BeginGeomChange

Начало измения геометрии объекта спецификации.

Синтаксис Automation:

BOOL BeginGeomChange (long objRef);

Синтаксис COM:

BOOL BeginGeomChange (long objRef);

Входные параметры:

objRef	- указатель на объект,
Возвращаемое значение:

TRUE	- изменить геометрию объекта спецификации,
FALSE	- изменение объекта спецификации запрещено.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::GeomChange
GeomChange

Геометрия объекта спецификации изменена.

Синтаксис Automation:

BOOL GeomChange (long objRef, BSTR docName);

Синтаксис COM:

BOOL GeomChange (long objRef, char * docName);

Входные параметры:

objRef	- указатель на объект,
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::BeginProcess
BeginProcess

Начало редактирования/создания объекта.

Синтаксис Automation:

BOOL BeginProcess (long pType, long objRef);

Синтаксис COM:

BOOL BeginProcess (long pType, long objRef);

Входные параметры:

objRef	- указатель на объект,
pType	- тип процесса (SPC_BASE_OBJECT, SPC_COMMENT)
Возвращаемое значение:

TRUE	- редактировать/создать объект,
FALSE	- редактирование/создание объекта спецификации запрещено.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::EndProcess
EndProcess

Конец редактирования/создания объекта.

Синтаксис Automation:

BOOL EndProcess (long pType);

Синтаксис COM:

BOOL EndProcess (long pType);

Входные параметры:

pType	- тип процесса (SPC_BASE_OBJECT, SPC_COMMENT)
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::CreateObject
CreateObject

Создание объекта.

Синтаксис Automation:

BOOL CreateObject (long objRef);

Синтаксис COM:

BOOL CreateObject (long objRef);

Входные параметры:

objRef	- указатель на объект,
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


SpcObjectNotify::UpdateObject
UpdateObject

Редактирование объекта.

Синтаксис Automation:

BOOL UpdateObject (long objRef);

Синтаксис COM:

BOOL UpdateObject (long objRef);

Входные параметры:

objRef	- указатель на объект,
Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий объекта спецификации....


Интерфейс Document2DNotify
 ksDocument2DNotify
IDocument2DNotify

События для графического документа.

ksDocument2DNotify	- интерфейс Automation
IDocument2DNotify	- интерфейс COM
Интерфейс позволяет контролировать редактирование графического документа.

В Automation источник событий для подписки Document2DNotify можно получить при помощи метода ksDocument2D::GetDocument2DNotify.

В COM источником для подписки является графический документ.

События...


Document2DNotify события
ksDocument2DNotify
IDocument2DNotify

События для графического документа.

ksDocument2DNotify	- интерфейс Automation
IDocument2DNotify	- интерфейс COM
Интерфейс позволяет контролировать редактирование графического документа.

В Automation источник событий для подписки Document2DNotify можно получить при помощи метода ksDocument2D::GetDocument2DNotify.

В COM источником для подписки является графический документ.

События...

Методы...


Document2DNotify::events
Document2DNotify
события

BeginRebuild

Rebuild

BeginChoiceMaterial

ChoiceMaterial


Document2DNotify::BeginInsertFragment
BeginInsertFragmen

Начало вставки фрагмента (до диалога выбора имени).

Синтаксис Automation:

BOOL BeginInsertFragment();

Синтаксис COM:

BOOL BeginInsertFragment();

Возвращаемое значение:

TRUE	- вставить фрагмент,
FALSE	- вставка фрагмента запрещена.
Примечание:

Индекс метода задан в перечислении событий графического документа....


Document2DNotify::BeginRebuild
BeginRebuild

Начало перестроения ассоциативного чертежа.

Синтаксис Automation:

BOOL BeginRebuild();

Синтаксис COM:

BOOL BeginRebuild();

Возвращаемое значение:

TRUE	- перестроить чертеж,
FALSE	- перестройка чертежа запрещена.
Примечание:

Индекс метода задан в перечислении событий графического документа....


Document2DNotify::Rebuild
Rebuild

Ассоциативный чертеж перестроен.

Синтаксис Automation:

BOOL Rebuild();

Синтаксис COM:

BOOL Rebuild();

Возвращаемое значение:

	не используется.
Примечание:

Индекс метода задан в перечислении событий графического документа....


Document2DNotify::BeginChoiceMaterial
BeginChoiceMaterial

Начало выбора материала.

Синтаксис Automation:

BOOL BeginChoiceMaterial();

Синтаксис COM:

BOOL BeginChoiceMaterial();

Возвращаемое значение:

TRUE	- выбрать материал,
FALSE	- выбор материала запрещен.
Примечание:

1. Индекс метода задан в перечислении событий графического документа....

2. В настоящее время событие не реализовано.


Document2DNotify::ChoiceMaterial
СhoiceMaterial

Закончен выбор материала.

Синтаксис Automation:

BOOL СhoiceMaterial (BSTR material, double density);

Синтаксис COM:

BOOL СhoiceMaterial(char * material, double density);

Возвращаемое значение:

	не используется.
Примечание:

1. Индекс метода задан в перечислении событий графического документа....

2. В настоящее время событие не реализовано.


Интерфейсы ksAttribute3DCollection, ksAttribute3DCollection
ksAttribute3DCollection,
IAttribute3DCollection

Интерфейс массива атрибутов объектов модели.

ksAttribute3DCollection	- интерфейс Automation
IAttribute3DCollection	- интерфейс COM
Методы...


ksAttribute3DCollection::methods
ksAttribute3DCollection
методы

FindIt

First

GetCount

GetByIndex

Last

Next

Prev

Refresh

Select


ksAttribute3DCollection::FindIt
IksAttribute3DCollection::FindIt

Получить индекс элемента массива.

Синтаксис Automation:

long GetByIndex (ksAttribute3D* obj);

Синтаксис COM:

unsigned long GetByIndex (LPATTRIBUTE3D obj);

Возвращаемое значение:

Индекс элемента массива


ksAttribute3DCollection::First
ksAttribute3DCollection::First

Получить указатель на интерфейс первого атрибута.

Синтаксис Automation:

ksAttribute3D* First();

Синтаксис COM:

LPATTRIBUTE3D First();

Возвращаемое значение:

указатель на интерфейс ksAttribute3D или IAttribute3D.


ksAttribute3DCollection::GetCount
ksAttribute3DCollection::GetCount

Получить количество элементов массива атрибутов.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

unsigned long GetCount();

Возвращаемое значение:

количество элементов массива.


ksAttribute3DCollection::GetByIndex
ksAttribute3DCollection::GetByIndex

Получить указатель на интерфейс атрибута по индексу.

Синтаксис Automation:

ksAttribute3D* GetByIndex (long index);

Синтаксис COM:

LPATTRIBUTE3D GetByIndex (long index);

Возвращаемое значение:

указатель на интерфейс ksAttribute3D или IAttribute3D.


ksAttribute3DCollection::Last
ksAttribute3DCollection::Last

Получить указатель на интерфейс последнего атрибута.

Синтаксис Automation:

ksAttribute3D* Last();

Синтаксис COM:

LPATTRIBUTE3D Last();

Возвращаемое значение:

указатель на интерфейс ksAttribute3D или IAttribute3D.


ksAttribute3DCollection::Next
ksAttribute3DCollection::Next

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

Синтаксис Automation:

ksAttribute3D* Next();

Синтаксис COM:

LPATTRIBUTE3D Next();

Возвращаемое значение:

указатель на интерфейс ksAttribute3D или IAttribute3D.


ksAttribute3DCollection::Prev
ksAttribute3DCollection::Prev

Получить указатель на интерфейс предыдущего атрибута.

Синтаксис Automation:

ksAttribute3D* Prev();

Синтаксис COM:

LPATTRIBUTE3D Prev();

Возвращаемое значение:

указатель на интерфейс ksAttribute3D или IAttribute3D.


ksAttribute3DCollection::Refresh
ksAttribute3DCollection::Refresh

Обновить массив атрибутов.

Синтаксис Automation:

BOOL Refresh();

Синтаксис COM:

BOOL Refresh();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова данной функции возникает полное соответствие массива с массивом атрибутов объекта в документе.


ksAttribute3DCollection::Select
ksAttribute3DCollection::Select

Выделить атрибуты данного типа или с данными ключами.

Синтаксис

BOOL Select (long key1,
long key2,
long key3,
long key4,
double numb,
int objType);

Входные параметры:

key1, key2, key3, key4	- ключи для поиска по ключам либо 0,
numb	- номер типа атрибута для поиска по номеру либо 0,
objType	- тип объекта: все объекты дерева построений, кроме компонентов, сопряжений, группы сопряжений.


Интерфейсы ksAttribute3D, ksAttribute3D
ksAttribute3D,
IAttribute3D

Интерфейс атрибута объектов модели.

ksAttribute3D	- интерфейс Automation
IAttribute3D	- интерфейс COM
Свойства...

Методы...


ksAttribute3D::props
ksAttribute3D
свойства

reference


ksAttribute3D::methods
ksAttribute3D
методы

FeatureCollection


ksAttribute3D::reference
IksAttribute3D::reference

Указатель на атрибут.

Тип данных - long.

Синтаксис Automation:

reference = iAttribute3D.reference	Получить свойство (*)
reference = iAttribute3D.GetReference()	Получить свойство (**)
Примечание:

Свойство доступно только для чтения.


ksAttribute3D::FeatureCollection
ksAttribute3D::FeatureCollection

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

Синтаксис Automation:

ksFeatureCollection* FeatureCollection(int objType);

Синтаксис COM:

LPFEATURECOLLECTION FeatureCollection(int objType);

Входные параметры:

objType	- тип трехмерного объекта
Возвращаемое значение:

указатель на интерфейс ksFeatureCollection.	- массив, содержащий объекты дерева построений, на которые установлен данный атрибут и которые имеют заданный тип.
Примечание:

Если objType = o3d_unknown - выдавать все объекты.


Интерфейсы ksComponentPositioner, IComponentPositioner
ksComponentPositioner,
IComponentPositioner

Интерфейс управления положением компонентов в сборке.

ksComponentPositioner	- интерфейс Automation
IComponentPositioner	- интерфейс COM
Методы...

Примечание:

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

Вращение проводится относительно оси, которая задается относительно сборки. Перед началом вращения нужно задать ось вращения. Это может быть ось или прямолинейное ребро. Начало перемещения определяется вызовом метода Prepare. Окончание перемещения определяется вызовом метода Finish. Между ними может быть сколько угодно вызовов MoveComponent или RotateComponent в зависимости от указанного типа перемещения


ksComponentPositioner::methods
ksComponentPositioner
методы

Finish

MoveComponent

Prepare

RotateComponent

SetAxisByPoints

SetAxis

SetDragPoint

SetPlaneByPlacement

SetPlaneByPoints

SetPlane


ksComponentPositioner::SetPlaneByPlacement
IComponentPositioner::SetPlaneByPlacement

Задать плоскость по системе координат.

Синтаксис Automation:

BOOL SetPlaneByPlacement (ksPlacement * plane);

Синтаксис COM:

BOOL SetPlaneByPlacement (LPPLACEMENT plane);

Входные параметры:

plane	- указатель на интерфейс ksPlacement системы координат, задающей плоскость.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Система координат, задающяя плоскость должна быть определена относительно сборки.


ksComponentPositioner::SetPlane
IComponentPositioner::SetPlane

Задать плоскость.

Синтаксис Automation:

BOOL SetPlane (LPDISPATCH plane);

Синтаксис COM:

BOOL SetPlane (LPUNKNOWN plane);

Входные параметры:

plane	- указатель на интерфейс конструктивной плоскости или плоской поверхности.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksComponentPositioner::SetPlaneByPoints
IComponentPositioner::SetPlaneByPoints

Задать плоскость по точкам.

Синтаксис Automation:

BOOL SetPlaneByPoints (double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3);

Синтаксис COM:

BOOL SetPlaneByPoints (double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3);

Входные параметры:

x1, y1, z1	- координаты первой точки на плоскости,
x2, y2, z2	- координаты второй точки на плоскости,
x3, y3, z3	- координаты третьей точки на плоскости.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Координаты точек, задающие плоскость, должны быть определены относительно сборки.


ksComponentPositioner::SetDragPoint
IComponentPositioner::SetDragPoint

Задать точку захвата (ручка).

Синтаксис Automation:

BOOL SetDragPoint (double x, double y, double z);

Синтаксис COM:

BOOL SetDragPoint (double x, double y, double z);

Входные параметры:

x, y, z	- координаты точки захвата.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Точка захвата должна быть определена в системе координат сдвигаемого компонента.


ksComponentPositioner::SetAxis
IComponentPositioner::SetAxis

Задать ось.

Синтаксис Automation:

BOOL SetAxis (LPDISPATCH axis);

Синтаксис COM:

BOOL SetAxis (LPUNKNOWN axis);

Входные параметры:

axis	- указатель на интерфейс конструктивной оси или прямолинейного ребра.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Точка захвата должна быть определена в системе координат сдвигаемого компонента.


ksComponentPositioner::SetAxisByPoints
IComponentPositioner::SetAxisByPoints

Задать ось.

Синтаксис Automation:

BOOL SetAxisByPoints (double x1,
double y1,
double z1,
double x2,
double y2,
double z2);

Синтаксис COM:

BOOL SetAxisByPoints (double x1,
double y1,
double z1,
double x2,
double y2,
double z2);

Входные параметры:

x1, y1, z1	- координаты первой точки оси,
x2, y2, z2	- координаты второй точки оси.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Координаты точек, задающие ось, должны быть определены отностительно сборки.


ksComponentPositioner::Prepare
IComponentPositioner::Prepare

Подготовиться к перемещению компонента.

Синтаксис Automation:

long Prepare(ksPart * part, Positioner_Type positionerType);

Синтаксис COM:

long Prepare(LPPART part, Positioner_Type positionerType);

Входные параметры:

part	- указатель на интерфейс компоненты ksPart,
positionerType	- тип перемещения.
Возвращаемое значение:

0	- в случае успешного завершения,
1	- в случае неудачи.
Примечание:

Окончание перемещения определяется вызовом метода Finish. Между ними может быть сколько угодно вызовов MoveComponent или RotateComponent в зависимости от указанного типа перемещения.


ksComponentPositioner::MoveComponent
IComponentPositioner::MoveComponent

Подготовиться к перемещению компонента.

Синтаксис Automation:

BOOL MoveComponent(double x, double y, double z);

Синтаксис COM:

BOOL MoveComponent(double x, double y, double z);

Входные параметры:

x, y, z	- координаты точки сдвига.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Перед началом сдвига нужно задать плоскость и точку захвата. Сдвиг проводится в плоскости, которая определена относительно сборки. Начало перемещения определяется вызовом метода Prepare с типом pnMove. Окончание перемещения определяется вызовом метода Finish. Между ними может быть сколько угодно вызовов MoveComponent.


ksComponentPositioner::RotateComponent
IComponentPositioner::RotateComponent

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

Синтаксис Automation:

BOOL RotateComponent (double angl);

Синтаксис COM:

BOOL RotateComponent (double angl);

Входные параметры:

angl	- угол поворота компоненты, рад.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Перед началом вращения нужно задать ось вращения. Это может быть ось или прямолинейное ребро. Начало перемещения определяется вызовом метода Prepare с типом pnRotate. Окончание перемещения определяется вызовом метода Finish. Между ними может быть сколько угодно вызовов RotateComponent.


ksComponentPositioner::Finish
IComponentPositioner::Finish

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

Синтаксис Automation:

BOOL Finish();

Синтаксис COM:

BOOL Finish();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Начало перемещения определяется вызовом метода Prepare. Между ними может быть сколько угодно вызовов MoveComponent или RotateComponent в зависимости от указанного типа перемещения


Интерфейс ksObjectsFilter3D
 ksObjectsFilter3D

Интерфейс фильтрации объектов документа-модели.

ksObjectsFilter3D	- интерфейс Automation
IObjectsFilter3D	- интерфейс COM
Свойства...

Примечание:

1. Служит для включения режима, в котором возможен динамический поиск и указание курсором объектов модели: осей, плоскостей, граней, ребер и вершин.

2. Если установить свойство filterAll, то остальные флаги снимаются.

3. После установки любого свойства, разрешающего поиск и указание объектов определенного типа, свойство Фильтровать все отключается.

4. Если выключаются флаги, соответствующие типам объектов, то флаг Фильтровать все автоматически включается (то есть отключить указание всех типов объектов невозможно).


ksObjectsFilter3D::props
ksObjectsFilter3D
свойства

filterAll

filterCAxis

filterCPlanes

filterEdges

filterFaces

filterVertexs


ksObjectsFilter3D::filterAll
IObjectsFilter3D::filterAll

Фильтровать все.

Тип данных - BOOL.

Значения свойства:

TRUE	- разрешить фильтрацию для всех типов объектов,
FALSE	- фильтрация разрешена только для конкретных типов объектов.
Синтаксис Automation:

filterAll = iObjFilter3D.filterAll;	Получить свойство (*)
iObjFilter3D.filterAll = filterAll;	Установить свойство (*)
filterAll = iObjFilter3D.GetFilterAll();	Получить свойство (**)
iObjFilter3D.SetFilterAll(filterAll);	Установить свойство (**)
Синтаксис COM:

filterAll = iObjFilter3D.GetFilterAll();	Получить свойство
iObjFilter3D.SetFilterAll(filterAll);	Установить свойство
Примечание:

Напрямую установить свойство равным FALSE нельзя. Свойство устанавливается равным FALSE после установки любых флагов для конкретных типов объектов.


ksObjectsFilter3D::filterFaces
IObjectsFilter3D::filterFaces

Фильтровать грани.

Тип данных - BOOL.

Значения свойства:

TRUE	- разрешить фильтрацию граней,
FALSE	- запретить фильтрацию граней.
Синтаксис Automation:

filterFaces = iObjFilter3D.filterFaces;	Получить свойство (*)
iObjFilter3D.filterFaces = filterFaces;	Установить свойство (*)
filterFaces = iObjFilter3D.GetFilterFaces();	Получить свойство (**)
iObjFilter3D.SetFilterFaces(filterFaces);	Установить свойство (**)
Синтаксис COM:

filterFaces = iObjFilter3D.GetFilterFaces();	Получить свойство
iObjFilter3D.SetFilterFaces(filterFaces);	Установить свойство
Примечание:

1. После установки свойства равным TRUE флаг Фильтровать все снимается.

2. Если после установки флага равным FALSE все флаги для типов объектов окажутся равными FALSE, то будет включено свойство Фильтровать все.


ksObjectsFilter3D::filterEdges
IObjectsFilter3D::filterEdges

Фильтровать ребра.

Тип данных - BOOL.

Значения свойства:

TRUE	- разрешить фильтрацию ребер,
FALSE	- запретить фильтрацию ребер.
Синтаксис Automation:

filterEdges = iObjFilter3D.filterEdges;	Получить свойство (*)
iObjFilter3D.filterEdges = filterEdges;	Установить свойство (*)
filterEdges = iObjFilter3D.GetFilterEdges();	Получить свойство (**)
iObjFilter3D.SetFilterEdges(filterEdges);	Установить свойство (**)
Синтаксис COM:

filterEdges = iObjFilter3D.GetFilterEdges();	Получить свойство
iObjFilter3D.SetFilterEdges(filterEdges);	Установить свойство
Примечание:

1. После установки свойства равным TRUE флаг Фильтровать все снимается.

2. Если после установки флага равным FALSE все флаги для типов объектов окажутся равными FALSE, то будет включено свойство Фильтровать все.


ksObjectsFilter3D::filterVertexs
IObjectsFilter3D::filterVertexs

Фильтровать вершины.

Тип данных - BOOL.

Значения свойства:

TRUE	- разрешить фильтрацию вершин,
FALSE	- запретить фильтрацию вершин.
Синтаксис Automation:

filterVertexs = iObjFilter3D.filterVertexs;	Получить свойство (*)
iObjFilter3D.filterVertexs = filterVertexs;	Установить свойство (*)
filterVertexs = iObjFilter3D.GetFilterVertexs();	Получить свойство (**)
iObjFilter3D.SetFilterVertexs(filterVertexs);	Установить свойство (**)
Синтаксис COM:

filterVertexs = iObjFilter3D.GetFilterVertexs();	Получить свойство
iObjFilter3D.SetFilterVertexs(filterVertexs);	Установить свойство
Примечание:

1. После установки свойства равным TRUE флаг Фильтровать все снимается.

2. Если после установки флага равным FALSE все флаги для типов объектов окажутся равными FALSE, то будет включено свойство Фильтровать все.


ksObjectsFilter3D::filterCPlanes
IObjectsFilter3D::filterCPlanes

Фильтровать конструктивные плоскости.

Тип данных - BOOL.

Значения свойства:

TRUE	- разрешить фильтрацию конструктивных плоскостей,
FALSE	- запретить фильтрацию конструктивных плоскостей.
Синтаксис Automation:

filterCPlanes = iObjFilter3D.filterCPlanes;	Получить свойство (*)
iObjFilter3D.filterVertexs = filterCPlanes;	Установить свойство (*)
filterCPlanes = iObjFilter3D.GetFilterCPlanes();	Получить свойство (**)
iObjFilter3D.SetFilterCPlanes(filterCPlanes);	Установить свойство (**)
Синтаксис COM:

filterCPlanes = iObjFilter3D.GetFilterCPlanes();	Получить свойство
iObjFilter3D.SetFilterCPlanes(filterCPlanes);	Установить свойство
Примечание:

1. После установки свойства равным TRUE флаг Фильтровать все снимается.

2. Если после установки флага равным FALSE все флаги для типов объектов окажутся равными FALSE, то будет включено свойство Фильтровать все.


ksObjectsFilter3D::filterCAxis
IObjectsFilter3D::filterCAxis

Фильтровать конструктивные оси.

Тип данных - BOOL.

Значения свойства:

TRUE	- разрешить фильтрацию конструктивных осей,
FALSE	- запретить фильтрацию конструктивных осей.
Синтаксис Automation:

filterCAxis = iObjFilter3D.filterCAxis;	Получить свойство (*)
iObjFilter3D.filterCAxis = filterCAxis;	Установить свойство (*)
filterCAxis = iObjFilter3D.GetFilterCAxis();	Получить свойство (**)
iObjFilter3D.SetFilterCAxis(filterCAxis);	Установить свойство (**)
Синтаксис COM:

filterCAxis = iObjFilter3D.GetFilterCAxis();	Получить свойство
iObjFilter3D.SetFilterCAxis(filterCAxis);	Установить свойство
Примечание:

1. После установки свойства равным TRUE флаг Фильтровать все снимается.

2. Если после установки флага равным FALSE все флаги для типов объектов окажутся равными FALSE, то будет включено свойство Фильтровать все.


Интерфейсы ksEvolutionSurfaceDefinition, IEvolutionSurfaceDefinition
ksEvolutionSurfaceDefinition,
IEvolutionSurfaceDefinition

Интерфейс параметров кинематической поверхности.

ksEvolutionSurfaceDefinition	- интерфейс Automation
IEvolutionSurfaceDefinition	- интерфейс COM
Свойства...

Методы...


ksEvolutionSurfaceDefinition::props
ksEvolutionSurfaceDefinition
свойства

closedShell

sketchShiftType


ksEvolutionSurfaceDefinition::methods
ksEvolutionSurfaceDefinition
методы

GetSketch

PathPartArray

SetSketch


closedShell
ksEvolutionSurfaceDefinition::closedShell
IEvolutionSurfaceDefinition::closedShell

Признак замкнутости поверхности.

Тип данных - VARIANT_BOOL.

Синтаксис Automation:

closedShell = iEvolution.closedShell	Получить свойство (*)
iEvolution.closedShell = closedShell	Установить свойство (*)
closedShell = iEvolution.GetClosedShell()	Установить свойство (**)
iEvolution.SetClosedShell(closedShell)	Получить свойство (**)
Синтаксис COM:

closedShell = iEvolution.GetClosedShell()	Получить свойство
iEvolution.SetClosedShell(closedShell)	Установить свойство
Значения свойства:

TRUE	- поверхность замкнута,
FALSE	- поверхность не замкнута.


sketchShiftType
ksEvolutionSurfaceDefinition::sketchShiftType
IEvolutionSurfaceDefinition::sketchShiftType

Тип движения сечения по траектории.

Тип данных - short.

Синтаксис Automation:

sketchShiftType = iEvolution.sketchShiftType	Получить свойство (*)
iEvolution.sketchShiftType = sketchShiftType	Установить свойство (*)
sketchShiftType = iEvolution.GetSketchShiftType()	Установить свойство (**)
iEvolution.SetSketchShiftType(sketchShiftType)	Получить свойство (**)
Синтаксис COM:

sketchShiftType = iEvolution.GetSketchShiftType()	Получить свойство
iEvolution.SetSketchShiftType(sketchShiftType)	Установить свойство
Значения свойства:

0	- образующая переносится параллельно самой себе,
1	- образующая при переносе сохраняет исходный угол с направляющей,
2	- плоскость образующей выставляется и сохраняется ортогональной направляющей.


GetSketch
ksEvolutionSurfaceDefinition::GetSketch
IEvolutionSurfaceDefinition::GetSketch

Получить указатель на интерфейс эскиза кинематической поверхности.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


PathPartArray
ksEvolutionSurfaceDefinition::PathPartArray
IEvolutionSurfaceDefinition::PathPartArray

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

Синтаксис Automation:

IDispatch * PathPartArray();

Синтаксис COM:

LPENTITYCOLLECTION PathPartArray();

Возвращаемое значение:

	указатель на интерфейс ksEntityCollection или IEntityCollection.


SetSketch
ksEvolutionSurfaceDefinition::SetSketch
IEvolutionSurfaceDefinition::SetSketch

Установить эскиз кинематической поверхности.

Синтаксис Automation:

BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входные параметры:

sketch	- указатель на интерфейс ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


Интерфейсы ksExtrusionSurfaceDefinition, IExtrusionSurfaceDefinition
ksExtrusionSurfaceDefinition,
IExtrusionSurfaceDefinition

Интерфейс параметров поверхности выдавливания.

ksExtrusionSurfaceDefinition	- интерфейс Automation
IExtrusionSurfaceDefinition	- интерфейс COM
Свойства...

Методы...


ksExtrusionSurfaceDefinition::props
ksExtrusionSurfaceDefinition
свойства

directionType

closedShell


ksExtrusionSurfaceDefinition::methods
ksExtrusionSurfaceDefinition
методы

ExtrusionParam

GetDepthObject

GetSideParam

GetSketch

ResetDepthObject

SetDepthObject

SetSideParam

SetSketch


directionType
ksExtrusionSurfaceDefinition::directionType
IExtrusionSurfaceDefinition::directionType

Направление выдавливания.

Прямое направление совпадает с нормалью, проведенной к плоскости эскиза.

Для вырезаемого элемента выдавливания направление противоположно нормали.

Примечание:

Нормаль, проведенная к грани, всегда направлена наружу ("из тела детали").

Типы направлений...


closedShell
ksExtrusionSurfaceDefinition::closedShell
IExtrusionSurfaceDefinition::closedShell

Признак замкнутости поверхности.

Тип данных - VARIANT_BOOL.

Значения свойства:

TRUE	- поверхность замкнута,
FALSE	- поверхность не замкнута.
Синтаксис Automation:

closedShell = iExtrusion.closedShell	Получить свойство (*)
iExtrusion.closedShell = closedShell	Установить свойство (*)
closedShell = iExtrusion.GetClosedShell()	Получить свойство (**)
iExtrusion.SetClosedShell(closedShell)	Установить свойство (**)
Синтаксис COM:

closedShell = iExtrusion.GetClosedShell()	Получить свойство.
iExtrusion.SetClosedShell(closedShell)	Установить свойство.


GetSketch
ksExtrusionSurfaceDefinition::GetSketch
IExtrusionSurfaceDefinition::GetSketch

Получить указатель на интерфейс эскиза поверхности выдавливания.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


SetSketch
ksExtrusionSurfaceDefinition::SetSketch
IExtrusionSurfaceDefinition::SetSketch

Установить эскиз поверхности выдавливания.

Синтаксис Automation:

VARIANT_BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


GetSideParam
ksExtrusionSurfaceDefinition::GetSideParam
IExtrusionSurfaceDefinition::GetSideParam

Получить параметры выдавливания в одном направлении.

Синтаксис Automation:

VARIANT_BOOL GetSideParam (VARIANT_BOOL forward,

short *type,

double *depth,

double *draftValue,

VARIANT_BOOL *draftOutward);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

short *type,

double *depth,

double *draftValue,

BOOL *draftOutward);

Входные параметры:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
Выходные параметры:

type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


SetSideParam
ksExtrusionSurfaceDefinition::SetSideParam
IExtrusionSurfaceDefinition::SetSideParam

Изменить параметры выдавливания в одном направлении.

Синтаксис Automation:

VARIANT_BOOL SetSideParam (VARIANT_BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Синтаксис COM:

BOOL SetSideParam (BOOL forward,

short type,

double depth,

double draftValue,

BOOL draftOutward);

Входные параметры:

forward	- направление выдавливания: TRUE - прямое направление, FALSE - обратное направление.
type	- тип выдавливания,
depth	- глубина выдавливания,
draftValue	- угол уклона,
draftOutward	- направление уклона: TRUE - уклон наружу, FALSE - уклон внутрь.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ExtrusionParam
ksExtrusionSurfaceDefinition::ExtrusionParam
IExtrusionSurfaceDefinition::ExtrusionParam

Получить указатель на интерфейс параметров элемента выдавливания.

Синтаксис Automation:

LPDISPATCH ExtrusionParam();

Синтаксис COM:

LPEXTRUSIONPARAM ExtrusionParam();

Возвращаемое значение:

	указатель на интерфейс объекта ksExtrusionParam или IExtrusionParam.


GetDepthObject
ksExtrusionSurfaceDefinition::GetDepthObject
IExtrusionSurfaceDefinition::GetDepthObject

Получить объект, задающий глубину выдавливания.

Синтаксис Automation:

LPDISPATCH GetDepthObject (VARIANT_BOOL normal);

Синтаксис COM:

LPENTITY GetDepthObject (BOOL normal);

Входные параметры:

normal	- направление выдавливания: TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза.
Возвращаемое значение:

	- указатель на интерфейс объекта глубины выдавливания ksEntity или IEntity.


SetDepthObject
ksExtrusionSurfaceDefinition::SetDepthObject
IExtrusionSurfaceDefinition::SetDepthObject

Установить объект, задающий глубину выдавливания.

Синтаксис Automation:

VARIANT_BOOL SetDepthObject (VARIANT_BOOL normal, LPDISPATCH obj);

Синтаксис COM:

BOOL SetDepthObject (BOOL normal, LPENTITY obj);

Входные параметры:

normal	- направление выдавливания: TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза.
obj	- указатель на интерфейс объекта глубины выдавливания ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ResetDepthObject
ksExtrusionSurfaceDefinition::ResetDepthObject
IExtrusionSurfaceDefinition::ResetDepthObject

Отказаться от установленного методом SetDepthObject объекта, задающего глубину выдавливания.

Синтаксис Automation:

VARIANT_BOOL ResetDepthObject (VARIANT_BOOL normal);

Синтаксис COM:

BOOL ResetDepthObject (BOOL normal);

Входные параметры:

normal	- направление выдавливания: TRUE - совпадает с направлением нормали к плоскости эскиза, FALSE - противоположно направлению нормали к плоскости эскиза.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


Интерфейсы ksRotatedSurfaceDefinition, IRotatedSurfaceDefinition
ksRotatedSurfaceDefinition,
IRotatedSurfaceDefinition

Интерфейс параметров поверхности вращения.

ksRotatedSurfaceDefinition	- интерфейс Automation
IRotatedSurfaceDefinition	- интерфейс COM
Свойства...

Методы...


ksRotatedSurfaceDefinition::props
ksRotatedSurfaceDefinition
свойства

closedShell

directionType

toroidShapeType


ksRotatedSurfaceDefinition::methods
ksRotatedSurfaceDefinition
методы

GetSideParam

GetSketch

RotatedParam

SetSideParam

SetSketch


directionType
ksRotatedSurfaceDefinition::directionType
IRotatedSurfaceDefinition::directionType

Направление вращения.

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

Примечание:

Нормаль, проведенная к поверхности тела, всегда выходит из тела.

Типы направлений...


closedShell
ksRotatedSurfaceDefinition::closedShell
IRotatedSurfaceDefinition::closedShell

Признак замкнутости поверхности.

Тип данных - VARIANT_BOOL.

Значения свойства:

TRUE	- поверхность замкнута,
FALSE	- поверхность не замкнута.
Синтаксис Automation:

closedShell = iRotated.closedShell	Получить свойство (*)
iRotated.closedShell = closedShell	Установить свойство (*)
closedShell = iRotated.GetClosedShell()	Получить свойство (**)
iRotated.SetClosedShell(closedShell)	Установить свойство (**)
Синтаксис COM:

closedShell = iRotated.GetClosedShell()	Получить свойство.
iRotated.SetClosedShell(closedShell)	Установить свойство.


toroidShapeType
ksRotatedSurfaceDefinition::toroidShapeType
IRotatedSurfaceDefinition::toroidShapeType

Признак замкнутости поверхности.

Тип данных - BOOL.

Значения свойства:

TRUE	- тороид,
FALSE	- сфероид.


GetSketch
ksRotatedSurfaceDefinition::GetSketch
IRotatedSurfaceDefinition::GetSketch

Получить указатель на интерфейс эскиза поверхности вращения.

Синтаксис Automation:

LPDISPATCH GetSketch();

Синтаксис COM:

LPENTITY GetSketch();

Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity.


SetSketch
ksRotatedSurfaceDefinition::SetSketch
IRotatedSurfaceDefinition::SetSketch

Установить эскиз поверхности вращения.

Синтаксис Automation:

VARIANT_BOOL SetSketch (LPDISPATCH sketch);

Синтаксис COM:

BOOL SetSketch (LPENTITY sketch);

Входной параметр:

sketch	- указатель на интерфейс ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


GetSideParam
ksRotatedSurfaceDefinition::GetSideParam
IRotatedSurfaceDefinition::GetSideParam

Получить параметры вращения в одном направлении.

Синтаксис Automation:

VARIANT_BOOL GetSideParam (VARIANT_BOOL forward,

double *angle);

Синтаксис COM:

BOOL GetSideParam (BOOL forward,

double * angle);

Входные параметры:

forward	- направление вращения: TRUE - прямое направление, FALSE - обратное направление.
Выходные параметры:

angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


SetSideParam
ksRotatedSurfaceDefinition::SetSideParam
IRotatedSurfaceDefinition::SetSideParam

Изменить параметры вращения в одном направлении.

Синтаксис Automation:

VARIANT_BOOL SetSideParam (short forward,

double angle);

Синтаксис COM:

BOOL SetSideParam (BOOL forward,

double angle);

Входные параметры:

forward	- направление вращения: TRUE - прямое направление, FALSE - обратное направление.
angle	- угол вращения.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


RotatedParam
ksRotatedSurfaceDefinition::RotatedParam
IRotatedSurfaceDefinition::RotatedParam

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

Синтаксис Automation:

LPDISPATCH RotatedParam();

Синтаксис COM:

LPROTATEDPARAM RotatedParam();

Возвращаемое значение:

	указатель на интерфейс объекта ksRotatedParam или IRotatedParam.


Интерфейсы ksLoftSurfaceDefinition, ILoftSurfaceDefinition
ksLoftSurfaceDefinition,
ILoftSurfaceDefinition

Интерфейс параметров поверхности по сечениям.

ksLoftSurfaceDefinition	- интерфейс Automation
ILoftSurfaceDefinition	- интерфейс COM
Свойства...

Методы...


ksLoftSurfaceDefinition::props
ksLoftSurfaceDefinition
свойства

closedShell


ksLoftSurfaceDefinition::methods
ksLoftSurfaceDefinition
методы

GetLoftParam

SetLoftParam

Sketches


closedShell
ksLoftSurfaceDefinition::closedShell
ILoftSurfaceDefinition::closedShell

Признак замкнутости поверхности.

Тип данных - VARIANT_BOOL.

Значения свойства:

TRUE	- поверхность замкнута,
FALSE	- поверхность не замкнута.
Синтаксис Automation:

closedShell = iLoft.closedShell	Получить свойство (*)
iLoft.closedShell = closedShell	Установить свойство (*)
closedShell = iLoft.GetClosedShell()	Получить свойство (**)
iLoft.SetClosedShell(closedShell)	Установить свойство (**)
Синтаксис COM:

closedShell = iLoft.GetClosedShell()	Получить свойство.
iLoft.SetClosedShell(closedShell)	Установить свойство.


GetLoftParam
ksLoftSurfaceDefinition::GetLoftParam
ILoftSurfaceDefinition::GetLoftParam

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

Синтаксис Automation:

VARIANT_BOOL GetLoftParam (VARIANT_BOOL *closed,

VARIANT_BOOL *flipVertex,

VARIANT_BOOL *autoPath);

Синтаксис COM:

BOOL GetLoftParam (BOOL *closed,

BOOL *flipVertex,

BOOL *autoPath);

Выходные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint,
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


SetLoftParam
ksLoftSurfaceDefinition::SetLoftParam
ILoftSurfaceDefinition::SetLoftParam

Изменить параметры операции по сечениям.

Синтаксис Automation:

VARIANT_BOOL SetLoftParam (VARIANT_BOOL closed,

VARIANT_BOOL flipVertex,

VARIANT_BOOL autoPath);

Синтаксис COM:

BOOL SetLoftParam (BOOL closed,

BOOL flipVertex,

BOOL autoPath);

Выходные параметры:

closed	- признак замкнутости траектории: TRUE - траектория замкнута, FALSE - траектория разомкнута,
flipVertex	- параметр зарезервирован для дальнейшего использования,
autoPath	- признак автоматического формирования траектории: TRUE - формировать траекторию автоматически, FALSE - для формирования траектории использовать точки, заданные методом SetLoftPoint,
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


Sketches
ksLoftSurfaceDefinition::Sketches
ILoftSurfaceDefinition::Sketches

Получить указатель на интерфейс массива эскизов элемента по сечениям.

Синтаксис Automation:

LPDISPATCH Sketches();

Синтаксис COM:

LPENTITYCOLLECTION Sketches();

Возвращаемое значение:

TRUE	указатель на интерфейс массива эскизов ksEntityCollection или IEntityCollection.
FALSE	- в случае неудачи.
Примечание:

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

2. Эскизы из данного массива используются для построения элемента по сечениям.


Интерфейс ksParametrizationParam
ksParametrizationParam
IParametrizationParam

Интерфейс параметров параметризации группы объектов.

ksParametrizationParam	- интерфейс Automation
IParametrizationParam	- интерфейс COM
Свойства...

Методы...


ksParametrizationParam::props
ksParametrizationParam
свойства

angleLimit

horizontal

nearestPoints

parallel

perpendicular

pointsLimit

vertical


ksParametrizationParam::methods
ksParametrizationParam
методы

Init


ksParametrizationParam::nearestPoints
IParametrizationParam::nearestPoints

Совпадение точек.

Тип данных - VARIANT_BOOL.

Синтаксис Automation:

nearestPoints = iParametrizationParam.nearestPoints	Получить свойство (*)
iParametrizationParam.nearestPoints = nearestPoints	Установить свойство (*)
nearestPoints = iParametrizationParam.GetNearestPoints()	Получить свойство (**)
iParametrizationParam.SetNearestPoints( nearestPoints )	Установить свойство (**)
Примечание:

1. Если nearestPoints = TRUE, то при совпадении точек у объектов в параметризуемой группе на объекты накладывается ограничения на совпадение точек.

2. Параметр используется совместно с pointsLimit.


ksParametrizationParam::pointsLimit
IParametrizationParam::pointsLimit

Допуск на совпадение точек, мм.

Тип данных - double

Синтаксис Automation:

pointsLimit = iParametrizationParam.pointsLimit	Получить свойство (*)
iParametrizationParam.pointsLimit = pointsLimit	Установить свойство (*)
pointsLimit = iParametrizationParam.GetPointsLimit()	Получить свойство (**)
iParametrizationParam.SetPointsLimit (pointsLimit)	Установить свойство (**)
Примечание:

1. Значение должно быть в интервале [0..10] мм.

2. Параметр используется совместно с nearestPoints. Если nearestPoints = TRUE, то при совпадении точек у объектов в параметризуемой группе на объекты накладывается ограничения на совпадение точек.


ksParametrizationParam::horizontal
IParametrizationParam::horizontal

Горизонтальность.

Тип данных - VARIANT_BOOL

Синтаксис Automation:

horizontal = iParametrizationParam.horizontal	Получить свойство (*)
iParametrizationParam.horizontal = horizontal	Установить свойство (*)
horizontal = iParametrizationParam.GetHorizontal()	Получить свойство (**)
iParametrizationParam.SetHorizontal (horizontal)	Установить свойство (**)
Примечание:

1. Если horizontal = TRUE, то на горизонтальные отрезки в группе накладывается ограничения на горизонтальность.

2. Отклонение от горизонтали angleLimit должно быть в интервале [0..10] градусов.


ksParametrizationParam::vertical
IParametrizationParam::vertical

Вертикальность.

Тип данных - VARIANT_BOOL

Синтаксис Automation:

vertical = iParametrizationParam.vertical	Получить свойство (*)
iParametrizationParam.vertical = vertical	Установить свойство (*)
vertical = iParametrizationParam.GetVertical()	Получить свойство (**)
iParametrizationParam.SetVertical (vertical)	Установить свойство (**)
Примечание:

1. Если vertical = TRUE, то на вертикальные отрезки в группе накладывается ограничения на горизонтальность.

2. Отклонение от вертикали angleLimit должно быть в интервале [0..10] градусов.


ksParametrizationParam::parallel
IParametrizationParam::parallel

Параллельность.

Тип данных - VARIANT_BOOL

Синтаксис Automation:

parallel = iParametrizationParam.parallel	Получить свойство (*)
iParametrizationParam.parallel = parallel	Установить свойство (*)
parallel = iParametrizationParam.GetParallel()	Получить свойство (**)
iParametrizationParam.SetParallel (parallel)	Установить свойство (**)
Примечание:

1. Если parallel = TRUE то на параллельные отрезки в группе накладывается ограничения на параллельность.

2. Допуск на отклонение от параллельности angleLimit должно быть в интервале [0..10] градусов.


ksParametrizationParam::perpendicular
IParametrizationParam::perpendicular

Перпендикулярность.

Тип данных - VARIANT_BOOL

Синтаксис Automation:

perpendicular = iParametrizationParam.perpendicular	Получить свойство (*)
iParametrizationParam.perpendicular = perpendicular	Установить свойство (*)
perpendicular = iParametrizationParam.GetPerpendicular()	Получить свойство (**)
iParametrizationParam.SetPerpendicular (perpendicular)	Установить свойство (**)
Примечание:

1. Если perpendicular = TRUE то на параллельные отрезки в группе накладывается ограничения на перпендикулярность.

2. Допуск на отклонение от перпендикулярности angleLimit должно быть в интервале [0..10] градусов.


ksParametrizationParam::angleLimit
IParametrizationParam::angleLimit

Угловой допуск, градусов.

Тип данных - double

Синтаксис Automation:

angleLimit = iParametrizationParam.angleLimit	Получить свойство (*)
iParametrizationParam.angleLimit = angleLimit	Установить свойство (*)
angleLimit = iParametrizationParam.GetAngleLimit()	Получить свойство (**)
iParametrizationParam.SetAngleLimit (angleLimit)	Установить свойство (**)
Примечание:

Значение должно быть в интервале [0...10] градусов.


ksParametrizationParam::Init
IParametrizationParam::Init

Инициализировать параметры.

Синтаксис:

VARIANT_BOOL Init();


Интерфейс IProcessParam
IProcessParam

Интерфейс параметров процесса.

Иерархия:

Свойства...

События...

Примечание:

Интерфейс позволяет управлять параметрами процесса.


IProcessParam::props
IProcessParam
свойства

AutoReduce

Caption

DefaultControlFix

PropertyTabs

SpecToolbar


IProcessParam::Caption

Заголовок процесса.

Тип данных - BSTR (строка).

Синтаксис Automation:

Caption = iObject.Caption	Получить свойство (*)
iObject.Caption = Caption	Установить свойство (*)
Caption = iObject.GetCaption()	Получить свойство (**)
iObject.SetCaption (Caption)	Установить свойство (**)
Синтаксис COM:

iObject->get_Caption (&Caption)	Получить свойство (*)
iObject->put_Caption (Caption)	Установить свойство (*)
Примечание:

Позволяет получить и установить заголовок процесса.


IProcessParam::PropertyTabs

Коллекция вкладок Панели свойств.

Тип данных - указатель на интерфейс IPropertyTabs.

Синтаксис Automation:

PropertyTabs = iObject.PropertyTabs	Получить свойство (*)
PropertyTabs = iObject.GetPropertyTabs()	Получить свойство (**)
Синтаксис COM:

iObject->get_PropertyTabs (&PropertyTabs )	Получить свойство
Примечание:

1. Свойство только для чтения.

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


IProcessParam::SpecToolbar

Специальная панель.

Тип данных - тип предопределенной спецпанели для Панели свойств из перечисления SpecPropertyToolBarEnum.

Синтаксис Automation:

SpecToolbar = iObject.SpecToolbar	Получить свойство (*)
iObject.SpecToolbar = SpecToolbar	Установить свойство (*)
SpecToolbar = iObject.GetSpecToolbar()	Получить свойство (**)
iObject.SetSpecToolbar (SpecToolbar)	Установить свойство (**)
Синтаксис COM:

iObject->get_SpecToolbar (&SpecToolbar)	Получить свойство
iObject->put_SpecToolbar (SpecToolbar)	Установить свойство
Примечание:

С помощью данного свойства можно получить и изменить тип предопределенной спецпанели для Панели свойств.


IProcessParam::AutoReduce

Завершение процесса автоматически после задания всех параметров.

Тип данных - BOOL

Синтаксис Automation:

AutoReduce = iObject.AutoReduce	Получить свойство (*)
iObject.AutoReduce = AutoReduce	Установить свойство (*)
AutoReduce = iObject.GetAutoReduce()	Получить свойство (**)
iObject.SetAutoReduce (AutoReduce)	Установить свойство (**)
Синтаксис COM:

iObject->get_AutoReduce (&AutoReduce)	Получить свойство
iObject->put_AutoReduce (AutoReduce)	Установить свойство
Примечание:

С помощью данного свойства можно получить и изменить завершение процесса после задания всех параметров.


IProcessParam::DefaultControlFix

Cостояние фиксированности для умолчательных элементов управления Панели свойств.

Тип данных - состояние фиксированности для умолчательных элеменов управления панели свойств из перечисления DefaultFixTypeEnum.

Синтаксис Automation:

DefaultControlFix = iObject.DefaultControlFix	Получить свойство (*)
iObject.DefaultControlFix = DefaultControlFix	Установить свойство (*)
DefaultControlFix = iObject.GetDefaultControlFix()	Получить свойство (**)
iObject.SetDefaultControlFix (DefaultControlFix)	Установить свойство (**)
Синтаксис COM:

iObject->get_DefaultControlFix (&DefaultControlFix)	Получить свойство (*)
iObject->put_DefaultControlFix (DefaultControlFix)	Установить свойство (*)
Примечание:

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


Интерфейс IKompasAPIObject
IKompasAPIObject

Базовый объект КОМПАС API (скрытый).

Свойства...

Примечание:

Данный интерфейс является базовым для всех интерфейсов КОМПАС API, кроме интерфейсов событий и некоторых вспомогательных интерфейсов.


IKompasAPIObject::props
IKompasAPIObject
свойства

Application

Parent

Reference

Type


IKompasAPIObject::Parent

Ссылка на владельца.

Тип данных - указатель на интерфейс IKompasAPIObject.

Синтаксис Automation:

Parent = iObject.Parent	Получить свойство (*)
Parent = iObject.GetParent()	Получить свойство (**)
Синтаксис COM:

iObject->get_Parent (&Parent)	Получить свойство
Примечание:

Свойство доступно только для чтения. Возвращает указатель на интерфейс, у которого был взят данный объект.


IKompasAPIObject::Application

Ссылка на приложение.

Тип данных - указатель на интерфейс IApplication.

Синтаксис Automation:

Application = iObject.Application	Получить свойство (*)
Application = iObject.GetApplication()	Получить свойство (**)
Синтаксис COM:

iObject->get_Application (&Application)	Получить свойство.
Примечание:

Свойство доступно только для чтения. Возвращает указатель на интерфейс приложения КОМПАС.


IKompasAPIObject::Type

Тип объекта.

Тип данных - тип объекта из перечисления KompasAPIObjectTypeEnum.

Синтаксис Automation:

Type = iObject.Type	Получить свойство (*)
Type = iObject.GetType()	Получить свойство (**)
Синтаксис COM:

iObject->get_Type (&Type)	Получить свойство.
Примечание:

Свойство доступно только для чтения. Позволяет определить тип объекта и его интерфейс.


IKompasAPIObject::Reference

Уникальный идентификатор объекта.

Тип данных - long.

Синтаксис Automation:

Reference = iObject.Reference	Получить свойство (*)
Reference = iObject.GetReference()	Получить свойство (**)
Синтаксис COM:

iObject->get_Reference (&Reference)	Получить свойство.
Примечание:

Свойство доступно только для чтения. Является скрытым; недоступно в таких языках как VB и т.п.


Интерфейс IKompasCollection
IKompasCollection

Базовая коллекция КОМПАС API (скрытый).

Иерархия:

Свойства...

Примечание:

Данный интерфейс является базовым для всех интерфейсов коллекций КОМПАС API.


IKompasCollection::props
IKompasCollection
свойства

_NewEnum

Count


IKompasCollection::_NewEnum

Возвращает колекцию (в VB циклы: For Each).

Тип данных - указатель на интерфейс IUnknown объекта-перечислителя.

Примечание:

Данное свойство позволяет реализовывать циклический проход по коллекции с помощью специальных операторов цикла, таких как оператор For Each в Visual Basic.


IKompasCollection::Count

Количество элементов в коллекции.

Тип данных - long.

Синтаксис Automation:

Count = iObject.Count	Получить свойство (*)
Count = iObject.GetCount()	Получить свойство (**)
Синтаксис COM:

iObject->get_Count (&Count)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс IKompasDocument
IKompasDocument

Базовый класс документов КОМПАС.

Иерархия:

Свойства...

Методы...

События...

Примечание:

Данный интерфейс является базовым для всех интерфейсов документов КОМПАС API.


IKompasDocument::props
IKompasDocument
свойства

Active

Changed

DocumentFrames

DocumentSettings

DocumentType

LayoutSheets

Name

Path

PathName

ReadOnly

SpecificationDescriptions

Visible


IKompasDocument::methods
IKompasDocument
методы

Close

SaveAs

Save


IKompasDocument::LayoutSheets

Листы оформления.

Тип данных - указатель на интерфейс ILayoutSheets коллекции листов оформления.

Синтаксис Automation:

LayoutSheets = iObject.LayoutSheets	Получить свойство (*)
LayoutSheets = iObject.GetLayoutSheets()	Получить свойство (**)
Синтаксис COM:

iObject->get_LayoutSheets (&LayoutSheets)	Получить свойство
Примечание:

1. Свойство используется только для документа "Чертеж".

2. Свойство доступно только для чтения.


IKompasDocument::SpecificationDescriptions

Описания спецификации.

Тип данных - указатель на интерфейс ISpecificationDescriptions коллекции описаний спецификации.

Синтаксис Automation:

SpecificationDescriptions = iObject.SpecificationDescriptions	Получить свойство (*)
SpecificationDescriptions = iObject.GetSpecificationDescriptions()	Получить свойство (**)
Синтаксис COM:

iObject->get_SpecificationDescriptions (&SpecificationDescriptions)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IKompasDocument::DocumentType

Тип документа.

Тип данных - тип документа из перечисления DocumentTypeEnum

Синтаксис Automation:

DocumentType = iObject.DocumentType	Получить свойство (*)
DocumentType = iObject.GetDocumentType()	Получить свойство (**)
Синтаксис COM:

iObject->get_DocumentType (&DocumentType)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IKompasDocument::DocumentFrames

Интерфейс коллекции окон документа.

Тип данных -  указатель на интерфейс коллекции окон IDocumentFrames.

Синтаксис Automation:

DocumentFrames = iObject.DocumentFrames	Получить свойство (*)
DocumentFrames = iObject.GetDocumentFrames()	Получить свойство (**)
Синтаксис COM:

iObject->get_DocumentFrames (&DocumentFrames)	Получить свойство
Примечание:

Свойство доступно только для чтения.


name
IKompasDocument::Name

Имя документа.

Тип данных - строка.

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
Примечание:

Свойство доступно только для чтения. Возвращает имя файла документа без пути.


pathName
IKompasDocument::PathName

Полное имя документа.

Тип данных - строка

Синтаксис Automation:

PathName = iObject.PathName	Получить свойство (*)
PathName = iObject.GetPathName()	Получить свойство (**)
Синтаксис COM:

iObject->get_PathName (&PathName)	Получить свойство
Примечание:

Свойство доступно только для чтения. Возвращает полное имя файла документа, состоящее из пути, имени и расширения файла.


path
IKompasDocument::Path

Путь к файлу документа.

Тип данных - строка

Синтаксис Automation:

Path = iObject.Path	Получить свойство (*)
Path = iObject.GetPath()	Получить свойство (**)
Синтаксис COM:

iObject->get_Path (&Path)	Получить свойство
Примечание:

Свойство доступно только для чтения. Возвращает путь к файлу документа, без имени и расширения файла.


visible
IKompasDocument::Visible

Видимость документа.

Тип данных - BOOL

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
Значения свойства:

TRUE	- документ открыт в видимом режиме,
FALSE	- документ открыт в невидимом режиме.
Примечание:

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


active
IKompasDocument::Active

Активность документа.

Тип данных - BOOL

Синтаксис Automation:

Active = iObject.Active	Получить свойство (*)
iObject.Active = Active	Установить свойство (*)
Active = iObject.GetActive()	Получить свойство (**)
iObject.SetActive (Active)	Установить свойство (**)
Синтаксис COM:

iObject->get_Active (&Active)	Получить свойство
iObject->put_Active (Active)	Установить свойство
Примечание:

Позволяет получить активность документа. Установить можно только значение TRUE, т.е. сделать документ активным, если он неактивен. Значение FALSE игнорируется.


readOnly
IKompasDocument::ReadOnly

Только для чтения.

Тип данных - BOOL

Синтаксис Automation:

ReadOnly = iObject.ReadOnly	Получить свойство (*)
iObject.ReadOnly = ReadOnly	Установить свойство (*)
ReadOnly = iObject.GetReadOnly()	Получить свойство (**)
iObject.SetReadOnly (ReadOnly)	Установить свойство (**)
Синтаксис COM:

iObject->get_ReadOnly (&ReadOnly)	Получить свойство
iObject->put_ReadOnly (ReadOnly)	Установить свойство
Примечание:

Позволяет получить и изменить свойство документа "Только для чтения".


changed
IKompasDocument::Changed

Документ изменен.

Тип данных - BOOL

Синтаксис Automation:

Changed = iObject.Changed	Получить свойство (*)
Changed = iObject.GetChanged()	Получить свойство (**)
Синтаксис COM:

iObject->get_Changed (&Changed)	Получить свойство
Значения свойства:

TRUE	- документ изменен с момента последнего сохранения,
FALSE	- документ не изменялся.
Примечание:

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


DocumentSettings
IKompasDocument::DocumentSettings

Настройки документа.

Тип данных - указатель на интерфейс IDocumentSettings текущих настроек документа.

Синтаксис Automation:

DocumentSettings = iObject.DocumentSettings	Получить свойство (*)
DocumentSettings = iObject.GetDocumentSettings()	Получить свойство (**)
Синтаксис COM:

iObject->get_DocumentSettings (&DocumentSettings)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Close

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

Синтаксис Automation:

BOOL Close (DocumentCloseOptions closeOptions);

Синтаксис COM:

HRESULT Close ([in, defaultvalue(FALSE)] DocumentCloseOptions closeOptions, [out, retval] VARIANT_BOOL* pRes);

Входные параметры:

closeOptions	- действия при закрытии измененного документа из перечисления DocumentCloseOptions.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

1. Если документ не был изменен или его уже сохранили перед закрытием, то значение входного параметра будет проигнорировано.

2. Если документ был изменен, то возможны три варианта:

- закрыть документ без сохранения kdDoNotSaveChanges (в этом случае все изменения будут потеряны),

- закрыть документ с сохранением kdSaveChanges (в этом случае документ будет сначала сохранен, а потом закрыт),

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


Save

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

Синтаксис Automation:

void Save();

Синтаксис COM:

HRESULT Save();

Примечание:

Сохраняет все изменения в документе и снимает флаг измененности документа.


SaveAs

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

Синтаксис Automation:

void SaveAs (LPCTSTR PathName);

Синтаксис COM:

HRESULT SaveAs ([in] BSTR PathName);

Входные параметры:

PathName	- полное имя файла документа, состоящее из пути, имени и расширения файла.
Примечание:

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


Интерфейс IApplication
IApplication

Интерфейс приложения КОМПАС-3D.

Иерархия:

Свойства...

Методы...

События...

Примечание:

1. Приложение КОМПАС-3D регистрируется с ProgID "KOMPAS.Application.7".

2. После запуска приложения из-под внешнего контроллера оно работает в слепом режиме. Чтобы оно стало видимым, нужно установить свойству IApplication::Visible значение TRUE.

3. Данный интерфейс приложения можно получить у любого объекта с помощью свойства IKompasAPIObject::application


IApplication::props
IApplication
свойства

ActiveDocument

Documents

KompasError

LibraryManager

Visible


IApplication::methods
IApplication
методы

CreateProcessParam

CreatePropertyManager

Quit

StopCurrentProcess


IApplication::Visible

Видимость приложения.

Тип данных - BOOL

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible (Visible)	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство,
iObject->put_Visible (Visible)	Установить свойство.
Примечание:

Позволяет получить и установить свойство видимости приложения КОМПАС-3D.


IApplication::KompasError

Информация о ошибке системы КОМПАС.

Тип данных - указатель на интерфейс IKompasError информации о ошибке системы КОМПАС.

Синтаксис Automation:

KompasError = iObject.KompasError	Получить свойство (*)
KompasError = iObject.GetKompasError()	Получить свойство (**)
Синтаксис COM:

iObject->get_KompasError (&KompasError)	Получить свойство,
Примечание:

Свойство доступно только для чтения.


IApplication::LibraryManager

Менеджер библиотек.

Тип данных - указатель на интерфейс ILibraryManager менеджера библиотек.

Синтаксис Automation:

LibraryManager = iObject.LibraryManager	Получить свойство (*)
LibraryManager = iObject.GetLibraryManager()	Получить свойство (**)
Синтаксис COM:

iObject->get_LibraryManager (&LibraryManager)	Получить свойство,
Примечание:

Свойство доступно только для чтения.


IApplication::Documents

Коллекция открытых документов в приложении.

Тип данных - указатель на интерфейс коллекции документов IDocuments.

Синтаксис Automation:

Documents = iObject.Documents	Получить свойство (*)
Documents = iObject.GetDocuments()	Получить свойство (**)
Синтаксис COM:

iObject->get_Documents (&Documents)	Получить свойство,
Примечание:

Свойство доступно только для чтения.


IApplication::ActiveDocument

Коллекция открытых документов в приложении.

Тип данных - указатель на интерфейс IKompasDocument.

Синтаксис Automation:

ActiveDocument = iObject.ActiveDocument	Получить свойство (*)
iObject.ActiveDocument = ActiveDocument	Установить свойство (*)
ActiveDocument = iObject.GetActiveDocument()	Получить свойство (**)
iObject.SetActiveDocument (ActiveDocument)	Установить свойство (**)
Синтаксис COM:

iObject->get_ActiveDocument (&ActiveDocument)	Получить свойство
iObject->put_ActiveDocument (ActiveDocument)	Установить свойство
Примечание:

Свойство позволяет получить или установить текущий документ. Если ни один документ не открыт, свойство вернет NULL


IApplication::Quit

Закрыть приложение.

Синтаксис Automation:

void Quit();

Синтаксис COM:

HRESULT Quit();

Примечание:

Используется при работе из-под внешнего контроллера.


IApplication::CreateProcessParam

Получить интерфейс параметров процесса.

Синтаксис Automation:

LPDISPATCH CreateProcessParam();

Синтаксис COM:

HRESULT CreateProcessParam([out, retval] IProcessParam** processParam);

Возвращаемое значение:

указатель на интерфейс IProcessParam	- в случае успешного завершения,
0	- в случае неудачи.
Примечание:

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


IApplication::StopCurrentProcess

Остановить текущий процесс в документе.

Синтаксис Automation:

void StopCurrentProcess (BOOL postMessage, LPDISPATCH pDoc);

Синтаксис COM:

HRESULT StopCurrentProcess([in, defaultvalue(FALSE)]VARIANT_BOOL postMessage, [in, defaultvalue(0)] IKompasDocument* pDoc);

Входные параметры:

postMessage	- способ остановки процесса,
pDoc	- указатель на интерфейс IKompasDocument в котором требуется остановить процесс.
Примечание:

1. Если процесс требуется остановить немедленно то параметр postMessage должен иметь значение FALSE, однако такая остановка не всегда возможна, например, остановка из обработчика события. В этом случае результат обработки события должен быть обработан процессом; в этом случае процессу надо сообщить чтобы он остановился после обработки события. Для этого параметру postMessage нужно установить значение TRUE.

2. Если параметру pDoc установлено значение 0, то процесс будет остановлен в текущем документе.


IApplication::CreatePropertyManager

Создать Панель свойств.

Синтаксис Automation:

LPDISPATCH CreatePropertyManager (BOOL newManager);

Синтаксис COM:

HRESULT CreatePropertyManager([in, defaultvalue(FALSE)] VARIANT_BOOL newManager, [out, retval] IPropertyManager** propertyManager);

Входные параметры:

newManager	- тип создаваемой Панели свойств: TRUE - новая панель свойств будет доступна только этой библиотеке, FALSE - получение доступа к основной панели свойств КОМПАС-3D.
Возвращаемое значение:

указатель на интерфейс IPropertyManager Панели свойств.
Примечание:

1. При получении интерфейса доступа к стандартной Панели свойств КОМПАС-3D, будет возможно добавление собственных вкладок с элементами управления. Все остальные вкладки и их элементы управления будут недоступны.

2. Новая панель свойств и вкладки на стандартной Панели свойств будут удалены после освобождения библиотекой их интерфейса, поэтому библиотека должна держать ссылку на интерфейс Панели свойств все время от начала до завершения ее использования.

3. При повторном вызове этого метода будет создана новая панель свойств или новые вкладки на стандартной Панели свойств.


Интерфейс IDocuments
IDocuments

Коллекция документов, открытых в приложении КОМПАС-3D.

Иерархия:

Свойства...

Методы...


IDocuments::props
IDocuments
свойства

Item


IDocuments::methods
IDocuments
методы

Add

Open


IDocuments::Item

Документ, заданный по имени, ссылке или по индексу.

Тип данных - указатель на интерфейс документа IKompasDocument

Синтаксис Automation:

document = iObject.Item (Index)	Получить свойство (*)
document = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_IItem ( Index, &Document )	Получить свойство
Входные параметры:

Index	- Тип VARIANT, имя документа, ссылка на документ или индекс в коллекции.
Примечание:

Свойство доступно только для чтения.


IDocuments::Add

Создать новый документ и добавить его в коллекцию.

Синтаксис Automation:

LPDISPATCH Add (long Type, BOOL Visible);

Синтаксис COM:

HRESULT Add([in] DocumentTypeEnum Type, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [out, retval] IKompasDocument** Result);

Входные параметры:

Type	- тип документа из перечисления DocumentTypeEnum
Visible	- видимость документа: TRUE создавать документ в видимом режиме, FALSE в слепом.
Возвращаемое значение:

указатель на интерфейс IKompasDocument


IDocuments::Open

Открыть документ.

Синтаксис Automation:

LPDISPATCH Open (LPCTSTR PathName, BOOL Visible, BOOL ReadOnly);

Синтаксис COM:

HRESULT Open([in] BSTR PathName, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [in, defaultvalue(FALSE)] VARIANT_BOOL ReadOnly, [out, retval] IKompasDocument** Result);

Входные параметры:

PathName	- полное имя файла документа, состоящее из пути, имени и расширения файла,
Visible	- видимость документа: TRUE создавать документ в видимом режиме, FALSE в невидимом,
ReadOnly	- TRUE - открыть документ только для чтения.
Возвращаемое значение:

указатель на интерфейс IKompasDocument	- в случае успешного завершения,
NULL	- в случае неудачи.
Примечание:

Открывает существующий документ и добавляет его в коллекцию.


Интерфейс IDocumentFrame
IDocumentFrame

Интерфейс окна документа.

Свойства...

Методы...

События...


IDocumentFrame::props
IDocumentFrame
свойства

Active

Caption

Regime


IDocumentFrame::methods
IDocumentFrame
методы

ConvertCoordinates

GetHWND

GetZoomScale

RefreshWindow

SetGabaritModifying

Zoom

ZoomPrevNextOrAll

ZoomScale


IDocumentFrame::Regime

Pежим отображения окна.

Тип данных - режим отображения окна из перечисления FrameRegimeEnum.

Синтаксис Automation:

Regime = iObject.Regime	Получить свойство (*)
iObject.Regime = Regime	Установить свойство (*)
Regime = iObject.GetRegime()	Получить свойство (**)
iObject.SetRegime (Regime)	Установить свойство (**)
Синтаксис COM:

iObject->get_Regime (&Regime)	Получить свойство,
iObject->put_Regime (Regime)	Установить свойство
Примечание:

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


IDocumentFrame::Active

Активность окна.

Тип данных - BOOL

Синтаксис Automation:

Active = iObject.Active	Получить свойство (*)
iObject.Active = Active	Установить свойство (*)
Active = iObject.GetActive()	Получить свойство (**)
iObject.SetActive (Active)	Установить свойство (**)
Синтаксис COM:

iObject->get_Active (&Active)	Получить свойство,
iObject->put_Active (Active)	Установить свойство
Примечание:

С помощью данного свойства можно получить и изменить активность данного окна.


IDocumentFrame::Caption

Заголовок окна.

Тип данных - BSTR (строка)

Синтаксис Automation:

Caption = iObject.Caption	Получить свойство (*)
Caption = iObject.GetCaption()	Получить свойство (**)
Синтаксис COM:

iObject->get_Caption (&Caption)	Получить свойство,
Примечание:

1. С помощью данного свойства можно получить заголовок данного окна.

2. Свойство доступно только для чтения.


IDocumentFrame::Zoom

Увеличить масштаб окна рамкой.

Синтаксис Automation:

void Zoom (double x1, double y1, double x2, double y2);

Синтаксис COM:

HRESULT Zoom ([in]double x1, [in]double y1, [in]double x2, [in]double y2);

Входные параметры:

x1, y1	- координаты (в СК вида) первой точки диагонали рамки,
x2, y2	- координаты (в СК вида) второй точки диагонали рамки.
Примечание:

1. Метод позволяет растянуть часть документа, заданную рамкой, во все окно.

2. Метод работает только для графических документов.


IDocumentFrame::ZoomScale

Изменить масштаб изображения окна.

Синтаксис Automation:

void ZoomScale (double x, double y, double scale);

Синтаксис COM:

HRESULT ZoomScale ([in]double x, [in]double y, [in]double scale);

Входные параметры:

x, y	- координаты (в СК вида) точки центра изменения масштаба,
scale	- коэффициент изменения масштаба изображения.
Примечание:

1. Метод позволяет установить новый масштаб отображения документа в окне с центром в точке х,у.

2. Метод работает только для графических документов.


IDocumentFrame::ZoomPrevNextOrAll

Отобразить предыдущий/следующий масштаб или показать весь документ.

Синтаксис Automation:

void ZoomPrevNextOrAll (long Type);

Синтаксис COM:

HRESULT ZoomPrevNextOrAll ([in]ZoomTypeEnum type);

Входные параметры:

type	- тип изменения масштаба из перечисления ZoomTypeEnum
Примечание:

1. Установка следующего масштаба возможно только после отката к предыдущему масштабу.

2. Метод работает в полном объеме только для графических документов. Для документов-моделей работает только режим ksZoomAll (Показать весь документ).

3. В текстовом документе и в спецификации метод не работает.


IDocumentFrame::GetZoomScale

Получить масштаб и центр окна документа.

Синтаксис Automation:

void GetZoomScale (double* x, double* y, double* scale);

Синтаксис COM:

HRESULT GetZoomScale ([out]double* x, [out]double* y, [out]double* scale);

Выходные параметры:

x, y	- координаты (в СК вида) точки центра изменения масштаба,
scale	- коэффициент изменения масштаба изображения.
Примечание:

1. Метод позволяет получить текущий масштаб отображения документа в окне с центром в точке х,у (точка х,у в центре окна).

2. Метод работает только для графических документов.


IDocumentFrame::GetHWND

Получить Handle окна.

Синтаксис Automation:

long GetHWND();

Синтаксис COM:

HRESULT GetHWND ([out, retval] OLE_HANDLE* hwnd);

Возвращаемое значение:

Handle окна


IDocumentFrame::RefreshWindow

Обновить изображение окна.

Синтаксис Automation:

void RefreshWindow();

Синтаксис COM:

HRESULT RefreshWindow();


IDocumentFrame::SetGabaritModifying

Сообщить окну документа, что библиотека меняет габарит документа.

Синтаксис Automation:

void SetGabaritModifying();

Синтаксис COM:

SetGabaritModifying();

Примечание:

Использование метода может понадобиться для собственного рисования в окне. Если габарит изменен, то это приведет к генерации события  frAddGabarit (определение габаритов документа) из ksDocumentFrameNotify. В обработчике события frAddGabarit библиотека может указать свой габаритный прямоугольник, если  документ является чертежом или фрагментом или свой габаритный куб, если документ является моделью. Значение габарита библиотеки сложится с габаритом документа.


IDocumentFrame::ConvertCoordinates

Преобразовать оконные координаты в координаты СК согласно ConvertCoordTypeEnum.

Синтаксис Automation:

BOOL ConvertCoordinates (ConvertCoordTypeEnum type,
long lx,
long ly,
double* x,
double* y,
double* z);

Синтаксис COM:

HRESULT ConvertCoordinates ([in]ConvertCoordTypeEnum type,
[in]long lx,
[in]long ly,
[out]double* x,
[out]double* y,
[out]double* z,
[out, retval]
VARIANT_BOOL* Result);

Входные параметры:

lx, ly	- координаты в экранных пикселях,
type	- тип СК в которую нужно преобразовать оконные координаты.
Выходные параметры:

x, y, z	- координаты в мм в СК согласно ConvertCoordTypeEnum.
Возвращаемое значение:

TRUE	- преобразование прошло успешно
FALSE	- в случае неудачи.
Примечание:

Получив координаты мыши в оконных координатах при обработке событий из ksDocumentFrameNotify:

frMouseDown	3	Нажатие кнопки мыши
frMouseUp	4	Отпускание кнопки мыши
frMouseDblClick	5	Двойной щелчок мыши
frMouseMove	12	Перемещение мыши
 их можно преобразовать в системы координат, указанные в ConvertCoordTypeEnum:

-. для графических документов можно получить координаты в СК листа и текущего вида.

-. для СП и текстового документа в СК первого листа.

-. для модели в СК документа и в СК текущей плоской грани. Грань должна быть выделена в дереве.


Интерфейс KsDocumentFrameNotify
 ksDocumentFrameNotify
IDocumentFrameNotify

Интерфейс событий для окна документа.

ksDocumentFrameNotify	- интерфейс Automation
IDocumentFrameNotify	- интерфейс COM
Позволяют контролировать состояние окна документа.

Источником событий для подписки на данный интерфейс являются объекты IDocumentFrame - интерфейса окна документа.

В COM источником для подписки является указатель на документ. Дополнительный параметр при подписке задает интерфейс окна IDocumentFrame, для которого предназначен данный интерфейс событий.

События...

Методы...


KsDocumentFrameNotify::events
ksDocumentFrameNotify
события

Activate

AddGabarit

BeginPaintGL

BeginPaint

ClosePaintGL

CloseFrame

ClosePaint

Deactivate

MouseDblClick

MouseDown

MouseMove

MouseUp


ksDocumentFrameNotify::BeginPaint

Начало отрисовки документа.

Синтаксис Automation:

BOOL BeginPaint (IPaintObject* paintObj);

Синтаксис COM:

BOOL BeginPaint (IUnknown* paintObj);

Входные параметры:

paintObj	- указатель на интерфейс IPaintObject вспомогательных данных для отрисовки документа.
Возвращаемое значение:

FALSE	- запретить отрисовку документа.
Примечание:

1. Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.

2. Если событие вернет значение FALSE, то  КОМПАС-3D не будет отрисовывать документ; библиотека в этом случае должна сама выполнить всю отрисовку, событие ClosePaint посылаться не будет.


ksDocumentFrameNotify::ClosePaint

Конец отрисовки документа.

Синтаксис Automation:

BOOL ClosePaint (IPaintObject* paintObj);

Синтаксис COM:

BOOL ClosePaint (IUnknown* paintObj);

Входные параметры:

paintObj	- указатель на интерфейс IPaintObject вспомогательных данных для отрисовки документа.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.


ksDocumentFrameNotify::MouseDown

Нажатие кнопки мыши

Синтаксис Automation:

BOOL MouseDown (short nButton, short nShiftState, long x, long y);

Синтаксис COM:

BOOL MouseDown (short nButton, short nShiftState, long x, long y);

Входные параметры:

nButton	- тип кнопки (LEFT_BUTTON, RIGHT_BUTTON или MIDDLE_BUTTON),
nShiftState	- комбинация нажатых системных кнопок клавиатуры (SHIFT_MASK, CTRL_MASK, ALT_MASK),
х,у	- координаты в экранных пикселах.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.

Значения системных кнопок, допустимых в комбинации параметра nShiftState

SHIFT_MASK	0x01
CTRL_MASK	0x02
ALT_MASK	0x04
Значения типов кнопок мыши для параметра nButton

LEFT_BUTTON	0x01
RIGHT_BUTTON	0x02
MIDDLE_BUTTON	0x04


ksDocumentFrameNotify::MouseUp

Отпускание кнопки мыши.

Синтаксис Automation:

BOOL MouseUp (short nButton, short nShiftState, long x, long y);

Синтаксис COM:

BOOL MouseUp (short nButton, short nShiftState, long x, long y);

Входные параметры:

nButton	- тип кнопки (LEFT_BUTTON, RIGHT_BUTTON или MIDDLE_BUTTON),
nShiftState	- комбинация нажатых системных кнопок клавиатуры (SHIFT_MASK, CTRL_MASK, ALT_MASK),
х,у	- координаты в экранных пикселах.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.

Значения системных кнопок, допустимых в комбинации параметра nShiftState

SHIFT_MASK	0x01
CTRL_MASK	0x02
ALT_MASK	0x04
Значения типов кнопок мыши для параметра nButton

LEFT_BUTTON	0x01
RIGHT_BUTTON	0x02
MIDDLE_BUTTON	0x04


ksDocumentFrameNotify::MouseDblClick

Двойной щелчок кнопкой мыши.

Синтаксис Automation:

BOOL MouseDblClick (short nButton, short nShiftState, long x, long y);

Синтаксис COM:

BOOL MouseDblClick (short nButton, short nShiftState, long x, long y);

Входные параметры:

nButton	- тип кнопки (LEFT_BUTTON, RIGHT_BUTTON или MIDDLE_BUTTON),
nShiftState	- комбинация нажатых системных кнопок клавиатуры (SHIFT_MASK, CTRL_MASK, ALT_MASK),
х,у	- координаты в экранных пикселах.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.

Значения системных кнопок, допустимых в комбинации параметра nShiftState

SHIFT_MASK	0x01
CTRL_MASK	0x02
ALT_MASK	0x04
Значения типов кнопок мыши для параметра nButton

LEFT_BUTTON	0x01
RIGHT_BUTTON	0x02
MIDDLE_BUTTON	0x04


KsDocumentFrameNotify::BeginCreateGLList
ksDocumentFrameNotify::BeginPaintGL

Начало создания листа в контексте OpenGL.

Синтаксис Automation:

BOOL BeginCreateGLList (ksGLObject* glObj, long drawMode);

Синтаксис COM:

BOOL BeginCreateGLList (long drawMode);

Входные параметры:

glObj	- указатель на интерфейс ksGLObject вспомогательных данных для создания листа в контексте OpenGL; используется при работе под управлением внешнего контроллера,
drawMode	- режим отображения документа-модели KDocument3DDrawMode
Возвращаемое значение:

TRUE	- модель продолжает отрисовываться,
FALSE	- запретить перерисовывать модель.
Примечание:

Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.


KsDocumentFrameNotify::CloseCreateGLList
ksDocumentFrameNotify::ClosePaintGL

Окончание создания листа в контексте OpenGL.

Синтаксис Automation:

BOOL CloseCreateGLList (ksGLObject* glObj, long drawMode);

Синтаксис COM:

BOOL CloseCreateGLList (long drawMode);

Входные параметры:

glObj	- указатель на интерфейс ksGLObject вспомогательных данных для создания листа в контексте OpenGL; используется при работе под управлением внешнего контроллера,
drawMode	- режим отображения документа-модели KDocument3DDrawMode
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.


ksDocumentFrameNotify::AddGabarit

Рассчитывается общий габарит окна.

Синтаксис Automation:

BOOL AddGabarit (IGabaritObject * gabObj);

Синтаксис COM:

BOOL AddGabarit (IUnknown* gabObj);

Входные параметры:

gabObj	- указатель на интерфейс IGabaritObject вспомогательных данных для изменения габарита документа.
Возвращаемое значение:

	Не используется
Примечание:

1. Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.

2. Если на данное событие подписалось несколько библиотек, то заданные ими прямоугольники суммируются.


ksDocumentFrameNotify::Activate

Активизация окна.

Синтаксис Automation:

BOOL Activate();

Синтаксис COM:

BOOL Activate();

Возвращаемое значение:

	Не используется
Примечание:

1. Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.


ksDocumentFrameNotify::Deactivate

Деактивизация окна.

Синтаксис Automation:

BOOL Deactivate();

Синтаксис COM:

BOOL Deactivate();

Возвращаемое значение:

	Не используется
Примечание:

1. Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.


ksDocumentFrameNotify::CloseFrame

Закрытие окна.

Синтаксис Automation:

BOOL CloseFrame();

Синтаксис COM:

BOOL CloseFrame();

Возвращаемое значение:

	Не используется
Примечание:

1. Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.


ksDocumentFrameNotify::MouseMove

Перемещение мыши.

Синтаксис Automation:

BOOL MouseDown (short nShiftState, long x, long y);

Синтаксис COM:

BOOL MouseMove (short nShiftState, long x, long y);

Входные параметры:

nShiftState	- комбинация нажатых системных клавиш (SHIFT_MASK, CTRL_MASK, ALT_MASK),
х,у	- координаты в экранных пикселах.
Возвращаемое значение:

	Не используется
Примечание:

1. Индекс события задан в перечислении событий окна документа ksDocumentFrameNotifyEnum.

2. Значения системных кнопок допустимых в комбинации параметра nShiftState:

SHIFT_MASK	0x01
CTRL_MASK	0x02
ALT_MASK	0x04


Интерфейс IDocumentFrames
IDocumentFrames

Коллекция окон документа.

Иерархия:

Свойства...


IDocumentFrames::props
IDocumentFrames
свойства

Item


IDocumentFrames::Item

Окно, заданное по индексу.

Тип данных -  указатель на интерфейс окна IDocumentFrame

Синтаксис Automation:

frame = iObject.Item (Index)	Получить свойство (*)
frame = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Frame)	Получить свойство
Входные параметры:

Index	- индекс в коллекции, тип VARIANT.
Примечание:

Свойство доступно только для чтения.


Интерфейс IPaintObject
IPaintObject

Интерфейс вспомогательных данные для отрисовки документа.

Иерархия:

Методы...


IPaintObject::methods
IPaintObject
методы

GetDIBForOutput

GetHWND

GetTransformMatrix


IPaintObject::GetHWND

Получить Handle окна.

Синтаксис Automation:

long GetHWND();

Синтаксис COM:

HRESULT GetHWND ([out, retval] OLE_HANDLE* hwnd);

Возвращаемое значение:

Handle окна в котором идет отрисовка	- в случае успешного завершения,


IPaintObject::GetTransformMatrix

Получить коэффициенты для матрицы преобразования координат.

Синтаксис Automation:

void GetTransformMatrix (double* a11,
double* a12,
double* a13,
double* a14,
double* a21,
double* a22,
double* a23,
double* a24);

Синтаксис COM:

HRESULT GetTransformMatrix ([out]double* a11,
[out]double* a12,
[out]double* a13,
[out]double* a14,
[out]double* a21,
[out]double* a22,
[out]double* a23,
[out]double* a24);

Выходные параметры:

a11, a12, a13, a14, a21, a22, a23, a24	- коэффициенты для матрицы преобразования координат.
Примечание:

Матрица для преобразования координат mm -> LP:

Xlp = Xmm * a11 + Ymm * a12 + Zmm * a13 + a14;

Ylp = Xmm * a21 + Ymm * a22 + Zmm * a23 + a24;


IPaintObject::GetDIBForOutput

Создать растровое изображение документа в объект "проекция файла" для дорисовки.

Синтаксис Automation:

BSTR GetDIBForOutput();

Синтаксис COM:

HRESULT GetDIBForOutput ([out, retval] BSTR* mapFileName);

Возвращаемое значение:

Имя созданного объекта "проекция файла".	- в случае успешного завершения,
Примечание:

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


Интерфейс IGabaritObject
IGabaritObject

Вспомогательные данные для изменения габарита документа.

Иерархия:

Методы...


IGabaritObject::methods
IGabaritObject
методы

AddGabarit

GetGabaritModifying

GetCurrentGabarit


IGabaritObject::GetGabaritModifying

Измененился ли габарит документа.

Синтаксис Automation:

BOOL GetGabaritModifying();

Синтаксис COM:

HRESULT GetGabaritModifying ([out, retval]VARIANT_BOOL * DocGabaritModify);

Возвращаемое значение:

TRUE	- габарит документа изменен,
FALSE	- габарит документа не изменен.
Примечание:

В момент отработки события "Определение габаритов документа" метод позволяет узнать менялся ли габарит документа или нет.


IGabaritObject::GetCurrentGabarit

Получить текущий габарит документа.

Синтаксис Automation:

void GetCurrentGabarit (long nPage,
double* p1X,
double* p1Y,
double* p1Z,
double* p2X,
double* p2Y,
double* p2Z);

Синтаксис COM:

HRESULT GetCurrentGabarit ([in]long nPage,
[out]double *p1X,
[out]double *p1Y,
[out]double *p1Z,
[out]double *p2X,
[out]double *p2Y,
[out]double *p2Z )

Входные параметры:

nPage	- номер листа, начиная с единицы
Выходные параметры:

p1X, p1Y, p1Z, p2X, p2Y, p2Z	- координаты габаритной рамки документа.
Примечание:

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


IGabaritObject::AddGabarit

Добавить дополнительный габарит к габариту документа.

Синтаксис Automation:

void AddGabarit (double x1,
double y1,
double z1,
double x2,
double y2,
double z2);

Синтаксис COM:

HRESULT AddGabarit ([in]double x1,
[in]double y1,
[in]double z1,
[in]double x2,
[in]double y2,
[in]double z2);

Выходные параметры:

x1, y1, z1, x2, y2, z2	- координаты габаритной рамки добавляемого дополнительного габарита.


Интерфейс KsGLObject
ksGLObject

Вспомогательные данные для создания листа в контексте OpenGL.

Методы...

Примечание:

Данный интерфейс нужно использовать при отрисовке с помощью OpenGL из внешнего приложения (контроллера). При работе из подключаемой библиотеки (dll) данный интерфейс использовать нельзя. Более подробное описание методов смотрите в описании библиотеки OpenGL.


KsGLObject::methods
ksGLObject
методы

Синтаксис Automation :

BOOL glBegin( long mode );

BOOL glEnd();

BOOL glEnable( long cap );

BOOL glDisable( long cap );

BOOL glColor3d( double r, double g, double b );

BOOL glLineWidth( double w );

BOOL glLineStipple( long factor, short pattern );

BOOL glPointSize( double w );

BOOL glPolygonMode( long face, long mode );

BOOL glVertex2d( double x, double y );

BOOL glVertex2dv( double* pData, long countDouble );

BOOL glVertex3d( double x, double y, double z );

BOOL glVertex3dv( double* pData, long countDouble );

BOOL glVertex4d( double x, double y, double z, double w );

BOOL glVertex4dv( double* pData, long countDouble );


Интерфейс IPropertyManager
IPropertyManager

Интерфейс Панели свойств.

Иерархия:

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

Для стандартной Панели свойств все свойства данного интерфейса доступны только по чтению. Библиотека может управлять состоянием только собственной Панели свойств либо вкладок на стандартной. Остальные вкладки и их элементы управления будут недоступны для изменения.

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

Панель свойств библиотеки может быть расположена только слева, справа или находиться в плавающем состоянии.

Свойства...

Методы...

События...

Примечание:

Создать панель свойств и получить данный интерфейс можно методом IApplication::CreatePropertyManager.


IPropertyManager::props
IPropertyManager
свойства

Caption

Layout

PropertyTabs

SpecToolbar

Visible

Width


IPropertyManager::methods
IPropertyManager
методы

GetGabaritRect

HideTabs

SetGabaritRect

ShowTabs

UpdateTabs


IPropertyManager::Visible

Видимость Панели свойств.

Тип данных - BOOL.

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible (Visible)	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
iObject->put_Visible (Visible)	Установить свойство
Примечание:

С помощью данного свойства можно управлять видимостью Панели свойств.


IPropertyManager::Caption

Заголовок Панели свойств.

Тип данных - BSTR (строка).

Синтаксис Automation:

Caption = iObject.Caption	Получить свойство (*)
iObject.Caption = Caption	Установить свойство (*)
Caption = iObject.GetCaption()	Получить свойство (**)
iObject.SetCaption (Caption)	Установить свойство (**)
Синтаксис COM:

iObject->get_Caption (&Caption)	Получить свойство
iObject->put_Caption (Caption)	Установить свойство
Примечание:

С помощью данного свойства можно получить и изменить

заголовок Панели свойств.


IPropertyManager::Layout

Положение Панели свойств (вверху, внизу, слева, справа, плавает).

Тип данных - положение Панели свойств из перечисления PropertyManagerLayout.

Синтаксис Automation:

Layout = iObject.Layout	Получить свойство (*)
iObject.Layout = Layout	Установить свойство (*)
Layout = iObject.GetLayout()	Получить свойство (**)
iObject.SetLayout (Layout)	Установить свойство (**)
Синтаксис COM:

iObject->get_Layout (&Layout)	Получить свойство
iObject->put_Layout (Layout)	Установить свойство
Примечание:

С помощью данного свойства можно получить и изменить положение Панели свойств.


IPropertyManager::Width

Ширина панели свойств в вертикальном состоянии.

Тип данных - double.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Примечание:

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


IPropertyManager::PropertyTabs

Коллекция закладок Панели свойств.

Тип данных - указатель на интерфейс IPropertyTabs.

Синтаксис Automation:

PropertyTabs = iObject.PropertyTabs	Получить свойство (*)
PropertyTabs = iObject.GetPropertyTabs()	Получить свойство (**)
Синтаксис COM:

iObject->get_PropertyTabs (&PropertyTabs)	Получить свойство
Примечание:

1. Свойство только для чтения.

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


IPropertyManager::SpecToolbar

Специальная панель.

Тип данных - тип предопределенной спецпанели для Панели свойств из перечисления SpecPropertyToolBarEnum.

Синтаксис Automation:

SpecToolbar = iObject.SpecToolbar	Получить свойство (*)
iObject.SpecToolbar = SpecToolbar	Установить свойство (*)
SpecToolbar = iObject.GetSpecToolbar()	Получить свойство (**)
iObject.SetSpecToolbar (SpecToolbar)	Установить свойство (**)
Синтаксис COM:

iObject->get_SpecToolbar (&SpecToolbar)	Получить свойство
iObject->put_SpecToolbar (SpecToolbar)	Установить свойство
Примечание:

С помощью данного свойства можно получить и изменить тип предопределенной спецпанели для Панели свойств.


IPropertyManager::SetGabaritRect

Установить габаритный прямоугольник Панели свойств.

Синтаксис Automation:

void SetGabaritRect (long left,
long top,
long right,
long bottom);

Синтаксис COM:

HRESULT SetGabaritRect ([in] long left,
[in] long top,
[in] long right,
[in] long bottom);

Входные параметры:

left, top	- координата верхней левой точки
right, bottom	- координата нижней правой точки
Примечание:

Метод позволяет установить габаритный прямоугольник Панели свойств. Точки задаются в относительных координатах окна КОМПАС.


IPropertyManager::GetGabaritRect

Получить габаритный прямоугольник Панели свойств.

Синтаксис Automation:

void GetGabaritRect (long* left,
long* top,
long* right,
long* bottom);

Синтаксис COM:

HRESULT GetGabaritRect ([out] long* left,
[out] long* top,
[out] long* right,
[out] long* bottom);

Выходные параметры:

left, top	- координата верхней левой точки
right, bottom	- координата нижней правой точки
Примечание:

Метод позволяет получить габаритный прямоугольник Панели свойств. Точки задаются в относительных координатах окна КОМПАС.


IPropertyManager::ShowTabs

Отобразить вкладки и их содержимое на Панели свойств.

Синтаксис Automation:

BOOL ShowTabs();

Синтаксис COM:

HRESULT ShowTabs ([out, retval] VARIANT_BOOL * pVal);

Возвращаемое значение:

TRUE	- успешное завершение,
FALSE	- в случае неудачи.
Примечание:

Метод позволяет отобразить вкладки и их содержимое на Панели свойств.


IPropertyManager::UpdateTabs

Обновить вкладки и их содержимое на Панели свойств.

Синтаксис Automation:

BOOL UpdateTabs();

Синтаксис COM:

HRESULT UpdateTabs ([out, retval] VARIANT_BOOL * pVal);

Возвращаемое значение:

TRUE	- успешное завершение,
FALSE	- в случае неудачи.
Примечание:

Метод позволяет обновить вкладки и их содержимое на Панели свойств.


IPropertyManager::HideTabs

Скрыть вкладки и их содержимое на Панели свойств.

Синтаксис Automation:

BOOL HideTabs();

Синтаксис COM:

HRESULT HideTabs ([out, retval] VARIANT_BOOL * pVal);

Возвращаемое значение:

TRUE	- успешное завершение,
FALSE	- в случае неудачи.
Примечание:

Метод позволяет скрыть вкладки и их содержимое на Панели свойств.


Интерфейс IPropertyTabs
IPropertyTabs

Интерфейс коллекции вкладок Панели свойств.

Иерархия:

Свойства...

Методы...


IPropertyTabs::props
IPropertyTabs
свойства

Active

Item


IPropertyTabs::methods
IPropertyTabs
методы

Add

Delete


IPropertyTabs::Item

Вкладка, заданная по индексу или по имени.

Тип данных - указатель на интерфейс IPropertyTab.

Синтаксис Automation:

Item = iObject.Item	Получить свойство (*)
Item = iObject.GetItem()	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (&PropertyTab)	Получить свойство
Входные параметры:

index	- индекс или имя закладки (тип VARIANT).
Примечание:

Свойство доступно только для чтения.


IPropertyTabs::Active

Интерфейс текущей вкладки Панели свойств.

Тип данных - указатель на интерфейс IPropertyTab.

Синтаксис Automation:

Active = iObject.Active	Получить свойство (*)
Active = iObject.GetActive()	Получить свойство (**)
Синтаксис COM:

iObject->get_Active (&Active)	Получить свойство


IPropertyTabs::Add

Создать вкладку Панели свойств (добавляет вкладку в коллекцию).

Синтаксис Automation:

LPDISPATCH Add (BSTR caption);

Синтаксис COM:

HRESULT Add ([in] BSTR caption, [out, retval] IPropertyTab** Result);

Входные параметры:

caption	- имя закладки.
Возвращаемое значение:

указатель на интерфейс IPropertyTab


IPropertyTabs::Delete

Удалить вкладку Панели свойств, заданную по индексу или по имени.

Синтаксис Automation:

BOOL Delete (VARIANT index);

Синтаксис COM:

HRESULT Delete ([in] VARIANT index, [out, retval] VARIANT_BOOL* pVal);

Входные параметры:

index	- индекс или имя закладки.
Возвращаемое значение:

	Результат выполнения метода


Интерфейс IPropertyTab
IPropertyTab

Интерфейс вкладки Панели свойств.

Иерархия:

Свойства...


IPropertyTab::props
IPropertyTab
свойства

Active

Caption

PropertyControls

Visible


IPropertyTab::Visible

Видимость вкладки Панели свойств.

Тип данных - BOOL

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible =iObject.Visible	Получить свойство (**)
iObject.SetVisible	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
iObject->put_Visible (Visible)	Установить свойство
Примечание:

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


IPropertyTab::Caption

Заголовок вкладки Панели свойств.

Тип данных - BSTR (строка)

Синтаксис Automation:

Caption = iObject.Caption	Получить свойство (*)
iObject.Caption = Caption	Установить свойство (*)
Caption = iObject.GetCaption()	Получить свойство (**)
iObject.SetCaption (Caption)	Установить свойство (**)
Синтаксис COM:

iObject->get_Caption (&Caption)	Получить свойство
iObject->put_Caption (Caption)	Установить свойство
Примечание:

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


IPropertyTab::Active

Активность закладки Панели свойств.

Тип данных - BOOL

Синтаксис Automation:

Active = iObject.Active	Получить свойство (*)
iObject.Active = Active	Установить свойство (*)
Active = iObject.GetActive()	Получить свойство (**)
iObject.SetActive (Active)	Установить свойство (**)
Синтаксис COM:

iObject->get_Active (&Active)	Получить свойство
iObject->put_Active (Active)	Установить свойство
Примечание:

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


IPropertyTab::PropertyControls

Коллекция элементов управления на вкладке.

Тип данных -  указатель на интерфейс IPropertyControls.

Синтаксис Automation:

PropertyControls = iObject.PropertyControls	Получить свойство (*)
PropertyControls = iObject.GetPropertyControls()	Получить свойство (**)
Синтаксис COM:

iObject->get_PropertyControls (&PropertyControls)	Получить свойство
Примечание:

Свойство только для чтения. Позволяет получить коллецию элементов управления вкладки Панели свойств.


Интерфейс IPropertyControls
IPropertyControls

Интерфейс коллекции элементов управления.

Иерархия:

Свойства...

Методы...

Примечание:

Интерфейс позволяет управлять коллекцией элементов управления.


IPropertyControls::props
IPropertyControls
свойства

Item


IPropertyControls::methods
IPropertyControls
методы

Add

Delete


IPropertyControls::Item

Элемент управления, заданный по индексу.

Тип данных - указатель на интерфейс IPropertyControl.

Синтаксис Automation:

Item = iObject.Item (Index)	Получить свойство (*)
Item = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &IPropertyControl)	Получить свойство
Входные параметры:

index	- индекс элемента управления.
Примечание:

Свойство доступно только для чтения.


IPropertyControls::Add

Создать элемент управления.

Синтаксис Automation:

LPDISPATCH Add (ControlTypeEnum type);

Синтаксис COM:

HRESULT Add ([in] ControlTypeEnum Type, [out, retval] IPropertyControl** Result);

Входные параметры:

type	- тип элемента управления из ControlTypeEnum.
Возвращаемое значение:

Указатель на интерфейс IPropertyControl
Примечание:

Добавляет элемент управления в коллекцию.


IPropertyControls::Delete

Удалить элемент управления.

Синтаксис Automation:

BOOL Delete (VARIANT Index);

Синтаксис COM:

HRESULT Delete ([in] VARIANT Index, [out, retval] VARIANT_BOOL* pVal);

Входные параметры:

index	- индекс элемента управления или имя элемента управления.
Возвращаемое значение:

	Результат выполнения метода
Примечание:

Метод позволяет удалить элемент управления, заданный по индексу.


Интерфейс IPropertyControl
IPropertyControl

Базовый интерфейс элемента управления Панели свойств.

Иерархия:

Свойства...

Описание:

При изменении библотечных элементов управления система передает управление библиотеке посредством вызовов соответствующих событий. Данный интерфейс является базовым для всех элементов управления Панели свойств. Все элементы управления из СontrolTypeEnum являются наследниками от IPropertyControl.

Примечание:

1. Имя выводится рядом с элементом управления (в зависимости от настроек Панели свойств). Если имя не задано или задана пустая строка, имя выводится не будет.

2. Подсказки для элемента управления устанавливаются функциями Hint и Tips.

3. Идентификатор элемента управления, установленный методом Id, будет приходить в событиях от данного элемента управления как параметр.


IPropertyControl::props
IPropertyControl
свойства

СontrolType

Enable

Hint

Id

Name

NameVisibility

Tips

Value

Visible


IPropertyControl::Visible

Видимость элемента управления.

Тип данных - BOOL

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible (Visible)	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
iObject->put_Visible (Visible)	Установить свойство
Примечание:

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


IPropertyControl::Name

Имя элемента управления.

Тип данных - строка

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
iObject.Name = Name	Установить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
iObject.SetName (Name)	Установить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
iObject->put_Name (Name)	Установить свойство
Примечание:

Позволяет получить и установить имя элемента управления.


IPropertyControl::controlType
IPropertyControl::СontrolType

Тип элемента управления.

Тип данных - тип элемента управления из перечисления СontrolTypeEnum.

Синтаксис Automation:

СontrolType = iObject.СontrolType	Получить свойство (*)
СontrolType = iObject.GetСontrolType()	Получить свойство (**)
Синтаксис COM:

iObject->get_СontrolType (&СontrolType)	Получить свойство
Примечание:

Свойство только для чтения.


IPropertyControl::Id

Идентификатор элемента управления.

Тип данных - long

Синтаксис Automation:

Id = iObject.Id	Получить свойство (*)
iObject.Id = Id	Установить свойство (*)
Id = iObject.GetId()	Получить свойство (**)
iObject.SetId (Id)	Установить свойство (**)
Синтаксис COM:

iObject->get_Id (&Id)	Получить свойство
iObject->put_Id (Id)	Установить свойство
Примечание:

Позволяет получить и установить идентификатор элемента управления.


IPropertyControl::Enable

Состояние (доступность) элемента управления.

Тип данных - BOOL

Синтаксис Automation:

Enable = iObject.Enable	Получить свойство (*)
iObject.Enable = Enable	Установить свойство (*)
Enable = iObject.GetEnable()	Получить свойство (**)
iObject.SetEnable (Enable)	Установить свойство (**)
Синтаксис COM:

iObject->get_Enable (&Enable)	Получить свойство
iObject->put_Enable (Enable)	Установить свойство
Примечание:

Позволяет получить и установить доступность элемента управления.


IPropertyControl::Value

Значение элемента управления.

Тип данных - VARIANT

Синтаксис Automation:

Value = iObject.Value	Получить свойство (*)
iObject.Value = Value	Установить свойство (*)
Value = iObject.GetValue()	Получить свойство (**)
iObject.SetValue (Value)	Установить свойство (**)
Синтаксис COM:

iObject->get_Value (&Value)	Получить свойство
iObject->put_Value (Value)	Установить свойство
Примечание:

1. Позволяет получить и установить значение элемента управления.

2. Тип данных определяется типом элемента управления из перечисления СontrolTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListSt ограничения на значение не накладываются.


IPropertyControl::NameVisibility

Видимость имени на Панели свойств.

Тип данных - PropertyControlNameVisibility

Синтаксис Automation:

NameVisibility = iObject.NameVisibility	Получить свойство (*)
iObject.NameVisibility = NameVisibility	Установить свойство (*)
NameVisibility = iObject.GetNameVisibility()	Получить свойство (**)
iObject.SetNameVisibility (NameVisibility)	Установить свойство (**)
Синтаксис COM:

iObject->get_NameVisibility (&NameVisibility)	Получить свойство
iObject->put_NameVisibility (NameVisibility)	Установить свойство
Примечание:

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


IPropertyControl::Hint

Подсказки элемента управления.

Тип данных - строка

Синтаксис Automation:

Hint = iObject.Hint	Получить свойство (*)
iObject.Hint = Hint	Установить свойство (*)
Hint = iObject.GetHint()	Получить свойство (**)
iObject.SetHint (Hint)	Установить свойство (**)
Синтаксис COM:

iObject->get_Hint (&Hint)	Получить свойство
iObject->put_Hint (Hint)	Установить свойство
Примечание:

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


IPropertyControl::Tips

Подсказки элемента управления.

Тип данных - строка

Синтаксис Automation:

Tips = iObject.Tips	Получить свойство (*)
iObject.Tips = Tips	Установить свойство (*)
Tips = iObject.GetTips()	Получить свойство (**)
iObject.SetTips (Tips)	Установить свойство (**)
Синтаксис COM:

iObject->get_Tips (&Tips)	Получить свойство
iObject->put_Tips (Tips)	Установить свойство
Примечание:

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


Интерфейс IPropertySeparator
IPropertySeparator

Интерфейс элемента управления Панели свойств типа "разделитель" (сепаратор).

Иерархия:

Свойства...

Методы...

Примечание:

Данный интерфейс позволяет получить и установить параметры разделителя.


IPropertySeparator::props
IPropertySeparator
свойства

SeparatorType


IPropertySeparator::methods
IPropertySeparator
методы

SetImage


IPropertySeparator::SeparatorType

Тип разделителя.

Тип данных - тип разделителя из перечисления SeparatorTypeEnum.

Синтаксис Automation:

SeparatorType = iObject.SeparatorType	Получить свойство (*)
iObject.SeparatorType = SeparatorType	Установить свойство (*)
SeparatorType = iObject.GetSeparatorType()	Получить свойство (**)
iObject.SetSeparatorType (SeparatorType)	Установить свойство (**)
Синтаксис COM:

iObject->get_SeparatorType (&SeparatorType)	Получить свойство
iObject->put_SeparatorType (SeparatorType)	Установить свойство
Примечание:

Позволяет получить и установить тип разделителя.


IPropertySeparator::SetImage

Установить изображение.

Синтаксис Automation:

BOOL SetImage (VARIANT idBmp, VARIANT hInstance);

Синтаксис COM:

HRESULT SetImage ([in]VARIANT idBmp,
[in]VARIANT hInstance,
[out, retval] VARIANT_BOOL* pVal);

Входные параметры:

idBmp	- идентификатор значка в файле ресурсов (тип данных long) или полный путь к bmp файлу значка (тип данных BSTR),
hInstance	- HINSTANCE модуля, в котором находится изображение.
Возвращаемое значение:

	Результат выполнения метода
Примечание:

Если значок задается в виде идентификатора, то должен быть задан dll-модуль hInstance, в ресурсах которого лежит этот значок.


Интерфейс IPropertyEdit
IPropertyEdit

Интерфейс элемента управления Панели свойств типа "Поле ввода".

Иерархия:

Свойства...

Методы...

Примечание:

Данный интерфейс позволяет получить и установить параметры поля ввода.


IPropertyEdit::props
IPropertyEdit
свойства

CheckState

MaxValue

MinValue

ReadOnly

Width

WithCheck


IPropertyEdit::methods
IPropertyEdit
методы

SetValueRange


IPropertyEdit::MinValue

Минимальное значение.

Тип данных - VARIANT

Синтаксис Automation:

MinValue = iObject.MinValue	Получить свойство (*)
MinValue = iObject.GetMinValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MinValue (&MinValue)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. Тип данных определяется типом элемента управления из перечисления ControlTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListSt ограничения на значение не накладываются.


IPropertyEdit::MaxValue

Максимальное значение.

Тип данных - VARIANT

Синтаксис Automation:

MaxValue = iObject.MaxValue	Получить свойство (*)
MaxValue = iObject.GetMaxValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MaxValue (&MaxValue)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. Тип данных определяется типом элемента управления из перечисления ControlTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListStr ограничения на значение не накладываются.


IPropertyEdit::WithCheck

Наличие опции рядом с полем ввода.

Тип данных - BOOL

Синтаксис Automation:

WithCheck = iObject.WithCheck	Получить свойство (*)
iObject.WithCheck = WithCheck	Установить свойство (*)
WithCheck = iObject.GetWithCheck()	Получить свойство (**)
iObject.SetWithCheck (WithCheck)	Установить свойство (**)
Синтаксис COM:

iObject->get_WithCheck (&WithCheck)	Получить свойство
iObject->put_WithCheck (WithCheck)	Установить свойство
Значение свойства:

TRUE	- рядом с элементом управления выводится опция,
FALSE	- рядом с элементом управления не выводится опция.


IPropertyEdit::CheckState

Состояние опции.

Тип данных - состояние опции из перечисления CheckStateEnum.

Синтаксис Automation:

CheckState = iObject.CheckState	Получить свойство (*)
iObject.CheckState = CheckState	Установить свойство (*)
CheckState = iObject.GetCheckState()	Получить свойство (**)
iObject.SetCheckState (CheckState)	Установить свойство (**)
Синтаксис COM:

iObject->get_CheckState (&CheckState)	Получить свойство
iObject->put_CheckState (CheckState)	Установить свойство
Примечание:

Это свойство используется если свойство WithCheck имеет значение TRUE.


IPropertyEdit::ReadOnly

Запрет редактирования значения.

Тип данных - BOOL.

Синтаксис Automation:

ReadOnly = iObject.ReadOnly	Получить свойство (*)
iObject.ReadOnly = ReadOnly	Установить свойство (*)
ReadOnly = iObject.GetReadOnly()	Получить свойство (**)
iObject.SetReadOnly (ReadOnly)	Установить свойство (**)
Синтаксис COM:

iObject->get_ReadOnly (&ReadOnly)	Получить свойство
iObject->put_ReadOnly (ReadOnly)	Установить свойство
Значение свойства:

TRUE	- ввод нового значения с клавиатуры в поле запрещен,
FALSE	- ввод нового значения с клавиатуры в раскрывающийся список разрешен.


IPropertyEdit::Width

Шаблон для расчета ширины элемента управления в горизонтальном положении (в символах).

Тип данных - long.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значение свойства:

Количество видимых символов в поле при горизонтальном положении Панели свойств.
Примечание:

Для расчета ширины элемента управления используется символ "0".


IPropertyEdit::SetValueRange

Установить новые ограничения на значение.

Синтаксис Automation:

BOOL SetValueRange (const VARIANT& minVal, const VARIANT& maxVal);

Синтаксис COM:

HRESULT SetValueRange ([in] VARIANT minVal,
[in] VARIANT maxVal,
[out, retval] VARIANT_BOOL * pVal);

Входные параметры:

minVal	- минимальное значение,
maxVal	- максимальное значение.
Примечание:

Тип данных максимального и минимального допустимого значения определяется типом элемента управления из перечисления ControlTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListStr ограничения на значение не накладываются.


ksDocumentFrameNotifyEnum - События для окна документа
ksDocumentFrameNotifyEnum

События для окна документа: клавиатура, мышь, события по отрисовке документа.

frBeginPaint	1	Начало отрисовки документа
frClosePaint	2	Конец отрисовки документа
frMouseDown	3	Нажатие кнопки мыши
frMouseUp	4	Отпускание кнопки мыши
frMouseDblClick	5	Двойной щелчок мыши
frBeginPaintGL	6	Начало создания листа в контексте OpenGL
frClosePaintGL	7	Окончание создания листа в контексте OpenGL
frAddGabarit	8	Определение габаритов документа
frActivate	9	Окно активизировалось
frDeactivate	10	Окно деактивизировалось
frCloseFrame	11	Закрытие окна
frMouseMove	12	Перемещение мыши


ksPropertyManagerNotifyEnum - События Панели свойств.
ksPropertyManagerNotifyEnum

События Панели свойств.

prButtonClick	1	Нажата кнопка спецпанели
prChangeControlValue	2	Измененено значение элемента управления
prControlCommand	3	Нажата кнопка элемента управления
prButtonUpdate	4	Задано состояние кнопки спецпанели
prProcessActivate	5	Активизирован процесс
prProcessDeactivate	6	Деактивирован процесс
prCommandHelp	7	Вызвана справка


ksViewsAndLayersManagerNotifyEnum - События для менеджера видов и слоев.
ksViewsAndLayersManagerNotifyEnum

События для менеджера видов и слоев.

vmBeginEdit	1	Начато редактирование
vmEndEdit	2	Завершено редактирование


ksPropertyUserControlNotifyEnum - События пользовательского элемента управления.
ksPropertyUserControlNotifyEnum

События пользовательского элемента управления.

puCreateOCX	1	Создан элемент управления OCX
puDestroyOCX	2	Удален элемент управления OCX


Интерфейс IKompasDocument2D
IKompasDocument2D

Базовый класс графических документов КОМПАС.

Иерархия:

Свойства...

Методы...

Примечание:

1. Данный интерфейс является базовым для интерфейсов графических документов КОМПАС API - чертежа и фрагмента.

2. Интерфейс можно получить из коллекции документов IDocuments.


IKompasDocument2D::props
IKompasDocument2D
свойства

ViewsAndLayersManager


IKompasDocument2D::methods
IKompasDocument2D
методы

GetDrawingObjectNotifyResult


IKompasDocument2D::ViewsAndLayersManager

Возвращает менеджер видов и слоев документа.

Тип данных - IViewsAndLayersManager.

Синтаксис Automation:

ViewsAndLayersManager = iObject.ViewsAndLayersManager	Получить свойство (*)
ViewsAndLayersManager = iObject.GetViewsAndLayersManager()	Получить свойство (**)
Синтаксис COM:

iObject->get_ViewsAndLayersManager (&ViewsAndLayersManager)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IKompasDocument2D::GetDrawingObjectNotifyResult

Получить интерфейс результатов редактирования объекта при обработке событий.

Синтаксис Automation:

LPDISPATCH GetDrawingObjectNotifyResult();

Синтаксис COM:

HRESULT GetDrawingObjectNotifyResult ([out, retval] IDispatch**Result);

Возвращаемое значение:

указатель на интерфейс ksObject2DNotifyResult


Интерфейс IKompasDocument3D
IKompasDocument3D

Базовый класс документов-моделей КОМПАС (скрытый).

Иерархия:

Свойства...

Методы...

Примечание:

Данный интерфейс является базовым для интерфейсов документов-моделей КОМПАС API - детали и сборки.


IKompasDocument3D::props
IKompasDocument3D
свойства


IKompasDocument3D::methods
IKompasDocument3D
методы


Интерфейс IDrawingDocument
IDrawingDocument

Интерфейс чертежа.

Свойства...

Методы...


IDrawingDocument::props
IDrawingDocument
свойства


IDrawingDocument::methods
IDrawingDocument
методы


Интерфейс IFragmentDocument
IFragmentDocument

Интерфейс фрагмента.

Свойства...

Методы...


IFragmentDocument::props
IFragmentDocument
свойства


IFragmentDocument::methods
IFragmentDocument
методы


Интерфейс ISpecificationDocument
ISpecificationDocument

Интерфейс документа спецификации.

Иерархия:

Свойства...

Методы...


ISpecificationDocument::props
ISpecificationDocument
свойства


ISpecificationDocument::methods
ISpecificationDocument
методы


ISpecificationStyle::AttachedDocuments

Присоединенные документы.

Тип данных - указатель на интерфейс коллекции присоединенных документов ISpecificationColumns.

Синтаксис Automation:

AttachedDocuments = iObject.AttachedDocuments	Получить свойство (*)
AttachedDocuments = iObject.GetAttachedDocuments()	Получить свойство (**)
Синтаксис COM:

iObject->get_AttachedDocuments (&AttachedDocuments)	Получить свойство
Примечание:

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

2. Свойство доступно только для чтения.


ISpecificationStyle::Update

Обновить данные.

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

HRESULT Update ([out, retval] BOOL* Result);

Примечание:

После изменения параметров объекта спецификации требуется вызвать метод Update, чтобы новые данные попали в модельный объект спецификации. Если объект спецификации еще не создан, метод Update создает объект спецификации в документе.


ISpecificationStyle::Delete

Удалить объект.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete ([out, retval] BOOL* Result);

Примечание:

Метод позволяет удалить базовый или вспомогательный объект спецификации.


ISpecificationStyle::Edit

Редактировать объект.

Синтаксис Automation:

BOOL Edit();

Синтаксис COM:

HRESULT Edit ([out, retval] BOOL* Result);

Примечание:

Метод позволяет запустить процесс визуального редактирования для базового или вспомогательного объекта спецификации.


Интерфейс IPartDocument
IPartDocument

Интерфейс детали.

Свойства...

Методы...


IPartDocument::props
IPartDocument
свойства


IPartDocument::methods
IPartDocument
методы


Интерфейс IAssemblyDocument
IAssemblyDocument

Интерфейс детали.

Свойства...

Методы...


IAssemblyDocument::props
IAssemblyDocument
свойства


IAssemblyDocument::methods
IAssemblyDocument
методы


Интерфейс ITextDocument
ITextDocument

Интерфейс текстового документа.

Свойства...

Методы...


ITextDocument::props
ITextDocument
свойства


ITextDocument::methods
ITextDocument
методы


Объекты newAPIs
Объекты API интерфейсов версии 7


Объекты newAPIs
Объекты API интерфейсов версии 7


Объекты newAPIs
Объекты API интерфейсов версии 7


Объекты newAPIs
Объекты API интерфейсов версии 7


Интерфейс IPropertyMultiButton
IPropertyMultiButton

Интерфейс элемента управления Панели свойств "Набор кнопок".

Свойства...

Методы...

Примечание:

1. Элемент управления состоит из набора кнопок определенного типа из перечисления ButtonTypeEnum.

2. Данный интерфейс можно получить через интерфейс коллекции элементов управления панели свойств IPropertyControls.

3. При нажатии на одну из кнопок набора вызывается событие IPropertyManagerNotify::ControlCommand.


IPropertyMultiButton::props
IPropertyMultiButton
свойства

ButtonChecked

ButtonEnable

ButtonHint

ButtonsType

ButtonTips

ResModule


IPropertyMultiButton::methods
IPropertyMultiButton
методы

AddButton


IPropertyMultiButton::ButtonsType

Тип кнопок.

Тип данных - тип кнопок из перечисления ButtonTypeEnum.

Синтаксис Automation:

ButtonsType = iObject.ButtonsType	Получить свойство (*)
iObject.ButtonsType = ButtonsType	Установить свойство (*)
ButtonsType = iObject.GetButtonsType()	Получить свойство (**)
iObject.SetButtonsType (ButtonsType)	Установить свойство (**)
Синтаксис COM:

iObject->get_ButtonsType (&ButtonsType)	Получить свойство
iObject->put_ButtonsType (ButtonsType)	Установить свойство
Примечание:

Изменить тип кнопок можно только до создания элемента управления, то есть до запуска процесса у процессных параметров или до вызова метода IPropertyManager::ShowTabs.


IPropertyMultiButton::ButtonChecked

Нажатие кнопки.

Тип данных - BOOL.

Синтаксис Automation:

ButtonChecked = iObject.ButtonChecked (btnID)	Получить свойство (*)
iObject.ButtonChecked (btnID) = ButtonChecked	Установить свойство (*)
ButtonChecked = iObject.GetButtonChecked (btnID)	Получить свойство (**)
iObject.SetButtonChecked (btnID, ButtonChecked)	Установить свойство (**)
Синтаксис COM:

iObject->get_ButtonChecked (btnID, &ButtonChecked)	Получить свойство
iObject->put_ButtonChecked (btnID, ButtonChecked)	Установить свойство
Входные параметры:

btnID	- идентификатор кнопки..
Значение свойства:

TRUE	- кнопка нажата,
FALSE	- кнопка ненажата.
Примечание:

Доступно только для кнопок типа ksCheckButton и ksRadioButton из перечисления ButtonTypeEnum.


IPropertyMultiButton::ButtonEnable

Доступность кнопки.

Тип данных - BOOL.

Синтаксис Automation:

ButtonEnable = iObject.ButtonEnable (btnID)	Получить свойство (*)
iObject.ButtonEnable (btnID) = ButtonEnable	Установить свойство (*)
ButtonEnable = iObject.GetButtonEnable (btnID)	Получить свойство (**)
iObject.SetButtonEnable (btnID, ButtonEnable)	Установить свойство (**)
Синтаксис COM:

iObject->get_ButtonEnable (btnID, &ButtonEnable)	Получить свойство
iObject->put_ButtonEnable (btnID, ButtonEnable)	Установить свойство
Входные параметры:

btnID	- идентификатор кнопки..
Значение свойства:

TRUE	- кнопка доступна,
FALSE	- кнопка недоступна.
Примечание:

Данное свойство позволяет установить или получить доступ к кнопке.


IPropertyMultiButton::ResModule

Модуль с ресурсами значков.

Тип данных - VARIANT (long или BSTR)

Синтаксис Automation:

ResModule = iObject.ResModule	Получить свойство (*)
iObject.ResModule = ResModule	Установить свойство (*)
ResModule = iObject.GetResModule()	Получить свойство (**)
iObject.SetResModule (ResModule)	Установить свойство (**)
Синтаксис COM:

iObject->get_ResModule (&ResModule)	Получить свойство
iObject->put_ResModule (ResModule)	Установить свойство
Значение свойства:

HINSTANCE (тип значения long) или полный путь к файлу (тип значения BSTR) dll модуля, в котором находятся все необходимые ресурсы.
Примечание:

Данное свойство позволяет установить или получить dll-модуль, из которого будут извлекаться значки для кнопок.


IPropertyMultiButton::ButtonTips

Строка подсказки для кнопки.

Тип данных - BSTR

Синтаксис Automation:

ButtonTips = iObject.ButtonTips (btnID)	Получить свойство (*)
iObject.ButtonTips (btnID) = ButtonTips	Установить свойство (*)
ButtonTips = iObject.GetButtonTips (btnID)	Получить свойство (**)
iObject.SetButtonTips (btnID, ButtonTips)	Установить свойство (**)
Синтаксис COM:

iObject->get_ButtonTips (btnID, &ButtonTips)	Получить свойство
iObject->put_ButtonTips (btnID, ButtonTips)	Установить свойство
Входные параметры:

btnID	- идентификатор кнопки..
Примечание:

Данное свойство позволяет установить или получить строку подсказки для кнопки с идентификатором btnID.


IPropertyMultiButton::ButtonHint

Строка подсказки для кнопки.

Тип данных - BSTR

Синтаксис Automation:

ButtonHint = iObject.ButtonHint (btnID)	Получить свойство (*)
iObject.ButtonHint (btnID) = ButtonHint	Установить свойство (*)
ButtonHint = iObject.GetButtonHint (btnID)	Получить свойство (**)
iObject.SetButtonHint (btnID, ButtonHint)	Установить свойство (**)
Синтаксис COM:

iObject->get_ButtonHint (btnID, &ButtonHint)	Получить свойство
iObject->put_ButtonHint (btnID, ButtonHint)	Установить свойство
Входные параметры:

btnID	- идентификатор кнопки..
Примечание:

Данное свойство позволяет установить или получить строку подсказки для кнопки с идентификатором btnID.


IPropertyMultiButton::AddButton

Добавить кнопку.

Синтаксис Automation:

void AddButton (long btnID, const VARIANT& bmp, long insertAt);

Синтаксис COM:

HRESULT AddButton ([in] long btnID, [in] VARIANT bmp, [in, defaultvalue (-1)] long insertAt);

Входные параметры:

btnID	- идентификатор добавляемой кнопки,
bmp	- идентификатор значка в файле ресурсов (тип данных long) или полный путь к bmp-файлу значка (тип данных BSTR),
insertAt	- индекс кнопки, перед которой нужно вставить добавляемую  (-1 - в конец).
Примечание:

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


Интерфейс IPropertyCheckBox
IPropertyCheckBox

Интерфейс элемента управления Панели свойств "Опция".

Иерархия:

Методы...

Примечание:

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

2. Данный интерфейс можно получить через интерфейс коллекции элементов управления панели свойств IPropertyControls.

3. При активизации элемента управления вызывается событие IPropertyManagerNotify::ChangeControlValue.


IPropertyCheckBox::methods
IPropertyCheckBox
методы

SetCustomBitmaps


IPropertyCheckBox::SetCustomBitmaps

Задать значки для различных состояний элемента управления.

Синтаксис Automation:

void SetCustomBitmaps (const VARIANT& idUnchecked,
const VARIANT& idChecked,
const VARIANT& idIndeterminate,
const VARIANT& hInstance);

Синтаксис COM:

HRESULT SetCustomBitmaps ([in]VARIANT idUnchecked,
[in]VARIANT idChecked,
[in]VARIANT idIndeterminate,
[in]VARIANT hInstance );

Входные параметры:

idUnchecked	- значок ненажатого состояния,
idChecked	- битмап нажатого состояния,
idIndeterminate	- битмап неопределенного состояния,
hInstance	- dll-модуль с ресурсами значков.
Примечание:

1. Значки могут быть заданы в виде идентификаторов в ресурсе dll-модуля (тип данных long) или в виде полного пути к bmp-файлу значка (тип данных BSTR). Обязательным является задание значка для ненажатого состояния idUnchecked, остальные могут быть не заданы.

2. Все значения переменных должны быть одного типа (или long или BSTR).

3. Если значки задаются в виде идентификатора, то обязательно должен быть задан dll-модуль, в ресурсах которого лежат эти значки. Модуль с ресурсами значков hInstance может быть задан в виде HINSTANCE (тип значения long) или полного пути к файлу (тип значения BSTR) dll-модуля.


Интерфейс IPropertyList
IPropertyList

Интерфейс элемента управления Панели свойств "Поле со списком".

Иерархия:

Свойства...

Методы...

Примечание:

1. Данный интерфейс можно получить через интерфейс коллекции элементов управления панели свойств IPropertyControls.

2. При нажатии на кнопку элемента управления вызывается событие IPropertyManagerNotify::ControlCommand.

3. При изменении значения элемента управления вызывается событие IPropertyManagerNotify::ChangeControlValue.


IPropertyList::props
IPropertyList
свойства

CheckState

MaxValue

MinValue

ReadOnly

Sort

Width

WithCheck


IPropertyList::methods
IPropertyList
методы

Add

ClearList

SetValueRange


IPropertyList::MinValue

Минимальное значение.

Тип данных - VARIANT (long или double).

Синтаксис Automation:

MinValue = iObject.MinValue	Получить свойство (*)
MinValue = iObject.GetMinValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MinValue (&MinValue)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. Тип данных определяется типом элемента управления из перечисления ControlTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListStr ограничения на значение не накладываются.


IPropertyList::MaxValue

Максимальное значение.

Тип данных - VARIANT (long или double).

Синтаксис Automation:

MaxValue = iObject.MinValue	Получить свойство (*)
MaxValue = iObject.GetMinValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MaxValue (&MaxValue)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. Тип данных определяется типом элемента управления из перечисления ControlTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListStr ограничения на значение не накладываются.


IPropertyList::WithCheck

Наличие опции рядом с полем ввода.

Тип данных - BOOL.

Синтаксис Automation:

WithCheck = iObject.WithCheck	Получить свойство (*)
iObject.WithCheck = WithCheck	Установить свойство (*)
WithCheck = iObject.GetWithCheck()	Получить свойство (**)
iObject.SetWithCheck (WithCheck)	Установить свойство (**)
Синтаксис COM:

iObject->get_WithCheck (&WithCheck)	Получить свойство
iObject->put_WithCheck (WithCheck)	Установить свойство
Значение свойства:

TRUE	- рядом с элементом управления выводится опция,
FALSE	- рядом с элементом управления не выводится опция.


IPropertyList::CheckState

Состояние опции.

Тип данных - состояние опции из перечисления CheckStateEnum.

Синтаксис Automation:

CheckState = iObject.CheckState	Получить свойство (*)
iObject.CheckState = CheckState	Установить свойство (*)
CheckState = iObject.GetCheckState()	Получить свойство (**)
iObject.SetCheckState (CheckState)	Установить свойство (**)
Синтаксис COM:

iObject->get_CheckState (&CheckState)	Получить свойство
iObject->put_CheckState (CheckState)	Установить свойство
Примечание:

Это свойство используется если свойство WithCheck имеет значение TRUE.


IPropertyList::ReadOnly

Запрет редактирования значения.

Тип данных - BOOL.

Синтаксис Automation:

ReadOnly = iObject.ReadOnly	Получить свойство (*)
iObject.ReadOnly = ReadOnly	Установить свойство (*)
ReadOnly = iObject.GetReadOnly()	Получить свойство (**)
iObject.SetReadOnly (ReadOnly)	Установить свойство (**)
Синтаксис COM:

iObject->get_ReadOnly (&ReadOnly)	Получить свойство
iObject->put_ReadOnly (ReadOnly)	Установить свойство
Значение свойства:

TRUE	-  ввод нового значения с клавиатуры в раскрывающийся список запрещен; элемент управления работает в режиме DropList,
FALSE	-  ввод нового значения с клавиатуры в раскрывающийся список разрешен; элемент управления работает в режиме DropDown,


IPropertyList::Width

Шаблон для расчета ширины элемента управления в горизонтальном положении (в символах).

Тип данных - long.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значение свойства:

Количество видимых символов в поле при горизонтальном положении Панели свойств.
Примечание:

Для расчета ширины элемента управления используется символ "0".


IPropertyList::Sort

Сортировать список.

Тип данных - BOOL.

Синтаксис Automation:

Sort = iObject.Sort	Получить свойство (*)
iObject.Sort = Sort	Установить свойство (*)
Sort = iObject.GetSort()	Получить свойство (**)
iObject.SetSort (Sort)	Установить свойство (**)
Синтаксис COM:

iObject->get_Sort (&Sort)	Получить свойство
iObject->put_Sort (Sort)	Установить свойство
Значение свойства:

TRUE	- значения в списке будут сортироваться при добавлении новых,
FALSE	- значения в списке будут в той последовательности, в какой они были добавлены.


IPropertyList::SetValueRange

Установить новые ограничения на значение.

Синтаксис Automation:

BOOL SetValueRange (const VARIANT& minVal, const VARIANT& maxVal);

Синтаксис COM:

HRESULT SetValueRange ([in] VARIANT minVal, [in] VARIANT maxVal, [out, retval] VARIANT_BOOL * pVal);

Входные параметры:

minVal	- минимальное допустимое значение (тип данных long или double),
maxVal	- максимальное допустимое значение (тип данных long или double).
Примечание:

Тип данных максимального и минимального допустимого значения определяется типом элемента управления из перечисления ControlTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListStr ограничения на значение не накладываются.


IPropertyList::ClearList

Очистить список значений.

Синтаксис Automation:

void ClearList();

Синтаксис COM:

HRESULT ClearList();

Примечание:

Очищает раскрывающийся список и содержимое его поля ввода.


IPropertyList::Add

Добавить значение в список.

Синтаксис Automation:

void Add (const VARIANT& newVal);

Синтаксис COM:

HRESULT Add ([in]VARIANT newVal);

Входные параметры:

newVal	- новое значение в раскрывающемся списке.
Примечание:

Тип данных нового значения определяется типом элемента управления из перечисления ControlTypeEnum:

- для типа ksControlListInt используется тип long,

- для типа ksControlListReal используется тип double,

- для типа ksControlListStr ограничения на значение не накладываются.


Интерфейс IPropertyUserControl
IPropertyUserControl

Интерфейс элемента управления Панели свойств "Пользовательский элемент управления".

Иерархия :

Данный элемент управления позволяет отображать на Панели свойств нестандартные элементы управления и их наборы. В качестве вложенного нестандартного элемента управления используется элемент управления OCX. Используемый элемент управления OCX должен быть зарегистрирован в реестре Windows.

После создания элемента управления OCX библиотеке посылается событие ksPropertyUserControlNotify::CreateOCX. В этом событии передается Dispatch-интерфейс элемента управления OCX и библиотека может подписаться на события от этого элемента управления.

Перед удалением элемента управления OCX библиотеке посылается событие ksPropertyUserControlNotify::DestroyOCX. При обработке этого события библиотека должна отписаться от событий этого элемента управления.

Свойства...

Методы...

События...

Примечание:

Данный интерфейс можно получить через коллекцию элементов управления Панели свойств IPropertyControls.


IPropertyUserControl::props
IPropertyUserControl
свойства

Height

Width


IPropertyUserControl::methods
IPropertyUserControl
методы

SetOCXControl


IPropertyUserControl::Width

Ширина элемента управления.

Тип данных - long.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значение свойства:

Ширина элемента управления в пикселах.
Примечание:

Используется только для Панели свойств в горизонтальном положении . В вертикальном определяется шириной самой Панели свойств.


IPropertyUserControl::Height

Высота элемента управления.

Тип данных - long.

Синтаксис Automation:

Height = iObject.Height	Получить свойство (*)
iObject.Height = Height	Установить свойство (*)
Height = iObject.GetHeight()	Получить свойство (**)
iObject.SetHeight (Height)	Установить свойство (**)
Синтаксис COM:

iObject->get_Height (&Height)	Получить свойство
iObject->put_Height (Height)	Установить свойство
Значение свойства:

Ширина элемента управления в пикселах.


IPropertyUserControl::SetOCXControl

Установить progID элемента управления OCX.

Синтаксис Automation:

void SetOCXControl (LPCTSTR progID);

Синтаксис COM:

HRESULT SetOCXControl ([in] BSTR progID);

Входные параметры:

progID	- строка progID элемента управления OCX.
Примечание:

OCX контрол должен быть зарегистрирован в реестре Windows.


Интерфейс ksPropertyUserControlNotify
 ksPropertyUserControlNotify

Интерфейс событий пользовательского элемента управления.

ksPropertyUserControlNotify	- интерфейс Automation
	- аналога в COM нет
Позволяют контролировать состояние элемента управления OCX.

Источником событий для подписки на данный интерфейс является IPropertyUserControl - Пользовательский элемент управления Панели свойств.

События...


ksPropertyUserControlNotify::events
ksPropertyUserControlNotify
события

CreateOCX

DestroyOCX


ksPropertyUserControlNotify::CreateOCX

Создан элемент управления OCX.

Синтаксис Automation:

BOOL CreateOCX (LPDISPATCH iOcx);

Входные параметры:

iOcx	- указатель на интерфейс IDispatch созданного элемента управления OCX.
Возвращаемое значение:

	Не используется
Примечание:

1. При обработке этого события библиотека может подписаться на события элемента управления OCX для осуществления взаимодействия с ним. Если библиотека подписалась на события элемента управления OCX, то она должна обязательно от них отписаться при получении события DestroyOCX.

2. Индекс события задан в перечислении событий пользовательского элемента управления ksPropertyUserControlNotifyEnum.


ksPropertyUserControlNotify::DestroyOCX

Элемент управления OCX удален.

Синтаксис Automation:

BOOL DestroyOCX();

Возвращаемое значение:

	Не используется
Примечание:

1. При обработке этого события библиотека должна отписаться от событий элемента управления OCX,если она на них подписывалась в событии CreateOCX.

2. Индекс события задан в перечислении событий пользовательского элемента управления ksPropertyUserControlNotifyEnum.


Интерфейс KsDocumentFileNotify
 ksDocumentFileNotify
IDocumentFileNotify

Интерфейс событий документа - работа с файлом.

ksDocumentFileNotify	- интерфейс Automation
IDocumentFileNotify	- интерфейс COM
Позволяют контролировать состояние документа.

События...

Методы...

Для API интерфейсов версии 7 в Automation источником событий для подписки являются объекты:- IKompasDocument

В СOM источником для подписки является указатель на документ.


KsDocumentFileNotify::events
ksDocumentFileNotify
события

Activate

BeginCloseDocument

BeginSaveAsDocument

BeginSaveDocument

CloseDocument

Deactivate

DocumentFrameOpen

ProcessActivate

ProcessDeactivate

SaveDocument


ksDocumentFileNotify::DocumentFrameOpen

Окно документа открылось.

Синтаксис Automation:

BOOL DocumentFrameOpen (LPDISPATCH v);

Синтаксис COM:

BOOL DocumentFrameOpen (LPUNKNOWN v);

Входные параметры:

v	- указатель на интерфейс IDocumentFrame открытого окна документа.
Возвращаемое значение:

	не используется.
Примечание:

1. Индекс события задан в перечислении событий ksDocumentFileNotifyEnum.


ksDocumentFileNotify::ProcessActivate

Процесс активизирован

Синтаксис Automation:

BOOL ProcessActivate (long Id);

Синтаксис COM:

BOOL ProcessActivate (long Id);

Входные параметры:

Id	- идентификатор активизируемого процесса из перечисления Типы процессов в КОМПАС 3D ProcessTypeEnum.
Возвращаемое значение:

	Не используется.
Примечание:

Индекс события задан в перечислении событий окна документа ksDocumentFileNotifyEnum.


ksDocumentFileNotify::ProcessDeactivate

Процесс деактивизирован.

Синтаксис Automation:

BOOL ProcessDeactivate (long Id);

Синтаксис COM:

BOOL ProcessDeactivate (long Id);

Входные параметры:

Id	Идентификатор деактивизируемого процесса из перечисления Типы процессов в КОМПАС 3D ProcessTypeEnum.
х,у

- координаты в экранных пикселях.

Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий ksDocumentFileNotifyEnum*


Интерфейс IPropertySpinEdit
IPropertySpinEdit

Интерфейс элемента управления Панели свойств типа "Поле ввода со счетчиком".

Иерархия:

Свойства...

Методы...

Примечание:

1. Данный интерфейс можно получить через коллекцию элементов управления Панели свойств IPropertyControls.

2. При нажатии на кнопку счетчика вызывается событие IPropertyManagerNotify::ControlCommand.

3. При изменении значения параметра вызывается событие IPropertyManagerNotify::ChangeControlValue.


IPropertySpinEdit::props
IPropertySpinEdit
свойства

CheckState

MaxValue

MinValue

ReadOnly

Width

WithCheck


IPropertySpinEdit::methods
IPropertySpinEdit
методы

SetValueRange


IPropertySpinEdit::MinValue

Минимальное значение.

Тип данных - VARIANT

Синтаксис Automation:

MinValue = iObject.MinValue	Получить свойство (*)
MinValue = iObject.GetMinValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MinValue (&MinValue)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. Тип данных определяется типом элемента управления:

- для типа ksControlSpinInt из ControlTypeEnum используется тип long,

- для типа ksControlSpinReal из ControlTypeEnum используется тип double.


IPropertySpinEdit::MaxValue

Максимальное значение.

Тип данных - VARIANT

Синтаксис Automation:

MaxValue = iObject.MaxValue	Получить свойство (*)
MaxValue = iObject.GetMaxValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MaxValue (&MaxValue)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. Тип данных определяется типом элемента управления:

- для типа ksControlSpinInt из ControlTypeEnum используется тип long,

- для типа ksControlSpinReal из ControlTypeEnum используется тип double.


IPropertySpinEdit::WithCheck

Наличие опции рядом с полем ввода.

Тип данных - BOOL

Синтаксис Automation:

WithCheck = iObject.WithCheck	Получить свойство (*)
iObject.WithCheck = WithCheck	Установить свойство (*)
WithCheck = iObject.GetWithCheck()	Получить свойство (**)
iObject.SetWithCheck (WithCheck)	Установить свойство (**)
Синтаксис COM:

iObject->get_WithCheck (&WithCheck)	Получить свойство
iObject->put_WithCheck (WithCheck)	Установить свойство
Значение свойства:

TRUE	- рядом с элементом управления выводится опция,
FALSE	- рядом с элементом управления не выводится опция.


IPropertySpinEdit::CheckState

Состояние опции.

Тип данных - состояние опции из перечисления CheckStateEnum.

Синтаксис Automation:

CheckState = iObject.CheckState	Получить свойство (*)
iObject.CheckState = CheckState	Установить свойство (*)
CheckState = iObject.GetCheckState()	Получить свойство (**)
iObject.SetCheckState (CheckState)	Установить свойство (**)
Синтаксис COM:

iObject->get_CheckState (&CheckState)	Получить свойство
iObject->put_CheckState (CheckState)	Установить свойство
Примечание:

Это свойство используется если свойство WithCheck имеет значение TRUE.


IPropertySpinEdit::readOnly
IPropertyList::ReadOnly

Запрет редактирования значения.

Тип данных - BOOL.

Синтаксис Automation:

ReadOnly = iObject.ReadOnly	Получить свойство (*)
iObject.ReadOnly = ReadOnly	Установить свойство (*)
ReadOnly = iObject.GetReadOnly()	Получить свойство (**)
iObject.SetReadOnly (ReadOnly)	Установить свойство (**)
Синтаксис COM:

iObject->get_ReadOnly (&ReadOnly)	Получить свойство
iObject->put_ReadOnly (ReadOnly)	Установить свойство
Значение свойства:

TRUE	-  ввод нового значения с клавиатуры в поле запрещен,
FALSE	-  ввод нового значения с клавиатуры в раскрывающийся список разрешен.


IPropertySpinEdit::width
IPropertyList::Width

Шаблон для расчета ширины элемента управления в горизонтальном положении (в символах).

Тип данных - long.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значение свойства:

Количество видимых символов в поле при горизонтальном положении Панели свойств.
Примечание:

Для расчета ширины элемента управления используется символ "0".


IPropertySpinEdit::SetValueRange

Установить новые ограничения на значение.

Синтаксис Automation:

BOOL SetValueRange (const VARIANT& minVal, const VARIANT& maxVal);

Синтаксис COM:

HRESULT SetValueRange ([in] VARIANT minVal,
[in] VARIANT maxVal,
[out, retval] VARIANT_BOOL * pVal);

Входные параметры:

minVal	- минимальное значение,
maxVal	- максимальное значение.
Примечание:

Тип данных максимального и минимального допустимого значения определяется типом элемента управления:

- для типа ksControlSpinInt из ControlTypeEnum используется тип long,

- для типа ksControlSpinReal из ControlTypeEnum используется тип double.


Интерфейс IPropertyTextButton
IPropertyTextButton

Интерфейс элемента управления Панели свойств типа "Кнопка с текстом".

Иерархия:

Примечание:

1. Данный интерфейс можно получить через коллекцию элементов управления Панели свойств IPropertyControls.

2. При нажатии на кнопку вызывается событие IPropertyManagerNotify::ControlCommand.

3. Элемент управления работает как обычная кнопка со стилем BS_PUSHBUTTON.


Интерфейс IPropertyGrid
IPropertyGrid

Интерфейс элемента управления Панели свойств типа "Сетка".

Иерархия:

Свойства...

Методы...

Примечание:

1. Данный интерфейс можно получить через коллекцию элементов управления Панели свойств IPropertyControls.

2. После создания элемента управления  и вывода его на экран все изменения вносимые с помощью свойств и методов данного интерфейса вступят в силу только после вызова метода UpdateParam.


IPropertyGrid::props
IPropertyGrid
свойства

AutoSizeColumns

CellFormat

CellText

ColumnCount

ColumnWidth

FixedColumnCount

FixedRowCount

Height

ReadOnly

RowCount

RowHeight

Width


IPropertyGrid::methods
IPropertyGrid
методы

UpdateParam


IPropertyGrid::ColumnCount

Количество колонок.

Тип данных - long.

Синтаксис Automation:

ColumnCount = iObject.ColumnCount	Получить свойство (*)
iObject.ColumnCount = ColumnCount	Установить свойство (*)
ColumnCount = iObject.GetColumnCount()	Получить свойство (**)
iObject.SetColumnCount (ColumnCount)	Установить свойство (**)
Синтаксис COM:

iObject->get_ColumnCount (&ColumnCount)	Получить свойство
iObject->put_ColumnCount (ColumnCount)	Установить свойство
Значение свойства:

Общее количество колонок в сетке.


IPropertyGrid::RowCount

Количество строк.

Тип данных - long.

Синтаксис Automation:

RowCount = iObject.RowCount	Получить свойство (*)
iObject.RowCount = RowCount	Установить свойство (*)
RowCount = iObject.GetRowCount()	Получить свойство (**)
iObject.SetRowCount (RowCount)	Установить свойство (**)
Синтаксис COM:

iObject->get_RowCount (&RowCount)	Получить свойство
iObject->put_RowCount (RowCount)	Установить свойство
Значение свойства:

Общее количество строк в сетке.


IPropertyGrid::FixedColumnCount

Количество фиксированных колонок.

Тип данных - long.

Синтаксис Automation:

FixedColumnCount = iObject.FixedColumnCount	Получить свойство (*)
iObject.FixedColumnCount = FixedColumnCount	Установить свойство (*)
FixedColumnCount = iObject.GetFixedColumnCount()	Получить свойство (**)
iObject.SetFixedColumnCount (FixedColumnCount)	Установить свойство (**)
Синтаксис COM:

iObject->get_FixedColumnCount (&FixedColumnCount)	Получить свойство
iObject->put_FixedColumnCount (FixedColumnCount)	Установить свойство
Значение свойства:

Количество фиксированных колонок в сетке.


IPropertyGrid::FixedRowCount

Количество фиксированных строк.

Тип данных - long.

Синтаксис Automation:

FixedRowCount = iObject.FixedRowCount	Получить свойство (*)
iObject.FixedColumnCount = FixedColumnCount	Установить свойство (*)
FixedColumnCount = iObject.GetFixedColumnCount()	Получить свойство (**)
iObject.SetFixedColumnCount (FixedColumnCount)	Установить свойство (**)
Синтаксис COM:

iObject->get_FixedColumnCount (&FixedColumnCount)	Получить свойство
iObject->put_FixedColumnCount (FixedColumnCount)	Установить свойство
Значение свойства:

Количество фиксированных колонок в сетке.


IPropertyGrid::ColumnWidth

Ширина колонки.

Тип данных - long.

Синтаксис Automation:

ColumnWidth = iObject.ColumnWidth (index)	Получить свойство (*)
iObject.ColumnWidth (index) = ColumnWidth	Установить свойство (*)
ColumnWidth = iObject.GetColumnWidth (index)	Получить свойство (**)
iObject.SetColumnWidth (index, ColumnWidth)	Установить свойство (**)
Синтаксис COM:

iObject->get_ColumnWidth (index, &ColumnWidth)	Получить свойство
iObject->put_ColumnWidth (index, ColumnWidth)	Установить свойство
Входные параметры:

index	- индекс колонки.
Значение свойства:

Ширина колонкис индексом index в сетке (в пикселах).


IPropertyGrid::RowHeight

Высота строки.

Тип данных - long.

Синтаксис Automation:

RowHeight = iObject.RowHeight (index)	Получить свойство (*)
iObject.RowHeight (index) = RowHeight	Установить свойство (*)
RowHeight = iObject.GetRowHeight (index)	Получить свойство (**)
iObject.SetRowHeight (index, RowHeightr)	Установить свойство (**)
Синтаксис COM:

iObject->get_RowHeight (index, &RowHeight)	Получить свойство
iObject->put_RowHeight (index, RowHeight)	Установить свойство
Входные параметры:

index	- индекс строки.
Значение свойства:

Высота строки с индексом index в сетке (в пикселах).


IPropertyGrid::CellText

Текст в ячейке.

Тип данных - строка

Синтаксис Automation:

cllText = iObject.CellText (nRow, nCol)	Получить свойство (*)
iObject.CellText (nRow, nCol ) = CellText	Установить свойство (*)
CellText = iObject.GetCellText (nRow, nCol)	Получить свойство (**)
iObject.SetCellText (nRow, nCol, CellText)	Установить свойство (**)
Синтаксис COM:

iObject->get_CellText (nRow, nCol, &CellText)	Получить свойство
iObject->put_CellText (nRow, nCol, CellText)	Установить свойство
Входные параметры:

nRow (long)	- индекс строки,
nCol (long)	- индекс колонки.
Значение свойства:

Текст в ячейке.
Примечание:

Позволяет получить/установить текст в ячейке.


IPropertyGrid::CellFormat

Формат вывода текста в ячейке.

Тип данных - long

Синтаксис Automation:

CellFormat = iObject.CellFormat (nRow, nCol)	Получить свойство (*)
iObject.CellFormat (nRow, nCol) = CellFormat	Установить свойство (*)
CellFormat = iObject.GetCellFormat (nRow, nCol)	Получить свойство (**)
iObject.SetCellFormat (nRow, nCol, cCellFormat)	Установить свойство (**)
Синтаксис COM:

iObject->get_CellFormat (nRow, nCol, &CellFormat)	Получить свойство
iObject->put_CellFormat (nRow, nCol, CellFormat)	Установить свойство
Входные параметры:

nRow (long)	- индекс строки,
nCol (long)	- индекс колонки.
Значение свойства:

формат вывода текста в ячейке.
Примечание:

Формат вывода текста в ячейке задается стандартными значениями, используемыми в методе DrawText ОС Windows.


IPropertyGrid::Width

Ширина элемента управления.

Тип данных - long

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значение свойства:

Ширина видимой части элемента управления (в пикселах).


IPropertyGrid::Height

Высота элемента управления.

Тип данных - long

Синтаксис Automation:

Height = iObject.Height	Получить свойство (*)
iObject.Height = Height	Установить свойство (*)
Height = iObject.GetHeight()	Получить свойство (**)
iObject.SetHeight (Height)	Установить свойство (**)
Синтаксис COM:

iObject->get_Height (&Height)	Получить свойство
iObject->put_Height (Height)	Установить свойство
Значение свойства:

Высота видимой части элемента управления (в пикселах).


IPropertyGrid::ReadOnly

Запрет редактирования таблицы.

Тип данных - BOOL

Синтаксис Automation:

ReadOnly = iObject.ReadOnly	Получить свойство (*)
iObject.ReadOnly = ReadOnly	Установить свойство (*)
ReadOnly = iObject.GetReadOnly()	Получить свойство (**)
iObject.SetReadOnly (ReadOnly)	Установить свойство (**)
Синтаксис COM:

iObject->get_ReadOnly (&ReadOnly)	Получить свойство
iObject->put_ReadOnly (ReadOnly)	Установить свойство
Значение свойства:

TRUE	- редактирование ячеек запрещено,
FALSE	- не реализовано.
Примечание:

Временно сетка работает только в режиме "Только для чтения"; редактирование ее ячеек запрещено.


IPropertyGrid::AutoSizeColumns

Авторазмер колонок.

Тип данных - BOOL

Синтаксис Automation:

AutoSizeColumns = iObject.AutoSizeColumns	Получить свойство (*)
iObject.AutoSizeColumns = AutoSizeColumns	Установить свойство (*)
AutoSizeColumns = iObject.GetAutoSizeColumns()	Получить свойство (**)
iObject.SetAutoSizeColumns (AutoSizeColumns)	Установить свойство (**)
Синтаксис COM:

iObject->get_AutoSizeColumns (&AutoSizeColumns)	Получить свойство
iObject->put_AutoSizeColumns (AutoSizeColumns)	Установить свойство
Значение свойства:

TRUE	- расчет размера колонок от ширины элемента управления,
FALSE	- фиксированный размер колонок.
Примечание:

Ширина колонки определяется путем деления всей ширины элемента управления на количество колонок.


IPropertyGrid::UpdateParam

Обновить параметры сетки.

Синтаксис Automation:

void UpdateParam();

Синтаксис COM:

HRESULT UpdateParam();

Примечание:

Все изменения в сетке вступят в силу только после вызова этого метода.


Интерфейс IPropertySlideBox
IPropertySlideBox

Интерфейс элемента управления Панели свойств типа "Окно отображения слайда, растрового изображения, файла документа КОМПАС или группы файлов".

Иерархия:

Свойства...

Методы...

Примечание:

1. Данный интерфейс можно получить через коллекцию элементов управления Панели свойств IPropertyControls.

2. После создания элемента управления и вывода его на экран все изменения, вносимые с помощью свойств и методов данного интерфейса, вступят в силу только после вызова метода UpdateParam.

3. Для обновления изображения в окне, например после изменения геометрии в отображаемом документе, можно использовать метод UpdateParam.


IPropertySlideBox::props
IPropertySlideBox
свойства

CheckBoxVisibility

DrawingSlide

Height

ResModule

SlideType

Width


IPropertySlideBox::methods
IPropertySlideBox
методы

UpdateParam


IPropertySlideBox::ResModule

Модуль с ресурсами.

Тип данных - VARIANT (long или BSTR).

Синтаксис Automation:

ResModule = iObject.ResModule	Получить свойство (*)
iObject.ResModule = ResModule	Установить свойство (*)
ResModule = iObject.GetResModule()	Получить свойство (**)
iObject.SetResModule (ResModule)	Установить свойство (**)
Синтаксис COM:

iObject->get_ResModule (&ResModule)	Получить свойство
iObject->put_ResModule (ResModule)	Установить свойство
Значение свойства:

HINSTANCE (тип значения long) или полный путь к файлу (тип значения BSTR) dll модуля в котором находятся все необходимые ресурсы.

Примечание:

Данное свойство позволяет установить или получить dll-модуль с которого будут доставаться значки или слайды для отображения в окне.


IPropertySlideBox::DrawingSlide

Отображаемый слайд.

Тип данных - VARIANT (long или BSTR).

Синтаксис Automation:

DrawingSlide = iObject.DrawingSlide	Получить свойство (*)
iObject.DrawingSlide = DrawingSlide	Установить свойство (*)
DrawingSlide = iObject.GetDrawingSlide()	Получить свойство (**)
iObject.SetDrawingSlide (DrawingSlide)	Установить свойство (**)
Синтаксис COM:

iObject->get_DrawingSlide (&DrawingSlide)	Получить свойство
iObject->put_DrawingSlide (DrawingSlide)	Установить свойство
Значение свойства:

Идентификатор или указатель на группу, документ (тип значения long), или полный путь к файлу (тип значения BSTR) документа или текстового файла с описанием слайда.

Примечание:

Тип отображаемого объекта определяется свойством SlideType.


IPropertySlideBox::Width

Ширина элемента управления.

Тип данных - long.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значение свойства:

Ширина элемента управления (в пикселах).


IPropertySlideBox::Height

Высота элемента управления.

Тип данных - long.

Синтаксис Automation:

Height = iObject.Height	Получить свойство (*)
iObject.Height = Height	Установить свойство (*)
Height = iObject.GetHeight()	Получить свойство (**)
iObject.SetHeight (Height)	Установить свойство (**)
Синтаксис COM:

iObject->get_Height (&Height)	Получить свойство
iObject->put_Height (Height)	Установить свойство
Значение свойства:

Высота элемента управления (в пикселах).


IPropertySlideBox::SlideType

Тип отображения.

Тип данных - тип отображения из перечисления SlideTypeEnum.

Синтаксис Automation:

SlideType = iObject.SlideType	Получить свойство (*)
iObject.SlideType = SlideType	Установить свойство (*)
SlideType = iObject.GetSlideType()	Получить свойство (**)
iObject.SetSlideType (SlideType)	Установить свойство (**)
Синтаксис COM:

iObject->get_SlideType (&SlideType)	Получить свойство
iObject->put_SlideType (SlideType)	Установить свойство
Примечание:

Свойство позволяет определить тип отображаемого значения.


IPropertySlideBox::сheckBoxVisibility
IPropertySlideBox::CheckBoxVisibility

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

Тип данных - тип отображения из перечисления BOOL.

Синтаксис Automation:

CheckBoxVisibility = iObject.CheckBoxVisibility	Получить свойство (*)
iObject.CheckBoxVisibility = CheckBoxVisibility	Установить свойство (*)
CheckBoxVisibility = iObject.GetCheckBoxVisibility()	Получить свойство (**)
iObject.SetCheckBoxVisibility (CheckBoxVisibility)	Установить свойство (**)
Синтаксис COM:

iObject->get_CheckBoxVisibility (&CheckBoxVisibility)	Получить свойство
iObject->put_CheckBoxVisibility (CheckBoxVisibility)	Установить свойство
Возвращаемое значение:

TRUE	- опция отображается под слайдом,
FALSE	- опция не отображается.
Примечание:

Свойство позволяет определить тип отображаемого значения.


IPropertySlideBox::UpdateParam

Обновить параметры окна отображения слайда.

Синтаксис Automation:

void UpdateParam();

Синтаксис COM:

HRESULT UpdateParam();

Примечание:

1. Все изменения в окне отображения слайда вступят в силу только после вызова этого метода.

2. Этот метод можно использовать для обновления изображения в окне.


Интерфейсы ksMacro3DDefinition, IMacro3DDefinition
ksMacro3DDefinition,
IMacro3DDefinition

Интерфейс макрообъекта документа-модели.

ksMacro3DDefinition	- интерфейс Automation
IMacro3DDefinition	- интерфейс COM
Описание:

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

Последовательность создания макрообъектов через API.

Создание макрообъекта с последующим добавлением объектов в его состав.

1. Создание пустого макрообъекта:

 а). Создание у компонента макрообъекта (ksPart::NewEntity соответствующего типа).

 б). Установка свойств макрообъекта (Видимость состава staffVisible).

 в). Создание макро в модели ksEntity::Create.

 г). Установка пользовательских параметров SetUserParam.

2. Добавление существующих объектов в создаваемый макрообъект:

 а). Добавление объектов в коллекцию объектов, входящих в макро ksFeatureCollection; при этом в модели ничего не происходит.

 б). Обновление макрообъекта ksEntity::Update; все новые объекты будут перенесены в макро в модели, у самих объектов тоже будут вызваны методы Update,

3. Создание новых объектов и добавление в макро:

 а). Создание нового объекта (NewEntity).

 б). Задание свойств нового объекта.

 в). Добавление объекта в коллекцию объектов, входящих в макро; при этом в модели ничего не происходит.

 г). Обновление макро ksEntity::Update - все новые, не созданные объекты, создадутся; у них вызовется ksEntity::Create.

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

 а). Создание у компонента макрообъекта (NewEntity соответствующего типа).

 б). Задание свойств макрообъекта.

 в). Создание при необходимости новых объектов (NewEntity) и задание их свойства (Create не вызывать), иначе переход к следующему пункту,

 г). Добавление объектов в коллекцию объектов, входящих в макро; в модели ничего не происходит,

 д). Создание макро в модели (ksEntity::Create) - все новые объекты создадутся, у них вызовется метод ksEntity::Create. Существующие объекты будут обновленыу них вызовется метод ksEntity::Update.

Свойства...

Методы...


ksMacro3DDefinition::props
ksMacro3DDefinition
свойства

staffVisible


ksMacro3DDefinition::methods
ksMacro3DDefinition
методы

Add

Destroy

FeatureCollection

GetUserLibraryCommand

GetUserLibraryFileName

GetUserLibraryName

GetUserParam

GetUserParamSize

SetUserParam


ksMacro3DDefinition::staffVisible
Macro3DDefinition::StaffVisible
IMacro3DDefinition::StaffVisible

Управление видимостью состава.

Тип данных - BOOL.

Синтаксис Automation:

staffVisible = iObject.StaffVisible	Получить свойство (*)
iObject.StaffVisible = staffVisible	Установить свойство (*)
staffVisible = iObject.GetStaffVisible()	Получить свойство (**)
iObject.SetStaffVisible (staffVisible)	Установить свойство (**)
Синтаксис COM:

staffVisible = iObject->GetStaffVisible()	Получить свойство
iObject->SetStaffVisible (&StaffVisible)	Установить свойство
Значение свойства:

TRUE	- состав объекта можно посмотреть в Дереве построения,
FALSE	- состав недоступен для просмотра.
Примечание:

Свойство позволяет управлять видимостью состава макрообъекта.


ksMacro3DDefinition::FeatureCollection
IMacro3DDefinition::FeatureCollection

Получить массив объектов, входящих в макрообъект.

Синтаксис Automation:

LPDISPATCH FeatureCollection();

Синтаксис COM:

LPFEATURECOLLECTION FeatureCollection();

Возвращаемое значение:

	указатель на интерфейс ksFeatureCollection или IFeatureCollection
Примечание:

1. Через данную коллекцию можно добавлять только уже созданные объекты. Добавление новых (несозданных) объектов осуществляется при помощи метода ksMacro3DDefinition::Add.

2. Метод ksFeatureCollection::Refresh наполняет содержимое коллекции объектами входящими в макрообъект. Все изменения, сделанные в коллекции, после вызова этого метода будут потеряны.

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


ksMacro3DDefinition::Destroy
IMacro3DDefinition::Destroy

Разрушить макрообъект.

Синтаксис Automation:

BOOL Destroy();

Синтаксис COM:

BOOL Destroy();

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После вызова этого метода макрообъект будет разрушен, а все объекты, входивщие в его состав, станут самостоятельными.


ksMacro3DDefinition::Add
IMacro3DDefinition::Add

Добавить объект в состав макрообъекта.

Синтаксис Automation:

BOOL Add (LPDISPATCH obj);

Синтаксис COM:

BOOL Add (LPUNKNOWN obj);

Входные параметры:

obj	- указатель на интерфейс объекта, добавляемого в макрообъект.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

1. В качестве входного параметра могут быть переданы следующие интерфейсы:

- ksFeature,

- ksEntity,

- ksPart,

- ksMateConstraint.

2. Если объект еще не создан в модели, то он создастся после вызова методов ksEntity::Create или ksEntity::Update макрообъекта. Для существовавщих объектов в этом случае будет вызван метод ksEntity::Update.

3. Добавляемый объект должен принадлежать тому же компоненту что и сам макрообъект. Он не должен принадлежать другому макрообъекту.


ksMacro3DDefinition::SetUserParam
IMacro3DDefinition::SetUserParam

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

Синтаксис Automation:

BOOL SetUserParam (LPDISPATCH userPars);

Входные параметры:

userPars	- указатель на интерфейс пользовательских параметров ksUserParam.
Синтаксис COM:

BOOL SetUserParam (void *value,
unsigned int size,
LPOLESTR nameFile,
LPOLESTR nameLib,
int number );

Входные параметры:

value	- указатель на пользовательскую структуру параметров,
size	- размер структуры параметров,
nameFile	- имя файла прикладной библиотеки для последующего редактирования через библиотеку (0 - запоминается текущая библиотека),
nameLib	- имя прикладной библиотеки для последующего редактирования через библиотеку (0 - запоминается текущая библиотека),
number	- номер команды в прикладной библиотеке для последующего редактирования через библиотеку (-1 - запоминается текущая команда).
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечания:

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


ksMacro3DDefinition::GetUserParam
IMacro3DDefinition::GetUserParam

Получить параметры пользователя.

Синтаксис Automation:

BOOL GetUserParam (LPDISPATCH userPars);

Выходные параметры:

userPars	- указатель на интерфейс пользовательских параметров ksUserParam.
Синтаксис COM:

BOOL GetUserParam (void *value,
unsigned int size);

Входные параметры:

value	- указатель на пользовательскую структуру параметров,
size	- размер структуры параметров,
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


ksMacro3DDefinition::GetUserParamSize
IMacro3DDefinition::GetUserParamSize

Получить размер структуры параметров пользователя, хранимых в макрообъекте.

Синтаксис Automation:

long GetUserParamSize();

Синтаксис COM:

long GetUserParamSize();

Возвращаемое значение:

	Размер структуры параметров пользователя, хранимых в макрообъекте в байтах.


ksMacro3DDefinition::GetUserLibraryFileName
IMacro3DDefinition::GetUserLibraryFileName

Получить имя файла пользовательской библиотеки, при помощи которой можно редактировать макрообъект.

Аналог данного метода при использовании Automation - ksUserParam::fileName. Пример.

Синтаксис COM:

LPOLESTR GetUserLibraryFileName();

Возвращаемое значение:

Имя файла пользовательской библиотеки	- в случае успешного завершения,
NULL	- если имя файла библиотеки не задано.


ksMacro3DDefinition::GetUserLibraryName
IMacro3DDefinition::GetUserLibraryName

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

Аналог данного метода при использовании Automation - ksUserParam::libName. Пример.

Синтаксис COM:

LPOLESTR GetUserLibraryName();

Возвращаемое значение:

Имя пользовательской библиотеки	- в случае успешного завершения,
NULL	- если имя библиотеки не задано.


ksMacro3DDefinition::GetUserLibraryCommand
IMacro3DDefinition::GetUserLibraryCommand

Получить номер команды пользовательской библиотеки, при помощи которой можно редактировать макрообъект.

Аналог данного метода при использовании Automation - ksUserParam::number. Пример.

Синтаксис COM:

long GetUserLibraryCommand();

Возвращаемое значение:

Номер библиотечной команды	- в случае успешного завершения,
-1	- если библиотеки нет.


Интерфейс IPropertyManagerNotify
 ksPropertyManagerNotify
IPropertyManagerNotify

Интерфейс событий Панели свойств или процессных параметров.

ksPropertyManagerNotify	- интерфейс Automation
IPropertyManagerNotify	- интерфейс COM
Позволяют контролировать состояние Панели свойств.

Источником событий для подписки на данный интерфейс являются объекты:

- IPropertyManager - Интерфейс панели свойств.

- IProcessParam - Интерфейс параметров процесса.

События...

Методы...


IPropertyManagerNotify::events
IPropertyManagerNotify
события

ButtonClick

ButtonUpdate

ChangeControlValue

CommandHelp

ControlCommand

ProcessActivate

ProcessDeactivate


IPropertyManagerNotify::ButtonClick

Нажата кнопка спецпанели.

Синтаксис Automation:

BOOL ButtonClick( long buttonID );

Синтаксис COM:

BOOL ButtonClick( long buttonID );

Входные параметры:

buttonID	- идентификатор нажатой кнопки.
Возвращаемое значение:

Для кнопки Справка (pbHelp)	- TRUE - выводить стандартную справку КОМПАС, - FALSE - справку не выводить.
Для остальных	не используется.
Примечание:

Индекс события задан в перечислении событий Панели свойств ksPropertyManagerNotifyEnum.


IPropertyManagerNotify::ChangeControlValue

Измененено значения элемента управления.

Синтаксис Automation:

BOOL ChangeControlValue (IPropertyControl * сontrol);

Синтаксис COM:

BOOL ChangeControlValue (IUnknown* сontrol);

Входные параметры:

сontrol	- указатель на интерфейс элемента панели свойств IPropertyControl
Возвращаемое значение:

	Не используется.
Примечание:

Индекс события задан в перечислении событий Панели свойств ksPropertyManagerNotifyEnum.


IPropertyManagerNotify::ControlCommand

Нажата кнопка элемента управления.

Синтаксис Automation:

BOOL ControlCommand (IPropertyControl * сontrol);

Синтаксис COM:

BOOL ControlCommand (IUnknown* сontrol);

Входные параметры:

сontrol	- указатель на интерфейс элемента панели свойств IPropertyControl
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий Панели свойств ksPropertyManagerNotifyEnum.


IPropertyManagerNotify::ButtonUpdate

Задано состояние кнопки спецпанели.

Синтаксис Automation:

BOOL ButtonUpdate (long buttonID, long *check, BOOL * enable);

Синтаксис COM:

BOOL ButtonUpdate (long buttonID, long *check, boolean * enable);

Входные параметры:

buttonID	- идентификатор кнопки,
check	- состояние кнопки (нажата/отжата),
enable	- доступность кнопки (доступна/недоступна).
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий Панели свойств ksPropertyManagerNotifyEnum.


IPropertyManagerNotify::ProcessActivate

Процесс активизирован.

Синтаксис Automation:

BOOL ProcessActivate();

Синтаксис COM:

BOOL ProcessActivate();

Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий Панели свойств ksPropertyManagerNotifyEnum.


IPropertyManagerNotify::ProcessDeactivate

Процесс деактивирован.

Синтаксис Automation:

BOOL ProcessDeactivate();

Синтаксис COM:

BOOL ProcessDeactivate();

Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий Панели свойств ksPropertyManagerNotifyEnum.


IPropertyManagerNotify::CommandHelp

Вызвана справка.

Синтаксис Automation:

BOOL CommandHelp (long ID);

Синтаксис COM:

BOOL CommandHelp (long ID);

Входные параметры:

ID	- идентификатор элемента Панели свойств, для которого вызывается справка.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий Панели свойств ksPropertyManagerNotifyEnum.


Общие сведения об KGAX
KGAX

ActiveX компонент.

KGAX - ActiveX компонент предназначен для использования во внешнем приложении и позволяет открывать и работать с документами системы КОМПАС в диалоге пользователя. При работе с документами, открытыми в ActiveX компоненте, доступно использование API интерфейсов системы КОМПАС. Кроме того для работы с KGAX разработаны интерфейсы этого элемента управления.

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

1) Зарегистрировать библиотеку типов интерфейсов КОМПАС, вызвав команду

regtlib <\kAPI5.tlb>, где <\\kAPI5.tlb> - полный путь к файлу kAPI5.tlb.

2) Зарегистрировать ActiveX библиотеку библиотеку KGAX.ocx, вызвав команду

regsvr32 <\KGAX.ocx>, где <\KGAX.ocx> - полный путь к файлу KGAX.ocx.

Для разработки приложений с использованием KGAX его необходимо зарегистрировать в среде разработки.


Предопределенные типы документов.
KDocumentType

Предопределенные типы документов.

vt_SheetStandart	1	Чертеж. Стандартный формат.
vt_SheetUser	2	Чертеж. Пользовательский формат.
vt_Fragment	3	Фрагмент.
vt_Spc	4	Спецификация.
vt_3DPart	5	Модель.
vt_3DAssembly	6	Сборка
vt_TextStandart	7	Текстовый документ. Стандартный формат
vt_TextUser	8	Текстовый документ. Пользовательский формат
vt_SpcUser	9	Спецификация. Пользовательский формат.


KZoomType - Способы масштабирования окна документа
KZoomType

Способы масштабирования окна документа.

vt_ZoomWindow	1	Масштабировать окном. (Запускается процесс масштабирования окном).
vt_ZoomIn	2	Увеличить масштаб.
vt_ZoomOut	3	Уменьшить масштаб.
vt_ZoomSelected	4	Показать полностью выделенные объекты.
vt_ZoomEntureDocument	5	Показать весь документ.
vt_Refresh	6	Обновить изображение.


KDocument3DDrawMode - Режимы отображения документа-модели.
KDocument3DDrawMode

Режимы отображения документа-модели.

vt_WireframeMode	0	Каркас.
vt_HiddenRemovedMode	1	Без невидимых линий.
vt_HiddenThinMode	2	Невидимые линии тонкие.
vt_ShadedMode	3	Полутоновое.


KLibManagerMode - Режимы установки текущего менеджера библиотек.
KLibManagerMode

Режимы установки текущего менеджера библиотек.

vt_MainLibManager	-1	Менеджер библиотек главного окна.
vt_Default	0	Отключить использование текущего менеджера библиотек.
vt_CurrentLibManager	1	Менеджер библиотек текущей OLE вставки.


Интерфейс _DKGAX
_DKGAX

Dispatch интерфейс для элемента KGAX.

Свойства...

Методы...

События...


Интерфейс _DKGAX: Свойства
Интерфейс _DKGAX
свойства

Caption

DocumenFileName

Document3DDrawMode

Document3DWireframeShadedMode

DocumentType

Text


Интерфейс _DKGAX: Методы
Интерфейс _DKGAX
методы

ActivateDocumentByIndex

AddNewDocument

AddNewEmptyDocument

DrawToDC

GetActiveDocumentIndex

GetDocumentByIndex

GetKompasObject

InvalidateActiveDocument

MoveViewDocument

OrientationDocument

PanoramaViewDocument

RemoveDocumentByIndex

RotateViewDocument

SetCurrentLibManager

StopCurrentProcess

ZoomEntireDocument

ZoomWindow


_DKGAX::Caption
_DKGAX::Caption	Пример...

Заголовок.

Тип данных - BSTR.

Синтаксис:

BSTR Caption;


_DKGAX::Caption - Пример
_DKGAX::Caption - пример использования.

KGAX1.Caption = "Заголовок";	(*)
Caption = KGAX1.Caption;	(*)
KGAX1.SetCaption("Заголовок");	(**)
Caption = KGAX1.GetCaption();	(**)


_DKGAX::Text
_DKGAX::Text	Пример...

Текст.

Тип данных - BSTR.

Синтаксис:

BSTR Text;


_DKGAX::Text - Пример
_DKGAX::Text - пример использования.

KGAX1.Text = "Заголовок";	(*)
Text = KGAX1.Text;	(*)
KGAX1.SetText ("Заголовок");	(**)
Text = KGAX1.GetText();	(**)


_DKGAX::DocumentType
_DKGAX::DocumentType	Пример...

Тип документа для отображения.

Тип данных - KDocumentType.

Синтаксис:

KDocumentType DocumentType;

Примечание:

Свойство доступно на этапе разработки диалога. Если оно установлено, то при открытии диалога с KGAX в нем будет создан новый документ данного типа. Список возможных значений определен в KDocumentType.


_DKGAX::DocumentType - Пример
_DKGAX::DocumentType - пример использования.

KGAX1.DocumentType = vt_SheetStandart;	(*)
Type = KGAX1.DocumentType;	(*)
KGAX1.SetText (vt_SheetStandart);	(**)
Type = KGAX1.GetDocumentType();	(**)


_DKGAX::DocumenFileName
_DKGAX::DocumenFileName	Пример...

Имя файла документа для отображения.

Тип данных - BSTR.

Синтаксис:

BSTR DocumenFileName;

Примечание:

Свойство доступно на этапе разработки диалога. Если оно установлено, то при открытии диалога с KGAX в нем будет открыт документ с заданным именем.


_DKGAX::DocumenFileName - Пример
_DKGAX::DocumenFileName - пример использования.

KGAX1.DocumenFileName = "С:\\1.frw";	(*)
fileName = KGAX1.DocumenFileName;	(*)
KGAX1.SetDocumenFileName ("С:\\1.frw");	(**)
fileName = KGAX1.GetDocumenFileName();	(**)


_DKGAX::Document3DDrawMode
_DKGAX::Document3DDrawMode	Пример...

Режим отображения документа-модели.

Тип данных - KDocument3DDrawMode.

Синтаксис:

KDocument3DDrawMode Document3DDrawMode;

Примечание:

1. Свойство изменяет тип отображения текущего документа-модели, загруженного в KGAX.

2. Список возможных значений определен в KDocument3DDrawMode.

3. Свойство работает совместно с Document3DWireframeShadedMode.


_DKGAX::Document3DDrawMode - Пример
_DKGAX::Document3DDrawMode - пример использования.

KGAX1.DocumenFileName = "С:\\1.frw";	(*)
fileName = KGAX1.DocumenFileName;	(*)
KGAX1.SetDocumenFileName ("С:\\1.frw");	(**)
fileName = KGAX1.GetDocumenFileName();	(**)


_DKGAX::Document3DWireframeShadedMode
_DKGAX::Document3DWireframeShadedMode	Пример...

Признак отображения 3D документа (Полутоновое с каркасом).

Тип данных - VARIANT_BOOL.

Синтаксис:

VARIANT_BOOL Document3DWireframeShadedMode;

Примечание:

1. Свойство изменяет тип отображения текущего документа-модели, загруженного в KGAX.

2. Свойство работает совместно с Document3DDrawMode.

3. Если установлен режим Document3DDrawMode = vt_ShadedMode и Document3DWireframeShadedMode = TRUE, то документ-модель будет отображаться в режиме Полутоновое с каркасом.


_DKGAX::Document3DWireframeShadedMode - Пример
_DKGAX::Document3DWireframeShadedMode - пример использования.

KGAX1.Document3DWireframeShadedMode = TRUE;	(*)
Mode = KGAX1.Document3DWireframeShadedMode;	(*)
KGAX1.SetDocument3DWireframeShadedMode (TRUE);	(**)
KGAX1.GetDocument3DWireframeShadedMode();	(**)


_DKGAX::GetKompasObject

Получить интерфейс на API КОМПАС-3D.

Синтаксис:

KompasObject* GetKompasObject();

Примечание:

Метод позволяет получит доступ к API КОМПАС-3D, что позволяет работать как с документами, загруженными в KGAX, так и с документами, загруженными в КОМПАС.

_______________

Смотрите также:

PaintObject.


_DKGAX::ZoomEntireDocument

Получить интерфейс на API КОМПАС-3D.

Синтаксис:

void ZoomEntireDocument();


_DKGAX::MoveViewDocument

Сдвинуть изображение.

Синтаксис:

void MoveViewDocument();

Примечание:

Метод запускает процесс сдвига изображения текущего документа, открытого в KGAX.


_DKGAX::PanoramaViewDocument

Приблизить/отдалить изображение.

Синтаксис:

void PanoramaViewDocument();

Примечание:

Метод запускает процесс - Приблизить/отдалить изображение.


_DKGAX::RotateViewDocument

Повернуть изображение.

Синтаксис:

void RotateViewDocument();

Примечание:

Метод запускает процесс - Повернуть изображение.


_DKGAX::OrientationDocument

Ориентация изображения.

Синтаксис:

void OrientationDocument();

Примечание:

Метод вызывает диалог выбора ориентации текущего документа.


_DKGAX::StopCurrentProcess

Завершить текущий процесс.

Синтаксис:

void StopCurrentProcess ([in][defaultvalue(FALSE)] VARIANT_BOOL cancel);

Входные параметры:

cancel	- отмена.
Значения параметра:

FALSE	(по умолчанию) - принять изменения внесенные в процессе.
TRUE	- отменить изменения внесенные в процессе.
Примечание:

Метод позволяет прервать текущий процесс.


_DKGAX::AddNewDocument

Добавить новый документ.

Синтаксис:

long AddNewDocument ([in]BSTR fileName);

Входные параметры:

fileName	- полное имя файла документа КОМПАС.
Примечание:

Метод позволяет открыть документ с заданным именем в KGAX. Возвращает индекс в массиве документов, открытых в KGAX.


_DKGAX::AddNewEmptyDocument

Добавить новый документ.

Синтаксис:

long AddNewEmptyDocument ([in]KDocumentType docType);

Входные параметры:

docType	- тип нового документа из KDocumentType.
Примечание:

Метод создает новый документ заданного типа и открывает его в KGAX.


_DKGAX::RemoveDocumentByIndex

Закрыть документ с указанным индексом.

Синтаксис:

VARIANT_BOOL RemoveDocumentByIndex ([in]long index);

Входные параметры:

index	- индекс документа.
Примечание:

1. Перед закрытием документа должны быть освобождены все интерфейсы, захваченные на данном документе.

2. После применения метода индексы документов, открытых после данного документа, уменьшаются на 1.


_DKGAX::ActivateDocumentByIndex

Активизировать документ с указанным индексом.

Синтаксис:

VARIANT_BOOL ActivateDocumentByIndex ([in]long index);

Входные параметры:

index	- индекс документа.


_DKGAX::GetActiveDocumentIndex

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

Синтаксис:

long GetActiveDocumentIndex();

Возвращаемое значение:

	- индекс активного документа.


_DKGAX::InvalidateActiveDocument

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

Синтаксис:

VARIANT_BOOL InvalidateActiveDocument ([in]VARIANT_BOOL erase);

Входные параметры:

erase	Очистка фона
Значения параметра:

TRUE	- очищать фон,
FALSE	- не очищать фон.
Смотрите также:

CWnd::Invalidate.


_DKGAX::DrawToDC

Отрисовать документ на заданном HDC.

Синтаксис:

VARIANT_BOOL DrawToDC ([in]OLE_HANDLE dc, [in]long left, [in]long top, [in]long width, [in]long height);

Входные параметры:

dc	- OLE_HANDLE на котором необходимо отрисовать документ, например HDC принтера или окна.
left, top, width, height	- задают квадрат участка документа.


_DKGAX::ZoomWindow

Macштабировать окно документа.

Синтаксис:

void ZoomWindow ([in] [defaultvalue(vt_ZoomWindow)] KZoomType type);

Входные параметры:

type	- тип масштабирования из KZoomType. По умолчанию используется vt_ZoomWindow - Масштабировать окном.


_DKGAX::GetDocumentByIndex

Получить указатель на документ по индексу.

Синтаксис:

LPDISPATCH GetDocumentByIndex( [in]long index );

Входные параметры:

index	- индекс документа.
Возвращаемое значение:

index	Интерфейс активного документа открытого в KGAX: ksDocument2D, ksDocument3D, ksSpcDocument, ksDocumentTxt.


_DKGAX::SetCurrentLibManager

Установить текущий менеджер библиотек.

Синтаксис:

void SetCurrentLibManager ([in]KLibManagerMode mode);

Входные параметры:

mode	- режим установки текущего менеджера библиотек из KLibManagerMode:


_DKGAXEvents - События ActiveX объекта.
_DKGAXEvents
Интерфейс событий ActiveX компонента

События...


События ActiveX объекта (список)
События ActiveX объекта

OnKgAddGabarit

OnKgCreate

OnKgCreateGLList

OnKgMouseDblClick

OnKgMouseDown

OnKgMouseUp

OnKgPaint

OnKgStopCurrentProcess


_DKGAXEvents::OnKgMouseDown

Кнопка мыши нажата.

Синтаксис Automation:

void OnKgMouseDown ([in]short nButton,
[in]short nShiftState,
[in]long x,
[in]long y,
[out]VARIANT_BOOL* proceed);

Входные параметры:

nButton	- номер кнопки мыши,
nShiftState	- признак нажатия кнопки Shift,
x, y	- координаты мыши.
Выходные параметры:

proceed	- использовать ли стандартную обработку нажатия кнопки мыши.
Примечание:

Приложение может запретить обработку события системой КОМПАС. Для этого переменной proceed нужно присвоить значение FALSE.


_DKGAXEvents::OnKgMouseUp

Кнопка мыши отпущена.

Синтаксис Automation:

void OnKgMouseUp ([in]short nButton,
[in]short nShiftState,
[in]long x, [in]long y,
[out]VARIANT_BOOL* proceed );

Входные параметры:

nButton	- номер кнопки мыши,
nShiftState	- признак нажатия кнопки Shift,
x, y	- координаты мыши.
Выходные параметры:

proceed	- использовать ли стандартную обработку нажатия кнопки мыши.
Примечание:

Приложение может запретить обработку события системой КОМПАС. Для этого переменной proceed нужно присвоить значение FALSE.


_DKGAXEvents::OnKgMouseDblClick

Двойной щелчок мышью.

Синтаксис Automation:

void OnKgMouseDblClick ([in]short nButton,
[in]short nShiftState,
[in]long x, [in]long y,
[out]VARIANT_BOOL* proceed );

Входные параметры:

nButton	- номер кнопки мыши,
nShiftState	- признак нажатия кнопки Shift,
x, y	- координаты мыши.
Выходные параметры:

proceed	- использовать ли стандартную обработку нажатия кнопки мыши.
Примечание:

Приложение может запретить обработку события системой КОМПАС. Для этого переменной proceed нужно присвоить значение FALSE.


_DKGAXEvents::OnKgStopCurrentProcess

Завершен процесс панорамирования, поворота, сдвига и т.д.

Синтаксис Automation:

void OnKgStopCurrentProcess();

Примечание:

Данное событие генерируется при завершении запущенного процесса.


_DKGAXEvents::OnKgCreate

Окончание создания окна.

Синтаксис Automation:

void OnKgCreate ([in]long index);


_DKGAXEvents::OnKgPaint

Окончание отрисовки в окне.

Синтаксис Automation:

void OnKgPaint ([in]PaintObject* paintObj);

Входные параметры:

paintObj	- интерфейс для создания графических объектов.
Примечание:

После завершения отрисовки документа можно отрисовать свои объекты.

_______________

Смотрите также:

KompasObject.


_DKGAXEvents::OnKgCreateGLList

Окончание создания листа в контексте OpenGL.

Синтаксис Automation:

void OnKgCreateGLList ([in]GLObject* glObj,
[in]KDocument3DDrawMode drawMode);

Входные параметры:

glObj	- интерфейс функций OpenGL системы КОМПАС GLObject,
drawMode	- тип отображения в документе.
Примечание:

После завершения отрисовки документа можно отрисовать свои объекты.

_______________

Смотрите также:

KompasObject.


_DKGAXEvents::OnKgAddGabarit

Габариты документа определены.

Синтаксис Automation:

void OnKgAddGabarit ([in]GabaritObject* gabObj);

Входные параметры:

glObj	- интерфейс функций OpenGL системы КОМПАС GLObject,
Примечание:

После завершения отрисовки документа можно отрисовать свои объекты.

_______________

Смотрите также:

KompasObject.


Интерфейс вспомогательных данных для события OnKgPaint
PaintObject

Интерфейс вспомогательных данных для события OnKgPaint.

Методы...


Интерфейс PaintObject: Методы
Интерфейс PaintObject
методы

GetDC

GetHWND

GetTransformMatrix

ReleaseDC


PaintObject::GetHWND

Получить Handle окна.

Синтаксис:

OLE_HANDLE GetHWND();

Возвращаемое значение:

	Handle окна


PaintObject::GetDC

Получить Handle контекста отображения.

Синтаксис:

OLE_HANDLE GetDC();

Возвращаемое значение:

	Handle контекста отображения.


PaintObject::ReleaseDC

Закрыть Handle контекста отображения.

Синтаксис:

VARIANT_BOOL ReleaseDC ([in]OLE_HANDLE dc);

Входные параметры:

dc	DC - Handle закрываемого контекста отображения.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае ошибки.


PaintObject::GetTransformMatrix

Получить коэффициенты для матрицы преобразования координат.

Синтаксис:

VARIANT_BOOL GetTransformMatrix ([out]double* a11,
[out]double* a12,
[out]double* a13,
[out]double* a14,
[out]double* a21,
[out]double* a22,
[out]double* a23,
[out]double* a24 );

Выходные параметры:

a11, a12, a13, a14	- первая строчка матрицы,
a21, a22, a23, a24	- вторая строчка матрицы.


Интерфейс вспомогательных данных для события OnKgAddGabatit
GabaritObject

Интерфейс вспомогательных данных для события OnKgAddGabatit.

Методы...


Интерфейс GabaritObject: Методы
Интерфейс GabaritObject
методы

AddGabarit


GabaritObject::AddGabarit

Добавить дополнительный габарит к габариту документа.

Синтаксис:

VARIANT_BOOL AddGabarit ([in]double p1X,
[in]double p1Y,
[in]double p1Z,
[in]double p2X,
[in]double p2Y,
[in]double p2Z );

Входные параметры:

p1X, p1Y, p1Z	- координаты первой точки габарита,
p2X, p2Y, p2Z	- координаты второй точки габарита.


Интерфейс вспомогательных данных для события OnKgCreateGLList
GLObject

Интерфейс вспомогательных данных для события OnKgCreateGLList.

Методы...

Примечание:

Данный интерфейс нужно использовать при отрисовке с помощью OpenGL. Более подробное описание методов смотри в описании библиотеки OpenGL.


Интерфейс GLObject: Методы
Интерфейс GLObject
методы

VARIANT_BOOL glBegin ([in]long mode);

VARIANT_BOOL glEnd();

VARIANT_BOOL glEnable ([in]long cap);

VARIANT_BOOL glDisable ([in]long cap);

VARIANT_BOOL glColor3d ([in]double r, [in]double g, [in]double b);

VARIANT_BOOL glLineWidth ([in]double w);

VARIANT_BOOL glLineStipple ([in]long factor, [in]short pattern);

VARIANT_BOOL glPointSize ([in]double w);

VARIANT_BOOL glPolygonMode ([in]long face, [in]long mode);

VARIANT_BOOL glVertex2d ([in]double x, [in]double y);

VARIANT_BOOL glVertex2dv ([in]double* pData, [in]long countDouble);

VARIANT_BOOL glVertex3d ([in]double x, [in]double y, [in]double z);

VARIANT_BOOL glVertex3dv ([in]double* pData, [in]long countDouble);

VARIANT_BOOL glVertex4d ([in]double x, [in]double y, [in]double z, [in]double w);

VARIANT_BOOL glVertex4dv ([in]double* pData, [in]long countDouble);


Интерфейс IViewsAndLayersManager
IViewsAndLayersManager

Менеджер слоев и видов графического документа.

Иерархия:

Свойства...

События...

Примечание:

1. Данный интерфейс предназначен для работы с видами, слоями, группами слоев.

2. Интерфейс можно получить при помощи свойства IKompasDocument2D::ViewsAndLayersManager.


IViewsAndLayersManager::props
IViewsAndLayersManager
свойства

LayerGroups

Views


IViewsAndLayersManager::Views

Возвращает коллекцию видов.

Тип данных - IViews.

Синтаксис Automation:

Views = iObject.Views	Получить свойство (*)
Views = iObject.GetViews()	Получить свойство (**)
Синтаксис COM:

iObject->get_Views (Views)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IViewsAndLayersManager::LayerGroups

Возвращает коллекцию групп слоев.

Тип данных - ILayerGroups.

Синтаксис Automation:

LayerGroups = iObject.LayerGroups	Получить свойство (*)
LayerGroups = iObject.GetLayerGroups()	Получить свойство (**)
Синтаксис COM:

iObject->get_LayerGroups (Views)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс IDrawingObject
IDrawingObject

Базовый интерфейс для всех графических объектов.

Иерархия:

Свойства...

Методы...

События...

Примечание:

1. Данный интерфейс является базовым для графических объектов.

2. Интерфейс можно получить из коллекции графических объектов IDrawingObjects.

3. Имея интерфейс IDrawingObject, можно подписаться на события ksDrawingObjectNotify.


IDrawingObject::props
IDrawingObject
свойства

DrawingObjectType

LayerNumber

Temp

Valid


IDrawingObject::methods
IDrawingObject
методы

Delete

Update


IDrawingObject::DrawingObjectType

Тип графического объекта DrawingObjectTypeEnum.

Тип данных - DrawingObjectTypeEnum.

Синтаксис Automation:

DrawingObjectType = iObject.DrawingObjectType	Получить свойство (*)
DrawingObjectType = iObject.GetDrawingObjectType()	Получить свойство (**)
Синтаксис COM:

iObject->get_DrawingObjectType (&DrawingObjectType)	Получить свойство,
Примечание:

Свойство доступно только для чтения.


IDrawingObject::LayerNumber

Номер слоя, на котором расположен объект. Для вида - номер активного слоя.

Тип данных - long.

Синтаксис Automation:

LayerNumber = iObject.LayerNumber	Получить свойство (*)
iObject.LayerNumber = LayerNumber	Установить свойство (*)
LayerNumber = iObject.GetLayerNumber()	Получить свойство (**)
iObject.SetLayerNumber (LayerNumber)	Установить свойство (**)
Синтаксис COM:

iObject->get_LayerNumber (&LayerNumber)	Получить свойство
iObject->put_LayerNumber (LayerNumber)	Установить свойство
Примечание:

Позволяет получить и установить номер слоя.


IDrawingObject::Temp

Признак временности объекта.

Тип данных - BOOL

Синтаксис Automation:

Temp = iObject.Temp	Получить свойство (*)
Temp = iObject.GetTemp()	Получить свойство (**)
Синтаксис COM:

iObject->get_Temp (&Temp)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IDrawingObject::Valid

Признак невырожденности объекта.

Тип данных - BOOL

Синтаксис Automation:

Valid = iObject.Valid	Получить свойство (*)
Valid = iObject.GetValid()	Получить свойство (**)
Синтаксис COM:

iObject->get_Valid (&Valid)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IDrawingObject::Update

Обновить данные объекта.

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

HRESULT Update ([out, retval] VARIANT_BOOL* pRes);

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.


IDrawingObject::Delete

Удалить объект.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete ([out, retval] VARIANT_BOOL* pRes);

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

После успешного выполнения метода объект будет удален из модели. Свойство Valid для объекта будет возвращать FALSE. Все методы интерфейса возвращают ошибку (FALSE).


Интерфейс IDrawingObjects
IDrawingObjects

Базовый интерфейс для коллекций графических объектов.

Иерархия:

Свойства...

Примечание:

Данный интерфейс является базовым для коллекций графических объектов.


IDrawingObjects::props
IDrawingObjects
свойства

Item


IDrawingObjects::Item

Объект, заданный по ссылке или по индексу.

Тип данных -  указатель на интерфейс IDrawingObject.

Синтаксис Automation:

Item = iObject.Item	Получить свойство (*)
Item = iObject.GetItem()	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (&Item)	Получить свойство
Входные параметры:

Index	- индекс объекта в коллекции, тип VARIANT.
Примечание:

1. Свойство доступно только для чтения.

2. В качестве индекса может использоваться индекс элемента в массиве, reference объекта.


Интерфейс ksDrawingObjectNotify
 ksDrawingObjectNotify
IDrawingObjectNotify

Интерфейс событий для объектов графического документа.

ksDrawingObjectNotify	- интерфейс Automation
IDrawingObjectNotify	- интерфейс COM
Позволяют контролировать состояние объектов графического документа.

В Automation источником событий для подписки на данный интерфейс являются объекты IDrawingObject - базового интерфейса для графических объектов.

В СOM подписка осуществляется на интерфейс IObject2DNotify. Для получения указателей на документ и объект можно использовать свойство IKompasAPIObject::Reference.

В API 5 аналогом являются события для объектов графических документов ksObject2DNotify, поэтому перечисления событий совпадают с перечислениями событий для объектов графических документов.

События...

Методы...


ksDrawingObjectNotify::events
ksDrawingObjectNotify
события

BeginCopy

BeginDelete

BeginMove

BeginProcess

BeginRotate

BeginScale

BeginSymmetry

BeginTransform

ChangeActive

Copy

CreateObject

Delete

EndProcess

Move

Rotate

Scale

Symmetry

Transform

UpdateObject


ksDrawingObjectNotify::ChangeActive

Переключена активность объекта (вид, слой)

Синтаксис Automation:

BOOL ChangeActive (IDrawingObject* iObj);

Синтаксис COM:

BOOL ChangeActive (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginDelete

Начало удаления объекта.

Синтаксис Automation:

BOOL BeginDelete (IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginDelete (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

TRUE	- удалить объект,
FALSE	- запрещает удаление объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::Delete

Объект удален.

Синтаксис Automation:

BOOL Delete (IDrawingObject* iObj);

Синтаксис COM:

BOOL Delete (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginMove

Начало сдвига объекта.

Синтаксис Automation:

BOOL BeginMove (IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginMove (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

TRUE	- сдвинуть объект,
FALSE	- запрещает сдвиг объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::Move

Объект сдвинут.

Синтаксис Automation:

BOOL Move (IDrawingObject* iObj);

Синтаксис COM:

BOOL Move (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginRotate

Начало поворота объекта.

Синтаксис Automation:

BOOL BeginRotate (IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginRotate (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

TRUE	- повернуть объект,
FALSE	- запрещает поворот объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::Rotate

Объект повернут.

Синтаксис Automation:

BOOL Rotate (IDrawingObject* iObj);

Синтаксис COM:

BOOL Rotate (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginScale

Начало масштабирования объекта.

Синтаксис Automation:

BOOL BeginScale (IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginScale (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

TRUE	- масштабировать объект,
FALSE	- запрещает масштабирование объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::Scale

Объект повернут.

Синтаксис Automation:

BOOL Scale (IDrawingObject* iObj);

Синтаксис COM:

BOOL Scale (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginTransform

Начало трансформации объекта.

Синтаксис Automation:

BOOL BeginTransform (IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginTransform (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

TRUE	- трансформировать объект,
FALSE	- запрещает трансформацию объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::Transform

Объект трансформирован.

Синтаксис Automation:

BOOL Transform (IDrawingObject* iObj);

Синтаксис COM:

BOOL Transform (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginCopy

Начало копирования объекта.

Синтаксис Automation:

BOOL BeginCopy (IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginCopy (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

TRUE	- копировать объект,
FALSE	- запрещает копирование объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::Copy

Объект скопирован.

Синтаксис Automation:

BOOL Copy (IDrawingObject* iObj);

Синтаксис COM:

BOOL Copy (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginSymmetry

Начало симметрии объекта.

Синтаксис Automation:

BOOL BeginSymmetry (IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginSymmetry (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

TRUE	- симметрия объекта,
FALSE	- запрещает симметрию объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::Symmetry

Симметрия объекта.

Синтаксис Automation:

BOOL Symmetry (IDrawingObject* iObj);

Синтаксис COM:

BOOL Symmetry (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::BeginProcess

Начало редактирования\создания объекта.

Синтаксис Automation:

BOOL BeginProcess (long pType, IDrawingObject* iObj);

Синтаксис COM:

BOOL BeginProcess (long pType, IUnknown* iObj );

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
pType	- тип процесса (DrawingObjectTypeEnum или LINESEG_OBJ...AXISLINE_OBJ, VIEW_OBJ)
Возвращаемое значение:

TRUE	- редактировать\создать объект,
FALSE	- запрещает редактирование\создание объекта объекта.
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::EndProcess

Конец редактирования\создания объекта.

Синтаксис Automation:

BOOL EndProcess (IDrawingObject* iObj);

Синтаксис COM:

BOOL EndProcess (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::CreateObject

Создание объекта.

Синтаксис Automation:

BOOL CreateObject (IDrawingObject* iObj);

Синтаксис COM:

BOOL CreateObject (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


ksDrawingObjectNotify::UpdateObject

Редактирование объекта.

Синтаксис Automation:

BOOL EndProcess (IDrawingObject* iObj);

Синтаксис COM:

BOOL EndProcess (IUnknown* iObj);

Входные параметры:

iObj	- указатель интерфейса IDrawingObject.
Возвращаемое значение:

	Не используется
Примечание:

Индекс события задан в перечислении событий для объектов графических документов.


Интерфейс IViews
IViews

Интерфейс коллекции видов графического документа.

Иерархия:

Свойства...

Методы...

Описание:

Типы видов описаны в перечислении LtViewType.

В документе типа Фрагмент есть только один системный вид.

В документе типа Чертеж обязательно есть системный вид (только один), и могут быть до 254 видов любого типа из перечисления LtViewType, кроме системного.

Примечание:

Данный интерфейс можно получить через менеджер видов и слоев IViewsAndLayersManager::Views.


IViews::props
IViews
свойства

View

ViewByNumber


IViews::methods
IViews
методы

Add


IViews::View

Вид, заданный по имени, ссылке или по индексу.

Тип данных - указатель на интерфейс вида IView.

Синтаксис Automation:

View = iObject.View (Index)	Получить свойство (*)
View = iObject.GetView (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_View (Index, &View)	Получить свойство
Входные параметры:

index	- индекс вида в коллекции, ссылка на вид или имя вида; тип VARIANT.
Примечание:

Свойство доступно только для чтения.


IViews::ViewByNumber

Вид, заданный по номеру.

Тип данных - указатель на интерфейс вида IView.

Синтаксис Automation:

View = iObject.ViewByNumber (number)	Получить свойство (*)
View = iObject.GetViewByNumber (number)	Получить свойство (**)
Синтаксис COM:

iObject->get_ViewByNumber (number, &View)	Получить свойство
Входные параметры:

number	- номер вида; тип long.
Примечание:

Свойство доступно только для чтения.


IViews::Add

Создать вид (добавляет вид в коллекцию).

Синтаксис Automation:

LPDISPATCH Add (long ViewType);

Синтаксис COM:

HRESULT Add ([in] LtViewType ViewType, [out, retval] IView** Result);

Входные параметры:

ViewType	- тип создаваемого вида из перечисления LtViewType
Возвращаемое значение:

	Указатель на интерфейс вида IView.
Примечание:

1. Системный вид создается автоматически при создании документа. Создавать второй системный вид (тип vt_System) нельзя.

2. После вызова этого метода вид будет добавлен в коллекцию, но в документе не появится.

3. Для отображения вида в документе нужно задать его парметры и вызвать метод IDrawingObject::Update.


Интерфейс IView
IView

Интерфейс вида графического документа.

Иерархия:

Свойства...

Описание:

Типы видов описаны в перечислении LtViewType.

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

Примечание:

Данный интерфейс можно получить через коллекцию видов IViews.


IView::props
IView
свойства

Angle

Background

Color

Comment

Current

Layers

Name

Number

ObjectCount

Scale

ViewType

Visible

X

Y


IView::Number

Номер вида.

Тип данных - long.

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
iObject.Number = Number	Установить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
iObject.SetNumber (Number)	Установить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
iObject->put_Number (Number)	Установить свойство
Примечание:

Номер вида "0" зарезервирован для системного вида. Номер должен быть уникальным в документе. Для нового вида, полученного методом IViews::Add, можно задать номер "-1" или не задавать номер. В этом случае при вызове метода IDrawingObject::Update для данного вида номер будет задан автоматически.


IView::Name

Имя вида.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
iObject.Name = Name	Установить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
iObject.SetName (Name)	Установить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
iObject->put_Name (Name)	Установить свойство
Примечание:

1. Для нового вида, полученного методом IViews::Add, имя должно быть обязательно установлено до вызова метода IDrawingObject::Update.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Background

Состояние вида - фоновый.

Тип данных - BOOL.

Синтаксис Automation:

Background = iObject.Background	Получить свойство (*)
iObject.Background = Background	Установить свойство (*)
Background = iObject.GetBackground()	Получить свойство (**)
iObject.SetBackground (Background)	Установить свойство (**)
Синтаксис COM:

iObject->get_Background (&Background)	Получить свойство
iObject->put_Background (Background)	Установить свойство
Примечание:

1. Позволяет получить и установить свойство слоя - фоновый.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Visible

Состояние вида - видимый или погашенный.

Тип данных - BOOL.

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible (Visible)	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
iObject->put_Visible (Visible)	Установить свойство
Примечание:

1. Позволяет получить и установить свойство вида - видимый или погашенный.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Current

Состояние вида - текущий.

Тип данных - BOOL.

Синтаксис Automation:

Current = iObject.Current	Получить свойство (*)
iObject.Current = Current	Установить свойство (*)
Current = iObject.GetCurrent()	Получить свойство (**)
iObject.SetCurrent (Current)	Установить свойство (**)
Синтаксис COM:

iObject->get_Current (&Current)	Получить свойство
iObject->put_Current (Current)	Установить свойство
Примечание:

1. Позволяет узнать, является ли вид текущим или сделать его текущим.

2. Установить свойство "текущий" можно только равным TRUE.

3. Новый вид всегда создается текущим.

4. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Color

Цвет вида.

Тип данных - long.

Синтаксис Automation:

Color = iObject.Color	Получить свойство (*)
iObject.Color = Color	Установить свойство (*)
Color = iObject.GetColor()	Получить свойство (**)
iObject.SetColor( Color )	Установить свойство (**)
Синтаксис COM:

iObject->get_Color( &Color )	Получить свойство
iObject->put_Color(  Color )	Установить свойство
Примечание:

1.Позволяет получить и установить цвет вида.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Comment

Примечание.

Тип данных - BSTR.

Синтаксис Automation:

Comment = iObject.Comment	Получить свойство (*)
iObject.Comment = Comment	Установить свойство (*)
Comment = iObject.GetComment()	Получить свойство (**)
iObject.SetComment (Comment)	Установить свойство (**)
Синтаксис COM:

iObject->get_Comment (&Comment)	Получить свойство
iObject->put_Comment (Comment)	Установить свойство
Примечание:

1. Позволяет получить и установить примечание.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::ObjectCount

Количество объектов в виде.

Тип данных - long.

Синтаксис Automation:

ObjectCount = iObject.ObjectCount	Получить свойство (*)
ObjectCount = iObject.GetObjectCount()	Получить свойство (**)
Синтаксис COM:

iObject->get_ObjectCount (&ObjectCount)	Получить свойство
Примечание:

1. Позволяет получить количество объектов в виде.

2. Свойство доступно только для чтения.


IView::X

Координата привязки по X.

Тип данных - double.

Синтаксис Automation:

X = iObject.X	Получить свойство (*)
iObject.X = X	Установить свойство (*)
X = iObject.GetX()	Получить свойство (**)
iObject.SetX (X)	Установить свойство (**)
Синтаксис COM:

iObject->get_X (&X)	Получить свойство
iObject->put_X (X)	Установить свойство
Примечание:

1.Позволяет получить и установить координату привязки вида по оси X.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Y

Координата привязки по Y

Тип данных - double.

Синтаксис Automation:

Y = iObject.Y	Получить свойство (*)
iObject.Y = Y	Установить свойство (*)
Y = iObject.GetY()	Получить свойство (**)
iObject.SetY (Y)	Установить свойство (**)
Синтаксис COM:

iObject->get_Y (&Y)	Получить свойство
iObject->put_Y (Y)	Установить свойство
Примечание:

1.Позволяет получить и установить координату привязки вида по оси Y.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Scale

Масштаб вида.

Тип данных - double.

Синтаксис Automation:

Scale = iObject.Scale	Получить свойство (*)
iObject.Scale = Scale	Установить свойство (*)
Scale = iObject.GetScale()	Получить свойство (**)
iObject.SetScale (Scale)	Установить свойство (**)
Синтаксис COM:

iObject->get_Scale (&Scale)	Получить свойство
iObject->put_Scale (Scale)	Установить свойство
Примечание:

1. Позволяет получить и установить масштаб вида.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::Angle

Угол поворота вида.

Тип данных - double.

Синтаксис Automation:

Angle = iObject.Angle	Получить свойство (*)
iObject.Angle = Angle	Установить свойство (*)
iObject.Angle = Angle	Получить свойство (**)
iObject.SetAngle (Angle)	Установить свойство (**)
Синтаксис COM:

iObject->get_Angle (&Angle)	Получить свойство
iObject->put_Angle (Angle)	Установить свойство
Примечание:

1. Позволяет получить и установить угол поворота вида.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


IView::ViewType

Тип вида.

Тип данных - Тип вида из перечисления LtViewType.

Синтаксис Automation:

ViewType = iObject.ViewType	Получить свойство (*)
ViewType = iObject.GetViewType()	Получить свойство (**)
Синтаксис COM:

iObject->get_ViewType (&ViewType)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IView::Layers

Коллекция слоев.

Тип данных - Указатель на интерфейс ILayers коллекции слоев.

Синтаксис Automation:

Layers = iObject.Layers	Получить свойство (*)
Layers = iObject.GetLayers()	Получить свойство (**)
Синтаксис COM:

iObject->get_Layers( &Layers )	Получить свойство
Примечание:

1. Позволяет получить коллекцию слоев вида.

2. Свойство доступно только для чтения.


Интерфейс IAssociationView
IAssociationView

Интерфейс ассоциативного вида графического документа.

Иерархия:

Описание:

Типы видов описаны в перечислении LtViewType.

Примечание:

Данный интерфейс можно получить через коллекцию видов IViews.


Интерфейс ILayerFilterConditions
ILayerFilterConditions

Интерфейс коллекции условий фильтрации слоев.

Иерархия:

Свойства...

Методы...

Описание:

1. Условия фильтрации используются для формирования состава динамической группы слоев.

2. Слой автоматически будет включен в состав группы если его свойства удовлетворяют хотя бы одному из условий.

Примечание:

Данный интерфейс можно получить через группу слоев ILayerGroup.


ILayerFilterConditions::props
ILayerFilterConditions
свойства

Item


ILayerFilterConditions::methods
ILayerFilterConditions
методы

Add


ILayerFilterConditions::Item

Условие фильтрации слоев, заданное по индексу.

Тип данных - указатель на интерфейс ILayerFilterCondition.

Синтаксис Automation:

LayerFilterCondition = iObject.Item (Index)	Получить свойство (*)
LayerFilterCondition = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &LayerFilterCondition)	Получить свойство
Входные параметры:

index	- индекс в коллекции; тип VARIANT.
Примечание:

Свойство доступно только для чтения.


ILayerFilterConditions::Add

Создать условие фильтрации слоев.

Синтаксис Automation:

LPDISPATCH Add();

Синтаксис COM:

HRESULT Add ([out, retval] ILayerFilterCondition** Result);

Возвращаемое значение:

Указатель на интерфейс ILayerFilterCondition
Примечание:

После вызова этого метода условие фильтрации слоев будет добавлено в коллекцию.

Состав группы изменится в соответствии с новыми условиями.


Интерфейс ILayerFilterCondition
ILayerFilterCondition

Интерфейс условия фильтрации слоев.

Иерархия:

Свойства...

Описание:

Условия фильтрации используются для формирования состава динамической группы слоев.

Примечание:

Данный интерфейс можно получить через коллекцию  условий фильтрации слоев ILayerFilterConditions.


ILayerFilterCondition::props
ILayerFilterCondition
свойства

Background

Color

Comment

HaveObjects

Name

Number

Visible


ILayerFilterCondition::Number

Номер слоя для фильтрации.

Тип данных - BSTR (строка).

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
iObject.Number = Number	Установить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
iObject.SetNumber (Number)	Установить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
iObject->put_Number (Number)	Установить свойство
Примечание:

1. При задании условия фильтрации по номеру можно использовать маски.  В масках знак «*» заменяет любое количество любых символов. Знак «?» заменяет один любой символ.

2. После установки нового значения данного свойства состав группы будет автоматически изменен.


ILayerFilterCondition::Name

Имя слоя для фильтрации.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
iObject.Name = Name	Установить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
iObject.SetName (Name)	Установить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
iObject->put_Name (Name)	Установить свойство
Примечание:

1. При задании условия фильтрации по номеру можно использовать маски.  В масках знак «*» заменяет любое количество любых символов. Знак «?» заменяет один любой символ.

2. После установки нового значения данного свойства состав группы будет автоматически изменен.


ILayerFilterCondition::Background

Состояние слоя для фильтрации - фоновый.

Тип данных - из перечисления FilterConditionStateEnum.

Синтаксис Automation:

Background = iObject.Background	Получить свойство (*)
iObject.Background = Background	Установить свойство (*)
Background = iObject.GetBackground()	Получить свойство (**)
iObject.SetBackground (Background)	Установить свойство (**)
Синтаксис COM:

iObject->get_Background (&Background)	Получить свойство
iObject->put_Background (Background)	Установить свойство
Примечание:

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


ILayerFilterCondition::Visible

Состояние слоя для фильтрации - видимый или погашенный.

Тип данных - из перечисления FilterConditionStateEnum.

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible (Visible)	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
iObject->put_Visible (Visible)	Установить свойство
Примечание:

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


ILayerFilterCondition::HaveObjects

Состояние слоя для фильтрации - с объектами или пустой.

Тип данных - из перечисления FilterConditionStateEnum.

Синтаксис Automation:

HaveObjects = iObject.HaveObjects	Получить свойство (*)
iObject.HaveObjects = HaveObjects	Установить свойство (*)
HaveObjects = iObject.GetHaveObjects()	Получить свойство (**)
iObject.SetHaveObjects (HaveObjects)	Установить свойство (**)
Синтаксис COM:

iObject->get_HaveObjects (&HaveObjects)	Получить свойство
iObject->put_HaveObjects (HaveObjects)	Установить свойство
Примечание:

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


ILayerFilterCondition::Color

Цвет слоя для фильтрации.

Тип данных - long.

Синтаксис Automation:

Color = iObject.Color	Получить свойство (*)
iObject.Color = Color	Установить свойство (*)
Color = iObject.GetColor()	Получить свойство (**)
iObject.SetColor (Color)	Установить свойство (**)
Синтаксис COM:

iObject->get_Color (&Color)	Получить свойство
iObject->put_Color (Color)	Установить свойство
Примечание:

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


ILayerFilterCondition::Comment

Содержание комментария для фильтрации.

Тип данных - BSTR.

Синтаксис Automation:

Comment = iObject.Comment	Получить свойство (*)
iObject.Comment = Comment	Установить свойство (*)
Comment = iObject.GetComment()	Получить свойство (**)
iObject.SetComment (Comment)	Установить свойство (**)
Синтаксис COM:

iObject->get_Comment (&Comment)	Получить свойство
iObject->put_Comment (Comment)	Установить свойство
Примечание:

1. При задании условия фильтрации по номеру можно использовать маски.  В масках знак «*» заменяет любое количество любых символов. Знак «?» заменяет один любой символ.

2. После установки нового значения данного свойства состав группы будет автоматически изменен.


Интерфейс IViewsAndLayersManagerNotify
 ksViewsAndLayersManagerNotify
IViewsAndLayersManagerNotify

События менеджера видов и слоев.

ksViewsAndLayersManagerNotify	- интерфейс Automation
IViewsAndLayersManagerNotify	- интерфейс COM
Позволяют контролировать начало и завершение работы с диалогом менеджера видов и слоев.

Источником событий для подписки на данный интерфейс являются объекты:

- IViewsAndLayersManager - Менеджер слоев и видов графического документа.

События...

Методы...


IViewsAndLayersManagerNotify::events
IViewsAndLayersManagerNotify
события

BeginEdit

EndEdit


IViewsAndLayersManagerNotify::BeginEdit
ksViewsAndLayersManagerNotify::BeginEdit
IViewsAndLayersManagerNotify::BeginEdit

Начато редактирование.

Синтаксис Automation:

BOOL BeginEdit();

Синтаксис COM:

BOOL BeginEdit();

Возвращаемое значение:

FALSE	- запретить редактирование через диалог.
Примечание:

Индекс события задан в перечислении событий для менеджера видов и слоев ksViewsAndLayersManagerNotifyEnum


IViewsAndLayersManagerNotify::EndEdit
ksViewsAndLayersManagerNotify::EndEdit
IViewsAndLayersManagerNotify::EndEdit

Завершено редактирование.

Синтаксис Automation:

BOOL EndEdit (BOOL isOk);

Синтаксис COM:

BOOL EndEdit (BOOL isOk);

Входные параметры:

isOk	- TRUE диалог закрыт по кнопке OK, - FALSE диалог закрыт по кнопке Отмена.
Возвращаемое значение:

	Не используется.
Примечание:

Индекс события задан в перечислении событий для менеджера видов и слоев ksViewsAndLayersManagerNotifyEnum


Интерфейс IDocumentSettings
IDocumentSettings

Настройки документа.

Иерархия:

Свойства...

Методы...

Описание:

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

Примечание:

Данный интерфейс можно получить через документ IKompasDocument::DocumentSettings или через приложение IApplication (в настоящее время не реализовано).


IDocumentSettings::props
IDocumentSettings
свойства


IDocumentSettings::methods
IDocumentSettings
методы


Интерфейс IDocument2DSettings
IDocument2DSettings

Настройки графического документа.

Иерархия:

Свойства...

Описание:

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

Примечание:

Данный интерфейс можно получить через документ IKompasDocument::DocumentSettings или через приложение IApplication (в настоящее время не реализовано).


IDocument2DSettings::props
IDocument2DSettings
свойства

CompositionInherit

LayersGroupWay


IDocument2DSettings::LayersGroupWay

Способ группировки слоев.

Тип данных - из перечисления LayersGroupWayEnum.

Синтаксис Automation:

LayersGroupWay = iObject.LayersGroupWay	Получить свойство (*)
iObject.LayersGroupWay = LayersGroupWay	Установить свойство (*)
LayersGroupWay = iObject.GetLayersGroupWay()	Получить свойство (**)
iObject.SetLayersGroupWay (LayersGroupWay)	Установить свойство (**)
Синтаксис COM:

iObject->get_LayersGroupWay (&LayersGroupWay)	Получить свойство,
iObject->put_LayersGroupWay (LayersGroupWay)	Установить свойство.
Примечание:

1. Если данному свойству установлено значение wgLayers, то в документе будут создаваться и использоваться статические и динамические (фильтры) группы слоев.

2. Если свойству установлено значение wgLayersCharacteristics, то в документе будут создаваться и использоваться группы свойств слоев.

3. Изменение способа группировки в документе приводит к необратимым изменениям созданных групп и фильтров.


IDocument2DSettings::CompositionInherit

Наследовать состав родительского объекта.

Тип данных - BOOL.

Синтаксис Automation:

CompositionInherit = iObject.CompositionInherit	Получить свойство (*)
iObject.CompositionInherit = CompositionInherit	Установить свойство (*)
CompositionInherit = iObject.GetCompositionInherit()	Получить свойство (**)
iObject.SetCompositionInherit (CompositionInherit)	Установить свойство (**)
Синтаксис COM:

iObject->get_CompositionInherit (&CompositionInherit)	Получить свойство,
iObject->put_CompositionInherit (CompositionInherit)	Установить свойство.
Примечание:

1. Данное свойство используется если свойству LayersGroupWay установлено значение wgLayersCharacteristics.

2. Если установлено значение TRUE, то при создании группы свойств слоев будет выполнено следующее:

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

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

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

3. Изменение способа группировки в документе приводит к необратимым изменениям созданных групп.


Интерфейс IDrawingDocumentSettings
IDrawingDocumentSettings

Настройки чертежа.

Иерархия:

Свойства...

Методы...

Описание:

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

Примечание:

Данный интерфейс можно получить через документ IKompasDocument::DocumentSettings или через приложение IApplication (в настоящее время не реализовано).


IDrawingDocumentSettings::props
IDrawingDocumentSettings
свойства


IDrawingDocumentSettings::methods
IDrawingDocumentSettings
методы


Интерфейс IFragmentDocumentSettings
IFragmentDocumentSettings

Настройки фрагмента.

Иерархия:

Свойства...

Методы...

Описание:

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

Примечание:

Данный интерфейс можно получить через документ IKompasDocument::DocumentSettings или через приложение IApplication (в настоящее время не реализовано).


IFragmentDocumentSettings::props
IFragmentDocumentSettings
свойства


IFragmentDocumentSettings::methods
IFragmentDocumentSettings
методы


Интерфейс ILayer
ILayer

Интерфейс слоя графического документа.

Иерархия:

Свойства...

Описание:

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

Примечание:

Данный интерфейс можно получить через коллекцию слоев ILayers.


ILayer::props
ILayer
свойства

Background

Color

Comment

Current

Name

ObjectCount

Visible


ILayer::Name

Имя слоя.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
iObject.Name = Name	Установить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
iObject.SetName (Name)	Установить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
iObject->put_Name (Name)	Установить свойство
Примечание:

1. Позволяет получить и установить имя слоя.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


ILayer::Background

Состояние слоя - фоновый.

Тип данных - BOOL.

Синтаксис Automation:

Background = iObject.Background	Получить свойство (*)
iObject.Background = Background	Установить свойство (*)
Background = iObject.GetBackground()	Получить свойство (**)
iObject.SetBackground (Background)	Установить свойство (**)
Синтаксис COM:

iObject->get_Background (&Background)	Получить свойство
iObject->put_Background (Background)	Установить свойство
Примечание:

1. Позволяет получить и установить свойство слоя - фоновый.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


ILayer::Visible

Состояние слоя - видимый или погашенный.

Тип данных - BOOL.

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible (Visible)	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
iObject->put_Visible (Visible)	Установить свойство
Примечание:

1. Позволяет получить и установить свойство слоя - видимый или погашенный.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


ILayer::Current

Состояние слоя - текущий.

Тип данных - BOOL.

Синтаксис Automation:

Current = iObject.Current	Получить свойство (*)
iObject.Current = Current	Установить свойство (*)
Current = iObject.GetCurrent()	Получить свойство (**)
iObject.SetCurrent (Current)	Установить свойство (**)
Синтаксис COM:

iObject->get_Current (&Current)	Получить свойство
iObject->put_Current (Current)	Установить свойство
Примечание:

1. Позволяет получить и установить состояние слоя - текущий.

2. Установить сойство текущий можно только равным TRUE. Новый слой всегда создается текущим.

3. Свойство вступает в силу после вызова метода IDrawingObject::Update.


ILayer::Color

Цвет слоя.

Тип данных - long.

Синтаксис Automation:

Color = iObject.Color	Получить свойство (*)
iObject.Color = Color	Установить свойство (*)
Color = iObject.GetColor()	Получить свойство (**)
iObject.SetColor (Color)	Установить свойство (**)
Синтаксис COM:

iObject->get_Color (&Color)	Получить свойство
iObject->put_Color (Color)	Установить свойство
Примечание:

1. Позволяет получить и установить цвет слоя.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


ILayer::Comment

Примечание.

Тип данных - BSTR.

Синтаксис Automation:

Comment = iObject.Comment	Получить свойство (*)
iObject.Comment = Comment	Установить свойство (*)
Comment = iObject.GetComment()	Получить свойство (**)
iObject.SetComment (Comment)	Установить свойство (**)
Синтаксис COM:

iObject->get_Comment (&Comment)	Получить свойство
iObject->put_Comment (Comment)	Установить свойство
Примечание:

1. Позволяет получить и установить примечание для слоя.

2. Свойство вступает в силу после вызова метода IDrawingObject::Update.


ILayer::ObjectCount

Количество объектов в слое.

Тип данных - long.

Синтаксис Automation:

ObjectCount = iObject.ObjectCount	Получить свойство (*)
ObjectCount = iObject.GetObjectCount()	Получить свойство (**)
Синтаксис COM:

iObject->get_ObjectCount (&ObjectCount)	Получить свойство
Примечание:

1. Позволяет получить количество объектов в слое.

2. Свойство доступно только для чтения.


Интерфейс ILayers
ILayers

Интерфейс коллекции слоев графического документа.

Иерархия:

Свойства...

Методы...

Примечание:

Интерфейс коллекции слоев можно получить у вида IView::Layers или у группы слоев ILayerGroup::Layers.


ILayers::props
ILayers
свойства

Layer

LayerByNumber


ILayers::methods
ILayers
методы

Add

Attach

Detach


ILayers::Layer

Слой, заданный по индексу.

Тип данных - указатель на интерфейс слоя ILayer.

Синтаксис Automation:

Layer = iObject.Layer (Index)	Получить свойство (*)
Layer = iObject.GetLayer (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Layer (Index, &Layer)	Получить свойство
Входные параметры:

index	- индекс слоя в коллекции; тип VARIANT.
Примечание:

1. Свойство доступно только для чтения.

2. В качестве индекса может использоваться индекс элемента в массиве, ссылка на слой, имя слоя.


ILayers::LayerByNumber

Слой, заданный по номеру.

Тип данных - указатель на интерфейс вида ILayer.

Синтаксис Automation:

Layer = iObject.LayerByNumber (Number)	Получить свойство (*)
Layer = iObject.GetLayerByNumber (Number)	Получить свойство (**)
Синтаксис COM:

iObject->get_LayerByNumber (Number, &Layer)	Получить свойство
Входные параметры:

number	- номер слоя; тип long.
Примечание:

Свойство доступно только для чтения.


ILayers::Add

Создать слой (добавляет слой в коллекцию).

Синтаксис Automation:

LPDISPATCH Add();

Синтаксис COM:

HRESULT Add ([out, retval] ILayer** Layer);

Возвращаемое значение:

	Указатель на интерфейс слоя ILayer.
Примечание:

1. Интерфейс слоя добавляется в коллекцию.

2. Слой в документе будет создан после вызова метода IDrawingObject::Update.


ILayers::Attach

Добавить существующий слой.

Синтаксис Automation:

BOOL Attach (LPDISPATCH pVal);

Синтаксис COM:

HRESULT Attach ([in] ILayer * pVal, [out, retval] VARIANT_BOOL * Result);

Входные параметры:

pVal	Указатель на интерфейс слоя ILayer.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Интерфейс слоя добавляется в коллекцию.

2. Метод работает только для коллекции слоев группы ILayerGroup, если она не является динамической.


ILayers::Detach

Отсоединить слой.

Тип данных : указатель на интерфейс слоя ILayer.

Синтаксис Automation:

BOOL Detach (LPDISPATCH pVal);

Синтаксис COM:

HRESULT Detach ([in] ILayer * pVal, [out, retval] VARIANT_BOOL * Result);

Входные параметры:

pVal	Указатель на интерфейс слоя ILayer.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

1. Интерфейс слоя отсоединяется от коллекции, слой при этом из документа не удаляется.

2. Метод работает только для коллекции слоев группы ILayerGroup, если она не является динамической.


Интерфейс ILayerGroup
ILayerGroup

Интерфейс группы слоев.

Иерархия:

Свойства...

Методы...

Примечание:

Данный интерфейс можно получить у коллекции групп слоев ILayerGroups.

Группы являются именованными объектами.

По умолчанию при создании группы ей присваивается имя, состоящее из слова "Группа" (для статической группы и группы свойств) или "Фильтр" (для динамической группы) и порядкового номера. Это имя может быть изменено.

Группы слоев сохраняются в документе.

Группа слоев может принадлежать:

1) Виду - в группе объединяются слои, принадлежащие виду.

2) Документу - в группе объединяются слои с разных видов.

Группа может быть:

- статической - Группа слоев или Группа свойств слоев;

- динамической - Фильтр.

Группа слоев группа объединяет слои. Для создания статической группы используется метод ILayerGroups::Add, в который передается параметр dynamic равный FALSE. Работа с группой слоев доступна если в документе установлен режим Группировать слои, т.е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayers.

Фильтр включает в себя слои, отфильтрованные согласно заданным условиям. См. ILayerFilterConditions и ILayerFilterCondition.

Признаком того, что группа является динамической, является возможность получения у нее коллекции условий ILayerFilterConditions.

Для создания динамической группы используется метод ILayerGroups::Add, в который передается параметр dynamic равный TRUE. Работа с группой слоев доступна, если в документе установлен режим Группировать слои, т. е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayers.

Группа свойств слоев кроме списка слоев содержит массив свойств, устанавливаемых данным слоям. Для создания группы используется метод ILayerGroups::Add, в котором параметр dynamic не учитывается. Для передачи параметров слоям нужно устанавить свойство ILayerGroup::Current равным TRUE

Работа с Группой свойств слоев доступна, если в документе установлен режим Группировать свойства слоев, т. е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayersCharacteristics.

Добавление слоя в документ не приводит к автоматическому добавлению этого слоя в статическую группу или в группу свойств.

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

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

Изменение способа группировки в документе приводит к необратимым изменениям созданных групп.

Если устанавливается режим группировки слоев, то Группы свойств слоев превращаются в Группы слоев.

Если устанавливается режим группировки свойств слоев, то Группы слоев и Фильтры превращаются в Группы свойств.


ILayerGroup::props
ILayerGroup
свойства

Current

LayerFilterConditions

LayerGroups

Layers

Name

OwnerGroup

OwnerView

UniqueId


ILayerGroup::methods
ILayerGroup
методы

Delete

GetLayerStates

SetLayerStates


ILayerGroup::OwnerGroup

Владелец группы - другая группа.

Тип данных -  указатель на интерфейс группы ILayerGroup.

Синтаксис Automation:

OwnerGroup = iObject.OwnerGroup	Получить свойство (*)
OwnerGroup = iObject.GetOwnerGroup()	Получить свойство (**)
Синтаксис COM:

iObject->get_OwnerGroup (&OwnerGroup)	Получить свойство,
Примечание:

1. Позволяет получить владельца группы.

2. Свойство доступно только для чтения .


ILayerGroup::OwnerView

Владелец группы - вид.

указатель на интерфейс вида IView.

Синтаксис Automation:

OwnerView = iObject.OwnerView	Получить свойство (*)
iObject.OwnerView = OwnerView	Установить свойство (*)
OwnerView = iObject.GetOwnerView()	Получить свойство (**)
iObject.SetOwnerView (OwnerView)	Установить свойство (**)
Синтаксис COM:

iObject->get_OwnerView (&OwnerView)	Получить свойство
iObject->put_OwnerView (OwnerView)	Установить свойство
Примечание:

Свойство позволяет отсоединить группу от вида.


ILayerGroup::LayerGroups

Коллекция групп слоев.

Тип данных - указатель на интерфейс ILayerGroups.

Синтаксис Automation:

LayerGroups = iObject.LayerGroups	Получить свойство (*)
LayerGroups = iObject.GetLayerGroups()	Получить свойство (**)
Синтаксис COM:

iObject->get_LayerGroups (&LayerGroups)	Получить свойство


ILayerGroup::Layers

Коллекция слоев группы.

Тип данных - указатель на интерфейс ILayers.

Синтаксис Automation:

Layers = iObject.Layers	Получить свойство (*)
Layers = iObject.GetLayers()	Получить свойство (**)
Синтаксис COM:

iObject->get_Layers (&Layers)	Получить свойство


ILayerGroup::Name

Имя группы.

Тип данных - BSTR.

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
iObject.Name = Name	Установить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
iObject.SetName (Name)	Установить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
iObject->put_Name (Name)	Установить свойство


ILayerGroup::LayerFilterConditions

Коллекция условий фильтрации слоев.

Тип данных - указатель на интерфейс коллекции условий фильтрации LayerFilterConditions.

Синтаксис Automation:

LayerFilterConditions = iObject.LayerFilterConditions	Получить свойство (*)
LayerFilterConditions = iObject.GetLayerFilterConditions()	Получить свойство (**)
Синтаксис COM:

iObject->get_LayerFilterConditions (&LayerFilterConditions)	Получить свойство
Примечание:

Коллекцию условий можно получить только для динамической группы слоев.


ILayerGroup::Current

Группа является текущей (состояния слоев переданы в модель).

Тип данных - BOOL.

Синтаксис Automation:

Current = iObject.Current	Получить свойство (*)
iObject.Current = Current	Установить свойство (*)
Current = iObject.GetCurrent()	Получить свойство (**)
iObject.SetCurrent (Current)	Установить свойство (**)
Синтаксис COM:

iObject->get_Current (&Current)	Получить свойство
iObject->put_Current (Current)	Установить свойство
Примечание:

Свойство используется если в документе установлен режим Группировать свойства слоев, т. е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayersCharacteristics.


ILayerGroup::UniqueId

Уникальный идентификатор группы слоев.

Тип данных - double.

Синтаксис Automation:

UniqueId = iObject.UniqueId	Получить свойство (*)
UniqueId = iObject.GetUniqueId()	Получить свойство (**)
Синтаксис COM:

iObject->get_UniqueId (&UniqueId)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. После создания группы свойство не изменяется и хранится в чертеже.


ILayerGroup::GetLayerStates

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

Синтаксис Automation:

BOOL GetLayerStates ([in] VARIANT LayerIndex,
[out] BOOL* visible,
[out] BOOL* background,
[out] BOOL* curent,
[out] long* color);

Синтаксис COM:

HRESULT GetLayerStates ([in] VARIANT LayerIndex,
[out] VARIANT_BOOL* visible,
[out] VARIANT_BOOL* background,
[out] VARIANT_BOOL* curent,
[out] long* color,
[out, retval] VARIANT_BOOL* pRes );

Входные параметры:

LayerIndex	- индекс слоя
Выходные параметры:

visible	- свойство - видимый слой,
background	- свойство - фоновый слой,
current	- свойство - текущий слой,
color	- цвет слоя.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

1) Если в документе установлен режим Группировать свойства слоев, т. е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayersCharacteristics, то метод позволяет получить свойства слоя в группе. При этом значения свойств могут отличаться от установленных в текущий момент у слоя в документе. Для передачи свойств слою из группы нужно сделать группу текущей, то есть установить значение ILayerGroup::Current равным TRUE.

2) Если в документе установлен режим Группировать слои, т. е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayers, то метод используется для получения свойств конкретного слоя (LayerIndex - индекс слоя).


ILayerGroup::SetLayerStates

Изменить состояния слоя группы по индексу или имени.

Синтаксис Automation:

BOOL SetLayerStates ([in] VARIANT LayerIndex,
[in] BOOL visible,
[in]BOOL background,
[in] BOOL* curent,
[in] long color);

Синтаксис COM:

HRESULT SetLayerStates ([in] VARIANT LayerIndex,
[in] VARIANT_BOOL visible,
[in] VARIANT_BOOL background,
[in] VARIANT_BOOL curent,
[in] long color,
[out, retval] VARIANT_BOOL* pRes);

Входные параметры:

LayerIndex	- индекс слоя
visible	- свойство - видимый слой,
background	- свойство - фоновый слой,
current	- свойство - текущий слой,
color	- цвет слоя.
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

1) Если в документе установлен режим Группировать свойства слоев, т. е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayersCharacteristics, то метод позволяет установить свойства слоя в группе. При этом параметры слоя в документе не меняются. При этом значения свойств могут отличаться от установленных в текущий момент у слоя в документе. Для передачи свойств слою из группы нужно сделать группу текущей, то есть установить значение ILayerGroup::Current равным TRUE.

2) Если в документе установлен режим Группировать слои, т. е. свойство IDocument2DSettings::LayersGroupWay имеет значение wgLayers, то метод используется для установки свойств конкретного слоя (LayerIndex - индекс слоя). Для установки одинаковых состояний и цвета всем слоям, входящим в группу, нужно передать LayerIndex = -1.


ILayerGroup::Delete

Удалить группу слоев.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete ([out, retval] VARIANT_BOOL * pVal);

Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

При удалении группы слоев слои, входящие в нее, из документа не удаляются. Для удаления слоя используется метод IDrawingObject::Delete.


Интерфейс ILayerGroups
ILayerGroups

Интерфейс коллекции групп слоев.

Иерархия:

Свойства...

Методы...

Описание:

Коллекция объединяет группы слоев ILayerGroup.

Примечание:

Интерфейс можно получить у Менеджера видов и слоев IViewsAndLayersManager::LayerGroups или у группы слоев ILayerGroup::LayerGroups.


ILayerGroups::props
ILayerGroups
свойства

Item


ILayerGroups::methods
ILayerGroups
методы

Add

Attach

Detach


ILayerGroups::Item

Группа, заданная по индексу, имени или уникальному идентификатору.

Тип данных - указатель на интерфейс ILayerGroup.

Синтаксис Automation:

Item = iObject.Item	Получить свойство (*)
Item = iObject.GetItem()	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (&Item)	Получить свойство
Входные параметры:

index	- индекс объекта в коллекции (тип VARIANT).
Примечание:

Свойство доступно только для чтения.

В качестве индекса может использоваться индекс элемента в массиве, имя или уникальный идентификатор ILayerGroup::UniqueId. Для получения группы по идентификатору нужно передать вещественное число, установив тип значения VT_R8.


ILayerGroups::Add

Создать группу.

Синтаксис Automation:

LPDISPATCH Add( [in] LPDISPATCH owner, [in] VARIANT_BOOL dinamic );

Синтаксис Automation:

HRESULT Add( [in] IView* owner, [in] VARIANT_BOOL dinamic, [out, retval] ILayerGroup** Result );

Входные параметры:

owner	- вид - владелец группы,
dinamic	- признак динамической группы.
Возвращаемое значение:

Указатель на интерфейс группы слоев ILayerGroup
Примечание:

Группа добавляется в коллекцию.


ILayerGroups::Attach

Добавить существующую группу.

Синтаксис Automation:

BOOL Attach (LPDISPATCH pVal);

Синтаксис Automation:

HRESULT Attach ([in] ILayerGroup * pVal, [out, retval] VARIANT_BOOL * Result);

Входные параметры:

pVal	- Указатель на интерфейс группы слоев ILayerGroup
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Интерфейс группы добавляется в коллекцию.


ILayerGroups::Detach

Отсоединить группу слоев.

Синтаксис Automation:

BOOL Detach (LPDISPATCH pVal);

Синтаксис COM:

HRESULT Detach ([in] ILayerGroup * pVal, [out, retval] VARIANT_BOOL * Result);

Входные параметры:

pVal	- Указатель на интерфейс группы слоев ILayerGroup
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Интерфейс группы слоев отсоединяется от коллекции, группа при этом из документа не удаляется.


События редактирования описания спецификации
 ksSpecificationNotify
ISpecificationNotify

События для работы с описаниями спецификации.

ksSpecificationNotify	- интерфейс Automation
ISpecificationNotify	- интерфейс COM
Позволяют контролировать редактирование описания спецификации.

В Automation источником событий для подписки на данный интерфейс является объект ksSpecification.

В COM источником для подписки является является документ (графический документ, документ-модель, спецификация).

События...

Методы...


ksSpecification::events
ksSpecification
события

BeginCreateObject

BeginCalcPositions

CalcPositions

ChangeCurrentSpcDescription

SpcDescriptionAdd

SpcDescriptionBeginEdit

SpcDescriptionEdit

SpcDescriptionRemove

SynchronizationBegin

Synchronization

TuningSpcStyleBeginChange

TuningSpcStyleChange


ksSpecification::TuningSpcStyleBeginChange

Начало изменения настроек спецификации.

Синтаксис Automation:

BOOL TuningSpcStyleBeginChange (BSTR libName, long numb);

Синтаксис COM:

BOOL TuningSpcStyleBeginChange (char * libName, long numb);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
Возвращаемое значение:

TRUE	- измененить настройки спецификации,
FALSE	- изменение настроек спецификации запрещено.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::TuningSpcStyleChange

Настройки спецификации изменились.

Синтаксис Automation:

BOOL TuningSpcStyleChange (BSTR libName, long numb, BOOL isOk);

Синтаксис COM:

BOOL TuningSpcStyleChange (char * libName, long numb, BOOL isOk);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
isOk	- результат изменения настроек спецификации.
Возвращаемое значение:

	- не используется.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::ChangeCurrentSpcDescription

Изменилось текущее описание спецификации.

Синтаксис Automation:

BOOL ChangeCurrentSpcDescription (BSTR libName, long numb);

Синтаксис COM:

BOOL ChangeCurrentSpcDescription (char * libName, long numb);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
Возвращаемое значение:

	- не используется.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::SpcDescriptionAdd

Добавилось описание спецификации.

Синтаксис Automation:

BOOL SpcDescriptionAdd (BSTR libName, long numb);

Синтаксис COM:

BOOL SpcDescriptionAdd (char * libName, long numb);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
Возвращаемое значение:

	- не используется.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::SpcDescriptionRemove

Удалилось описание спецификации.

Синтаксис Automation:

BOOL SpcDescriptionRemove (BSTR libName, long numb);

Синтаксис COM:

BOOL SpcDescriptionRemove (char * libName, long numb);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
Возвращаемое значение:

	- не используется.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::SpcDescriptionBeginEdit

Начало редактирования описания спецификации.

Синтаксис Automation:

BOOL SpcDescriptionBeginEdit (BSTR libName, long numb);

Синтаксис COM:

BOOL SpcDescriptionBeginEdit (char * libName, long numb);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации.
Возвращаемое значение:

TRUE	- редактировать описание спецификации,
FALSE	- редактирование описания запрещено.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::SpcDescriptionEdit

Редактирование описания спецификации завершено.

Синтаксис Automation:

BOOL SpcDescriptionEdit (BSTR libName, long numb, BOOL isOk);

Синтаксис COM:

BOOL SpcDescriptionEdit (char * libName, long numb, BOOL isOk);

Входные параметры:

libName	- имя библиотеки стилей спецификации,
numb	- номер стиля спецификации,
isOk	- результат изменения описания спецификации.
Возвращаемое значение:

	- не используется.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::SynchronizationBegin

Начало синхронизации.

Синтаксис Automation:

BOOL SynchronizationBegin();

Синтаксис COM:

BOOL SynchronizationBegin();

Возвращаемое значение:

TRUE	- синхронизировать,
FALSE	- синхронизация запрещена.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::Synchronization

Синхронизация проведена.

Синтаксис Automation:

BOOL Synchronization();

Синтаксис COM:

BOOL Synchronization();

Возвращаемое значение:

	- не используется.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::BeginCalcPositions

Начало расчета позиций.

Синтаксис Automation:

BOOL BeginCalcPositions();

Синтаксис COM:

BOOL BeginCalcPositions();

Возвращаемое значение:

TRUE	- расчет позиций,
FALSE	- расчет позиций запрещен.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::CalcPositions

Расчет позиций завершен.

Синтаксис Automation:

BOOL CalcPositions();

Синтаксис COM:

BOOL CalcPositions();

Возвращаемое значение:

	- не используется.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


ksSpecification::BeginCreateObject

Начало расчета позиций.

Синтаксис Automation:

BOOL BeginCreateObject (long typeObj);

Синтаксис COM:

BOOL BeginCreateObject (long typeObj);

Входные параметры:

0	- базовый объект,
1	- объект вспомогательный,
-1	- тип объекта не определен.
Возвращаемое значение:

TRUE	- создать объект спецификации,
FALSE	- создание объекта спецификации запрещеноы.
Примечание:

Индекс метода установлен в перечислении событий для спецификации....


KompasAPIObjectTypeEnum - Типы объектов КОМПАС API
KompasAPIObjectTypeEnum

Типы объектов КОМПАС API

ksObjectUnknown	0	Неизвестный тип
ksObjectApplication	10001	Приложение - основной объект API
ksObjectDocuments	10002	Коллекция документов, открытых в приложении
ksObjectKompasError	10003	Информация о ошибке системы КОМПАС
ksObjectProcessParam	10004	Параметры процесса
ksObjectPropertyTabs	10005	Коллекция закладок панели свойств
ksObjectPropertyTab	10006	Закладка панели свойств
ksObjectPropertyControls	10007	Коллекция элементов управления вкладки Панели свойств
ksObjectPropertySeparator	10008	Разделитель (сепаратор)
ksObjectPropertyEdit	10009	Редактор
ksObjectPropertyList	10010	Раскрывающийся список
ksObjectPropertyCheckBox	10011	Опция
ksObjectPropertyMultiButton	10012	Набор кнопок
ksObjectPropertyUserControl	10013	Пользовательский элемент управления
ksObjectPropertySlideBox	10016	Окно отображения слайда, растрового изображения, файла документа КОМПАС или группы файлов.
ksObjectPropertyGrid	10017	Сетка
ksObjectDocumentFrame	10018	Окно документа
ksObjectDocumentFrames	10019	Коллекция окон документа
ksObjectPropertyManager	10020	Панель свойств
ksObjectDrawingDocument	10021	Документ - Чертеж
ksObjectFragmentDocument	10022	Документ - Фрагмент
ksObjectSpcDocument	10023	Документ - Спецификация
ksObjectPartDocument	10024	Документ - Деталь
ksObjectAssemblyDocument	10025	Документ - Сборка
ksObjectTextDocument	10026	Документ - Текстовый
ksObjectPropertyTextButton	10027	Кнопка с текстом
ksObjectPropertySpinEdit	10028	Поле ввода со счетчиком
ksObjectViewsAndLayersManager	10029	Менеджер слоев и видов графического документа
ksObjectViews	10030	Коллекция видов
ksObjectView	10031	Вид
ksObjectAssociationView	10032	Ассоциативный вид
ksObjectLayerGroups	10033	Коллекция групп слоев
ksObjectDrawingOblects	10034	Коллекция объектов графического документа
ksObjectLayerGroup	10035	Группа слоев
ksObjectLayers	10036	Коллекция слоев
ksObjectLayer	10037	Слой
ksObjectLayerFilterCondition	10038	Условие фильтрации слоев
ksObjectLayerFilterConditions	10039	Коллекция  условий фильтрации слоев
ksObjectDocumentSettings	10040	Настройки документа
ksObjectDocument2DSettings	10041	Настройки графического документа
ksObjectDrawingDocumentSettings	10042	Настройки чертежа
ksObjectFragmentDocumentSettings	10043	Настройки фрагмента
ksObjectLibraryManager	10050	Менеджер библиотек
ksObjectProcedure	10051	Процедура прикладной библиотеки
ksObjectProceduresLibraries	10052	Коллекция прикладных библиотек
ksObjectProceduresLibrary	10053	Прикладная библиотека
ksObjectProcedures	10054	Коллекция процедур прикладной библиотеки
ksObjectInsertsLibraries	10055	Коллекция библиотек элементов(документов)
ksObjectInsertsLibrary	10056	Библиотека элементов(документов)
ksObjectInserts	10057	Коллекция элементов(документов) библиотеки элементов(документов)
ksObjectInsert	10058	Элемент библиотеки элементов(документов)
ksObjectSpecificationDescriptions	10059	Коллекция описаний спецификации
ksObjectSpecificationDescription	10060	Описание спецификации
ksObjectSpecificationStyle	10061	Стиль спецификации
ksObjectSpecificationColumnStyles	10062	Коллекция стилей колонок спецификации
ksObjectSpecificationColumnStyle	10063	Стиль колонки спецификации
ksObjectSpecificationSectionStyles	10064	Коллекция стилей разделов спецификации
ksObjectSpecificationSectionStyle	10065	Стиль раздела спецификации
ksObjectSpecificationTuning	10066	Настройки спецификации
ksObjectSpecificationTuningSections	10067	Коллекция настроек разделов спецификации
ksObjectSpecificationTuningSection	10068	Настройка раздела спецификации
ksObjectSpecificationSubsections	10069	Коллекция подразделов спецификации
ksObjectSpecificationSubsection	10070	Подраздел спецификации
ksObjectAdditionalBlockStyles	10071	Коллекция стилей блоков дополнительных разделов
ksObjectAdditionalBlockStyle	10072	Стиль блока дополнительных разделов
ksObjectAdditionalBlockTunings	10073	Коллекция настроек блоков дополнительных разделов
ksObjectAdditionalBlockTuning	10074	Настройка блока дополнительных разделов
ksObjectAdditionalBlockSectionTunings	10075	Коллекция настроек разделов блока дополнительных разделов
ksObjectAdditionalBlockSectionTuning	10076	Настройка раздела блока дополнительных разделов
ksObjectSheetFormat	10077	Формат листа
ksObjectTextStyle	10078	Параметры стиля текста
ksObjectFont	10079	Параметры шрифта
ksObjectTabulators	10080	Коллекция позиции табуляторов
ksObjectTabulator	10081	Позиция табулятора
ksObjectSpecificationObjects	10082	Коллекция объектов спецификации
ksObjectSpecificationBaseObjects	10083	Коллекция базовых объектов спецификации
ksObjectSpecificationCommentObjects	10084	Коллекция вспомогательных объектов спецификации
ksObjectSpecificationObject	10085	Объект спецификации
ksObjectSpecificationBaseObject	10086	Базовый объект спецификации
ksObjectSpecificationCommentObject	10087	Вспомогательный объект спецификации
ksObjectSpecificationColumns	10088	Коллекция колонок объекта спецификации
ksObjectSpecificationColumn	10089	Колонка объекта спецификации
ksObjectSpecificationColumnItems	10090	Коллекция элементов колонки объекта спецификации
ksObjectSpecificationColumnItem	10091	Элемент колонки объекта спецификации
ksObjectAttachedDocuments	10092	Коллекция присоединенных документов к объекту спецификации
ksObjectAttachedDocument	10093	Параметры присоединенного документа к объекту спецификации
ksObjectPropertyFileName	10094	Выбор файла
ksObjectPropertyColor	10095	Выбор цвета
ksObjectLayoutSheets	10096	Коллекция листов оформления
ksObjectLayoutSheet	10097	Параметры листа оформления


DocumentTypeEnum - Типы документов КОМПАС
DocumentTypeEnum

Типы документов КОМПАС.

ksDocumentUnknown	0	Неизвестный тип
ksDocumentDrawing	1	Чертеж
ksDocumentFragment	2	Фрагмент
ksDocumentSpecification	3	Спецификация
ksDocumentPart	4	Деталь
ksDocumentAssembly	5	Сборка
ksDocumentTextual	6	Текстовый документ


FrameRegimeEnum - Pежим отображения окна
FrameRegimeEnum

Режим отображения окна.

ksFrameMinimize	0	Свернуть окно
ksFrameMaximize	1	Развернуть окно
ksFrameRestore	2	Восстановить окно


ZoomTypeEnum - Тип изменения масштаба отображения документа в окне
ZoomTypeEnum

Тип изменения масштаба отображения документа в окне.

ksZoomNext	0	Следующий масштаб
ksZoomPrevious	1	Предыдущий масштаб
ksZoomAll	2	Показать весь документ


DefaultFixTypeEnum - Тип фиксированности для умолчательных элеменов управления панели свойств
DefaultFixTypeEnum

Тип фиксированности для умолчательных элементов управления Панели свойств.

ksAllFixOff	-1	Все элементы управления расфиксированы
ksAllFix	0	Все элементы управления фиксированы
ksPointFix	1	Фиксирована точка
ksAngleFix	2	Фиксирован угол


SpecPropertyToolBarEnum - Предопределенные спецпанели для панели свойств
SpecPropertyToolBarEnum

Предопределенные спецпанели для Панели свойств.

pnEmpty	1	Пустая панель
pnEscHelp	2	Панель (pbEsc pbHelp)
pnEnterEscHelp	3	Панель (pbEnter pbEsc pbHelp)
pnEnterEscCreateHelp	4	Панель (pbEnter pbEsc pbAutoCreate pbHelp)
pnEnterEscCreateSaveHelp	5	Панель (pbEnter pbEsc pbAutoCreate SaveState pbHelp)
pnEnterEscCreateSaveSearchHelp	6	Панель (pbEnter pbEsc pbAutoCreate SaveState pbNewSearch pbHelp)
pnEnterEscSaveSearchPrevNextHelp	7	Панель (pbEnter pbEsc SaveState pbNewSearch pbPrevObj pbNextObj pbHelp)
pnEnterEscSearchHelp	8	Панель (pbEnter pbEsc pbNewSearch pbHelp)
pnEscSaveSearchHelp	9	Панель (pbEsc SaveState pbNewSearch pbHelp)
pnEnterEscCreateSearchHelp	10	Панель (pbEnter pbEsc pbAutoCreate pbNewSearch pbHelp)
pnEnterEscSaveSearchHelp	11	Панель (pbEnter pbEsc SaveState pbNewSearch pbHelp)
pnEscSaveStateHelp	12	Панель (pbEsc SaveState pbHelp)


SpecPropertyButtonEnum - Предопределенные кнопки панели свойств
SpecPropertyButtonEnum

Предопределенные кнопки панели свойств.

pbEnter	1	Ввод
pbEsc	2	Отказ
pbAutoCreate	3	Автосоздание
pbSaveState	4	Запомнить состояние
pbNewSearch	5	Новый поиск
pbPrevObj	6	Предыдущий объект
pbNextObj	7	Следующий объект
pbHelp	8	Справка


ControlTypeEnum - Типы элементов управления Панели свойств
ControlTypeEnum

Типы элементов управления Панели свойств.

ksControlUnknown	0	Неизвестный тип
ksControlSeparator	1	Разделитель (сепаратор)
ksControlEditInt	2	Редактор целочисленных значений
ksControlEditReal	3	Редактор дробных значений
ksControlEditStr	4	Редактор строковых значений
ksControlListInt	5	Раскрывающийся список целочисленных значений
ksControlListReal	6	Раскрывающийся список дробных значений
ksControlListStr	7	Раскрывающийся список строковых значений
ksControlCheckBox	8	Опция
ksControlMultiButton	9	Набор кнопок
ksControlGrid	10	Сетка
ksControlSlideBox	11	Окно отображения слайда, растрового изображения, группы или файла документа КОМПАС
ksControlUser	12	Пользовательский элемент управления
ksControlTextButton	13	Кнопка с текстом
ksControlSpinInt	14	Счетчик целочисленных значений с полем ввода
ksControlSpinReal	15	Счетчик дробных значений с полем ввода
ksControlFileName	16	Выбор файла
ksControlColor	17	Выбор цвета


PropertyControlNameVisibility - Видимость имени элемента управления на Панели свойств
PropertyControlNameVisibility

Видимость имени элемента управления на Панели свойств.

ksNameAlwaysVisible	0	Всегда показывать имя элемента управления на  Панели свойств.
ksNameHorizontalVisible	1	Показывать имя элемента управления на горизонтальной Панели.
ksNameVerticalVisible	2	Показывать имя элемента управления на вертикальной Панели.
ksNameNoVisible	3	Не показывать имя элемента управления.


SeparatorTypeEnum - Типы элемента управления Панели свойств - разделитель
SeparatorTypeEnum

Типы элемента управления Панели свойств - "разделитель" (сепаратор).

ksSeparatorDownName	0	Вывод имени снизу под сепаратором.
ksSeparatorUpName	1	Вывод имени сверху над сепаратором.
ksSeparatorWithoutLine	2	Вывод только имени; сепаратор отсутствует.
ksSeparatorBMPLeftName	3	Вывод значка с именем слева.
ksSeparatorBMPRightName		Вывод значка с именем справа.


CheckStateEnum - Состояния переключателя поля ввода
CheckStateEnum

Возможные состояния элемента управления Панели свойств "Переключатель состояния поля ввода".

ksCheckChecked	0	Поле ввода активно; на переключателе значок "галочка",
ksCheckUnchecked	1	Поле ввода неактивно; на переключателе пусто,
ksCheckFixed	2	Содержание поля ввода зафиксировано; на переключателе перекрестие.


DocumentCloseOptions - Действия при закрытии документа КОМПАС
DocumentCloseOptions

Действия при закрытии документа КОМПАС.

kdDoNotSaveChanges	0	Закрыть документ без сохранения, если документ был изменен.
kdSaveChanges	1	Закрыть документ, сохранив сделанные изменения.
kdPromptToSaveChanges	2	Выдать запрос на сохранение документа, если он изменен.


ButtonTypeEnum - Типы кнопок для элемента Панели свойств Набор кнопок
ButtonTypeEnum

Типы кнопок для элемента панели свойств "Набор кнопок".

ksPushButton	0	Набор обычных нефиксируемых кнопок
ksCheckButton	1	Набор фиксируемых кнопок
ksRadioButton	2	Набор кнопок с возможностью фиксации только одной кнопки


ProcessTypeEnum- Типы процессов в КОМПАС API
ProcessTypeEnum

Типы процессов КОМПАС API.

prUnknown	0	Неизвестный процесс
prPoint	10000	Точка
prPointAlong	10001	Точки по кривой
prIntersectPoint	10002	Точки пересечения 2-х кривых
prAllIntersectPoint	10003	Все точки пересечения кривой
prPointOnDistance	10004	Точка на кривой на заданном расстоянии от другой точки
prLineSeg	10005	Отрезок
prParallelLineSeg	10006	Параллельный отрезок
prPerpendLineSeg	10007	Перпендикулярный отрезок
prTanLineSegByOutsidePnt	10008	Касательный отрезок через внешнюю точку
prTanLineSegByPntOn	10009	Касательный отрезок через точку кривой
prTangent2LineSeg	10010	Отрезок, касательный к 2 кривым
prContourLineSeg	10011	Отрезок в контуре
prContourParallelLineSeg	10012	Параллельный отрезок в контуре
prContourPerpendLineSeg	10013	Перпендикулярный отрезок в контуре
prContourTanLineSegByOutsidePnt	10014	Касательный отрезок через внешнюю точку в контуре
prLine	10015	Вспомогательная прямая
prVerticalLine	10016	Вертикальная прямая
prHorizontalLine	10017	Горизонтальная прямая
prPerpendLine	10018	Перпендикулярная прямая
prParallelLine	10019	Параллельная прямая
prTangent2Line	10020	Прямая, касательная к 2 кривым
prTanLineByPntOn	10021	Касательная прямая через точку кривой
prTanLineByOutsidePnt	10022	Касательная прямая через внешнюю точку
prBisectorLine	10023	Биссектриса
prCircle	10024	Окружность
prCircle3Points	10025	Окружность по 3 точкам
prCircleCentreOnEl	10026	Окружность с центром на объекте
prCircleTangent	10027	Окружность, касательная к 1 кривой
prCircleTangent2	10028	Окружность, касательная к 2 кривым
prCircleTangent3	10029	Окружность, касательная к 3 кривым
prCircle2Points	10030	Окружность по 2 точкам
prCircleArc	10031	Дуга
prArc3Points	10032	Дуга по 3 точкам
prArc2PointsAngle	10033	Дуга по 2 точкам и углу раствора
prArc2Points	10034	Дуга по 2 точкам
prArcTangent	10035	Дуга, касательная к кривой
prContourArc	10036	Дуга по трем точкам в контуре
prContourConArc	10037	Сопряженная дуга в контуре
prEllipse	10038	Эллипс
prEllipseGabDiagonal	10039	Эллипс по диагонали прямоугольника
prEllipseTangent2	10040	Эллипс, касательный к 2 кривым
prEllipseCentre3Points	10041	Эллипс по центру и 3 точкам
prEllipseParallel3Points	10042	Эллипс по 3 вершинам параллелограмма
prEllipseParallelCentre2Points	10043	Эллипс по центру, середине стороны и вершине параллелограмма
prEllipseGabCentrePoint	10044	Эллипс по центру и вершине прямоугольника
prBezier	10045	Кривая Безье
prContourBezier	10046	Сплайн в контуре
prPolyline	10047	Ломаная
prNurbs	10048	NURBS-кривая
prContourNurbs	10049	NURBS-кривая в контуре
prRectangle	10050	Прямоугольник
prRectangleCentrePoint	10051	Прямоугольник по центру и вершине
prPolygon	10052	Многоугольник
prEquidToObj	10053	Эквидистанта кривой
prAssemblyEquid	10054	Эквидистанта по стрелке
prLineDimension	10055	Линейный размер
prCommonBaseLineDim	10056	Линейный размер от общей базы
prChainLineDim	10057	Линейный цепной размер
prCommonLineLineDim	10058	Линейный размер с общей размерной линией
pr2ObjectsLineDim	10059	Линейный размер от отрезка до точки
prCutLineDimension	10060	Линейный размер с обрывом
prAngleDimension	10061	Угловой размер
prCommonBaseAngleDim	10062	Угловой размер от общей базы
prChainAngleDim	10063	Угловой цепной размер
prCommonLineAngleDim	10064	Угловой размер с общей размерной линией
prCutAngleDimension	10065	Угловой размер с обрывом
prRadialDimension	10066	Радиальный размер
prDiametralDimension	10068	Диаметральный размер
prArcDimension	10069	Размер дуги окружности
prOrdinateDimension	10070	Размер высоты
prLeader	10071	Линия-выноска
prBrandLeader	10072	Знак клеймения
prMarkLeader	10073	Знак маркировки
prPositionLeader	10074	Обозначение позиций
prChangeLeader	10075	Знак изменения
prHatch	10076	Штриховка
prText	10077	Ввод текста
prTable	10078	Ввод таблицы
prRough	10079	Шероховатость
prBase	10080	База
prCutLine	10081	Линия разреза
prViewPointer	10082	Стрелка взгляда
prRemoteElement	10083	Выносной элемент
prAxedLineSegment	10084	Осевая линия по двум точкам
prCentreMarker	10085	Обозначение центра
prAssemblyContour	10086	Собрать контур
prFormTolerance	10087	Допуск формы
prInsertRaster	10088	Вставить растровый объект
prMakeMacro	10089	Объединить в макроэлемент
prInsertFragment	10090	Вставить внешний фрагмент
prCreateSheetView	10091	Создать вид
prInsertOLEObject	10092	Вставить OLE-объект
prCreateStandartSheetView	10093	Создать стандартные виды
prCreateSectionSheetView	10094	Создать вид разрез/сечение
prCreateArbitrarySheetView	10095	Создать произвольный вид
prCreateProjectionSheetView	10096	Создать проекционный вид
prCreateArrowSheetView	10097	Создать вид по стрелке
prCreateRemoteSheetView	10098	Создать вид - выносной элемент
prCreateLocalSheetView	10099	Создать местный вид
prCreateLocalSectionSheetView	10100	Создать местный вид-разрез
prCreateBrokenSheetView	10101	Создать вид с разрывом
prContour	10102	Непрерывный ввод объектов
prChamfer	10103	Фаска между пересекающимися объектами
prChamferPolyContour	10104	Фаска на углах объекта
prFillet	10105	Скругление между пересекающимися объектами
prFilletPolyContour	10106	Скругление на углах объекта
prProjectionObject	10107	Спроецировать объект на плоскость эскиза
prSmartDimension	10108	Авторазмер
prSmartAxedLineSegment	10109	Автоосевая
prMeasurePointProperties	10110	Измерить координаты точки в локальной системе координат
prMeasureDistance2Points	10111	Измерить расстояние между двумя точками
prMeasureDistance2PointsByCurve	10112	Измерить расстояние между двумя точками на кривой
prMeasureDistancePointObject	10113	Измерить расстояние от кривой до точки
prMeasureDistance2Curves	10114	Измерить расстояние между двумя кривыми
prMeasureAngle2Lines	10115	Измерить угол между двумя прямыми/отрезками
prMeasureAngle3Points	10116	Измерить угол, заданный 3 точками
prPerimeter	10117	Измерить длину кривой и суммарную длину
prMeasureArea	10118	Измерить площадь
prMix	10119	Расчет массо-центровочных характеристик плоских фигур
prMix3DRevolution	10120	Расчет массо-центровочных характеристик тел вращения
prMix3DExtrision	10121	Расчет массо-центровочных характеристик тел выдавливания
prObjectShift	10122	Сдвиг выделенных объектов
prObjectShiftAngleLen	10123	Сдвиг с заданием угла и расстояния
prObjectRotate	10124	Поворот выделенных объектов
prObjectScale	10125	Масштабирование выделенных объектов
prObjectSymmetry	10126	Симметричное отображение выделенных объектов
prObjectMultiply	10127	Копирование выделенных объектов
prObjectMultiplyByCurve	10128	Копирование выделенных объектов по кривой
prObjectMultiplyByCircle	10129	Копирование выделенных объектов по окружности
prObjectMultiplyByRing	10130	Копирование выделенных объектов по концентрической сетке
prObjectMultiplyByMesh	10131	Копирование выделенных объектов по сетке
prMoveDeformation	10132	Деформация сдвигом
prRotateDeformation	10133	Деформация поворотом
prScaleDeformation	10134	Деформация масштабированием
prCutObjectPart	10135	Усечь кривую
prCutObjectPartBy2Points	10136	Усечь кривую двумя точками
prJustify	10137	Выровнять кривую по границе
prRemoveChamfer	10138	Удалить фаску или скругление
prBreakCurve	10139	Разбить кривую на две части
prBreakCurveNParts	10140	Разбить кривую на N равных частей
prBlackBox	10141	Очистить заданную область
prConvertToNurbs	10142	Преобразовать геометрический объект или текст в NURBS-кривые
prParametricHorizontal	10143	Установить горизонтальность отрезка или прямой
prParametricVertical	10144	Установить вертикальность отрезка или прямой
prParametricXAlign	10145	Выровнять по горизонтали две характерные точки объектов
prParametricYAlign	10146	Выровнять по вертикали две характерные точки объектов
prParametricMergePoints	10147	Объединить две точки
prParametricPointOnCurve	10148	Задать размещение точки на кривой
prParametricPointSymmetry	10149	Симметрия 2 точек относительно оси
prParametricParallel	10150	Установить параллельность двух прямых и/или отрезков
prParametricNormal	10151	Установить перпендикулярность двух прямых и/или отрезков
prParametricColinear	10152	Установить коллинеарность двух прямых и/или отрезков
prParametricTangent	10153	Установить касание двух кривых
prParametricFixPoint	10154	Зафиксировать координаты точки
prParametricEqualRadiuses	10155	Установить равенство радиусов двух дуг и/или окружностей
prParametricEqualLength	10156	Установить равенство длин двух отрезков
prParametricFixDimension	10157	Зафиксировать значение размера
prParametricChangeDimension	10158	Установить значение размера
prParametricSelected	10159	Параметризовать выделенные объекты
prParametricDeleteObjConstraints	10160	Показать/удалить ограничения
prParametricDeleteAllConstraints	10161	Удалить все ограничения
prSelectObject	10162	Выделить отдельный объект
prSelectLayer	10163	Выделить слой указанием лежащего на этом слое объекта
prSelectSheetView	10164	Выделить вид указанием точки внутри этого вида
prSelectWithRect	10165	Выделить объекты внутри прямоугольной рамки
prSelectOutSideRect	10166	Выделить объекты снаружи от прямоугольной рамки
prSelectWithCutRect	10167	Выделить объекты, пересекающиеся с прямоугольной рамкой
prSelectWithCutPolyline	10168	Выделить объекты, пересекающиеся с ломаной
prExcludeObject	10169	Исключить отдельный объект
prExcludeLayer	10170	Исключить слой указанием лежащего на этом слое объекта
prExcludeSheetView	10171	Исключить вид указанием точки внутри этого вида
prExcludeWithRect	10172	Исключить объекты внутри прямоугольной рамки
prExcludeOutSideRect	10173	Исключить объекты снаружи от прямоугольной рамки
prExcludeWithCutRect	10174	Исключить объекты, пересекающиеся с прямоугольной рамкой
prExcludeWithCutPolyline	10175	Исключить объекты, пересекающиеся с ломаной
prBaseExtrusion	20000	Базовая операция выдавливания
prBossExtrusion	20001	Приклеивание выдавливанием
prCutExtrusion	20002	Вырезать выдавливанием
prExtrusionSurface	20003	Поверхность выдавливания
prBaseRotated	20004	Базовая операция вращения
prBossRotated	20005	Приклеивание вращением
prCutRotated	20006	Вырезать вращением
prRotatedSurface	20007	Поверхность вращения
prBaseEvolution	20008	Кинематическая операция
prBossEvolution	20009	Приклеить кинематически
prCutEvolution	20010	Вырезать кинематически
prEvolutionSurface	20011	Кинематическая поверхность
prBaseLoft	20012	Базовая операция по сечениям
prBossLoft	20013	Приклеивание по сечениям
prCutLoft	20014	Вырезать по сечениям
prLoftSurface	20015	Поверхность по сечениям
prFillet3D	20016	Операция "фаска"
prChamfer3D	20017	Операция "скругление"
prCutByPlane	20018	Операция "сечение поверхностью"
prCutBySketch	20019	Операция "сечение эскизом"
prMeshCopy	20020	Операция копирования по сетке
prCircularCopy	20021	Операция копирования по концентрической сетке
prCurveCopy	20022	Операция копирования по кривой
prMirrorCopy	20023	Операция "зеркальный массив"
prMirrorAllCopy	20024	Операция "зеркально отразить все"
prDerivativePartArray	20025	Операция массив по образцу для сборки
prMeshPartArray	20026	Операция массив по сетке для сборки
prCircularPartArray	20027	Операция массив по концентрической сетке для сборки
prCurvePartArray	20028	Операция массив по кривой для сборки
prIncline	20029	Операция "уклон"
prShell	20030	Операция "оболочка"
prRib	20031	Операция "ребро жесткости"
prHole	20032	Отверстие
prThread	20033	Условное изображение резьбы
prCPlaneOffset	20034	Смещенная плоскость
prCPlane3Points	20035	Плоскость по 3-м точкам
prCPlaneAngle	20036	Плоскость под углом
prCPlaneEdgePoint	20037	Плоскость через ребро и вершину
prCPlaneParallel	20038	Плоскость через вершину параллельно другой плоскости
prCPlanePerpendicular	20039	Плоскость через вершину перпендикулярно ребру
prCPlaneNormalToSurface	20040	Нормальная плоскость
prCPlaneTangentToSurface	20041	Касательная плоскость
prCPlaneLineToEdge	20042	Плоскость через ребро параллельно/перпендикулярно другому ребру
prCPlaneLineToFlat	20042	Плоскость через ребро параллельно/перпендикулярно грани
prCAxis2Points	20043	Ось по двум точкам
prCAxis2Planes	20044	Ось по двум плоскостям
prCAxisConeface	20045	Ось конической грани
prCAxisEdge	20046	Ось, проходящая через ребро
prCAxisOperation	20047	Ось операции
prPolyline3D	20048	Ломаная
prSpline3D	20049	Сплайн
prCylindricSpiral	20050	Цилиндрическая спираль
prConicSpiral	20051	Коническая спираль
prImportedSurface	20052	Импортированная поверхность
prInsertScetch	20053	Эскиз из библиотеки
prEditScetch	20054	Редактировать эскиз
prOrientationScetch	20055	Разместить эскиз на плоскости
prInPlacePartEdit	20056	Редактировать компонент на месте
prOutPlacePartEdit	20057	Редактировать компонент в своем окне
prAddDetail	20058	Вставить деталь в сборку
prAddAssembly	20059	Вставить сборку в сборку
prMateCoincident	20060	Сопряжения компонентов - Совпадение
prMateConcentric	20061	Сопряжения компонентов - Соосность
prMateParallel	20062	Сопряжения компонентов - Параллельность
prMatePerpendicular	20063	Сопряжения компонентов - Перпендикулярность
prMateOnDistance	20064	Сопряжения компонентов - На расстоянии
prMateOnAngle	20065	Сопряжения компонентов - Под углом
prMateTangent	20066	Сопряжения компонентов - Касание
prPartVariables	20067	Просмотр и редактирование переменных
prCopyBilletPart	20068	Создание детали путем копирования детали из другого файла
prMakeMoldCavity	20069	Вычесть компоненты
prMakeUnionComps	20070	Объединить компоненты
prAddPartFromFile	20071	Добавить компонент из файла
prMovePart	20072	Переместить компонент
prRotatePartWC	20073	Повернуть компонент вокруг центральной точки
prRotatePartAxis	20074	Повернуть компонент вокруг оси
prRotatePartPoint	20075	Повернуть компонент вокруг точки
prMakeSplitLine	20076	Построение линии разъема
prMeasureDistance3D	20077	Измерить расстояние и угол
prMeasurePerimeter3D	20078	Измерить длину ребра
prMeasureArea3D	20079	Измерить площадь
prMeasureMix3D	20080	Вычисление массо-центровочных характеристик
prMeasureInterferenceVolumes	20081	Проверка пересечений
prBaseShMtSolid	20082	Листовое тело
prShMtBend	20083	Построение сгиба вдоль ребра листового тела
prShMtCombinedBend	20084	Построение сгибов вдоль ребер листового тела по эскизу
prShMtBendLine	20085	Создание сгиба в листовом теле по прямолинейному объекту
prShMtBendHook	20086	Создание подсечки в листовом теле по прямолинейному объекту
prShMtHole	20087	Построение круглого отверстия на грани листового тела
prShMtCut	20088	Построение выреза на грани листового тела
prBaseShMtPlate	20089	Добавление пластины к листовому телу
prShMtClosedCorner	20090	Замыкание углов двух смежных элементов листового тела
prShMtBendStraighten	20091	Разгибание элементов листового тела
prShMtBendBended	20092	Сгибание элементов листового тела
prShMtBendParamUnfold	20093	Настроить параметры развертки листового тела
prPatchSurface	20094	Создание поверхности по замкнутому контуру
prSewSurface	20095	Сшивка поверхностей
prMakeFaceRemover	20096	Удалить грани
prCPlaneMiddle	20097	Средняя плоскость
prCPointControl	20098	Контрольная точка
prCPointConjunctive	20099	Присоединительная точка


SlideTypeEnum - Тип отображения слайда в окне.
SlideTypeEnum

Тип отображения слайда в окне.

ksSlide	-1	Отображение слайда
ksBitmap	1	Отображение растрового изображения
ksGroup	2	Отображение группы
ksKompasDocument	3	Отображение документа КОМПАС


ConvertCoordTypeEnum - Типы преобразования логических координат в координаты документа.
ConvertCoordTypeEnum

Типы преобразования логических координат в координаты документа.

kcDocument	1	В СК документа.
kcGeoView	2	В геометрическую точку текущего вида.
kcCurrentPlane	3	В СК текущего плоского объекта.


PropertyManagerLayout - Положение панели свойств.
PropertyManagerLayout

Положение панели свойств.

pmFloating	0	Панель не прикреплена
pmAlignTop	1	Панель прикреплена сверху
pmAlignBottom	2	Панель прикреплена снизу
pmAlignRight	3	Панель прикреплена справа
pmAlignLeft	4	Панель прикреплена слева


DrawingObjectTypeEnum - Типы графических объектов.
DrawingObjectTypeEnum

Типы графических объектов.

ksUnknown	-1	Неизвестный объект
ksAllObj	0	Все объекты
ksLineSeg	1	Отрезок
ksLayer	29	Слой
ksView	123	Вид


LtViewType - Типы видов чертежа.
LtViewType

Типы видов чертежа.

vtUnknown	-1	Неизвестный тип
vt_System	0	Системный вид с номером 0; создается автоматически, существует всегда
vt_Normal	1	Обычный вид
vt_Arbitrary	2	Произвольный вид
vt_Standart	3	Стандартный вид
vt_Projected	4	Проекционный вид
vt_Arrow	5	Вид по стрелке
vt_Remote	6	Выносной вид
vt_Section	7	Вид разрез\сечение


FilterConditionStateEnum - Состояние параметра в условии фильтрации слоев.
FilterConditionStateEnum

Состояние параметра в условии фильтрации слоев.

ksStateUndefined	-1	Состояние не определено
ksStateFALSE	0	Состояние FALSE
ksStateTRUE	1	Состояние TRUE


LayersGroupWayEnum - Способ группировки слоев.
LayersGroupWayEnum

Способ группировки слоев.

wgLayers	0	Группировать слои
wgLayersCharacteristics	1	Группировать свойства слоев


Intersection_Type - Типы пересечений.
Intersection_Type

Типы пересечений.

itTangentPoint	1	Пересечение точкой.
itTangentCurve	2	Пересечение вдоль касательной линии.
itTangentSurface	3	Пересечение касательной областью поверхности.
itBody	4	Пересечение образует тело.


ksLibraryTypeEnum - Типы библиотек.
ksLibraryTypeEnum

Типы библиотек.

ksLibraryUnknown	0	Неизвестный тип.
ksLibraryProcedure	1	Прикладная библиотека.
ksLibraryFragment	2	Библиотека фрагментов.
ksLibraryModel	3	Библиотека моделей.


ksLibraryStyleEnum - Стили отображения прикладных библиотек.
ksLibraryStyleEnum

Стили отображения прикладных библиотек.

ksLibraryStyleUnknown	0	Неизвестный стиль
ksLibraryStyleMenu	1	Отображение в виде меню
ksLibraryStyleDialog	2	Отображение в виде диалога
ksLibraryStyleWindow	3	Отображение в виде специального окна
ksLibraryStyleBar	4	Отображение в виде панели инструментов
ksLibraryStyleInvisible	5	Невидимый режим


ksSystemControlStartEnum - Результаты передачи управления системе КОМПАС.
ksSystemControlStartEnum

Результаты передачи управления системе КОМПАС.

ksSCStoppedByMenuCommand	1	Выполнена команда меню Остановить работу библиотеки
ksSCCloseApplication	0	Идет закрытие системы КОМПАС/Не запущен SystemControlStart.
ksSCStopItself	-1	Вызов функции SystemControlStop из-под библиотеки
ksSCAlreadyStarted	-2	Управление системе КОМПАС уже передано той же библиотекой
ksSCStartedByAnotherLibrary	-3	Управление системе КОМПАС уже передано другой библиотекой
ksSCError	-4	Ошибка


ksSpecificationVariantEnum - Варианты оформления спецификации.
ksSpecificationVariantEnum

Варианты оформления спецификации.

ksSpecificationSimple	0	Простая
ksSpecificationVariantA	1	Вариант А
ksSpecificationVariantB	2	Вариант Б
ksSpecificationVariantV	3	Вариант В
ksSpecificationVariantG	4	Вариант Г


ksSpecificationLinkTypeEnum - Режимы связи сборки или чертежа со спецификацией.
SpecificationLinkTypeEnum

Режимы связи сборки или чертежа со спецификацией.

ksLinkNone	0	Нет.
ksLinkOnlyObjects	1	Только вставка объектов спецификации.
ksLinkWithPositionCalculate	2	Связь с расчетом позиций.


ksSpecificationColumnTypeEnum - Типы колонок спецификации.
ksSpecificationColumnTypeEnum

Типы колонок спецификации.

ksSColumnUnknown	0	Неизвестный тип
ksSColumnFormat	1	Формат
ksSColumnZone	2	Зона
ksSColumnPosition	3	Позиция
ksSColumnMark	4	Обозначение
ksSColumnName	5	Наименование
ksSColumnCount	6	Количество
ksSColumnNote	7	Примечание
ksSColumnMass	8	Масса
ksSColumnMaterial	9	Материал
ksSColumnUser	10	Пользовательская
ksSColumnCode	11	Код
ksSColumnFactory	12	Завод изготовитель
ksSColumnDocumentNumber	13	Номер документа
ksSColumnDocumentName	14	Наименование документа
ksSColumnDocumentCode	15	Код документа
ksSColumnCodeOKP	16	Код ОКП


ksValueTypeEnum - Типы значения атрибута, его колонок и колонок спецификации.
ksValueTypeEnum

Типы значения атрибута, его колонок и колонок спецификации.

ksValueTypeInteger	1	Целое со знаком
ksValueTypeFloat	2	Вещественное
ksValueTypeString	3	Строка длиной 255 символов
ksValueTypeRecord	4	Запись


ksSortTypeEnum - Типы сортировки.
ksSortTypeEnum

Типы сортировки.

ksSortTypeNone	0	Нет сортировки
ksSortTypeCompositeUp	1	Составная сортировка по возрастанию колонок
ksSortTypeUp	3	Сортировка по возрастанию колонок
ksSortTypeDocument	4	Сортировка раздела документация
ksSortTypeDown	5	Сортировка по убыванию колонок
ksSortTypeCompositeDown	6	Составная сортировка по убыванию колонок


ksDocumentFormatEnum - Форматы листа.
ksDocumentFormatEnum

Форматы листа.

ksFormatA0	0	Формат А0
ksFormatA1	1	Формат А1
ksFormatA2	2	Формат А2
ksFormatA3	3	Формат А3
ksFormatA4	4	Формат А4
ksFormatA5	5	Формат А5
ksFormatUser	6	ksFormatUser


ksAlignEnum - Выравнивание.
ksAlignEnum

Выравнивание.

ksAlignLeft	0	Выравнивание слева
ksAlignCenter	1	Выравнивание по центру
ksAlignRight	2	Выравнивание справа
ksAlignAllWidth	3	Выравнивание на всю ширину
ksAlignDecimal	4	Выравнивание по десятичной точке


ksTabulatorFillingEnum - Заполнение табулятора.
ksTabulatorFillingEnum

Заполнение табулятора.

ksTabulatorFillingNone	0	Без заполнения
ksTabulatorFillingNone	1	Базовая линия
ksTabulatorFillingCenterLine	2	Средняя линия
ksTabulatorFillingBaseDot	3	Базовые точки
ksTabulatorFillingCenterDot	4	Средние точки
ksTabulatorFillingBaseDash	5	Базовый пунктир
ksTabulatorFillingCenterDash	6	Средний пунктир


ErrorType3d - Ошибки API, 3D.
ErrorType3d

Ошибки 3D API.

Фатальные ошибки - работа прекращается

et3dNo3dDocument	-7	Документ не активизирован или не является деталью/сборкой.
et3dAbort	-1	Аварийное завершение.


ErrorType - Ошибки API, кроме 3D.
ErrorType

Ошибки API, кроме 3D.

Фатальные ошибки - работа прекращается

etNoTXTDocument	-8	Документ не активизирован или не является текстовым документом.
etNo3dDocument	-7	Документ не активизирован или не является деталью/сборкой.
etNoAllDocument	-6	Документ не активизирован.
etNoSPCDocument	-5	Документ не активизирован или не является спецификацией.
etLibraryClose	-4	Принудительное завершение выполнения библиотеки.
etNoPreView	-3	В режиме Preview нельзя создавать или открывать выдимые документы.
etNoDocument	-2	Документ не активизирован или не является листом/фрагментом.
etAbort	-1	Аварийное завершение.
etSuccess	0	Успешное завершение.
Не фатальные ошибки - выполнение продолжается

etError1	1	Попытка выполнить EndObj при неоткрытом составном элементе.
etError2	2	Попытка поставить в сплайн недопустимый объект.
etError3	3	Попытка поставить в штриховку недопустимый объект.
etError4	4	Попытка выполнить delete_mtr при невведенной локальной системе координат.
etError5	5	Ошибка при введении локальной системы координат.
etError6	6	Группа должна быть постоянной.
etError7	7	Объект не существует.
etError8	8	В текущем документе объект не найден.
etError9	9	Нет памяти!
etError10	10	Вырожденный объект.
etError11	11	Неверный указатель группы.
etError12	12	Объект не принадлежит группе.
etError13	13	Объект нельзя поставить в группу.
etError14	14	Группа должна быть временной.
etError15	15	Первый объект не существует или не является кривой.
etError16	16	Второй объект не существует или не является кривой.
etError17	17	Кривые расположены в разных видах.
etError18	18	Не совпадают СК определения кривых (геометрическая и аннотационная).
etError19	19	Первый объект не является кривой.
etError20	20	Второй объект не является кривой.
etError21	21	Объект уже в группе
etError22	22	Временный объект не может быть в постоянной группе.
etError23	23	В документе не предусмотрена работа с видами.
etError24	24	Вид с заданным номером уже существует.
etError25	25	Недопустимое значение номера вида.
etError26	26	В текущем документе вид не найден.
etError27	27	Неверный указатель вида.
etError28	28	Вид не редактируется.
etError29	29	Состояние вида задано неверно.
etError30	30	Параметры текущего вида не меняются.
etError31	31	Неверный указатель макроэлемента.
etError32	32	Должен быть режим редактирования макроэлемента.
etError33	33	Неверный тип параметров редактирования макроэлемента.
etError34	34	В виде остались не закрытые составные элементы.
etError35	35	Неверный указатель слоя.
etError36	36	Недопустимое значение номера слоя.
etError37	37	В текущем виде слой не найден.
etError38	38	У объекта параметров нет.
etError39	39	Не соответствует размер структуры параметров.
etError40	40	Состояние слоя задано неверно.
etError41	41	Параметры текущего слоя не меняются.
etError42	42	В указанном виде редактирование запрещено.
etError43	43	В указанном слое редактирование запрещено.
etError44	44	Параметры системного вида не меняются.
etError45	45	Попытка поставить в текст недопустимый объект.
etError46	46	Неверный ввод текста.
etError47	47	Неверный тип массива.
etError48	48	Неверный указатель массива.
etError49	49	Указатель на структуру параметров должен быть не NULL.
etError50	50	Неверный индекс массива.
etError51	51	Неверное редактирование текста.
etError52	52	Bezier-точка используется неверно.
etError53	53	Неправильный индекс.
etError54	54	Режим работы документа задан неверно.
etError55	55	Режим обработки документов задан неверно.
etError56	56	Неверный указатель документа.
etError57	57	Попытка сохранить документ без имени.
etError58	58	Документ закрыт без сохранения.
etError59	59	Имя файла документа задано неверно.
etError60	60	Объект не соответствует типу поиска.
etError61	61	Не могу создать документ. Документ с таким именем уже открыт.
etError62	62	Поиск объектов задан неверно.
etError63	63	В текущем документе итератор не найден.
etError64	64	Документ не найден или неверная структура файла.
etError65	65	Документ открыт в видимом режиме.
etError66	66	Документ открыт в невидимом режиме.
etError67	67	Нельзя менять тип документа.
etError68	68	Стиль спецификации не найден.
etError69	69	У фрагмента нет размеров листа.
etError70	70	Режим работы документа не меняется.
etError71	71	Вид должен быть активным или текущим.
etError72	72	Тип атрибута задан неверно.
etError73	73	Тип атрибута не найден.
etError74	74	Неверный пароль.
etError75	75	Не найдено определение локального фрагмента.
etError76	76	Атрибут в документе не найден.
etError77	77	Атрибут не принадлежит объекту.
etError78	78	Неправильный номер колонки атрибута.
etError79	79	Неправильный номер строки атрибута.
etError80	80	Родительское окно не найдено.
etError81	81	Библиотека атрибутов не найдена или ошибка в библиотеке.
etError82	82	Текст размера задан неверно.
etError83	83	Параметры привязки размера заданы неверно.
etError84	84	Текст шероховатости задан неверно.
etError85	85	Неверный указатель линейного размера.
etError86	86	Текст линии выноски задан неверно.
etError87	87	Параметры линии выноски заданы неверно.
etError88	88	Попытка поставить в контур недопустимый объект.
etError89	89	У звеньев контура не совпадают узлы.
etError90	90	В документе не предусмотрена работа с техническими требованиями.
etError91	91	В документе не предусмотрена работа с неуказанной шероховатостью.
etError92	92	Попытка поставить в таблицу недопустимый объект.
etError93	93	В составном объекте не предусмотрена  работа с техническими требованиями.
etError94	94	В документе не предусмотрена работа с основной надписью.
etError95	95	В составном объекте не предусмотрена работа с основной надписью.
etError96	96	Попытка поставить в допуск формы недопустимый объект.
etError97	97	Nurbs-точка используется неверно.
etError98	98	Попытка поставить в полилинию недопустимый объект.
etError99	99	Объект должен быть геометрическим.
etError100	100	Эквидистанту в контур включать нельзя.
etError101	101	Неправильная работа с указателем на определение вставного фрагмента.
etError102	102	Рекурсивная вставка фрагмента.
etError103	103	Ошибка чтения файла фрагмента.
etError104	104	Аналогичное определение вставки фрагмента уже есть. Новый комментарий не принимается.
etError105	105	Неправильная работа с указателем на основную надпись.
etError106	106	Неправильная работа с указателем на неуказанную шероховатость.
etError107	107	Неправильная работа с указателем на технические требования
etError108	108	Документ должен быть активным.
etError109	109	Стиль кривой не найден.
etError110	110	Объект должен быть кривой.
etError111	111	Стиль текста не найден.
etError112	112	Неверно заданы параметры для расчета длины текста.
etError113	113	Новый слой должен существовать и быть доступным для редактирования.
etError114	114	Номер раздела задан неверно.
etError115	115	Стиль спецификации не найден.
etError116	116	В текущем документе объект спецификации не найден.
etError117	117	Попытка подключить к объекту СП недопустимый объект.
etError118	118	Тип объекта задан неверно.
etError119	119	Объект заданного типа не редактируется.
etError120	120	Нужно завершить редактирование составного объекта.
etError121	121	Объект должен быть таблицей.
etError122	122	Объект должен быть допуском формы.
etError123	123	Не найден файл для отрисовки слайда.
etError124	124	Неверная структура файла.
etError125	125	Нужно завершить редактирование объекта спецификации.
etError126	126	Объект должен быть макрообъектом.
etError127	127	Попытка поставить в макро недопустимый объект.
etError128	128	Библиотека фрагментов уже закрыта или не открывалась.
etError129	129	Библиотека фрагментов уже открыта.
etError130	130	Файл библиотеки фрагментов не найден.
etError131	131	Ошибка в структуре файла библиотеки фрагментов.
etError132	132	Ошибка в имени файла библиотеки фрагментов.
etError133	133	Ошибка в имени фрагмента для библиотеки фрагментов.
etError134	134	Доступ к фрагменту в библиотеке фрагментов  невозможен.
etError135	135	В документе не предусмотрена работа со спецификацией на листе.
etError136	136	Некорректный вид типа атрибута.
etError137	137	Номер листа спецификации задан неверно.
etError138	138	Документ должен быть открыт в видимом режиме.
etError139	139	Ошибка при обработке картинки для стиля кривой.
etError140	140	Объект должен быть штриховкой.
etError141	141	Объект должен быть текстом.
etError142	142	В документе не предусмотрена работа со спецификацией на листе.
etError143	143	В документе не предусмотрена работа с зонами.
etError144	144	Объект спецификации не редактируется.
etError145	145	Файл c растровым объектом не найден.
etError146	146	Ошибка в определении параметров описания спецификации.
etError147	147	Описание спецификации не найдено.
etError148	148	Имя файла спецификации уже используется в листе.
etError149	149	Описание спецификации данного типа уже есть в листе.
etError150	150	Необходимо завершить текущую операцию.
etError151	151	Редактируемый макрообъект удалять нельзя.
etError152	152	Служебный файл допусков graphic.tol не найден.
etError153	153	Попытка поставить в макро собственный объект.
etError154	154	Неправильно задано оформление первого листа спецификации: не указана таблица, предназначенная для спецификации.
etError155	155	Не найдено оформление первого листа спецификации.
etError156	156	Неправильно задано оформление первого листа спецификации: не найдены ячейки типа Для спецификации.
etError157	157	Неправильно задано оформление второго и последующих листов спецификации: не указана таблица, предназначенная для спецификации.
etError158	158	Не найдено оформление второго и последующих листов спецификации.
etError159	159	Неправильно задано оформление второго и последующих листов спецификации: не найдены ячейки типа Для спецификации.
etError160	160	Попытка изменить параметры объекта только для чтения.
etError161	161	Попытка изменить параметры объекта только для чтения.
etError162	162	Ошибка создания файла библиотеки.
etError163	163	Текущий документ пустой. Сохранение в выбранном формате производиться не будет.
etError164	164	Не найдена библиотека стилей спецификаций.
etError165	165	Размер растра превышает допустимый максимальный размер (65536 x 65536).
etError166	166	Недостаточно памяти для создания растра указанного размера.
etError167	167	Выбранный диапазон страниц в документе не существует.
etError168	168	Неверный указатель линии-выноски.
etError169	169	Имя документа изменить нельзя. Документ с таким именем уже открыт.
etError170	170	Базовый вид должен быть ассоциативным.
etError171	171	Базовый объект должен быть стрелкой вида.
etError172	172	Базовый объект должен быть выносным элементом.
etError173	173	Неправильно задан цвет.
etError174	174	Неправильно заданы единицы измерения.
etError175	175	Нельзя создать пользовательскую панель свойств.
etError176	176	Метод не используется для данного интерфейса.


ksSpecificationObjectTypeEnum -Типы объектов для спецификации.
ksSpecificationObjectTypeEnum

Типы объектов для спецификации.

ksSpecificationUnknownObject	0	Неизвестный тип
ksSpecificationBaseObject	1	Базовый объект
ksSpecificationComment	2	Имя раздела
ksSpecificationSectionName	3	Резервная строка
ksSpecificationBlock	4	Пустая строка
ksSpecificationReserveString	5	Комментарий
ksSpecificationEmptyString	6	Начало блока


ksSpecificationObjectStateEnum -Состояние объекта спецификации.
ksSpecificationObjectStateEnum

Состояние объекта спецификации.

ksObjectStateIndependent	0	Самостоятельный объект
ksObjectStateFromInsert	1	Объект из вставки
ksObjectStateEdit	2	Объект редактировался в документе
ksObjectStateUserSetNotEdit	3	Пользователь снял признак редактирования.


Интерфейс Func2d
Специальные функции библиотеки КОМПАС-Макро

Функции...


Func2d::methods
Функции

addAngBreakDimension

addAngDimension

addAxisLine

addBase

addBezier

addBrandLeader

addCentreMarker

addCreateSheetView

addCutLine

addDiamDimension

addEquidistant

addFragment

addLeader

addLinBreakDimension

addLinDimension

addMarkerLeader

addNurbs

addOrdinatedDimension

addParagraph

addPolyline

addPositionLeader

addRadBreakDimension

addRadDimension

addRemoteElement

addRough

addSpecRough

addTable

addTechnicalDemand

addTolerance

addViewPointer

ClearStamp

GetSpcObjectColumn

GetStampColumn

SetLayer

SetStampColumn

SpcObjectCreate

SpcObjEdit


ClearStamp

Очистить графу штампа чертежа/текстового документа.

Синтаксис:

ClearStamp (Kompas, doc2d, number)


GetSpcObjectColumn

Получить текст объекта спецификации.

Синтаксис:

GetSpcObjectColumn (Kompas, doc2d, spcObj, columnType, ispoln=1, block=0)


GetStampColumn

Получить текст ячейки основной надписи.

Синтаксис:

GetStampColumn (Kompas, doc2d, number=1)


SetLayer

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

Синтаксис:

SetLayer (Kompas, doc2d, number, color=0, state=0, name='')

Параметры:

number	Номер слоя
color	Цвет слоя
state	Состояние слоя
name	Имя слоя


SetStampColumn

Заменить текст в ячейке.

Синтаксис:

SetStampColumn (Kompas, doc2d, number=1, text=())


SpcObjEdit

Редактировать объект спецификации.

Синтаксис:

SpcObjEdit (Kompas, doc2d, spcObj, cols, ispoln=1, block=0)

Параметры:

spcObj	Объект спецификации
cols	Словарь с текстом
ispoln	Номер колонки данного типа, начиная с 1
block	Номер блока исполнений


SpcObjectCreate

Создать объект спецификации.

Синтаксис:

SpcObjectCreate (Kompas, doc2d, cols={}, nameLib='graphic.lyt', styleNumb=1, secNumb=20, subSecNumb=0, numb=0, typeObj=0, ispoln=1, block=0, geom=None, clear=1)

Параметры:

cols	Словарь с текстом
nameLib	Имя библиотеки стилей спецификации
styleNumb	Номер стиля спецификации в библиотеке
secNumb	Номер раздела
subSecNumb	Номер подраздела
numb	Для базового объекта - тип атрибута, который задан по ключам, или 0; Для вспомогательного объекта - номер базового объекта, к которому прикрепляется вспомогательный, либо 0
typeObj	Тип строки спецификации (0- базовый объект,1 – вспомогательный объект)
ispoln	Номер колонки данного типа, начиная с 1
block	Номер блока исполнений
geom	Группа объектов или объект вида
clear	Признак обработки существующей геометрии объекта спецификации:                         1 - удалить геометрию                         0 - добавить новые объекты к существующей геометрии


addAngBreakDimension

Создать угловой размер с обрывом.

Синтаксис:

addAngBreakDimension (Kompas, doc2d, sp0, sp1, sp2, sang1, sang2, sdir=1, srad=10, dtextpos=0, dtextBase=0, dpl=0, dpt=1, dshelfDir=0, dang=45, dlenght=10, recttext=False, prefix='', tolerance='', deviation_top=[], deviation_top_unit=[], deviation_bot=[], deviation_bot_unit=[], unit='', suffix='', tsign=0, value=None, value_unit=[], ttext=None, underline=0)

Параметры:

sp0	Координаты центра размерной дуги - [x,y]
sp1	Координаты точки выхода первой выносной линии - [x,y]
sp2	Координаты точки выхода второй выносной линии - [x,y]
sang1	Начальный угол размерной дуги
sang2	Конечный угол размерной дуги
sdir	Направление - 1, -1
srad	Радиус размерной дуги
dtextpos	Положение текста размерной надписи - 0,>0,<0
dtextBase	Параметр отрисовки текста - 0, 1, 2, 3
dpl	Признак отрисовки первой выносной линии - 0, 1
dpt	Тип стрелки у первой выносной линии размера- 0, 1, 2, 3, 4
dshelfDir	Направление выносной полки - 0, -1, 1, 2, 3
dang	Угол наклона "ножки" выносной полки - от 0 до 360
dlenght	Длина "ножки" выносной полки
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation_top	Верхнее отклонение
deviation_top_unit	Единица измерения верхнее отклонение- текст
deviation_bot	Нижнее отклонение
deviation_bot_unit	Единица измерения нижнее отклонение- текст
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0,1,2,3,>3
value	Строка текста на месте значения - текст
value_unit	Единица измерения строка текста на месте значения - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addAngDimension

Создать угловой размер.

Синтаксис:

addAngDimension (Kompas, doc2d, sp0, sp1, sp2, sang1, sang2, sdir=1, srad=10, dtextpos=0, dtextBase=0, dpl1=0, dpl2=0, dpt1=1, dpt2=1, dshelfDir=0, dang=45, dlenght=10, recttext=False, prefix='', tolerance='', deviation_top=[], deviation_top_unit=[], deviation_bot=[], deviation_bot_unit=[], unit='', suffix='', tsign=0, value=None, value_unit=[], ttext=None, underline=0)

Параметры:

sp0	Координаты центра размерной дуги - [x,y]
sp1	Координаты точки выхода первой выносной линии - [x,y]
sp2	Координаты точки выхода второй выносной линии - [x,y]
sang1	Начальный угол размерной дуги
sang2	Конечный угол размерной дуги
sdir	Направление - 1,-1
srad	Радиус размерной дуги
dtextpos	Положение текста размерной надписи - 0,>0,<0
dtextBase	Параметр отрисовки текста - 0,1,2,3
dpl1	Признак отрисовки первой выносной линии - 0, 1
dpl2	Признак отрисовки второй выносной линии - 0, 1
dpt1	Тип стрелки у первой выносной линии размера- 0, 1, 2, 3, 4
dpt2	Тип стрелки у второй выносной линии размера- 0, 1, 2, 3, 4
dshelfDir	Направление выносной полки - 0, -1, 1, 2, 3
dang	Угол наклона "ножки" выносной полки - от 0 до 360
dlenght	Длина "ножки" выносной полки
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation_top	Верхнее отклонение
deviation_top_unit	Единица измерения верхнее отклонение- текст
deviation_bot	Нижнее отклонение
deviation_bot_unit	Единица измерения нижнее отклонение- текст
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0,1,2,3,>3
value	Строка текста на месте значения - текст
value_unit	Единица измерения строка текста на месте значения - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addAxisLine

Создать объект "Осевая линия".

Синтаксис:

addAxisLine (Kompas, doc2d, p1, p2)


addBase

Проставить обозначения базы.

Синтаксис:

addBase (Kompas, doc2d, p1, p2, text=[], style=0, type=True)

Параметры:

p1	Координаты базовой точки ( начало "опоры")
p2	Координаты конечной точки "опоры"
text	Текст в обозначении базы
style	Стиль текста
type	Способ задания надписи в обозначении базы


addBezier

Создать кривую Безье.

Синтаксис:

addBezier (Kompas, doc2d, close=True, style=1, point=())

Параметры:

closed	Признак замкнутости ломаной
style	Стиль линии
point	Интерфейс параметров узла для кривой Безье ksBezierPointParam


addCentreMarker
addBrandLeader

Создать линию-выноску для обозначения клеймения.

Синтаксис:

addBrandLeader (Kompas, doc2d, ip0, sp=[], iarrowType=0, idirX=1, istyle2=0, Text0=[], Text1=[], Text2=[])

Параметры:

ip0	Координаты базовой точки обозначения клеймения - [x,y]
sp	Список координат точек ломаной линии
iarrowType	Тип знака на "ножке" линии-выноски обозначения клеймения(0, 1, 2)
idirX	Направление полки относительно оси OX (1 -вправо -1-влево)
istyle2	Стиль текстов у "ножки" знака клеймения
Text0	Tекст в знаке клеймения
Text1	Tекст над "ножкой"
Text2	Tекст под "ножкой"


addBrandLeader
addCentreMarker

Проставить обозначение центра.

Синтаксис:

addCentreMarker (Kompas, doc2d, pbaseCurve, p0=(), ptype=0, pangle=0, pstandXmTail=1, pstandXpTail=1, pstandYmTail=1, pstandYpTail=1, plenXmTail=5, plenXpTail=5, plenYmTail=5, plenYpTail=5)

Параметры:

pbaseCurve	Указатель на базовую геометрическую кривую (например, окружность)
pangle	Угол наклона обозначения центра
ptype	Тип обозначения центра (0,1,2)
plenXmTail	Длина изображения полуоси, если оно нестандартное, в отрицательном направлении оси Х
plenXpTail	Длина изображения полуоси, если оно нестандартное, в положительном направлении оси Х
plenYmTail	Длина изображения полуоси, если оно нестандартное, в отрицательном направлении оси
plenYpTail	Длина изображения полуоси, если оно нестандартное, в положительном направлении оси Y
pstandXmTail	Признак стандартного изображения полуоси в отрицательном направлении оси Х
pstandXpTail	Признак стандартного изображения полуоси в положительном направлении оси Х
pstandYmTail	Признак стандартного изображения полуоси в отрицательном направлении оси Y
pstandYpTail	Признак стандартного изображения полуоси в положительном направлении оси Y


addCreateSheetView

Создать новый вид в чертеже.

Синтаксис:

addCreateSheetView (Kompas, doc2d, p0=(), number=0, pscale=1, pangle=0, pcolor=0, pstate=0, pname='')

Параметры:

p0	Координаты точки привязки вида (x,y)
number	Номер вида
pscale	Масштаб вида
pangle	Угол поворота вида в системе координат листа чертежа
pcolor	Цвет вида в активном состоянии
pstate	Состояние вида
pname	Имя вида


addCutLine

Создать линию разреза/сечения.

Синтаксис:

addCutLine (Kompas, doc2d, ip1, ip2, iright=0, istyle=0, op=[], Text=[])

Параметры:

ip1	ip1
ip2	Координаты надписи у второго участка линии разреза/сечения - [x,y]
iright	Положение стрелок относительно линии разреза/сечения (0, 1)
istyle	Стиль текста
op	Список координат точек ломаной линии
Text	Текст


addDiamDimension

Проставить диаметральный размер.

Синтаксис:

addDiamDimension (Kompas, doc2d, sp0, srad, dtextpos=0, dpt1=0, dpt2=1, dshelfDir=0, dang=0, recttext=False, prefix='', tolerance='', deviation=(), unit='', suffix='', tsign=0, value=None, ttext=None, underline=0)

Параметры:

sp0	Координаты центра дуги или окружности [x,y]
srad	Радиус дуги или окружности
dtextpos	Параметр отрисовки текста или длина "ножки"
dpt1	Тип стрелки у первой выносной линии. - 0, 1
dpt2	Тип стрелки у второй выносной линии (для диаметрального размера)- 0, 1, 2, 3, 4
dshelfDir	Направление выносной полки - 0, -1, 1, 2, 3
dang	Угол наклона размерной линии - от 0 до 360
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation	Отклонения - ["+0.01","-0.2"]
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0, 1, 2, 3, >3
value	Текст на месте номинала - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addEquidistant

Построить эквидистанту.

Синтаксис:

addEquidistant (Kompas, doc2d, Obj, pside=0, pcutMode=0, pdegState=0, pradRight=1, radLeft=1, pstyle=1)

Параметры:

Obj	Графический объект - базовая кривая эквидистанты
pside	Признак, с какой стороны от базового объекта строить эквидистанту (0, 1, 2)
pcutMode	Тип обхода углов контура (0, 1)
pdegState	Признак построения вырожденных сегментов эквидистанты (0, 1)
pradRight	Радиус эквидистанты справа по направлению базовой кривой
pradLeft	Радиус эквидистанты слева по направлению базовой кривой
pstyle	Стиль линии (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)


addFragment

Вставить фрагмент.

Синтаксис:

addFragment (Kompas, doc2d, fragment, p0={}, name='', pangle=0, pscale=1, insType=0, layer=0, scPro=True)

Параметры:

fragment	Указатель на фрагмент при вставке локального фрагмента или имя файла фрагмента при вставке внешнего фрагмента
p0	Координаты базовой точки в системе координат вида (x,y)
pangle	Угол поворота в системе координат вида
pscale	Масштаб
name	Имя вставки
insType	Тип вставки (действителен для внешнего фрагмента)-(0 - взять в документ, 1 - внешней ссылкой)
layer	Тип размещения объектов фрагмента по слоям (0 - на "свои" слои, 1- на текущий слой)
scPro	Признак масштабирования длины выносных линий размеров TRUE - выносные линии масштабируются, FALSE - выносные линии не масштабируются


addLeader

Создать линию-выноску.

Синтаксис:

addLeader (Kompas, doc2d, ip0, sp=[], iarrowType=0, idirX=0, isignType=0, iaround=1, Text0=[], Text1=[], Text2=[], Text3=[])

Параметры:

ip0	Координаты базовой точки линии-выноски. - [x,y]
sp	Список координат на точек полилини
iarrowType	Тип указателя линии-выноски
idirX	Направление полки линии-выноски (1 -вправо -1-влево)
isignType	Тип знака на "ножке" линии-выноски
iaround	Признак наличия на линии-выноске знака обработки по контуру (0-выключен, 1- включен)
Text0	Tекст над полкой линии-выноски
Text1	Tекст под полкой линии-выноски
Text2	Tекст над "ножкой" линии-выноски
Text3	Tекст под "ножкой" линии-выноски


addLinBreakDimension

Проставить линейный размер с обрывом.

Синтаксис:

addLinBreakDimension (Kompas, doc2d, sp0, sp1, sp2, dtextpos=0, dpl=0, dpt=1, dshelfDir=0, dang=0, dlenght=0, recttext=False, prefix='', tolerance='', deviation=(), unit='', suffix='', tsign=0, value=None, ttext=None, underline=0)

Параметры:

sp0	Координаты первой точки привязки - [x,y]
sp1	Координаты точки выхода стрелки  - [x,y]
sp2	Координаты точки на размерной линии - [x,y]
dtextpos	Положение текста размерной надписи - 0, >0
dpl	Признак отрисовки выносной линии - 0, 1
dpt	Тип стрелки у первой выносной линии - 0, 1, 2, 3, 4
dshelfDir	Признак отрисовки полки - 0, -1, 1, 2, 3
dang	Угол наклона "ножки" полки - от 0 до 360
dlenght	Длина "ножки" полки
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation	Отклонения - ["+0.01","-0.2"]
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0, 1, 2, 3, >3
value	Текст на месте номинала - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addLinDimension

Создать линейный размер.

Синтаксис:

addLinDimension (Kompas, doc2d, sp0=[], sp1=[], sdx=10, sdy=10, sps=2, sbasePoint=1, dtextpos=0, dtextBase=0, dpl1=0, dpl2=0, dpt1=1, dpt2=1, dshelfDir=0, dang=45, dlenght=10, recttext=False, prefix='', tolerance='', deviation=(), unit='', suffix='', tsign=0, value=None, ttext=None, underline=0)

Параметры:

sp0	Координаты первой точки привязки - [x,y]
sp1	Координаты точки выхода стрелки  - [x,y]
sdx,sdy	Вектор, определяющий положение размерной линии
sps	Признак ориентации размерной линии - 0, 1, 2, 3, 4
sbasePoint	Признак, указывающий, от какой точки откладывать вектор по dx, dy - 1, 2
dtextpos	Положение текста размерной надписи - 0, >0, <0
dtextBase	Параметр отрисовки текста - 0,1,2,3
dpl1	Признак отрисовки первой выносной линии - 0, 1
dpl2	Признак отрисовки второй выносной линии - 0, 1
dpt1	Тип стрелки у первой выносной линии размера - 0, 1, 2, 3, 4
dpt2	Тип стрелки у второй выносной линии размера - 0, 1, 2, 3, 4
dshelfDir	Направление выносной полки - 0, -1, 1, 2, 3
dang	Угол наклона "ножки" полки - от 0 до 360
dlenght	Длина "ножки" выносной полки
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation	Отклонения - ["+0.01","-0.2"]
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0, 1, 2, 3, >3
value	Текст на месте номинала - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addMarkerLeader

Создать линию-выноску для обозначения маркирования.

Синтаксис:

addMarkerLeader (Kompas, doc2d, ip0, sp=[], iarrowType=0, istyle2=0, Text0=[], Text1=[], Text2=[])

Параметры:

ip0	Координаты базовой точки обозначения маркировки - [x,y]
sp	Список с координатами точки за полилинии
iarrowType	Тип знака на "ножке" линии-выноски обозначения маркировки (0, 1, 2)
istyle2	Стиль текстов у "ножки" знака маркировки
Text0	Tекста в знаке клеймения
Text1	Tекста над "ножкой"
Text2	Tекста под "ножкой"


addNurbs

Создать кривую NURBS.

Синтаксис:

addNurbs (Kompas, doc2d, degree=3, close=True, style=1, point=())

Параметры:

degree	Степень сплайна (от 3 до 8)
close	Признак замкнутости ломаной
style	Стиль линии
point	Указатель на интерфейс параметров узла кривой


addOrdinatedDimension

Проставить размер высоты.

Синтаксис:

addOrdinatedDimension (Kompas, doc2d, sp0, sp1, sp2, dtype=1, recttext=False, prefix='', tolerance='', deviation=(), unit='', suffix='', tsign=0, value=None, ttext=None, underline=0)

Параметры:

sp0	Координаты точки, задающей нулевой уровень размера - [x,y]
sp1	Координаты точки, задающей образмериваемый уровень - [x,y]
sp2	Координаты точки, задающей положение размерной надписи - [x,y]
dtype	Текст размерной надписи  - 1 -для вида спереди, с полкой и стрелкой, возможна выносная линия - 2 -для вида сверху без линии-выноски - только текст в рамке - 3 -для вида сверху с линией-выноской
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation	Отклонения - ["+0.01","-0.2"]
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0,1,2,3,>3
value	Текст на месте номинала - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addParagraph

Начать параграф.

Синтаксис:

addParagraph (Kompas, doc2d, p0, istyle=0, iang=0, iheight=0, ihFormat=0, ivFormat=0, iwidth=0, text=[])

Параметры:

p0	Координаты точки привязки текста - [x,y]
istyle	Стиль текста
iang	Угол наклона текста
iheight	Высота блока форматирования
ihFormat	Признак форматирования по горизонтали
ivFormat	Признак форматирования по вертикали
iwidth	Ширина блока форматирования
text	Список элементов текста параграфа


addPolyline

Создать ломаную линию.

Синтаксис:

addPolyline (Kompas, doc2d, closed=True, style=1, point=())

Параметры:

closed	Признак замкнутости ломаной
style	Стиль линии
point	Список координат точек


addPositionLeader

Создать позиционную линию-выноску.

Синтаксис:

addPositionLeader (Kompas, doc2d, ip0, sp=[], iarrowType=0, idirX=1, idirY=1, Text=[])

Параметры:

ip0	Координаты базовой точки линии-выноски обозначения позиции - [x,y]
sp	Список с координатами точек полилинии
idirX	Направление полки линии-выноски относительно оси OX (1, -1)
idirY	Направление полки линии-выноски относительно оси OY (1, -1)
iarrowType	Тип указателя линии-выноски (0, 1, 2)
Text	Текст


addRadBreakDimension

Создать радиальный размер с изломом.

Синтаксис:

addRadBreakDimension(Kompas, doc2d, sp0, srad, dpt=0, dpb=1, dang=0, recttext=False, prefix='', tolerance='', deviation=(), unit='', suffix='', tsign=0, value=None, ttext=None, underline=0)

Параметры:

sp0	Координаты центра дуги или окружности [x,y]
srad	Радиус дуги или окружности
dpt	Тип стрелки
dpb	Длина излома
dang	Угол наклона размерной линии - от 0 до 360
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation	Отклонения - ["+0.01","-0.2"]
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0,1,2,3,>3
value	Текст на мясте номинала - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addRadDimension

Создать радиальный размер.

Синтаксис:

addRadDimension (Kompas, doc2d, sp0, srad, dtextpos=0, dpt1=0, dpt2=1, dshelfDir=0, dang=0, recttext=False, prefix='', tolerance='', deviation=(), unit='', suffix='', tsign=0, value=None, ttext=None, underline=0)

Параметры:

sp0	Координаты центра дуги или окружности [x,y]
srad	Радиус дуги или окружности
dtextpos	Параметр отрисовки текста или длина "ножки"
dpt1	Тип стрелки у первой выносной линии. - 0, 1
dpt2	Тип стрелки у второй выносной линии (для диаметрального размера)- 0, 1, 2, 3, 4
dshelfDir	Направление выносной полки - 0, -1, 1, 2, 3
dang	Угол наклона размерной линии - от 0 до 360
recttext	Текст в рамке - False, True
prefix	Текст до номинала - текст
tolerance	Квалитет - текст
deviation	Отклонения - ["+0.01","-0.2"]
unit	Единица измерения - текст
suffix	Текст после номинала - текст
tsign	Тип условного значка перед номиналом размера - 0, 1, 2, 3, ы>3
value	Текст на месте номинала - текст
ttext	Текст под размерной надписью - текст
underline	Подчеркнутый текст


addRemoteElement

Создать объект "Выносной элемент".

Синтаксис:

addRemoteElement (Kompas, doc2d, ip0=(), ip1=(), iheight=10, iradius=10, ishelfDir=1, isignType=0, ismooth=2, iwidth=20, Text=[])

Параметры:

ip0	Координаты вершины ("острия") стрелки направления взгляда - [x,y]
ip1	Координата x начала полки - [x,y]
iheight	Высота выносного элемента (для прямоугольника и скругленного прямоугольника)
iradius	Радиус окружности (для окружности)
ishelfDir	Направление полки (1, -1, 2, 3)
isignType	Тип значка (0, 1, 2)
ismooth	Радиус скругления (для прямоугольника)
iwidth	Ширина выносного элемента (для прямоугольника и скругленного прямоугольника)
Text	текст


addRough

Проставить обозначение шероховатости.

Синтаксис:

addRough (Kompas, doc2d, rp0, rstyle=1, rtype=0, raround=0, rang=90, Text0=[], Text1=[], Text2=[], Text3=[], shpsh=0, shang=0, shlength=0)

Параметры:

rp0	Координаты точки привязки знака шероховатости - [x,y]
rstyle	Стиль текста
rtype	Тип знака шероховатости
raround	Признак наличия обозначения контура
rang	Угол наклона оси знака шероховатости к оси OX
Text0	Tекст над знаком шероховатости
Text1	Tекст над полкой знака шероховатости
Text2	Первый текст под полкой
Text3	Второй текст под полкой
shpsh	Направление полки (относительно оси OX)
shang	Угол наклона размерной линии диаметрального и радиального размеров
shlength	Длина "ножки" выносной линии размера


addSpecRough

Задать шероховатость неуказанных поверхностей.

Синтаксис:

addSpecRough (Kompas, doc2d, s, sign=1, style=0, t=True)

Параметры:

s	Текст
sign	Тип знака неуказанной шероховатости (0,1,2)
style	Номер стиля текста
t	Признак наличия знака в скобках (False,True)


addTable

Создать таблицу в графическом документе.

Синтаксис:

addTable (Kompas, doc2d, line, text)


addTechnicalDemand

Создать технические требования в графическом документе.

Синтаксис:

addTechnicalDemand (Kompas, doc2d, Rect=(), pstyle=0, Text=())

Параметры:

Rect	Список координат точек построения на прямоугольника
pstyle	Номер стиля текста
Text	Текст


addTolerance

Проставить допуск формы.

Синтаксис:

addTolerance (Kompas, doc2d, p0, ptype=0, op=[], Text=[])


addViewPointer

Создать стрелку направления взгляда.

Синтаксис:

addViewPointer (Kompas, doc2d, ip1=(), ip2=(), it=(), istyle=0, Text=[])

Параметры:

ip1	Координаты вершины ("острия") стрелки направления взгляда - [x,y]
ip2	Координаты конечной точки стрелки направления взгляда - [x,y]
it	Координаты точки привязки текста- [x,y]
istyle	Стиль текста
Text	Текст


Интерфейсы ksUnionComponentsDefinition, IUnionComponentsDefinition
ksUnionComponentsDefinition,
IUnionComponentsDefinition

Интерфейс операции объединения компонентов.

ksUnionComponentsDefinition	- интерфейс Automation
IUnionComponentsDefinition	- интерфейс COM
Методы...

Примечания.

1. Позволяет создать объединение двух или более деталей, входящих в сборку в новой или уже существующей детали.

2. Операция доступна в режиме редактирования детали в контексте сборки.

3. Для входа в режим редактирования детали в контексте сборки используется функция ksPart::BeginEdit.

4. В операции объединения могут участвовать только детали. Объединить деталь с подсборкой невозможно.

5. При необходимости вы можете скрыть или исключить из расчета детали, объединением которых является новая деталь.


ksUnionComponentsDefinition::methods
ksUnionComponentsDefinition
методы

PartArray


ksUnionComponentsDefinition::PartArray
IksUnionComponentsDefinition::PartArray

Получить массив объединяемых компонентов.

Синтаксис Automation:

LPDISPATCH PartArray();

Синтаксис COM:

LPPARTCOLLECTION PartArray();

Возвращаемое значение:

	Указатель на интерфейс коллекции компонентов ksPartCollection или IPartCollection.


Интерфейсы ksMoldCavityDefinition, IMoldCavityDefinition
ksMoldCavityDefinition,
IMoldCavityDefinition

Интерфейс операции вычитания компонентов.

ksMoldCavityDefinition	- интерфейс Automation
IMoldCavityDefinition	- интерфейс COM
Свойства...

Методы...

Примечания.

1. Позволяет создать полость, имеющую форму другой детали.

2. Операция доступна в режиме редактирования детали в контексте сборки.

3. Для входа в режим редактирования детали в контексте сборки используется функция ksPart::BeginEdit.

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

5. Если необходимо, чтобы размеры создаваемой полости отличались от размеров вычитаемой детали, нужно задать коэффициент масштабирования в процентах scale.


ksMoldCavityDefinition::props
ksMoldCavityDefinition
свойства

scale


ksMoldCavityDefinition::methods
ksMoldCavityDefinition
методы

GetScaleCentre

PartArray

SetScaleCentre


ksMoldCavityDefinition::scale
IsMoldCavityDefinition::scale

Коэффициент маcштабирования, %.

Тип данных - double.

Синтаксис Automation:

scale = iObject.scale	Получить свойство (*)
iObject.scale = scale	Установить свойство (*)
scale = iObject.GetScale()	Получить свойство (**)
iObject.SetScale (scale)	Установить свойство (**)


ksMoldCavityDefinition::PartArray
IksMoldCavityDefinition::PartArray

Получить массив вычитаемых компонентов.

Синтаксис Automation:

LPDISPATCH PartArray();

Синтаксис COM:

LPPARTCOLLECTION PartArray();

Возвращаемое значение:

	Указатель на интерфейс коллекции компонентов ksPartCollection или IPartCollection.


ksMoldCavityDefinition::GetScaleCentre
IksMoldCavityDefinition::GetScaleCentre

Получить вершину, относительно которой выполняется масштабирование.

Синтаксис Automation:

LPDISPATCH GetScaleCentre();

Синтаксис COM:

LPENTITY GetScaleCentre();

Возвращаемое значение:

Указатель на интерфейс коллекции компонентов ksEntity или IEntity.
NULL	- если вершина не задана
Примечания.

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


ksMoldCavityDefinition::SetScaleCentre
IksMoldCavityDefinition::SetScaleCentre

Установить вершину, относительно которой выполняется масштабирование.

Синтаксис Automation:

VARIANT_BOOL SetScaleCentre( LPDISPATCH vert );

Синтаксис COM:

BOOL SetScaleCentre( LPENTITY vert );

Входные параметры:

vert	Указатель на интерфейс коллекции компонентов ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи
Примечания.

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


Интерфейсы ksCoordinate3dCollection, ICoordinate3dCollection
ksCoordinate3dCollection,
ICoordinate3dCollection

Интерфейс коллекции трехмерных координат.

ksCoordinate3dCollection	- интерфейс Automation
ICoordinate3dCollection	- интерфейс COM
Методы...

Примечания.

1. Коллекция содержит список трехмерных координат точек. Используется при получении результатов расчета пересечений кривой с деталью, телом или поверхностью.

2. Получить интерфейс коллекции можно с помощью метода ksDocument3D::GetInterface с параметром o3dType = o3d_coordinate3dCollection.


ksCoordinate3dCollection::methods
ksCoordinate3dCollection
методы

GetByIndex

GetCount

GetSafeArray


ksCoordinate3dCollection::GetCount
IksCoordinate3dCollection::GetCount

Получить количество точек.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	Количество точек в коллекции.


ksCoordinate3dCollection::GetByIndex
IksCoordinate3dCollection::GetByIndex

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

Синтаксис Automation:

BOOL GetByIndex (long index, double* x, double* y, double* z);

Синтаксис COM:

BOOL GetByIndex (long index, double* x, double* y, double* z);

Входные параметры:

index	- индекс точки.
Выходные параметры:

x, y, z	- координаты точки.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи


ksCoordinate3dCollection::GetSafeArray
IksCoordinate3dCollection::GetSafeArray

Сформировать массив SAFEARRAY координат точек.

Синтаксис Automation:

BOOL GetSafeArray (VARIANT* pArray);

Синтаксис COM:

BOOL GetSafeArray (VARIANT* pArray);

Выходные параметры:

pArray	- одномерый массив вещественных чисел VT_ARRAR | VT_R8.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи
Примечания.

Координаты точек в полученном массиве лежат в следующей последовательности:
x0, y0, z0, x1, y1, z1, ...xi, yi, zi


Интерфейсы ksIntersectionResult, IIntersectionResult
ksIntersectionResult,
IIntersectionResult

Интерфейс результатов пересечения тел.

ksIntersectionResult	- интерфейс Automation
IIntersectionResult	- интерфейс COM
Методы...

Примечание:

1. Интерфейс используется при проверке наличия пересечения тел в сборке. См. функцию ksBody::CheckIntersectionWithBody.

2. Два тела в сборке могут иметь более одного пересечения. См. также Типы пересечений.


ksIntersectionResult::methods
ksIntersectionResult
методы

GetCount

GetIntersectionType


ksIntersectionResult::GetCount
IIntersectionResult::GetCount

Получить количество пересечений.

Синтаксис Automation:

long GetCount();

Синтаксис COM:

long GetCount();

Возвращаемое значение:

	Количество пересечений.


ksIntersectionResult::GetIntersectionType
IIntersectionResult::GetIntersectionType

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

Синтаксис Automation:

long GetIntersectionType (long index);

Синтаксис COM:

long GetIntersectionType( long index );

Входные параметры:

index	- индекс пересечения.
Возвращаемое значение:

	Тип пересечения.
Примечание:

Два тела в сборке могут иметь более одного пересечения. См. также Типы пересечений.


Интерфейсы ksPlaneMiddleDefinition, IPlaneMiddleDefinition
ksPlaneMiddleDefinition,
IPlaneMiddleDefinition

Интерфейс элемента модели (оси, плоскости, формообразующего элемента)

ksPlaneMiddleDefinition	- интерфейс Automation
IPlaneMiddleDefinition	- интерфейс COM
Свойства...

Методы...

Описание:

Плоскость проходит через биссектрису для двух плоских или прямолинейных объектов. Может быть построена для двух прямолинейных или плоских объектов типа Ребро, Конструктивная ось, Грань (плоская), Конструктивная плоскость.


ksPlaneMiddleDefinition::props
ksPlaneMiddleDefinition
свойства

position


ksPlaneMiddleDefinition::methods
ksPlaneMiddleDefinition
методы

GetObject

GetSurface

SetObject


ksPlaneMiddleDefinition::position
IPlaneMiddleDefinition::position

Положение плоскости.

Тип данных - BOOL.

Значения свойства:

TRUE	- положение 1 : позволяет построить биссекторную плоскость,,
FALSE	- положение 2 : позволяет построить плоскость, перпендикулярную биссекторной и проходящую через прямую или точку пересечения опорных объектов.
Синтаксис Automation:

position = iDocument3D.position	Получить свойство (*)
iDocument3D.position = position	Установить свойство (*)
position = iDocument3D.GetPosition()	Получить свойство (**)
iDocument3D.SetPosition (position)	Установить свойство (**)


ksPlaneMiddleDefinition::GetObject
IPlaneMiddleDefinition::GetObject

Получить указатель на интерфейс опорного объекта с указанным номером.

Синтаксис Automation:

LPDISPATCH GetObject (long Number);

Синтаксис COM:

LPENTITY GetObject (long Number);

Входные параметры:

Number	- номер объекта (1 или 2).
Возвращаемое значение:

	указатель на интерфейс ksEntity или IEntity опорного объекта.
Примечание:

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


ksPlaneMiddleDefinition::SetObject
IPlaneMiddleDefinition::SetObject

Установить указатель на интерфейс опорного объекта с указанным номером.

Синтаксис Automation:

VARIANT_BOOL SetObject (long Number, LPDISPATCH Val);

Синтаксис COM:

BOOL SetObject (long Number, LPENTITY Val);

Входные параметры:

Number	- номер объекта (1 или 2).
Val	- указатель на интерфейс ksEntity или IEntity опорного объекта
Возвращаемое значение:

TRUE	- в случае успешного завершения,
FALSE	- в случае неудачи.
Примечание:

Позволяет задать опорный объект, на котором будет построена средняя плоскость. Опорным объектом может быть Ребро, Конструктивная ось, Грань (плоская), Конструктивная плоскость.


ksPlaneMiddleDefinition::GetSurface
IPlaneMiddleDefinition::GetSurface

Получить указатель на интерфейс математической поверхности.

Синтаксис Automation:

LPDISPATCH GetSurface();

Синтаксис COM:

LPSURFACE GetSurface();

Возвращаемое значение:

указатель на интерфейс ksSurface


Интерфейсы ksControlPointDefinition, IControlPointDefinition
ksControlPointDefinition,
IControlPointDefinition

Интерфейс параметров объекта "Контрольная точка"

ksControlPointDefinition	- интерфейс Automation
IControlPointDefinition	- интерфейс COM
Методы...

Описание:

Объект "Контрольная точка" создается в детали или сборке и используется для размещения этой детали или сборки в указанной вершине траектории трассы.

"Контрольная точка" может указываться в качестве вершины при создании или редактировании траектории.

В детали (или сборке) может находиться любое количество объектов "Контрольная точка".


ksControlPointDefinition::methods
ksControlPointDefinition
методы

GetPoint

GetVertex

SetVertex


ksControlPointDefinition::GetVertex
IControlPointDefinition::GetVertex

Получить указатель на интерфейс опорной вершины.

Синтаксис Automation:

LPDISPATCH GetVertex();

Синтаксис COM:

LPENTITY GetVertex();

Возвращаемое значение:

	указатель на интерфейс плоскости ksEntity или IEntity.
Примечание:

Возвращает указатель на интерфейс опорной вершины, на которой построена контрольная точка. Опорной вершиной может быть объект "вершина" (тип o3d_vertex).


ksControlPointDefinition::SetVertex
IControlPointDefinition::SetVertex

Установить указатель на интерфейс опорной вершины.

Синтаксис Automation:

VARIANT_BOOL SetVertex (LPDISPATCH Val);

Синтаксис COM:

BOOL SetVertex (LPENTITY Val);

Входной параметр:

Val	- указатель на интерфейс опорной вершины ksEntity или IEntity.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Позволяет задать опорную вершину, на которой будет построена контролная точка. Опорной вершиной может быть объект "вершина" (тип o3d_vertex).


ksControlPointDefinition::GetPoint
IControlPointDefinition::GetPoint

Получить координаты точки.

Синтаксис Automation:

VARIANT_BOOL GetPoint (double * X, double * Y, double * Z);

Синтаксис COM:

BOOL GetPoint (double * X, double * Y, double * Z);

Выходные параметры:

X, Y, Z	- координаты точки.


Интерфейс ILibraryManager
ILibraryManager

Интерфейс Менеджера библиотек.

Иерархия:

Свойства...

Методы...

Примечание:

1. Данный интерфейс объединяет работу с библиотеками процедур (файлы *.rtw и *.dll ) и библиотеками документов: фрагментов (файлы *.lfr ) и моделей (файлы *.l3d). Интерфейс позволяет выполнять следующие действия:

- получить коллекции соответствующих библиотек, активный узел в

менеджере библиотек, его название и комментарий;

- получить и управлять положением и видимостью  Менеджера библиотек.

2. Данный интерфейс можно получить у приложения IApplication::LibraryManager.


ILibraryManager::props
ILibraryManager
свойства

ActiveFolder

ActiveFolderComment

CurrentLibrary

FragmentsLibraries

Layout

ModelsLibraries

ProceduresLibraries

SystemControlStartLibrary

Visible


ILibraryManager::methods
ILibraryManager
методы

AddFolder

SetCurrentLibrary

RemoveFolder


ILibraryManager::ProceduresLibraries

Коллекция прикладных библиотек.

Тип данных - IProceduresLibraries.

Синтаксис Automation:

ProceduresLibraries = iObject.ProceduresLibraries	Получить свойство (*)
ProceduresLibraries = iObject.GetProceduresLibraries()	Получить свойство (**)
Синтаксис COM:

iObject->get_ProceduresLibraries (&ProceduresLibraries)	Получить свойство
Примечание:

1. Свойство позволяет получить коллекцию процедурных библиотек, которые зарегистрированы в Менеджере библиотек.

2 .Под процедурной библиотекой понимается библиотека, разработаная в какой-либо среде программирования с использованием Компас API.

3. Следует различать следующие состояния процедурных библотек:

- зарегистрирована в Менеджере библиотек; имеется описание библиотеки в Менеджере,

- подключена; библиотека подключена к задаче, эта библиотека отображается в меню "Библиотеки", рядом с ее названием в списке показан знак "галочка",

- библиотека выполняется (является текущей); вызвана команда (процедура) библиотеки или библиотека подписалась на события системы КОМПАС. В случае выполнения библиотечной команды библиотеку нельзя отключить и удалить описание библиотеки из Менеджера библиотек.

4. Если библиотека защищена лицензией, то при подключении библиотеки она захватывает лицензию.


ILibraryManager::FragmentsLibraries

Коллекция библиотек фрагментов.

Тип данных - Указатель на коллекцию библиотек документов IInsertsLibraries.

Синтаксис Automation:

FragmentsLibraries = iObject.FragmentsLibraries	Получить свойство (*)
LayerGroups = iObject.GetLayerGroups()	Получить свойство (**)
Синтаксис COM:

iObject->get_FragmentsLibraries (&FragmentsLibraries)	Получить свойство
Примечание:

1. Свойство позволяет получить коллекцию библиотек фрагментов, которые зарегистрированы в Менеджере библиотек.

2. Под библиотекой фрагментов понимается библиотека документов КОМПАС, состоящая из фрагментов.

3. Следует различать следующие состояния библиотек фрагментов:

- зарегистрирована в Менеджере библиотек; имеется описание библиотеки в Менеджере,

- подключена; эта библиотека отображается в меню "Библиотеки", рядом с ее названием в списке показан знак "галочка",

4. Если библиотека защищена лицензией, то при подключении библиотеки она захватывает лицензию.

5. Фрагменты из подключеной библиотеки могут быть вставлены в графические документ системы КОМПАС.

6. Если библиотека не защищена, ее можно редактировать.


ILibraryManager::ModelsLibraries

Коллекция библиотек моделей.

Тип данных - Указатель на коллекцию библиотек документов IInsertsLibraries.

Синтаксис Automation:

ModelsLibraries = iObject.ModelsLibraries	Получить свойство (*)
ModelsLibraries = iObject.ModelsLibraries()	Получить свойство (**)
Синтаксис COM:

iObject->get_ModelsLibraries (&ModelsLibraries)	Получить свойство
Примечание:

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

2. Под библиотекой фрагментов понимается библиотека документов КОМПАС, состоящая из деталей и сборок.

3. Следует различать следующие состояния библиотек фрагментов:

- зарегистрирована в Менеджере библиотек; имеется описание библиотеки в Менеджере,

- подключена; эта библиотека отображается в меню "Библиотеки", рядом с ее названием в списке показан знак "галочка",

4. Если библиотека защищена лицензией, то при подключении библиотеки она захватывает лицензию.

5. Модели из подключеной библиотеки могут быть вставлены в документ-модель системы КОМПАС.

6. Если библиотека не защищена, ее можно редактировать.


ILibraryManager::Visible

Свойство видимости Менеджера библиотек.

Тип данных - BOOL.

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible (Visible)	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible (&Visible)	Получить свойство
iObject->put_Visible (Visible)	Установить свойство
Примечание:

Позволяет получить и установить свойство видимости Менеджера библиотек.


ILibraryManager::Layout

Положение Менеджера библиотек (вверху, внизу, слева, справа, плавающий).

Тип данных - PropertyManagerLayout.

Синтаксис Automation:

Layout = iObject.Layout	Получить свойство (*)
Layout = iObject.GetLayout()	Получить свойство (**)
Синтаксис COM:

iObject->get_Layout (&Layout)	Получить свойство
Примечание:

Позволяет получить положение Менеджера библиотек.


ILibraryManager::ActiveFolder

Активный каталог в окне менеджера библиотек.

Тип данных - BSTR (строка).

Синтаксис Automation:

ActiveFolder = iObject.ActiveFolder	Получить свойство (*)
iObject.ActiveFolder = ActiveFolder	Установить свойство (*)
ActiveFolder = iObject.GetActiveFolder()	Получить свойство (**)
iObject.SetActiveFolder (ActiveFolder)	Установить свойство (**)
Синтаксис COM:

iObject->get_ActiveFolder (&ActiveFolder)	Получить свойство
iObject->put_ActiveFolder (ActiveFolder)	Установить свойство
Примечание:

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


ILibraryManager::ActiveFolderComment

Комментарий активного каталога.

Тип данных - VARIANT.

Синтаксис Automation:

ActiveFolderComment = iObject.ActiveFolderComment	Получить свойство (*)
iObject.ActiveFolderComment = ActiveFolderComment	Установить свойство (*)
ActiveFolderComment = iObject.GetActiveFolderComment()	Получить свойство (**)
iObject.SetActiveFolderComment (ActiveFolderComment)	Установить свойство (**)
Синтаксис COM:

iObject->get_ActiveFolderComment (&ActiveFolderComment)	Получить свойство
iObject->put_ActiveFolderComment (ActiveFolderComment)	Установить свойство
Примечание:

Коментарий текущего каталога может быть многострочным. Поэтому свойство возвращает или принимает переменную типа VARIANT на безопасный массив строк SAFEARRAY (VT_ARRAY | VT_BSTR).


ILibraryManager::CurrentLibrary

Текущая прикладная библиотека.

Тип данных - IProceduresLibrary.

Синтаксис Automation:

CurrentLibrary = iObject.CurrentLibrary	Получить свойство (*)
CurrentLibrary = iObject.GetCurrentLibrary()	Получить свойство (**)
Синтаксис COM:

iObject->get_CurrentLibrary (&CurrentLibrary)	Получить свойство
Примечание:

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

2. Текущей является библиотека, у которой непосредственно выполняется команда или вызван обработчик события.


ILibraryManager::SystemControlStartLibrary

Получить прикладную библиотеку, которая запустила SystemControlStart.

Тип данных - IProceduresLibrary.

Синтаксис Automation:

SystemControlStartLibrary = iObject.SystemControlStartLibrary	Получить свойство (*)
SystemControlStartLibrary = iObject.GetSystemControlStartLibrary()	Получить свойство (**)
Синтаксис COM:

iObject->get_SystemControlStartLibrary (&CurrentLibrary)	Получить свойство
Примечание:

1. Свойство позволяет вернуть интерфейс библиотеки.

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

3. Управление возвращается библиотеке при вызове функции SystemControlStop из этой же библиотеки или выполнении соответствующей команды меню.


ILibraryManager::AddFolder

Добавить новый каталог в Менеджер библиотек.

Синтаксис Automation:

void AddFolder (BSTR PathFolder);

Синтаксис COM:

HRESULT AddFolder ([in] BSTR PathFolder);

Входные параметры:

PathFolder	- путь в Менеджере библиотек к каталогу. Если каталог является вложенным , т. е. добавляется в другой каталог, каталоги внутри пути отделяются символом "|".


ILibraryManager::RemoveFolder

Удалить каталог из Менеджера библиотек.

Синтаксис Automation:

void RemoveFolder (BSTR PathFolder);

Синтаксис COM:

HRESULT RemoveFolder ([in] BSTR PathFolder);

Входные параметры:

PathFolder	- путь в Менеджере библиотек к каталогу. Если каталог является вложенным , т. е. добавляется в другой каталог, каталоги внутри пути отделяются символом "|".


ILibraryManager::SetCurrentLibrary

Установить текущую прикладную библиотеку.

Синтаксис Automation:

BOOL SetCurrentLibrary (LPDISPATCH pVal);

Синтаксис COM:

HRESULT SetCurrentLibrary ([in] IProceduresLibrary* pVal, [out, retval] VARIANT_BOOL* result);

Входные параметры:

pVal	- интерфейс библиотеки IProceduresLibrary, которую нужно сделать текущей.
Возвращаемое значение:

TRUE	- библиотека стала текущей,
FALSE	- в случае ошибки.
Примечание:

 Данный метод следует использовать осторожно, иначе можно нарушить последовательность выполнения библиотек.

Метод может быть применен к подключенной библиотеке.

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

1. При помощи свойства SystemControlStartLibrary получить библиотеку, вызвавшую SystemControlStart.

2. Сделать ее текущей методом SetCurrentLibrary.

3. При помощи метода ksSystemControlStop вернуть управление библиотеке, которая запустила SystemControlStart.

4. Восстановить в качестве текущей выполняемую ранее библиотеку.


Интерфейс ISheetFormat
ISheetFormat

Интерфейс формата листа.

Иерархия:

Свойства...

Примечание:

1. Данный интерфейс позволяет получить и изменить текущий формат листа для документа.

2. Интерфейс можно получить у стиля спецификации ISpecificationStyle::Format.


ISheetFormat::props
ISheetFormat
свойства

Format

FormatHeight

FormatMultiplicity

FormatWidth

VerticalOrientation


ISheetFormat::Format

Формат листа.

Тип данных - из перечисления ksDocumentFormatEnum.

Синтаксис Automation:

Format = iObject.Format	Получить свойство (*)
iObject.Format = Format	Установить свойство (*)
Format = iObject.GetFormat()	Получить свойство (**)
iObject.SetFormat (Format)	Установить свойство (**)
Синтаксис COM:

iObject->get_Format (&Format)	Получить свойство
iObject->put_Format (Format)	Установить свойство


ISheetFormat::FormatMultiplicity

Кратность формата листа.

Тип данных - long.

Синтаксис Automation:

FormatMultiplicity = iObject.FormatMultiplicity	Получить свойство (*)
iObject.FormatMultiplicity = FormatMultiplicity	Установить свойство (*)
FormatMultiplicity = iObject.GetFormatMultiplicity()	Получить свойство (**)
iObject.SetFormatMultiplicity (FormatMultiplicity)	Установить свойство (**)
Синтаксис COM:

iObject->get_FormatMultiplicity (&FormatMultiplicity)	Получить свойство
iObject->put_FormatMultiplicity (FormatMultiplicity)	Установить свойство
Примечание:

1. Свойство используется только для стандартных форматов листа (см. ISheetFormat::Format).

2. Свойство не используется для текстовых документов.


ISheetFormat::VerticalOrientation

Вертикальная ориентация формата листа.

Тип данных - long.

Синтаксис Automation:

VerticalOrientation = iObject.VerticalOrientation	Получить свойство (*)
iObject.VerticalOrientation = VerticalOrientation	Установить свойство (*)
VerticalOrientation = iObject.GetVerticalOrientation()	Получить свойство (**)
iObject.SetVerticalOrientation (VerticalOrientation)	Установить свойство (**)
Синтаксис COM:

iObject->get_VerticalOrientation (&VerticalOrientation)	Получить свойство
iObject->put_VerticalOrientation (VerticalOrientation)	Установить свойство
Примечание:

Свойство используется только для стандартных форматов листа (см. ISheetFormat::Format).


ISheetFormat::FormatWidth

Ширина пользовательского формата.

Тип данных - long.

Синтаксис Automation:

FormatWidth = iObject.FormatWidth	Получить свойство (*)
iObject.FormatWidth = FormatWidth	Установить свойство (*)
FormatWidth = iObject.GetFormatWidth()	Получить свойство (**)
iObject.SetFormatWidth (FormatWidth)	Установить свойство (**)
Синтаксис COM:

iObject->get_FormatWidth (&FormatWidth)	Получить свойство
iObject->put_FormatWidth (FormatWidth)	Установить свойство
Примечание:

Свойство используется только для пользовательских форматов листа (см. ISheetFormat::Format).


ISheetFormat::FormatHeight

Высота пользовательского формата.

Тип данных - long.

Синтаксис Automation:

FormatHeight = iObject.FormatHeight	Получить свойство (*)
iObject.FormatHeight = FormatHeight	Установить свойство (*)
FormatHeight = iObject.GetFormatHeight()	Получить свойство (**)
iObject.SetFormatHeight (FormatHeight)	Установить свойство (**)
Синтаксис COM:

iObject->get_FormatHeight (&FormatHeight)	Получить свойство
iObject->put_FormatHeight (FormatHeight)	Установить свойство
Примечание:

Свойство используется только для пользовательских форматов листа (см. ISheetFormat::Format).


Интерфейс IKompasError
IKompasError

Интерфейс информации об ошибке системы КОМПАС.

Иерархия:

Свойства...

Методы...

Описание:

1. Позволяет получить информацию об ошибке, возникшей при работе АПИ системы КОМПАС.

2. Системные ошибки описаны двумя перечислениями: Ошибки API ErrorType и Ошибки 3D API ErrorType3d.

В случае возникновения фатальных ошибок большинство методов интерфейсов и экспортных функций АПИ КОМПАС выполняться не будут.

Если в результате работы библиотеки возникает ошибка, то ее можно снять вызовом одного из следующих свойств и методов: Description, Report или Clear. Если указанные свойства и методы не вызывались, сообщение о ошибке будет автоматически выведено после завершения выполнения команды библиотеки.

Примечание:

Данный интерфейс можно получить у приложения КОМПАС-3D IApplication::KompasError.


IKompasError::props
IKompasError
свойства

Code

Description

Error3D


IKompasError::methods
IKompasError
методы

Report

Clear


IKompasError::Code

Код ошибки.

Тип данных - из перечисления ErrorType и ErrorType3d.

Синтаксис Automation:

Code = iObject.Code	Получить свойство (*)
Code = iObject.GetCode()	Получить свойство (**)
Синтаксис COM:

iObject->get_Code (&Code)	Получить свойство
Примечание:

Свойство доступно только для чтения. Так как коды ошибок из ErrorType и ErrorType3d пересекаются, то для определения из какого перечисления взведена ошибка, нужно воспользоваться свойством Error3D.


IKompasError::Description

Описание ошибки.

Тип данных - BSTR (строка).

Синтаксис Automation:

Description = iObject.Description	Получить свойство (*)
Description = iObject.GetDescription()	Получить свойство (**)
Синтаксис COM:

iObject->get_Description (&Description)	Получить свойство
Примечание:

Свойство доступно только для чтения. Позволяет получить символьное описание возникшей ошибки в системе КОМПАС. После выдачи описания ошибки она сбрасывается, т.е. устанавливается в etSuccess (Успешное завершение).


IKompasError::Error3D

Ошибка для 3D

Тип данных - BOOL.

Синтаксис Automation:

Error3D = iObject.Error3D	Получить свойство (*)
Error3D = iObject.GetError3D()	Получить свойство (**)
Синтаксис COM:

iObject->get_Error3D (&Error3D)	Получить свойство
Значения свойства:

TRUE	- ошибка возникла в 3D АПИ (перечисление ErrorType3d),
FALSE	- ошибка из перечисления ErrorType.
Примечание:

Свойство доступно только для чтения. Позволяет определить, какому из двух перечислений соответствует код ошибки, полученный через свойство Code


IKompasError::FormatWidth

Ширина пользовательского формата.

Тип данных - long.

Синтаксис Automation:

FormatWidth = iObject.FormatWidth	Получить свойство (*)
iObject.FormatWidth = FormatWidth	Установить свойство (*)
FormatWidth = iObject.GetFormatWidth()	Получить свойство (**)
iObject.SetFormatWidth (FormatWidth)	Установить свойство (**)
Синтаксис COM:

iObject->get_FormatWidth (&FormatWidth)	Получить свойство
iObject->put_FormatWidth (FormatWidth)	Установить свойство
Примечание:

Свойство используется только для пользовательских форматов листа (см. ISheetFormat::Format).


IKompasError::FormatHeight

Высота пользовательского формата.

Тип данных - long.

Синтаксис Automation:

FormatHeight = iObject.FormatHeight	Получить свойство (*)
iObject.FormatHeight = FormatHeight	Установить свойство (*)
FormatHeight = iObject.GetFormatHeight()	Получить свойство (**)
iObject.SetFormatHeight (FormatHeight)	Установить свойство (**)
Синтаксис COM:

iObject->get_FormatHeight (&FormatHeight)	Получить свойство
iObject->put_FormatHeight (FormatHeight)	Установить свойство
Примечание:

Свойство используется только для пользовательских форматов листа (см. ISheetFormat::Format).


IKompasError::Report

Вывести сообщение о ошибке.

Синтаксис Automation:

void Report();

Синтаксис COM:

HRESULT Report();

Примечание:

В результате выполнения этого метода на экран выводится диалог с описанием возникшей ошибки. После выдачи сообщения о ошибке она сбрасывается, то есть устанавливается в etSuccess (Успешное завершение).


IKompasError::Clear

Сбросить ошибку.

Синтаксис Automation:

void Clear();

Синтаксис COM:

HRESULT Clear();

Примечание:

В результате выполнения метода код ошибки устанавливается в etSuccess (Успешное завершение).


Интерфейс IPropertyFileName
IPropertyFileName

Интерфейс элемента управления Панели свойств - Выбор файла.

Иерархия:

Свойства...

Описание:

Элемент управления состоит из текстового поля и кнопки вызова диалога открытия файла.

Примечание:

1. Данный интерфейс можно получить, используя коллекцию элементов управления Панели свойств IPropertyControls.

2. При изменении значения параметра вызывается событие IPropertyManagerNotify::ChangeControlValue.


IPropertyFileName::props
IPropertyFileName
свойства

Bitmap

CreateOpenButton

Extension

Filter

ReadOnly

ResModule

Width


IPropertyFileName::CreateOpenButton

Отображение кнопки выбора файла.

Тип данных - BOOL.

Синтаксис Automation:

CreateOpenButton = iObject.CreateOpenButton	Получить свойство (*)
iObject.CreateOpenButton = CreateOpenButton	Установить свойство (*)
CreateOpenButton = iObject.GetCreateOpenButton()	Получить свойство (**)
iObject.SetCreateOpenButton (CreateOpenButton)	Установить свойство (**)
Синтаксис COM:

iObject->get_CreateOpenButton (&CreateOpenButton)	Получить свойство
iObject->put_CreateOpenButton (CreateOpenButton)	Установить свойство
Значения свойства:

TRUE	- справа от текстового поля будет находится кнопка вызова диалога открытия файла,
FALSE	- элемент управления будет состоять только из текстового поля (без кнопки).


IPropertyFileName::Bitmap

Рисунок кнопки.

Тип данных - VARIANT (long или BSTR).

Синтаксис Automation:

iObject.Bitmap = Bitmap	Установить свойство (*)
iObject.SetBitmap (Bitmap)	Установить свойство (**)
Синтаксис COM:

iObject->put_Bitmap (CreateOpenButton)	Установить свойство
Примечание:

1. Свойство доступно только для записи.

2. Позволяет задать изображение для кнопки вызова диалога открытия файла.

3. Изображение можно задать в виде идентификаторов в ресурсе dll-модуля (тип данных long) или в виде полного пути к bmp-файлу рисунка (тип данных BSTR).

4 Если изображение задается в виде идентификатора, то обязательно должен быть задан dll-модуль, в ресурсах которого лежат эти рисунки (см. ResModule).


IPropertyFileName::Extension

Расширение имени файла.

Тип данных - BSTR (строка).

Синтаксис Automation:

Extension = iObject.Extension	Получить свойство (*)
iObject.Extension = Extension	Установить свойство (*)
Extension = iObject.GetExtension()	Получить свойство (**)
iObject.SetExtension (Extension)	Установить свойство (**)
Синтаксис COM:

iObject->get_Extension (&Extension)	Получить свойство
iObject->put_Extension (Extension)	Установить свойство
Примечание:

1. Свойство позволяет получить/задать расширение имени файла для диалога открытия файла, используемое по умолчанию.

2. Если пользователь при задании имени файла не укажет расширение, автоматически для открытия будут предлагаться файлы с заданным расширением имени.

3. Если присвоить свойству значение NULL, то расширение файлов должно задаваться пользователем явно.


IPropertyFileName::Filter

Активный фильтр типов файлов.

Тип данных - BSTR (строка).

Синтаксис Automation:

Filter = iObject.Filter	Получить свойство (*)
iObject.Filter = Filter	Установить свойство (*)
Filter = iObject.GetFilter()	Получить свойство (**)
iObject.SetFilter (Filter)	Установить свойство (**)
Синтаксис COM:

iObject->get_Filter (&Filter)	Получить свойство
iObject->put_Filter (Filter)	Установить свойство
Примечание:

Диалог открытия файла имеет список так называемых фильтров, включающих названия типов файлов и расширения имен файлов данного типа. Выбрав фильтр, пользователь указывает, что он желает работать только с файлами определенного типа, имеющими соответствующее расширение. Файлы с другими расширениями в диалоге не отображаются. Одновременно можно указать несколько фильтров. Каждый фильтр задается двумя строками - строкой, содержащей имя фильтра, и строкой, в которой перечислены соответствующие ему расширения имен файлов. Если одному типу соответствует несколько расширений, они разделяются символом ";". Строка, содержащая имя фильтра, отделяется от строки с расширениями файлов символом "|". Если используется несколько фильтров, то они также отделяются друг от друга символом "|". Например, в качестве строки, задающей фильтры, можно использовать строку вида: "КОМПАС-Детали (*.m3d)|*.m3d|Все файлы (*.*)|*.*||".


IPropertyFileName::ResModule

Модуль с ресурсом рисунка кнопки.

Тип данных - VARIANT (long или BSTR).

Синтаксис Automation:

ResModule = iObject.ResModule	Получить свойство (*)
iObject.ResModule = ResModule	Установить свойство (*)
ResModule = iObject.GetResModule()	Получить свойство (**)
iObject.SetResModule (ResModule)	Установить свойство (**)
Синтаксис COM:

iObject->get_ResModule (ResModule)	Получить свойство
iObject->put_ResModule (ResModule)	Установить свойство
Значения свойства:

HINSTANCE (тип значения long)
полный путь к файлу (тип значения BSTR) dll модуля в котором находятся все необходимые ресурсы.
Примечание:

Данное свойство позволяет установить или получить dll-модуль, в котором находится рисунок для кнопки (см. Bitmap).


IPropertyFileName::ReadOnly

Запрет редактирования значения.

Тип данных - BOOL.

Синтаксис Automation:

ReadOnly = iObject.ReadOnly	Получить свойство (*)
iObject.ReadOnly = ReadOnly	Установить свойство (*)
ReadOnly = iObject.GetReadOnly()	Получить свойство (**)
iObject.SetReadOnly (ReadOnly)	Установить свойство (**)
Синтаксис COM:

iObject->get_ReadOnly (&ReadOnly)	Получить свойство
iObject->put_ReadOnly (ReadOnly)	Установить свойство
Значения свойства:

TRUE	- запрещает ввод нового значения с клавиатуры в текстовом поле,
FALSE	- разрешает ввод нового значения с клавиатуры в текстовом поле.


IPropertyFileName::Width

Шаблон для расчета ширины элемента управления
в горизонтальном положении (в символах).

Тип данных - long.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значения свойства:

Количество видимых символов в текстовом поле при горизонтальном положении Панели свойств.
Примечание:

Для расчета ширины элемента управления в горизонтальном положении используется символ "0".


Интерфейс IPropertyColor
IPropertyColor

Интерфейс элемента управления Панели свойств - Выбор цвета.

Иерархия:

Свойства...

Примечание:

1. Данный интерфейс можно получить, используя коллекцию элементов управления Панели свойств IPropertyControls.

2. При изменении значения параметра вызывается событие IPropertyManagerNotify::ChangeControlValue.


IPropertyColor::props
IPropertyColor
свойства

DefaultButtonName

DefaultColor

EnableDefaultButton

Width


IPropertyColor::EnableDefaultButton

Отображение кнопки "Цвет по умолчанию".

Тип данных - BOOL.

Синтаксис Automation:

EnableDefaultButton = iObject.EnableDefaultButton	Получить свойство (*)
iObject.EnableDefaultButton = EnableDefaultButton	Установить свойство (*)
EnableDefaultButton = iObject.GetEnableDefaultButton()	Получить свойство (**)
iObject.SetEnableDefaultButton (EnableDefaultButton)	Установить свойство (**)
Синтаксис COM:

iObject->get_EnableDefaultButton (&EnableDefaultButton)	Получить свойство
iObject->put_EnableDefaultButton (EnableDefaultButton)	Установить свойство
Значения свойства:

TRUE	- вверху раскрывающегося списка будет отображаться дополнительная кнопка "Цвет по умолчанию",
FALSE	- кнопка "Цвет по умолчанию" не будет отображаться.


IPropertyColor::DefaultColor

Цвет по умолчанию.

Тип данных - long.

Синтаксис Automation:

DefaultColor = iObject.DefaultColor	Получить свойство (*)
iObject.DefaultColor = DefaultColor	Установить свойство (*)
DefaultColor = iObject.GetDefaultColor()	Получить свойство (**)
iObject.SetDefaultColor (DefaultColor)	Установить свойство (**)
Синтаксис COM:

iObject->get_DefaultColor (&DefaultColor)	Получить свойство
iObject->put_DefaultColor (DefaultColor)	Установить свойство
Примечание:

1. Свойство позволяет получить или изменить значение цвета для кнопки "Цвет по умолчанию".

2. Цвет по умолчанию доступен только если свойство EnableDefaultButton имеет значение TRUE..


IPropertyColor::DefaultButtonName

Имя кнопки.

Тип данных - long.

Синтаксис Automation:

DefaultButtonName = iObject.DefaultButtonName	Получить свойство (*)
iObject.DefaultButtonName = DefaultButtonName	Установить свойство (*)
iObject.GetDefaultButtonName()	Получить свойство (**)
iObject.SetDefaultButtonName (DefaultButtonName)	Установить свойство (**)
Синтаксис COM:

iObject->get_DefaultButtonName (&DefaultButtonName)	Получить свойство
iObject->put_DefaultButtonName (DefaultButtonName)	Установить свойство
Примечание:

1. Свойство позволяет получить имя кнопки "Цвет по умолчанию" или изменить имя на произвольное.

2. Свойство доступно только если свойство EnableDefaultButton  имеет значение TRUE.


IPropertyColor::Width

Шаблон для расчета ширины элемента управления
в горизонтальном положении (в символах).

Тип данных - long.

Синтаксис Automation:

Width = iObject.Width	Получить свойство (*)
iObject.Width = Width	Установить свойство (*)
Width = iObject.GetWidth()	Получить свойство (**)
iObject.SetWidth (Width)	Установить свойство (**)
Синтаксис COM:

iObject->get_Width (&Width)	Получить свойство
iObject->put_Width (Width)	Установить свойство
Значения свойства:

Количество видимых символов в текстовом поле при горизонтальном положении Панели свойств.
Примечание:

Для расчета ширины элемента управления в горизонтальном положении используется символ "0".


Интерфейс ITextStyle
ITextStyle

Интерфейс параметров стиля текста.

Иерархия:

Свойства...

Примечание:

Данный интерфейс можно получить, используя:

- ISpecificationTuning::SectionTextStyleFirst;

- ISpecificationTuning::SectionTextStyleNext;

- ISpecificationTuning::ObjectTextStyle;

- ISpecificationTuning::PerformanceBlockTextStyleFirst;

- ISpecificationTuning::PerformanceBlockTextStyleNext;

- ISpecificationTuning::AdditionalBlockTextStyleFirst;

- ISpecificationTuning::AdditionalBlockTextStyleNext;

- ISpecificationTuning::NestingBlockTextStyleFirst;

- ISpecificationTuning::NestingBlockTextStyleNext.


ITextStyle::props
ITextStyle
свойства

Align

Font

Step


ITextStyle::Step

Шаг строк.

Тип данных - double.

Синтаксис Automation:

Step = iObject.Step	Получить свойство (*)
iObject.Step = Step	Установить свойство (*)
Step = iObject.GetStep()	Получить свойство (**)
iObject.SetStep (Step)	Установить свойство (**)
Синтаксис COM:

iObject->get_Step (&Step)	Получить свойство
iObject->put_Step(Step)	Установить свойство
Примечание:

1. Свойство позволяет получить/изменить шаг строк (расстояние между строками текста).

2. Значение шага задается в миллиметрах.

3. Свойство используется для стиля, полученного через методы интерфейса ISpecificationTuning.


ITextStyle::Align

Выравнивание.

Тип данных - из перечисления ksAlignEnum.

Синтаксис Automation:

Align = iObject.Align	Получить свойство (*)
iObject.Align = Align	Установить свойство (*)
Align = iObject.GetAlign()	Получить свойство (**)
iObject.SetAlign (Align)	Установить свойство (**)
Синтаксис COM:

iObject->get_Align (&Align)	Получить свойство
iObject->put_Align (Align)	Установить свойство
Примечание:

1. Свойство позволяет получить/изменить выравнивание абзацев (по левой границе, по правой границе, центрирование, выравнивание по двум границам).

2. Свойство используется для стиля, полученного через методы интерфейса ISpecificationTuning.


ITextStyle::Font

Параметры шрифта.

Тип данных - указатель на интерфейс ITextFont параметров шрифта.

Синтаксис Automation:

Font = iObject.Font	Получить свойство (*)
Font = iObject.GetFont()	Получить свойство (**)
Синтаксис COM:

iObject->get_Font (&Font)	Получить свойство
Примечание:

1. Свойство позволяет параметры шрифта.

2. Свойство доступно только для чтения.

3. Свойство используется для стиля, полученного через методы интерфейса ISpecificationTuning.


Интерфейс ITextFont
ITextFont

Интерфейс параметров шрифта.

Иерархия:

Свойства...

Описание:

Данный интерфейс позволяет назначить параметры шрифта, которые будут использоваться при вводе надписей в документ.

Примечание:

Данный интерфейс можно получить, используя свойство ITextStyle::Font.


ITextFont::props
ITextFont
свойства

Bold

Color

FontName

Height

Italic

Underline

WidthFactor


ITextFont::FontName

Имя шрифта.

Тип данных - BSTR (строка).

Синтаксис Automation:

FontName = iObject.FontName	Получить свойство (*)
iObject.FontName = FontName	Установить свойство (*)
FontName = iObject.GetFontName()	Получить свойство (**)
iObject.SetFontName (FontName)	Установить свойство (**)
Синтаксис COM:

iObject->get_FontName (&FontName)	Получить свойство
iObject->put_FontName (FontName)	Установить свойство
Примечание:

Свойство позволяет получить/изменить название шрифта из доступных шрифтов.


ITextFont::Height

Высота текста.

Тип данных - double.

Синтаксис Automation:

Height = iObject.Height	Получить свойство (*)
iObject.Height = Height	Установить свойство (*)
Height = iObject.GetHeight()	Получить свойство (**)
iObject.SetHeight (Height)	Установить свойство (**)
Синтаксис COM:

iObject->get_Height (&Height)	Получить свойство
iObject->put_Height (Height)	Установить свойство
Примечание:

1. Свойство позволяет получить/изменить высоту символов.

2. Значение высоты символов задается в миллиметрах.


ITextFont::WidthFactor

Коэффициент сужения.

Тип данных - double.

Синтаксис Automation:

WidthFactor = iObject.WidthFactor	Получить свойство (*)
iObject.WidthFactor = WidthFactor	Установить свойство (*)
WidthFactor = iObject.GetWidthFactor()	Получить свойство (**)
iObject.SetWidthFactor (WidthFactor)	Установить свойство (**)
Синтаксис COM:

iObject->get_WidthFactor (&WidthFactor)	Получить свойство
iObject->put_WidthFactor (WidthFactor)	Установить свойство
Примечание:

1. Свойство позволяет получить\изменить величину коэффициента сужения для символов.


ITextFont::Color

Цвет.

Тип данных - long.

Синтаксис Automation:

Color = iObject.Color	Получить свойство (*)
iObject.Color = Color	Установить свойство (*)
Color = iObject.GetColor()	Получить свойство (**)
iObject.SetColor (Color)	Установить свойство (**)
Синтаксис COM:

iObject->get_Color (&Color)	Получить свойство
iObject->put_Color (Color)	Установить свойство
Примечание:

1. Свойство позволяет получить\изменить цвет символов.


ITextFont::Bold

Жирный шрифт.

Тип данных - BOOL.

Синтаксис Automation:

Bold = iObject.Bold	Получить свойство (*)
iObject.Bold = Bold	Установить свойство (*)
Bold = iObject.GetBold()	Получить свойство (**)
iObject.SetBold (Bold)	Установить свойство (**)
Синтаксис COM:

iObject->get_Bold (&Bold)	Получить свойство
iObject->put_Bold (Bold)	Установить свойство
Значение свойства:

TRUE	- утолщенное начертание символов,
FALSE	- обычное начертание символов.
Примечание:

1. Свойство позволяет получить\изменить утолщенное начертание символов.


ITextFont::Italic

Курсив.

Тип данных - BOOL.

Синтаксис Automation:

Italic = iObject.Italic	Получить свойство (*)
iObject.Italic = Italic	Установить свойство (*)
Italic = iObject.GetItalic()	Получить свойство (**)
iObject.SetItalic (Italic)	Установить свойство (**)
Синтаксис COM:

iObject->get_Italic (&Italic)	Получить свойство
iObject->put_Italic (Italic)	Установить свойство
Значение свойства:

TRUE	- курсивное начертание символов,
FALSE	- обычное начертание символов.
Примечание:

1. Свойство позволяет получить\изменить курсивное (наклонное) начертание символов.


ITextFont::Underline

Подчеркивание.

Тип данных - BOOL.

Синтаксис Automation:

Underline = iObject.Underline	Получить свойство (*)
iObject.Underline = Underline	Установить свойство (*)
Underline = iObject.GetUnderline()	Получить свойство (**)
iObject.SetUnderline (Underline)	Установить свойство (**)
Синтаксис COM:

iObject->get_Underline (&Underline)	Получить свойство
iObject->put_Underline (Underline)	Установить свойство
Значение свойства:

TRUE	- подчеркивание символов,
FALSE	- обычное начертание символов.
Примечание:

1. Свойство позволяет получить\изменить курсивное (наклонное) подчеркивание текста.


Интерфейс ILibrary
ILibrary

Базовый интерфейс всех библиотек системы КОМПАС.

Иерархия:

Свойства...

Методы...

Описание:

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


ILibrary::props
ILibrary
свойства

Attach

Enable

LibraryManagerFolder

LibraryType

Name

PathName


ILibrary::methods
ILibrary
методы

Execute


ILibrary::LibraryManagerFolder

Каталог библиотеки в Менеджере библиотек.

Тип данных - BSTR (строка).

Синтаксис Automation:

LibraryManagerFolder = iObject.LibraryManagerFolder	Получить свойство (*)
iObject->get_LibraryManagerFolder( &LibraryManagerFolder )	Получить свойство (**)
Синтаксис COM:

iObject->get_LibraryManagerFolder( &LibraryManagerFolder )	Получить свойство
Примечание:

1. Свойство доступно только для чтения.

2. Если библиотека зарегистрирована в Менеджере библиотек, то свойство позволет получить в виде строки каталог или каталоги, где библиотека располагается. Если каталог является вложенным в другой каталог, имена каталогов отделяются символом "|".


ILibrary::Attach

Подключение библиотеки.

Тип данных - BOOL.

Синтаксис Automation:

Attach = iObject.Attach	Получить свойство (*)
iObject.Attach = Attach	Установить свойство (*)
Attach = iObject.GetAttach()	Получить свойство (**)
iObject.SetAttach (Attach)	Установить свойство (**)
Синтаксис COM:

iObject->get_Attach (&Attach)	Получить свойство
iObject->put_Attach (Attach)	Установить свойство
Значение свойства:

TRUE	- библиотека подключена.
FALSE	- библиотека не подключена.
Примечание:

1. Свойство позволяет получить и управлять подключением библиотеки. При подключении библиотеки в системе КОМПАС создается объект, отвечающий за работу данной библиотеки. В Менеджере библиотек напротив имени библиотеки появляется значок "галочка". Захватывается лиценция на библиотку. Если это прикладная библиотека, то подключенную библиотеку можно посылать на выполнение, вызвав метод Execute. Для библиотек документов можно производить вставку документа в документ КОМПАС.


ILibrary::LibraryType

Тип библиотеки.

Тип данных - LibraryTypeEnum.

Синтаксис Automation:

LibraryType = iObject.LibraryType	Получить свойство (*)
LibraryType = iObject.GetLibraryType()	Получить свойство (**)
Синтаксис COM:

iObject->get_LibraryType( &LibraryType )	Получить свойство
Примечание:

Свойство возвращает тип библиотеки ( прикладная, фрагментов, моделей).


ILibrary::Name

Имя библиотеки.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name( &Name )	Получить свойство
Примечание:

Свойство возвращает имя библиотеки.


ILibrary::PathName

Имя файла библиотеки.

Тип данных - BSTR (строка).

Синтаксис Automation:

PathName = iObject.PathName	Получить свойство (*)
PathName = iObject.GetPathName()	Получить свойство (**)
Синтаксис COM:

iObject->get_PathName( &PathName )	Получить свойство
Примечание:

Свойство возвращает имя файла библиотеки.


ILibrary::Enable

Признак лицензионной защиты библиотеки.

Тип данных - BOOL.

Синтаксис Automation:

Enable = iObject.Enable	Получить свойство (*)
Enable = iObject.GetEnable()	Получить свойство (**)
Синтаксис COM:

iObject->get_Enable( &Enable )	Получить свойство
Значения свойства:

TRUE	- библиотека доступна для выполнения или вставки.
FALSE	- библиотека недоступна для выполнения или вставки.
Примечание:

Свойство возвращает признак лицензионной защиты библиотеки. Библиотека может быть не подключена.


ILibrary::Execute

Выполнить команду.

Синтаксис Automation:

BOOL Execute (long command, LPDISPATCH external, VARIANT_BOOL post);

Синтаксис COM:

HRESULT Execute([in] long command,
[in] LPDISPATCH external,
[in] VARIANT_BOOL post,
[out, retval] VARIANT_BOOL* pVal);

Входные параметры:

command	- номер команды,
external	- интерфейс для обмена данными между библиотекой, вызвавшей Execute и библиотекой, в которой реализована команда. Интерфейс определен разработчиком библиотек. Может быть NULL,
post	- отложенное выполнение если TRUE, если FALSE - немедленное.
Возвращаемое значение:

TRUE	- команда выполнена.
FALSE	- команда не выполнена.
Примечание:

Метод позволяет выполнить команду прикладной библиотеки. При этом проверяется лицензионная защита, и может быть передан пользовательский интерфейс для обмена данными между библиотеками. Выполнение команды может быть отложенное или немедленное.


Интерфейсы ksConjunctivePointDefinition, IConjunctivePointDefinition
ksConjunctivePointDefinition,
IConjunctivePointDefinition

Интерфейс параметров объекта "Присоединительная точка".

ksConjunctivePointDefinition	- интерфейс Automation
IConjunctivePointDefinition	- интерфейс COM
Свойства...

Методы...

Описание.

Объект "Присоединительная точка" создается в детали (или сборке) и используется для связывания элементов между собой и с траекторией трассы. "Присоединительная точка" может указываться в качестве вершины при создании или редактировании траектории. В детали (или сборке) может находиться любое количество объектов "Присоединительная точка".


ksConjunctivePointDefinition::props
ksConjunctivePointDefinition
свойства

Direction


ksConjunctivePointDefinition::methods
ksConjunctivePointDefinition
методы

GetEdge

GetPoint

GetVertex

SetEdge

SetVertex


ksConjunctivePointDefinition::Direction
IsConjunctivePointDefinition::Direction

Направление.

Тип данных - BOOL.

Синтаксис Automation:

Direction = iObject.Direction	Получить свойство (*)
iObject.Direction = Direction	Установить свойство (*)
Direction = iObject.GetDirection()	Получить свойство (**)
iObject.SetDirection (Direction)	Установить свойство (**)
Значения свойства:

TRUE	- прямое направление,
FALSE	- обратное направление.
Примечания.

Позволяет задать конкретное направление вектора. Направление вектора в присоединительной точке зависит от выбора опорного объекта SetEdge.


ksConjunctivePointDefinition::GetVertex
IksConjunctivePointDefinition::GetVertex

Получить указатель на интерфейс опорной вершины.

Синтаксис Automation:

LPDISPATCH GetVertex();

Синтаксис COM:

LPENTITY GetVertex();

Возвращаемое значение:

	Указатель на интерфейс IEntity или ksEntity опорной вершины.
Примечания.

Возвращает указатель на интерфейс опорной вершины, на которой построена присоединительная точка. Опорной вершиной может быть объект "вершина" (тип o3d_vertex).


ksConjunctivePointDefinition::SetVertex
IksConjunctivePointDefinition::SetVertex

Установить указатель на интерфейс опорной вершины.

Синтаксис Automation:

VARIANT_BOOL SetVertex (LPDISPATCH Val);

Синтаксис COM:

BOOL SetVertex (LPENTITY Val);

Входные параметры:

Val	Указатель на интерфейс ksEntity или IEntity опорной вершины.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи
Примечания.

Позволяет задать опорную вершину, на которой будет построена присоединительная точка. Опорной вершиной может быть объект "вершина" (тип o3d_vertex).


ksConjunctivePointDefinition::GetEdge
IksConjunctivePointDefinition::GetEdge

Получить указатель на интерфейс опорного объекта для определения вектора направления.

Синтаксис Automation:

LPDISPATCH GetEdge();

Синтаксис COM:

LPENTITY GetEdge();

Входные параметры:

Указатель на интерфейс ksEntity или IEntity опорного объекта.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи
Примечания.

Возвращает указатель на интерфейс опорного объекта, для определения вектора направления. Опорными объектами могут быть :

- грани,

- конструктивные плоскости,

- ребра,

- вспомогательные оси.


ksConjunctivePointDefinition::SetEdge
IksConjunctivePointDefinition::SetEdge

Установить указатель на интерфейс опорного объекта для определения вектора направления.

Синтаксис Automation:

VARIANT_BOOL SetEdge (LPDISPATCH Val);

Синтаксис COM:

BOOL SetEdge (LPENTITY Val);

Входные параметры:

Val	Указатель на интерфейс ksEntity или IEntity опорного объекта.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи
Примечания.

Позволяет задать опорный объект, по которому будет определяться вектор направления. Опорными объектами могут быть :

- грани,

- конструктивные плоскости,

- ребра,

- вспомогательные оси.

Если в качестве опорного объекта выбрана грань или конструктивная плоскость, то вектор будет перпендикулярен опорному объекту. Если в качестве опорного объекта выбрано ребро или вспомогательная ось, то вектор будет параллелен опорному объекту. Чтобы задать конкретное - прямое или обратное - направление вектора относительно опорного объекта, необходимо установить соответствующее значение свойству Direction.


ksConjunctivePointDefinition::GetPoint
IksConjunctivePointDefinition::GetPoint

Получить указатель на интерфейс опорного объекта для определения вектора направления.

Синтаксис Automation:

VARIANT_BOOL GetPoint (double * X, double * Y, double * Z);

Синтаксис COM:

BOOL GetPoint (double * X, double * Y, double * Z);

Выходные параметры:

X, Y, Z	- координаты точки.


Интерфейс ISpecificationStyle
ISpecificationStyle

Интерфейс стиля спецификации.

Иерархия:

Свойства...

Описание:

Описывает стиль спецификации. Стили спецификаций описаны в библиотеках стилей спецификаций (файлы библиотек стилей спецификаций имеют расширение lyt).

Данный интерфейс отражает содержимое стиля в библиотеке стилей на момент получения и в дальнейшем не отслеживает изменений в библиотеке стилей.

Примечание:

Данный интерфейс можно получить, используя метод ISpecificationDescription::SpecificationStyle.


ISpecificationStyle::props
ISpecificationStyle
свойства

AdditionalBlocks

AdditionalColumns

Columns

Format

LayoutName1

LayoutName2

SectionOn

Sections

SortSectionDown

SpecificationTuning

StyleID1

StyleID2

Variant


ISpecificationStyle::LayoutName1

Имя файла библиотеки оформлений для первого листа.

Тип данных - BSTR (строка).

Синтаксис Automation:

LayoutName1 = iObject.LayoutName1	Получить свойство (*)
LayoutName1 = iObject.GetLayoutName1()	Получить свойство (**)
Синтаксис COM:

iObject->get_LayoutName1 (&LayoutName1)	Получить свойство
Примечание:

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

2. Свойство доступно только для чтения.


ISpecificationStyle::StyleID1

Номер стиля в библиотеке оформлений для первого листа.

Тип данных - long.

Синтаксис Automation:

StyleID1 = iObject.StyleID1	Получить свойство (*)
StyleID1 = iObject.GetStyleID1()	Получить свойство (**)
Синтаксис COM:

iObject->get_StyleID1 (&StyleID1)	Получить свойство
Примечание:

1. Позволяет получить номер стиля в библиотеке оформлений для первого листа.

2. Свойство доступно только для чтения.


ISpecificationStyle::LayoutName2

Имя файла библиотеки оформлений для последующих листов.

Тип данных - BSTR (строка).

Синтаксис Automation:

LayoutName2 = iObject.LayoutName2	Получить свойство (*)
LayoutName2 = iObject.GetLayoutName2()	Получить свойство (**)
Синтаксис COM:

iObject->get_LayoutName2 (&LayoutName2)	Получить свойство
Примечание:

1. Позволяет получить имя файла библиотеки оформлений для последующих листов.

2. Свойство доступно только для чтения.


ISpecificationStyle::StyleID2

Номер стиля в библиотеке оформлений для последующих листов.

Тип данных - long.

Синтаксис Automation:

StyleID2 = iObject.StyleID2	Получить свойство (*)
StyleID2 = iObject.GetStyleID2()	Получить свойство (**)
Синтаксис COM:

iObject->get_StyleID2 (&StyleID2)	Получить свойство
Примечание:

1. Позволяет получить номер стиля в библиотеке оформлений для последующих листов.

2. Свойство доступно только для чтения.


ISpecificationStyle::Variant

Вариант оформления спецификации.

Тип данных - из перечисления ksSpecificationVariantEnum.

Синтаксис Automation:

Variant = iObject.Variant	Получить свойство (*)
Variant = iObject.GetVariant()	Получить свойство (**)
Синтаксис COM:

iObject->get_Variant (&Variant)	Получить свойство
Примечание:

1. Позволяет получить способ представления информации об исполнениях изделия.

2. Доступны только варианты "Простая", "Вариант А" или "Вариант Б."

3. Свойство доступно только для чтения.


ISpecificationStyle::SectionOn

Деление на разделы.

Тип данных - BOOL.

Синтаксис Automation:

SectionOn = iObject.SectionOn	Получить свойство (*)
SectionOn = iObject.GetSectionOn()	Получить свойство (**)
Синтаксис COM:

iObject->get_SectionOn (&SectionOn)	Получить свойство
Значения свойства:

TRUE	- разбиение на разделы включено, все объекты будут распологаться в своем разделе,
FALSE	- разбиение на разделы выключено.
Примечание:

1. Позволяет получить признак разбиения спецификации на разделы.

2. Свойство доступно только для чтения.


ISpecificationStyle::SortSectionDown

Сортировка разделов по убыванию.

Тип данных - BOOL.

Синтаксис Automation:

SortSectionDown = iObject.SortSectionDown	Получить свойство (*)
SortSectionDown = iObject.GetSortSectionDown()	Получить свойство (**)
Синтаксис COM:

iObject->get_SortSectionDown (&SortSectionDown)	Получить свойство
Значения свойства:

TRUE	- сортировка разделов по убыванию включена, разделы будут располагаться внутри спецификации в порядке убывания их порядковых номеров,
FALSE	- сортировка разделов по убыванию выключена.
Примечание:

1. Позволяет получить признак сортировки разделов по убыванию.

2. Свойство доступно только для чтения.


ISpecificationStyle::SpecificationTuning

Настройки спецификации.

Тип данных - указатель на интерфейс ISpecificationTuning настроек спецификации.

Синтаксис Automation:

SpecificationTuning = iObject.SpecificationTuning	Получить свойство (*)
SpecificationTuning = iObject.GetSpecificationTuning()	Получить свойство (**)
Синтаксис COM:

iObject->get_SpecificationTuning (&SpecificationTuning)	Получить свойство
Примечание:

Свойство доступно только для чтения. Полученные настройки будут соответствовать настройкам, описанным для данного стиля в библиотеке стилей. Для получения настроек описания спецификации в документе надо брать настройки непосредственно у описания ISpecificationDescription::SpecificationTuning, т.к. они могут отличатся от настроек стиля.


ISpecificationStyle::Format

Формат листа.

Тип данных - указатель на интерфейс ISheetFormat формата листа спецификации.

Синтаксис Automation:

Format = iObject.Format	Получить свойство (*)
Format = iObject.GetFormat()	Получить свойство (**)
Синтаксис COM:

iObject->get_Format( &Format )	Получить свойство
Примечание:

1. Данное свойство определяет формат листа бумаги, на котором будет размещаться спецификация.

2. Свойство доступно только для чтения.


ISpecificationStyle::Columns

Колонки спецификации - умолчательные значения.

Тип данных - указатель на интерфейс ISpecificationColumnStyles коллеции стилей колонок спецификации.

Синтаксис Automation:

Columns = iObject.Columns	Получить свойство (*)
Columns = iObject.GetColumns()	Получить свойство (**)
Синтаксис COM:

iObject->get_Columns (&Columns)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationStyle::AdditionalColumns

Дополнительные колоноки спецификации - умолчательные значения.

Тип данных - указатель на интерфейс ISpecificationColumnStyles коллеции стилей колонок спецификации.

Синтаксис Automation:

AdditionalColumns = iObject.AdditionalColumns	Получить свойство (*)
AdditionalColumns = iObject.GetAdditionalColumns()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalColumns (&AdditionalColumns)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationStyle::Sections

Разделы.

Тип данных - указатель на интерфейс ISpecificationSectionStyles коллеции стилей разделов спецификации.

Синтаксис Automation:

Sections = iObject.Sections	Получить свойство (*)
Sections = iObject.GetSections()	Получить свойство (**)
Синтаксис COM:

iObject->get_Sections (&Sections)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationStyle::AdditionalBlocks

Блоки дополнительных разделов.

Тип данных - указатель на интерфейс IAdditionalBlockStyles коллеции стилей блоков дополнительных разделов.

Синтаксис Automation:

AdditionalBlocks = iObject.AdditionalBlocks	Получить свойство (*)
AdditionalBlocks = iObject.GetAdditionalBlocks()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalBlocks (&AdditionalBlocks)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс ISpecificationColumnStyles
ISpecificationColumnStyles

Интерфейс коллекции стилей колонок спецификации.

Иерархия:

Свойства...

Описание:

Управляет массивом интерфейсов ISpecificationColumnStyle. Различаются основные и дополнительные колонки объектов спецификации.

Примечание:

1. Чтобы получить коллекцию стилей основных колонок спецификации исползуется метод ISpecificationStyle::Columns или ISpecificationSectionStyle::Columns.

2. Чтобы получить коллекцию стилей дополнительных колонок спецификации используется метод ISpecificationStyle::AdditionalColumns или ISpecificationSectionStyle::AdditionalColumns.


ISpecificationColumnStyles::props
ISpecificationColumnStyles
свойства

Item


ISpecificationColumnStyles::Item

Стиль колонки спецификации, заданный по индексу.

Тип данных - указатель на интерфейс ISpecificationColumnStyle стиля колонки спецификации.

Синтаксис Automation:

Column = iObject.Item (Index)	Получить свойство (*)
Column = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Column)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс ISpecificationColumnStyle
ISpecificationColumnStyle

Интерфейс стиля колонки спецификации.

Иерархия:

Свойства...

Примечание:

Данный интерфейс можно получить,используя метод ISpecificationColumnStyles::Item.


ISpecificationColumnStyle::props
ISpecificationColumnStyle
свойства

AttributeKey1

AttributeKey2

AttributeKey3

AttributeKey4

AttributeLibraryName

CalculateSum

ColumnType

Edit

MaxValue

MinValue

MultiplyToCount

Name

Number

StampLinkID

TextDown

UseForSectionTitle

UseIn3D

ValueType


ISpecificationColumnStyle::Name

Имя колонки.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationColumnStyle::ColumnType

Тип колонки.

Тип данных - из перечисления ksSpecificationColumnTypeEnum.

Синтаксис Automation:

ColumnType = iObject.ColumnType	Получить свойство (*)
ColumnType = iObject.GetColumnType()	Получить свойство (**)
Синтаксис COM:

iObject->get_ColumnType (&ColumnType)	Получить свойство
Примечание:

1. Используется только для колонок, полученных у стиля спецификации ISpecificationStyle.

2. Свойство доступно только для чтения.


ISpecificationColumnStyle::Number

Номер колонки данного типа.

Тип данных - long.

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
Примечание:

1 Данное свойство определяет уникальный номер колонки для колонок с таким же типом. Иногда однородная (но не одинаковая) информация должна храниться в нескольких колонках и по этой причине они имеют одинаковый тип ColumnType. Например, несколько колонок групповой спецификации содержат информацию о количестве, но числа в них разные, т.к. они относятся к разным исполнениям. Чтобы отличать такие колонки, вместе с типом задается еще и номер, отличающий колонку этого типа от других колонок такого же типа. Если разные колонки имеют одинаковый тип, то номера колонок этого типа должны быть разными.

2. Используется только для колонок полученных у стиля спецификации ISpecificationStyle.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::Edit

Редактируемая колонка в данном разделе.

Тип данных - BOOL.

Синтаксис Automation:

Edit = iObject.Edit	Получить свойство (*)
Edit = iObject.GetEdit()	Получить свойство (**)
Синтаксис COM:

iObject->get_Edit (&Edit)	Получить свойство
Значения свойства:

TRUE	- в колонку можно вводить данные,
FALSE	- заполнение колонки в настраиваемом разделе запрещено.
Примечание:

1. Используется только для колонок, полученных у стиля раздела спецификации ISpecificationSectionStyle.

2. Свойство доступно только для чтения.


ISpecificationColumnStyle::CalculateSum

Расчитывать сумму значений для колонки.

Тип данных - BOOL.

Синтаксис Automation:

CalculateSum = iObject.CalculateSum	Получить свойство (*)
CalculateSum = iObject.GetCalculateSum()	Получить свойство (**)
Синтаксис COM:

iObject->get_CalculateSum (&CalculateSum)	Получить свойство
Значения свойства:

TRUE	- складывать значения в таблице при вызове команды "Сложить значения в колонках",
FALSE	- складывать значения в таблице запрещено.
Примечание:

1. Используется только для колонок со значением типа Вещественный или Целый (см. ValueType).

2. Используется только для колонок полученных у стиля спецификации ISpecificationStyle.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::MultiplyToCount

При расчете суммы домножать на количество.

Тип данных - BOOL.

Синтаксис Automation:

MultiplyToCount = iObject.MultiplyToCount	Получить свойство (*)
MultiplyToCount = iObject.GetMultiplyToCount()	Получить свойство (**)
Синтаксис COM:

iObject->get_MultiplyToCount (&MultiplyToCount)	Получить свойство
Значения свойства:

TRUE	- перед сложением значение в колонке должно быть умножено на число в колонке "Количество",
FALSE	- складывать без изменений.
Примечание:

1. Используется только для колонок со значением типа Вещественный или Целый (см. ValueType), если ISpecificationColumnStyle::CalculateSum равно TRUE.

2. Используется только для колонок полученных у стиля спецификации ISpecificationStyle.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::UseForSectionTitle

Использовать колонку для вывода имени раздела.

Тип данных - BOOL.

Синтаксис Automation:

UseForSectionTitle = iObject.UseForSectionTitle	Получить свойство (*)
UseForSectionTitle = iObject.GetUseForSectionTitle()	Получить свойство (**)
Синтаксис COM:

iObject->get_UseForSectionTitle (&UseForSectionTitle)	Получить свойство
Значения свойства:

TRUE	- в колонке будут располагаться заголовки разделов спецификации,
FALSE	- колонка будет пустой для объектов спецификации "Имя раздела".
Примечание:

1. В стандартных спецификациях заголовки разделов обычно располагаются в колонке Наименование. Значение этого свойства TRUE - может быть только для одной колонки спецификации. Если у всех колонок значение этого свойства FALSE, заголовки разделов показываться не будут (даже при включении в настройке разделов опции Показывать заголовки разделов).

2. Используется только для основных колонок спецификации.

3. Используется только для колонок полученных у стиля спецификации ISpecificationStyle.

4. Свойство доступно только для чтения.


ISpecificationColumnStyle::TextDown

Текст расположен в нижней части колонки.

Тип данных - BOOL.

Синтаксис Automation:

TextDown = iObject.TextDown	Получить свойство (*)
TextDown = iObject.GetTextDown()	Получить свойство (**)
Синтаксис COM:

iObject->get_TextDown (&TextDown)	Получить свойство
Значения свойства:

TRUE	- в колонке однострочные тексты будут располагаться в той строке, в которой кончается текст предыдущей колонки,
FALSE	- тексты будут располагаться в верхней части колонки.
Примечание:

1. Чаще всего эту опцию включают при настройке колонки Количество, когда требуется, чтобы количество было записано в той строке, где заканчивается наименование.

2. Используется только для основных колонок спецификации.

3. Используется только для колонок полученных у стиля спецификации ISpecificationStyle.

4. Свойство доступно только для чтения.


ISpecificationColumnStyle::StampLinkID

Номер ячейки штампа для связи.

Тип данных - long.

Синтаксис Automation:

StampLinkID = iObject.StampLinkID	Получить свойство (*)
StampLinkID = iObject.GetStampLinkID()	Получить свойство (**)
Синтаксис COM:

iObject->get_StampLinkID (&StampLinkID)	Получить свойство
Значения свойства:

Номер ячейки штампа.
Примечание:

1. Данное свойство определяет ячейку штампа чертежа детали, данные из которой могут автоматически передаваться в данную колонку спецификации. Например, в колонку Формат можно передавать текст из ячейки Формат штампа чертежа детали.

2. Свойство доступно только для чтения.


ISpecificationColumnStyle::ValueType

Тип значения колонки.

Тип данных - из перечисления ksValueTypeEnum.

Синтаксис Automation:

ValueType = iObject.ValueType	Получить свойство (*)
ValueType = iObject.GetValueType()	Получить свойство (**)
Синтаксис COM:

iObject->get_ValueType (&ValueType)	Получить свойство
Примечание:

1. Тип "Запись" доступен только для основных колонок.

2. Свойство доступно только для чтения.


ISpecificationColumnStyle::AttributeLibraryName

Имя файла библиотеки типов атрибутов.

Тип данных - BSTR (строка).

Синтаксис Automation:

AttributeLibraryName = iObject.AttributeLibraryName	Получить свойство (*)
AttributeLibraryName = iObject.GetAttributeLibraryName()	Получить свойство (**)
Синтаксис COM:

iObject->get_AttributeLibraryName (&AttributeLibraryName)	Получить свойство
Примечание:

1. Используется только для колонок со значением типа Запись (см. ValueType).

2. Структура записи в колонке определяется типом атрибута из библиотеки типов атрибутов.

3. Для данной колонки можно будет использовать типы атрибутов только из указанной библиотеки

4. Свойство доступно только для чтения.


ISpecificationColumnStyle::AttributeKey1

Первый ключ атрибута.

Тип данных - long.

Синтаксис Automation:

AttributeKey1 = iObject.AttributeKey1	Получить свойство (*)
AttributeKey1 = iObject.GetAttributeKey1()	Получить свойство (**)
Синтаксис COM:

iObject->get_AttributeKey1 (&AttributeKey1)	Получить свойство
Примечание:

1. Используется только для колонок со значением типа Запись (см. ValueType).

2. Для данной колонки можно будет использовать только те типы атрибутов, первый ключ которых совпадает с указанным.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::AttributeKey2

Второй ключ атрибута.

Тип данных - long.

Синтаксис Automation:

AttributeKey2 = iObject.AttributeKey2	Получить свойство (*)
AttributeKey2 = iObject.GetAttributeKey2()	Получить свойство (**)
Синтаксис COM:

iObject->get_AttributeKey2 (&AttributeKey2)	Получить свойство
Примечание:

1. Используется только для колонок со значением типа Запись (см. ValueType).

2. Для данной колонки можно будет использовать только те типы атрибутов, второй ключ которых совпадает с указанным.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::AttributeKey3

Третий ключ атрибута.

Тип данных - long.

Синтаксис Automation:

AttributeKey3 = iObject.AttributeKey3	Получить свойство (*)
AttributeKey3 = iObject.GetAttributeKey3()	Получить свойство (**)
Синтаксис COM:

iObject->get_AttributeKey3 (&AttributeKey3)	Получить свойство
Примечание:

1. Используется только для колонок со значением типа Запись (см. ValueType).

2. Для данной колонки можно будет использовать только те типы атрибутов, третий ключ которых совпадает с указанным.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::AttributeKey4

Четвертый ключ атрибута.

Тип данных - long.

Синтаксис Automation:

AttributeKey4 = iObject.AttributeKey4	Получить свойство (*)
AttributeKey4 = iObject.GetAttributeKey4()	Получить свойство (**)
Синтаксис COM:

iObject->get_AttributeKey4 (&AttributeKey4)	Получить свойство
Примечание:

1. Используется только для колонок со значением типа Запись (см. ValueType).

2. Для данной колонки можно будет использовать только те типы атрибутов, четвертый ключ которых совпадает с указанным.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::MinValue

Минимальное значение.

Тип данных - long.

Синтаксис Automation:

MinValue = iObject.MinValue	Получить свойство (*)
MinValue = iObject.GetMinValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MinValue (&MinValue)	Получить свойство
Примечание:

1. Используется только для колонок со значением типа Вещественный или Целый (см. ValueType).

2. Определяет минимальное значение числа в колонке.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::MaxValue

Максимальное значение.

Тип данных - long.

Синтаксис Automation:

MaxValue = iObject.MaxValue	Получить свойство (*)
MaxValue = iObject.GetMaxValue()	Получить свойство (**)
Синтаксис COM:

iObject->get_MaxValue (&MaxValue)	Получить свойство
Примечание:

1. Используется только для колонок со значением типа Вещественный или Целый (см. ValueType).

2. Определяет минимальное значение числа в колонке.

3. Свойство доступно только для чтения.


ISpecificationColumnStyle::UseIn3D

Используется в модели.

Тип данных - BOOL.

Синтаксис Automation:

UseIn3D = iObject.UseIn3D	Получить свойство (*)
UseIn3D = iObject.GetUseIn3D()	Получить свойство (**)
Синтаксис COM:

iObject->get_UseIn3D (&UseIn3D)	Получить свойство
Значения свойства:

TRUE	- в колонку можно было вводить данные при формировании объектов спецификации в документе-модели,
FALSE	- заполнение колонки в объектах спецификации модели невозможно.
Примечание:

1. Свойство позволяет настроить стиль спецификации так, чтобы в документах-моделях формировались частично заполненные объекты спецификации. Это позволяет избежать конфликтов взаимодействия документа-модели со спецификацией и чертежом.

2. Используется только для колонок полученных у стиля спецификации ISpecificationStyle.

3. Свойство доступно только для чтения.


Интерфейс ISpecificationSectionStyles
ISpecificationSectionStyles

Интерфейс коллекции стилей разделов спецификации.

Иерархия:

Свойства...

Описание:

Управляет массивом интерфейсов ISpecificationSectionStyle.

Примечание:

Чтобы получить коллекцию стилей разделов спецификации исползуется метод ISpecificationStyle::Sections.


ISpecificationSectionStyles::props
ISpecificationSectionStyles
свойства

Item


ISpecificationSectionStyles::Item

Стиль раздела спецификации, заданный по индексу.

Тип данных - указатель на интерфейс ISpecificationSectionStyle стиля раздела спецификации.

Синтаксис Automation:

Section = iObject.Item (Index)	Получить свойство (*)
Section = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Section)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс ISpecificationSectionStyle
ISpecificationSectionStyle

Интерфейс стиля раздела спецификации.

Иерархия:

Свойства...

Описание:

В спецификации все объекты распологаются в своем разделе, если включено разбиение на разделы ISpecificationStyle::SectionOn. Разделы распологаются в порядке возрастания или убывания их номеров ISpecificationSectionStyle::Number, в зависимости от значения свойства ISpecificationStyle::SortSectionDown. Раздел автоматически добавляется в спецификацию, если в нем создается базовый объект спецификации или комментарий, и автоматически удаляется из спецификации при удалении последнего объекта спецификации.

Примечание:

Данный интерфейс можно получить,используя метод ISpecificationSectionStyles::Item.


ISpecificationSectionStyle::props
ISpecificationSectionStyle
свойства

AdditionalBlocks

AdditionalColumns

Columns

FillDataFromStamp

Name

Number

SortColumnNumber

SortColumnType

SortType


ISpecificationSectionStyle::Name

Имя раздела.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationSectionStyle::Number

Номер раздела.

Тип данных - long.

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
Примечание:

1 Данное свойство определяет уникальный номер раздела в данном стиле спецификации.

2. Разделы в спецификации распологаются в порядке возрастания или убывания их номеров Number, в зависимости от значения свойства ISpecificationStyle::SortSectionDown.

3. Свойство доступно только для чтения.


ISpecificationSectionStyle::SortColumnType

Общий тип колонки, в которой необходимо проводить сортировку.

Тип данных - из перечисления ksSpecificationColumnTypeEnum.

Синтаксис Automation:

SortColumnType = iObject.SortColumnType	Получить свойство (*)
SortColumnType = iObject.GetSortColumnType()	Получить свойство (**)
Синтаксис COM:

iObject->get_SortColumnType (&SortColumnType)	Получить свойство
Примечание:

1. Используется при включенной опции ISpecificationTuningSection::SortObjects.

2. Свойство доступно только для чтения.


ISpecificationSectionStyle::SortColumnNumber

Номер колонки, в которой необходимо проводить сортировку.

Тип данных - long.

Синтаксис Automation:

SortColumnNumber = iObject.SortColumnNumber	Получить свойство (*)
SortColumnNumber = iObject.GetSortColumnNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_SortColumnNumber (&SortColumnNumber)	Получить свойство
Примечание:

1. Данное свойство определяет уникальный номер колонки для колонок с типом SortColumnType, по которой будет производится сортировка объектов в разделе. Иногда однородная (но не одинаковая) информация должна храниться в нескольких колонках и по этой причине они имеют одинаковый тип ColumnType.

Чтобы отличать такие колонки, вместе с типом задается еще и номер, отличающий колонку этого типа от других колонок такого же типа.

2. Свойство доступно только для чтения.


ISpecificationSectionStyle::FillDataFromStamp

Чтение данных из основной надписи.

Тип данных - BOOL.

Синтаксис Automation:

FillDataFromStamp = iObject.FillDataFromStamp	Получить свойство (*)
FillDataFromStamp = iObject.GetFillDataFromStamp()	Получить свойство (**)
Синтаксис COM:

iObject->get_FillDataFromStamp (&FillDataFromStamp)	Получить свойство
Значения свойства:

TRUE	- заполнение колонок смешанным способом - вручную с возможностью чтения информации из основной надписи связанных с объектами спецификации чертежей,
FALSE	- заполнение колонок - вручную.
Примечание:

1. Свойство доступно только для чтения.


ISpecificationSectionStyle::SortType

Тип сортировки объектов спецификации в разделе.

Тип данных - из перечисления ksSortTypeEnum.

Синтаксис Automation:

SortType = iObject.SortType	Получить свойство (*)
SortType = iObject.GetSortType()	Получить свойство (**)
Синтаксис COM:

iObject->get_SortType (&SortType)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.


ISpecificationSectionStyle::Columns

Колонки спецификации.

Тип данных - указатель на интерфейс ISpecificationColumnStyles коллеции стилей колонок спецификации.

Синтаксис Automation:

Columns = iObject.Columns	Получить свойство (*)
Columns = iObject.GetColumns()	Получить свойство (**)
Синтаксис COM:

iObject->get_Columns (&Columns)	Получить свойство
Примечание:

1. Настройки стиля колонок для данного раздела (могут отличатся от умолчательных).

2. Свойство доступно только для чтения.


ISpecificationSectionStyle::AdditionalColumns

Дополнительные колоноки спецификации.

Тип данных - указатель на интерфейс ISpecificationColumnStyles коллеции стилей колонок спецификации.

Синтаксис Automation:

AdditionalColumns = iObject.AdditionalColumns	Получить свойство (*)
AdditionalColumns = iObject.GetAdditionalColumns()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalColumns( &AdditionalColumns )	Получить свойство
Примечание:

1. Настройки стиля колонок для данного раздела (могут отличатся от умолчательных).

2. Свойство доступно только для чтения.


ISpecificationSectionStyle::AdditionalBlocks

Блоки вложенных разделов.

Тип данных - указатель на интерфейс IAdditionalBlockStyles коллеции стилей блоков дополнительных разделов.

Синтаксис Automation:

AdditionalBlocks = iObject.AdditionalBlocks	Получить свойство (*)
AdditionalBlocks = iObject.GetAdditionalBlocks()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalBlocks (&AdditionalBlocks)	Получить свойство
Примечание:

1. Свойство доступно только для чтения.


Интерфейс IAdditionalBlockStyles
IAdditionalBlockStyles

Интерфейс коллекции стилей блоков дополнительных (вложенных) разделов.

Иерархия:

Свойства...

Описание:

Управляет массивом интерфейсов IAdditionalBlockStyle.

Блоки разделов бывают вложенными и дополнительными. Вложенные блоки разделов распологаются внутри раздела, после всех объектов этого раздела.

Дополнительные блоки разделов распологаются в конце спецификации, после всех ее разделов.

Примечание:

Чтобы получить коллекцию стилей блоков дополнительных разделов спецификации используется метод ISpecificationStyle::AdditionalBlocks.


IAdditionalBlockStyles::props
IAdditionalBlockStyles
свойства

Item


IAdditionalBlockStyles::Item

Стиль блока дополнительных (вложенных) разделов спецификации, заданный по индексу.

Тип данных - указатель на интерфейс IAdditionalBlockStyle стиля блока дополнительных(вложенных) разделов спецификации.

Синтаксис Automation:

Block = iObject.Item (Index)	Получить свойство (*)
Block = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Block)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс IAdditionalBlockStyle
IAdditionalBlockStyle

Интерфейс стиля блока дополнительных (вложенных) разделов спецификации.

Иерархия:

Свойства...

Описание:

Вложенные разделы располагаются внутри раздела, после всех объектов этого раздела.

Дополнительные разделы распологаются в конце спецификации, после всех ее разделов.

Блок состоит из тех же разделов что и сама спецификация.

Примечание:

Данный интерфейс можно получить,используя метод IAdditionalBlockStyles::Item.


IAdditionalBlockStyle::props
IAdditionalBlockStyle
свойства

Name

Number


IAdditionalBlockStyle::Name

Имя блока дополнительных (вложенных) разделов.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
Примечание:

Свойство доступно только для чтения.


IAdditionalBlockStyle::Number

Номер блока дополнительных (вложенных) разделов.

Тип данных - long.

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
Примечание:

1. Блоки разделов в спецификации распологаются в порядке возрастания или убывания их номеров Number, в зависимости от значения свойства ISpecificationStyle::SortSectionDown.

2. Свойство доступно только для чтения.


Интерфейс ISpecificationTuning
ISpecificationTuning

Интерфейс настроек спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Данный интерфейс позволяет получить доступ к настройкам стиля спецификации ISpecificationStyle или настройкам описания спецификации ISpecificationDescription.

Если настройки взяты у стиля спецификации, то они являются умолчательными для данного стиля и изменять их нельзя. В этом случае данный интерфейс отражает содержимое настроек стиля в библиотеке стилей на момент получения и в дальнейшем не отслеживает изменений в библиотеке стилей.

Если настройки взяты у описания спецификации, то они отображают и отслеживают текущее состояние описания спецификации. Эти настройки можно изменять и они могут отличаться от  умолчательных настроек стиля спецификации по которому создано данное описание спецификации.

После изменения настроек (для того чтобы эти изменения реально отобразились в документе) необходимо вызвать метод ISpecificationTuning::Update.

Примечание:

Данный интерфейс можно получить, используя метод ISpecificationStyle::SpecificationTuning или ISpecificationDescription::SpecificationTuning.


ISpecificationTuning::methods
ISpecificationTuning
методы

Update


ISpecificationTuning::props
ISpecificationTuning
свойства

AdditionalBlocks

AdditionalBlockTextStyleFirst

AdditionalBlockTextStyleNext

BlockCount

BlockOnNewPage

CalculatePosition

CalculateZone

DeleteGeometry

DisableAdditionalBlockEmptyStrings

DisableEmptyBlockString

DisableEmptyString

DisableNestingBlockEmptyStrings

DrawBottomUp

InitialPosition

InsertDash

InsertNull

LinkType

NestingBlockTextStyleFirst

NestingBlockTextStyleNext

ObjectTextStyle

PerformanceBlockTextStyleFirst

PerformanceBlockTextStyleNext

PerformanceCount

PositionUp

PredefinedTextFileName

Sections

SectionTextStyleFirst

SectionTextStyleNext

ShowAdditionalBlockName

ShowInfoByObjects

ShowNestingBlockName

ShowPerformanceBlockName

ShowPerformanceFull

ShowSectionName

SupportPerformance

UseAdditionalBlocks

UserTextStyle


ISpecificationTuning::LinkType

Режим связки сборки или чертежа со спецификацией.

Тип данных - из перечисления ksSpecificationLinkTypeEnum.

Синтаксис Automation:

LinkType = iObject.LinkType	Получить свойство (*)
iObject.LinkType = LinkType	Установить свойство (*)
LinkType = iObject.GetLinkType()	Получить свойство (**)
iObject.SetLinkType (LinkType)	Установить свойство (**)
Синтаксис COM:

iObject->get_LinkType (&LinkType)	Получить свойство
iObject->put_LinkType (LinkType)	Установить свойство
Значения свойства:

slNone	- информация из подключенного сборочного чертежа не будет передаваться в спецификацию, однако чертеж будет по-прежнему подключен и связь можно будет включить в любой момент),
slOnlyObjects	- при сохранении подключенного чертежа, в который внесены изменения, касающиеся спецификации (созданы или отредактированы объекты спецификации), эти изменения будут переданы в спецификацию.
slWithPositionCalculate	- после передачи изменений из чертежа в спецификацию в ней будет автоматически произведен расчет номеров позиций (в соответствии с последовательностью сортировки объектов) и новые номера позиций будут переданы в чертеж.
Примечание:

Позволяет включать и блокировать связь подключенных друг к другу документов - спецификации и модели (сборочного чертежа) и устанавливать тип этой связи.


ISpecificationTuning::CalculateZone

Режим расчета зон.

Тип данных - BOOL.

Синтаксис Automation:

CalculateZone = iObject.CalculateZone	Получить свойство (*)
iObject.CalculateZone = CalculateZone	Установить свойство (*)
CalculateZone = iObject.GetCalculateZone()	Получить свойство (**)
iObject.SetCalculateZone (CalculateZone)	Установить свойство (**)
Синтаксис COM:

iObject->get_CalculateZone (&CalculateZone)	Получить свойство
iObject->put_CalculateZone (CalculateZone)	Установить свойство
Значения свойства:

TRUE	- при автоматической простановке номеров позиций происходит обновление номеров зон чертежа,
FALSE	- зоны не обновляются.
Примечание:

Позволяет включить или отключить передачу в спецификацию обозначений зон сборочного чертежа, в которых находятся позиционные линии-выноски объектов. Если передача разрешена, она происходит при синхронизации чертежа со спецификацией.


ISpecificationTuning::CalculatePosition

Режим расчета позиций.

Тип данных - BOOL.

Синтаксис Automation:

CalculatePosition = iObject.CalculatePosition	Получить свойство (*)
iObject.CalculatePosition = CalculatePosition	Установить свойство (*)
CalculatePosition = iObject.GetCalculatePosition()	Получить свойство (**)
iObject.SetCalculatePosition (CalculatePosition)	Установить свойство (**)
Синтаксис COM:

iObject->get_CalculatePosition (&CalculatePosition)	Получить свойство
iObject->put_CalculatePosition (CalculatePosition)	Установить свойство
Значения свойства:

TRUE	- расчет позиций автоматически (после каждой сортировки) не происходит,
FALSE	- расчет позиций происходит автоматически.
Примечание:

Позволяет включить или отключить расчет позиций (то есть присвоение  объектам новых номеров позиций после того, как нумерация нарушилась в результате

автоматической сортировки или удаления объектов).


ISpecificationTuning::ShowSectionName

Режим отображения заголовков разделов.

Тип данных - BOOL.

Синтаксис Automation:

ShowSectionName = iObject.ShowSectionName	Получить свойство (*)
iObject.ShowSectionName = ShowSectionName	Установить свойство (*)
ShowSectionName = iObject.GetShowSectionName()	Получить свойство (**)
iObject.SetShowSectionName (ShowSectionName)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowSectionName (&ShowSectionName)	Получить свойство
iObject->put_ShowSectionName (ShowSectionName)	Установить свойство
Значения свойства:

TRUE	- заголовки разделов показываются в таблице спецификации,
FALSE	- заголовки разделов не показываются в таблице спецификации.
Примечание:

Позволяет включить или отключить показ в таблице спецификации заголовков разделов и пустых строк. Если значение свойства - FALSE, объекты показываются в таблице спецификации непрерывным списком. При этом порядок их сортировки сохраняется (в том числе учитывается принадлежность объектов к разным разделам). На отображение резервных строк значение этого свойства не влияет.


ISpecificationTuning::DeleteGeometry

Режим удаления геометрии при удалении объекта спецификации.

Тип данных - BOOL.

Синтаксис Automation:

DeleteGeometry = iObject.DeleteGeometry	Получить свойство (*)
iObject.DeleteGeometry = DeleteGeometry	Установить свойство (*)
DeleteGeometry = iObject.GetDeleteGeometry()	Получить свойство (**)
iObject.SetDeleteGeometry (DeleteGeometry)	Установить свойство (**)
Синтаксис COM:

iObject->get_DeleteGeometry (&DeleteGeometry)	Получить свойство
iObject->put_DeleteGeometry (DeleteGeometry)	Установить свойство
Значения свойства:

TRUE	- в результате удаления объекта спецификации из чертежа должны удаляться входящие в состав этого объекта графические объекты,
FALSE	- в результате удаления объекта спецификации из чертежа входящие в состав этого объекта графические объекты удаляться не будут.
Примечание:

Управляет удалением графических объектов, входящих в состав удаляемых объектов спецификации.


ISpecificationTuning::DisableEmptyString

Режим вывода пустых строк вокруг заголовка раздела.

Тип данных - BOOL.

Синтаксис Automation:

DisableEmptyString = iObject.DisableEmptyString	Получить свойство (*)
iObject.DisableEmptyString = DisableEmptyString	Установить свойство (*)
DisableEmptyString = iObject.GetDisableEmptyString()	Получить свойство (**)
iObject.SetDisableEmptyString (DisableEmptyString)	Установить свойство (**)
Синтаксис COM:

iObject->get_DisableEmptyString (&DisableEmptyString)	Получить свойство
iObject->put_DisableEmptyString (DisableEmptyString)	Установить свойство
Значения свойства:

TRUE	- не показывать пустые строки, обрамляющие название разделов спецификации,
FALSE	- показывать пустые строки, обрамляющие название разделов спецификации.
Примечание:

Позволяет включать и отключать показ пустых строк, обрамляющих название разделов спецификации.


ISpecificationTuning::DisableEmptyBlockString

Режим вывода пустых строк вокруг начала блока.

Тип данных - BOOL.

Синтаксис Automation:

DisableEmptyBlockString = iObject.DisableEmptyBlockString	Получить свойство (*)
iObject.DisableEmptyBlockString = DisableEmptyBlockString	Установить свойство (*)
DisableEmptyBlockString = iObject.GetDisableEmptyBlockString()	Получить свойство (**)
iObject.SetDisableEmptyBlockString (DisableEmptyBlockString)	Установить свойство (**)
Синтаксис COM:

iObject->get_DisableEmptyBlockString (&DisableEmptyBlockString)	Получить свойство
iObject->put_DisableEmptyBlockString (DisableEmptyBlockString)	Установить свойство
Значения свойства:

TRUE	- не показывать пустые строки, обрамляющие название начала блоков спецификации,
FALSE	- показывать пустые строки, обрамляющие название начала блоков спецификации.
Примечание:

Позволяет включать и отключать показ пустых строк, обрамляющих название начала блоков спецификации.


ISpecificationTuning::InsertNull

Настройка начала блока: вставлять нули перед числом.

Тип данных - BOOL.

Синтаксис Automation:

InsertNull = iObject.InsertNull	Получить свойство (*)
iObject.InsertNull = InsertNull	Установить свойство (*)
InsertNull = iObject.GetInsertNull()	Получить свойство (**)
iObject.SetInsertNull (InsertNull)	Установить свойство (**)
Синтаксис COM:

iObject->get_InsertNull (&InsertNull)	Получить свойство
iObject->put_InsertNull (InsertNull )	Установить свойство
Значения свойства:

TRUE	- вставлять нули перед числом,
FALSE	- не вставлять нули перед числом.
Примечание:

Позволяет настроить формат номеров исполнений специфицируемого изделия (номеров исполнений, располагающихся в «шапке» спецификации).

Настройка номеров исполнений имеет смысл только для групповых спецификаций.


ISpecificationTuning::InsertDash

Настройка начала блока: вставлять тире.

Тип данных - BOOL.

Синтаксис Automation:

InsertDash = iObject.InsertDash	Получить свойство (*)
iObject.InsertDash = InsertDash	Установить свойство (*)
InsertDash = iObject.GetInsertDash()	Получить свойство (**)
iObject.SetInsertDash( InsertDash )	Установить свойство (**)
Синтаксис COM:

iObject->get_InsertDash( &InsertDash )	Получить свойство
iObject->put_InsertDash(  InsertDash )	Установить свойство
Значения свойства:

TRUE	- вставлять тире перед числом,
FALSE	- не вставлять тире перед числом.
Примечание:

Позволяет настроить формат номеров исполнений специфицируемого изделия (номеров исполнений, располагающихся в «шапке» спецификации).

Настройка номеров исполнений имеет смысл только для групповых спецификаций.


ISpecificationTuning::ShowInfoByObjects

Выдавать информацию по объектам (для исполнений более 10).

Тип данных - BOOL.

Синтаксис Automation:

ShowInfoByObjects = iObject.ShowInfoByObjects	Получить свойство (*)
iObject.ShowInfoByObjects = ShowInfoByObjects	Установить свойство (*)
ShowInfoByObjects = iObject.GetShowInfoByObjects()	Получить свойство (**)
iObject.SetShowInfoByObjects (ShowInfoByObjects)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowInfoByObjects (&ShowInfoByObjects )	Получить свойство
iObject->put_ShowInfoByObjects (ShowInfoByObjects)	Установить свойство
Значения свойства:

TRUE	- выдавать информацию по объектам,
FALSE	- выдавать информацию блоками.
Примечание:

Позволяет выбрать способ отображения информации.

Свойство имеет смысл, если число исполнений, введенное в общих настройках спецификации, больше, чем количество колонок бланка спецификации, предназначенное для ввода количества на исполнение, становятся доступны выбора способа отображения информации.


ISpecificationTuning::SupportPerformance

Поддержка исполнений в спецификации.

Тип данных - BOOL.

Синтаксис Automation:

SupportPerformance = iObject.SupportPerformance	Получить свойство (*)
iObject.SupportPerformance = SupportPerformance	Установить свойство (*)
SupportPerformance = iObject.GetSupportPerformance()	Получить свойство (**)
iObject.SetSupportPerformance (SupportPerformance)	Установить свойство (**)
Синтаксис COM:

iObject->get_SupportPerformance (&SupportPerformance)	Получить свойство
iObject->put_SupportPerformance (SupportPerformance)	Установить свойство
Значения свойства:

TRUE	- исполнения поддерживаются в спецификации,
FALSE	- исполнения не поддерживаются в спецификации.
Примечание:

Позволяет определить требуется ли в спецификации создавать объекты-исполнения.


ISpecificationTuning::ShowPerformanceFull

Обозначение исполнения показывать полностью.

Тип данных - BOOL.

Синтаксис Automation:

ShowPerformanceFull = iObject.ShowPerformanceFull	Получить свойство (*)
iObject.ShowPerformanceFull = ShowPerformanceFull	Установить свойство (*)
ShowPerformanceFull = iObject.GetShowPerformanceFull()	Получить свойство (**)
iObject.SetShowPerformanceFull (ShowPerformanceFull)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowPerformanceFull (&ShowPerformanceFull)	Получить свойство
iObject->put_ShowPerformanceFull (ShowPerformanceFull)	Установить свойство
Значения свойства:

TRUE	- обозначение исполнения показывать полностью,
FALSE	- показывать только номер.
Примечание:

Позволяет определить вариант отображения обозначений объектов-исполнений.


ISpecificationTuning::BlockOnNewPage

Располагать блок на новой странице.

Тип данных - BOOL.

Синтаксис Automation:

BlockOnNewPage = iObject.BlockOnNewPage	Получить свойство (*)
iObject.BlockOnNewPage = BlockOnNewPage	Установить свойство (*)
BlockOnNewPage = iObject.GetBlockOnNewPage()	Получить свойство (**)
iObject.SetBlockOnNewPage (BlockOnNewPage)	Установить свойство (**)
Синтаксис COM:

iObject->get_BlockOnNewPage (&BlockOnNewPage)	Получить свойство
iObject->put_BlockOnNewPage (BlockOnNewPage)	Установить свойство
Значения свойства:

TRUE	- располагать блок на новой странице,
FALSE	- располагать блок сразу за предыдущим.
Примечание:

Позволяет указать, требуется ли располагать начала всех блоков на новых листах спецификации.


ISpecificationTuning::PositionUp

Настройка исполнений объектов: позиции возрастают.

Тип данных - BOOL.

Синтаксис Automation:

PositionUp = iObject.PositionUp	Получить свойство (*)
iObject.PositionUp = PositionUp	Установить свойство (*)
PositionUp = iObject.GetPositionUp()	Получить свойство (**)
iObject.SetPositionUp (PositionUp)	Установить свойство (**)
Синтаксис COM:

iObject->get_PositionUp (&PositionUp)	Получить свойство
iObject->put_PositionUp (PositionUp)	Установить свойство
Значения свойства:

TRUE	- позиции объектов-исполнений возрастают,
FALSE	- позиции объектов-исполнений не возрастают.
Примечание:

Позволяет указать, требуется ли в спецификации отображать возрастающие номера объектов, являющихся исполнениями.


ISpecificationTuning::DrawBottomUp

Строить снизу вверх.

Тип данных - BOOL.

Синтаксис Automation:

DrawBottomUp = iObject.DrawBottomUp	Получить свойство (*)
iObject.DrawBottomUp = DrawBottomUp	Установить свойство (*)
DrawBottomUp = iObject.GetDrawBottomUp()	Получить свойство (**)
iObject.SetDrawBottomUp (DrawBottomUp)	Установить свойство (**)
Синтаксис COM:

iObject->get_DrawBottomUp (&DrawBottomUp)	Получить свойство
iObject->put_DrawBottomUp (DrawBottomUp)	Установить свойство
Значения свойства:

TRUE	- строить снизу вверх,
FALSE	- строить сверху вниз.
Примечание:

Позволяет управлять порядком следования разделов и объектов в них. Если значение свойства - TRUE, разделы располагаются в порядке, обратном указанному в стиле спецификации и порядок сортировки объектов также становится «обратным». Такой порядок расположения предписывается некоторыми СТП при заполнении спецификации, размещаемой на чертеже.


ISpecificationTuning::UserTextStyle

Стиль текста объектов спецификации пользовательский.

Тип данных - BOOL.

Синтаксис Automation:

UserTextStyle = iObject.UserTextStyle	Получить свойство (*)
iObject.UserTextStyle = UserTextStyle	Установить свойство (*)
UserTextStyle = iObject.GetUserTextStyle()	Получить свойство (**)
iObject.SetUserTextStyle (UserTextStyle)	Установить свойство (**)
Синтаксис COM:

iObject->get_UserTextStyle (&UserTextStyle)	Получить свойство
iObject->put_UserTextStyle (UserTextStyle)	Установить свойство
Значения свойства:

TRUE	- шрифт текстовой части объектов спецификации задается свойством ObjectTextStyle,
FALSE	- шрифт текстовой части объектов спецификации будет таким, каким он был установлен по умолчанию в таблице спецификации.
Примечание:

Позволяет определить, какой шрифт будет использоваться для отображения текстовой части объектов спецификации.


ISpecificationTuning::PerformanceCount

Количество исполнений.

Тип данных - long.

Синтаксис Automation:

PerformanceCount = iObject.PerformanceCount	Получить свойство (*)
iObject.PerformanceCount = PerformanceCount	Установить свойство (*)
PerformanceCount = iObject.GetPerformanceCount()	Получить свойство (**)
iObject.SetPerformanceCount (PerformanceCount)	Установить свойство (**)
Синтаксис COM:

iObject->get_PerformanceCount (&PerformanceCount)	Получить свойство
iObject->put_PerformanceCount (PerformanceCount)	Установить свойство
Примечание:

Позволяет указать количество исполнений специфицируемого изделия. Введенное число будет влиять на доступность ячеек "Количество" на исполнение и количество самих этих ячеек.Имеет смысл только при настройке групповых спецификаций.


ISpecificationTuning::BlockCount

Количество блоков.

Тип данных - long.

Синтаксис Automation:

BlockCount = iObject.BlockCount	Получить свойство (*)
BlockCount = iObject.GetBlockCount()	Получить свойство (**)
Синтаксис COM:

iObject->get_BlockCount (&BlockCount)	Получить свойство
Примечание:

1. Позволяет получить количество блоков исполнений в спецификации. Имеет смысл только при настройке групповых спецификаций.

2. Свойство доступно только для чтения.


ISpecificationTuning::InitialPosition

Начальная позиция.

Тип данных - long.

Синтаксис Automation:

InitialPosition = iObject.InitialPosition	Получить свойство (*)
iObject.InitialPosition = InitialPosition	Установить свойство (*)
InitialPosition = iObject.GetInitialPosition()	Получить свойство (**)
iObject.SetInitialPosition (InitialPosition)	Установить свойство (**)
Синтаксис COM:

iObject->get_InitialPosition (&InitialPosition)	Получить свойство
iObject->put_InitialPosition (InitialPosition)	Установить свойство
Примечание:

Позволяет получить или указать номер позиции, который должен иметь первый объект спецификации.


ISpecificationTuning::PredefinedTextFileName

Имя файла для вставки текстовых шаблонов.

Тип данных - BSTR (строка).

Синтаксис Automation:

PredefinedTextFileName = iObject.PredefinedTextFileName	Получить свойство (*)
iObject.PredefinedTextFileName = PredefinedTextFileName	Установить свойство (*)
PredefinedTextFileName = iObject.GetPredefinedTextFileName()	Получить свойство (**)
iObject.SetPredefinedTextFileName (PredefinedTextFileName)	Установить свойство (**)
Синтаксис COM:

iObject->get_PredefinedTextFileName (&PredefinedTextFileName)	Получить свойство
iObject->put_PredefinedTextFileName (PredefinedTextFileName)	Установить свойство
Примечание:

Позволяет получить\изменить полное имя файла текстовых шаблонов (*.tdp), тексты из которого требуется вставлять при вводе и редактировании текстовой части объектов спецификации.


ISpecificationTuning::SectionTextStyleFirst

Стиль текста заголовка раздела - первая строка.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

SectionTextStyleFirst = iObject.SectionTextStyleFirst	Получить свойство (*)
SectionTextStyleFirst = iObject.GetSectionTextStyleFirst()	Получить свойство (**)
Синтаксис COM:

iObject->get_SectionTextStyleFirst (&SectionTextStyleFirst)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения первой строки в названиях разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::SectionTextStyleNext

Стиль текста заголовка раздела - последующие строки.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

SectionTextStyleNext = iObject.SectionTextStyleNext	Получить свойство (*)
SectionTextStyleNext = iObject.GetSectionTextStyleNext()	Получить свойство (**)
Синтаксис COM:

iObject->get_SectionTextStyleNext (&SectionTextStyleNext)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения второй и последующих строк в многострочных названиях разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::ObjectTextStyle

Стиль текста объекта спецификации.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

ObjectTextStyle = iObject.ObjectTextStyle	Получить свойство (*)
ObjectTextStyle = iObject.GetObjectTextStyle()	Получить свойство (**)
Синтаксис COM:

iObject->get_ObjectTextStyle (&ObjectTextStyle)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта текстовой части объектов спецификации, отличающиеся от параметров шрифта в оформлении. Имеет смысл, если свойство UserTextStyle имеет значение TRUE.

2. Свойство доступно только для чтения.


ISpecificationTuning::Sections

Настройки разделов.

Тип данных - указатель на интефейс ISpecificationTuningSections коллекции настроек разделов спецификации.

Синтаксис Automation:

Sections = iObject.Sections	Получить свойство (*)
Sections = iObject.GetSections()	Получить свойство (**)
Синтаксис COM:

iObject->get_Sections (&Sections)	Получить свойство
Примечание:

1. Позволяет получить параметры настроек разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::UseAdditionalBlocks

Использовать блоки дополнительных разделов.

Тип данных - BOOL.

Синтаксис Automation:

UseAdditionalBlocks = iObject.UseAdditionalBlocks	Получить свойство (*)
iObject.UseAdditionalBlocks = UseAdditionalBlocks	Установить свойство (*)
UseAdditionalBlocks = iObject.GetUseAdditionalBlocks()	Получить свойство (**)
iObject.SetUseAdditionalBlocks (UseAdditionalBlocks)	Установить свойство (**)
Синтаксис COM:

iObject->get_UseAdditionalBlocks (&UseAdditionalBlocks)	Получить свойство
iObject->put_UseAdditionalBlocks (UseAdditionalBlocks)	Установить свойство
Значения свойства:

TRUE	- использовать блоки дополнительных разделов,
FALSE	- блоки дополнительных разделов использоваться не будут.
Примечание:

Позволяет получить\изменить возможность использования блоков дополнительных разделов. Если значение свойства - TRUE, при создании объектов в спецификации доступны блоки дополнительных разделов.


ISpecificationTuning::AdditionalBlocks

Блоки дополнительных разделов.

Тип данных - указатель на интефейс IAdditionalBlockTunings коллекции настроек блоков дополнительных разделов спецификации.

Синтаксис Automation:

AdditionalBlocks = iObject.AdditionalBlocks	Получить свойство (*)
AdditionalBlocks = iObject.GetAdditionalBlocks()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalBlocks (&AdditionalBlocks)	Получить свойство
Примечание:

1. Позволяет получить параметры настроек блоков дополнительных разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::ShowAdditionalBlockName

Показывать имя дополнительного блока.

Тип данных - BOOL.

Синтаксис Automation:

ShowAdditionalBlockName = iObject.ShowAdditionalBlockName	Получить свойство (*)
iObject.ShowAdditionalBlockName = ShowAdditionalBlockName	Установить свойство (*)
ShowAdditionalBlockName = iObject.GetShowAdditionalBlockName()	Получить свойство (**)
iObject.SetShowAdditionalBlockName (ShowAdditionalBlockName)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowAdditionalBlockName (&ShowAdditionalBlockName)	Получить свойство
iObject->put_ShowAdditionalBlockName (ShowAdditionalBlockName)	Установить свойство
Значения свойства:

TRUE	- имена дополнительных блоков показываются в таблице спецификации,
FALSE	- имена дополнительных блоков не показываются в таблице спецификации.
Примечание:

Позволяет включать и отключать показ в таблице спецификации заголовков блоков дополнительных разделов и пустых строк вокруг них.


ISpecificationTuning::ShowNestingBlockName

Показывать имя вложенного блока.

Тип данных - BOOL.

Синтаксис Automation:

ShowNestingBlockName = iObject.ShowNestingBlockName	Получить свойство (*)
iObject.ShowNestingBlockName = ShowNestingBlockName	Установить свойство (*)
ShowNestingBlockName = iObject.GetShowNestingBlockName()	Получить свойство (**)
iObject.SetShowNestingBlockName (ShowNestingBlockName)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowNestingBlockName (&ShowNestingBlockName)	Получить свойство
iObject->put_ShowNestingBlockName (ShowNestingBlockName)	Установить свойство
Значения свойства:

TRUE	- имена вложенных блоков показываются в таблице спецификации,
FALSE	- имена вложенных блоков не показываются в таблице спецификации.
Примечание:

Позволяет включать и отключать показ в таблице спецификации заголовков блоков вложенных разделов и пустых строк вокруг них.


ISpecificationTuning::ShowPerformanceBlockName

Показывать имя блока исполнений.

Тип данных - BOOL.

Синтаксис Automation:

ShowPerformanceBlockName = iObject.ShowPerformanceBlockName	Получить свойство (*)
iObject.ShowPerformanceBlockName = ShowPerformanceBlockName	Установить свойство (*)
ShowPerformanceBlockName = iObject.GetShowPerformanceBlockName()	Получить свойство (**)
iObject.SetShowPerformanceBlockName (ShowPerformanceBlockName)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowPerformanceBlockName (&ShowPerformanceBlockName)	Получить свойство
iObject->put_ShowPerformanceBlockName (ShowPerformanceBlockName)	Установить свойство
Значения свойства:

TRUE	- имена блоков исполнений показываются в таблице спецификации,
FALSE	- имена блоков исполнений не показываются в таблице спецификации.
Примечание:

Позволяет включать и отключать показ в таблице спецификации заголовков блоков исполнений и пустых строк вокруг них.


ISpecificationTuning::PerformanceBlockTextStyleFirst

Стиль текста заголовка блока исполнений - первая строка.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

PerformanceBlockTextStyleFirst = iObject.PerformanceBlockTextStyleFirst	Получить свойство (*)
PerformanceBlockTextStyleFirst = iObject.GetPerformanceBlockTextStyleFirst()	Получить свойство (**)
Синтаксис COM:

iObject->get_PerformanceBlockTextStyleFirst (&PerformanceBlockTextStyleFirst)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения первой строки в названиях блоков исполнений спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::PerformanceBlockTextStyleNext

Стиль текста заголовка блока исполнений - последующие строки.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

PerformanceBlockTextStyleNext = iObject.PerformanceBlockTextStyleNext	Получить свойство (*)
PerformanceBlockTextStyleNext = iObject.GetPerformanceBlockTextStyleNext()	Получить свойство (**)
Синтаксис COM:

iObject->get_PerformanceBlockTextStyleNext (&PerformanceBlockTextStyleNext)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения второй и последующих строк в многострочных названиях блоков исполнений спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::AdditionalBlockTextStyleFirst

Стиль текста заголовка дополнительных блоков - первая строка.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

AdditionalBlockTextStyleFirst = iObject.AdditionalBlockTextStyleFirst	Получить свойство (*)
AdditionalBlockTextStyleFirst = iObject.GetAdditionalBlockTextStyleFirst()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalBlockTextStyleFirst (&AdditionalBlockTextStyleFirst)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения первой строки в названиях дополнительных блоков разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::AdditionalBlockTextStyleNext

Стиль текста заголовка дополнительных блоков - последующие строки.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

AdditionalBlockTextStyleNext = iObject.AdditionalBlockTextStyleNext	Получить свойство (*)
AdditionalBlockTextStyleNext = iObject.GetAdditionalBlockTextStyleNext()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalBlockTextStyleNext (&AdditionalBlockTextStyleNext)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения второй и последующих строк в многострочных названиях дополнительных блоков разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::NestingBlockTextStyleFirst

Стиль текста заголовка вложенных блоков - первая строка.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

NestingBlockTextStyleFirst = iObject.NestingBlockTextStyleFirst	Получить свойство (*)
NestingBlockTextStyleFirst = iObject.GetNestingBlockTextStyleFirst()	Получить свойство (**)
Синтаксис COM:

iObject->get_NestingBlockTextStyleFirst (&NestingBlockTextStyleFirst)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения первой строки в названиях вложенных блоков разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::NestingBlockTextStyleNext

Стиль текста заголовка вложенных блоков - последующие строки.

Тип данных - указатель на интефейс ITextStyle параметров стиля текста.

Синтаксис Automation:

NestingBlockTextStyleNext = iObject.NestingBlockTextStyleNext	Получить свойство (*)
NestingBlockTextStyleNext = iObject.GetNestingBlockTextStyleNext()	Получить свойство (**)
Синтаксис COM:

iObject->get_NestingBlockTextStyleNext (&NestingBlockTextStyleNext)	Получить свойство
Примечание:

1. Позволяет получить параметры шрифта для отображения второй и последующих строк в многострочных названиях вложенных блоков разделов спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuning::DisableNestingBlockEmptyStrings

Запретить вывод пустых строк вокруг начала вложенного блока.

Тип данных - BOOL.

Синтаксис Automation:

DisableNestingBlockEmptyStrings = iObject.DisableNestingBlockEmptyStrings	Получить свойство (*)
iObject.DisableNestingBlockEmptyStrings = DisableNestingBlockEmptyStrings	Установить свойство (*)
DisableNestingBlockEmptyStrings = iObject.GetDisableNestingBlockEmptyStrings()	Получить свойство (**)
iObject.SetDisableNestingBlockEmptyStrings (DisableNestingBlockEmptyStrings)	Установить свойство (**)
Синтаксис COM:

iObject->get_DisableNestingBlockEmptyStrings (&DisableNestingBlockEmptyStrings)	Получить свойство
iObject->put_DisableNestingBlockEmptyStrings (DisableNestingBlockEmptyStrings)	Установить свойство
Значения свойства:

TRUE	- не показывать пустые строки, обрамляющие название начала вложенных блоков спецификации,
FALSE	- показывать пустые строки, обрамляющие название начала вложенных блоков спецификации.
Примечание:

Позволяет включать и отключать показ пустых строк, обрамляющих название начала вложенных блоков спецификации.


ISpecificationTuning::DisableAdditionalBlockEmptyStrings

Запретить вывод пустых строк вокруг начала дополнительного блока.

Тип данных - BOOL.

Синтаксис Automation:

DisableAdditionalBlockEmptyStrings = iObject.DisableAdditionalBlockEmptyStrings	Получить свойство (*)
iObject.DisableAdditionalBlockEmptyStrings = DisableAdditionalBlockEmptyStrings	Установить свойство (*)
DisableAdditionalBlockEmptyStrings = iObject.GetDisableAdditionalBlockEmptyStrings()	Получить свойство (**)
iObject.SetDisableAdditionalBlockEmptyStrings (DisableAdditionalBlockEmptyStrings)	Установить свойство (**)
Синтаксис COM:

iObject->get_DisableAdditionalBlockEmptyStrings (&DisableAdditionalBlockEmptyStrings)	Получить свойство
iObject->put_DisableAdditionalBlockEmptyStrings (DisableAdditionalBlockEmptyStrings)	Установить свойство
Значения свойства:

TRUE	- не показывать пустые строки, обрамляющие название начала дополнительных блоков спецификации,
FALSE	- показывать пустые строки, обрамляющие название начала дополнительных блоков спецификации.
Примечание:

Позволяет включать и отключать показ пустых строк, обрамляющих название начала дополнительных блоков спецификации.


ISpecificationTuning::Update

Обновить описание спецификации в соответствии с внесенными в настройки изменениями.

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

HRESULT Update ([out, retval] VARIANT_BOOL* pVal);

Возвращаемое значение:

TRUE	- обновление прошло успешно,
FALSE	- обновить настройки не удалось.
Примечание:

Все изменения сделанные в интерфейсах настроек спецификации вступят в силу только после вызова этого метода.


Интерфейс ISpecificationTuningSections
ISpecificationTuningSections

Интерфейс коллекции настроек разделов спецификации.

Иерархия:

 {bmcISpecificationTuningSections.wmf}

Свойства...

Описание:

Управляет массивом интерфейсов ISpecificationTuningSection.

Примечание:

Чтобы получить данный интерфейс спецификации используется метод ISpecificationTuning::Sections


ISpecificationTuningSections::props
ISpecificationTuningSections
свойства

Item


ISpecificationTuningSections::Item

Настройки раздела спецификации, заданные по индексу

Тип данных - указатель на интерфейс ISpecificationTuningSection настроек раздела спецификации.

Синтаксис Automation:

Section = iObject.Item (Index)	Получить свойство (*)
Section = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Section)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс ISpecificationTuningSection
ISpecificationTuningSection

Настройка раздела спецификации.

Иерархия:

Свойства...

Описание:

Данный интерфейс позволяет получить доступ к настройкам раздела спецификации. Если настройки взяты у стиля спецификации, то они являются умолчательными для данного стиля и изменять их нельзя. В этом случае данный интерфейс отражает содержимое настроек стиля в библиотеке стилей на момент получения и в дальнейшем не отслеживает изменений в библиотеке стилей.

Если настройки взяты у описания спецификации, то они отображают и отслеживают текущее состояние описания спецификации. Эти настройки можно изменять и они могут отличаться от умолчательных настроек стиля спецификации, по которому создано данное описание спецификации.

После изменения настроек для того, чтобы эти изменения реально отобразились в документе, необходимо вызвать метод ISpecificationTuning::Update.

Примечание:

Данный интерфейс можно получить у коллекции ISpecificationTuningSections.


ISpecificationTuningSection::props
ISpecificationTuningSection
свойства

AdditionalBlocks

AttachGeometry

FirstOnSheet

Number

PutPosition

ReserveStringCount

SortObjects

SubsectionOn

Subsections

UseAdditionalBlocks


ISpecificationTuningSection::Number

Номер раздела.

Тип данных - long.

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
Примечание:

1. Данное свойство определяет уникальный номер раздела в данном стиле спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuningSection::SubsectionOn

Деление на подразделы включено.

Тип данных - BOOL.

Синтаксис Automation:

SubsectionOn = iObject.SubsectionOn	Получить свойство (*)
iObject.SubsectionOn = SubsectionOn	Установить свойство (*)
SubsectionOn = iObject.GetSubsectionOn()	Получить свойство (**)
iObject.SetSubsectionOn (SubsectionOn)	Установить свойство (**)
Синтаксис COM:

iObject->get_SubsectionOn (&SubsectionOn)	Получить свойство
iObject->put_SubsectionOn (SubsectionOn)	Установить свойство
Значения свойства:

TRUE	- деление на подразделы включено,
FALSE	- деление на подразделы выключено,
Примечание:

Позволяет включать и отключать деление раздела на подразделы. Если деление на подразделы включено, объекты внутри раздела будут располагаться с учетом порядка подраздела. Подразделы располагаются в разделе в порядке возрастания номеров.


ISpecificationTuningSection::AttachGeometry

Подключать геометрию.

Тип данных - BOOL.

Синтаксис Automation:

AttachGeometry = iObject.AttachGeometry	Получить свойство (*)
iObject.AttachGeometry = AttachGeometry	Установить свойство (*)
AttachGeometry = iObject.GetAttachGeometry()	Получить свойство (**)
iObject.SetAttachGeometry (AttachGeometry)	Установить свойство (**)
Синтаксис COM:

iObject->get_AttachGeometry (&AttachGeometry)	Получить свойство
iObject->put_AttachGeometry (AttachGeometry)	Установить свойство
Значения свойства:

TRUE	- объектам раздела можно поставить в соответствие геометрические объекты графического документа,
FALSE	- объектам раздела нельзя поставить в соответствие геометрические объекты графического документа.
Примечание:

Позволяет включать и отключать подключение геометрии к объектам раздела.


ISpecificationTuningSection::PutPosition

Проставлять позиции.

Тип данных - BOOL.

Синтаксис Automation:

PutPosition = iObject.PutPosition	Получить свойство (*)
iObject.PutPosition = PutPosition	Установить свойство (*)
PutPosition = iObject.GetPutPosition()	Получить свойство (**)
iObject.SetPutPosition (PutPosition)	Установить свойство (**)
Синтаксис COM:

iObject->get_PutPosition (&PutPosition)	Получить свойство
iObject->put_PutPosition (PutPosition)	Установить свойство
Значения свойства:

TRUE	- в разделе возможен автоматический расчет номеров позиций,
FALSE	- в разделе невозможен автоматический расчет номеров позиций.
Примечание:

Позволяет включать и отключать простановку позиций в разделе. Следует понимать, что отключение простановки позиций отличается от запрета ввода данных в колонку "Позиция". Если в разделе включена простановка позиций, но запрещен ввод данных в колонку "Позиция", то объектам этого раздела при автоматической простановке позиций будут присвоены номера позиций. И хотя эти номера не будут видны в таблице (из-за запрета на ввод данных в колонку "Позиция"), нумерация объектов в следующем разделе будет производиться с их учетом.

Если в разделе отключена простановка позиций и разрешен ввод данных в колонку "Позиция", то после автоматической простановки позиций номера позиций в этом разделе не изменятся, а номера позиций в следующем разделе не будут учитывать введенные вручную номера позиций в данном разделе. Обычно запрет ввода данных в колонку "Позиция" какого-либо раздела сочетают с отключением простановки позиций в этом разделе (пример такого раздела — Документация). И наоборот, если данные в колонку "Позиция" раздела вводить можно, то в этом разделе включают автоматическую простановку позиций.


ISpecificationTuningSection::SortObjects

Сортировать объекты.

Тип данных - BOOL.

Синтаксис Automation:

SortObjects = iObject.SortObjects	Получить свойство (*)
iObject.SortObjects = SortObjects	Установить свойство (*)
SortObjects = iObject.GetSortObjects()	Получить свойство (**)
iObject.SetSortObjects (SortObjects)	Установить свойство (**)
Синтаксис COM:

iObject->get_SortObjects (&SortObjects)	Получить свойство
iObject->put_SortObjects (SortObjects)	Установить свойство
Значения свойства:

TRUE	- сортировка объектов внутри раздела производится по предусмотренным стандартом правилам,
FALSE	- в разделе сортировка объектов не производится.
Примечание:

Позволяет включать и отключать автоматическую сортировку объектов в разделе. Если сортировка выключена, объекты будут добавлятся в конец раздела и их можно будет перемещать вверх или вниз.


ISpecificationTuningSection::FirstOnSheet

Размещать на новом листе.

Тип данных - BOOL.

Синтаксис Automation:

FirstOnSheet = iObject.FirstOnSheet	Получить свойство (*)
FirstOnSheet = iObject.FirstOnSheet	Установить свойство (*)
FirstOnSheet = iObject.GetFirstOnSheet()	Получить свойство (**)
iObject.SetFirstOnSheet (FirstOnSheet)	Установить свойство (**)
Синтаксис COM:

iObject->get_FirstOnSheet (&FirstOnSheet)	Получить свойство
iObject->put_FirstOnSheet (FirstOnSheet)	Установить свойство
Значения свойства:

TRUE	- располагать раздел на новой странице,
FALSE	- располагать раздел сразу за предыдущим.
Примечание:

Позволяет включать и отключать размещение раздела на новом листе спецификации.


ISpecificationTuningSection::ReserveStringCount

Число резервных строк и позиций.

Тип данных - long.

Синтаксис Automation:

ReserveStringCount = iObject.ReserveStringCount	Получить свойство (*)
iObject.ReserveStringCount = ReserveStringCount	Установить свойство (*)
ReserveStringCount = iObject.GetReserveStringCount()	Получить свойство (**)
iObject.SetReserveStringCount (ReserveStringCount)	Установить свойство (**)
Синтаксис COM:

iObject->get_ReserveStringCount (&ReserveStringCount)	Получить свойство
iObject->put_ReserveStringCount (ReserveStringCount)	Установить свойство
Примечание:

Позволяет получить или указать количество резервных строк в разделе.


ISpecificationTuningSection::Subsections

Подразделы.

Тип данных - указатель на интефейс ISpecificationSubsections подразделов спецификации.

Синтаксис Automation:

Subsections = iObject.Subsections	Получить свойство (*)
Subsections = iObject.GetSubsections()	Получить свойство (**)
Синтаксис COM:

iObject->get_Subsections (&Subsections)	Получить свойство
Примечание:

1. Позволяет получить коллекцию подразделов данного раздела спецификации.

2. Свойство доступно только для чтения.


ISpecificationTuningSection::UseAdditionalBlocks

Использовать блоки вложенных разделов.

Тип данных - BOOL.

Синтаксис Automation:

UseAdditionalBlocks = iObject.UseAdditionalBlocks	Получить свойство (*)
iObject.UseAdditionalBlocks = UseAdditionalBlocks	Установить свойство (*)
UseAdditionalBlocks = iObject.GetUseAdditionalBlocks()	Получить свойство (**)
iObject.SetUseAdditionalBlocks (UseAdditionalBlocks)	Установить свойство (**)
Синтаксис COM:

iObject->get_UseAdditionalBlocks (&UseAdditionalBlocks)	Получить свойство
iObject->put_UseAdditionalBlocks (UseAdditionalBlocks)	Установить свойство
Значения свойства:

TRUE	- использовать блоки вложенных разделов,
FALSE	- блоки вложенных разделов использоваться не будут.
Примечание:

Позволяет получить или указать количество резервных строк в разделе.


ISpecificationTuningSection::AdditionalBlocks

Блоки вложенных разделов.

Тип данных - указатель на интефейс IAdditionalBlockTunings коллекции настроек блоков вложенных разделов спецификации.

Синтаксис Automation:

AdditionalBlocks = iObject.AdditionalBlocks	Получить свойство (*)
AdditionalBlocks = iObject.GetAdditionalBlocks()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalBlocks (&AdditionalBlocks)	Получить свойство
Примечание:

1. Позволяет получить параметры настроек блоков вложенных разделов спецификации.

2. Свойство доступно только для чтения.


Интерфейс ISpecificationSubsections
ISpecificationSubsections

Интерфейс коллекции подразделов спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Управляет массивом интерфейсов ISpecificationSubsections. Группы объектов внутри разделов называются подразделами. Подразделы, как и разделы, являются компонентом стиля спецификации. Их количество, названия и порядок внутри каждого раздела формируются при настройке стиля. Если деление на подразделы не запрещено в стиле текущей спецификации, то можно изменить список подразделов в каждом ее разделе. Подразделы располагаются в разделе в порядке возрастания номеров.

Примечание:

Данный интерфейс можно получить ISpecificationTuningSection::Subsections.


ISpecificationSubsections::props
ISpecificationSubsections
свойства

Item


ISpecificationSubsections::methods
ISpecificationSubsections
методы

Add


ISpecificationSubsections::Item

Настройки раздела спецификации, заданные по индексу

Тип данных - указатель на интерфейс ISpecificationSubsections подраздела спецификации.

Синтаксис Automation:

Subsection = iObject.Item (Index)	Получить свойство (*)
Subsection = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Subsection)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationSubsections::Add

Добавить новый подраздел.

Синтаксис Automation:

LPDISPATCH Add (BSTR Name, short Number);

Синтаксис COM:

HRESULT Add ([in] BSTR Name,
[in] short Number,
[out, retval] ISpecificationSubsections** Result);

Входные параметры:

Name	- имя подраздела,
Number	- номер подраздела.
Возвращаемое значение:

	Указатель на интерфейс подраздела спецификации ISpecificationSubsections.


Интерфейс ISpecificationSubsection
ISpecificationSubsection

Интерфейс подраздела спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Данный интерфейс позволяет получить доступ к подразделу спецификации. Группы объектов внутри разделов называются подразделами. Подразделы, как и разделы, являются компонентом стиля спецификации. Их количество, названия и порядок внутри каждого раздела формируются при настройке стиля. Названия подразделов не отображаются в бланке спецификации. Они служат лишь для удобства выбора подраздела. Подразделы располагаются в разделе в порядке возрастания номеров.

Примечание:

Данный интерфейс можно получить у коллекции ISpecificationSubsections.


ISpecificationSubsection::props
ISpecificationSubsection
свойства

Name

Number


ISpecificationSubsection::methods
ISpecificationSubsection
методы

Change

Delete


ISpecificationSubsection::Name

Имя подраздела.

Тип данных - BSTR (строка).

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationSubsection::Number

Номер подраздела.

Тип данных - long..

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
Примечание:

1. Данное свойство определяет уникальный номер подраздела в данном разделе спецификации.

2. Свойство доступно только для чтения.


ISpecificationSubsection::Change

Изменить параметры подраздела.

Синтаксис Automation:

BOOL Change (BSTR Name, short Number);

Синтаксис COM:

HRESULT Change ([in] BSTR Name,
[in] short Number,
[out, retval] VARIANT_BOOL* pVal);

Входные параметры:

Name	- новое имя подраздела,
Number	- новый номер подраздела.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


ISpecificationSubsection::Delete

Удалить подраздел.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete ([out, retval] VARIANT_BOOL* pVal);

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.


Интерфейс IAdditionalBlockTunings
IAdditionalBlockTunings

Интерфейс коллекции настроек блоков дополнительных (вложенных) разделов.

Иерархия:

Свойства...

Описание:

Управляет массивом интерфейсов IAdditionalBlockTunings.

Примечание:

Данный интерфейс можно получить: ISpecificationTuning::AdditionalBlocks - Коллекция настроек блоков дополнительных разделов,

ISpecificationTuningSection::AdditionalBlocks - Коллекция настроек блоков вложенных разделов.


IAdditionalBlockTunings::props
IAdditionalBlockTunings
свойства

Item


IAdditionalBlockTunings::Item

Настройки блока дополнительных (вложенных) разделов, заданные по индексу.

Тип данных - указатель на интерфейс IAdditionalBlockTunings настроек блока дополнительных (вложенных) разделов.

Синтаксис Automation:

BlockTuning = iObject.Item (Index)	Получить свойство (*)
BlockTuning = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &BlockTuning)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс IAdditionalBlockTuning
IAdditionalBlockTuning

Интерфейс настройки блока дополнительных (вложенных) разделов..

Иерархия:

Свойства...

Описание:

Данный интерфейс позволяет получить доступ к настройкам блока дополнительных (вложенных) разделов спецификации. Если настройки взяты у стиля спецификации, то они являются умолчательными для данного стиля, и изменять их нельзя. В этом случае данный интерфейс отражает содержимое настроек стиля в библиотеке стилей на момент получения и в дальнейшем не отслеживает изменений в библиотеке стилей.

Если настройки взяты у описания спецификации, то они отображают и отслеживают текущее состояние описания спецификации. Эти настройки можно изменять и они могут отличаться от умолчательных настроек стиля спецификации по которому создано данное описание спецификации.

После изменения настроек (для того чтобы эти изменения реально отобразились в документе) необходимо вызвать метод ISpecificationTuning::Update.

Примечание:

Данный интерфейс можно получить у коллекции IAdditionalBlockTunings.


IAdditionalBlockTuning::props
IAdditionalBlockTuning
свойства

DocumentName

FirstOnSheet

Number

Sections

Use


IAdditionalBlockTuning::Number

Номер блока дополнительных (вложенных) разделов.

Тип данных - long..

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
Примечание:

1. Данное свойство определяет уникальный номер блока дополнительных (вложенных) разделов в данном стиле спецификации.

2. Свойство доступно только для чтения.


IAdditionalBlockTuning::DocumentName

Имя файла документа, по которому устанавливается имя блока дополнительных (вложенных) разделов.

Тип данных - BSTR (строка).

Синтаксис Automation:

DocumentName = iObject.DocumentName	Получить свойство (*)
iObject.DocumentName = DocumentName	Установить свойство (*)
DocumentName = iObject.GetDocumentName()	Получить свойство (**)
iObject.SetDocumentName (DocumentName)	Установить свойство (**)
Синтаксис COM:

iObject->get_DocumentName (&DocumentName)	Получить свойство
iObject->put_DocumentName (DocumentName)	Установить свойство
Примечание:

Позволяет получить\изменить полное имя файла КОМПАС-документа для связи с заголовком блока. Обозначение из этого файла может включаться в заголовок блока. Чтобы это включение было возможно, имя блока (заданное при настройке стиля спецификации) должно содержать синтаксическую конструкцию вида #XXX# (Количество и тип символов между «решетками» не имеет значения). Вместо этой конструкции в заголовок блока в спецификации будет подставлено обозначение, полученное из документа, путь к которому указан в этом свойстве.Таким образом, указание документа имеет смысл лишь при настройке блоков, заголовки которых содержат конструкцию вида #XXX#. Обычно для связи с заголовком блока выбирается электромонтажный чертеж или таблица соединений.


IAdditionalBlockTuning::Use

Использовать этот блок.

Тип данных - BOOL.

Синтаксис Automation:

Use = iObject.Use	Получить свойство (*)
iObject.Use = Use	Установить свойство (*)
Use = iObject.GetUse()	Получить свойство (**)
iObject.SetUse (Use)	Установить свойство (**)
Синтаксис COM:

iObject->get_Use (&Use)	Получить свойство
iObject->put_Use (Use)	Установить свойство
Значения свойства:

TRUE	- использовать данный блок,
FALSE	- блок использоваться не будет.
Примечание:

Позволяет получить\изменить доступность данного блока при заполнении спецификации.


IAdditionalBlockTuning::FirstOnSheet

Блок размещать с новой страницы.

Тип данных - BOOL.

Синтаксис Automation:

FirstOnSheet = iObject.FirstOnSheet	Получить свойство (*)
iObject.FirstOnSheet = FirstOnSheet	Установить свойство (*)
FirstOnSheet = iObject.GetFirstOnSheet()	Получить свойство (**)
iObject.SetFirstOnSheet (FirstOnSheet)	Установить свойство (**)
Синтаксис COM:

iObject->get_FirstOnSheet (&FirstOnSheet)	Получить свойство
iObject->put_FirstOnSheet (FirstOnSheet)	Установить свойство
Значения свойства:

TRUE	- располагать блок на новой странице,
FALSE	- располагать блок сразу за предыдущим.
Примечание:

Позволяет включать и отключать размещение блока на новом листе спецификации.


IAdditionalBlockTuning::Sections

Разделы блока дополнительных (вложенных) разделов.

Тип данных - указатель на интерфейс IAdditionalBlockSectionTunings коллекции настроек разделов блока дополнительных (вложенных) разделов.

Синтаксис Automation:

Sections = iObject.Sections	Получить свойство (*)
Sections = iObject.GetSections()	Получить свойство (**)
Синтаксис COM:

iObject->get_Sections (&Sections)	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс IAdditionalBlockSectionTunings
IAdditionalBlockSectionTunings

Интерфейс коллекции настроек разделов блока дополнительных (вложенных) разделов.

Иерархия:

 {bmcIAdditionalBlockSectionTunings.wmf}

Свойства...

Описание:

Управляет массивом интерфейсов IAdditionalBlockSectionTuning. В коллекции разделов доступны все разделы, определенные в стиле спецификации. Настройки разделов, использующихся в блоках, полностью совпадают с настройками соответствующих обычных разделов.

Примечание:

Чтобы получить данный интерфейс спецификации используется метод IAdditionalBlockTuning::Sections


IAdditionalBlockSectionTunings::props
IAdditionalBlockSectionTunings
свойства

Item


IAdditionalBlockSectionTunings::Item

Настройки раздела блока дополнительных (вложенных) разделов, заданные по индексу.

Тип данных - указатель на интерфейс IAdditionalBlockSectionTuning настроек раздела блока дополнительных (вложенных) разделов.

Синтаксис Automation:

BlockTuning = iObject.Item (Index)	Получить свойство (*)
BlockTuning = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &BlockTuning )	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс IAdditionalBlockSectionTuning
IAdditionalBlockSectionTuning

Интерфейс настройки раздела блока дополнительных (вложенных) разделов.

Иерархия:

 {bmcIAdditionalBlockSectionTuning.wmf}

Свойства...

Описание:

Данный интерфейс позволяет получить доступ к настройкам раздела блока дополнительных (вложенных) разделов спецификации. Чтобы использовать в блоке этот раздел, установите свойству Use значение TRUE.

Если настройки взяты у стиля спецификации, то они являются умолчательными для данного стиля, и изменять их нельзя. В этом случае данный интерфейс отражает содержимое настроек стиля в библиотеке стилей на момент получения и в дальнейшем не отслеживает изменений в библиотеке стилей.

Если настройки взяты у описания спецификации, то они отображают и отслеживают текущее состояние описания спецификации. Эти настройки можно изменять и они могут отличаться от умолчательных настроек стиля спецификации по которому создано данное описание спецификации.

После изменения настроек (для того чтобы эти изменения реально отобразились в документе) необходимо вызвать метод ISpecificationTuning::Update.

Примечание:

Данный интерфейс можно получить у коллекции IAdditionalBlockSectionTunings.


IAdditionalBlockSectionTuning::props
IAdditionalBlockSectionTuning
свойства

Number

Use


IAdditionalBlockSectionTuning::Number

Номер раздела.

Тип данных - long.

Синтаксис Automation:

Number = iObject.Number	Получить свойство (*)
Number = iObject.GetNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_Number (&Number)	Получить свойство
Примечание:

1. Данное свойство определяет уникальный номер раздела блока дополнительных (вложенных) разделов в данном стиле спецификации.

2. Свойство доступно только для чтения.


IAdditionalBlockSectionTuning::Use

Использовать этот раздел.

Тип данных - BOOL.

Синтаксис Automation:

Use = iObject.Use	Получить свойство (*)
iObject.Use = Use	Установить свойство (*)
Use = iObject.GetUse()	Получить свойство (**)
iObject.SetUse (Use)	Установить свойство (**)
Синтаксис COM:

iObject->get_Use (&Use)	Получить свойство
iObject->put_Use (Use)	Установить свойство
Значения свойства:

TRUE	- использовать данный раздел,
FALSE	- раздел использоваться не будет.
Примечание:

Позволяет получить\изменить доступность данного раздела при заполнении спецификации.


Интерфейс ILayoutSheets
ILayoutSheets

Интерфейс коллекции листов оформления.

Иерархия:

Свойства...

Методы...

Описание:

Управляет массивом интерфейсов листов оформления ILayoutSheet.

Примечание:

1. После вызова метода Add лист оформления будет добавлен с умолчательными параметрами (заданными в настройках). Для изменения параметров листа нужно изменить их у полученного объекта и вызывать ILayoutSheet::Update.

2. Получить коллекцию можно у документа IKompasDocument::LayoutSheets.


ILayoutSheets::props
ILayoutSheets
свойства

Item

ItemByNumber


ILayoutSheets::methods
ILayoutSheets
методы

Add


ILayoutSheets::Item

Лист оформления, заданный по индексу.

Тип данных - указатель на интерфейс ILayoutSheet листа оформления.

Синтаксис Automation:

Sheet = iObject.Item (Index)	Получить свойство (*)
Sheet = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Sheet)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ILayoutSheets::ItemByNumber

Лист оформления, заданный по номеру.

Тип данных - указатель на интерфейс ILayoutSheet листа оформления.

Синтаксис Automation:

Sheet = iObject.ItemByNumber (Number)	Получить свойство (*)
Sheet = iObject.GetItemByNumber (Number)	Получить свойство (**)
Синтаксис COM:

iObject->get_ItemByNumber (Number, &Sheet)	Получить свойство
Входные параметры:

Number	- номер листа, отображается в основной надписи.
Примечание:

Свойство доступно только для чтения.


ILayoutSheets::Add

Создать лист оформления (добавляет лист оформления в коллекцию).

Синтаксис Automation:

LPDISPATCH Add();

Синтаксис COM:

HRESULT Add ([out, retval] ILayoutSheet ** Result);

Возвращаемое значение:

	Указатель на интерфейс листа оформления ILayoutSheet.
Примечание:

Лист оформления будет добавлен с умолчательными параметрами (заданными в настройках). Для изменения параметров листа в документе нужно задать его парметры, и вызвать метод ILayoutSheet::Update.


Интерфейс ksLayoutSheetsNotify
ksLayoutSheetsNotify

Интерфейс событий для листов оформления.

Позволяют контролировать состояние листов оформления.

Источником событий для подписки на данный интерфейс являются объекты ILayoutSheets - Интерфейс коллекции листов оформления.

События...


События для листов оформления
ksLayoutSheetsNotify
события

Add

Delete

Update


ksLayoutSheetsNotify::Add

Добавлен лист оформления.

Синтаксис Automation:

BOOL Add (ILayoutSheet * PSheet);

Входные параметры:

PSheet	- указатель на интерфейс ILayoutSheet добавленного листа оформления.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для листов оформления ksLayoutSheetsNotifyEnum.


ksLayoutSheetsNotify::Delete

Удален лист оформления.

Синтаксис Automation:

BOOL Delete (ILayoutSheet * PSheet);

Входные параметры:

PSheet	- указатель на интерфейс ILayoutSheet удаляемого листа оформления.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для листов оформления ksLayoutSheetsNotifyEnum.


ksLayoutSheetsNotify::Update

Изменены параметры листа оформления.

Синтаксис Automation:

BOOL Update (ILayoutSheet * PSheet);

Входные параметры:

PSheet	- указатель на интерфейс ILayoutSheet листа оформления, у которого изменились параметры.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для листов оформления ksLayoutSheetsNotifyEnum.


Интерфейс ILayoutSheet
ILayoutSheet

Интерфейс параметров листа оформления.

Иерархия:

Свойства...

Методы...

Описание:

В чертежно-графическом редакторе КОМПАС-График при работе с документами используется понятие оформления. Оформление включает основную надпись, а также внешнюю и внутреннюю рамки. Данный интерфейс позволяет выбрать оформление, которое будет использоваться для листов документа. Оформления документов хранятся в специальных системных библиотеках - файлах с расширением lyt.

Примечание:

Данный интерфейс можно получить у коллекции листов оформления ILayoutSheets.


ILayoutSheet::props
ILayoutSheet
свойства

Format

LayoutLibraryFileName

LayoutStyleNumber


ILayoutSheet::methods
ILayoutSheet
методы

Delete

Update


ILayoutSheet::Format

Формат листа.

Тип данных - указатель на интерфейс ISheetFormat формата листа оформления.

Синтаксис Automation:

Format = iObject.Format	Получить свойство (*)
Format = iObject.GetFormat()	Получить свойство (**)
Синтаксис COM:

iObject->get_Format (&Format)	Получить свойство
Примечание:

1. Данное свойство определяет формат листа оформления. После изменения значений свойств формата листа оформления, для того чтобы изменения вступили в силу, надо вызвать метод Update.

2. Свойство доступно только для чтения.


ILayoutSheet::LayoutLibraryFileName

Имя файла библиотеки стилей оформления.

Тип данных - BSTR (строка).

Синтаксис Automation:

LayoutLibraryFileName = iObject.LayoutLibraryFileName	Получить свойство (*)
iObject.LayoutLibraryFileName = LayoutLibraryFileName	Установить свойство (*)
LayoutLibraryFileName = iObject.GetLayoutLibraryFileName()	Получить свойство (**)
iObject.SetLayoutLibraryFileName (LayoutLibraryFileName)	Установить свойство (**)
Синтаксис COM:

iObject->get_LayoutLibraryFileName (&LayoutLibraryFileName)	Получить свойство
iObject->put_LayoutLibraryFileName (LayoutLibraryFileName)	Установить свойство
Примечание:

Данное свойство позволяет получить\изменить полное имя файла библиотеки стилей оформлений, из которой взят данный стиль. После изменения значений свойств формата листа оформления, для того чтобы изменения вступили в силу, надо вызвать метод Update.


ILayoutSheet::LayoutStyleNumber

Номер стиля оформления.

Тип данных - double.

Синтаксис Automation:

LayoutStyleNumber = iObject.LayoutStyleNumber	Получить свойство (*)
iObject.LayoutStyleNumber = LayoutStyleNumber	Установить свойство (*)
LayoutStyleNumber = iObject.GetLayoutStyleNumber()	Получить свойство (**)
iObject.SetLayoutStyleNumber (LayoutStyleNumber)	Установить свойство (**)
Синтаксис COM:

iObject->get_LayoutStyleNumber (&LayoutStyleNumber)	Получить свойство
iObject->put_LayoutStyleNumber (LayoutStyleNumber)	Установить свойство
Примечание:

Данное свойство позволяет получить\изменить номер используемого стиля в библиотеке стилей оформлений (см. LayoutLibraryFileName*/). После изменения значений свойств формата листа оформления, для того чтобы изменения вступили в силу, надо вызвать метод Update.


ILayoutSheet::Update

Обновить данные.

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

HRESULT Update ([out, retval] VARIANT_BOOL* pVal);

Возвращаемое значение:

TRUE	- обновление прошло успешно,
FALSE	- обновить настройки не удалось.
Примечание:

Все изменения, сделанные в данном интерфейсе и интерфейсе формата листа вступят в силу только после вызова этого метода.


ILayoutSheet::Delete

Удалить лист.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete ([out, retval] VARIANT_BOOL* pVal);

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Удаляет лист оформления из документа.


Интерфейс IInsertsLibraries
IInsertsLibraries

Интерфейс коллекции библиотек элементов (документов) КОМПАС.

Иерархия:

Свойства...

Примечание:

Интерфейс позволяет получить библиотеки фрагментов (*.lfr ) или моделей (*.l3d), зарегистрированные в Менеджере библиотек.


IInsertsLibraries::props
IInsertsLibraries
свойства

Item


IInsertsLibraries::Item

Элемент, заданный по имени или по индексу.

Тип данных - IInsertsLibrary.

Синтаксис Automation:

Item = iObject.Item (v)	Получить свойство (*)
Item = iObject.GetItem (v)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (v. &Item)	Получить свойство
Входные параметры:

Index (VARIANT)	- если передано целочисленное значение, то оно интерпретируется,  как индекс библиотеки в коллекции. - если передано строковое значение, то оно интерпретируется,  как имя библиотеки.
Примечание:

Свойство позволяет получить интерфейс библиотеки документов по имени библиотеки или по индексу библиотеи в коллекции библиотек


Интерфейс IInsertsLibrary
IInsertsLibrary

Интерфейс библиотеки элементов (документов) Компас.

Иерархия:

Свойства...

Методы...

Описание:

В чертежно-графическом редакторе КОМПАС-График при работе с документами используется понятие оформления. Оформление включает основную надпись, а также внешнюю и внутреннюю рамки. Данный интерфейс позволяет выбрать оформление, которое будет использоваться для листов документа. Оформления документов хранятся в специальных системных библиотеках - файлах с расширением lyt.

Примечание:

Интерфейс позволяет работать с библиотекой фрагментов (*.lfr ) или моделей (*.l3d), зарегистрированной в Менеджере библиотек. Можно получить активный каталог в окне библиотеки, массив документов, находящихся в библиотеке, добавить новый каталог в библиотеку или удалить уже существующий каталог.


IInsertsLibrary::props
IInsertsLibrary
свойства

ActiveFolder

Inserts


IInsertsLibrary::methods
IInsertsLibrary
методы

AddFolder

RemoveFolder

SetActiveFolder


IInsertsLibrary::ActiveFolder

Активный каталог в окне библиотеки элементов.

Тип данных - BSTR (строка).

Синтаксис Automation:

ActiveFolder = iObject.ActiveFolder	Получить свойство (*)
ActiveFolder = iObject.GetActiveFolder	Получить свойство (**)
Синтаксис COM:

iObject->get_ActiveFolder (&ActiveFolder)	Получить свойство
Примечание:

Свойство позволяет получить активный каталог в окне библиотеки.


IInsertsLibrary::Inserts

Коллекция элементов (документов) библиотеки.

Тип данных - IInserts.

Синтаксис Automation:

Inserts = iObject.Inserts	Получить свойство (*)
Inserts = iObject.GetInserts	Получить свойство (**)
Синтаксис COM:

iObject->get_Inserts (&Inserts)	Получить свойство
Примечание:

Свойство позволяет получить коллекцию элементов(документов) библиотеки.


IInsertsLibrary::SetActiveFolder

Установить активный каталог в окне библиотеки элементов (документов).

Синтаксис Automation:

BOOL SetActiveFolder (BSTR PathFolder, BOOL LastIsFile, BOOL HaveLibName);

Синтаксис COM:

HRESULT SetActiveFolder ([in] BSTR PathFolder,
VARIANT_BOOL LastIsFile,
VARIANT_BOOL HaveLibName,
[out, retval] VARIANT_BOOL * pVal);

Входные параметры:

PathFolder	- путь к каталогу,
LastIsFile	TRUE -  в пути имеется имя файла документа,
HaveLibName(BOOL)	- TRUE - в пути имеется имя библиотеки.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Метод позволяет установить активный каталог в окне библиотеки документов. Путь к каталогу может содержать или не содержать имя библиотеки и имя документа.


IInsertsLibrary::AddFolder

Добавить новый каталог в библиотеку элементов.

Синтаксис Automation:

BOOL AddFolder (BSTR PathFolder);

Синтаксис COM:

HRESULT AddFolder ([in] BSTR PathFolder, [out, retval] VARIANT_BOOL* pVal);

Входные параметры:

PathFolder	- путь к каталогу,
post	- TRUE - отложенное выполнение.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Добавляет новый каталог в библиотеку элементов.


IInsertsLibrary::RemoveFolder

Удаляет каталог из библиотеки элементов.

Синтаксис Automation:

BOOL RemoveFolder (BSTR PathFolder);

Синтаксис COM:

HRESULT RemoveFolder ([in] BSTR PathFolder, [out, retval] VARIANT_BOOL* pVal);

Входные параметры:

PathFolder	- путь к каталогу,
post	- TRUE - отложенное выполнение.
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Удаляет каталог из библиотеки элементов.


Интерфейс IProceduresLibraries
IProceduresLibraries

Интерфейс коллекции прикладных библиотек КОМПАС.

Иерархия:

Свойства...

Примечание:

Интерфейс позволяет получить прикладные библиотеки,  зарегистрированные в

Менеджере библиотек.


IProceduresLibraries::props
IProceduresLibraries
свойства

Item


IProceduresLibraries::Item

Прикладная библиотека, заданная по имени или по индексу.

Тип данных - IProceduresLibrary.

Синтаксис Automation:

Item = iObject.Item (v)	Получить свойство (*)
Item = iObject.GetItem (v)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (v. &Item)	Получить свойство
Входные параметры:

Index (VARIANT)	- если передано целочисленное значение, то оно интерпретируется как индекс библиотеки в коллекции. - если передано строковое значение, то оно интерпретируется как имя библиотеки.
Примечание:

Свойство позволяет получить интерфейс прикладнй библиотеки  по имени библиотеки или по индексу библиотеи в коллекции библиотек.


Интерфейс IProceduresLibrary
IProceduresLibrary

Интерфейс прикладной библиотеки КОМПАС.

Иерархия:

Свойства...

Методы...

Описание:

В чертежно-графическом редакторе КОМПАС-График при работе с документами используется понятие оформления. Оформление включает основную надпись, а также внешнюю и внутреннюю рамки. Данный интерфейс позволяет выбрать оформление, которое будет использоваться для листов документа. Оформления документов хранятся в специальных системных библиотеках - файлах с расширением lyt.

Примечание:

Интерфейс позволяет работать с прикладной библиотекой (*.rtw или *.dll), зарегистрированной в Менеджере библиотек. Можно получить стиль отображения библиотеки (панель, окно, диалог, меню) и массив процедур, реализованных в библиотеке.


IProceduresLibrary::props
IProceduresLibrary
свойства

AddIns

CurrentCommand

Executable

Procedures

Style

UniqueId


IProceduresLibrary::methods
IProceduresLibrary
методы

SystemControlStart

SystemControlStop


IProceduresLibrary::Style

Стиль отображения библиотеки.

Тип данных - LibraryStyleEnum.

Синтаксис Automation:

Style = iObject.Style	Получить свойство (*)
iObject.Style = Style	Установить свойство (*)
Style = iObject.GetStyle()	Получить свойство (**)
iObject.SetStyle (Style)	Установить свойство (**)
Синтаксис COM:

iObject->get_Style (&Style)	Получить свойство
iObject->put_Style (Style)	Установить свойство
Примечание:

Позволяет получить и установить стиль отображения библиотеки.


IProceduresLibrary::Procedures

Текущая команда библиотеки.

Тип данных - IProcedures.

Синтаксис Automation:

Procedures = iObject.Procedures	Получить свойство (*)
Procedures = iObject.GetProcedures	Получить свойство (**)
Синтаксис COM:

iObject->get_Procedures (&Procedures)	Получить свойство
Примечание:

Свойство позволяет получить коллекцию процедур библиотеки.


IProceduresLibrary::CurrentCommand

Коллекция процедур библиотеки.

Тип данных - long.

Синтаксис Automation:

CurrentCommand = iObject.CurrentCommand	Получить свойство (*)
CurrentCommand = iObject.GetCurrentCommand	Получить свойство (**)
Синтаксис COM:

iObject->get_CurrentCommand (&CurrentCommand)	Получить свойство
Примечание:

Свойство позволяет получить текущую команду библиотеки. Текущая команда - это команда, которая выполняется в данный момент времени.


IProceduresLibrary::UniqueId

Идентификатор библиотеки.

Тип данных - long.

Синтаксис Automation:

UniqueId = iObject.UniqueId	Получить свойство (*)
UniqueId = iObject.GetUniqueId	Получить свойство (**)
Синтаксис COM:

iObject->get_UniqueId (&UniqueId)	Получить свойство
Примечание:

Свойство позволяет получить идентификатор библиотеки. Идентификатор присваивается библиотеке, когда она подключена к системе. В этот момент библиотека отображается в меню "Библиотеки" и в Менеджере библиотек рядом с именем библиотеки взводится "галочка". У подключенной библиотеи можно выполнять команды(процедуры).


IProceduresLibrary::Executable

Признак выполнения библиотеки.

Тип данных - BOOL.

Синтаксис Automation:

Executable = iObject.Executable	Получить свойство (*)
Executable = iObject.GetExecutable()	Получить свойство (**)
Синтаксис COM:

iObject->get_Executable( &Executable )	Получить свойство
Примечание:

Если выполняется команда библиотеки или отрабатывается событие, на которое подписалась библиотека, то свойство вернет TRUE.


IProceduresLibrary::AddIns

Признак AddIn-библиотеки.

Тип данных - BOOL.

Синтаксис Automation:

AddIns = iObject.AddIns	Получить свойство (*)
AddIns = iObject.GetAddIns	Получить свойство (**)
Синтаксис COM:

iObject->get_AddIns (&AddIns)	Получить свойство
Примечание:

Если библиотека является расширением, свойство вернет TRUE


IProceduresLibrary::SystemControlStop

Вернуть управление в библиотеку.

Синтаксис Automation:

BOOL SystemControlStop();

Синтаксис COM:

HRESULT SystemControlStop ([out, retval] VARIANT_BOOL* pVal);

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Метод позволяет вернуть управление в библиотеку, если она находтся в режиме SystemControlStart.


IProceduresLibrary::SystemControlStart

Передать управление системе из под библиотеки.

Синтаксис Automation:

ksSystemControlStartEnum SystemControlStart( BSTR menuCommand );

Синтаксис COM:

HRESULT SystemControlStart([in] BSTR menuCommand, [out, retval] ksSystemControlStartEnum* pVal);

Входные параметры:

PathFolder	- путь к каталогу,
post	- TRUE - отложенное выполнение.
Возвращаемое значение:

ksSystemControlStartEnum
Примечание:

Библиотечная функция отдает управление КОМПАС-ГРАФИК для интерактивной доработки документа. Возврат в библиотечную функцию будет осуществлен после нажатия команды в меню Библиотеки, обозначенной строкой menuCommand.

Если строка не задана, то ей автоматически будет присвоено значение "Вернуться в библиотеку" (функция вернет ksSCStoppedByMenuCommand). Или при вызове из этой же библиотеки SystemControlStop (функция вернет ksSCStopItself ). Библиотека, находясь в этом режиме, как бы замирает на вызове SystemControlStart. Если этот режим вызван в другой библиотеке, то в данной библиотеке режим выполняться не будет (функция вернет ksSCStartedByAnotherLibrary). Только одна библиотека может находиться в режиме SystemControlStart.


Интерфейс IInserts
IInserts

Интерфейс коллекции элементов(документов) библиотеки.

Иерархия:

Свойства...

Методы...

Примечание:

Интерфейс позволяет получить документы, входящие в библиотеку. Интерфейс можно получить при помощи свойства IInsertsLibrary::Inserts.


IInserts::props
IInserts
свойства

Item


IInserts::methods
IInserts
методы

Add


IInserts::Item

Элемент, заданный по имени или по индексу.

Тип данных - IInsert*.

Синтаксис Automation:

Item = iObject.Item (v)	Получить свойство (*)
Item = iObject.GetItem (v)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (v. &Item)	Получить свойство
Входные параметры:

Index (VARIANT)	Index ( VARIANT ) - если передано целочисленное значение, то оно интерпретируется,  как индекс документа в коллекции. - если передано строковое значение, то оно интерпретируется, как имя документа.
Примечание:

Свойство позволяет получить интерфейс вставки библиотеки документов по имени документа или по индексу документа в коллекции вставок.


IInserts::Add
IProceduresLibrary::Add

Создать и добавить элемент в коллекцию.

Синтаксис Automation:

IInsert* Add( BSTR Name, DocumentTypeEnum docType );

Синтаксис COM:

HRESULT Add ([in] BSTR Name,
DocumentTypeEnum docType,
[out, retval] IInsert** Result);

Входные параметры:

Name	- имя вставки в библиотеке.
docType (DocumentTypeEnum)	- тип документа. Актуально для библиотек моделей (*.l3d). В эти библиотеки можно добавлять как сборки, так и модели. Если docType==ksDocumentPart, то это признак, что нужно добавить 3D модель.
Возвращаемое значение:

интерфейс IInsert созданной вставки.
Примечание:

Метод позволяет создать и добавить в библиотеку документ-вставку определенного типа. В библиотеки фрагментов можно вставлять фрагменты, в библиотеки моделей, как 3D модели, так и сборки. Имя вставки и директории в имени вставки отделяются символом "|".

Пример "детали|литье|фланец".


Интерфейс IInsert
IInsert

Интерфейс элемента (документа ) библиотеки элементов (документов).

Иерархия:

Свойства...

Методы...

Примечание:

Интерфейс позволяет получить имя, комментарий, директорий вставки, запустить вставку на редактирование, удалить вставку.


IInsert::props
IInsert
свойства

Name

Comment

LibraryFolder

PathName


IInsert::methods
IInsert
методы

Edit

Delete


IInsert::Name

Имя элемента.

Тип данных - строка.

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
iObject.Name = Name	Установить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
iObject.SetName (Name)	Установить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
iObject->put_Name (Name)	Установить свойство
Примечание:

Позволяет получить и установить имя вставки.


IInsert::Comment

Комментарий.

Тип данных - строка.

Синтаксис Automation:

Comment = iObject.Comment	Получить свойство (*)
iObject.Comment = Comment	Установить свойство (*)
Comment = iObject.GetComment()	Получить свойство (**)
iObject.SetComment (Comment)	Установить свойство (**)
Синтаксис COM:

iObject->get_Comment (&Comment)	Получить свойство
iObject->put_Comment (Comment)	Установить свойство
Примечание:

Позволяет получить и установить комментарий для вставки.


IInsert::LibraryFolder

Каталог в библиотеке элементов.

Тип данных - строка.

Синтаксис Automation:

LibraryFolder = iObject.LibraryFolder()	Получить свойство (*)
LibraryFolder = iObject.GetLibraryFolder()	Получить свойство (**)
Синтаксис COM:

iObject->get_LibraryFolder (&LibraryFolder)	Получить свойство
Примечание:

Свойство позволяет получить каталог вставки внутри библиотеки. Каталоги отделяются символом "|".

Пример "детали|литье|фланец".


IInsert::PathName

Полное имя элемента.

Тип данных - строка.

Синтаксис Automation:

PathName = iObject.PathName()	Получить свойство (*)
PathName = iObject.GetPathName()	Получить свойство (**)
Синтаксис COM:

iObject->get_PathName (&PathName)	Получить свойство
Примечание:

Свойство позволяет получить полное имя вставки вместе с каталогами внутри библиотеки. Каталоги отделяются символом "|".

Пример "детали|литье|фланец".


IInsert::Edit

Редактировать элемент.

Синтаксис Automation:

IKompasDocument* Edit();

Синтаксис COM:

HRESULT Edit ([out, retval] IKompasDocument** pVal);

Возвращаемое значение:

интерфейс IKompasDocument* созданной вставки.
Примечание:

Метод позволяет создать и добавить в библиотеку документ-вставку определенного типа. В библиотеки фрагментов можно вставлять фрагменты, в библиотеки моделей, как 3D модели, так и сборки. Имя вставки и директории в имени вставки отделяются символом "|".

Пример "детали|литье|фланец".


IInsert::Delete

Удалить элемент из библиотеки.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete ([out, retval] VARIANT_BOOL* pVal);

Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Метод позволяет удалить вствку из библиотеки документов.


Интерфейс IProcedures
IProcedures

Интерфейс коллекции процедур прикладной библиотеки КОМПАС.

Иерархия:

Свойства...

Примечание:

Интерфейс позволяет получить команды, входящие в библиотеку процедур.

Интерфейс можно получить при помощи свойства IProceduresLibrary::Procedures.


IProcedures::props
IProcedures
свойства

Item

ItemByID


IProcedures::Item

Команда, заданная по имени или по индексу.

Тип данных - IProcedure*.

Синтаксис Automation:

Item = iObject.Item (v)	Получить свойство (*)
Item = iObject.GetItem (v)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (v. &Item)	Получить свойство
Входные параметры:

Index (VARIANT)	Index ( VARIANT )  - если передано целочисленное значение, то оно интерпретируется как индекс процедуры в коллекции. - если передано строковое значение, то оно интерпретируется как имя процедуры.
Примечание:

Свойство позволяет получить интерфейс библиотечной команды по имени или по индексу в коллекции команд.


IProcedures::ItemByID

Команда, заданная по идентификатору команды.

Тип данных - IProcedure*.

Синтаксис Automation:

Item = iObject.ItemByID (id)	Получить свойство (*)
Item = iObject.GetItemByID (id)	Получить свойство (**)
Синтаксис COM:

iObject->get_ItemByID (id, &Item)	Получить свойство
Входные параметры:

ID (ID)	- идентификатор команды
Примечание:

Свойство позволяет получить интерфейс библиотечной команды по идентификатору команды в коллекции команд.


Интерфейс IProcedure
IProcedure

Интерфейс процедуры прикладной библиотеки КОМПАС.

Иерархия:

Свойства...

Методы...

Примечание:

Интерфейс позволяет получить имя, директорий процедуры, ее идентификатор, выполнить процедуру (команду).


IProcedure::props
IProcedure
свойства

ID

LibraryFolder

Name


IProcedure::methods
IProcedure
методы

Execute


IProcedure::Name

Имя процедуры.

Тип данных - строка.

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name (&Name)	Получить свойство
Примечание:

Позволяет получить имя процедуры.


IProcedure::LibraryFolder

Каталог в прикладной библиотеке.

Тип данных - строка.

Синтаксис Automation:

LibraryFolder = iObject.LibraryFolder()	Получить свойство (*)
LibraryFolder = iObject.GetLibraryFolder()	Получить свойство (**)
Синтаксис COM:

iObject->get_LibraryFolder (&LibraryFolder)	Получить свойство
Примечание:

Позволяет получить каталог в прикладной библиотеке.


IProcedure::ID

Идентификатор процедуры в прикладной библиотеке.

Тип данных - long.

Синтаксис Automation:

ID = iObject.ID	Получить свойство (*)
ID = iObject.GetID()	Получить свойство (**)
Синтаксис COM:

iObject->get_ID (&ID)	Получить свойство
Примечание:

Позволяет получить каталог в прикладной библиотеке.


IProcedure::Execute

Выполнить команду.

Синтаксис Automation:

BOOL Execute (LPDISPATCH external, BOOL post);

Синтаксис COM:

HRESULT Execute([in] LPDISPATCH external,
[in] VARIANT_BOOL post,
[out, retval] VARIANT_BOOL* pVal);

Входные параметры:

external	- интерфейс для обмена данными между библиотекой, вызвавшей Execute и библиотекой, в которой реализована команда. Интерфейс определен разработчиком библиотек. Может быть NULL
post	- TRUE - отложенное выполнение.
Возвращаемое значение:

TRUE	- команда выполнена,
FALSE	- команда не выполнена.
Примечание:

Метод позволяет выполнить команду прикладной библиотеки. При этом проверяется лицензионная защита, и может быть передан пользовательский интерфейс для обмена данными между библиотеками. Выполнение команды может быть отложенное или немедленное.


Интерфейс ksLibraryManagerNotify
ksLibraryManagerNotify

Интерфейс событий Менеджера библиотек.

Позволяют следить и при необходимости управлять основными событиями менежжера библиотек.

Источником событий для подписки на данный интерфейс является объект ILibraryManager.

События...


События для менеджера библиотек
ksLibraryManagerNotify
события

AddInsert

AddLibraryDescription

Attach

BeginAttach

BeginDetach

BeginExecute

DeleteInsert

DeleteLibraryDescription

Detach

EditInsert

EndExecute

SystemControlStart

SystemControlStop


ksLibraryManagerNotify::BeginAttach

Подключить библиотеку.

Синтаксис Automation:

BOOL BeginAttach (ILibrary * PLibrary);

Синтаксис COM:

BOOL BeginAttach (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

TRUE	- можно подключить библиотеку,
FALSE	- библиотеку подключать  нельзя.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::Attach

Библиотека подключена.

Синтаксис Automation:

BOOL Attach (ILibrary * PLibrary);

Синтаксис COM:

BOOL Attach (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::BeginDetach

Отключить библиотеку.

Синтаксис Automation:

BOOL BeginDetach (ILibrary * PLibrary);

Синтаксис COM:

BOOL BeginDetach (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

TRUE	- можно отключить библиотеку,
FALSE	- библиотеку отключить нельзя.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::Detach

Библиотека отключена.

Синтаксис Automation:

BOOL Detach (ILibrary * PLibrary);

Синтаксис COM:

BOOL Detach (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::BeginExecute

Запуск выполнения команды библиотеки.

Синтаксис Automation:

BOOL BeginExecute (ILibrary * PLibrary);

Синтаксис COM:

BOOL BeginExecute (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

TRUE	- можно выполнять комманду библиотеки,
FALSE	- выполнять комманду библиотеки нельзя.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::EndExecute

Завершение выполнения команды библиотеки.

Синтаксис Automation:

BOOL EndExecute (ILibrary * PLibrary);

Синтаксис COM:

BOOL EndExecute (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::SystemControlStop

Передача управления библиотеке.

Синтаксис Automation:

BOOL SystemControlStop (ILibrary * PLibrary);

Синтаксис COM:

BOOL SystemControlStop (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::SystemControlStart

Передача управления системе.

Синтаксис Automation:

BOOL SystemControlStart (ILibrary * PLibrary);

Синтаксис COM:

BOOL SystemControlStart (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::AddLibraryDescription

Добавлено описание библиотеки.

Синтаксис Automation:

BOOL AddLibraryDescription (ILibrary * PLibrary);

Синтаксис COM:

BOOL AddLibraryDescription (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::DeleteLibraryDescription

Удалено описание библиотеки.

Синтаксис Automation:

BOOL DeleteLibraryDescription (ILibrary * PLibrary);

Синтаксис COM:

BOOL DeleteLibraryDescription (IUnknown * PLibrary);

Входные параметры:

PLibrary	- интерфейс библиотеки.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::AddInsert

Добавлен документ в библиотеку документов.

Синтаксис Automation:

BOOL AddInsert (IInsert * PInsert, BOOL create);

Синтаксис COM:

BOOL AddInsert (IUnknown * PInsert, BOOL create);

Входные параметры:

PInsert	- интерфейс вставки документа,
create	- TRUE - создали новый, - FALSE - добавили с диска
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::DeleteInsert

Удален документ из библиотеки документов.

Синтаксис Automation:

BOOL DeleteInsert (IInsert * PInsert);

Синтаксис COM:

BOOL DeleteInsert (IUnknown * PInsert);

Входные параметры:

PInsert	- интерфейс вставки документа,
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


ksLibraryManagerNotify::EditInsert

Редактирование документа из библиотеки документов.

Синтаксис Automation:

BOOL EditInsert (ILibrary * PLibrary, IKompasDocument * pDoc, BOOL newFrw);

Синтаксис COM:

BOOL DeleteInsert (IUnknown * PInsert);

Входные параметры:

PLibrary	- интерфейс библиотеки,
pDoc	- интерфейс редактируемого документа,
newFrw	- TRUE - редактирование нового документа, - FALSE - редактирование существующего документа.
Возвращаемое значение:

	не используется
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksLibraryManagerNotifyEnum.


Интерфейс ISpecificationDescriptions
ISpecificationDescriptions

Интерфейс коллекции описаний спецификации у документа.

Иерархия:

Свойства...

Методы...

Примечание:

1. Для документа-спецификации возможно только одно описание и оно есть всегда (т.е. добавлять и удалять нельзя).

2. В текстовом документе описаний нет.

3 Для остальных документов (чертеж, фрагмент, деталь и сборка) описаний может быть сколько угодно, в том числе и ни одного.

4. При добавлении нового описания оно становится текущим.

5. Получить коллекцию можно у IKompasDocument::SpecificationDescriptions.


ISpecificationDescriptions::props
ISpecificationDescriptions
свойства

Active

Description

Item


ISpecificationDescriptions::methods
ISpecificationDescriptions
методы

Add


ISpecificationDescriptions::Item

Описание спецификации, заданное по индексу.

Тип данных - Указатель на интерфейс ISpecificationDescription описания спецификации.

Синтаксис Automation:

Description = iObject.Item (Index)	Получить свойство (*)
Description = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &Description)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationDescriptions::Description

Описание спецификации по имени файла библиотеки оформлений и номеру стиля в библиотеке.

Тип данных - Указатель на интерфейс ISpecificationDescription описания спецификации.

Синтаксис Automation:

Description = iObject.Description (LayoutName, StyleID)	Получить свойство (*)
Description = iObject.GetDescription (LayoutName, StyleID)	Получить свойство (**)
Синтаксис COM:

iObject->get_Description (LayoutName, StyleID, &Description)	Получить свойство
Входные параметры:

LayoutName	- имя файла библиотеки оформлений,
StyleID	- номер стиля в библиотеке оформлений.
Примечание:

Свойство доступно только для чтения.


ISpecificationDescriptions::Active

Текущее описание.

Тип данных - Указатель на интерфейс ISpecificationDescription описания спецификации.

Синтаксис Automation:

Description = iObject.Active	Получить свойство (*)
Description = iObject.GetActive()	Получить свойство (**)
Синтаксис COM:

iObject->get_Active (&Description)	Получить свойство
Примечание:

1. Если в документе нет описаний спецификаций возвращается NULL.

2. Свойство доступно только для чтения.


ISpecificationDescriptions::Add

Добавить новое описание спецификации в документ и в коллекцию.

Синтаксис Automation:

LPDISPATCH Add (long Section, double AttrNumb);

Синтаксис COM:

HRESULT Add ([in] BSTR LayoutName,
[in] long StyleID,
[out, retval] ISpecificationDescription** Result);

Входные параметры:

LayoutName	- имя библиотеки стилей,
StyleID	- номер стиля в библиотеке стилей.
Возвращаемое значение:

	Указатель на интерфейс ISpecificationDescription описания спецификации.
Примечание:

К одному документу могут быть добавлены описания спецификации только разных стилей. Если LayoutName и StyleID не заданы то добавляется описание спецификации по умолчанию, если оно не было создано ранее.


Интерфейс ISpecificationDescription
ISpecificationDescription

Интерфейс описания спецификации у документа.

Иерархия:

Свойства...

Методы...

Описание:

Описание спецификации включает в себя имя файла спецификации, подключенной к графическому документу и стиль этой спецификации.

Для фрагмента и детали описание спецификации содержит только стиль спецификации. Это связано с тем, что фрагмент и деталь непосредственно к спецификации не подключаются, но в них можно создавать объекты спецификации для передачи в чертежи и сборки.

Примечание:

1. Установка свойств доступна только для графических документов и документов-моделей. Для документа спецификации свойства интерфейса работают в режиме "только для чтения". После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.

Данный интерфейс можно получить у коллекции описаний спецификации ISpecificationDescriptions.


ISpecificationDescription::props
ISpecificationDescription
свойства

Active

BaseObjects

CommentObjects

CurrentObject

LayoutName

Objects

ShowAllObjects

ShowOnSheet

SpecificationDocumentName

SpecificationStyle

SpecificationTuning

StyleID


ISpecificationDescription::methods
ISpecificationDescription
методы

Delete

Update


ISpecificationDescription::LayoutName

Имя файла библиотеки стилей.

Тип данных - BSTR.

Синтаксис Automation:

LayoutName = iObject.LayoutName	Получить свойство (*)
iObject.LayoutName = LayoutName	Установить свойство (*)
LayoutName = iObject.GetLayoutName()	Получить свойство (**)
iObject.SetLayoutName (LayoutName)	Установить свойство (**)
Синтаксис COM:

iObject->get_LayoutName (&LayoutName)	Получить свойство
iObject->put_LayoutName (LayoutName)	Установить свойство
Примечание:

1. Свойство позволяет получить и установить имя библиотеки стилей из которой будет взят стиль спецификации для данного описания.

2. После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.


ISpecificationDescription::StyleID

Номер стиля в библиотеке стилей.

Тип данных - long.

Синтаксис Automation:

StyleID = iObject.StyleID	Получить свойство (*)
iObject.StyleID = StyleID	Установить свойство (*)
StyleID = iObject.GetStyleID()	Получить свойство (**)
iObject.SetStyleID (StyleID)	Установить свойство (**)
Синтаксис COM:

iObject->get_StyleID (&StyleID)	Получить свойство
iObject->put_StyleID (StyleID)	Установить свойство
Примечание:

1. Свойство позволяет получить и установить номер стиля в библиотеке стилей из которой будет взят стиль спецификации для данного описания (см. LayoutName).

2. После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.


ISpecificationDescription::SpecificationDocumentName

Имя подключенного файла документа спецификации.

Тип данных - BSTR.

Синтаксис Automation:

DocumentName = iObject.SpecificationDocumentName	Получить свойство (*)
iObject.SpecificationDocumentName = DocumentName	Установить свойство (*)
DocumentName = iObject.GetSpecificationDocumentName()	Получить свойство (**)
iObject.SetSpecificationDocumentName (DocumentName)	Установить свойство (**)
Синтаксис COM:

iObject->get_SpecificationDocumentName (&DocumentName)	Получить свойство
iObject->put_SpecificationDocumentName (DocumentName)	Установить свойство
Примечание:

1. Свойство позволяет получить и установить полное имя файла документа спецификации подключенной к данному чертежу или сборке. Доступно только для чертежа или сборки.

2. После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.


ISpecificationDescription::Active

Текущее описание.

Тип данных - BOOL.

Синтаксис Automation:

Active = iObject.Active	Получить свойство (*)
iObject.Active = Active	Установить свойство (*)
Active = iObject.GetActive()	Получить свойство (**)
iObject.SetActive (Active)	Установить свойство (**)
Синтаксис COM:

iObject->get_Active (&Active)	Получить свойство
iObject->put_Active (Active)	Установить свойство
Значения свойства:

TRUE	- описание активно,
FALSE	- описание неактивно.
Примечание:

1. Свойство возвращает признак активности описания и позволяет сделать описание активным. Tо есть установить свойство можно только в TRUE.

2. После изменения параметров оформления метод Update вызывать не требуется.


ISpecificationDescription::SpecificationStyle

Стиль спецификации.

Тип данных - указатель на интерфейс ISpecificationStyle cтиля спецификации.

Синтаксис Automation:

Style = iObject.SpecificationStyle	Получить свойство (*)
Style = iObject.GetSpecificationStyle()	Получить свойство (**)
Синтаксис COM:

iObject->get_SpecificationStyle( &Style )	Получить свойство
Примечание:

1. Полученный интерфейс отражает содержимое стиля в библиотеке стилей для данного описания на момент получения и в дальнейшем не отслеживает изменений в библиотеке стилей.

2. Свойство доступно только для чтения.


ISpecificationDescription::CurrentObject

Текущий объект спецификации (выделенный или редактируемый в таблице спецификации).

Тип данных - указатель на интерфейс ISpecificationObject объекта спецификации.

Синтаксис Automation:

CurrentObject = iObject.CurrentObject	Получить свойство (*)
iObject.CurrentObject = CurrentObject	Установить свойство (*)
CurrentObject = iObject.GetCurrentObject()	Получить свойство (**)
iObject.SetCurrentObject (CurrentObject)	Установить свойство (**)
Синтаксис COM:

iObject->get_CurrentObject (&CurrentObject)	Получить свойство
iObject->put_CurrentObject (CurrentObject)	Установить свойство
Примечание:

1. С помощью данного свойства можно получить и установить текущий объект спецификации.

2. В графическом документе или документе-модели метод работает, если открыто окно спецификации в подчиненном режиме.


ISpecificationDescription::SpecificationTuning

Настройки спецификации.

Тип данных - указатель на интерфейс ISpecificationTuning настроек спецификации.

Синтаксис Automation:

SpecificationTuning = iObject.SpecificationTuning	Получить свойство (*)
SpecificationTuning = iObject.GetSpecificationTuning()	Получить свойство (**)
Синтаксис COM:

iObject->get_SpecificationTuning (&SpecificationTuning)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationDescription::Objects

Объекты спецификации.

Тип данных - VARIANT.

Синтаксис Automation:

Objects = iObject.Objects	Получить свойство (*)
Objects = iObject.GetObjects()	Получить свойство (**)
Синтаксис COM:

iObject->get_Objects (&Objects)	Получить свойство
Примечание:

1. Свойство позволяет получить полный список объектов спецификации. Порядок и состав списка соответствует визуальному отображению данного описания спецификации.

2. Свойство возвращает переменную типа VARIANT на безопасный массив интерфейсов SAFEARRAY (VT_ARRAY | VT_DISPATCH).

3. Свойство доступно только для чтения.


ISpecificationDescription::BaseObjects

Базовые объекты спецификации.

Тип данных - указатель на интерфейс ISpecificationBaseObjects коллекции базовых объектов спецификации.

Синтаксис Automation:

Objects = iObject.BaseObjects	Получить свойство (*)
Objects = iObject.GetBaseObjects()	Получить свойство (**)
Синтаксис COM:

iObject->get_BaseObjects (&Objects)	Получить свойство
Примечание:

1. Свойство позволяет получить коллекцию базовых объектов спецификации.

2. Свойство доступно только для чтения.


ISpecificationDescription::CommentObjects

Объекты спецификации - комментарии.

Тип данных - указатель на интерфейс ISpecificationCommentObjects коллекции вспомогательных объектов спецификации.

Синтаксис Automation:

Objects = iObject.CommentObjects	Получить свойство (*)
Objects = iObject.GetCommentObjects()	Получить свойство (**)
Синтаксис COM:

iObject->get_CommentObjects (&Objects)	Получить свойство
Примечание:

1. Свойство позволяет получить коллекцию вспомогательных объектов спецификации.

2. Свойство доступно только для чтения.


ISpecificationDescription::ShowOnSheet

Показывать на листе.

Тип данных - BOOL.

Синтаксис Automation:

ShowOnSheet = iObject.ShowOnSheet	Получить свойство (*)
iObject.ShowOnSheet = ShowOnSheet	Установить свойство (*)
ShowOnSheet = iObject.GetShowOnSheet()	Получить свойство (**)
iObject.SetShowOnSheet (ShowOnSheet)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowOnSheet (&ShowOnSheet)	Получить свойство
iObject->put_ShowOnSheet (ShowOnSheet)	Установить свойство
Значения свойства:

TRUE	- описание отображается на чертеже,
FALSE	- описание не отображается на чертеже.
Примечание:

1. Свойство позволяет отобразить или скрыть спецификацию в чертеже.

2. Свойство работает только в чертеже.


ISpecificationDescription::ShowAllObjects

Показывать все объекты.

Тип данных - BOOL.

Синтаксис Automation:

ShowAllObjects = iObject.ShowAllObjects	Получить свойство (*)
iObject.ShowAllObjects = ShowAllObjects	Установить свойство (*)
ShowAllObjects = iObject.GetShowAllObjects()	Получить свойство (**)
iObject.SetShowAllObjects (ShowAllObjects)	Установить свойство (**)
Синтаксис COM:

iObject->get_ShowAllObjects (&ShowAllObjects)	Получить свойство
iObject->put_ShowAllObjects ( ShowAllObjects)	Установить свойство
Значения свойства:

TRUE	- отображаются все объекты в описании,
FALSE	- одинаковые объекты отображаются одной строкой, а в колонке количество отображается.
Примечание:

1. Свойство позволяет получить или установить состояние режима работы, в котором на экране отображаются все объекты спецификации, в том числе базовые объекты спецификации, имеющие одинаковую текстовую часть, а также базовые объекты спецификации, в настройках дополнительных параметров которых выключена опция показа объекта в таблице.

Одинаковые объекты могут иметь одинаковые или разные номера позиций, могут находиться в соседних строках или в разных местах таблицы (в пределах одного раздела спецификации). Если объекты с одинаковой текстовой частью находятся в разных разделах спецификации, то они считаются разными.


ISpecificationDescription::Update

Изменить описание.

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

HRESULT Update ([out, retval] BOOL* Result);

Примечание:

Метод устанавливает новые параметры для описания спецификации.


ISpecificationDescription::Delete

Удалить описание.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete( [out, retval] BOOL* Result );

Примечание:

Метод удаляет описание спецификации.


Интерфейс ksSpecificationDescriptionNotify
ksSpecificationDescriptionNotify

Интерфейс событий описания спецификации.

Позволяют контролировать редактирование описания спецификации.

Источником событий для подписки на данный интерфейс являются объекты:

- ISpecificationDescriptions - Интерфейс коллекции описаний спецификации,

- ISpecificationDescription  - Интерфейс описания спецификации.

События...


События для менеджера библиотек
ksSpecificationDescriptionNotify
события

BeginCalcPositions

BeginCreateObject

CalcPositions

ChangeCurrentSpcDescription

SpcDescriptionAdd

SpcDescriptionBeginEdit

SpcDescriptionEdit

SpcDescriptionRemove

SynchronizationBegin

Synchronization

TuningSpcStyleBeginChange

TuningSpcStyleChange


ksSpecificationDescriptionNotify::TuningSpcStyleBeginChange

Начало изменения настроек спецификации.

Синтаксис Automation:

BOOL TuningSpcStyleBeginChange( ISpecificationDescription * Descr );

Входные параметры:

Descr	- указатель на интерфейс ISpecificationDescription редактируемого описания спецификации.
Возвращаемое значение:

TRUE	- изменить настройки спецификации,
FALSE	- запрещает изменения настроек спецификации.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::TuningSpcStyleChange

Настройки спецификации изменились.

Синтаксис Automation:

BOOL TuningSpcStyleChange (ISpecificationDescription * Descr, BOOL isOk);

Входные параметры:

Descr	- указатель на интерфейс ISpecificationDescription редактируемого описания спецификации.
isOk	- результат изменения настроек спецификации.
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::ChangeCurrentSpcDescription

Изменилось текущее описание спецификации.

Синтаксис Automation:

BOOL ChangeCurrentSpcDescription (ISpecificationDescription * Descr);

Входные параметры:

Descr	- указатель на интерфейс ISpecificationDescription текущего описания спецификации.
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::SpcDescriptionAdd

Добавилось описание спецификации.

Синтаксис Automation:

BOOL SpcDescriptionAdd (ISpecificationDescription * Descr);

Входные параметры:

Descr	- указатель на интерфейс ISpecificationDescription добавленного описания спецификации.
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::SpcDescriptionRemove

Удалилось описание спецификации.

Синтаксис Automation:

BOOL SpcDescriptionRemove (ISpecificationDescription * Descr);

Входные параметры:

Descr	- указатель на интерфейс ISpecificationDescription удаляемого описания спецификации.
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::SpcDescriptionBeginEdit

Начало редактирования описания спецификации.

Синтаксис Automation:

BOOL SpcDescriptionBeginEdit (ISpecificationDescription * Descr);

Входные параметры:

Descr	- указатель на интерфейс ISpecificationDescription редактируемого описания спецификации.
Возвращаемое значение:

TRUE	- редактировать описание спецификации,
FALSE	- запрещает редактирование описания спецификации.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::SpcDescriptionEdit

Отредактировано описание спецификации.

Синтаксис Automation:

BOOL SpcDescriptionEdit (ISpecificationDescription * Descr, BOOL isOk);

Входные параметры:

Descr	- указатель на интерфейс ISpecificationDescription редактируемого описания спецификации,
isOk	- результат изменения описания спецификации.
Возвращаемое значение:

	Не используется.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::SynchronizationBegin

Начало синхронизации.

Синтаксис Automation:

BOOL SynchronizationBegin();

Возвращаемое значение:

TRUE	- синхронизировать,
FALSE	- запрещает синхронизацию.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::Synchronization

Синхронизация проведена.

Синтаксис Automation:

BOOL Synchronization();

Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::BeginCalcPositions

Начало расчета позиций.

Синтаксис Automation:

BOOL BeginCalcPositions();

Возвращаемое значение:

TRUE	- расчет позиций,
FALSE	- запрещает расчет позиций.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::CalcPositions

Проведен расчет позиций.

Синтаксис Automation:

BOOL CalcPositions();

Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


ksSpecificationDescriptionNotify::BeginCreateObject

Начало создания объекта СП (до диалога выбора раздела)

Синтаксис Automation:

BOOL BeginCreateObject (long typeObj);

Входные параметры:

typeObj	0  - базовый объект,  1  - объект вспомогательный, -1 - тип объекта не определен.
Возвращаемое значение:

TRUE	- создать объект спецификации,
FALSE	- запрещает создание объекта спецификации.
Примечание:

Индекс события задан в перечислении событий для для Менеджера библиотек ksSpecificationNotifyEnum.


Интерфейс ISpecificationBaseObjects
ISpecificationBaseObjects

Интерфейс коллекции базовых объектов спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Позволяет получить список базовых объектов спецификации.

Примечание:

1. Управляет массивом интерфейсов ISpecificationBaseObject.

2. Коллекция позволяет создать новые базовые объекты спецификации. Для создания нового базового объекта спецификации используется метод Add. После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится.

3. Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.

4. Данный интерфейс можно получить у описания спецификации ISpecificationDescription::BaseObjects.


ISpecificationBaseObjects::props
ISpecificationBaseObjects
свойства

Item


ISpecificationBaseObjects::methods
ISpecificationBaseObjects
методы

Add


ISpecificationBaseObjects::Item

Базовый объект спецификации, заданный по индексу, по уникальному идентификатору или по уникальному номеру.

Тип данных - Указатель на интерфейс ISpecificationBaseObject объекта спецификации.

Синтаксис Automation:

spcObj = iObject.Item (Index)	Получить свойство (*)
spcObj = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &spcObj)	Получить свойство
Примечание:

1. С помощью данного свойства можно получить базовый объект спецификации, заданный по индексу, по уникальному идентификатору IKompasAPIObject::Reference или уникальному номеру .

2. Свойство доступно только для чтения.


ISpecificationBaseObjects::Add

Добавить новый базовый объект спецификации в коллекцию.

Синтаксис Automation:

LPDISPATCH Add (long Section, double AttrNumb);

Синтаксис COM:

HRESULT Add ([in] long Section,
[in] double AttrNumb,
[out, retval] ISpecificationBaseObject** Result);

Входные параметры:

Section	-  номер раздела,
AttrNumb	- номер атрибута.
Возвращаемое значение:

	Указатель на интерфейс ISpecificationBaseObject базового объекта спецификации.
Примечание:

После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится. Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.


Интерфейс ISpecificationCommentObjects
ISpecificationCommentObjects

Интерфейс коллекции вспомогательных объектов спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Позволяет получить список вспомогательных объектов спецификации.

Примечание:

1. Управляет массивом интерфейсов ISpecificationCommentObject.

2. Коллекция позволяет создать новые вспомогательные объекты спецификации. Для создания нового вспомогательного объекта спецификации используется метод Add. После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится.

3. Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.

4. Методы Attach и Detach работают только для коллекции взятой у базового объекта СП.

5. Данный интерфейс можно получить у описания спецификации ISpecificationDescription::CommentObjects и у базового объекта спецификации ISpecificationBaseObject::CommentObjects.


ISpecificationCommentObjects::props
ISpecificationCommentObjects
свойства

Item


ISpecificationCommentObjects::methods
ISpecificationCommentObjects
методы

Add

Attach

Detach


ISpecificationCommentObjects::Item

Вспомогательный объект спецификации, заданный по индексу, по уникальному идентификатору или по уникальному номеру.

Тип данных - Указатель на интерфейс ISpecificationCommentObject объекта спецификации.

Синтаксис Automation:

spcObj = iObject.Item (Index)	Получить свойство (*)
spcObj = iObject.GetItem (Index)	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &spcObj)	Получить свойство
Примечание:

1. С помощью данного свойства можно получить вспомогательный объект спецификации, заданный по индексу, по уникальному идентификатору IKompasAPIObject::Reference или уникальному номеру .

2. Свойство доступно только для чтения.


ISpecificationCommentObjects::Add

Добавить новый вспомогательный объект спецификации в коллекцию.

Синтаксис Automation:

LPDISPATCH Add (long Section);

Синтаксис COM:

HRESULT Add ([in] long Section,
[out, retval] ISpecificationCommentObject** Result );

Входные параметры:

Section	-  номер раздела,
Возвращаемое значение:

	Указатель на интерфейс ISpecificationCommentObject вспомогательного объекта спецификации.
Примечание:

После вызова метода Add объект будет добавлен в коллекцию, но в документе не появится. Для отображения объекта в документе нужно задать его параметры и вызвать метод ISpecificationObject::Update.


ISpecificationCommentObjects::Attach

Добавить вспомогательный объект спецификации в коллекцию прикрепленных объектов (Для базового объекта).

Синтаксис Automation:

BOOL Attach( LPDISPATCH spcObj );

Синтаксис COM:

HRESULT Attach ([in]ISpecificationCommentObject* spcObj,
[out, retval] BOOL* PRes);

Входные параметры:

spcObj	- указатель на интерфейс прикрепляемого вспомогательного объекта спецификации,
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Метод работает только для коллекции взятой у базового объекта СП.


ISpecificationCommentObjects::Detach

Удалить вспомогательный объект спецификации из коллекции прикрепленных объектов (Для базового объекта).

Синтаксис Automation:

BOOL Detach (LPDISPATCH spcObj);

Синтаксис COM:

HRESULT Detach ([in]ISpecificationCommentObject* spcObj,
[out, retval] BOOL* PRes);

Входные параметры:

spcObj	- указатель на интерфейс прикрепляемого вспомогательного объекта спецификации,
Возвращаемое значение:

TRUE	- в случае успеха,
FALSE	- в случае неудачи.
Примечание:

Метод работает только для коллекции взятой у базового объекта СП.


Интерфейс ISpecificationObject
ISpecificationObject

Интерфейс объекта спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Различаются несколько типов объектов спецификации (см. ksSpecificationObjectTypeEnum). Данный интерфейс позволяет получить общие параметры для объектов спецификации и изменить общие параметры для базовых и вспомогательных объектов спецификации.

Примечание:

1. После изменения параметров объекта спецификации требуется вызвать метод ISpecificationObject::Update.

2. Данный интерфейс можно получить у базового ISpecificationBaseObject и вспомогательного ISpecificationCommentObject объектов спецификации и через безопасный массив ISpecificationDescription::Objects для остальных типов объектов спецификации.


ISpecificationObject::props
ISpecificationObject
свойства

AdditionalBlock

AdditionalColumns

AdditionalSection

AttachedDocuments

BlockNumberByIndex

Columns

FirstOnSheet

IncrementPosition

NestedBlock

NestedSection

ObjectType

Section

State

Subsection

UniqueNumber


ISpecificationObject::methods
ISpecificationObject
методы

Delete

Edit

Update


ISpecificationObject::ObjectType

Имя файла библиотеки стилей.

Тип данных - из перечисления ksSpecificationObjectTypeEnum.

Синтаксис Automation:

ObjectType = iObject.ObjectType	Получить свойство (*)
ObjectType = iObject.GetObjectType()	Получить свойство (**)
Синтаксис COM:

iObject->get_ObjectType (&ObjectType)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationObject::Section

Номер раздела.

Тип данных - long.

Синтаксис Automation:

Section = iObject.Section	Получить свойство (*)
Section = iObject.GetSection()	Получить свойство (**)
Синтаксис COM:

iObject->get_Section (&Section)	Получить свойство
Примечание:

1. При создании базового или вспомогательного объекта спецификации номер раздела передается в метод Add. Переместить уже созданные объекты из одного раздела в другой нельзя.

2. Свойство доступно только для чтения.


ISpecificationObject::Subsection

Номер подраздела.

Тип данных - long.

Синтаксис Automation:

Subsection = iObject.Subsection	Получить свойство (*)
iObject.Subsection = Subsection	Установить свойство (*)
Subsection = iObject.GetSubsection()	Получить свойство (**)
iObject.SetSubsection (Subsection)	Установить свойство (**)
Синтаксис COM:

iObject->get_Subsection (&Subsection)	Получить свойство
iObject->put_Subsection (Subsection)	Установить свойство
Примечание:

1. Свойство доступно только для базового и вспомогательного объекта спецификации.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationObject::AdditionalSection

Текущее описание.

Тип данных - long.

Синтаксис Automation:

AdditionalSection = iObject.AdditionalSection	Получить свойство (*)
iObject.AdditionalSection = AdditionalSection	Установить свойство (*)
AdditionalSection = iObject.GetAdditionalSection()	Получить свойство (**)
iObject.SetAdditionalSection (AdditionalSection)	Установить свойство (**)
Синтаксис COM:

iObject->get_AdditionalSection (&AdditionalSection)	Получить свойство
iObject->put_AdditionalSection (AdditionalSection)	Установить свойство
Примечание:

1. Свойство доступно только для базового и вспомогательного объекта спецификации.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationObject::AdditionalBlock

Номер блока дополнительных разделов.

Тип данных - long.

Синтаксис Automation:

AdditionalBlock = iObject.AdditionalBlock	Получить свойство (*)
iObject.AdditionalBlock = AdditionalBlock	Установить свойство (*)
AdditionalBlock = iObject.GetAdditionalBlock()	Получить свойство (**)
iObject.SetAdditionalBlock (AdditionalBlock)	Установить свойство (**)
Синтаксис COM:

iObject->get_AdditionalBlock (&AdditionalBlock)	Получить свойство
iObject->put_AdditionalBlock (AdditionalBlock)	Установить свойство
Примечание:

1. Свойство доступно только для базового и вспомогательного объекта спецификации.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationObject::NestedSection

Номер вложенного раздела.

Тип данных - long.

Синтаксис Automation:

NestedSection = iObject.NestedSection	Получить свойство (*)
iObject.NestedSection = NestedSection	Установить свойство (*)
iObject.GetNestedSection()	Получить свойство (**)
iObject.SetNestedSection (NestedSection)	Установить свойство (**)
Синтаксис COM:

iObject->get_NestedSection (&NestedSection)	Получить свойство
iObject->put_NestedSection (NestedSection)	Установить свойство
Примечание:

1. Свойство доступно только для базового и вспомогательного объекта спецификации.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationObject::NestedBlock

Номер блока вложенных разделов.

Тип данных - long.

Синтаксис Automation:

NestedBlock = iObject.NestedBlock	Получить свойство (*)
iObject.NestedBlock = NestedBlock	Установить свойство (*)
NestedBlock = iObject.GetNestedBlock()	Получить свойство (**)
iObject.SetNestedBlock (NestedBlock)	Установить свойство (**)
Синтаксис COM:

iObject->get_NestedBlock (&NestedBlock)	Получить свойство
Object->put_NestedBlock (NestedBlock)	Установить свойство
Примечание:

1. Свойство доступно только для базового и вспомогательного объекта спецификации.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationObject::BlockNumberByIndex

Номер блока.

Тип данных - long.

Синтаксис Automation:

BlockNumber = iObject.BlockNumberByIndex (index)	Получить свойство (*)
BlockNumber = iObject.GetBlockNumberByIndex (index)	Получить свойство (**)
Синтаксис COM:

iObject->get_BlockNumberByIndex (index, &BlockNumber)	Получить свойство
Входные параметры:

index	- индекс объекта в общем массиве объектов спецификации.
Примечание:

1. Свойство позволяетс получить номер блока объекта спецификации.

2. Один и тот же базовый объект спецификации может быть вставлен в спецификации несколько раз в нескольких блоках.

3. Свойство доступно только для чтения.


ISpecificationObject::UniqueNumber

Уникальный номер, присваивается при создании.

Тип данных - double.

Синтаксис Automation:

UniqueNumber = iObject.UniqueNumber	Получить свойство (*)
Objects = iObject.GetBaseObjects()	Получить свойство (**)
Синтаксис COM:

iObject->get_UniqueNumber (&UniqueNumber)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationObject::State

Состояние объекта.

Тип данных - из перечисления ksSpecificationObjectTypeEnum

Синтаксис Automation:

State = iObject.State	Получить свойство (*)
State = iObject.GetState()	Получить свойство (**)
Синтаксис COM:

iObject->get_State (&State)	Получить свойство
Значения свойства:

ssIndependent	- объект создан в данном документе,
ssFromInsert	- объект пришел из вставки другого документа (фрагмента, детали или подсборки),
ssEdit	- объект из вставки другого документа, но редактировался в данном документе.
Примечание:

Свойство доступно только для чтения.


ISpecificationObject::FirstOnSheet

Размещать объект в начале нового листа спецификации.

Тип данных - BOOL.

Синтаксис Automation:

FirstOnSheet = iObject.FirstOnSheet	Получить свойство (*)
iObject.FirstOnSheet = FirstOnSheet	Установить свойство (*)
FirstOnSheet = iObject.GetFirstOnSheet()	Получить свойство (**)
iObject.SetFirstOnSheet (FirstOnSheet)	Установить свойство (**)
Синтаксис COM:

iObject->get_FirstOnSheet (&FirstOnSheet)	Получить свойство
iObject->put_FirstOnSheet (FirstOnSheet)	Установить свойство
Значения свойства:

TRUE	- объект спецификации разместить в начале новой страницы спецификации,
FALSE	- объект спецификации разместить после предыдущего.
Примечание:

1. Свойство доступно только для базового и вспомогательного объекта спецификации.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationObject::IncrementPosition

Позиция объекта возрастает.

Тип данных - BOOL.

Синтаксис Automation:

IncrementPosition = iObject.IncrementPosition	Получить свойство (*)
iObject.IncrementPosition = IncrementPosition	Установить свойство (*)
IncrementPosition = iObject.GetIncrementPosition()	Получить свойство (**)
iObject.SetIncrementPosition (IncrementPosition)	Установить свойство (**)
Синтаксис COM:

iObject->get_IncrementPosition (&IncrementPosition)	Получить свойство
iObject->put_IncrementPosition (IncrementPosition)	Установить свойство
Значения свойства:

TRUE	- номер позиции объекта должен быть на единицу больше номера позиции предшествующего ему объекта,
FALSE	- номер позиции объекта совпадает с номером позиции предыдущего объекта.
Примечание:

1. Свойство доступно только для базового и вспомогательного объекта спецификации.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationObject::Columns

Колонки объекта спецификации.

Тип данных - указатель на интерфейс ISpecificationColumns коллекции колонок объекта спецификации.

Синтаксис Automation:

Columns = iObject.Columns	Получить свойство (*)
Columns = iObject.GetColumns()	Получить свойство (**)
Синтаксис COM:

iObject->get_Columns( &Columns )	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationObject::AdditionalColumns

Дополнительные колонки.

Тип данных - указатель на интерфейс ISpecificationColumns коллекции колонок объекта спецификации.

Синтаксис Automation:

AdditionalColumns = iObject.AdditionalColumns	Получить свойство (*)
AdditionalColumns = iObject.GetAdditionalColumns()	Получить свойство (**)
Синтаксис COM:

iObject->get_AdditionalColumns (&AdditionalColumns)	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationObject::AttachedDocuments

Присоединенные документы.

Тип данных - указатель на интерфейс ISpecificationColumns коллекции присоединенных документов.

Синтаксис Automation:

AttachedDocuments = iObject.AttachedDocuments	Получить свойство (*)
AttachedDocuments = iObject.GetAttachedDocuments()	Получить свойство (**)
Синтаксис COM:

iObject->get_AttachedDocuments (&AttachedDocuments)	Получить свойство
Примечание:

1. Получить коллекцию можно только для базовых и вспомогательных объектов спецификации, если в стиле для заданного раздела установлен признак ручное заполнение или чтение из основной надписи.

2. Свойство доступно только для чтения.


ISpecificationObject::Update

Обновить данные.

Синтаксис Automation:

BOOL Update();

Синтаксис COM:

HRESULT Update ([out, retval] BOOL* Result);

Примечание:

После изменения параметров объекта спецификации требуется вызвать данный метод, чтобы новые данные попали в модельный объект спецификации. Если объект спецификации еще не создан, метод Update создает объект спецификации в документе.


ISpecificationObject::Delete

Удалить объект.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete( [out, retval] BOOL* Result );

Примечание:

Метод позволяет удалить базовый или вспомогательный объект спецификации из документа и из колекции.


ISpecificationObject::Edit

Редактировать объект.

Синтаксис Automation:

BOOL Edit();

Синтаксис COM:

HRESULT Edit ([out, retval] BOOL* Result);

Примечание:

Метод позволяет запустить процесс визуального редактирования для базового или вспомогательного объекта спецификации.


Интерфейс ksSpecificationObjectNotify
ksSpecificationObjectNotify

Интерфейс событий объектов спецификации.

Предназначены для того чтобы следить и при необходимости управлять редактированием

объектов спецификации.

Источником событий для подписки на данный интерфейс являются объекты:

- ISpecificationObject - Интерфейс объекта спецификации (базового или вспомогательного),

- ISpecificationBaseObjects - Интерфейс коллекции базовых объектов спецификации,

- ISpecificationCommentObjects - Интерфейс коллекции вспомогательных объектов спецификации.

События...


События для менеджера библиотек
ksSpecificationObjectNotify
события

BeginDelete

BeginGeomChange

BeginProcess

CellBeginEdit

CellDblClick

ChangeCurrent

CreateObject

Delete

DocumentAdd

DocumentBeginAdd

DocumentRemove

EndProcess

GeomChange

UpdateObject


ksSpecificationObjectNotify::BeginDelete

Начало удаления объекта.

Синтаксис Automation:

BOOL BeginDelete (ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject удаляемого объекта спецификации.
Возвращаемое значение:

TRUE	- удалить объект,
FALSE	- запрещает удаление объекта.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::Delete

Удаление объекта

Синтаксис Automation:

BOOL Delete (ISpecificationObject * obj);

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject удаляемого объекта спецификации.
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::CellDblClick

Двойной щелчок в ячейке.

Синтаксис Automation:

BOOL CellDblClick( ISpecificationObject * obj, long number );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
number	- номер редактируемой ячейки.
Возвращаемое значение:

TRUE	- обработать двойной клик в ячейке,
FALSE	- запрещает обработку двойного клика в ячейке.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::CellBeginEdit

Начало редактирования в ячейке.

Синтаксис Automation:

BOOL CellBeginEdit( ISpecificationObject * obj, long number );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
number	- номер редактируемой ячейки.
Возвращаемое значение:

TRUE	- редактировать ячейку,
FALSE	- запрещает редактировать ячейку.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::ChangeCurrent

Изменился текущий объект.

Синтаксис Automation:

BOOL ChangeCurrent( ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject текущего объекта спецификации,
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::DocumentBeginAdd

Начало добавления документа.

Синтаксис Automation:

BOOL DocumentBeginAdd( ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
Возвращаемое значение:

TRUE	- добавить документ сборочного чертежа,
FALSE	- запрещает добавление документа сборочного чертежа.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::DocumentAdd

Добавление документа в объекте спецификации.

Синтаксис Automation:

BOOL DocumentAdd( ISpecificationObject * obj, BSTR docName );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
docName	- имя файла добавленного документа.
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::DocumentRemove

Удаление документа из объекта спецификации.

Синтаксис Automation:

BOOL DocumentRemove( ISpecificationObject * obj, BSTR docName );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
docName	- имя файла удаляемого документа.
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::BeginGeomChange

Начало измения геометрии объекта спецификации.

Синтаксис Automation:

BOOL BeginGeomChange( ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
Возвращаемое значение:

TRUE	- изменить геометрию объекта спецификации,
FALSE	- запрещает изменение геометрии объекта спецификации.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::GeomChange

Геометрия объекта спецификации изменилась.

Синтаксис Automation:

BOOL GeomChange( ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::BeginProcess

Начало редактирования\создания объекта..

Синтаксис Automation:

BOOL BeginProcess( long pType, ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
pType	- тип процесса ( SPC_BASE_OBJECT, SPC_COMMENT ).
Возвращаемое значение:

TRUE	- редактировать\создать объект,
FALSE	- запрещает редактирование\создание объекта объекта.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::EndProcess

Конец редактирования\создания объекта.

Синтаксис Automation:

BOOL EndProcess( long pType );

Входные параметры:

pType	- тип процесса ( SPC_BASE_OBJECT, SPC_COMMENT ).
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::CreateObject

Создание объекта спецификации.

Синтаксис Automation:

BOOL CreateObject( ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject созданного объекта спецификации,
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


ksSpecificationObjectNotify::UpdateObject

Редактирование объекта спецификации

Синтаксис Automation:

BOOL UpdateObject( ISpecificationObject * obj );

Входные параметры:

obj	- указатель на интерфейс ISpecificationObjectISpecificationObject редактируемого объекта спецификации,
Возвращаемое значение:

	не используется.
Примечание:

Индекс события задан в перечислении событий для объектов спецификации ksSpcObjectNotifyEnum.


Интерфейс ISpecificationBaseObject
ISpecificationBaseObject

Интерфейс базового объекта спецификации.

Иерархия:

Свойства...

Описание:

Интерфейс позволяет получить и изменить параметры для базовых объектов спецификации. Для базовых объектов предусмотрена возможность автоматического заполнения колонок, сортировки, подключения графических объектов из сборочного чертежа, подключения деталей из сборки и т.д.

Примечание:

1. После изменения параметров объекта спецификации требуется вызвать метод ISpecificationObject::Update.

2. Данный интерфейс можно получить у коллекции базовых объектов спецификации ISpecificationBaseObjects.


ISpecificationBaseObject::props
ISpecificationBaseObject
свойства

AttributeNumber

CommentObjects

Documents

Draw

DrawPosition

Performance

SummaryCount


ISpecificationBaseObject::Draw

Показывать объект.

Тип данных - BOOL..

Синтаксис Automation:

Draw = iObject.Draw	Получить свойство (*)
iObject.Draw = Draw	Установить свойство (*)
Draw = iObject.GetDraw()	Получить свойство (**)
iObject.SetDraw( Draw )	Установить свойство (**)
Синтаксис COM:

iObject->get_Draw( &Draw )	Получить свойство
iObject->put_Draw(  Draw )	Установить свойство
Значения свойства:

TRUE	- объект виден в таблице спецификации в любом режиме работы с ней,
FALSE	- показывать объект в таблице спецификации не нужно; при этом объект не удаляется (он по-прежнему участвует в расчете номеров позиций,
Примечание:

Свойство позволяет скрыть объект спецификации.


ISpecificationBaseObject::DrawPosition

Показывать позицию.

Тип данных - BOOL..

Синтаксис Automation:

DrawPosition = iObject.DrawPosition	Получить свойство (*)
iObject.DrawPosition = DrawPosition	Установить свойство (*)
DrawPosition = iObject.GetDrawPosition()	Получить свойство (**)
iObject.SetDrawPosition( DrawPosition )	Установить свойство (**)
Синтаксис COM:

iObject->get_DrawPosition( &DrawPosition )	Получить свойство
iObject->put_DrawPosition(  DrawPosition )	Установить свойство
Значения свойства:

TRUE	- в колонке "Позиция" объекта отображается ее содержимое,
FALSE	- колонка "Позиция" будет показываться пустой.
Примечание:

Свойство позволяет скрыть номер позиции объекта в спецификации.


ISpecificationBaseObject::Performance

Объект является исполнением.

Тип данных - BOOL..

Синтаксис Automation:

Performance = iObject.Performance	Получить свойство (*)
iObject.Performance = Performance	Установить свойство (*)
Performance = iObject.GetPerformance()	Получить свойство (**)
iObject.SetPerformance( Performance )	Установить свойство (**)
Синтаксис COM:

iObject->get_Performance( &Performance )	Получить свойство
iObject->put_Performance(  Performance )	Установить свойство
Значения свойства:

TRUE	- Объект является исполнением,
FALSE	- Объект не является исполнением.
Примечание:

Объекты спецификации, являющиеся испольнением отличаются от простого объекта наличием суффикса исполнения. Их обозначение должно заканчиваться суффиксом с номером испольнения. Например: -02, -03, -10.

Отображение объектов, являющимися исполнениями зависит от настроек стиля спецификации.


ISpecificationBaseObject::CommentObjects

Вспомогательные объекты, прикрепленные к объекту.

Тип данных - Указатель на интерфейс ISpecificationCommentObjects коллекции вспомогательных объектов спецификации.

Синтаксис Automation:

CommentObjects = iObject.CommentObjects	Получить свойство (*)
CommentObjects = iObject.GetCommentObjects()	Получить свойство (**)
Синтаксис COM:

iObject->get_CommentObjects( &CommentObjects )	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationBaseObject::Documents

Документы, связанные с объектом спецификации.

Тип данных - VARIANT.

Синтаксис Automation:

Documents = iObject.Documents	Получить свойство (*)
Documents = iObject.GetDocuments()	Получить свойство (**)
Синтаксис COM:

iObject->get_Documents( &Documents )	Получить свойство
Примечание:

1. Связанными документами являются документы, в которых находится геометрия, подключенная к данному объекту, поэтому список связанных с объектом спецификации документов можно получить только для объектов в документе спецификации, в остальных документах геометрию можно подключить только из этого же документа.

2. Свойство возвращает переменную типа VARIANT на безопасный массив имен файлов, связанных с объектом спецификации SAFEARRAY (VT_ARRAY | VT_BSTR).

3. Свойство доступно только для чтения.


ISpecificationBaseObject::AttributeNumber

Номер типа атрибута.

Тип данных - double.

Синтаксис Automation:

AttributeNumber = iObject.AttributeNumber	Получить свойство (*)
iObject.AttributeNumber = AttributeNumber	Установить свойство (*)
AttributeNumber = iObject.GetAttributeNumber()	Получить свойство (**)
iObject.SetAttributeNumber( AttributeNumber )	Установить свойство (**)
Синтаксис COM:

iObject->get_AttributeNumber( &AttributeNumber )	Получить свойство
iObject->put_AttributeNumber(  AttributeNumber )	Установить свойство
Примечание:

Позволяет получить используемый тип атрибута для колонки с типом значения ksValueTypeRecord ISpecificationColumn::ValueType, и установить новый. Если требуется просто удалить тип атрибута, то в качестве значения этого свойства надо присвоить 0. В этом случае значение колонки с типом ksValueTypeRecord будет аналогично типу ksValueTypeString. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


ISpecificationBaseObject::SummaryCount

Суммарное количество для исполнения.

Тип данных - double.

Синтаксис Automation:

SummaryCount = iObject.SummaryCount( ColumnTypeNumber, BlockNumber )	Получить свойство (*)
SummaryCount = iObject.GetSummaryCount( ColumnTypeNumber, BlockNumber )	Получить свойство (**)
Синтаксис COM:

iObject->get_SummaryCount( ColumnTypeNumber, BlockNumber, &SummaryCount )	Получить свойство
Входные параметры:

ColumnTypeNumber	- номер колонки данного типа,
BlockNumber	- номер блока исполнений.
Примечание:

1. Свойство доступно только для чтения.

2. Данное свойство возвращает суммарное значение в колонке "Количество" указанного номера колонки для одинаковых объектов указанного блока исполнени.


Интерфейс ISpecificationCommentObject
ISpecificationCommentObject

Интерфейс вспомогательного объекта спецификации.

Иерархия:

Свойства...

Описание:

Интерфейс позволяет получить и изменить параметры вспомогательного объекта спецификации. В отличие от базового для вспомогательного объекта не предусмотрены сервисные функции, выполнение которых обеспечивает спецификация. Вспомогательные объекты не сортируются автоматически и т.д. Вспомогательные объекты рекомендуется использовать для выполнения таких приемов оформления спецификации, которые не могут быть обеспечены вводом базовых объектов. Например, при помощи вспомогательного объекта спецификации можно ввести произвольный текст (комментарий) в таблицу спецификации или создать пустую строку в середине раздела.

Примечание:

1. После изменения параметров объекта спецификации требуется вызвать метод ISpecificationObject::Update.

2. Данный интерфейс можно получить у коллекции базовых объектов спецификации ISpecificationCommentObjects.


ISpecificationCommentObject::props
ISpecificationCommentObject
свойства

BaseObject

BlockNumber


ISpecificationCommentObject::BaseObject

Базовый объект спецификации, к которому прикреплен данный объект.

Тип данных - указатель на интерфейс базового объекта спецификации ISpecificationBaseObject

Синтаксис Automation:

BaseObject = iObject.BaseObject	Получить свойство (*)
BaseObject = iObject.GetBaseObject()	Получить свойство (**)
Синтаксис COM:

iObject->get_BaseObject( &BaseObject )	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationCommentObject::BlockNumber

Номер блока.

Тип данных - long.

Синтаксис Automation:

BlockNumber = iObject.BlockNumber	Получить свойство (*)
iObject.BlockNumber = BlockNumber	Установить свойство (*)
BlockNumber = iObject.GetBlockNumber()	Получить свойство (**)
iObject.SetBlockNumber( BlockNumber )	Установить свойство (**)
Синтаксис COM:

iObject->get_BlockNumber( &BlockNumber )	Получить свойство
iObject->put_BlockNumber(  BlockNumber )	Установить свойство
Примечание:

Установить номер блока можно только для нового вспомогательного объекта спецификации.


Интерфейс ISpecificationColumns
ISpecificationColumns

Интерфейс коллекции колонок объекта спецификации.

Иерархия:

Свойства...

Описание:

Различаются основные и дополнительные колонки объектов спецификации. Основные колонки отображаются в таблице спецификации и выводятся на печать. Дополнительные колонки содержат сведения, дополняющие информацию, включаемую в стандартный бланк. В таблице спецификации такие колонки не видны и на печать не выводятся. Количество основных колонок может не соответствовать количеству колонок в таблице спецификации. Это вызвано наличием исполнений для групповых спецификаций.

Примечание:

1. Управляет массивом интерфейсов ISpecificationColumn.

2. Чтобы получить коллекцию основных колонок объекта спецификации исползуется метод ISpecificationObject::Columns.

3. Для получения дополнительных колонок используется метод ISpecificationObject::AdditionalColumns.


ISpecificationColumns::props
ISpecificationColumns
свойства

Item

Column


ISpecificationColumns::Item

Колонка объекта спецификации, заданная по индексу.

Тип данных - Указатель на интерфейс ISpecificationColumn колонки объекта спецификации.

Синтаксис Automation:

Column = iObject.Item( Index )	Получить свойство (*)
Column = iObject.GetItem( Index )	Получить свойство (**)
Синтаксис COM:

iObject->get_Item( Index, &Column )	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationColumns::Column

Колонка объекта спецификации, заданная по типу, номеру и блоку.

Тип данных - Указатель на интерфейс ISpecificationColumn колонки объекта спецификации.

Синтаксис Automation:

Column = iObject.Column( type, ColumnNumber, BlockNumber )	Получить свойство (*)
Column = iObject.GetColumn( type, ColumnNumber, BlockNumber )	Получить свойство (**)
Синтаксис COM:

iObject->get_Column( type, ColumnNumber, BlockNumber, &Column )	Получить свойство
Входные параметры:

type	- тип колонки объекта спецификации из ksSpecificationColumnTypeEnum.
ColumnNumber	- номер колонки данного типа.
BlockNumber	- номер блока.
Примечание:

Свойство доступно только для чтения.


Интерфейс ISpecificationColumn
ISpecificationColumn

Интерфейс колонки объекта спецификации.

Иерархия:

Свойства...

Описание:

Колонка спецификации представляет ячейку строки объекта спецификации в таблице спецификации. Колонка содержит информацию определенного типа, который определяется типом колонки ColumnType.

Если в спецификации необходимо иметь несколько колонок с одинаковым типом, то они отличаются друг от друга номером колонки данного типа ColumnTypeNumber.

Различаются основные и дополнительные колонки объектов спецификации. Основные колонки отображаются в таблице спецификации и выводятся на печать. Дополнительные колонки содержат сведения, дополняющие информацию, включаемую в стандартный бланк. В таблице спецификации такие колонки не видны и на печать не выводятся. Примером информации в дополнительных колонках могут служить масса и стоимость объекта. В дополнительные колонки вводят и любую другую информацию об объекте (код ОКП, материал, текстовый комментарий и т.д.). Их количество и состав определяются потребностями пользователя и хранятся в стиле спецификации.

Примечание:

Данный интерфейс можно получить у коллекции колонок объекта спецификации ISpecificationColumns.


ISpecificationColumn::props
ISpecificationColumn
свойства

AttributeNumber

BlockNumber

ColumnItems

ColumnType

ColumnTypeNumber

ValueType


ISpecificationColumn::ColumnType

Тип колонки.

Тип данных - из перечисления ksSpecificationColumnTypeEnum.

Синтаксис Automation:

ColumnType = iObject.ColumnType	Получить свойство (*)
ColumnType = iObject.GetColumnType()	Получить свойство (**)
Синтаксис COM:

iObject->get_ColumnType( &ColumnType )	Получить свойство
Примечание:

1. Тип колонки определяет, какая именно информация будет храниться в этой колонке (независимо от ее названия). Тип колонки используется при автоматическом выполнении различных операций. Например:

- если тип колонки - ПОЗИЦИЯ (ksSColumnPosition), то именно в эту колонку будут заноситься номера позиций при их автоматическом перерасчете.

- если тип колонки - ЗОНА (ksSColumnZone), то именно в эту колонку будут попадать номера зон.

- если тип колонки - ФОРМАТ (ksSColumnFormat), то в нее будут переноситься обозначения форматов из штампов чертежей деталей.

При перерождении спецификации в спецификацию другого стиля (например, простой спецификации в групповую) колонки превращаются в колонки такого же типа (если он есть в стиле той спецификации, в которую перерождается исходная).

2. Свойство доступно только для чтения.


ISpecificationColumn::ColumnTypeNumber

Номер колонки данного типа.

Тип данных - long.

Синтаксис Automation:

ColumnTypeNumber = iObject.ColumnTypeNumber	Получить свойство (*)
ColumnTypeNumber = iObject.GetColumnTypeNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_ColumnTypeNumber( &ColumnTypeNumber )	Получить свойство
Примечание:

1. Иногда однородная (но не одинаковая) информация должна храниться в нескольких колонкахи по этой причине они имеют одинаковый тип. Например, несколько колонок групповой спецификации содержат информацию о количестве, но числа в них разные, т.к. они относятся к разным исполнениям. Чтобы отличать типы таких колонок, вместе с типом задается еще и номер, отличающий колонку этого типа от других колонок такого же типа. Если разные колонки имеют одинаковый тип, то номера колонок этого типа должны быть разными.

Обратите внимание, что во вкладке Колонки диалога настройки стиля спецификации в скобках рядом с типом колонки показан этот номер (например, КОЛИЧЕСТВО[2]). Если несколько колонок имеют одинаковый тип, то при автоматическом выполнении операций будет использоваться та из них, тип которой имеет номер 1. Например, в спецификации есть колонки с типом ЗОНА[1] и ЗОНА[2]; при автоматическом расчете номера зон будут заноситься в колонку с типом ЗОНА[1].

2. Свойство доступно только для чтения.


ISpecificationColumn::BlockNumber

Номер блока.

Тип данных - long.

Синтаксис Automation:

BlockNumber = iObject.BlockNumber	Получить свойство (*)
BlockNumber = iObject.GetBlockNumber()	Получить свойство (**)
Синтаксис COM:

iObject->get_BlockNumber( &BlockNumber )	Получить свойство
Примечание:

1. Определяет какому блоку исполнений соответствует данная колонка. Используется для базовых объектов групповых спецификаций.

2. Свойство доступно только для чтения.


ISpecificationColumn::ValueType

Тип значения колонки.

Тип данных - из перечисления ksValueTypeEnum.

Синтаксис Automation:

ValueType = iObject.ValueType	Получить свойство (*)
ValueType = iObject.GetValueType()	Получить свойство (**)
Синтаксис COM:

iObject->get_ValueType( &ValueType )	Получить свойство
Значение свойства:

ksValueTypeInteger	- Колонка содержит целое со знаком, и состоит из одного элемента,
ksValueTypeFloat	- Колонка содержит вещественное число, и состоит из одного элемента,
ksValueTypeString	- Колонка содержит строку длиной 255 символов, и состоит из одного элемента,
ksValueTypeRecord	- Колонка содержит запись, количество элементов в колонке определяется типом атрибута.
Примечание:

1. Тип ksValueTypeRecord доступен только для базовых объектов спецификации, и может быть только одна колонка данного типа. Тип атрибута для такой колонки определяется при создании базового объекта (см. AttributeNumber, ISpecificationBaseObject::AttributeNumber и ISpecificationBaseObjects::Add). Если тип атрибута 0 или объект не является базовым объектом спецификации, то данная колонка используется аналогично колонкам с типом значения ksValueTypeString.

2. Свойство доступно только для чтения.


ISpecificationColumn::ColumnItems

Элементы колонки объекта спецификации.

Тип данных - Указатель на интерфейс ISpecificationColumnItems коллекции элементов колонки объекта спецификации.

Синтаксис Automation:

ColumnItems = iObject.ColumnItems	Получить свойство (*)
ColumnItems = iObject.GetColumnItems()	Получить свойство (**)
Синтаксис COM:

iObject->get_ColumnItems( &ColumnItems )	Получить свойство
Примечание:

Свойство доступно только для чтения.


ISpecificationColumn::AttributeNumber

Номер типа атрибута.

Тип данных - double.

Синтаксис Automation:

AttributeNumber = iObject.AttributeNumber	Получить свойство (*)
iObject.AttributeNumber = AttributeNumber	Установить свойство (*)
AttributeNumber = iObject.GetAttributeNumber()	Получить свойство (**)
iObject.SetAttributeNumber( AttributeNumber )	Установить свойство (**)
Синтаксис COM:

iObject->get_AttributeNumber( &AttributeNumber )	Получить свойство
iObject->put_AttributeNumber(  AttributeNumber )	Установить свойство
Примечание:

1. Используется только для колонки с типом значения ksValueTypeRecord ISpecificationColumn::ValueType.

Если требуется просто удалить тип атрибута, то в качестве значения этого свойства надо присвоить 0. В этом случае значение колонки с типом ksValueTypeRecord будет аналогично типу ksValueTypeString.

2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


Интерфейс ISpecificationColumnItems
ISpecificationColumnItems

Интерфейс коллекции элементов колонки объекта спецификации.

Иерархия:

Свойства...

Описание:

Количество элементов колонки зависит от типа колонки.

Колонка типа Целое, Вещественное или Строка имеют только один элемент соответствующего типа.

Колонка типа запись (ksValueTypeRecord см. ISpecificationColumn::ValueType) может иметь более одного элемента.

Если базовый объект спецификации создан на основе атрибута то количество элементов в колонке будет равно количеству колонок атрибута. Если объекту не указан тип атрибута, то в колонке типа запись будет один элемент с типом значения - строка.

Примечание:

1. Управляет массивом интерфейсов ISpecificationColumnItem.

2. Данный интерфейс можно получить у колонки объекта спецификации ISpecificationColumn::ColumnItems.


ISpecificationColumnItems::props
ISpecificationColumnItems
свойства

Item


ISpecificationColumnItems::Item

Элемент колонки объекта спецификации, заданный по индексу.

Тип данных - указатель на интерфейс ISpecificationColumnItem элемента колонки объекта спецификации.

Синтаксис Automation:

ColumnItem = iObject.Item( Index )	Получить свойство (*)
ColumnItem = iObject.GetItem( Index )	Получить свойство (**)
Синтаксис COM:

iObject->get_Item (Index, &ColumnItem )	Получить свойство
Примечание:

Свойство доступно только для чтения.


Интерфейс ISpecificationColumnItem
ISpecificationColumnItem

Интерфейс элемента колонки объекта спецификации.

Иерархия:

Свойства...

Описание:

Элемент колонки позволяет работать с данными колонки определенного типа. Этот тип соответствует типу колонки объекта спецификации или типу колонки атрибута для колонок типа Запись (ksValueTypeRecord). Если у колонки типа Запись тип атрибута не задан, то она состоит из одного элемента с типом Строка (ksValueTypeString).

Примечание:

Данный интерфейс можно получить у коллекции элементов колонки объекта спецификации ISpecificationColumnItems.


ISpecificationColumnItem::props
ISpecificationColumnItem
свойства

Key

Value

ValueType

Visible


ISpecificationColumnItem::ValueType

Тип значения элемента колонки.

Тип данных - из перечисления ksValueTypeEnum.

Синтаксис Automation:

ValueType = iObject.ValueType	Получить свойство (*)
ValueType = iObject.GetValueType()	Получить свойство (**)
Синтаксис COM:

iObject->get_ValueType( &ValueType )	Получить свойство
Значение свойства:

ksValueTypeInteger	Элемент колонки содержит целое со знаком, и состоит из одного элемента,
ksValueTypeFloat	Элемент колонки вещественное число, и состоит из одного элемента,
ksValueTypeString	Элемент колонки строка длиной 255 символов, и состоит из одного элемента,
ksValueTypeRecord	не используется.
Примечание:

1. См также ISpecificationColumnItem::Value.

2. Свойство доступно только для чтения.


ISpecificationColumnItem::Key

Ключ.

Тип данных - short.

Синтаксис Automation:

Key = iObject.Key	Получить свойство (*)
iObject.Key = Key	Установить свойство (*)
Key = iObject.GetKey()	Получить свойство (**)
iObject.SetKey( Key )	Установить свойство (**)
Синтаксис COM:

iObject->get_Key( &Key )	Получить свойство
iObject->put_Key(  Key )	Установить свойство
Примечание:

Свойство задает приоритет для сортировки. Если ключ равен 0 - сортировки нет. Используется для колонки типа Запись, если задан тип атрибута и позволяет определить приоритет каждого из элементов колонки для сортировки. Обратите внимание, что во вкладке Колонки диалога настройки стиля спецификации в скобках рядом с типом колонки показан этот номер (например, КОЛИЧЕСТВО[2]). Если несколько колонок имеют одинаковый тип, то при автоматическом выполнении операций будет использоваться та из них, тип которой имеет номер 1. Например, в спецификации есть колонки с типом ЗОНА[1] и ЗОНА[2]; при автоматическом расчете номера зон будут заноситься в колонку с типом ЗОНА[1].


ISpecificationColumnItem::Visible

Видимость элемента.

Тип данных - BOOL.

Синтаксис Automation:

Visible = iObject.Visible	Получить свойство (*)
iObject.Visible = Visible	Установить свойство (*)
Visible = iObject.GetVisible()	Получить свойство (**)
iObject.SetVisible( Visible )	Установить свойство (**)
Синтаксис COM:

iObject->get_Visible( &Visible )	Получить свойство
iObject->put_Visible(  Visible )	Установить свойство
Значение свойства:

TRUE	- содержимое элемента выводится в колонке объекта спецификации,
FALSE	- содержимое элемента не выводится в колонке объекта спецификации.


ISpecificationColumnItem::Value

Значение элемента.

Тип данных - VARIANT.

Синтаксис Automation:

Value = iObject.Value	Получить свойство (*)
iObject.Value = Value	Установить свойство (*)
Value = iObject.GetValue()	Получить свойство (**)
iObject.SetValue( Value )	Установить свойство (**)
Синтаксис COM:

iObject->get_Value( &Value )	Получить свойство
iObject->put_Value(  Value )	Установить свойство
Примечание:

Позволяет получить и установить значение элемента колонки объекта спецификации.

В зависимости от типа значения ValueType возвращаемое значение имеет тип:

- ksValueTypeInteger - VT_I4   (long),

- ksValueTypeFloat   - VT_R8   (double),

- ksValueTypeString  - VT_BSTR (строка).


Интерфейс IAttachedDocuments
IAttachedDocuments

Интерфейс коллекции присоединенных документов к объекту спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Объект спецификации можно связать с документами КОМПАС-3D. Эта связь является двусторонней и ассоциативной и позволяет передавать данные об объекте спецификации в подключенный документ или наоборот, данные из документа в соответствующий ему объект спецификации. Если к объекту спецификации подключено несколько документов, то в объект передаются данные из первого подключенного документа. Если отредактировать подключенную к объекту модель или данные в основной надписи подключенного документа, а также изменить его формат, то при сохранении этого документа будет выдан запрос на подтверждение передачи данных в спецификацию. После изменения наименования или обозначения объекта в документе-спецификации новые данные могут быть переданы в основную надпись подключенного документа.

Примечание:

1. Управляет массивом интерфейсов IAttachedDocument.

Данный интерфейс можно получить у объекта спецификации ISpecificationObject::AttachedDocuments.


IAttachedDocuments::props
IAttachedDocuments
свойства

Item


IAttachedDocuments::methods
IAttachedDocuments
методы

Add


IAttachedDocuments::Item

Присоединенный документ, заданный по индексу.

Тип данных - указатель на интерфейс IAttachedDocument присоединенного документа.

Синтаксис Automation:

ColumnItem = iObject.Item( Index )	Получить свойство (*)
ColumnItem = iObject.GetItem( Index )	Получить свойство (**)
Синтаксис COM:

iObject->get_Item( Index, &ColumnItem )	Получить свойство
Примечание:

Свойство доступно только для чтения.


IAttachedDocuments::Add

Добавить новый документ к объекту спецификации и в коллекцию.

Синтаксис Automation:

LPDISPATCH Add( BSTR Name, BOOL transmit );

Синтаксис COM:

HRESULT Add ( [in] BSTR Name,
[in] BOOL transmit,
[out, retval] IAttachedDocument** Result );

Входные параметры:

Name	- полное имя файла присоединяемого документа,
transmit	- передавать изменения в документ.
Возвращаемое значение:

	указатель на интерфейс IAttachedDocument присоединенного документа.
Примечание:

1. После вызова метода Add документ будет добавлен в коллекцию.

2. Для удаления документа из коллекции используется метод IAttachedDocument::Delete

3. После добавления нужных документов вызвать метод ISpecificationObject::Update.

4. В результате подключения документа в соответствующие колонки объекта спецификации автоматически будут переданы наименование и обозначение из модели или основной надписи чертежа, а также обозначение формата, на котором выполнен подключенный чертеж.

5. Информация из подключенного документа может передаваться не только в колонки бланка спецификации, но и в дополнительные колонки. Например, в дополнительную колонку объекта может быть автоматически передана масса детали из модели или из  соответствующей графы основной надписи.


Интерфейс IAttachedDocument
IAttachedDocument

Интерфейс параметров присоединенного документа к объекту спецификации.

Иерархия:

Свойства...

Методы...

Описание:

Объект спецификации можно связать с документом КОМПАС-3D. Эта связь является двусторонней и ассоциативной и позволяет передавать данные об объекте спецификации в подключенный документ, или наоборот, данные из документа в соответствующий ему объект спецификации.

В результате подключения документа в соответствующие колонки объекта спецификации автоматически будут переданы наименование и обозначение из модели или основной надписи чертежа, а также обозначение формата, на котором выполнен подключенный чертеж.

Информация из подключенного документа может передаваться не только в колонки бланка спецификации, но и в дополнительные колонки. Например, в дополнительную колонку объекта может быть автоматически передана масса детали из модели или из  соответствующей графы основной надписи.

Примечание:

Данный интерфейс можно получить у коллекции присоединенных документов к объекту спецификации.IAttachedDocuments.


IAttachedDocument::props
IAttachedDocument
свойства

Comment

Name

Transmit


IAttachedDocument::methods
IAttachedDocument
методы

Delete


IAttachedDocument::Name

Имя файла документа.

Тип данных - BSTR.

Синтаксис Automation:

Name = iObject.Name	Получить свойство (*)
Name = iObject.GetName()	Получить свойство (**)
Синтаксис COM:

iObject->get_Name( &Name )	Получить свойство
Примечание:

Свойство доступно только для чтения.


IAttachedDocument::Transmit

Передавать в изменения в документ.

Тип данных - BOOL.

Синтаксис Automation:

Transmit = iObject.Transmit	Получить свойство (*)
iObject.Transmit = Transmit	Установить свойство (*)
Transmit = iObject.GetTransmit()	Получить свойство (**)
iObject.SetTransmit( Transmit )	Установить свойство (**)
Синтаксис COM:

iObject->get_Transmit( &Transmit )	Получить свойство
iObject->put_Transmit(  Transmit )	Установить свойство
Значение свойства:

TRUE	- включена передача информации из текстовой части и дополнительных колонок объекта спецификации в подключенный к нему документ,
FALSE	- передача информации выключена.
Примечание:

Передача изменений производится в момент сохранения документа или с помощью специальной команды синхронизации. Обратная передача данных - из подключенного документа в спецификацию - осуществляется вне зависимости от состояния данного свойства. Запрос на эту передачу выдается при сохранении документа, подключенного к объекту спецификации, если обозначение или наименование этого документа было изменено.


IAttachedDocument::Comment

Комментарий для документа источника.

Тип данных - BSTR.

Синтаксис Automation:

Comment = iObject.Comment	Получить свойство (*)
iObject.Comment = Comment	Установить свойство (*)
Comment = iObject.GetComment()	Получить свойство (**)
iObject.SetComment( Comment )	Установить свойство (**)
Синтаксис COM:

iObject->get_Comment( &Comment )	Получить свойство
iObject->put_Comment(  Comment )	Установить свойство


IAttachedDocument::Delete
IAttachedDocuments::Delete

Удалить ссылку на документ.

Синтаксис Automation:

BOOL Delete();

Синтаксис COM:

HRESULT Delete( [out, retval] BOOL* Result );

Примечание:

1. Метод позволяет удалить ссылку на документ.

2. После удаления нужных документов вызвать метод ISpecificationObject::Update.


Функции работы со спецификацией V8
Функции работы со спецификацией

Функции данного раздела позволяют работать с документом-спецификацией.


Функции

ksGetSpcObjectAttributeNumber

ksGetSpcObjectColumnTextAlign

ksGetSpcObjectSummaryCount

ksSetSpcObjectAttributeNumber

ksSetSpcObjectColumnTextAlign


ksSetSpcObjectColumnTextAlign - Установить выравнивание для текста колонки объекта спецификации
ksSetSpcObjectColumnTextAlign

Установить выравнивание для текста колонки объекта спецификации.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetSpcObjectSummaryCount.

Синтаксис:

int LIB_FUNC ksSetSpcObjectColumnTextAlign(reference spcObj,
 int columnNumber,
int lineIndex,
int align );

Входной параметр:

spcObj	- указатель на объект спецификации.
columnNumber	- номер колонки, начиная с 1,
lineIndex	- индекс строки текста,
align	- выравнивание.
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.
Примечания:

Значение переменной align может принимать значения:

 0 - Выравнивание влево

 1 - Выравнивание по центру

 2 - Выравнивание вправо

 3 - Выравнивание по ширине


ksGetSpcObjectColumnTextAlign - Получить выравнивание для текста колонки объекта спецификации
ksGetSpcObjectColumnTextAlign

Получить выравнивание для текста колонки объекта спецификации.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetSpcObjectColumnTextAlign.

Синтаксис:

int LIB_FUNC ksGetSpcObjectColumnTextAlign( reference spcObj,
int columnNumber,
int lineIndex );

Входной параметр:

spcObj	- указатель на объект спецификации.
columnNumber	- номер колонки, начиная с 1,
lineIndex	- индекс строки текста,
Возвращаемое значение:

	Способ выравнивания в ячейке.
Примечания:

Значение переменной align может принимать значения:

 0 - Выравнивание влево

 1 - Выравнивание по центру

 2 - Выравнивание вправо

 3 - Выравнивание по ширине


ksGetSpcObjectAttributeNumber - Получить номер атрибута объекта спецификации
ksGetSpcObjectAttributeNumber

Получить номер атрибута объекта спецификации.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetSpcObjectAttributeNumber.

Синтаксис:

double LIB_FUNC ksGetSpcObjectAttributeNumber( reference spcObj );

Входные параметры:

spcObj	объект спецификации
Возвращаемое значение:

	Номер атрибута
Примечания:

Если spcObj = 0 то возвращается номер редактируемого в текущий момент
объекта спецификации, т.е. внутри блока

ksSpcObjectEdit(...);   .

ksGetSpcObjectAttributeNumber(...);

ksSpcObjectEnd();


ksSetSpcObjectAttributeNumber - Установить номер атрибута объекта спецификации.
ksSetSpcObjectAttributeNumber

Установить номер атрибута объекта спецификации.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksSetSpcObjectAttributeNumber.

Синтаксис:

int LIB_FUNC ksSetSpcObjectAttributeNumber (reference spcObj,
double attrNumber );

Входные параметры:

spcObj	- объект спецификации
attrNumber	- номер атрибута
Возвращаемое значение:

1	- в случае удачного завершения.
0	- в случае неудачи.- в случае неудачи.
Примечания:

Если spcObj = 0 то возвращается номер редактируемого в текущий момент
объекта спецификации, т.е. внутри блока

ksSpcObjectEdit(...);   .

ksGetSpcObjectAttributeNumber(...);

ksSpcObjectEnd();


ksGetSpcObjectSummaryCount - Получить суммарное количество для одинаковых объектов.
ksGetSpcObjectSummaryCount

Получить суммарное количество для одинаковых объектов.

Аналог данной функции при использовании Automation - метод ksAttributeObject::ksGetSpcObjectSummaryCount.

Синтаксис:

double LIB_FUNC ksGetSpcObjectSummaryCount (reference spcObj,
int ispoln,
int blockNumber );

Входные параметры:

spcObj	- объект спецификации
ispoln	- номер колонки типа "количество", начиная с 1 (актуально для СП типа Б )
blockNumber	- номер блока, начиная с 0 ( актуально для СП типа A )
Возвращаемое значение:

	- cуммарное количество,