|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
24.01.2019, 19:57 | #1 | |
Отключение всех видовых экранов в файле
идущий по граблям
Регистрация: 26.05.2005
Сообщений: 5,095
|
||
Просмотров: 8421
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Тестируй. Я особо не проверял:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 24.01.2019 в 23:27. |
|||
|
||||
|
||||
|
||||
Регистрация: 05.11.2014
Сообщений: 982
|
|
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
проверил. Ошибок нет ("ловушка" срабатывает), эффекта тоже:
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я у себя тестировал - у меня срабатывало на всех листах и на всех ВЭ. Можешь выложить файл (содержимое можешь удалить, если оно секретно)?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
АК2018х64
при запуске из модели свойство включен - нет, по факту вэ включен запуск из листа крашит АК ----------------- аналогичная фигня, без краша, но еще и лист какой то левый создает ------------- СПДС CS умеет делать выбор по всему документу, т.е. выбрать ВЭ на разных листах, через свойства дает отключить... но по факту ВЭ не отключаются
__________________
Мастерская СПДС |
||||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
Содержимое файла, с которым работаю, не то чтобы секретно, просто оно не мое, а одобрит ли автор выкладывание в сеть - не хочу даже спрашивать.
Но я тестировал прогу из #2 даже на пустом файле, который создается из стандартного шаблона acadiso.dwt по команде _qnew. В нем нет ничего кроме двух листов с одним ВЭ на каждом. Запускал прогу из модели. Результат - такой как в #6. Вот только что попробовал запустить из листа в новом пустом файле (в некоторых из рабочих файлов так бы не получилось, там просто не зайти в лист). Акад молча "вывалился" Что-то не то с этим свойством Viewporton ... мистика какая-то ... |
|||
|
||||
Регистрация: 05.11.2014
Сообщений: 982
|
Всё верно, чтобы при включении всех ВЭ не ждать регенерацию листа в котором сидите. В листе есть много ВЭ они при включении регенятся и это много времени, а тут один вэ.
А что говорит из #3 ? |
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Мой вариант
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 28.01.2019 в 17:42. Причина: Добавлена установка LAYOUTREGENCTL=1 |
|||
|
||||
свойство выкл, но по факту ВЭ вкл (((
---------- те же яйца, только в профиль и без краша.. если запускать с листа, то на этом листе ВЭ гасит, на остальных выкл, но как на картинке выше. --------- ЗЫ у мну спортивный интерес.... ----- добавлено через 51 сек. ----- а вот если файл после выключения ВЭ сохранить закрыть открыть... все нормуль... реген не помогает... чет там не обновляет походу
__________________
Мастерская СПДС |
||||
|
||||
из ейного шаблона пустой файл... ВЭ сам наделаешь...
Выше писал, даж СПДС CS выбрать на всех листах ВЭ дает, и через свойства выключить, только вот по факту ВЭ не выключаются. ------- ХЕХ а если выбрать выключенные ВЭ на разных листах, то включить их получается... Дома на АК2016 еще проверю....
__________________
Мастерская СПДС |
||||
|
||||
Регистрация: 05.11.2014
Сообщений: 982
|
Ну так правильно всё.
Offtop: Вы не любите кошек ? Вы просто не умеете их готовить 1. Если открыть новый файл и ни разу не зайти в лист то он не инициализорован и нет там ничего, даже ВЭ нет, акад не воспринимает лист к обработке. 2. Лист должен быть хотя бы раз открыт. 3. Видео на работе нет, поэтому принтскрины для 2018. |
|||
|
||||
как думаешь я туда ВЭ добавил??
__________________
Мастерская СПДС |
||||
|
||||
попробуй после лиспа сохранить файл, не переходя в бумагу и снова его открыть после сохранения.
----- добавлено через ~4 мин. ----- понято Последний раз редактировалось koMon, 25.01.2019 в 15:17. |
||||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,095
|
|
|||
|
||||
короч докладываю
лисп от VVA на АК2016х64 работает четко на АК2018х64 хоть у ВЭ и становится свойство вкл в нет, но сами ВЭ не выключаются, сохранение чертежа не помогает. Помогает закрыть открыть файл. думаю с РЕВЕРСОМ будет аналогично, потом проверю. т.е. это АК2018 теперь так работает (((
__________________
Мастерская СПДС |
||||
|
||||
|
||||
|
||||
На работе 2018 без проблем.
Дома 2018 eng - глюки. Походу от сборки зависит.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
2018 нет.
Автокад 2019.1.2 x64 работает без проблем
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
тут возможно от видимости ленты и положения луны в сатурне
с 2018 похоже косяк, но других установленных у мну нет, а иные ставить лениво.. вроде разобрались.. было весело
__________________
Мастерская СПДС |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Попытка решения на C#: http://adn-cis.org/forum/index.php?t...36660#msg36660
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
чтото мне подсказывает, что коль в Ак 2016 и 2019 вышеприведенные лиспы работают, а в АК 2018 нет.. проблема не в коде..
то что видовых экранов больше на количество листов уже поняли вангую этот код на ак2018 ру даст тот же результат ----- добавлено через ~2 мин. ----- в принципе и на vb выбрать селсетом, а потом проходом по коллекции (исключая вэ листа) должно получиться, но не в ак2018((
__________________
Мастерская СПДС |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ну, свой код я как раз на 2018 и рисовал...
А я откуда знаю? У меня в C# познаний хватает только понять, что это именно C#, а не С++
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
каду это не нравится.. падает
__________________
Мастерская СПДС |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
угу.. акад нервно реагирует на попытки модификации ВЭ самого листа.
Offtop: Поэтому возможные варианты (по простоте реализации): 1. Добавить флаг Код:
2. Сохранить значение TileMode и принудительно переключиться в пространство модели на время обработки. 3. При значении системной переменной TileMode=0 получить ссылку на менеджер листов Код:
Последний раз редактировалось Сергей812, 26.01.2019 в 00:39. Причина: Неверно |
|||
|
||||
выше VVA лисп дал, там все чотко..
__________________
Мастерская СПДС |
||||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Сергей812, простите, но Вы ерунду написали. Приведенному по ссылке коду пофигу откуда его запускают, все ВЭ в любом случае будут выключены.
Даже если в момент запуска кода был выполнен вход в ВЭ. Тестировал Акад 2017х64 Win7 update: ХМ... там пары строчек не хватает... и из-за этих строчек код на 2016 и ниже нормально работать не будет... в любом случае коду пофигу откуда его стартуют Последний раз редактировалось Boxa, 25.01.2019 в 21:18. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
При попытке запуске вашего кода как из пространства модели, так из пространства листа - на строчке "vp.On = false;" вылетает исключение "eNotInPaperspace". А в других версиях акада и лисп работает, судя по ветке. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Действительно, немного куда то не туда занесло - приношу свои извинения) Самое парадоксальное, что ваш код заработал и на 2018 с какой то попытки - но не совсем корректно: ВЭ отключает - а содержимое продолжает стабильно показывать на всех вкладках листов, что были неактивны. И регенерация не помогает. Мой вариант кода вроде стабильнее работает:
Код:
Ну и прикрепляю сборку под 2018х64 для теста. Не забывайте в свойствах скаченного файла снимать "Файл был получен с другого компьютера..." - чтобы акад при загрузке не ругался. Команды: VP_On и VP_Off - включение/отключение показа содержимого ВЭ. ----- добавлено через ~1 ч. ----- 2018 работает очень своебразно и в .Net: 1. Если после открытие чертежа не переключишь хоть раз между лейаутами для регенерации (TileMode не прокатывает) - стабильно выдает исключение "eNotInPaperspace". 2. Визуально результат выключения ВЭ 100% виден при случае активного листа, как и на лиспе. На неактивных - результат или при повторном вызове команды, или при переоткрывании чертежа. Хотя порою и на неактивных листах отображается выключение ВЭ нормально - связи никакой не заметил. 3. А вот включает ВЭ на всех листах спокойно, как и выше писали - в СПДС. 4. И насколько заметил, при изменении количества ВЭ на листах начинает игнорировать команды моей надстройки на неактивных листах вплоть до переоткрытия чертежа. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Я же написал, что там пары строчек не хватает...
"eNotInPaperspace" лечится просто оберткой в try (на 2017 эта ошибка так же бывает... на разных компах) Для того, что бы визуально был виден результат для неактивных листов, нужно принудительно обновить графику каждого ВЭ (acdbEntUpd или что то подобное) В любом случае развивать эту тему в рамках раздела Lisp не очень хорошо, да и обсуждать там по большому счету нечего, т.к. приведенный по ссылке код, не более чем набросок, написанный просто для понимания и отработки основной идеи и понятно, что там много чего не хватает для полноценного приложения. Последний раз редактировалось Boxa, 26.01.2019 в 09:30. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
Цитата:
Ну так UpdateDisplay(); - This function updates the onscreen display to reflect any changes made to the viewport's view parameters (Эта функция обновляет экранный дисплей, отражая любые изменения параметров представления видового экрана.). Но здесь есть подводный камень - is not onscreen, then this function does nothing (не находится на экране, то эта функция ничего не делает). Поэтому только активный лист и обновляет. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Сергей812, есть разница между acdbEntUpd и UpdateDisplay, а по поводу eNotInPaperspace, ничего сказать не могу, на 2017 такую ошибку удалось сделать, но все решилось через try, после обертки ошибка перестала влиять на выполнение и ВЭ выключались.
ЗЫ. ИМХО, обсуждать в ветке LISP код на C#, к тому же размещенный не тут - неуважение к автору топика. Если есть желание продолжить копаться, рекомендую зарегистрироваться на том сайте и продолжить дискуссию там. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Offtop: Ну свой под катом выложил, только сам 2018 недоработан и не во всех локальных апдейтах подправлен, похоже) Понимаю, здесь плюсики в карму не идут) И посмотрите в отладчике на строчку кода " if (item.Key != Db.BlockTableRecord.ModelSpace)" - будет ли вообще когданибудь работать это условие..
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Offtop: я мальчик взрослый, меня эта фигня с плюсиками, ачивками и прочей фигней мало интересует.
Доберусь до компа со студией и посмотрю. |
|||
|
||||
Цитата:
Зависит от переменной LAYOUTREGENCTL. Если установить её значение в 0 (не кэшировать состояния вкладок), то такие "выключенные но по факту включенные" ВЭ не будут появляться. По умолчанию её значение в последних версиях - 2.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Создание листов и видовых экранов на них | Andrey_13 | Готовые программы | 423 | 03.04.2024 21:27 |
Как выключить "Показ блокированного/Display locked" на всех видовых экранах на всех листах сразу? | UnAtom | AutoCAD | 2 | 25.08.2017 16:38 |
Лисп для блокировки видовых экранов | posetitel | LISP | 5 | 28.04.2017 09:09 |
AutoCAD 2011. Проблема с заданием масштабов видовых экранов. | Demyan | AutoCAD | 1 | 28.11.2010 10:42 |
Как слой включить сразу во всех видовых экранах | ilka_t | AutoCAD | 4 | 26.04.2004 11:20 |