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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли выбрать объект модели из листа не активируя видовой экран?

Можно ли выбрать объект модели из листа не активируя видовой экран?

Ответ
Поиск в этой теме
Непрочитано 20.06.2014, 13:15 #1
Можно ли выбрать объект модели из листа не активируя видовой экран?
mkung
 
RUSSIA
Регистрация: 05.09.2007
Сообщений: 165

Задача:
В пространстве листа нужно сформировать аннотацию к объекту, расположенному в пространстве модели.
Аннотация формируется программно на основании свойств объекта.
Но для работы (entsel) требуется активировать модель в видовом экране, что не очень удобно (или очень неудобно).
Вопрос:
Можно ли получить идентификатор объекта модели указанием на него без предварительной активации модели в видовом экране мышью и т.д.?
Пример - как хотелоь бы:
Простановка в пространстве листа радиуса дуги, расположенной в пространстве модели.

Заранее благодарен.
Просмотров: 7597
 
Непрочитано 20.06.2014, 15:06
#2
Сергей Богатов


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


1. Чего делать если несколько видовых экранов(ВЭ)?
2. Чего будет с аннотацией если дуга из модели исчезнет, сдвинется вне ВЭ?

Offtop: Не совсем в тему, но:
ЯТД, что аннотации, относящиеся к элементам в модели, располагать в пространстве листа(ПЛ) - плохая идея. Особенно то что может изменить масштаб(размеры, обозначения и т.п). А в ПЛ располагать только элементы оформления листа (рамка, основная надпись, общие указания, ссылки на др. листы и т.п.)
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 20.06.2014, 15:07
#3
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Можно - но это не просто - там много "возни". Готовых API (кроме обертки командных методов) для этого я не знаю, то есть в рукопашную определяете куда тыкнули на листе и что под ним находится...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 20.06.2014, 22:42
#4
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
1. Чего делать если несколько видовых экранов(ВЭ)?
2. Чего будет с аннотацией если дуга из модели исчезнет, сдвинется вне ВЭ?

Offtop: Не совсем в тему, но:
ЯТД, что аннотации, относящиеся к элементам в модели, располагать в пространстве листа(ПЛ) - плохая идея. Особенно то что может изменить масштаб(размеры, обозначения и т.п). А в ПЛ располагать только элементы оформления листа (рамка, основная надпись, общие указания, ссылки на др. листы и т.п.)
Давайте не будем отклоняться от темы. Вопрос вполне конкретный и к технологии черчения отношения не имеет.

----- добавлено через ~7 мин. -----
Цитата:
Сообщение от Дима_ Посмотреть сообщение
Можно - но это не просто - там много "возни". Готовых API (кроме обертки командных методов) для этого я не знаю, то есть в рукопашную определяете куда тыкнули на листе и что под ним находится...
Хорошо бы кто-нибудь из гуру написал такую процедуру - вещь полезная по-моему.
mkung вне форума  
 
