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

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

копирование и поворот

Ответ
Поиск в этой теме
Непрочитано 29.04.2007, 11:48 #1
копирование и поворот
snk
 
Минск
Регистрация: 14.03.2007
Сообщений: 7

В ACAD2005 у меня была команда "копировать и повернуть". Ее макрос ^C^C$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_rotate;_copy, ^C^C_select;_auto;\_copy;_p;;"0,0";;_rotate;_p;.
А при переходе на 2007-й AutoCAD он не работает.
Подскажите, пожалуйста, что можно сделать. Достаточно часто приходится пользоваться.
Просмотров: 4545
 
Непрочитано 29.04.2007, 11:55 Re: копирование и поворот
#2
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,753
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от snk
В ACAD2005 у меня была команда "копировать и повернуть". Ее макрос ^C^C$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_rotate;_copy, ^C^C_select;_auto;\_copy;_p;;"0,0";;_rotate;_p;;).
А при переходе на 2007-й AutoCAD он не работает.
Подскажите, пожалуйста, что можно сделать. Достаточно часто приходится пользоваться.
А мне в 2005 проще было пользоваться командой "Выровнить". Она и правда теперь не работает в 2007. Почему ее убрали? Теперь приходиться использовать 3D-поворот, который теперь не работает в плоских проекциях, надо обязательно какую-нибудь изометрическую проекцию брать.
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Непрочитано 29.04.2007, 12:34
#3
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


команда _.MOCORO не подойдет?
ASLYS вне форума  
 
Автор темы   Непрочитано 29.04.2007, 13:47
#4
snk


 
Регистрация: 14.03.2007
Минск
Сообщений: 7


_.MOCORO удаляет старый объект, а мне надо чтобы остался и старый и создался новый на оределенный угол относительно какой-то точки
snk вне форума  
 
Непрочитано 29.04.2007, 15:40
#5
Vova

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


SNK> Твой макрос не должен работать в любом автокаде. Там ведь не прописана точка, относительно которой осуществляется поворот. Не вокруг-же 0,0 ? Вот это работает во всех автокадах. Здесь поворот осуществляется вокруг той точки (@) в которой оставили скопированный в первой части макроса объект
Код:
[Выделить все]
^C^C(setq OM (GETVAR "ORTHOMODE"));_ORTHO;_off;_SELECT;\_COPY;P;;@;@;_m;_p;;\\_rotate;_p;;@;\(SETVAR "ORTHOMODE" OM)
T-Yoke> а разве конанда Align это альтернатива комбинации Copy-Rotate? Команда Align прекрасно работает в 2007.
А вот комбинация Copy и Align
Цитата:
^C^C_Select;\_Copy;_Previous;;@;@;_Align;_Previous;;\\\\
Vova вне форума  
 
Непрочитано 29.04.2007, 18:39
#6
T-Yoke

Артиллерист - вертолётчик. Дипломированный инженер-механик. Technologist
 
Регистрация: 29.11.2004
Где-то около Москвы
Сообщений: 16,753
Отправить сообщение для T-Yoke с помощью Skype™


Цитата:
Сообщение от Vova
T-Yoke> а разве конанда Align это альтернатива комбинации Copy-Rotate? Команда Align прекрасно работает в 2007.
А вот комбинация Copy и Align
Цитата:
^C^C_Select;\_Copy;_Previous;;@;@;_Align;_Previous;;\\\\
В общем ты прав, это совсем разные команды. Просто часто поворот приходилось делать не на определенный угол, а по отношению к какому либо объекту. Тут то вместо Rotate Align и используеся.
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I
T-Yoke вне форума  
 
Автор темы   Непрочитано 29.04.2007, 21:00
#7
snk


 
Регистрация: 14.03.2007
Минск
Сообщений: 7


Цитата:
Сообщение от Vova
SNK> Твой макрос не должен работать в любом автокаде. Там ведь не прописана точка, относительно которой осуществляется поворот. Не вокруг-же 0,0 ? Вот это работает во всех автокадах. Здесь поворот осуществляется вокруг той точки (@) в которой оставили скопированный в первой части макроса объект
Код:
[Выделить все]
^C^C(setq OM (GETVAR "ORTHOMODE"));_ORTHO;_off;_SELECT;\_COPY;P;;@;@;_m;_p;;\\_rotate;_p;;@;\(SETVAR "ORTHOMODE" OM)
В 2005 автокаде работает, а в 2007 - нет.
В 2007 предлагает выбрать объекты, странно, что 2 раза (после первого раза сбрасывает и говорит, что неверный выбор), потом просит базовую точку и далее как копирование, а повор не работает (нет запроса на поворот).
Может это из-за того, что у меня оффициальная русская версия?
Мой макрос тоже работал в 2005, только чуть по другому. Базовая точка выбиралась 1 раз при копированиии, поворачивалось относительно нее же.
snk вне форума  
 
