URSA  Библиотека материалов  Архитекторам и проектиров­щикам
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Автоматическое создание "лишнего" скрытого видового экрана помимо нормального при активизации листа

Автоматическое создание "лишнего" скрытого видового экрана помимо нормального при активизации листа

Ответ
Поиск в этой теме
Непрочитано 06.10.2014, 12:53 #1
Автоматическое создание "лишнего" скрытого видового экрана помимо нормального при активизации листа
Libed
 
Регистрация: 06.10.2014
Сообщений: 2

Здравствуйте!
AutoCAD 2014 Русский.

Замечено следующее:
При активизации нового пространства листа в нём помимо одного видимого видового экрана создаётся ещё один - никак себя не обнаруживающий.
Различные утилиты, ssget стабильно выдают информацию об этом лишнем видовом экране. Просмотр его свойств через getpropertyvalue и через vlax-get-property не позволяет выявить никаких закономерностей, позволяющих надёжно отличить этот непонятный видовой экран от других нормальных - у него есть все свойства и их значения выглядят совершенно нормально.
Такой экран создаётся на всех листах, и получается, что на каждом листе на один видовой экран больше, чем есть на самом деле.
Однако этот автоматически создающийся видовой экран всё-таки чем-то отличается от обычного видового экрана. Команда bdlist не выдаёт информацию о нём.

Вопрос: Что это за скрытые лишние видовые экраны вообще, зачем они создаются, и как можно в лиспе надёжно определить, что за экран попал в набор - нормальный или такой вот странный? Информацию по данным вопросам в интернете не нашёл.

Спасибо.
Просмотров: 1908
 
Непрочитано 06.10.2014, 13:13
#2
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,098


То же самое есть и в bricsCAD, и в progeCAD. Подозреваю, что и в других версиях AutoCAD.
Я бы добавил: командой Ctrl-A оно не выделяется, а быстрым выбором - да. Отдельно от другого видового окна не удаляется, но если стереть основное - то из списка объектов исчезает и это непонятное окно. Но если создать видовое окно стандартными средствами, то и скрытое появляется вновь.
Может, это не с программой связано, а с форматом DWG?
Oleg T вне форума  
 
Автор темы   Непрочитано 06.10.2014, 13:56
#3
Libed


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


Возможно, что и с DWG. Но главным образом интересует - как его программно отличить от нормального видового экрана? Создаётся он на том же слое, с осмысленными геометрическими параметрами, нормальным наименованием, номером...
Libed вне форума  
 
Непрочитано 06.10.2014, 14:26
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 37,700


Вообще-то первый ("виртуальный") ВЭ не удаляется, даже если удалить имеющийся ВЭ (ACAD2014x64 + SP1):
Код:
[Выделить все]
(vla-get-count (vla-get-block (vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-acad-object)))))
вернет даже на пустом листе значение 1. Насколько я понимаю, ВЭ с минимальным хендлом и является виртуальным и обязательно присутствует на активном пространстве.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.10.2014, 14:37
#5
Сергей812


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


Первый ВЭ является собственно листом, Следующие - это рабочие ВЭ. В NetApi вроде по полю Number нормально различалось (все, что более 1-ого)

Код:
[Выделить все]
using (Transaction tr = db.TransactionManager.StartTransaction())
{
     Viewport vp = tr.GetObject(selRes.ObjectId, OpenMode.ForRead) as Viewport;
     int number = vp.Number;
     tr.Commit();
 }
Сергей812 вне форума  
 
Непрочитано 06.10.2014, 15:19
#6
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,098


Возможно, для чего-нибудь сгодится:
В набор с помощью ssget входит, Функцией entget определяется, entdel (как и erase) не действует:

Команда: (setq q (ssget "X" '((0 . "VIEWPORT"))))
<Selection set: 0000000017F3D8A0>
Команда: (sslength q)
2
Команда: (setq pr1 (ssname q 0))
<Entity name: 17c812a0>
Команда: (setq pr2 (ssname q 1))
<Entity name: 12ce6720>
Команда: (entget pr1)
((-1 . <Entity name: 17c812a0>) (0 . "VIEWPORT") (5 . "18D5") (330 . <Entity name: 17c757e0>) (100 . "AcDbEntity") (67 . 1) (410 . "Лист2") (8 . "0") (48 . 100.0) (100 . "AcDbViewport") (10 5.25 4.0 0.0) (40 . 8.4) (41 . 6.4) (68 . 2) (69 . 2) (12 21000.0 14850.0 0.0) (13 0.0 0.0 0.0) (14 10.0 10.0 0.0) (15 500.0 500.0 0.0) (16 0.0 0.0 1.0) (17 0.0 0.0 0.0) (42 . 50.0) (43 . 0.0) (44 . 0.0) (45 . 32640.0) (50 . 0.0) (51 . 0.0) (72 . 100) (90 . 819312) (1 . "") (281 . 0) (71 . 1) (74 . 0) (110 0.0 0.0 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (79 . 0) (146 . 0.0) (170 . 0) (61 . 5) (348 . <Entity name: 12cdb7a0>) (292 . 1) (282 . 1) (141 . 0.0) (142 . 0.0) (63 . 256) (361 . <Entity name: 17c763e0>))
Команда: (entget pr2)
((-1 . <Entity name: 12ce6720>) (0 . "VIEWPORT") (5 . "18D3") (330 . <Entity name: 17c757e0>) (100 . "AcDbEntity") (67 . 1) (410 . "Лист2") (8 . "0") (48 . 100.0) (100 . "AcDbViewport") (10 0.0 0.0 0.0) (40 . 23.751) (41 . 19.5565) (68 . 1) (69 . 1) (12 6.14567 6.90596 0.0) (13 0.0 0.0 0.0) (14 0.5 0.5 0.0) (15 0.5 0.5 0.0) (16 0.0 0.0 1.0) (17 0.0 0.0 0.0) (42 . 50.0) (43 . 0.0) (44 . 0.0) (45 . 19.5565) (50 . 0.0) (51 . 0.0) (72 . 100) (90 . 557168) (1 . "") (281 . 0) (71 . 1) (74 . 0) (110 0.0 0.0 0.0) (111 1.0 0.0 0.0) (112 0.0 1.0 0.0) (79 . 0) (146 . 0.0) (170 . 0) (61 . 5) (292 . 1) (282 . 1) (141 . 0.0) (142 . 0.0) (63 . 256) (361 . <Entity name: 17c76660>))
Команда: (entdel pr2)
nil
Команда: (entdel pr1)
<Entity name: 17c812a0>

Я так понял, что это pr2 и в его списке нет пары (348 . <Entity name: _________>)

Это - в брикскаде, в автокаде проверить не могу.

PS,
И да, хоть из списка в быстром выборе он у меня и исчез, но ssget его действительно находит (о чем было сказано выше, но я в тех делах не разбираюсь)).

Последний раз редактировалось Oleg T, 06.10.2014 в 15:36.
Oleg T вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Автоматическое создание "лишнего" скрытого видового экрана помимо нормального при активизации листа

CAD БИБЛИОТЕКА
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание видового экрана из прямоугольника в "Модели" в пространстве листа wluk1958 Программирование 1 10.08.2012 10:26
как выйти из видового экрана в пространстве листа Grigorii_K AutoCAD 9 24.03.2011 18:39