Заблокировать видовой экран для редактирования
Реклама i
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Заблокировать видовой экран для редактирования

Заблокировать видовой экран для редактирования

Ответ
Поиск в этой теме
Непрочитано 11.10.2024, 09:59 #1
Заблокировать видовой экран для редактирования
posetitel
 
Регистрация: 16.10.2013
Сообщений: 395

Товарищи, еще вопрос.
Возможно ли заблокировать видовой экран, чтобы из листа в него нельзя было зайти?
У меня на листе наложение двух видовых экранов, и вот когда кликаю в месте наложения хочу чтобы заходилось только в один, а второй был недоступен для проваливания через него в модель.
Приложил пример. В нем когда кликаю в месте с фразой "часть текста", открывается редактирование видового экрана с первой частью текста модели, а я хочу, чтобы этот видовой экран было заморожен для редактирования и открывался только видовой экран с фразой "часть текста вторая"

Вложения
Тип файла: dwg
DWG 2013
На форум.dwg (36.6 Кб, 30 просмотров)


Последний раз редактировалось posetitel, 11.10.2024 в 10:06.
Просмотров: 2592
 
Непрочитано 11.10.2024, 10:55
1 | #2
name02


 
Регистрация: 10.01.2020
Сообщений: 420


Заблокировать не получится.
Как вариант можно использовать сочетание клавиш Ctrl+R - для цикличного переключения между видовыми экранами видимыми в пределах экрана.
Заходишь в ВЭ и жмешь Ctrl+R - переключаешься на другой ВЭ
name02 вне форума  
 
Непрочитано 11.10.2024, 11:49
#3
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,924
<phrase 1=


Сделать многоугольный видовой экран (и обойти вырезом второй)
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 11.10.2024, 13:12
1 | #4
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


Цитата:
Сообщение от zenon Посмотреть сообщение
Сделать многоугольный видовой экран (и обойти вырезом второй)
Не, не вариант. В примере упрощенно, а в реальном чертеже один экран должен быть внутри другого.
posetitel вне форума  
 
Непрочитано 11.10.2024, 14:32
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от posetitel Посмотреть сообщение
Не, не вариант. В примере упрощенно, а в реальном чертеже один экран должен быть внутри другого.
а смысл? Если оба ВЭ показывают в одну область модели, то внутренний лишний. А если в разные области - на экране будет наложение объектов (если, конечно, не пытаетесь совмещать несколько разных областей модели). Есть многоугольные ВЭ, как писали выше, для формирования мозаики любой нужной конфигурации из ВЭ на листе.
Сергей812 вне форума  
 
Автор темы   Непрочитано 11.10.2024, 14:41
#6
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а смысл? Если оба ВЭ показывают в одну область модели, то внутренний лишний. А если в разные области - на экране будет наложение объектов (если, конечно, не пытаетесь совмещать несколько разных областей модели). Есть многоугольные ВЭ, как писали выше, для формирования мозаики любой нужной конфигурации из ВЭ на листе.
Именно это и пытаюсь сделать.
posetitel вне форума  
 
Непрочитано 11.10.2024, 14:43
1 | #7
name02


 
Регистрация: 10.01.2020
Сообщений: 420


Если тебе не удобно каждый раз "перетыкивать" в нужный ВЭ, то самое простое все-таки использовать Ctrl+R
name02 вне форума  
 
Непрочитано 11.10.2024, 14:44
1 | #8
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,414


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а смысл?
Да всякое бывает, например, отображение разных слоев в разных наложенных видовых экранах.
AlexCondor вне форума  
 
Непрочитано 11.10.2024, 14:51
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от AlexCondor Посмотреть сообщение
Да всякое бывает, например, отображение разных слоев в разных наложенных видовых экранах.
настройки отображения разных слоев из разных областей пространства модели в одной области листа - очень изощрённая организация работы, имхо)
Сергей812 вне форума  
 
Автор темы   Непрочитано 11.10.2024, 15:48
#10
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


Цитата:
Сообщение от name02 Посмотреть сообщение
Если тебе не удобно каждый раз "перетыкивать" в нужный ВЭ, то самое простое все-таки использовать Ctrl+R
Ага, пока это самый дельный совет. Я там прожал кнопку спасибо под сообщением.
posetitel вне форума  
 