Непрочитано 30.04.2007, 00:33
#8
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


есть еще вариант из G-Tools, у меня работает
[ATTACH]1177878826.rar[/ATTACH]
ASLYS вне форума  
 
Непрочитано 30.04.2007, 02:31
#9
Vova

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


Цитата:
Сообщение от snk
В 2005 автокаде работает, а в 2007 - нет.
.
Сделай поворот с копированием в 2005 и нажми F2. То, что появится на белом фоне, выложи сюда, вот так:
Код:
[Выделить все]
Command:
Command:
Command: $M=
Command:
Command: _select

Select objects: _auto

Select objects: 1 found

Select objects:

Command: _copy

Select objects: _p
1 found

Select objects:
Specify base point or displacement, or [Multiple]: "0,0"

Point or option keyword required.
Specify base point or displacement, or [Multiple]: Specify second point of 
displacement or <use first point as displacement>:
[ATTACH]1177885457.JPG[/ATTACH]
Это из моего 2005, а на картинке твой код. Сверь его с выложенным тобой, чтобы убедится, что я не сделал ошибку. Как видно из протокола, ничего не работает, и не должно. Не просматривается логика.
Vova вне форума  
 
Непрочитано 30.04.2007, 11:00
#10
Krieger

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


snk
Попробуй так:
Код:
[Выделить все]
(defun _RotateCopy (ss)
       (if ss
	 (progn
	    (if (setq pt1 (getpoint "\n укажите базовую точку: "))
	      (progn
		  (vl-cmdf "_copy" ss "" pt1 pt1)
		  (command "_move" ss "" pt1 pause)
		  (setq pt2 (getvar "lastpoint"))
		);end progn
	      );end if
		  (vl-cmdf "_rotate" ss "" pt2)
			      (while
				(= (getvar 'cmdactive) 1)
				(vl-cmdf pause)
				);end while
      	);end progn
       );end if
  );end defun

(defun c:RotateCopy (/ *error* ss pt1 pt2)
  (setq pt2 nil)
  
  (defun *error* (msg)
    (if (not pt2)
      (vl-cmdf "_erase" ss "")
      (princ "Функция отменена")
      );end if
    );end defun
  
  (if (setq ss (ssget "_I"))
    (_RotateCopy ss)
    (progn
      (if (setq ss (ssget))
	(_RotateCopy ss)
      );end if
    );end progn
  );end if
  
 );end defun
Эту прогу надо выкинуть в автозагрузку и запускать команду "RotateCopy", соответственно макрос на кнопку:
Код:
[Выделить все]
^C^CRotateCopy
Krieger вне форума  
 
Автор темы   Непрочитано 01.05.2007, 16:13
#11
snk


 
Регистрация: 14.03.2007
Минск
Сообщений: 7


Vova
После использования получается
Код:
[Выделить все]
Command:
Command: _select

Select objects: _auto

Select objects: Specify opposite corner: 3 found

Select objects:

Command: _copy

Select objects: _p
3 found

Select objects:
Specify base point or displacement, or [Multiple]: 0,0
Specify second point of displacement or <use first point as displacement>:

Command: _rotate

Current positive angle in UCS:  ANGDIR=counterclockwise  ANGBASE=0

Select objects: _p
3 found

Select objects:

Specify base point:

Invalid point.

Specify base point:
Specify rotation angle or [Reference]:
Command:
Ты не правильно макрос ввел. Должен быть ^C^C$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_rotate;_copy, ^C^C_select;_auto;\_copy;_p;;"0,0";;_rotate;_p; ; )
Только последнии символы без пробелов, а то смайлик автоматически ставится
snk вне форума  
 
Автор темы   Непрочитано 01.05.2007, 16:18
#12
snk


 
Регистрация: 14.03.2007
Минск
Сообщений: 7


Krieger
Спасибо, работает
snk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > копирование и поворот