Тема: Как взорвать 3DSolid и Region программно?
Существует набор примитивов, в которых присутствуют 3DSolid и Region.
Как имея Handle или номер объекта применить к нему метод Explode?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как взорвать 3DSolid и Region программно?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Существует набор примитивов, в которых присутствуют 3DSolid и Region.
Как имея Handle или номер объекта применить к нему метод Explode?
как это в примитивах присутствуют другие объекты???
или Вы хотели сксзать "существует набор объектов, в котором присутствуют 3DSolid и Region"???
у объекта 3DSolid нет метода Explode.
я думаю (хотя не исключено, что ошибаюсь), что акад, чтобы "взорвать" этот объект испоьзует методы классов от которых образован 3DSolid. в VB6, каторый используется ACAD2006, это делать (обращатся к методам базовых классов) низя. в VB7 это делать моно, интересно а какой VB будет в ACAD2007?
Вам можно попробывать воспользоватся методом SendCommand, а со "взрывом" Region'а по-моему нет никаких проблемм
Да! "существует набор объектов, в котором присутствуют 3DSolid и Region".
А у объекта Region тоже нет метода Explode.
Воспользоватся методом SendCommand можно, но как сообщить автокаду какие объекты взрывать (не делая это вручную).
Можно до выполнения команды SendCommand программно выбрать объекты. Но как сделать выделение конкретных объектов?
Может еще у кого-то есть соображения по этому поводу?
Dim curves(0 To 1) As AcadEntity
Dim centerPoint(0 To 2) As Double
Dim radius As Double
Dim startAngle As Double
Dim endAngle As Double
centerPoint(0) = 5#: centerPoint(1) = 3#: centerPoint(2) = 0#
radius = 2#
startAngle = 0
endAngle = 3.141592
Set curves(0) = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngle, endAngle)
Set curves(1) = ThisDrawing.ModelSpace.AddLine(curves(0).StartPoint, curves(0).EndPoint)
Dim regionObj As Variant
regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
curves(0).Delete
curves(1).Delete
If MsgBox("explode region???", vbQuestion + vbYesNo) = 6 Then
regionObj(0).Explode
regionObj(0).Delete
End If
или выбери регион вручную и выполни макрос
ThisDrawing.ActiveSelectionSet.item(0).Explode
программно выбрать объекты:
ThisDrawing.ActiveSelectionSet.AddItems
Попробуем! Сенькс. О результатах сообщу.
Что-то не получается у меня добавить к выделенным объектам! :(
Не добавляется, т.к. это свойство Read Only !!!
Может кто-то еще сталкивался с выбором объектов. Подскажите, пожалуйста!
> LGers
Посмотри на http://vbamaker.narod.ru/index.html - там есть примеры
Получилось сделать следующим образом.
Сохранить чертеж в *.dxf версии 12.
Открыть этот файл. Все объемные обекты сохранены как Вхождение в блок, у которого есть метод explode.
Пока только так.
> kpblc
Там немного не то. Нужно, чтобы объекты выбирались так, как мы выбираем мышью.
Если у кого то есть идеи, то срадостью возьму их на рассмотрение.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как взорвать 3DSolid и Region программно?
Форум работает на PunBB, при поддержке Informer Technologies, Inc