artdrink 发表于 2006-11-29 15:31:00

求助一个关于选择集的问题

<P>求助一个关于选择集的问题,有一张CAD画的表格,想提取里面的数据,如图</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">行与行之间是等距的,相差<FONT face="Times New Roman">14.25,</FONT>该文字在行之间,并未超过,参照帮助编了一个读取的程序,不知为何,老是不能正常读出来,有的读不出来,能读的,但是数值不对!请问给为高手可能的问题出现在什么地方<FONT face="Times New Roman">:</FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">Sub SelectTEXT()<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Dim i%<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Dim entity As AcadEntity<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Dim ssetObj As AcadSelectionSet<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; For i = 1 To 32<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Set ssetObj = ThisDrawing.SelectionSets.Add("SS1")<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Dim mode As Integer<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Dim pointsArray(0 To 11) As Double<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Dim FilterType(3) As Integer<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Dim FilterData(3) As Variant<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; mode = acSelectionSetFence<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; pointsArray(0) = 1852.7125: pointsArray(1) = -90.3167 - 14.25 * (i - 1): pointsArray(2) = 0<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; pointsArray(3) = 1926.9625: pointsArray(4) = -90.3167 - 14.25 * i: pointsArray(5) = 0<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; pointsArray(6) = 1852.7125: pointsArray(7) = -90.3167 - 14.25 * i: pointsArray(8) = 0<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; pointsArray(9) = 1926.9625: pointsArray(10) = -90.3167 - 14.25 * (i - 1): pointsArray(11) = 0<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterType(0) = -4<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterData(0) = "&lt;or"<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterType(1) = 0<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterData(1) = "TEXT"<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterType(2) = 0<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterData(2) = "MTEXT"<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterType(3) = -4<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; FilterData(3) = "or&gt;"<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; ssetObj.SelectByPolygon mode, pointsArray, FilterType, FilterData<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; For Each entity In ssetObj<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Debug.Print entity.TextString<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Next<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; ssetObj.Delete<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">&nbsp;&nbsp;&nbsp; Next i<o:p></o:p></FONT></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman">End Sub</FONT></P>

iq0050 发表于 2006-11-30 09:18:00

<P>本人测试本段程序在CAD2004下结果正确,最好把你的图也传上来看看.</P>
页: [1]
查看完整版本: 求助一个关于选择集的问题