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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > повернуть одновременно несколько объектов

повернуть одновременно несколько объектов

Ответ
Поиск в этой теме
Непрочитано 29.01.2009, 11:24
повернуть одновременно несколько объектов
Natasha111
 
Регистрация: 22.09.2008
Сообщений: 65

Нашла в поиске что-то с программированием, ничего не поняла
Есть ли в Автокаде 2006 такая команда: повернуть несколько объектов одновременно и чтобы они оставались при этом на своем месте?
Просмотров: 21720
 
Автор темы   Непрочитано 29.01.2009, 14:21
#21
Natasha111


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


Цитата:
Сообщение от Dym Посмотреть сообщение
Код:
[Выделить все]
(defun c:MRot (/ ass ra rp pn pt dst pts om) 
  (ssget) 
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)) 
      ass (vla-get-ActiveSelectionset adoc) 
      om (getvar "OSMODE"));setq 
  (initget "Point Center") 
  (setq kw (getkword "\nSelect Rotation Mode: [Point/Center]: <Center>")) 
  (if (null kw) (setq kw "Center")) 
  (if (= kw "Point") 
    (progn (setq obj (vla-item ass 0)) 
      (vla-highlight obj :vlax-true) 
      (vla-getboundingbox obj 'pn 'px) 
      (setq pn (vlax-safearray->list pn) 
          pt (getpoint pt "\nEnter Rotation Point: ") 
          dst (distance pn pt) ang (angle pn pt)) 
      (vla-update obj)));if 
  (setq ra (getreal "\nEnter Rotation Angle <0.0> : "))              
  (if (not ra) (setq ra 0)) 
  (vla-startundomark adoc) 
  (vlax-for ent ass 
    (vla-getboundingbox ent 'mn 'mx) 
    (setq pts (mapcar 'vlax-safearray->list (list mn mx)) 
        rp (vlax-3d-point (if (= kw "Point") (polar (car pts) ang dst) 
               (mapcar '(lambda (x y) (/ (+ x y) 2)) (car pts) (cadr pts)))));setq 
    (vla-rotate ent rp (* (/ ra 180) pi)));vlax-for 
  (setvar "OSMODE" om) 
  (vla-endundomark adoc) 
);end
здесь упоминалась
Э-э, это то что я нашла, ну знаете ли, для бедного простого пользователя как я, ТАКОЕ примерно как китайская грамота. И что с этим делать?
Natasha111 вне форума  
 
Непрочитано 29.01.2009, 14:28
#22
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


"здесь упоминалось" - т.е. для чего.
Если для того же, тогда "Как использ лисп, опуб на форуме"
BM60 вне форума  
 
Непрочитано 29.01.2009, 14:42
#23
Кулик Алексей aka kpblc
Moderator

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


Natasha111, ёпырысыты! Ну научись использовать [Правка]!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2009, 14:44
#24
Dym


 
Регистрация: 27.09.2005
Двинскъ
Сообщений: 586
Отправить сообщение для Dym с помощью Skype™


BM60> повернуть одновременно несколько объектов vs Вращение множества объектов вокруг локальных центров.? Как использ лисп, опуб на форуме
Dym вне форума  
 
Автор темы   Непрочитано 29.01.2009, 14:45
#25
Natasha111


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


Надо бы подковаться теоретически, больше не буду задавать глупые вопросы. Постараюсь во всяком случае.
Natasha111 вне форума  
 
Непрочитано 29.01.2009, 14:45
#26
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Хмурый Посмотреть сообщение
для блоков и текстов есть команда _torient из Express Tools
Разве блоки поворачиваются этой командой? (нет автокада под рукой проверить). Т-ориент, Техт-Оrientation
Vova вне форума  
 
Автор темы   Непрочитано 29.01.2009, 14:51
#27
Natasha111


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Natasha111, ёпырысыты! Ну научись использовать [Правка]!
О, прошу прощения.
Natasha111 вне форума  
 
Непрочитано 29.01.2009, 14:56
#28
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Natasha111, это не глупые вопросы, это вопросы не вполне точно сформулированные и, естественно, не вполне однозначно понятые другими. Клик на "здесь ..." открывал всю тему, и там было ясно для чего. Но из той ли оперы поворот вашего текста, понять только Вам.

И еще поясю больное от модераторов. Кнопка "Правка" делает удобным (для остальных) в одном посте писать дополнения , чтобы не плодить сообщения подряд. У Вас получилось 3 или 4 друг за другом поста с интервалом в 2-3 минуты. Если так уж вышло, то после вырезания (для вставки) впишите Удалено

Последний раз редактировалось BM60, 29.01.2009 в 15:17.
BM60 вне форума  
 
Непрочитано 29.01.2009, 15:04
#29
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Цитата:
Сообщение от Vova Посмотреть сообщение
Разве блоки поворачиваются этой командой? (нет автокада под рукой проверить). Т-ориент, Техт-Оrientation
Извините, ошибся. Поворачиваются атрибуты внутри блока, а сами блоки- не поворачиваются.
Хмурый вне форума  
 
Непрочитано 29.01.2009, 15:07
#30
Кулик Алексей aka kpblc
Moderator

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


BM60, уточню: тут было до 4 постов от одного и того же человека с интервалом до 3 минут. Просмотри тему - увидишь, сколько раз я вмешивался (внизу поста пишется "последний раз редактировалось...")
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.01.2009, 15:10
#31
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
BM60, уточню: тут было до 4 постов от одного и того же человека с интервалом до 3 минут. Просмотри тему - увидишь, сколько раз я вмешивался (внизу поста пишется "последний раз редактировалось...")
Offtop: А я-то думал, если модератор намекает на кнопку Правка- это значит, что человек что-то не то сказал
Хмурый вне форума  
 
Непрочитано 29.01.2009, 15:16
#32
VVA

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


Здесь еще одна версия
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.08.2014, 21:17
#33
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,074


Где-то видел, а где не найду. Чтобы доворачивание происходило не относительно центров элементов, а относительно их точек вставок - для блоков и текстов.
Иначе все съезжает со своих мест.
Нужно, если заменяются блоки на блоки с другой ориентацией, если делалось трансформирование или т.п.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 12.08.2014, 08:28
#34
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


АлексЮстасу, это?
Вложения
Тип файла: lsp srot.lsp (1.2 Кб, 55 просмотров)
__________________
Как-то так.
sertor вне форума  
 
Непрочитано 12.08.2014, 16:02
#35
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,074


Цитата:
Сообщение от sertor Посмотреть сообщение
это?
Увы. Это то же самое, что делают лиспы из данной темы (MRot.lsp) - вращение относительно центров объектов. Т.е. и блоки, и тексты поворачиваются не относительно точек вставки, а относительно их геометрических центров.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 12.08.2014, 16:33
1 | #36
Кулик Алексей aka kpblc
Moderator

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


Вариант 1:
Код:
[Выделить все]
 (vl-load-com)

(defun c:robj1 (/ selset ang adoc)
  (if (and (= (type (setq selset (vl-catch-all-apply
                                   (function
                                     (lambda ()
                                       (ssget "_:L" '((0 . "INSERT,*TEXT")))
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                                   ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'pickset
              ) ;_ end of =
           (= (type (setq ang (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (getangle "\nВведите угол, на который надо повернуть объекты <Отмена> : ")
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'real
              ) ;_ end of =
           ) ;_ end of and
    (progn
      (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
      (foreach ent ((lambda (/ tab item)
                      (repeat (setq tab  nil
                                    item (sslength selset)
                                    ) ;_ end setq
                        (setq tab (cons (vlax-ename->vla-object (ssname selset (setq item (1- item)))) tab))
                        ) ;_ end of repeat
                      ) ;_ end of lambda
                    )
        (vla-put-rotation ent (+ (vla-get-rotation ent) ang))
        ) ;_ end of foreach
      (vla-regen adoc acactiveviewport)
      (vla-endundomark adoc)
      ) ;_ end of progn
    ) ;_ end of if
  ) ;_ end of defun
Варинат 2:
Код:
[Выделить все]
 (vl-load-com)

(defun c:robj2 (/ selset ang adoc)
  (if (and (= (type (setq selset (vl-catch-all-apply
                                   (function
                                     (lambda ()
                                       (ssget "_:L" '((0 . "INSERT,*TEXT")))
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                                   ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'pickset
              ) ;_ end of =
           (= (type (setq ang (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (getangle "\nВведите угол, на который надо повернуть объекты <Отмена> : ")
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'real
              ) ;_ end of =
           ) ;_ end of and
    (progn
      (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
      (foreach ent ((lambda (/ tab item)
                      (repeat (setq tab  nil
                                    item (sslength selset)
                                    ) ;_ end setq
                        (setq tab (cons (vlax-ename->vla-object (ssname selset (setq item (1- item)))) tab))
                        ) ;_ end of repeat
                      ) ;_ end of lambda
                    )
        (vla-put-rotation ent ang)
        ) ;_ end of foreach
      (vla-regen adoc acactiveviewport)
      (vla-endundomark adoc)
      ) ;_ end of progn
    ) ;_ end of if
  ) ;_ end of defun
----- добавлено через 38 сек. -----
Хотя второй вариант можно было и не делать - через _.qselect можно и так выставить...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.08.2014, 17:16
#37
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,074


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вариант 1:
Оно! Спасибо!
Уже первый вариант.
Мне действительно казалось, что подобная программка уже была. Или уже от бесконечных дополнительных программок в глазах рябит и дежавю?
Возможно, что в темах, где обсуждалось создание листов на длинные трассы, где каждый участок на листе развернут по-своему?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 12.08.2014, 19:30
#38
Кулик Алексей aka kpblc
Moderator

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


А черт его знает - я с нуля нарисовал...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.08.2014, 19:56
#39
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,074


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А черт его знает - я с нуля нарисовал...
Круто!
"...Думал и разговаривал на лиспе"

Так понял, что robj1 поворачивает на указанный угол относительно прежнего положения элементов, а robj2 поворачивает в положение с заданным углом относительно ПСК?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 12.08.2014, 22:54
#40
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Так понял, что robj1 поворачивает на указанный угол относительно прежнего положения элементов, а robj2 поворачивает в положение с заданным углом относительно ПСК?
Ну да. Первый "добавляет" указанный угол к имеющемуся, второй устанавливает указанный в качестве угла поворота.
Только я особо код не тестировал, поэтому предупреждаю: на разных вариантах выравниваний текстов могут быть не совсем ожидаемые результаты.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > повернуть одновременно несколько объектов



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение множества объектов вокруг локальных центров. B2Slow Программирование 27 18.06.2013 07:56
FILTER / фильтр BM60 Справочник команд 0 08.07.2008 15:35
НЕ получается выделить сразу несколько объектов abram AutoCAD 15 05.05.2008 15:16
не выделятся несколько объектов без SHIFTа fastline AutoCAD 6 25.01.2008 20:32