Непрочитано 11.10.2024, 15:58
#11
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,814


а если лиспом входить в вэ по его выбору?
__________________
K Lisp
koMon вне форума  
 
Автор темы   Непрочитано 11.10.2024, 16:10
#12
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


У меня получается видовой внутри видового.
Идеально бы заморозить внешний видовой, а входить во внутренний просто по двойному клику.
Наверное, горячая клавиша переключения экранов по удобству сравнима с лиспом по выбору рабочего видового экрана.
posetitel вне форума  
 
Непрочитано 11.10.2024, 16:40
#13
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,814


ну границы вэ же видны. или они будут в выключенном слое?
__________________
K Lisp
koMon вне форума  
 
Автор темы   Непрочитано 11.10.2024, 16:46
#14
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


Границы видны. Внутренний видовой экран в рамках извращения сделал многоугольником с вылетом луча этого многоугольника за внешний видовой и тогда точно можно попасть в нужный для редактирования, но приходится по листу туда-сюда гулять.
Когда пользуюсь сочетанием Ctrl+R, то не задумываясь сразу проваливаюсь в видовой экран, а какой сейчас экран активен понимаю по тому, какой объект редактируется и если это не то, что нужно, нажимаю Ctrl+R.
posetitel вне форума  
 
Непрочитано 15.10.2024, 10:46
#15
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


Цитата:
Сообщение от posetitel Посмотреть сообщение
Товарищи, еще вопрос.
Нечто подобное я решал когда-то с пом. полей с атрибутами и непечатаемых символов
VitalyAF вне форума  
 
Автор темы   Непрочитано 15.10.2024, 15:33
#16
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


не уловил идею.
это про блокировку видового экрана с помощью полей с атрибутами и непечатаемых символов?
posetitel вне форума  
 
Непрочитано 15.10.2024, 16:29
#17
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


штатных средств блокировки выбора ВЭ нет. Но что мешает разделить, например - по слоям, передние и задние видовые экраны, и в которые не нужно входить - блокировать. Даже тут на форуме есть лиспы групповой блокировки ВЭ, насколько помню.

И тогда останется только одна проблема - как передать клик мышью с верхнего не редактируемого (заблокированного) ВЭ на лежащий под ним рабочий ВЭ. Опять же, штатных средств нет, только программно.

И пока только три мысли навскидку:
1. Повеситься на обработчик события изменения системной переменной CVPORT, и анализировать ВЭ на текущем пространстве - ища по координатам парные вложенные ВЭ. А потом в том же обработчике события Idle задавать нужное значение CVPORT. Но это нужно проверять - насколько будет работоспособно в реале.
2. Повеситься на событие Application.BeforeDoubleClick (вроде так называется) и также анализировать CVPORT. И поскольку там разные обработчики событий - поэтому можно сразу попробовать анализировать и задавать нужный ВЭ.
3. Повеситься на главный поток событий акада через функцию acedRegisterFilterWinMsg и рулить всем процессом напрямую через WinApi. Но это слишком сложный вариант для такой простой задачи, имхо)
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.10.2024, 16:46
#18
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
штатных средств блокировки выбора ВЭ нет. Но что мешает разделить, например - по слоям, передние и задние видовые экраны, и в которые не нужно входить - блокировать. Даже тут на форуме есть лиспы групповой блокировки ВЭ, насколько помню.
Не получилось. Это первым делом проверял. Ненужный видовой экран помещал в отдельный слой, слой на листе и замораживал, и блокировал, и отключал - не помогает, все равно при двойном клике проваливаюсь через него в модель.
Но раз штатных средств нет, штош, придется мириться с этим
posetitel вне форума  
 
Непрочитано 15.10.2024, 17:07
#19
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от posetitel Посмотреть сообщение
, все равно при двойном клике проваливаюсь через него в модель.
блокировка ВЭ не дает изменять текущую "привязку" ВЭ к пространству модели, от вхождения в пространство модели внутри ВЭ она никак не защищает.

А вот если добавить немного кода

Код:
[Выделить все]
 
// Windows
using System;

// AutoCAD
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;


namespace TestVPAutoSelect02
{

    public class Main : IExtensionApplication
    {
        private static short _SetNumberVP = 0;


