jsyang_ren 发表于 2004-3-8 11:04:00

斑竹的关于VBA中的TRIM命令的编程

看了斑竹的关于VBA中的TRIM命令的编程,受益非浅。感谢啊!


自己也编了一部分程序测试了一下,很好用,但是也有部分问题:


1。对于LINE对象TRIM没问题,但是对于POLYLINE对象剪切时只能剪掉其中的一段,也就是指定了选折索引点的那一段。如图中红色的部分是要剪的,但是只能剪掉右边的(如图中的右图)我用LIGHTWEIGHTPOLYLINE对象也是一样的,不知为什么,不象我门平时使用CAD的TRIM那样点选一次就全剪掉。


2.自己不太熟习,双元表,图元方面的知识,请问在什么地方可以看到这方面内容。                                                                       "(list(handent " &amp; Chr(34) &amp; entHandle &amp; Chr(34) &amp; _<BR>                                                                                                                                                               ")(list " &amp; Str(Pnt(0)) &amp; Str(Pnt(1)) &amp; Str(Pnt(2)) &amp; "))"

jsyang_ren 发表于 2004-3-8 11:13:00

tu

mccad 发表于 2004-3-8 14:36:00

我想试出你说的效果,但一直我这里都很正常,最好你将你的例图上传供大家试试。

jsyang_ren 发表于 2004-3-9 15:08:00

对了,我用的是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" &amp; vbCr &amp; det1 &amp; vbCr &amp; DET3 &amp; vbCr &amp; vbCr &amp; det2 &amp; vbCr &amp; DET4 &amp; vbCr &amp; 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 " &amp; Chr(34) &amp; entHandle &amp; Chr(34) &amp; _<BR>                                                                                                                                                               ")(list " &amp; Str(Pnt(0)) &amp; Str(Pnt(1)) &amp; Str(Pnt(2)) &amp; "))"<BR>End Function


<BR>'转换图元函数


Public Function axEnt2lspEnt(entObj As AcadEntity) As String<BR>                       Dim entHandle As String<BR>                       entHandle = entObj.Handle<BR>                       axEnt2lspEnt = "(handent " &amp; Chr(34) &amp; entHandle &amp; Chr(34) &amp; ")"<BR>End Function


<BR>
页: [1]
查看完整版本: 斑竹的关于VBA中的TRIM命令的编程