Как повернуть в Автокаде
Продолжаем изучать Автокад и сегодня рассмотрим, как провернуть объект в Автокаде. Вопрос, как повернуть в Автокаде, чаще всего возникает при копировании фрагмента чертежа, когда при вставке нужно повернуть на определенный угол. Обычно требуется повернуть на угол кратный 90 градусов .
Как повернуть в Автокаде
Команда «Повернуть» находится в блоке редактирования в верхней строке, вторая слева. Принцип её действия покажем на примере поворота обыкновенного прямоугольника.
Щелкаем по команде. Теперь необходимо выбрать объекты, которые хотим повернуть. В этом примере я выбрал весь прямоугольник. После выбора нужных отрезков, нажимаем «Ввод» и выбираем базовую точку, относительно которой будет совершен поворот.
Базовую точку удобно выбрать на пересечении линий контура. Угол поворота можно задать передвижением курсора мыши или ввести вручную. При этом не забывайте, что положительный угол поворота отсчитывается против хода стрелки часов, а отрицательный по ходу часовой стрелки.
В одном из прошлых уроков я рассказывал про массив в Автокаде. Поворот отличается от массива тем, что не появляется новых элементов. В качестве базовой точки можно выбрать точку, не принадлежащую контуру фрагмента, тогда поворот будет отдаленно напоминать круговой массив.
Пару слов о том, как повернуть чертеж в Автокаде. Можно повернуть и целиком целый чертеж, выполняя операцию аналогичным образом. Повернуться размеры, причем размерные линии и стрелки повернуться, а надпись (значение размера) останется горизонтальной или вертикальной. О том, как это исправить, расскажу в уроке размеры в Автокаде. Штриховка повернется вместе с элементом на заданный угол, с ней проблем не возникнет, проекции видов не нарушатся.
Операция поворота элемента, как Вы убедились, делается быстро и очень просто, но если у Вас все же возникли трудности, опишите их в комментариях.
Как повернуть 2D чертеж в окне (Страница 1 из 2)
Подскажите пожалуйста как в окне повернуть 2D чертеж, так что бы в модели он оставался в прежней с-ме координат? С помощью орбит почти получается, но по всем плоскостям.
#2 Ответ от moroz 30 ноября 2007г. 15:27:52
Re: Как повернуть 2D чертеж в окне
Один из вариантов, на мой взгляд достаточно удобный — ВО делаете активным.
mvsetup enter -> align enter -> rotate enter ->
[rus]ukazyvaete tochku, otnositel’no kotoroj krutit’ budite. sledushij shag — ugol ukazat’ nado, na kotoryj povarachivat’ zulaite. Pomnite, chto kazhdyj raz otschjot graudsov idjot ot nulja!
[/rus]
#3 Ответ от Hrenn 30 ноября 2007г. 15:30:18
Re: Как повернуть 2D чертеж в окне
Frost дал рецепт разворота содержимого видового экрана в пространстве листа.
А вот так можно сделать для настройки изображения в пространстве модели:
1. Повернуть систему координат относительно оси Z сообразно расположению чертежа
2. Дать команду _plan с опцией Current ucs (текущая ПСК)
#4 Ответ от Александр Зингер 30 ноября 2007г. 15:50:21
- Александр Зингер
- Восстановленный участник
- На форуме с 2 августа 2007г.
- Сообщений: 32
- Спасибо: 0
Re: Как повернуть 2D чертеж в окне
alignspace может быть?:(((
#5 Ответ от moroz 30 ноября 2007г. 16:36:15
Re: Как повернуть 2D чертеж в окне
[rus]Axa, esli rech’ idjot o modelspjejse, to mozhno posovetovat’ drugoe. Tol’ko esli chertjozh v okoncovke zanimaet metrov 5m v dlinu i na kazhdom lej aute nado podbirat’ ugol, s uchjotom razmeshenija dopolnitel’noj informacii, to pol’zy ot etogo sposoba nemnogo, a esli maxon’kij chertjozhik, na A3 pomeshhaetsja, to prokatit
[/rus]
Dview -> Twist ->
[rus]i verti kak zhulaish’
[/rus]
#6 Ответ от Vova 1 декабря 2007г. 21:32:03
Re: Как повернуть 2D чертеж в окне
Для всех указанных способов совершенно безразлично, какой величины деталь и какой формат рамки
#7 Ответ от moroz 3 декабря 2007г. 09:48:59
Re: Как повернуть 2D чертеж в окне
To Vova:
[rus]Bylo by bezralichno — ukazal by sposoby cherez zapjatuju.
Ja rad za Vas, Vova, esli dlja Vas bezrazlichno.
Raznye nuzhdy u vsex, vot i sovetuet kazhdyj so svoej pozicii.
[/rus]
#8 Ответ от Катя 5 декабря 2007г. 13:12:54
Re: Как повернуть 2D чертеж в окне
tu Fr0st:
Большое спасибо!
#9 Ответ от Vova 6 декабря 2007г. 07:17:33
Re: Как повернуть 2D чертеж в окне
Fr0st пишет:
Я рад за Вас, Вова, если для Вас безразлично
Я утверждал, что для всех вышеперечисленных команд, разворачивающих пространство модели внутри Viewport (Mvsetup, Dview, Alignspace) безразлично (а не мне безразлично), какой величины деталь нарисована в модели. Хоть шестеренка от часов, хоть автодорога. Далеко не все знают специфику Вашей работы, где выпускаются
Чем черт не шутит, может и вправду при такой длине одна из команд заглючит. Вчитайтесь в свой пост Fr0st (2007-11-30 16:36:15). Разве можно здесь что-нибудь понять?
#10 Ответ от moroz 6 декабря 2007г. 10:35:31
Re: Как повернуть 2D чертеж в окне
to Vova:
[rus]Stranno. a Katja ponjala
[/rus]
#11 Ответ от Катя 6 декабря 2007г. 11:42:55
Re: Как повернуть 2D чертеж в окне
Поняла, поняла и замечательно получается.
#12 Ответ от Незнайка 6 декабря 2007г. 18:01:07
Re: Как повернуть 2D чертеж в окне
Как я понял методом: Dview -> Twist -> нельзя точно повернуть модель, напрімер на 33d45’45». Там все на глазок,
а вот mvsetup enter -> align enter -> rotate enter -> можно
#13 Ответ от Vova 6 декабря 2007г. 20:22:45
Re: Как повернуть 2D чертеж в окне
Катя, а что конкретно ты поняла? Какую из предложенных команд использовала? Попробовала-ли остальные? В какой обнаружила проблему, и, если так, по какой причине она возникла: из-за отсутствия практики работы с данной командой, или команда внутри себя имеет проблему? Потому что Fr0st считает, что одна из команд (по-видимому Alignspace) не разворачивает корректно пространство с деталями определенной длины.
Незнайка> все команды точные, во всех можно задать угол в лубом формате. Это все-ж AutoCAD, a не Paint
#14 Ответ от moroz 6 декабря 2007г. 21:51:02
Re: Как повернуть 2D чертеж в окне
tu VoVa:
[rus]da chto zhe takoe-to! Da ja ni kapli ne somnevajus’ v Vashei kompetentnosti i uzh tem bolee ne stavlju sebja vyshe kogo-libo zdes’.
Naidichajshe sozhaleju o tom, chto ne mogu vyrazhat’ svoi mysli takim obrazom, chtoby donesti do Kazhdogo to, chto xotelos’ by.
Poprobuju po-drugomu: imeetsja polilinija soderzhashaja arki, v obshhem izognutaja donel’zja, dlinoj kilometrov 20. Kazhdyj list nuzhno sdelat’ dlinoj primerno v metr, sootvetstvenno ix poluchaetsja nemalo, pljus na kazhdom iz nih krome shtampa imejutsja razlichnogo roda kommentarii i uslovnye oboznachenija, pljus vpolne vozhmozhno, chto eshhe kakoj nit dopolnitel’nyj v’juportik pridjotsja sunut’. Tak kak linija ne prjamaja, to ugol povorota na kazhdom liste — raznyj.
Dv»ju ne ochen’ udobno nado vsjo reshenie vydeljat’ i vertet’, sootvetsvenno, zumit’ nado, t.e. masshtab terjaetsja. Nu ne to eto 🙂
Alajnspejs tozhe neploxo, no naibolee udobnyj sposob, opjat’ zhe dlja menja, eto ispol’zovat’ mvsetap.
Po listam raskidal kak nado, delaesh’ VO aktivnym, mvsetap, ugolok, esli ne ponravilos’, eshe raz ugolok — est’!
Vot etot sposob ja pervym i predlozhil.
V ljubov variante, Vova, blagodaren za obshenie — interesno.
[/rus]
#15 Ответ от Vova 7 декабря 2007г. 06:45:00
Re: Как повернуть 2D чертеж в окне
> Fr0st
Во первых, не кипятись. Мы ведь разбираем техническую проблему, а не выясняем отношения. И надо доходчиво объяснять проблему, чтобы было понятно оппонентам. Я попробую своими словами пересказать твое описание, как я его понял, а ты поправь, если что не так.
Итак, имеется извилистая полилиния, имеющая разные углы к горизонту на разных участках. Нечто, похожее на горную автодорогу. Длина ее такова, что в нужном масштабе на один лист выбранного формата она не помещается. Следовательно, в этом файле должно быть несколько лейаутов; и тогда в модели можно всю трассу иметь неделимой. Далее, поскольку очередной кусок трассы не обязательно располагать на листе так, как он ориентирован в модели (иначе на листе останется много пустоты), требуется развернуть этот участок в видовом экране так, чтобы в чертеж побольше вместилось, и еще осталось место для общих примечаний. Для каждого участка может получится произвольный угол. Разворот может осуществлятся одной из трех команд. Ты сам предложил две (Mvsetup и Dview) и Александр Зингер добaвил Alignspace. И вот здесь мы разошлись во мнениях. Ты сказал, что одна из команд (Alignspace) хуже работает (теряется масштаб и что-то еще) Вот за это я и зацепился. Разворачивая пространство командой mvsetup внутри видового экрана также легко потерять масштаб. Viewport ведь не квадратный, а точка вращения в его приблизительном центре, куда ткныл мышкой. И нечего за масштаб держаться. Главное, вывести нужный участок, а затем восстановить масштаб дело трех секунд. Так что давай жить мирно, и если спорить, то доказательно
Как повернуть объект в Автокад? Зеркально отобразить? Чертеж в автокад не могу отобразить в зеркальном. Как это сделать?
там в инструментах есть зеркало — значок выглядит как два треугольника по разные стороны пунктирной прямой
чертеж надо выделить, ткнуть в в инструмент «отзеркалить», в командном меню определиться сохранять ли исходник ( Y или N) и нажать энтер
EmilijaМастер (1468) 11 лет назад
спасибо, я так делаю, а у меня все по прежнему. Ох, сдавать чертеж надо, а он не отображается.
Tatis Искусственный Интеллект (133820) точно-точно? может где-то лишнее движение мышью. в принципе можно отзеркалить в Иллюстраторе, но я как-то не уверена что он у Вас есть
Остальные ответы
.Заходим в меню view выбираем bottom (-вид снизу) ,все отзеркалится в том числе и размеры, их неоходимо будет проставить заново .Есть способ развернуть систему координат, но результат будет тот же
EmilijaМастер (1468) 11 лет назад
Спасибо большое!
АК-47 Высший разум (165425) Пожалуйста:)
Повернуть в AutoCAD объект (графический элемент, текст, таблицу и т. д.) можно с помощью команды редактирования «Поворот».
Инструмент «Поворот» в AutoCAD выполняется в следующей последовательности:
Необходимо выбирать команду «Поворот».
Выбираем объект, который хотим повернуть.
Задаем точку, относительно которой будет выполняться поворот (базовая точка).
Далее указываем угол поворота
Как повернуть чертеж в автокаде
Используя пример поворота объектов в чертеже, мы познакомимся с некоторыми методами работы в VBA AutoCAD. Сразу хочу отметить, что изложенная далее информация не догма, а лишь один из множества способов. Все замечания и пожелания вы можете присылать мне на vbamaker@yandex.ru
Шаг первый
Добавим в чертеж с помощью VBA линию (отрезок) и повернем ее на определенный угол, например
45 градусов. Как это сделать? Очень просто:
Option Explicit
Sub LineRotate()
Dim lineObj As AcadLine
Dim Pt1(0 To 2) As Double
Dim Pt2(0 To 2) As Double
Dim BasePt(0 To 2) As Double
Dim RotAngle As Double
‘Указываем начальную и конечную точку
Pt1(0) = 1: Pt1(1) = 1: Pt1(2) = 0
Pt2(0) = 5: Pt2(1) = 1: Pt2(2) = 0
‘Добавляем линию в пространство модели
Set lineObj = ThisDrawing.ModelSpace.AddLine(Pt1, Pt2)
‘Указываем базовую точку
BasePt(0) = 1: BasePt(1) = 1: BasePt(2) = 0
‘Указываем угол поворота
RotAngle = 0.7853981
‘Здесь угол задан в радианах, что бы перевести в градусы
‘Нужно воспользоваться формулой: Градусы = радианы/180*Pi
‘Поворачиваем линию
lineObj.Rotate BasePt, RotAngle
‘Обновляем объект
lineObj.Update
End Sub
Как видно не чего сложного. Единственное, немного поясню, для тех, кто не знает или забыл:
Option Explicit -оператор, который требует, чтобы все переменные в данном модуле должны быть предварительно объявлены.
Double –число с плавающей точкой двойной точности (от 4,940 656 458 412 47е-324 до 1,797 693 134 862 32е308)
Итак, все это конечно интересно, но сразу возникают вопросы: Как повернуть линию с помощью выбора в чертеже, и не линию, а вообще любой выбранный объект? Как, сделать, чтобы базовая точка была указана в чертеже, а угол в командной строке? Для рассмотрения этих вопросов перейдем к следующему шагу.
Шаг второй
Для, того чтобы выбирать объекты в чертеже, мы будем использовать наборы выбора(AcadSelectionSet) методом указания на экране объекта(SelectOnScreen).
Указывать базовую точку – методом GetPoint (возвращает значение типа Variant, содержащее трехмерный массив). Пользователь может указать точку или задать ее координаты.
Для ввода угла поворота применим метод GetInteger ( Integer – целые числа в диапазоне от -32768 до +32767).Пользователю выдается приглашение ввести число. Смотрим код:
Option Explicit
Sub ObjRotate()
Dim Obj As AcadEntity
Dim BasePt As Variant
Dim SelSet As AcadSelectionSet
Dim GradAngle As Integer
Dim RotAngle As Integer
On Error GoTo Control
‘Создаем новый набор выбора, например с именем «Set»
Set SelSet = ThisDrawing.SelectionSets.Add(«Set»)
‘Запрос на выбор примитивов
SelSet.SelectOnScreen
‘Если не чего не выбрано, переходим к «Control»
If SelSet.Count = 0 Then GoTo Control
‘Указываем базовую точку
BasePt = ThisDrawing.Utility.GetPoint(, «Укажите базовую точку: «)
‘Вводим угол поворота(в градусах)
GradAngle = ThisDrawing.Utility.GetInteger(«Введите угол поворота:»)
‘Переводим градусы в радианы
RotAngle = GradAngle / 180 * 3.141592653
For Each Obj In SelSet
‘Выполняем поворот объекта
Obj.Rotate BasePt, RotAngle
‘Обновляем объект
Obj.Update
Next Obj
Control:
SelSet.Delete ‘Удаляем набор выбора
End Sub
Некоторые пояснения:
AcadEntity-объект AutoCAD
Variant — Переменная, которая может содержать данные любого типа. Если, есть возможность, рекомендуется воздерживаться от применения этого типа и объявлять тип явно(например:Integer, Double и т.д.), так как программе требуется больше времени на считывание данных.
On Error GoTo Control— один из операторов, с помощью которого можно контролировать работу программы при возникновении ошибок. Если обнаружена ошибка, то происходит переход к метке“Control:” В нашем случае это удаление набора выбора и выход.
If SelSet.Count = 0 Then GoTo Control— условный оператор. Если выражение истинно, то Оператор выполнится, если ложно, то нет. Здесь SelSet.Count — количество объектов в наборе.
For Each Obj In SelSet — форма цикла предназначенная для выполнения какой-либо операции с каждым объектом, входящим в состав некоторой коллекции объектов:
For Each ИмяОбъекта In ИмяКоллекции
Операции над объектами
Next ИмяОбъекта
Ну вот, с этим мы вроде как разобрались. Давайте немного разнообразим код, а заодно получим некоторые навыки при работе с формами.
Шаг третий
Допустим, нам нужно, чтобы на экране появлялось диалоговое окно, в котором можно было бы ввести угол поворота.
Для начала вставим форму. В окне свойств(Properties Window) формы, значение в поле Name изменим на “Form1”. Значение в поле Caption изменим, например, на “Поворот объекта“
Добавим на форму несколько элементов:
Label(Надпись), который используется для отображения текста. В свойствах изменим значение Caption на “Угол:” Кстати, так же в свойствах можно изменить цвет и размеры элемента, выравнивание, шрифт и т.д.
TextBox(Текстовое поле)— служит для ввода или вывода информации, которая используется в программе. Изменим свойство Name на “Text1”.
(Если нужно запретить изменение содержимого текстового поля, когда форма появляется на экране в свойствах значение Locked надо поставить на True.Если нужно, чтобы в текстовом поле при появлении формы постоянно находилось какое-либо значение, в свойствах в поле Value надо указать это значение. Если нужно ограничить количество введенных символов, то его можно указать в свойстве MaxLength.)
SpinButton(Счетчик)-дает возможность пользователю указывать числовое значение. Он используется вместе с элементом TextBox. В его свойствах задаются:
Max — определяет максимальное значение элемента SpinButton
Min — минимальное значение
Value — текущее значение
Пусть у нас будет задано:Max=360,Min= -360,Value=0
CommandButton(командная кнопка) — используется для выполнения какого-либо действия, например, запуск какой-то опперации. В нашем примере мы будем использовать два этих элемента:
Первый для запуска. В свойствах, в поле Name зададим ему имя cmdApply,в поле Caption – “OK”.
Второй для выхода. Name-“cmdCancel”, Caption – “Cancel”.
Короче, говоря, должно получиться что-то похожее как на рисунке.
Идем дальше. Дважды щелкнем(кликнем) на кнопке”OK”(элемент cmdApply) и добавим в процедуру “Private Sub cmdApply_Click()”знакомый нам, но немного измененный код:
Option Explicit
Private Sub cmdApply_Click()
Dim GradAngle As Integer
Dim RotAngle As Integer
Dim Obj As AcadEntity
Dim BasePt As Variant
Dim SelSet As AcadSelectionSet
‘Присваиваем переменной «GradAngle» значение
‘текстового поля «Text1»
GradAngle = Val(Text1.Text)
‘Если введен «0» (или пустая строка) будет выводиться сообщение
If GradAngle = 0 Then
MsgBox «Введите угол поворота!»
Exit Sub
End If
Unload Me ‘Закрываем окно
On Error GoTo Control
‘Создаем новый набор выбора, например с именем «Set»
Set SelSet = ThisDrawing.SelectionSets.Add(«Set»)
‘Запрос на выбор примитивов
SelSet.SelectOnScreen
‘Если не чего не выбрано, переходим к «Control»
If SelSet.Count = 0 Then GoTo Control
‘Указываем базовую точку
BasePt = ThisDrawing.Utility.GetPoint(, «Укажите базовую точку: «)
RotAngle = GradAngle / 180 * 3.141592653
For Each Obj In SelSet
‘Выполняем поворот объекта
Obj.Rotate BasePt, RotAngle
‘Обновляем объект
Obj.Update
Next Obj
Control:
SelSet.Delete ‘Удаляем набор выбора
End Sub
Рассмотрим код:
GradAngle = Val(Text1.Text)-Присваиваем переменной «GradAngle» значение текстового поля «Text1».
По идее можно было бы написать проще GradAngle = Text1.Text, но если при такой записи ввести в текстовое поле буквы или вообще ничего не вводить появиться сообщение об ошибке в типах. Дело в том, что переменная GradAngle у нас объявлена как Integer(число), а мы пытаемся ей присвоить текстовое значение String(строка). Функция Val решает эту проблему – преобразует строку в число. Теперь, если ввести буквы или нечего не вводить, функция Val превратит строку в число — в ноль.
Все это, конечно, интересно скажите Вы, но зачем нам поворачивать объект на “0” градусов. Поэтому, если переменная “GradAngle”=0, пусть выводится предупреждение. Сделаем это с помощью функции MsgBox,осуществляющей вывод информации на экран, и еще одной разновидностью условного оператора:
If Логическое_выражение Then
Здесь оператор или Группа_операторов
Exit Sub
End If
Unload Me –оператор, выгружающий форму из памяти и удаления ее с экрана.
С элементом TextBox думаю все понятно, теперь заставим работать элемент SpinButton. Дважды щелкнем(кликнем) на нем и добавим в процедуру “Private Sub SpinButton1_Change()” следующее:
Private Sub SpinButton1_Change()
Text1.Text = SpinButton1.Value
‘Значение TextBox = Значению SpinButton
End Sub
Рассмотрим кнопку Cancel. Снова дважды щелкнем(кликнем), на кнопке“Cancel”(элемент cmdCancel),чтобы добавим в процедуру”Private Sub cmdCancel_Click()” следующий код:
Private Sub cmdCancel_Click()
Unload Me ‘Закрываем окно(см.выше)
End Sub
Теперь осталось добавить в проект модуль, для вызова формы. И вставить в него такой код:
Sub Rotate()
Form1.Show
End Sub
Здесь “Form1”-имя нашей формы.
Show-метод, загружающий и показывающий форму на экране.