Тема: Как выделить текущий объект?
слушайте.
например у меня на форме есть список из всех объектов выбранного чертежа.
и хотелось бы, чтобы выбранный в данный момент объект на форме был выделен на чертеже.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как выделить текущий объект?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
слушайте.
например у меня на форме есть список из всех объектов выбранного чертежа.
и хотелось бы, чтобы выбранный в данный момент объект на форме был выделен на чертеже.
Что значит "список из всех объектов"?
Каждый объект имеет множество свойств (и методов тоже), причем для объектов различных классов эти множества различны. И что же перечисляется в этом списке?
А ввобще-то объек выделяется примерно так:
1. Описываем переменные
Dim Objs(0 To 0) As AcadEntity
Dim Ss As AcadSelectionSet
2. Объект, выделенный в форме, идентифицируем на чертеже и заносим в Objs. Скажем, если объект находится в пространстве модели и имеет номер NUM, то
Set Objs(0) = ThisDrawing.ModelSpace.Item(...)
(
ПРОМАХНУЛСЯ (не ту клавишу нажал)
Каждый объект имеет множество свойств (и методов тоже), причем для объектов различных классов эти множества различны. И что же перечисляется в этом списке?
А ввобще-то объек выделяется примерно так:
1. Описываем переменные
Dim Objs(0 To 0) As AcadEntity
Dim Ss As AcadSelectionSet
2. Объект, выделенный в форме, идентифицируем на чертеже и заносим в Objs. Скажем, если объект находится в пространстве модели и имеет номер NUM, то
Set Objs(0) = ThisDrawing.ModelSpace.Item(NUM)
3. Наконец, выделяем объект на чертеже:
Ss.AddItems ssobjs
Ss.Highlight = True
Ss.Highlight = True- не работает. выдает ошибку.
работает
Ss.Highlight(True)
но при этом объект становится каким-то пунктирным.
хотелось бы, чтобы он был именно выделен, как будто по нему щелкнули мышкой.
Точно не помню, но, по-моему, способ выделения задается где-то в опциях. Может быть, и изнутри тоже можно (на VBA)
подскажите чего нибудь. А то 4 месяца уже немогу закончить подъпрограмму. Как уперся в невозможность выполнить действие над объектом, которого нет в его свойствах, так и все!.
Dim ss As AcadSelectionSet
Me.Hide
Set ss = ThisDrawing.ActiveSelectionSet
ss.SelectOnScreen
ss.Highlight True
ThisDrawing.SendCommand "(sssetfirst (ssget ""_P"") ) "
Me.Show
К сожалению это делает только вид того, как будто объекты выделены. На самом же деле, когда предпринимается попытка воспользоваться этим выделением и передвинуть примитивы командой "move" в "модели", то функция перемещения объектов запрашивает новый выбор объектов :(
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как выделить текущий объект?
Форум работает на PunBB, при поддержке Informer Technologies, Inc