Отправлено: 28.09.07 12:24. Заголовок: Определение всех пересечений деталей в сборке
Представляю вашему вниманию макрос по определению всех возможных пересечений деталей в сборке. Основан на примере из API. тестировался на AIP 11 SP3.
Public Sub FindAllInterferences() Dim oDoc As AssemblyDocument Set oDoc = ThisApplication.ActiveDocument
Dim oResults As InterferenceResults Dim oCheckSet As ObjectCollection Set oCheckSet = ThisApplication.TransientObjects.CreateObjectCollection
' Add all occurrences to the object collection Dim oOcc As ComponentOccurrence For Each oOcc In oDoc.ComponentDefinition.Occurrences oCheckSet.Add oOcc Next
' Get the interference between everything. Set oResults = oDoc.ComponentDefinition.AnalyzeInterference(oCheckSet)
If oResults.Count = 1 Then MsgBox "There is 1 interference." ElseIf oResults.Count > 1 Then MsgBox "There are " & oResults.Count & " interferences." End If
If oResults.Count > 0 Then Dim oHS1 As HighlightSet Set oHS1 = oDoc.HighlightSets.Add oHS1.SetColor 255, 0, 0 Dim oHS2 As HighlightSet Set oHS2 = oDoc.HighlightSets.Add oHS2.SetColor 0, 255, 0
For i = 1 To oResults.Count oHS1.Clear oHS2.Clear oHS1.AddItem oResults.Item(i).OccurrenceOne oHS2.AddItem oResults.Item(i).OccurrenceTwo MsgBox "The interference volume between " & oResults.Item(i).OccurrenceOne.Name & " and " & oResults.Item(i).OccurrenceTwo.Name & " is " & oResults.Item(i).Volume & " cm3" Next
oHS1.Clear oHS2.Clear Else MsgBox "There is no interference." End If End Sub
Меню Средства (Tools) - Макросы (Macros) - Макросы (Macros...) - пишем новое имя макроса (например, FindAllInterferences) - нажимаем кнопку Create - запускается Microsoft Visual Basic - в нем уже будет добавлен текст: Public Sub FindAllInterferences() ...
End Sub
Копируем текст макроса из сообщения (то, что между строкой названия и end sub) и вставляем в Microsoft Visual Basic между названием функции и end sub.
Теперь на экране списка макросов (Средства (Tools) - Макросы (Macros) - Макросы (Macros...)) можно выбрать FindAllInterferences и нажать Run (первая кнопка).
Пост N: 256
Откуда: Россия, Новосибирск
Рейтинг:
0
Отправлено: 03.10.07 15:20. Заголовок: Re:
Вот именно мудрит. Откуда мне знать какие компоненты сборки проверять на пересечения, если я эти пересечения собственно и хочу найти. В конце концов я обязан знать обо всех пересечениях.
Пост N: 442
Откуда: Россия, Новосибирск
Рейтинг:
2
Отправлено: 03.10.07 17:45. Заголовок: Re:
Все пересечения сразу можно найти тем же путем (встроенной в AI командой), правдо лишние "пересечения" типа Винт в резьбе отверстия придется "фильтровать" отдельно.
Все даты в формате GMT
3 час. Хитов сегодня: 3
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет