Можно ли выбрать объект модели из листа не активируя видовой экран? - Страница 2
Реклама i
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

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

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

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

Заранее благодарен.
Просмотров: 8243
 
Непрочитано 24.06.2014, 16:38
#21
Кулик Алексей aka kpblc
Moderator

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


Размеры у тебя ассоциативные, вот и все.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.06.2014, 16:41
#22
Сергей Богатов


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


Offtop:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Размеры у тебя ассоциативные, вот и все.
Я к тому и веду. В задаче у топикстартера было именно это. Может у него отключено? Увидел, что ТС нужно именно программное решение
__________________
Я-проектировщик бывший проектировщик!

Последний раз редактировалось Сергей Богатов, 24.06.2014 в 16:52.
Сергей Богатов вне форума  
 
Непрочитано 24.06.2014, 18:01
1 | #23
skkkk


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


Вопрос темы звучит так:
Цитата:
Сообщение от mkung Посмотреть сообщение
Можно ли выбрать объект модели из листа не активируя видовой экран?
Видимо, ответ кроется здесь:
Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
Я когда тыкаю из ПЛ в образмеривание дуги или окружности , то радиус привязывается к элементу в модели и даже двигается вместе с ВЭ.
Действительно, выбрать объект модели из листа, не активируя видовой экран, можно, но не функцией (entsel), но запросом объекта в стандартной команде простановки размера, причем любого: линейного, радиального, дугового... Я совсем позабыл об этом, поскольку все аннотации наношу в модели. Другими словами, как и подразумевал Дима_ в #3, на лиспе выбрать таким образом объект не удастся, командными методами - сколько угодно.
Есть еще один вариант: в пространстве листа при неактивном ВЭ запросить у пользователя точку
Код:
[Выделить все]
(setq pt (getpoint))
и скормить ее на запрос объекта командой образмеривания. Примерно так:
Код:
[Выделить все]
(command "_.dimradius" !pt pause)
(обратить внимание на восклицательный знак перед pt)
skkkk вне форума  
 
Непрочитано 24.06.2014, 18:51
1 | #24
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от mkung Посмотреть сообщение
А нельзя как-нибудь попроще?
Например:
1. Активировать программно пространство модели в видовом экране (по щелчку мыши).
2. Выбрать объект по (entsel).
3. Вернуться программно в пространство листа.
Конкретно интересует реализация пунктов 1 и 3.
Активируется текущий (если в листе несколько) видовой экран. Переключение - щелчок мыши внутри требуемого

Код:
[Выделить все]
(defun C:TEST ()
(vl-load-com)
(if (and
          (cond
            ((= (getvar "TILEMODE") 1)(alert "Перейди в пространство листа"))
            ((= (getvar "TILEMODE") 0)
             (if (not (equal (getvar "cvport") 1))
               (progn
                 (command "_.PSPACE")
                 (if (setq PICK1 (ssget "_x" '((0 . "VIEWPORT") (67 . 1))))
                   (progn
                     (setq PICK1
                            (mapcar (function vlax-ename->vla-object)
                                    (vl-remove-if
                                      (function listp)
                                      (mapcar (function cadr) (ssnamex PICK1))
                                    ) ;_ vl-remove-if
                            ) ;_  mapcar
                     ) ;_  setq
                     (mapcar '(lambda (vp)
                                (vla-put-displaylocked vp :vlax-true)
                              ) ;_ end of lambda
                             PICK1
                     ) ;_ end of mapcar
                   ) ;_ end of progn
                 ) ;_ end of if
               ) ;_ end of progn
             ) ;_ end of if
             (if (= (getvar "CVPORT") 1)
               (command "_.MSPACE")
             ) ;_ end of if
             t
            )
          ) ;_ end of cond
          (setq ent (car(entsel "\nВыберите полилинию")))
        )
  (progn
     (if (and (= (getvar "TILEMODE") 0)
                  (not (equal (getvar "cvport") 1))
             ) ;_ end of and
           (command "_.PSPACE")
      ) ;_ end of if
    (princ "\nВы выбрали : ")(princ ent)(princ)
    )
  )
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 25.06.2014, 09:31
#25
mkung


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Активируется текущий (если в листе несколько) видовой экран. Переключение - щелчок мыши внутри требуемого
Спасибо. Работает, вроде, как надо. Буду разбирать текст "по слогам".
mkung вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли выбрать объект модели из листа не активируя видовой экран?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решился освоить подшивку….. Red Nova AutoCAD 440 05.05.2025 13:50
Можно ли отзеркалить видовой экран с содержимым внутри? 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