Тема: Как увеличить все окружности?

Допустим в документе есть N кол-во окружностей ,N кол-во
линий ,N количество квадратов и количество их может менятся...
вопрос такой как можно сделать так чтобы можно было выбрать все окружности и увеличить их в размере програмной кнопкой на форме(аналог выделения мышкой всех окружностей и изменения в свойствах их радиуса)
Private Sub CommandButton2_Click()
Dim circleObj As AcadCircle
For Each circleObj In ThisDrawing.ModelSpace
circleObj.radius = circleObj.radius + 1
Next circleObj
ZoomAll
End Sub
пробовал сделать ^ так  все окружности при нажатии увеличиваются ,но это при том условии что в документе нарисованны одни окружности ,но если там будет присутсвовать ещё хотябы один объект линия и т. п. то выдаёт ошибку....
Заранее спасибо

Re: Как увеличить все окружности?

Э-хе-хе
https://www.caduser.ru/forum/topic9100.html
https://www.caduser.ru/forum/topic9301.html

Re: Как увеличить все окружности?

Спасибо большое с выборкой примитивов разобрался вроде как:)
т.е. результат: примитивы заносятся в SSet ,выделяются...
всё вроде как хорошо ,но...
у меня идёт изначально выборка координат из 3-4ёх рекордсетов (и каждый рекордсет в отдельной процедуре и для каждого существует отдельный слой)для рисования окружностей ,линий и т.п
и для окружностей в каждом рекорд сете есть массив откуда берутся точки центра окружностей ,
а мне нужно кнопкой увеличивать масштаб или уменьшать масштаб окружностей
если делать через ScaleEntity там существует basePoint
так вот в чём вопрос можно ли объеденить из всех рекорд сетов точки центров окр. и сделать как бы одну basePoint
или может быть есть другой способ решения проблемы
newb в АКаде и newb в Програмировании
просящий о помощи:)
з.ы. надеюсь правильно поставил вопрос...
с уважением Veldrin

Re: Как увеличить все окружности?

Попробуй собрать все свои окружности в массивчик, определенный с глобальной переменной, а по нажатии кнопки вызывай функцию, которая б для каждого элемента этого массива изменяла свойство Radius.

Re: Как увеличить все окружности?

> Veldrin
Чего-то я туго понимать стал.
Судя по Вашему первоначальному вопросу, Вам надо найти в чертеже все окружности и изменить их радиусы (увеличить на 1). При чем здесь "рекорд сет"?
Если надо именно это, то: cоздаете набор примитивов нужного типа и в цикле меняете какое-нибудь свойство (например радиус). Вот и все. См. вышеприведенные примеры и СПРАВКУ!!!

Re: Как увеличить все окружности?

Всё разобрался ,в сем спасибо
а это та на всякий пожарный мало ли кому понадобится
Dim objSelSet As AcadSelectionSet
Dim objEnt As AcadEntity
Dim intType(0) As Integer
Dim varData(0) As Variant
Dim i As Long
Set objSelSet = ThisDrawing.SelectionSets.Add("test")
intType(0) = 0
varData(0) = "Circle"
objSelSet.Select acSelectionSetAll, Filtertype:=intType, filterdata:=varData
For i = 0 To objSelSet.Count - 1
      Set objEnt = objSelSet.Item(i)
Next
Dim circleObj As AcadCircle
For Each circleObj In objSelSet
circleObj.radius = circleObj.radius + 1
Next circleObj
ZoomAll
objSelSet.Delete
з.ы.   возможно можно и по проще сделать....
строго не судите ;)

Re: Как увеличить все окружности?

Ну видите как все просто. Немного отредктированный код.

Dim objSelSet As AcadSelectionSet
Dim objEnt As AcadEntity
Dim intType(0) As Integer,varData(0) As Variant
Dim i As Long
For Each objSelSet In ThisDrawing.SelectionSets
    If objSelSet.name = "test" Then
        ThisDrawing.SelectionSets.Item("test").Delete
        Exit For
    End If
Next
Set objSelSet = ThisDrawing.SelectionSets.Add("test")
intType(0) = 0
varData(0) = "Circle"
objSelSet.Select acSelectionSetAll, Filtertype:=intType, filterdata:=varData
For Each objEnt In objSelSet
      objEnt.radius = objEnt.radius + 1
Next circleObj
ZoomAll

Re: Как увеличить все окружности?

Прошу прощения. Цикл

For Each objEnt In objSelSet
      objEnt.radius = objEnt.radius + 1
[b]Next[/b]