Значит в коде acadmap.arx ошибка, из-за которой долго загружается приложение.Очень странный вывод. Тему переношу.
Если отлаживать свой плагин для AutoCAD, то вообще не запускается.Речь идёт о каком плагине? Я правильно понял, что для его написания используется AutoCAD .NET API и C3D .NET API?
Данная ошибка, мне кажется кроется в системе Windows. Обращаюсь к вам за помощью.У меня на Windows 7 с той же студией и версией Civil проблем с отладкой нет никаких.
Также эта ошибка давно качует из версии к версии.
Если отлаживать свой плагин для AutoCAD, то вообще не запускается. Приходится программировать без отладки, наугад.
и в режиме отладки, где вообще acad вылетает https://screencast.autodesk.com/Embed/Timeline/77f228b1-d15c-4c36-89a9-fb8aaf579fe2Судя по видео, ошибку выдает не Civil, а ОС. Компьютер-то достаточно мощный, чтобы Civil тянуть? Может, банально, памяти не хватает?
У меня впечатление, что он мне нафиг не нужен.Думаю, что это не так. Судя по названию, это библиотека для Map, который является неотъемлемой частью Civil. Вряд ли без этой библиотеки Civil вообще запустится.
Думаю, что это не так. Судя по названию, это библиотека для Map, который является неотъемлемой частью Civil. Вряд ли без этой библиотеки Civil вообще запуститсяСудя вот по этой статье (http://c3dexpert.blogspot.ru/2011/08/map-3d-civil-3d.html) - это ГИС-функционал. Ну я предполагаю, что команды Map 3D и acadmap.arx - это одно и тоже. Допустим, если я занимаюсь дорогами или трубопроводом, то мне этот функционал и не нужен. В той-же самой статье описан некий скрипт, отключающий эти команды (а возможно и загрузку), но для версий 2009, 2010, 2011
<package>
<job>
<runtime>
<description>
This script turns on or off the automatic loading of the Map modules shipped
with Civil 3D when Civil 3D starts.
When module loading has been turned off, users can reload the Map modules by
keying in the "_MapStartWSpace' command.
Script Usage Examples
----------------------------------------------------
// disable autoloading of Map in Civil 3D 2010
wscript Civil3DMapControl.wsf /2010 /Disable
// enable autoloading of Map in Civil 3D 2010 for French version of Civil 3D
wscript Civil3DMapControl.wsf /2010 /Enable /FRA
Script Parameters
----------------------------------------------------
// /2008 or /2009 or /2010 or /2011 as the product year
// /Enable or /Disable loading of Map modules
// the language code can also be specified as one of the following
//
// /ENU (default)
// /DEU
// /FRA
// /ITA
// /ESP
// /PLK
// /HUN
// /CSY
// /RUS
// /PTB
// /CHS
// /CHT
// /KOR
// /JPN
</description>
</runtime>
<script language="JScript">
{
// get access to the Windows Scripting Host
var WshShell = WScript.CreateObject("WScript.Shell");
// get the script arguments
var varArgs = WScript.Arguments.Named;
// are we enabling or disabling loading of the modules (/Enable or /Disable (default is /Enable))
var bDisable = false;
if ( varArgs.Exists("Disable") || varArgs.Exists("disable") ) {
bDisable = true;
}
// version of Civil 3D to use (assume 2011)
var strVersion = "2011";
if ( varArgs.Exists("2010") ) {
strVersion = "2010";
}
if ( varArgs.Exists("2009") ) {
strVersion = "2009";
}
if ( varArgs.Exists("2008") ) {
strVersion = "2008";
}
// the language of choice (default is English (ENU))
var varLang = GetLanguage();
// Civil 3D location in registry
var varVersion = "\\R18.1\\ACAD-9000:" + varLang;
if ( strVersion == "2010" ) {
varVersion = "\\R18.0\\ACAD-8000:" + varLang;
}
if ( strVersion == "2009" ) {
varVersion = "\\R17.2\\ACAD-7000:" + varLang;
}
if ( strVersion == "2008" ) {
varVersion = "\\R17.1\\ACAD-6000:" + varLang;
}
// setup the registry root location
var hklm_root = "HKLM\\Software"
var hklm_root64 = "HKLM\\Software\\Wow6432Node"
// determine if running 32 or 64-bit OS
//if not 2011 change root to WoW6432Node
var processor_architecture = WshShell.Environment("PROCESS")("PROCESSOR_ARCHITECTURE");
if( "AMD64" == processor_architecture ) {
if( strVersion != "2011" ) {
hklm_root = hklm_root64;
}
}
// the Civil 3D location in the registry
var hklm_c3d = hklm_root + "\\Autodesk\\AutoCAD" + varVersion + "\\Applications";
// make the necessary registry changes
try {
if ( bDisable == true ) {
WshShell.RegWrite(hklm_c3d + "\\AcMap\\LOADCTRLS", 0x5, "REG_DWORD" );
WshShell.RegWrite(hklm_c3d + "\\AcMapAnnotUi\\LOADCTRLS", 0xd, "REG_DWORD" );
// WshShell.RegWrite(hklm_c3d + "\\AcMapCogo\\LOADCTRLS", 0x5, "REG_DWORD" );
WshShell.RegWrite(hklm_c3d + "\\AcMapDwfUI\\LOADCTRLS", 0x4, "REG_DWORD" );
WshShell.RegWrite(hklm_c3d + "\\AcMapDisplayManagement\\LOADCTRLS", 0x8, "REG_DWORD" );
if ( strVersion == "2010" || strVersion == "2011" ) {
WshShell.RegWrite(hklm_c3d + "\\AcMapRibbon\\LOADCTRLS", 0x4, "REG_DWORD" );
}
WshShell.RegWrite(hklm_c3d + "\\AcMap\\Commands\\MAPSTARTWSPACE", "MAPSTARTWSPACE", "REG_SZ" );
}
else {
WshShell.RegWrite(hklm_c3d + "\\AcMap\\LOADCTRLS", 0x7, "REG_DWORD" );
WshShell.RegWrite(hklm_c3d + "\\AcMapAnnotUi\\LOADCTRLS", 0xf, "REG_DWORD" );
// WshShell.RegWrite(hklm_c3d + "\\AcMapCogo\\LOADCTRLS", 0x7, "REG_DWORD" );
WshShell.RegWrite(hklm_c3d + "\\AcMapDwfUI\\LOADCTRLS", 0x2, "REG_DWORD" );
WshShell.RegWrite(hklm_c3d + "\\AcMapDisplayManagement\\LOADCTRLS", 0x9, "REG_DWORD" );
if ( strVersion == "2010" || strVersion == "2011" ) {
WshShell.RegWrite(hklm_c3d + "\\AcMapRibbon\\LOADCTRLS", 0x2, "REG_DWORD" );
}
}
}
catch (err) {
}
// let user know what happened
var strProduct = "Civil 3D " + strVersion;
var strTitle;
var strMessage;
if ( bDisable == true ) {
strTitle = strProduct + " Disable Map";
strMessage = strProduct + " map modules disabled";
}
else {
strTitle = strProduct + " Enable Map";
strMessage = strProduct + " map modules enabled";
}
WshShell.Popup( strMessage, 0, strTitle, 0 );
}
function GetLanguage()
{
// default is English
var varLang = "409";
if ( varArgs.Exists("DEU") ) {
varLang = "407";
}
else if ( varArgs.Exists("FRA") ) {
varLang = "40C";
}
else if ( varArgs.Exists("ITA") ) {
varLang = "410";
}
else if ( varArgs.Exists("ESP") ) {
varLang = "40A";
}
else if ( varArgs.Exists("PLK") ) {
varLang = "415";
}
else if ( varArgs.Exists("HUN") ) {
varLang = "40E";
}
else if ( varArgs.Exists("CSY") ) {
varLang = "405";
}
else if ( varArgs.Exists("RUS") ) {
varLang = "419";
}
else if ( varArgs.Exists("PTB") ) {
varLang = "416";
}
else if ( varArgs.Exists("CHS") ) {
varLang = "804";
}
else if ( varArgs.Exists("CHT") ) {
varLang = "404";
}
else if ( varArgs.Exists("KOR") ) {
varLang = "412";
}
else if ( varArgs.Exists("JPN") ) {
varLang = "411";
}
return varLang;
}
</script>
</job>
</package>
Простейший вариант, чтобы acadmap.arx не грузился - просто переименовать его (например, в acadmap1.arx)Хорошая идея. Правда, как я понял, лучше уже переименовывать не acadmap.rax, а AcMapLoader.arx. Находится в папке /AutoCad 2016/Map
Но не уверен, что всё будет нормально работатьНужно конечно проводить тесты. Но что могу точно сказать - автокад грузится быстрее. Проекты civil открылись вроде без проблем
Правда, как я понял, лучше уже переименовывать не acadmap.rax, а AcMapLoader.arx.Тогда уж оба. acadmap.arx грузится напрямую из реестра и еще и из AcMapLoader.arx
acadmap.arx грузится напрямую из реестраНасколько мне удалось выяснить опытным путем, acadmap.arx подгружается не напрямую из реестра.