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

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

А как определить, где у меня на модели конкретный лист?

Ответ
Поиск в этой теме
Непрочитано 29.09.2009, 11:42
А как определить, где у меня на модели конкретный лист?
fastline
 
Электричество
 
СПб
Регистрация: 08.12.2006
Сообщений: 89

У меня довольно большая модель, и так уж получилось что на ней листов несколько десятков.
И вот нужно мне знать, когда я меняю что-то на модели, в каких листах это изменится?
Просмотров: 7013
 
Непрочитано 23.11.2009, 16:31
#21
Кулик Алексей aka kpblc
Moderator

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


А лисп вообще загружен?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.08.2012, 15:26
#22
proteirei


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


Столкнулся с той же проблемой, что и автор, хотел создать новую тему, но нашел эту.

Суть моего вопроса. Выходит такая же ошибка, как и у автора темы:

Команда: VPL

Выберите объекты: Противоположный угол: найдено: 1

Выберите объекты:
_.MSPACE
Команда: ; ошибка: no function definition: VLAX-GET-ACAD-OBJECT


Команда, предложенная Кулик Алексей aka kpblc не помогает исправить эту ошибку (или я ее неправильно применяю - я ее просто вписываю в командную строку, получаю в ответ, что нет такой команды и алес).

НЕ АКТУАЛЬНО
Разобрался. Вставил (vl-load-com) прямо в лисп, всё рабоатет теперь. Всем большое СПАСИБО )))

Последний раз редактировалось proteirei, 02.08.2012 в 16:20.
proteirei вне форума  
 
Непрочитано 01.07.2013, 15:21
#23
proteirei


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


А в чем может быть причина того, что лисп в свежесозданном файле переносит все видовые окна как положено, а в файле, над которым проведена работа в 3-4 дня перенос видовых экранов в модель осуществляется для всех видовых экранов в разных масштабах со смещением на одинаковую величину в сторону?
proteirei вне форума  
 
Непрочитано 05.08.2013, 17:27 Прошу помочь
#24
proteirei


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


Вот файл, в котором данный лисп не работает у меня, не могу понять почему.

Работаю в АС2013 без последнего обновления, формат сохранения 2010.
Вложения
Тип файла: dwg
DWG 2010
Схема.dwg (602.9 Кб, 443 просмотров)
proteirei вне форума  
 
Непрочитано 04.12.2019, 22:35
#25
Всегопонемногу


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


Цитата:
Сообщение от proteirei Посмотреть сообщение
А в чем может быть причина того, что лисп в свежесозданном файле переносит все видовые окна как положено, а в файле, над которым проведена работа в 3-4 дня перенос видовых экранов в модель осуществляется для всех видовых экранов в разных масштабах со смещением на одинаковую величину в сторону?
Ух сколько лет прошло)) Пробую на Акад 2016. Тоже понадобился данный лисп, подгрузил, работает, но на некоторых файлах действительно идет смещение - отрисовывает рамку не в том месте. Причем не зависит от времени создания файла. Мне показалось, что смещение в тех файлах, где много элементов в пространстве модели.
Всегопонемногу вне форума  
 
Непрочитано 05.12.2019, 07:35
#26
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826


Попробуй вот этот код от VVA, давно пользуюсь, у меня он корректно работает:
https://forum.dwg.ru/showpost.php?p=227712&postcount=52
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 05.12.2019, 09:54
#27
Всегопонемногу


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


Цитата:
Сообщение от Krieger Посмотреть сообщение
Попробуй вот этот код от VVA, давно пользуюсь, у меня он корректно работает:
https://forum.dwg.ru/showpost.php?p=227712&postcount=52
Спасибо! Этот работает корректно, жаль конечно что не позволяет выбрать сразу несколько ВЭ, а только по одному.
Всегопонемногу вне форума  
 
Непрочитано 05.12.2019, 17:29
1 | #28
Chainik111

Инженер-проектировщик
 
Регистрация: 18.09.2015
Сообщений: 28


1. Обведите видовой экран полилинией (или командой boundary, предварительно создав прямоугольник вокруг видового экрана)
2. Выделите получившуюся полилинию присвойте ей цвет или слой и наберите команду chspace.

После выполнения этой команды полилиния окажется в пространстве модели, а по цвету или слою вы определите какой это видовой экран.
Можно пронумеровать видовые экраны мтекстом в пространстве листа, затем командой chspace поочерёдно перенести все номера и рамки (границы) в модель, но это если у вас много маленьких узлов.
Chainik111 вне форума  
 
Непрочитано 06.12.2019, 09:52
#29
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826


