WPF

Автор slon, 04.06.18, 18:36:37

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

slon

Здравствуйте.
Подскажите, если кто занимался программированием приложении к компасу, каковы начальные действия после выбора проекта в Visual Studio - WPF. Что надо подключить в первую очередь и как?
Допустим надо в Grid расположить кнопку, при нажатии на которую открывается компас, рисуется окружность, сохраняется чертеж, закрывается компас.

KrissKross

Так же как и WinForms
смотрим пример отдельного приложения
C:\Program Files\ASCON\KOMPAS-3D V1...\SDK\C#\Automation\ksContr

slon

Ребята если можно поподробнее: какие библиотеки подключить и главное как) Очень необходимо для написания библиотек к компасу.

KrissKross

Давайте определим что Вы хотите получить:

1. Библиотеку - автоматически запускаемую с Компасом - в виде *.dll
смотрим пример
C:\Program Files\ASCON\KOMPAS-3D V1...\SDK\C#\Automation\ksActiveX

2. Приложение - независимое от Компас - в виде *.exe
смотрим пример
C:\Program Files\ASCON\KOMPAS-3D V1...\SDK\C#\Automation\ksContr

Подключать нужно следующие библиотеки
находятся в папке
C:\Program Files\ASCON\KOMPAS-3D V1...\SDK\C#\Common
using KompasAPI7;
using Kompas6API5;
using KAPITypes;
using Kompas6Constants;

+ Благодарностей: 1

anton.gorschnev

Добрый день. Большая просьба скинуть рабочий проек addin для компас, Automation\ksActiveX с ошибкой, потеряна ссылка на axKGAXLib

UU

Цитата: anton.gorschnev от 04.07.24, 13:24:52Добрый день. Большая просьба скинуть рабочий проек addin для компас, Automation\ksActiveX с ошибкой, потеряна ссылка на axKGAXLib
Может его надо установить?

anton.gorschnev

пробовал, найти не могу

p3452

#7
На сколько я помню, KGAX запускался, без особых проблем, на младших версиях v18 (v19).
На старших версиях - ошибки...
(интерес был "спортивный", править ошибки даже не пытался)

anton.gorschnev

Спасибо за информацию. Если есть рабочий  код C# создания addin для компас v21 (v22), пожалуйста выложите. Не могу разобраться с регистрации надстройки и изменение формата библиотеки в .rtw

p3452

Цитата: anton.gorschnev от 05.07.24, 08:25:45Если есть рабочий  код C# создания addin для компас v21 (v22), пожалуйста выложите
- Открываем папку [Компас]\SDK (если ее нет - доустановить)
- копируем CSharp.zip в отдельную папку
- разархивируем
- видим много папок - Step1, Step2, ... - в каждой из этих папок "рабочий код C# создания addin"
- запускаем register.bat
- открываем папку \Automation
- запускаем CSharp Steps.sln
- компилируем..
- получаем, в этой же папке, кучу dll файлов (Step1.dll, Step2.dll, ...) - эти .dll и есть AddIn приложения!

Преобразовывать в .rtw - не нужно, подключаете непосредственно .dll.


UU

AddIn библиотеки регистрируются в реестре и запуск их зависит от флага.
Внимательно читайте справку.
А то, что скомпелированно, будет обычными библиотеками Компас.
https://help.ascon.ru/KOMPAS_SDK/23/ru-RU/simple_sample_addin.html
+ Благодарностей: 1

p3452

Цитата: UU от 05.07.24, 09:58:31AddIn библиотеки регистрируются в реестре и запуск их зависит от флага.
Ценной замечание, спасибо! Но вопрошавшему (anton.gorschnev) его бы лучше НЕ ВИДЕТЬ - меньше головной боли, для начинающего!
(наверняка - пишет "AddIn", а подразумевает - подключаемые)

p3452

Цитата: anton.gorschnev от 04.07.24, 13:24:52Большая просьба скинуть рабочий проек addin для компас, Automation\ksActiveX с ошибкой, потеряна ссылка на axKGAXLib
Вот: v18_ ksActiveX.rar
Был собран на v18, работоспособность проверена на v20 и v22.
+ Благодарностей: 1

anton.gorschnev

