Последние сообщения

Последние сообщения

Страницы: 1 ... 8 9 [10]
91
Попробуй оформить
Код - C# [Выбрать]
  1.         doc.Database.SaveAs(path, true, DwgVersion.Current, doc.Database.SecurityParameters);
  2.  
  3.         doc.CloseAndDiscard();
как отдельную команду с флагом Session, и запускать ее при помощи doc.SendStringToExecute после запуска _PURGE
92
AutoCAD .NET API / Re: Открытие - Очистка -Закрытие файла чертежа
« Последний ответ от AVait 23-02-2024, 14:25:01 »
Так и должно быть, так как SendStringToExecute выполняется ассинхронно, т.е. уже после завершения команды.

Возможно вы можете подсказать на примере как можно реализовать выполнение очистки файла от неиспользуемых объектов и стилей по принципу как работает стандартная команда "ОЧИСТИТЬ" в автокаде?
93
Приветствую. Попытался к коду Александра прикрутить окно, где есть текстбокс для имени фильтра слоёв, этот же текстбокс есть и Expression для фильтра.
Есть два затыка:
1.Expression не записывается, видимо, неверно передаю Expression?
2.Странное поведение диспетчера слоёв - фильтр создаётся, но отображается если закрыть-открыть диспетчер или если запустить команду, находясь внутри другого фильтра в диспетчере. Нужно вот здесь пробовать обновить диспетчер Autodesk.AutoCAD.Windows.Data.LayerFilterCollection?

<a href="http://adn-cis.org/sozdanie-i-dostup-k-informaczii-filtra-sloyov.html" title="Создание и доступ к информации фильтра слоёв">Создание и доступ к информации фильтра слоёв[/url]

Код - C# [Выбрать]
  1. public class CreateLayerFilMtd
  2.     {
  3.         public void CreateLayerFilter(Document doc, string MyLyFilter)
  4.         {
  5.             var db = doc.Database;
  6.             LayerFilterTree filterTree = db.LayerFilters;
  7.             LayerFilterCollection filters
  8.                                     = filterTree.Root.NestedFilters;
  9.             {
  10.                 using (var tr = db.TransactionManager.StartTransaction())
  11.                 {
  12.                     using (LayerFilter layerFilter = new LayerFilter())
  13.                     {
  14.                         // Создаём новый фильтр слоёв
  15.                         layerFilter.Name = MyLyFilter;
  16.                         filters.Add(layerFilter);
  17.                         // Устанавливаем изменённые фильтры для базы данных
  18.                         db.LayerFilters = filterTree;
  19.                         string myst;
  20.                         myst = string.Concat("NAME == \"*",MyLyFilter,"*\"");
  21.                         layerFilter.FilterExpression = myst;
  22.                     }
  23.                tr.Commit();
  24.                 }
  25.             }
  26.         }
  27.     }
  28.  
94
Так и должно быть, так как SendStringToExecute выполняется ассинхронно, т.е. уже после завершения команды.
95
AutoCAD .NET API / Открытие - Очистка -Закрытие файла чертежа
« Последний ответ от AVait 22-02-2024, 16:56:46 »
Всем привет!
Столкнулся с проблемой закрытия файла после его открытия, очистки и сохранения.
Если не закрывать файл, то все очищается и сохраняется и можно закрыть вручную, НО если использоваться любые методы программного закрытия файла (или не любые, просто использовал, что знаю), то файл остается таким как и до очистки а сохранение либо исчезает либо вовсе не происходит.

Код - C# [Выбрать]
  1. public void PurgeFileMethod(string path)
  2. {
  3.     using (ApplicationCivil.DocumentManager.MdiActiveDocument.LockDocument())
  4.     {
  5.         var doc = ApplicationCivil.DocumentManager.Add(path);
  6.         if (doc == null) return;
  7.  
  8.         doc.SendStringToExecute("-PURGE\n", true, false, true);
  9.         doc.SendStringToExecute("Все\n", true, false, true);
  10.         doc.SendStringToExecute("*\n", true, false, true);
  11.         doc.SendStringToExecute(\n", true, false, true);
  12.        
  13.         doc.Database.SaveAs(path, true, DwgVersion.Current, doc.Database.SecurityParameters);
  14.  
  15.         doc.CloseAndDiscard();
  16.     }
  17. }
  18.  

Возможно кто-то сталкивался с такой проблемой и сможет помочь, благодарю за помощь.
96
Спасибо Александр за помощь. А я что то зациклился на этой закрашенной замкнутой, остальные и не проверил.... Да мне как то и в голову не могло придти, что есть такое "чудо"
97
Но ведь это не обязательно - закрашенная замкнутая, это может быть и треугольник и интеграл и другой
Нет! Только закрашенная замкнутая! Я же не зря тебе привел список блоков, которые создались, когда я менял символ стрелки в диалоге редактирования стиля MLEADER. Т.е. для всех остальных создается блок и ссылка на него не null.
98
Да, я понял, что если null - то это встроенный символ. Но ведь это не обязательно - закрашенная замкнутая, это может быть и треугольник и интеграл и другой. Есть возможность получить имя этого встроенного символа?
99
Если расчленить (_EXPLODE) такой MLEADER (с ArrowSymbolId == null), то стрелка представляет из себя не блок, а примитив SOLID (ФИГУРА), а в других случаях - это вставка блока.
100
Скажите Александр, я могу получить имя этого объекта?
"Закрашенная замкнутая" это и есть "Closed Filled", о которой я писал выше. У него нет блока - видимо изображение генерируется автоматически самим AutoCAD без создания блока.
Страницы: 1 ... 8 9 [10]