jstxy 发表于 2008-7-1 10:37:00

[求助]CAD中坐标值批量转移到EXCEL中

<p>我想把CAD中光标所点的坐标值批量转移到EXCEL表格中。</p><p>例如:我打开一张CAD图形,上面有好多圆,我每点击一下(仅扑捉点击圆心),就会在EXCEL表格中按顺序把我点击的坐标数值显示出来</p><p>点号&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y</p><p>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;2000</p><p>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2000</p><p>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3000</p><p>……</p><p>请高手帮我解决这个问题,谢谢!(能不能用一个lisp程序,把cad指定点坐标导出到EXCEL)?</p><p></p>

autocadvba 发表于 2008-7-1 11:14:00

可以

可以帮到你的忙的,我的联系方式是QQ375564896

yeqb4749659 发表于 2008-7-8 08:08:00

<p>你可以先创建一个记事本。先把坐标导入记事本在导入excel</p><p>Dim us3 As Integer '左下角Y坐标<br/>us1 = ThisDrawing.GetVariable("userr1")<br/>us2 = ThisDrawing.GetVariable("userr2")<br/>us3 = ThisDrawing.GetVariable("userr3")<br/>'Dim pnt_cord(0 To 1) As Double<br/>Dim sset As AcadSelectionSet <br/>Dim i As Integer</p><p>For i = 0 To ThisDrawing.SelectionSets.Count - 1<br/>ThisDrawing.SelectionSets.Item(i).Clear<br/>ThisDrawing.SelectionSets.Item(i).Delete<br/>Next<br/>ft(0) = 0<br/>fd(0) = "Point" <br/>Set sset = ThisDrawing.SelectionSets.Add("Sset_P") <br/>sset.Select acSelectionSetAll, , , ft, fd <br/>ReDim pnt_cord(sset.Count - 1) As Variant <br/>ReDim x(sset.Count - 1)<br/>ReDim y(sset.Count - 1)<br/>dnr = ""</p><p>For i = 0 To sset.Count - 1 <br/>pnt_cord(i) = sset.Item(i).Coordinates </p><p>Select Case us1<br/>Case 500<br/>If us2 = 0 And us3 = 0 Then<br/>x(i) = (pnt_cord(i)(1) - 100) / 2<br/>y(i) = (pnt_cord(i)(0) - 100) / 2<br/>ElseIf us2 = 100 And us3 = 100 Then<br/>x(i) = (pnt_cord(i)(1) + 100) / 2<br/>y(i) = (pnt_cord(i)(0) + 100) / 2<br/>End If<br/>Case 1000<br/>If us2 = 0 And us3 = 0 Then<br/>x(i) = pnt_cord(i)(1) - 100<br/>y(i) = pnt_cord(i)(0) - 100<br/>ElseIf us2 = 100 And us3 = 100 Then<br/>x(i) = pnt_cord(i)(1)<br/>y(i) = pnt_cord(i)(0)<br/>End If</p><p>End Select</p><p><br/>'*******按scs2000展点文件格式排列点<br/>dnr = dnr &amp; vbCrLf &amp; (i + 1) &amp; vbCrLf &amp; "" &amp; vbCrLf &amp; y(i) &amp; vbCrLf &amp; x(i) &amp; vbCrLf &amp; pnt_cord(i)(2)</p><p>Next<br/>outtxt = sset.Count &amp; dnr<br/>MsgBox "点导出成功,请保存文件!"<br/>End Sub</p><p></p><p></p>

kdst 发表于 2009-4-16 23:49:00

<p>谢谢共享!</p>

carl712 发表于 2010-2-22 17:48:00

是个好东西,不知是否可行啊。

ljttjl 发表于 2010-2-24 19:31:00

查看<a href="http://ljttjl.ys168.com">http://ljttjl.ys168.com</a>&nbsp; <a class="actuator" id="F480358_20081016按点击点的顺序进行编号且提取其坐标程序" href="javascript:">20081016目录 按点击点的顺序进行编号且提取其坐标程序</a><br/>
页: [1]
查看完整版本: [求助]CAD中坐标值批量转移到EXCEL中