Цитата: p3452 от 05.07.24, 12:57:58Ценной замечание, спасибо! Но вопрошавшему (anton.gorschnev) его бы лучше НЕ ВИДЕТЬ - меньше головной боли, для начинающего!
(наверняка - пишет "AddIn", а подразумевает - подключаемые)
мне как раз нужен "AddIn" с регистрации, простую библиотеку я подключил (хотя и возникают проблемы с отладкой кода).

anton.gorschnev

Цитата: KrissKross от 06.06.18, 06:25:50Давайте определим что Вы хотите получить:

1. Библиотеку - автоматически запускаемую с Компасом - в виде *.dll
смотрим пример
C:\Program Files\ASCON\KOMPAS-3D V1...\SDK\C#\Automation\ksActiveX

2. Приложение - независимое от Компас - в виде *.exe
смотрим пример
C:\Program Files\ASCON\KOMPAS-3D V1...\SDK\C#\Automation\ksContr

Подключать нужно следующие библиотеки
находятся в папке
C:\Program Files\ASCON\KOMPAS-3D V1...\SDK\C#\Common
using KompasAPI7;
using Kompas6API5;
using KAPITypes;
using Kompas6Constants;


Я конечно новичок, но почему ksActiveX.exe. Спасибо за Interop.KGAXLib.dll но не помогло, проблемы с конструктором формы, отваливается на InitializeComponent,присланный релиз запускается. Поправьте меня, если ошибаюсь, Step2New это как раз то что мне нужно (библиотека автоматически запускаемую с Компасом - в виде *.dll (rtw), пока не вижу разницы с Step1, хотя в менеджере надстроек по разному отображаются)

anton.gorschnev

#15
Прописал в Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\ASCON\KOMPAS-3D\AddIns\NewMyAddin библиотеку, пишет ошибку подключения библиотеки при запуске компаса. Как я понял реестре мне нужен "ProgID" (для ActiveX библиотек), "Path" читается после.   Откуда взять "ProgID"? Пока не вижу.

anton.gorschnev

Победил "ProgID" это имя приложения отображаемое в окне "Подключить Компас-приложения" (какой гений дал имя переменной ...ID), надо читать SDK (в примере на C++ "Содержимое реестра после регистрации файла "MyLibrary.reg"" )все написано. После регистрации библиотека попадает в раздел конфигуратора библиотек "Встроенные приложения" пользователь отключить сам не сможет, то что мне надо. Всем спасибо.

anton.gorschnev

[ComRegisterFunction]
public static void RegisterKompasLib(Type t)
{
try
{
                RegistryKey regKey = Registry.LocalMachine;
                string keyName = @"SOFTWARE\Classes\CLSID\{" + t.GUID.ToString() + "}";
                regKey = regKey.OpenSubKey(keyName, true);
                regKey.CreateSubKey("Kompas_Library");
                regKey = regKey.OpenSubKey("InprocServer32", true);
                regKey.SetValue(null, System.Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\mscoree.dll");
                regKey.Close();
                ///Регестрирует как Addin
                RegistryKey regKeyAdd = Registry.LocalMachine;
                string keyNameAdd = @"SOFTWARE\ASCON\KOMPAS-3D\AddIns";
                regKeyAdd = regKeyAdd.OpenSubKey(keyNameAdd, true);
                RegistryKey regKeyZAVKOM=regKeyAdd.CreateSubKey("NameLibrary");
                regKeyZAVKOM.SetValue("ProgID", "NameLibrary.NameClass");
                regKeyZAVKOM.Close();
                regKeyAdd.Close();
            }
catch (Exception ex)
{
MessageBox.Show(string.Format("При регистрации класса для COM-Interop произошла ошибка:\n{0}", ex));
}
}

p3452

anton.gorschnev, поищите среди Библиотек и Приложений Компас, зарегистрированные как AddIns (старенькая Бейсик-библиотека не в счет)!
 - Много нашли?!

anton.gorschnev

Цитата: p3452 от 10.07.24, 12:59:20anton.gorschnev, поищите среди Библиотек и Приложений Компас, зарегистрированные как AddIns (старенькая Бейсик-библиотека не в счет)!
 - Много нашли?!
Перехожу с Autodesk Inventor VB.Net, в нем Addins это основное что работает, оттуда мое рвение к ним, там это все просто и работоспособно.