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

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

VBA. получить центр окружности

Ответ
Поиск в этой теме
Непрочитано 23.10.2005, 16:53 #1
VBA. получить центр окружности
HiddenM
 
Проектирование иссо. Программирование
 
Хаб
Регистрация: 23.10.2005
Сообщений: 52

Как за один .SelectOnScreen FilterType, FilterData выбрать текст и окружность. Затем от текста получить его значение, а от circle его центр. Ну если за один выбор нельзя, то хотя-бы как от уже выбранного Circle получить его X и Y. [/b]
__________________
вот бы сейчас сесть за QB 4.5
Просмотров: 3710
 
Непрочитано 24.10.2005, 11:18
#2
Arkady

AutoCad Development and Support
 
Регистрация: 21.08.2003
Israel
Сообщений: 183
Отправить сообщение для Arkady с помощью Skype™


Код:
[Выделить все]
Public Sub Sub1()
On Error Resume Next
Dim objSelCol As AcadSelectionSets
Dim objSelSet As AcadSelectionSet
Set objSelCol = ThisDrawing.SelectionSets
'' Check if selection set exist
Dim oCircle As AcadCircle
Dim oText As AcadText

For Each objSelSet In objSelCol
  If objSelSet.Name = "CircleText" Then
    objSelSet.Delete
    Exit For
  End If
Next
Set objSelSet = objSelCol.Add("CircleText")
If Err.Number <> 0 Then
   Exit Sub
End If
Dim intType(0) As Integer
Dim varData(0) As Variant
intType(0) = 0
varData(0) = "CIRCLE,TEXT"
objSelSet.SelectOnScreen filtertype:=intType, filterdata:=varData
If Err.Number <> 0 Then Exit Sub
If objSelSet.Count = 0 Then
   Call MsgBox("Unvalid selection")
ElseIf objSelSet.Count > 2 Then
   Call MsgBox(CStr(objSelSet.Count) & " Objects selected")
ElseIf objSelSet.Count = 2 Then
    If TypeOf objSelSet.Item(0) Is AcadCircle Then
       Set oCircle = objSelSet.Item(0)
    Else
       Set oCircle = objSelSet.Item(1)
    End If
    If TypeOf objSelSet.Item(1) Is AcadText Then
       Set oText = objSelSet.Item(1)
    Else
       Set oText = objSelSet.Item(0)
    End If
    Err.Clear
    If oCircle Is Nothing Or oText Is Nothing Then
       Call MsgBox("Unvalid selection")
       Exit Sub
    End If
    Dim cLine As String
    
    cLine = "TEXT= " & oText.TextString & vbNewLine
    
    cLine = cLine & "Circle radius=" & CStr(oCircle.Radius) & vbNewLine
    cLine = cLine & "Circle Center X =" & CStr(oCircle.Center(0)) & vbNewLine
    cLine = cLine & "Circle Center Y =" & CStr(oCircle.Center(1)) & vbNewLine
    cLine = cLine & "Circle Center Z =" & CStr(oCircle.Center(2)) & vbNewLine
    
    Call MsgBox(cLine)
    
End If

End Sub
Arkady вне форума  
 
Автор темы   Непрочитано 24.10.2005, 12:54
#3
HiddenM

Проектирование иссо. Программирование
 
Регистрация: 23.10.2005
Хаб
Сообщений: 52
<phrase 1=


Очень очень большое спасибо. ;-)
__________________
вот бы сейчас сесть за QB 4.5
HiddenM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. получить центр окружности