e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
48 lines
3.1 KiB
Markdown
48 lines
3.1 KiB
Markdown
---
|
|
title: "ExternalRunCommand - Головная функция библиотеки"
|
|
type: guide
|
|
api: [api7]
|
|
tags: [guide, api7, externalruncommand]
|
|
sources:
|
|
- externalruncommand.html
|
|
---
|
|
|
|
*Создание прикладных библиотек > Оформление прикладных библиотек типа ActiveX > Пример простейшей программы в среде VB, оформленной в виде ActiveX библиотеки КОМПАС > Функции *
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
## Пример использования функции 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
|