Без мата, и обработки событий врятли!
Я у себя в программе использую такой код:
Private Sub AcadDocument_EndCommand(ByVal CommandName As String)
' событие в котором происходит перерисовка профиля
Dim objSelSet As AcadSelectionSet ' коллекция выбранных элементов
Dim objSel As AcadEntity ' объект примитива из колекции objSelSet
Dim I As Long
Dim Cnt As Long
If (CommandName = "GRIP_STRETCH") Then
' обработка ошибок
On Error GoTo ErrControl
Set objSelSet = ThisDrawing.ActiveSelectionSet
' проверяем объекты на принадлежность базе и перерисовываем
Cnt = 0
For Each objSel In objSelSet
' если это линия то
If (TypeOf objSel Is AcadLine) Or (TypeOf objSel Is AcadPolyline) Or (TypeOf objSel Is AcadLWPolyline) Or (TypeOf objSel Is Acad3DPolyline) Then
' мои подпрограммы обработки
Call InitSelf
Call objProf.RepaintProf(objSel)
Cnt = Cnt + 1
If Cnt > 20 Then Exit For
End If
Next
End If
Set objSelSet = Nothing
Set objSel = Nothing
Exit Sub
' удаляем временную систему координат
Call objProf.EndDrw
ErrControl:
Resume Next
' просто ничего не показываем
End Sub
з.ы. Чуть не забыл, у меня нужная линия содержит еще и Xdata, по которым я определяю, что это та самая линия ;)