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

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

Страницы: 1 ... 3 4 [5] 6 7 ... 10
41
AutoLisp / VisualLISP и DCL / Re: значек диаметра в DCL
« Последний ответ от 1958 17-11-2025, 16:00:00 »
\\U+2300
42
AutoCAD .NET API / Re: Создание листов
« Последний ответ от igrik 11-11-2025, 09:29:38 »
Скорее всего это нормально, если чертеж насыщенный, то обновление видового экрана занимает больше времени. Плюс их много.

Предполагаю, что viewport.On = true; можно не выполнять на каждом видовом экране.
Да, вот эти лаги при насыщенном чертеже и хотелось бы обойти. Вот ищу способ.

viewport.On = falsе нерабочий способ. Он просто выключает показ отображаемого содержимого у viewport. И тогда пользователю нужно будет заходить в видовой экран и руками включать этот вьюпорт.

Походу Автокадовскими средствами эту проблему не решить, и придётся выдумывать велосипед. Я поэтому и задал вопрос, может кто такой уже и придумал

Извините, вам запрещён просмотр содержимого спойлеров.
43
AutoCAD .NET API / Re: Создание листов
« Последний ответ от Привалов Дмитрий 10-11-2025, 07:22:12 »
Вопрос - есть ли способы обойти задержку при обновлении/создании Viewport. Или это особенность Автокада?
Доброе утро!
Скорее всего это нормально, если чертеж насыщенный, то обновление видового экрана занимает больше времени. Плюс их много.

Предполагаю, что viewport.On = true; можно не выполнять на каждом видовом экране.
Достаточно выполнить его на текущем листе.

Далее пользователь при переходе на нужный ему лист вызовет обновление видового экрана.
44
AutoCAD .NET API / Re: Создание листов
« Последний ответ от igrik 08-11-2025, 13:36:00 »
Всем привет. Подниму тему (хотя возможно данный вопрос уже поднимался, но я не нашёл)
При большом объёме данных в чертеже, когда я произвожу массовое создание листов (и на них по одному вьюпорту (Viewport)), это самое создание происходит очень долго.
Ошибок создания нет, но вопрос именно в длительности всей операции, которая при кол-во листов от 100 и до 255 может достигать и 5 минут.

Участок кода прилагаю:
Код - vb.net [Выбрать]
  1. int viewportsCount = layout.GetViewports().Count;
  2. Viewport viewport;
  3. if (viewportsCount == 1)
  4. {
  5.     BlockTableRecord paperSpace =
  6.         (BlockTableRecord)tr.GetObject(layout.BlockTableRecordId, OpenMode.ForWrite) as BlockTableRecord;
  7.  
  8.     viewport = new Viewport();
  9.     viewport.SetDatabaseDefaults();
  10.     paperSpace.AppendEntity(viewport);
  11.     tr.AddNewlyCreatedDBObject(viewport, true);
  12.     viewport.On = true; // вот это заставляет вьюпорты обновляться и создаваться очень-очень долго
  13. }
  14. else
  15. {
  16.     /// ... другой код
  17. }
  18.  
Вопрос - есть ли способы обойти задержку при обновлении/создании Viewport. Или это особенность Автокада?
Такая особенность на всех мной испробованных версиях от 2014 до 2020 автокада.
Может уже на форуме решались такие вопросы.
45
При поиске из страницы топика нашелся только один ответ, почему-то.
Пользуйся этим поиском с выбором раздела или разделов и результаты в виде сообщений, а не тем.

46
AutoCAD .NET API / Re: Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 30-10-2025, 16:07:46 »
И что-то поиск у тебя плохо работает. Только в разделе .NET у меня нашлось 104 сообщения с AcadApplication.
Как правило ищу в гугле, а не через поисковик форма. А с ним действительно не сразу понял, как он работает. При поиске из страницы топика нашелся только один ответ, почему-то. А если выйти из темы, то норм.
Да и в целом, когда сталкиваешься с проблемой еще плохо понимаешь, какие ключевые слова нужно использовать.
Когда целый день проковырялся, выяснил проблему, тогда уже понимаешь, почему тип AcadApplication является ключевым:)
А так - куча разных вариантов (учитывая левые придумки AI-чатов) и без контекста или прямого пояснения не понятно, как точно должно быть.
В DevGuide так же про взаимодействие с COM только вскользь и без подробностей.
47
И еще, для общего развития.. Способ через Marshal.GetActiveObject, выходит, используется только в случаях получения Application из других приложений?
Не только. В данном случае это лишнее внутри AutoCAD.
И что-то поиск у тебя плохо работает. Только в разделе .NET у меня нашлось 104 сообщения с AcadApplication.
48
AutoCAD .NET API / Re: Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 29-10-2025, 20:14:00 »
Как раз поиском трудно найти что-то дельное и относящееся к проблеме. К примеру поиск по "AcadApplication" дает ссылку на единственный пост:



Я кстати встречал этот вариант в другом источнике, но подумал, что получу им объект API, а не COM и не стал пробовать.
Правильно ли я понимаю, что изнутри автокада правильный и единственный способ именно такой:

AcadApplication COMApp = Application.AcadApplication as AcadApplication;
И еще, для общего развития.. Способ через Marshal.GetActiveObject, выходит, используется только в случаях получения Application из других приложений?
49
На этом форуме и конкретно в этом разделе есть множество примеров получения и использования AcadApplication. Воспользуйся поиском.
50
AutoCAD .NET API / Re: Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 29-10-2025, 19:58:20 »
Да нет, в разных источниках находил. В т.ч. вполне авторитетных)):

Страницы: 1 ... 3 4 [5] 6 7 ... 10