兰州人 发表于 2006-11-21 18:06:00

遍历AcDbRotatedDimension实体,获取尺寸线各项参数

<P>通过以下语句,可以获得AcDbRotatedDimension实体名,ID号等数据</P>
<P>&nbsp; Dim xx As AcadEntity<BR>&nbsp; For Each xx In ThisDrawing.ModelSpace<BR>&nbsp;&nbsp;&nbsp; Debug.Print xx.ObjectName<BR>&nbsp; Next</P>
<P>可以得到&nbsp;多义线实体AcDbPolyline和尺寸线实体AcDbRotatedDimension<BR>''</P>
<P>通过以下语句可得到一个矩形多义线的顶点坐标</P>
<P>&nbsp;Dim i, n As Integer<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; 'Dim newObjs As AcadPolyline<BR>&nbsp;&nbsp;&nbsp; Dim newObjs As AcadLWPolyline&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp; Dim retCoord As Variant<BR>&nbsp;&nbsp;&nbsp; Dim points(500) As Double<BR>&nbsp; n = ThisDrawing.ModelSpace.Count<BR>&nbsp; Debug.Print n<BR>Dim iii As Integer<BR>&nbsp; For i = 0 To n - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug.Print<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If ThisDrawing.ModelSpace.Item(i).ObjectName = "AcDbPolyline" Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set newObjs = ThisDrawing.ModelSpace.Item(i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retCoord = newObjs.Coordinates<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mynpoint = (UBound(retCoord) + 1) / 2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug.Print mynpoint, "fdsafdsafdsa"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For iii = 0 To mynpoint * 2 - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug.Print ThisDrawing.ModelSpace.Item(i).ObjectID &amp; " point(" &amp; iii &amp; ") = " &amp; retCoord(iii)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next iii<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.......<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp; Next i<BR>结果是</P>
<P>2130183496 point(0) = .231424421804538<BR>2130183496 point(1) = 7.30334885445212<BR>2130183496 point(2) = 12.245379023135<BR>2130183496 point(3) = 7.30334885445212<BR>2130183496 point(4) = 12.245379023135<BR>2130183496 point(5) = -3.22310514584269<BR>2130183496 point(6) = .231424421804538<BR>2130183496 point(7) = -3.22310514584269</P>
<P><BR><FONT color=#ff0000 size=2>问:如何获得尺寸线实体数据,与绘图原状相同.</FONT></P>

<P><BR>&nbsp;</P>

兰州人 发表于 2006-11-21 18:23:00

<P>用list命令得到直径尺寸数据</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIMENSION&nbsp; 图层: 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 空间: 模型空间<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 句柄 = 364<BR>关联: 是<BR>类型: 直径<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定义点: X=&nbsp; 18.9297&nbsp; Y=&nbsp; -0.8477&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>定义点:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=&nbsp; 26.2498&nbsp; Y=&nbsp;&nbsp; 5.5871&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>用户指定 文字位置: X=&nbsp; 18.1133&nbsp; Y=&nbsp; -1.5654&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>默认文字<BR>标注样式:ISO-25<BR>标注样式替代:<BR>&nbsp;DIMUPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开<BR></P>
<P>用list命令得到垂直尺寸线的参数</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIMENSION&nbsp; 图层: 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 空间: 模型空间<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 句柄 = 34B<BR>关联: 是<BR>类型:垂直<BR>第一尺寸界线&nbsp;&nbsp; 定义点:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=&nbsp;&nbsp; 0.2314&nbsp; Y=&nbsp; -3.2231&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>第二尺寸界线&nbsp;&nbsp; 定义点:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=&nbsp;&nbsp; 0.2314&nbsp; Y=&nbsp;&nbsp; 7.3033&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>尺寸线&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定义点:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=&nbsp; -4.1720&nbsp; Y=&nbsp;&nbsp; 7.3033&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>默认 文字位置: X=&nbsp; -6.2553&nbsp; Y=&nbsp;&nbsp; 2.0401&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>默认文字<BR>标注样式:ISO-25<BR>用list命令得到水平线参数</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIMENSION&nbsp; 图层: 0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 空间: 模型空间<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 句柄 = 332<BR>关联: 是<BR>类型:水平<BR>第一尺寸界线&nbsp;&nbsp; 定义点:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=&nbsp;&nbsp; 0.2314&nbsp; Y=&nbsp;&nbsp; 7.3033&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>第二尺寸界线&nbsp;&nbsp; 定义点:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=&nbsp; 12.2454&nbsp; Y=&nbsp;&nbsp; 7.3033&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>尺寸线&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 定义点:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X=&nbsp; 12.2454&nbsp; Y=&nbsp;&nbsp; 8.8798&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>默认 文字位置: X=&nbsp;&nbsp; 6.2384&nbsp; Y=&nbsp; 10.9631&nbsp; Z=&nbsp;&nbsp; 0.0000<BR>默认文字<BR>标注样式:ISO-25<BR></P>
页: [1]
查看完整版本: 遍历AcDbRotatedDimension实体,获取尺寸线各项参数