        public void Initialize()
        {
            Application.SystemVariableChanged += App_SystemVariableChanged;
            Application.Idle += App_Idle;
        }


        public void Terminate() {}


        private void App_Idle(object sender, EventArgs e)
        {
            if (_SetNumberVP != 0)
            {
                Document lDoc = Application.DocumentManager.MdiActiveDocument;
                using (DocumentLock lDL = lDoc.LockDocument())
                {
                    try
                    {
                        Application.SystemVariableChanged -= App_SystemVariableChanged;
                        lDoc.Editor.SwitchToModelSpace();
                        Application.SetSystemVariable("CVPORT", _SetNumberVP);
                        _SetNumberVP = 0;
                    }
                    finally
                    {
                        Application.SystemVariableChanged += App_SystemVariableChanged;
                    }
                    
                }
            }
        }


        private void App_SystemVariableChanged(object sender, Autodesk.AutoCAD.ApplicationServices.SystemVariableChangedEventArgs e)
        {
            if (e.Name.Equals("CVPORT"))
            {
                _SetNumberVP = 0;
                short lCurrNumberVP = (short)Application.GetSystemVariable("CVPORT");
                if (lCurrNumberVP == 1) return;
                Document lDoc = Application.DocumentManager.MdiActiveDocument;
                using (DocumentLock lDL = lDoc.LockDocument())
                {
                    LayoutManager lLM = LayoutManager.Current;
                    using (Transaction lTr = lDoc.TransactionManager.StartTransaction())
                    {
                        Layout lLayout = lTr.GetObject(lLM.GetLayoutId(lLM.CurrentLayout), OpenMode.ForRead) as Layout;
                        ObjectIdCollection lVPIds = lLayout.GetViewports();
                        bool lIsLocked = false;
                        foreach (ObjectId lVPId in lVPIds)
                        {
                            Viewport lVP = lTr.GetObject(lVPId, OpenMode.ForRead) as Viewport;
                            if ((lVP.Number == lCurrNumberVP) && lVP.Locked)
                            {
                                lIsLocked = true;
                                break;
                            }
                        }
                        if (lIsLocked)
                        {
                            foreach (ObjectId lVPId in lVPIds)
                            {
                                Viewport lVP = lTr.GetObject(lVPId, OpenMode.ForRead) as Viewport;
                                if ((lVP.Number != lCurrNumberVP) && (lVP.Number > 1) && (!lVP.Locked))
                                {
                                    _SetNumberVP = (short)lVP.Number;
                                    break;
                                }
                            }
                        }
                        lTr.Commit();
                    }
                }
            }
        }
        
    }

}

то все становится совершенно по другому) Это я попробовал по быстрому свой первый вариант, для упрощения на листе всего два ВЭ - и один из них заблокирован. В заблокированный ВЭ не попасть (хотя просто выделить его можно, но войти в него нельзя - сразу переключает на другой разблокированный ВЭ).

Последний раз редактировалось Сергей812, 15.10.2024 в 19:34.
Сергей812 вне форума  
 
Непрочитано 16.10.2024, 12:27
#20
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


Цитата:
Сообщение от posetitel Посмотреть сообщение
В примере упрощенно...
Цитата:
Сообщение от posetitel Посмотреть сообщение
не уловил идею.
это про блокировку видового экрана с помощью полей с атрибутами и непечатаемых символов?
Там д.б. текст или графика? Всё в тумане...!
С текстом одни приёмы работы с графикой другие...
Если графика, то есть именованные виды... известно?
Из них можно построить ВЭ, пусть пересекаются как хошь... ставишь нужный вид (а не слой!!!) активным, правишь...
Похоже на работу в акаде с печатной многослойной платой...
Слои плюс фильтры и именованные виды.

Последний раз редактировалось VitalyAF, 16.10.2024 в 12:35.
VitalyAF вне форума  
 
Автор темы   Непрочитано 16.10.2024, 12:51
#21
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


И графика, и текст.
Есть неизменяемая часть (например, подложка плана, но это не подложка, не надо советовать использовать подложку), которую один раз сделал и на все чертежи в листах одним видовым экраном размножил, а есть каждый раз новшевства, которые для каждого листа свои. Эти новшества раскиданы по модели и видовыми экранами на листах я их совмещаю с неизменяемой частью.
Именованные виды - это больше про работу в модели, насколько понимаю, но не в листах в видовых экранах.
Коллеги выше объяснили, что как я хочу, в автокаде сделать штатными средствами нельзя.

