对了,我用的是CAD2002
Sub TT() Dim point1(0 To 5) As Double Dim point2(0 To 2) As Double Dim point3(0 To 5) As Double Dim point4(0 To 2) As Double Dim line1 As AcadEntity Dim line2 As AcadEntity Dim a point1(0) = 0: point1(1) = 10 point1(2) = 10: point1(3) = 10 point1(4) = 20: point1(5) = 20 point2(0) = 20: point2(1) = 20: point2(2) = 0 point3(0) = 5: point3(1) = 0: point3(2) = 0 point3(3) = 5: point3(4) = 20: point3(5) = 0 point4(0) = 5: point4(1) = 20: point4(2) = 0
Set line1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(point1) Set line2 = ThisDrawing.ModelSpace.AddPolyline(point3) ZoomAll Dim det1 As String Dim DET3 As String det1 = axEnt2lspEnt(line2) DET3 = axEnt2lspEnt(line1) Dim DET4 Dim det2 As String det2 = GetDoubleEntTable(line1, point2) DET4 = GetDoubleEntTable(line2, point4) ThisDrawing.SendCommand "_trim" & vbCr & det1 & vbCr & DET3 & vbCr & vbCr & det2 & vbCr & DET4 & vbCr & vbCr
End Sub
'转换双元表的函数
Public Function GetDoubleEntTable(entObj As AcadEntity, Pnt As Variant) As String Dim entHandle As String entHandle = entObj.Handle GetDoubleEntTable = "(list(handent " & Chr(34) & entHandle & Chr(34) & _ ")(list " & Str(Pnt(0)) & Str(Pnt(1)) & Str(Pnt(2)) & "))" End Function
'转换图元函数
Public Function axEnt2lspEnt(entObj As AcadEntity) As String Dim entHandle As String entHandle = entObj.Handle axEnt2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")" End Function