斑竹的关于VBA中的TRIM命令的编程
看了斑竹的关于VBA中的TRIM命令的编程,受益非浅。感谢啊!自己也编了一部分程序测试了一下,很好用,但是也有部分问题:
1。对于LINE对象TRIM没问题,但是对于POLYLINE对象剪切时只能剪掉其中的一段,也就是指定了选折索引点的那一段。如图中红色的部分是要剪的,但是只能剪掉右边的(如图中的右图)我用LIGHTWEIGHTPOLYLINE对象也是一样的,不知为什么,不象我门平时使用CAD的TRIM那样点选一次就全剪掉。
2.自己不太熟习,双元表,图元方面的知识,请问在什么地方可以看到这方面内容。 "(list(handent " & Chr(34) & entHandle & Chr(34) & _<BR> ")(list " & Str(Pnt(0)) & Str(Pnt(1)) & Str(Pnt(2)) & "))" tu 我想试出你说的效果,但一直我这里都很正常,最好你将你的例图上传供大家试试。 对了,我用的是CAD2002
<BR>Sub TT()<BR>Dim point1(0 To 5) As Double<BR>Dim point2(0 To 2) As Double<BR>Dim point3(0 To 5) As Double<BR>Dim point4(0 To 2) As Double<BR>Dim line1 As AcadEntity<BR>Dim line2 As AcadEntity<BR>Dim a<BR>point1(0) = 0: point1(1) = 10<BR>point1(2) = 10: point1(3) = 10<BR>point1(4) = 20: point1(5) = 20<BR>point2(0) = 20: point2(1) = 20: point2(2) = 0<BR>point3(0) = 5: point3(1) = 0: point3(2) = 0<BR>point3(3) = 5: point3(4) = 20: point3(5) = 0<BR>point4(0) = 5: point4(1) = 20: point4(2) = 0
Set line1 = ThisDrawing.ModelSpace.AddLightWeightPolyline(point1)<BR>Set line2 = ThisDrawing.ModelSpace.AddPolyline(point3)<BR>ZoomAll<BR> Dim det1 As String<BR> Dim DET3 As String<BR> det1 = axEnt2lspEnt(line2)<BR> DET3 = axEnt2lspEnt(line1)<BR> Dim DET4<BR> Dim det2 As String<BR> det2 = GetDoubleEntTable(line1, point2)<BR> DET4 = GetDoubleEntTable(line2, point4)<BR> 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<BR> Dim entHandle As String<BR> entHandle = entObj.Handle<BR> GetDoubleEntTable = "(list(handent " & Chr(34) & entHandle & Chr(34) & _<BR> ")(list " & Str(Pnt(0)) & Str(Pnt(1)) & Str(Pnt(2)) & "))"<BR>End Function
<BR>'转换图元函数
Public Function axEnt2lspEnt(entObj As AcadEntity) As String<BR> Dim entHandle As String<BR> entHandle = entObj.Handle<BR> axEnt2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")"<BR>End Function
<BR>
页:
[1]