----- добавлено через ~25 мин. -----
Добавил.
Думаю, может оптимальным вариантом будет переключение видовых экранов не двумя горячими клавишами, а одной клавишей, на которой висит либо команда переключения на лиспе, либо как-нибудь перебить две горячие клавиши на одну, либо макрос
posetitel вне форума  
 
Автор темы   Непрочитано 16.10.2024, 14:07
#22
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


не, такой вариант не подойдет, у меня изменяемые части раскиданы по модели, а здесь в одном месте, просто слоями разделены.
posetitel вне форума  
 
Непрочитано 16.10.2024, 14:09
#23
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 765


Как вариант, либо через свойства, либо через команду (_VPEDIT) отключить видовой экран. Либо собрать макрокоманду (или лисп) отключения видовых экранов на конкретном слое.
AMDen вне форума  
 
Непрочитано 16.10.2024, 14:21
#24
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


Цитата:
Сообщение от posetitel Посмотреть сообщение
не, такой вариант не подойдет
...изменяемые части в разных местах... Хоть сто порций, представь, что это одна из частей, ткнул на неё, исправил... всё просто!
Мало того, что есть заготовки, как в примере текст, так можно ещё и редактировать их. Подумай хорошенько...
PS ... и это могут быть поля, на случай, если много одинаковых значений поменять надо
PS Работа в модели через ВЭ - та же модель, только заранее всё подготовлено.

Последний раз редактировалось VitalyAF, 16.10.2024 в 15:11.
VitalyAF вне форума  
 
Непрочитано 16.10.2024, 14:35
#25
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


выше я показал пример, как автоматически блокировать вхождение в пространство моделей ВЭ. Принцип очень простой - пока нет "активных" ВЭ, то системная переменная CVPORT = 1 - это пространство самого листа. Как только входите в пространство модели какого либо ВЭ на листе, то эта переменная CVPORT принимает значение номера этого активного ВЭ. И если этот ВЭ заблокирован, то ищется первый незаблокированный ВЭ с номером > 1 (вот здесь уже надо доработать критерии выбора ВЭ) и обновляем значение системной переменной CVPORT. Остальное делает сам акад. Тогда что нажимаете внизу на вкладке переключатель Лист-Модель, что двойной клик по заблокированному - в редактирование пространства модели войдете только в незаблокированном ВЭ. Проще уж некуда. Если придумали какую изощренную организацию ВЭ-матрешек...
Сергей812 вне форума  
 
Автор темы   Непрочитано 16.10.2024, 14:46
#26
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


Ребята, я вас не понимаю, объясните подробнее.
VitalyAF, приложил еще один файл с примером, как на нем реализовать предлагаемое?
AMDen, Акад пишет, что команда VPEDIT не найдена.
Сергей812, наверное, так тоже можно, я не силен в работе с переменными, хотел решения попроще, но спасибо за совет.
Вложения
Тип файла: dwg
DWG 2013
На форум (1).dwg (40.6 Кб, 18 просмотров)

Последний раз редактировалось posetitel, 16.10.2024 в 14:53.
posetitel вне форума  
 
Непрочитано 16.10.2024, 15:02
#27
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 765


Цитата:
Сообщение от posetitel Посмотреть сообщение
AMDen, Акад пишет, что команда VPEDIT не найдена.
_VPEDIT
или ВЭРЕД
AMDen вне форума  
 
Непрочитано 16.10.2024, 15:20
#28
VitalyAF


 
Регистрация: 19.07.2005
Россия
Сообщений: 3,288


Цитата:
Сообщение от posetitel Посмотреть сообщение
как на нем реализовать предлагаемое?
Какие условия? Или их нет?
VitalyAF вне форума  
 
Автор темы   Непрочитано 16.10.2024, 15:34
#29
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


AMDen, у меня в 20-ом нет таких команд
VitalyAF, да вроде нет никаких условий, просто зашел по двойному нажатию ЛКМ в ВЭ, который внутри и который показывает изменяемый элемент там изменил и вышел. Важно, чтобы не проваливался во внешний ВЭ.
posetitel вне форума  
 
Непрочитано 16.10.2024, 15:47
#30
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,414


