下面程序你应该满意的,不满意请回復
Public Sub od() On Error Resume Next Dim i As Integer, ssetobj As AcadSelectionSet, I1 As Integer, selobj As AcadEntity Dim str As String, shu As Double, I2 As Integer, Offsetobj As Variant i = ThisDrawing.SelectionSets.Count While (i > 0) If ThisDrawing.SelectionSets.Item(i - 1).Name = "od" Then ThisDrawing.SelectionSets.Item(i - 1).Delete End If i = i - 1 Wend str = ThisDrawing.Utility.GetString(False, "Please input number you want to offset :") str1 = Val(str) Set ssetobj = ThisDrawing.SelectionSets.Add("od") ssetobj.SelectOnScreen For I1 = 0 To ssetobj.Count - 1 Set selobj = ssetobj.Item(I1) Offsetobj = selobj.Offset(str1) I2 = UBound(Offsetobj) If Offsetobj(I2).Area < selobj.Area Then Offsetobj(I2).Delete Offsetobj = selobj.Offset(-str1) End If Next End Sub
|