С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.05.2014
Сообщений: 7

Ошибка "eFileSharingViolation" при работе из Autocad 2016

30.05.2016, 15:19. Показов 1174. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Опишу задачу подробнее.
Есть некий файл со скомпонованными листами. Нужно пересохранить этот файл в отдельные файлы с одним Листом в каждом файле. Т.е. если был файл "Плита_01.dwg" с листами с названиями

"Лист01"
"Лист02"
"Лист03"

то на выходе мы должны иметь 3 файла

Плита_01_[Лист01]_.dwg
Плита_01_[Лист02]_.dwg
Плита_01_[Лист03]_.dwg

с соответствующими листами.

Есть Код (библиотеки все подключены acdbmgd, accoremgd, acmgd):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
using System; 
using System.IO; 
using Autodesk.AutoCAD.Runtime; 
using Autodesk.AutoCAD.ApplicationServices; 
using Autodesk.AutoCAD.DatabaseServices; 
using Autodesk.AutoCAD.EditorInput; 
 
namespace ClassLibrary2 
{ 
        public class Class1 
    { 
        [CommandMethod("dpSaveLayoutsToSeparateFiles2")] 
        public void dpSaveLayouts2() 
        { 
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; 
            Document doc = Application.DocumentManager.MdiActiveDocument; 
            HostApplicationServices hs = HostApplicationServices.Current; 
            Database db = Application.DocumentManager.MdiActiveDocument.Database; 
 
            //системная переменная, проверяем сохранен ли файл или нет 
            object DWGTITLED = Application.GetSystemVariable("DWGTITLED"); 
 
            //если не сохранен выходим 
            if (System.Convert.ToInt16(DWGTITLED) == 0) 
            { 
                Application.ShowAlertDialog("Перед использованием процедуры сохранить"); 
                return; 
            } 
 
            //получаем полный путь к DWG файлу 
            string dwgFullPath = hs.FindFile(doc.Name, doc.Database, FindFileHint.Default); 
            //получаем имя DWG файла 
            string dwgName = Path.GetFileName(dwgFullPath); 
            //получаем имя DWG файла без расширения 
            string dwgNameWoExt = Path.GetFileNameWithoutExtension(dwgFullPath); 
            //получаем путь к DWG файлу 
            string dwgPath = Path.GetDirectoryName(dwgFullPath); 
            //путь для сохранения новых DWG файлов 
            string dwgNewFullPath = ""; 
            //получаем путь к TEMP 
            string tempPath = System.IO.Path.GetTempPath(); 
 
            //блокируем документ 
            using (DocumentLock doclock = doc.LockDocument()) 
            { 
                //пошла транзакция 
                using (Transaction tr = db.TransactionManager.StartTransaction()) 
                { 
                    { 
                        //получаем коллекцию Layout 
                        DBDictionary acLayouts = tr.GetObject(db.LayoutDictionaryId, OpenMode.ForRead) as DBDictionary; 
                        //получаем количество вкладок 
                        int layoutsCount = acLayouts.Count; 
                        LayoutManager acLayoutMgr; 
                        acLayoutMgr = LayoutManager.Current; 
                        //перебираем все вкладки 
                        foreach (DBDictionaryEntry item in acLayouts) 
                        { 
                            //имя лейаута 
                            String layoutName = item.Key; 
                            //получаем Лейаут 
                            Layout acLayout = tr.GetObject(item.Value, OpenMode.ForRead) as Layout; 
 
                            //если не модель то идем дальше 
                            if (acLayout.LayoutName.ToUpper() != "MODEL" && acLayout.LayoutName.ToUpper() != "МОДЕЛЬ") 
                            { 
                                //acLayoutMgr.CurrentLayout = acLayout.LayoutName; 
                                //активируем вкладку 
                                acLayoutMgr.CurrentLayout = acLayout.LayoutName; 
                                //получаем систменую переменную отображеня вывода в консоль 
                                Object CMDECHO = Application.GetSystemVariable("CMDECHO"); 
                                //запрещаем вывод в консоль 
                                Application.SetSystemVariable("CMDECHO", 0); 
                                //создаем путь к нашему новому файлу 
                                dwgNewFullPath = dwgPath + "" + dwgNameWoExt + "_[" + acLayout.LayoutName + "]_.dwg"; 
                                //сохраняем файл и экранируем слеши 
                                db.SaveAs(dwgNewFullPath.Replace("", "\\"), DwgVersion.AC1021); 
 
                                //////////////////**/////////////////////////////////////////////////*/*/////////////// 
                                Database db2 = new Database(false, true); 
                                db2.ReadDwgFile(dwgNewFullPath, FileOpenMode.OpenForReadAndWriteNoShare, false, ""); 
                                using (Transaction tr2 = db2.TransactionManager.StartTransaction()) 
                                { 
                                    db2.SaveAs(dwgNewFullPath.Replace("", "\\"), DwgVersion.Current); 
                                    tr2.Commit(); 
                                } 
                                //////////////////**/////////////////////////////////////////////////*/*/////////////// 
 
                                //восстанавливаем систменую переменную отображеня вывода в консоль 
                                Application.SetSystemVariable("CMDECHO", CMDECHO); 
                                //dpDelLayoutsFrom**DWG(dwgTempPath, dwgNewFullPath); 
                                ed.WriteMessage("Сохранено: " + dwgNewFullPath + "\n"); 
                            } 
                        } 
                    } 
                    tr.Commit(); 
                } 
            } 
        } 
    } 
}
При запуске на 2016 автокаде выдает сообщение :