Цитата:
Сообщение от AMDen Посмотреть сообщение
_VPEDIT
или ВЭРЕД
Да не было вроде такой команды в голом AutoCAD'е
AlexCondor вне форума  
 
Непрочитано 16.10.2024, 15:53
#31
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 765


Цитата:
Сообщение от AlexCondor Посмотреть сообщение
Да не было вроде такой команды в голом AutoCAD'е
в 2024 есть.

----- добавлено через ~2 мин. -----
В старых версиях автокада команды нет, хотя функция в свойствах есть.
AMDen вне форума  
 
Непрочитано 16.10.2024, 16:03
#32
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,414


Странно!
Миниатюры
Нажмите на изображение для увеличения
Название: Screenshot 2024-10-16 160222.png
Просмотров: 24
Размер:	15.9 Кб
ID:	265120  
AlexCondor вне форума  
 
Непрочитано 16.10.2024, 16:03
#33
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 765


Вроде в старых подойдёт _mview.
AMDen вне форума  
 
Автор темы   Непрочитано 16.10.2024, 16:10
#34
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


_mview отключает показ содержимого видового экрана. Да, блокируется возможность в него заходить и что-то там делать, но и отображение пропадает, а это не совсем то, что надо было.
posetitel вне форума  
 
Непрочитано 16.10.2024, 16:13
#35
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,414


MVIEW может его или совсем выключить или заблокировать, что не исключает возможность в него войти.

P.S. Особенно бесит, что AutoCAD запоминает какой видовой экран открывался последним. Если клацать на пересекающуюся область, инициализируется тот экран, который открывался в предыдущий раз. Порядка выше-ниже нет.

Последний раз редактировалось AlexCondor, 16.10.2024 в 16:19.
AlexCondor вне форума  
 
Автор темы   Непрочитано 16.10.2024, 16:19
#36
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


Скажем так:
выключает отображение и возможность зайти (провалиться) в видовой экран,
блокирует вид на видовом экране, но не возможность туда провалиться
(пока писал, предыдущее сообщение отредактировали и стало неактуально)
posetitel вне форума  
 
Непрочитано 16.10.2024, 16:21
#37
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 765


Цитата:
Сообщение от posetitel Посмотреть сообщение
выключает отображение и возможность зайти (провалиться) в видовой экран,
А зачем нужно отображение при редактировании другого видового экрана?
AMDen вне форума  
 
Автор темы   Непрочитано 16.10.2024, 16:24
#38
posetitel


 
Регистрация: 16.10.2013
Сообщений: 395


ну иногда так удобнее, когда видишь, что вокруг.
хотя как вариант решения тоже вполне может пригодиться.
posetitel вне форума  
 
Непрочитано 16.10.2024, 16:26
#39
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,414


Т.е. сначала один экран надо выключить, потом можно зайти в другой. А после снова включать первый. Как бы много телодвижений получается...
AlexCondor вне форума  
 
Непрочитано 16.10.2024, 16:37
#40
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от AMDen Посмотреть сообщение
А зачем нужно отображение при редактировании другого видового экрана?
ТС собирает путем наложения видовых экранов с разных областей моделей единое конечное представление на листе. Причем этот даже не стыковочные, а именно суперпозиция из разных областей моделей. До такого варианта использования ВЭ Аутодекс просто не догадался, видимо)
Сергей812 вне форума  
 
Непрочитано 16.10.2024, 16:42
#41
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 765


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а именно суперпозиция из разных областей моделей
Offtop: Для этого есть слои и внешние ссылки в моделе, ну да ладно. )
AMDen вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Заблокировать видовой экран для редактирования



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заблокировать видовой экран в пространстве модели kp+ AutoCAD 7 07.03.2024 22:11
Как мгновенно преобразовать стандартный прямоугольный видовой экран в многоугольный? San-Miguel AutoCAD 2 23.12.2019 12:54
Как перенести видовой экран так, чтобы область, которую он показывает тоже перенеслась? Oasinirat AutoCAD 5 14.03.2019 15:46
После редактирования блока экран возвращается в начало координат Moris AutoCAD 4 20.11.2018 12:19
Как войти в видовой экран на видовом экране? Autocad 2016 mindchamber AutoCAD 6 30.07.2018 20:16