Тема: offset

Существует замкнутая полилиния, из которой я созадю регион, как мне вырезать внутренню чатсть региона при помощи метода offset?

Re: offset

offset - делает подобие, т.е. тебе нужно сначала сделать подобие, потом из обеих полилиний, получить регионы его вырезать из большего меньший.
Вырезается через
object.Boolean(Operation, Object)

Re: offset

это я понял, но результаты работы методов offset и AddRegion типа variant, а не полилиния, я не знаю как их преобразовать.
И еще метод boolean не работает с типом variant

Re: offset

> Михаил
Укажи сначала больший регион, потом вычитаемый

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'~

Re: offset

Cпасибо большое, правда я уже сам разобрался :)

Re: offset

> Михаил
Рад что сам, это много лучше :)
~'J'~