Цитата:
Сообщение от Всегопонемногу Посмотреть сообщение
Спасибо! Этот работает корректно, жаль конечно что не позволяет выбрать сразу несколько ВЭ, а только по одному.
Дык вроде позволяет в пределах листа...
Код:
[Выделить все]
       (if (= (getvar "cvport") 1)
        (progn
          (if (setq ss nil
                    ss (ssget '((0 . "VIEWPORT")))
              ) ;_ end of setq
            (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
            (setq lst nil)
          ) ;_ end of if
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 06.12.2019, 10:19
#30
Всегопонемногу


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


Цитата:
Сообщение от Krieger Посмотреть сообщение
Дык вроде позволяет в пределах листа...
Код:
[Выделить все]
       (if (= (getvar "cvport") 1)
        (progn
          (if (setq ss nil
                    ss (ssget '((0 . "VIEWPORT")))
              ) ;_ end of setq
            (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
            (setq lst nil)
          ) ;_ end of if
Выбрать позволяет. Отрисовывает в модели только тот который последний выбрал.
При выборе акад пишет если выбрать 4ре ВЭ: "Выберите объекты: найдено: 1, всего: 4"

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от Chainik111 Посмотреть сообщение
1. Обведите видовой экран полилинией (или командой boundary, предварительно создав прямоугольник вокруг видового экрана)
2. Выделите получившуюся полилинию присвойте ей цвет или слой и наберите команду chspace.

После выполнения этой команды полилиния окажется в пространстве модели, а по цвету или слою вы определите какой это видовой экран.
Можно пронумеровать видовые экраны мтекстом в пространстве листа, затем командой chspace поочерёдно перенести все номера и рамки (границы) в модель, но это если у вас много маленьких узлов.
Спасибо! Такой метод тоже работает
Всегопонемногу вне форума  
 
Непрочитано 08.12.2019, 22:11
1 | #31
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,861
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Из этой темы Outline projection all viewports to model
Код:
[Выделить все]
 
(defun c:VPO (/ _trans _cornersFromBBox ss i ent data ent2 lst)
  ;; Viewport Outline
  ;; Require subroutine: PCS2WCS (and all subs it requires)
  ;; PCS2WCS by gile (http://www.theswamp.org/index.php?topic=29231.msg347755#msg347755)
  ;; Alan J. Thompson, 12.08.11

  (vl-load-com)

  (defun _trans (p) (cons 10 (PCS2WCS p ent)))

  (defun _cornersFromBBox (o / a b)
    (vla-getboundingbox o 'a 'b)
    (setq a (_trans (vlax-safearray->list a))
          b (_trans (vlax-safearray->list b))
    )
    (list a (list (car a) (cadr a) (caddr b)) b (list (car b) (cadr b) (caddr a)))
  )

  (if (setq ss (ssget '((0 . "VIEWPORT"))))
    (repeat (setq i (sslength ss))
      (setq ent  (ssname ss (setq i (1- i)))
            data (entget ent)
      )

      (if (if (setq ent2 (cdr (assoc 340 data)))
            (setq lst (apply 'append
                             (mapcar '(lambda (x)
                                        (if (eq (car x) 10)
                                          (list (_trans (cdr x)))
                                        )
                                      )
                                     (entget ent2)
                             )
                      )
            )
            (setq lst (_cornersFromBBox (vlax-ename->vla-object ent)))
          )
        (entmakex (append (list '(0 . "LWPOLYLINE")
                                '(100 . "AcDbEntity")
                                '(100 . "AcDbPolyline")
                                (cons 90 (length lst))
                                '(70 . 1)
                                '(410 . "Model")
                          )
                          lst
                  )
        )
      )
    )
  )
  (princ)
)



;; WCS2PCS (gile)
;; Translates a point WCS coordinates to the PaperSpace CS according to
;; the specified Viewport
;; 
;; (WCS2PCS pt vp) is the same as (trans (trans pt 0 2) 2 3) when vp is active
;;
;; Arguments
;; pt : a point
;; vp : the viewport (ename or vla-object)

(defun WCS2PCS (pt vp / elst ang nor scl mat)
  (vl-load-com)
  (and (= (type vp) 'VLA-OBJECT)
       (setq vp (vlax-vla-object->ename vp))
  )
  (setq pt   (trans pt 0 0)
        elst (entget vp)
        ang  (cdr (assoc 51 elst))
        nor  (cdr (assoc 16 elst))
        scl  (/ (cdr (assoc 41 elst)) (cdr (assoc 45 elst)))
        mat  (mxm
               (list (list (cos ang) (- (sin ang)) 0.0)
                     (list (sin ang) (cos ang) 0.0)
                     '(0.0 0.0 1.0)
               )
               (mapcar (function (lambda (v) (trans v nor 0 T)))
                       '((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0))
               )
             )
  )
  (mapcar '+
          (vxs (mxv mat (mapcar '- pt (cdr (assoc 17 elst)))) scl)
          (vxs (cdr (assoc 12 elst)) (- scl))
          (cdr (assoc 10 elst))
  )
)

;; PCS2WCS (gile)
;; Translates a point PaperSpace coordinates to WCS coordinates
;; according to the specified viewport
;;
;; (PCS2WCS pt vp) is the same as (trans (trans pt 3 2) 2 0) when vp is active
;;
;; Arguments
;; pt : a point
;; vp : the viewport (ename or vla-object)

(defun PCS2WCS (pt vp / ang nor scl mat)
  (vl-load-com)
  (and (= (type vp) 'VLA-OBJECT)
       (setq vp (vlax-vla-object->ename vp))
  )
  (setq pt   (trans pt 0 0)
        elst (entget vp)
        ang  (- (cdr (assoc 51 elst)))
        nor  (cdr (assoc 16 elst))
        scl  (/ (cdr (assoc 45 elst)) (cdr (assoc 41 elst)))
        mat  (mxm
               (mapcar (function (lambda (v) (trans v 0 nor T)))
                       '((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0))
               )
               (list (list (cos ang) (- (sin ang)) 0.0)
                     (list (sin ang) (cos ang) 0.0)
                     '(0.0 0.0 1.0)
               )
             )
  )
  (mapcar '+
          (mxv mat
               (mapcar '+
                       (vxs pt scl)
                       (vxs (cdr (assoc 10 elst)) (- scl))
                       (cdr (assoc 12 elst))
               )
          )
          (cdr (assoc 17 elst))
  )
)

;; VXS Multiply a vector by a scalar
;;
;; Arguments : a vector and a real

(defun vxs (v s) (mapcar (function (lambda (x) (* x s))) v))

;; VXV (gile)
;; Returns the dot product of two vectors (real)
;;
;; Arguments : two vectors
;; return : a real number

(defun vxv (v1 v2) (apply '+ (mapcar '* v1 v2)))

;; TRP
;; transposes a matrix -Doug Wilson-
;;
;; Argument : a matrix
;; return : a matrix

(defun trp (m) (apply 'mapcar (cons 'list m)))

;; MXV
;; Applies a transformation matrix to a vector  -Vladimir Nesterovsky-
;;
;; Arguments : une matrice et un vecteur
;; return : a vector

(defun mxv (m v)
  (mapcar '(lambda (r) (vxv r v)) m)
)

;; MXM
;; Multiplies (combinates) two matrices -Vladimir Nesterovsky-
;;
;; Arguments : deux matrices
;; return : a matrix

(defun mxm (m q)
  (mapcar '(lambda (r) (mxv (trp q) r)) m)
)
----- добавлено через ~9 мин. -----
И еще код Lee Mac'a
Outline Selected Viewport (VPO)
Outline All Viewports in the Active Layout (VPOL)
Outline All Viewports all Layouts (VPOA)
Вложения
Тип файла: lsp VPOutlineV1-3.lsp (15.9 Кб, 5 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 08.12.2019 в 22:21.
VVA вне форума  
 
Непрочитано 08.12.2019, 23:16
#32
Всегопонемногу


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Из этой темы [url="https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/outline-projection-all-viewports-
[SIZE="1"]----- добавлено через ~9 мин. -----[/size]
И еще код Lee Mac'a
Outline Selected Viewport (VPO)
Outline All Viewports in the Active Layout (VPOL)
Outline All Viewports all Layouts (VPOA)
Сделал вывод, что лучше всего работает вот этот скрипт.
Можно
1. Вывести конкретный ВЭ в модель.
2. Вывести в модель все ВЭ с листа
3. Вывести в модель все ВЭ с файла.
Спасибо!
Всегопонемногу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > А как определить, где у меня на модели конкретный лист?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, пожалуйств, как определить выработку на одного работающего в год NoDmAn Поиск литературы, чертежей, моделей и прочих материалов 7 22.04.2009 09:42
Как определить принадлежность объекта листу? wetr Программирование 2 16.04.2009 10:05
Как определить прочность кладки из блоков В3,5? мозголом из Самары Конструкции зданий и сооружений 8 15.12.2008 18:02
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Как определить количество граней (полигонов) трехмерной модели?? Kikin AutoCAD 4 25.12.2007 16:28