Тема: Поворот объектов

Дан массив объектов типа AcadLine, необходимо выполнить поворот линий этого массива на заданный угол в программе на VBA, как это сделать?

Re: Поворот объектов

Как я понял нужно повернуть не отдельную линию а весь массив вокруг одной точки..
Делаем так объединяем объекты в блок, поворачиваем его и разблокируем. В принципе блок на самом деле не нужен, можно просто пустить цикл по линиям и поворачивать их вокруг одной точки. Что непонятно спрашивай.
Всецело всем .. Savage

Re: Поворот объектов

Блок не обязателен, только чертеж засорять. Лучше воспользоваться группировкой.

Re: Поворот объектов

Если можно, подксажите какой функцией можно повернуть отдельно линию.

Re: Поворот объектов

Разобрался, спасибо за ответы!

Re: Поворот объектов

?з всех об''ектов на чертеже только линии можно выбрать и повернуть еще таким способом

Sub rotlin()
Dim acset As AcadSelectionSet
Dim ent As AcadEntity
Dim rotp As Variant
Dim rotangl As Variant
Dim ftype(0) As Integer
Dim fdat(0) As Variant
'0=Выделяет объекты по типу объекта("line","circle", "text" и т.п.)
ftype(0) = 0
'Тип-линия т.е будут выделены только линии
fdat(0) = "line"
Set acset = ThisDrawing.SelectionSets.Add(ThisDrawing.SelectionSets.Count + 1)
'Выделяем объекты
acset.SelectOnScreen ftype, fdat
 On Error Resume Next
'Задаем точку, вокруг которой будем поворачивать объекты
rotp = ThisDrawing.Utility.GetPoint(, vbCr & "Укажите точку поворота: ")
'Задаем угол поворота
rotangl = ThisDrawing.Utility.GetAngle(rotp, vbCr & "Угол поворота: ")
 For Each ent In acset
  ent.Rotate rotp, rotangl
 Next ent
End Sub

Re: Поворот объектов

?з всех об''ектов на чертеже только линии можно выбрать и повернуть еще таким способом
Sub rotlin()
Dim acset As AcadSelectionSet
Dim ent As AcadEntity
Dim rotp As Variant
Dim rotangl As Variant
Dim ftype(0) As Integer
Dim fdat(0) As Variant
'0=Выделяет объекты по типу объекта("line","circle", "text" и т.п.)
ftype(0) = 0
'Тип-линия т.е будут выделены только линии
fdat(0) = "line"
Set acset = ThisDrawing.SelectionSets.Add(ThisDrawing.SelectionSets.Count + 1)
'Выделяем объекты
acset.SelectOnScreen ftype, fdat
On Error Resume Next
'Задаем точку, вокруг которой будем поворачивать объекты
rotp = ThisDrawing.Utility.GetPoint(, vbCr & "Укажите точку поворота: ")
'Задаем угол поворота
rotangl = ThisDrawing.Utility.GetAngle(rotp, vbCr & "Угол поворота: ")
For Each ent In acset
  ent.Rotate rotp, rotangl
Next ent
End Sub