КОМПАС-Invisible на сервере

Автор polisher, 05.03.18, 07:55:12

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

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

polisher

Здравствуйте, уважаемые эксперты!

Может, кто поделится ответами на следующие вопросы:
1) Требуется ли на КОМПАС-Invisible 17 отдельная лицензия или будет задействована лицензия "обычного"?
2) Можно ли на сервере развернуть "урезанный" КОМПАС без графической составляющей - только ActiveX, который необходим для работы КОМПАС-Инвизибл? Он необходим для работы со штампами чертежей и перевода документов в растровые форматы через сборки MS SQL Server.

На КОМПАС-Invisible 17 нужна отдельная лицензия.
+ Благодарностей: 1

polisher

Вот этого я и боялся! Паршиво! Тем более, что мне он нужен в многопользовательском режиме, значит, одной лицензией не обойтись!

По идеи должно хватить, одной лицензии, но лучше уточнить в СТП.

polisher

По идее да. Тем более, что Инвизибл используется только разово - считать информацию из штампа при занесении чертежа в базу. Вероятность, что два разработчика будут секунда в секунду загружать файлы минимальна. Но теоретически возможна.
Постараюсь связаться с разработчиками

#programmer

Добрый день!
Пытаюсь разобраться с KOMPAS-Invisible.

Но не получается даже открыть/создать документ.

Код простой (c#):
object handle = Activator.CreateInstance(Type.GetTypeFromProgID("KSINVISIBLE.Application.5"));

            if(handle!=null)
            {
                Kompas6API5.KompasInvisible5 ki5 = (Kompas6API5.KompasInvisible5)handle;
                ki5.ActivateControllerAPI();

                int sw_res = ki5.ksGetSystemVersion(out int major, out int minor, out int release, out int build);
                KompasAPI7.KompasInvisible7 ki7 = (KompasAPI7.KompasInvisible7)ki5.ksGetApplication7();
               

                richTextBox1.AppendText(string.Format("AppName: {0}\n\n", ki7.ApplicationName[true]));
                richTextBox1.AppendText(string.Format("version: {0}.{1}.{2}.{3}\n", major, minor, release, build));

                string filename = @"D:\Folder1\123456789_V1.CDW";

                KompasAPI7.IKompasDocument activedocument = ki7.Documents.Open(filename, false, false);                             

                if (activedocument != null)
                {
                    richTextBox1.AppendText("Document opened!\n");
                }
                else richTextBox1.AppendText("NULL!!!\n");

                MessageBox.Show("Complete!");
            }

В итоге получаю:

AppName: КОМПАС-3D Invisible v19

version: 19.0.4.0
NULL!!!

Что я делаю не так?

КОМПАС-3D v19(x64)

На использование КОМПАС-Invisible 17 и выше нужна лицензия.
Где Вы лицензию в коде активировали, сначала активируете лицензию, затем получаете KompasInvisible7.

#programmer

Вот что ответили в онлайн консультации:


p3452

#programmer, именно "Invisible"?
А начать с SDK API, никак?
- В папке установки Компас есть подпапка SDK (если нет - доустановите), в ней все, что нужно для начала работы...
- Документация по "Invisible" это, всего лишь, копия Справки SDK (SDK.chm)...
Удачи!

#programmer

"Документация по "Invisible" это, всего лишь, копия Справки SDK (SDK.chm)" - Я знаю.

С SDK API начали уже лет 10 назад и там всё работает.
Просто хочу посмотреть, какие преимущества даёт(или не даёт) Invisible.
В справке SDK по этому поводу ничего не написано. Нет даже описания интерфейсов KompasInvisible5 и KompasInvisible7.
Примеров тоже нет.
Будем разговаривать с техподдержкой.


p3452

Цитата: #programmer от 24.03.21, 14:00:41Просто хочу посмотреть, какие преимущества даёт(или не даёт) Invisible.
Хотите сказать, что у АСКОНА есть отдельная RTL, с отдельной лицензией и работающая НЕЗАВИСИМО от наличия Компаса?
 

#programmer

Нет.
Хочу понять зачем в принципе нужен КОМПАС-Invisible при наличии Компаса.
Ну вот, например, есть программка SaveRaster, она использует KOMPAS-Invisible.
Я повторил всё то же самое, просто открывая документы используя КОМПАС в невидимом режиме, т.е. так:

.............................
     kompasobject = Activator.CreateInstance(Type.GetTypeFromProgID("KOMPAS.Application.5"));

     api5 = (Kompas6API5.KompasObject)kompasobject;

     api7 = (KompasAPI7.IApplication)api5.ksGetApplication7();

     KompasAPI7.IKompasDocument doc = api7.Documents.Open(filename, false, true);

...................................................

Особо разницы не почувствовал.
Это просто пример. Задач множество (чтение/заполнение основных надписей чертежей, получение параметров деталей и сборок и т.д.).
Вот и хочу попробовать КОМПАС-Invisible.
Может для каких-нибудь из задач и выгоднее его использовать.


p3452

Цитата: #programmer от 24.03.21, 14:52:43Может для каких-нибудь из задач и выгоднее его использовать.
Сами же дали и ответ - в задачах не требующих экранного ввода-вывода и взаимодействия с пользователем - разницы нет никакой (ИМХО), - в задачах связанных с построениями, вычислениями - ощутимый прирост в скорости.

В любом случае, если не затруднит, поделитесь результатами, думаю, многим будет интересно!

#14
Разница есть.
В первом случае работает SaveRaster и отдельно себе работаю в КОМПАС-3D, занимается лицензии только на один экземпляр КОМПАС-3D и подключенные библиотеки.
KOMPAS_Invisible.png
KOMPAS_Invisible_.png
Во втором случае загрузил КОМПАС-3D в фоновом режиме и каждый из них занял лицензии на каждый экземпляр КОМПАС-3D с библиотеками.
KOMPAS_Visible_False.png
KOMPAS_Visible_False_.png

#programmer

Ага. Вижу.
Я не пробовал запускать одновременно (как у вас в несколько потоков).
Сейчас попробуем.

p3452

Sabahs, ценное уточнение - спасибо!

Вират Лакх

Есть у некоторых интерфейсов методы, работающие только при визуально открытых документах. Чтобы не было видно "видимо" открытый документ, может пригодиться инвизибл.