Тема: offset
Существует замкнутая полилиния, из которой я созадю регион, как мне вырезать внутренню чатсть региона при помощи метода offset?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → offset
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Существует замкнутая полилиния, из которой я созадю регион, как мне вырезать внутренню чатсть региона при помощи метода offset?
offset - делает подобие, т.е. тебе нужно сначала сделать подобие, потом из обеих полилиний, получить регионы его вырезать из большего меньший.
Вырезается через
object.Boolean(Operation, Object)
это я понял, но результаты работы методов offset и AddRegion типа variant, а не полилиния, я не знаю как их преобразовать.
И еще метод boolean не работает с типом variant
> Михаил
Укажи сначала больший регион, потом вычитаемый
Option Explicit Private Sub subExtractRegion() Dim ftype(0) As Integer Dim fdata(0) As Variant Dim dxfCode As Variant Dim dxfVal As Variant Dim oEnt1 As AcadEntity Dim oEnt2 As AcadEntity Dim pickPt As Variant Dim oReg As AcadRegion Dim exReg As AcadRegion ftype(0) = 0 fdata(0) = "REGION" dxfCode = ftype dxfVal = fdata Dim oSset As AcadSelectionSet With ThisDrawing.SelectionSets While .Count > 0 .Item(0).Delete Wend End With With ThisDrawing.SelectionSets Set oSset = .Add("$Regions$") End With oSset.SelectOnScreen dxfCode, dxfVal If oSset.Count <> 2 Then MsgBox "Выбрать только 2 региона" Exit Sub Set oEnt1 = oSset.Item(0) Set oEnt2 = oSset.Item(1) Set oReg = oEnt1 Set exReg = oEnt2 If oReg.Area < exReg.Area Then MsgBox "Сначала нужно выбрать больший регион" Exit Sub On Error Resume Next If oReg.ObjectID <> exReg.ObjectID Then oReg.Boolean acSubtraction, exReg End If oSset.Delete Set oSset = Nothing End Sub Sub test() subExtractRegion End Sub
~'J'~
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → offset
Форум работает на PunBB, при поддержке Informer Technologies, Inc