Приложение не поддерживает оперативную (JIT)
отладку. Подробная информацию приводится в конце данного сообщения.

************** Текст исключения **************
Autodesk.AutoCAD.Runtime.Exception: eFileSharingViolation
в Autodesk.AutoCAD.DatabaseServices.Databa se.SaveAs(String fileName, DwgVersion version)
в ClassLibrary2.Class1.dpSaveLayouts2() в C:\Users\levanyukms\Documents\Visual Studio 2015\Projects\ClassLibrary2\ClassLibrary 2\Class1.cs:строка 85
в Autodesk.AutoCAD.Runtime.CommandClass.In vokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction)
в Autodesk.AutoCAD.Runtime.CommandClass.In vokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction)
в Autodesk.AutoCAD.Runtime.PerDocumentComm andClass.Invoke(MethodInfo mi, Boolean bLispFunction)
в Autodesk.AutoCAD.Runtime.CommandClass.Co mmandThunk.Invoke()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2016, 15:19
Ответы с готовыми решениями:

Ошибка при установки AutoCad 2016
Скачивал и устанавливал программу (AutoCad 2016) с официального сайта, согласно инструкции представленной здесь...

Ошибка при установки AutoCad 2016
Скачивал и устанавливал программу (AutoCad 2016) с официального сайта, согласно инструкции представленной здесь...

Ошибка LoadPicture при загрузке фото. AutoCad 2016
Здравствуйте! Делаю ГИС в Autocad 2016. Использую VBA для построения интерфейса. При попытке загрузить фото лезет такая ошибка. Фото...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2016, 15:19
Помогаю со студенческими работами здесь

Постоянные сбои при работе в AutoCAD 2014
Так как по корпоративным правилам есть только защитник Windows хочу проверить есть ли проблемы на ПК.

Ошибки из-за длины имен файлов при работе с AutoCad
Уважаемые форумчане, работаю программистом в проектном институте, пишем приложения в основном по работе с базами данных. В процессе...

Компьютер зависает при работе в браузере и Word 2016
Всем привет. Такая проблема. Компьютер зависает при работе в браузере или Microsoft Word 2016. Зависает намертво и не работает ни мышка...

AutoCAD 2016
как сделать так чтобы красные линии было паралельно так жэ как на рисунке какой функций надо воспользоваться

Аппаратная ошибка видео (Ошибка при работе с видеоустройствами привела к некорректной работе Windows).
Аппаратная ошибка видео. Последнее время во время игры Call of Duty: Modern Warfare 2 в мультиплеер, (между сменами карт, как только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru