ADN Club > Civil 3D API
Как определить что запущен именно Civil?
simson43:
Добрый день!
Можно ли определить из какого приложения мы работаем: Autocad или Civil?
Спасибо!
Дмитрий Загорулькин:
Если проверять из приложения, загруженного в AutoCAD/Civil 3D, то можно так:
--- Код - C# [Выбрать] ---/// <summary>/// Является ли запущенный AutoCAD Civil'ом/// </summary>public static bool IsCivilApplication(bool msg){ string rootKeyNumber = null; Version ver = Application.Version; bool ret; if (ver.Major == 19 && ver.Minor == 1) rootKeyNumber = "D000"; else if (ver.Major == 20 && ver.Minor == 0) rootKeyNumber = "E000"; else if (ver.Major == 20 && ver.Minor == 1) rootKeyNumber = "F000"; else if (ver.Major == 21) rootKeyNumber = "0000"; else if (ver.Major == 22 && ver.Minor == 0) rootKeyNumber = "1000"; else if (ver.Major == 23 && ver.Minor == 0) rootKeyNumber = "2000"; if (string.IsNullOrEmpty(rootKeyNumber)) { ret = false; if (msg) Application.ShowAlertDialog (string.Format("Not supported version: {0}", ver)); } else { ret = HostApplicationServices.Current .MachineRegistryProductRootKey.Contains(rootKeyNumber); if (!ret && msg) { Application.ShowAlertDialog("It is not Civil 3D!"); } } return ret;} Метод далеко не идеален, но работает. Подойдёт для версий 2014-2019. Когда выйдет новая версия, его надо будет изменять.
Если же из внешнего приложения: http://adn-cis.org/eto-ekzemplyar-prilozheniya-civil-3d.html
Ещё один момент: если запущен Civil3D as AutoCAD, то проверка будет считать, что это Civil 3D. Но и как показывает практика, с работой сивильных приложений в таком автокаде нет проблем.
simson43:
Нужно чтоб отличал Civil as Autocad от Civil(
может можно узнать путь запущенного файла? если автокад то в пути будет "AutoCad" светиться
_____________
хотя у них же один запускаемый файл(
Дмитрий Загорулькин:
--- Цитата: simson43 от 17-12-2018, 13:13:57 ---Нужно чтоб отличал Civil as Autocad от Civil
--- Конец цитаты ---
Хо-хо...
--- Цитата: simson43 от 17-12-2018, 13:13:57 ---может можно узнать путь запущенного файла? если автокад то в пути будет "AutoCad" светиться
--- Конец цитаты ---
Да они с одного файла запускаются...
Civil:
--- Код: ---"D:\Programs\Autodesk\AutoCAD 2019\acad.exe" /ld "D:\Programs\Autodesk\AutoCAD 2019\\AecBase.dbx" /p "<<C3D_Metric>>" /product "C3D" /language "ru-RU"
--- Конец кода ---
Civil as AutoCAD:
--- Код: ---"D:\Programs\Autodesk\AutoCAD 2019\acad.exe" /P AutoCAD /Product "C3D" /Language "ru-RU"
--- Конец кода ---
То есть, разница только в том, что в AutoCAD не грузится AecBase.dbx и файл профиля другой загружается.
Александр Ривилис:
--- Цитата: simson43 от 17-12-2018, 13:13:57 ---может можно узнать путь запущенного файла?
--- Конец цитаты ---
Запускается один и тот же acad.exe
Навигация
Перейти к полной версии