Непрочитано 20.06.2014, 22:52
#5
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,408
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Можно - но это не просто - там много "возни". Готовых API (кроме обертки командных методов) для этого я не знаю, то есть в рукопашную определяете куда тыкнули на листе и что под ним находится...
Есть API (функция acedNEntSelPEx), но использовать ее можно или в ObjectARX (http://adndevblog.typepad.com/autoca...objectarx.html) или в .NET через P/Invoke (http://www.theswamp.org/index.php?to...5716#msg345716)
Александр Ривилис вне форума  
 
Непрочитано 21.06.2014, 00:21
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


То Александр - я здесь по умолчание считаю, что говорят про лисп, но за наводку на айпи все равно спасибо.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 21.06.2014, 00:56
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Можно - но это не просто - там много "возни". Готовых API (кроме обертки командных методов) для этого я не знаю, то есть в рукопашную определяете куда тыкнули на листе и что под ним находится...
О, печаль, а мне как раз это и надо...
gomer вне форума  
 
Непрочитано 21.06.2014, 20:23
#8
znatok


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


Цитата:
Сообщение от mkung Посмотреть сообщение
Задача:
Можно ли выбрать объект модели из листа не активируя видовой экран?
Когда заблокировал сам видовой экран и щёлкнул внутри экрана, первым делом проверил колёсиком изменять масштаб, в данном случае масштаб не изменялся, потом стал щёлкать и удалять элементы на плане (на чертеже), а выйти из этого режима - щёлкнуть мышкой вне видового экрана.
znatok вне форума  
 
Автор темы   Непрочитано 22.06.2014, 23:03
#9
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Есть API (функция acedNEntSelPEx), но использовать ее можно или в ObjectARX (http://adndevblog.typepad.com/autoca...objectarx.html) или в .NET через P/Invoke (http://www.theswamp.org/index.php?to...5716#msg345716)
А нельзя как-нибудь попроще?
Например:
1. Активировать программно пространство модели в видовом экране (по щелчку мыши).
2. Выбрать объект по (entsel).
3. Вернуться программно в пространство листа.
Конкретно интересует реализация пунктов 1 и 3.
Спасибо.

Последний раз редактировалось mkung, 23.06.2014 в 04:29.
mkung вне форума  
 
Непрочитано 23.06.2014, 07:22
#10
skkkk


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


Устроят командные методы?
Цитата:
Сообщение от mkung Посмотреть сообщение
1. Активировать программно пространство модели в видовом экране (по щелчку мыши)
Если видовой экран в текущем листе один, то можно и без щелчка:
Код:
[Выделить все]
 (vl-cmdf "_.MSPACE")
Цитата:
Сообщение от mkung Посмотреть сообщение
3. Вернуться программно в пространство листа.
Код:
[Выделить все]
 (vl-cmdf "_.PSPACE")
----- добавлено через ~21 мин. -----
Только думается мне, что во втором пункте помимо (entsel) нужно будет сразу и отрисовывать радиус дуги (если брать пример из #1), а потом переносить его в лист командой _CHSPASE

----- добавлено через ~31 мин. -----
А третий пункт в таком случае отпадет сам собой, поскольку по завершении команды _CHSPASE активируется пространство листа.
skkkk вне форума  
 
Автор темы   Непрочитано 23.06.2014, 11:16
#11
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165


Цитата:
Сообщение от skkkk Посмотреть сообщение
Если видовой экран в текущем листе один, то можно и без щелчка:

----- добавлено через ~21 мин. -----
Только думается мне, что во втором пункте помимо (entsel) нужно будет сразу и отрисовывать радиус дуги (если брать пример из #1), а потом переносить его в лист командой _CHSPASE

----- добавлено через ~31 мин. -----
А третий пункт в таком случае отпадет сам собой, поскольку по завершении команды _CHSPASE активируется пространство листа.
Проблема как раз в том, что видовых экранов как правило несколько.
А аннотацию надо нанести на один.
Именно как и предлагаете - я и написал: захожу в модель, выбираю, отрисовываю, переношу в лист.
Все работает чудесно пока видовой экран один...
Аннотативный объект не удается перенести корректно без установки "ANNOALLVISIBLE" 1.
А если видовых экранов несколько, да с отображением данного объекта в разных масштабах - начинается полный абзац (в том числе и с CHSPASE).
Так что, чтобы не мудрить, хотелось бы получить идентификатор объекта и дальше отрисовать все обычными стилями в листе.
Как-то так...
mkung вне форума  
 
Непрочитано 23.06.2014, 14:29
#12
skkkk


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


Цитата:
Сообщение от mkung Посмотреть сообщение
Проблема как раз в том, что видовых экранов как правило несколько.
А аннотацию надо нанести на один.
Перед продолжением поиска решений считаю себя должным сросить: "А не изобретаем ли мы велосипед?" Я согласен с Сергеем Богатовым в #2, что лучше бы чертить все в модели. И если единственная цель данной темы - создать аннотацию в одном видовом экране, чтоб при этом в другом ее не было, то есть стандартная возможность отключить видимость определенных слоев на определенных видовых экранах. Если цель в другом, то можно попробовать сделать что-то, мысли по поводу того, как активировать видовой экран под курсором, есть. Но корректность работы в разных файлах, с разными значениями множества влияющих переменных и прочих неявно видимых условий - под вопросом.

----- добавлено через ~9 мин. -----
Цитата:
Сообщение от mkung Посмотреть сообщение
Так что, чтобы не мудрить, хотелось бы получить идентификатор объекта и дальше отрисовать все обычными стилями в листе.
Это как раз и есть "мудрить", на мой взгляд. Можно, конечно, это осуществить vla-функциями, предварительно транслировав координаты нужных точек из модели в лист функцией (trans), но пока неясно, как это будет работать при нескольких видовых экранах.
skkkk вне форума  
 
Автор темы   Непрочитано 24.06.2014, 07:55
#13
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165


Цитата:
Сообщение от skkkk Посмотреть сообщение
Перед продолжением поиска решений считаю себя должным сросить: "А не изобретаем ли мы велосипед?" Я согласен с Сергеем Богатовым в #2, что лучше бы чертить все в модели. И если единственная цель данной темы - создать аннотацию в одном видовом экране, чтоб при этом в другом ее не было, то есть стандартная возможность отключить видимость определенных слоев на определенных видовых экранах. Если цель в другом, то можно попробовать сделать что-то, мысли по поводу того, как активировать видовой экран под курсором, есть. Но корректность работы в разных файлах, с разными значениями множества влияющих переменных и прочих неявно видимых условий - под вопросом.
1. Аннотации согласно регламенту выполнения чертежей должны находиться в строго оговоренном слое. Таким образом с видимостью слоев в видовых экранах не поиграешь.
2. Можно было бы поиграть с масштабами аннотаций. Но, во-первых, на мой взгляд - более хлопотно. Во-вторых, перенос в пространство листа без "ANNOALLVISIBLE" 1 у меня не получается, а тогда возникают проблемы с переносом при нескольких экранах...

----- добавлено через ~4 ч. -----
(vl-cmdf "_.PSPACE")

Подскажите, пожалуйста - как сделать то же самое через vla-put-...
mkung вне форума  
 
Непрочитано 24.06.2014, 14:09
#14
Сергей Богатов


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


Цитата:
Сообщение от mkung Посмотреть сообщение
Аннотации согласно регламенту выполнения чертежей должны находиться в строго оговоренном слое.
Offtop: ЯТД Это зря Я сделал(подсмотрел, украл, сплагиатил) такую систему именования слоёв:

"дисциплина"-"система"-"подсистема"-"модификатор1"-"модификатор2"
Например:
E-Cables
E-Cables-Vertical
E-Cables-Dimension
E-Cables-Text
E-Equipment
E-Equipment-Dimension
E-Equipment-Text
E-Lighting
E-Lighting-Emergency
E-Lighting-Emergency-Text
E-Lighting-Cables
E-Lighting-Emergency-Cables
и т.п. ....
Слои добавляются по ходу проекта по вышеуказанному правилу.
Элементы(блоки, размеры, тексты и т.п) висят в инструментальной палитре с настроенными слоями.
Всё рисуем в модели и играясь слоями на разных листах и ВЭ выделяем то, что нужно показывать в данный конкретный момент
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 24.06.2014, 14:21
#15
skkkk


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


Цитата:
Сообщение от mkung Посмотреть сообщение
1. Аннотации согласно регламенту выполнения чертежей должны находиться в строго оговоренном слое. Таким образом с видимостью слоев в видовых экранах не поиграешь
Не совсем понятны условия игры с видовыми экранами. В приложенном файле я "поигрался" с видимостью - не то?
Цитата:
Сообщение от mkung Посмотреть сообщение
(vl-cmdf "_.PSPACE")
Подскажите, пожалуйста - как сделать то же самое через vla-put-...
В свое время пробовал такое реализовать, помню - не получилось. Остановился на варианте с vl-cmdf. А чем он плох?
Вложения
Тип файла: dwg
DWG 2010
Пример.dwg (84.4 Кб, 1575 просмотров)
skkkk вне форума  
 
Автор темы   Непрочитано 24.06.2014, 14:53
#16
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165


Цитата:
Сообщение от skkkk Посмотреть сообщение
В свое время пробовал такое реализовать, помню - не получилось. Остановился на варианте с vl-cmdf. А чем он плох?
Если честно, то замутил почти это же обсуждение в теме "Научите ЛИСПу на примере..."
Там и про это есть

командный вариант:
Код:
[Выделить все]
 (vl-cmdf "_.PSPACE")
(setq nvyn (getpoint "\nУкажите начало выноски:"))
Приводит вот к такой ошибке:
Команда: Выберите дугу:_PSPACE
Команда:
Укажите начало выноски:
Повторный вход в LISP невозможен.
Неверная точка.
Укажите начало выноски:
mkung вне форума  
 
Непрочитано 24.06.2014, 14:57
#17
Кулик Алексей aka kpblc
Moderator

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


Меняй системную переменную tilemode
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.06.2014, 15:10
#18
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 165


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Меняй системную переменную tilemode
Это, как я понимаю, переключение закладок Модель-Лист
А мне надо активировать или деактивировать доступ к модели в КОНКРЕТНОМ ВИДОВОМ ЭКРАНЕ НА ЛИСТЕ.
mkung вне форума  
 
Непрочитано 24.06.2014, 15:25
#19
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


как вариант, можно поизвращаться с (grread) и кучей математических преобразований ...
но думаю он не лучший
kakt00z вне форума  
 
Непрочитано 24.06.2014, 16:33
#20
Сергей Богатов


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


Offtop: Кстати о птичках. Я не про программирование, а в общем... Я когда тыкаю из ПЛ в образмеривание дуги или окружности , то радиус привязывается к элементу в модели и даже двигается вместе с ВЭ. Такая же петрушка с линейными размерами(проверял на отрезках).
Проверено в Автокад 2012
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли выбрать объект модели из листа не активируя видовой экран?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решился освоить подшивку….. Red Nova AutoCAD 420 25.04.2023 10:13
Можно ли отзеркалить видовой экран с содержимым внутри? tructor AutoCAD 11 05.10.2010 21:47
Можно ли заштриховать кусок модели, находясь в пр-ве листа!?!? AA2010 Botan Вертикальные решения на базе AutoCAD 21 01.10.2010 10:24
Видовой экран для модели??? scatler Программирование 27 17.06.2010 10:56
Мониторы LCD CRT Разное 94 17.06.2008 10:51