kids 发表于 2011-11-17 20:56:33

跪求高手

我想做这样一件事:
      在我的当前图形里有很多圆,我想一次将每个圆的圆心坐标输出到txt文件中,哪位高手能帮帮我,谢谢!

zhuirvine 发表于 2011-11-17 22:59:29

你想用哪种方式实现啊,是用.COM引用呢,还是那个DLL呢。。反正思路是一样的,弄个带过滤的选择集,选择源,然后遍历里面的元素,直接将每个元素的圆心输出到TXT。。就这么简单啦。。

kids 发表于 2011-11-19 08:00:45

zhuirvine 发表于 2011-11-17 22:59 static/image/common/back.gif
你想用哪种方式实现啊,是用.COM引用呢,还是那个DLL呢。。反正思路是一样的,弄个带过滤的选择集,选择源, ...

恩 ,我这两天研究了下,我是用VBA做的,但是我现在做到能遍历每个圆,但是不知道怎么输出到TXT文件中,高手能不能指点下

guohq 发表于 2011-11-19 23:23:05

本帖最后由 guohq 于 2011-11-19 23:25 编辑

Sub WriteCir()

    Dim ss As AcadSelectionSet
    If IsNull(ThisDrawing.SelectionSets.Item("cir")) Then
      Set ss = ThisDrawing.SelectionSets.Add("cir")
      Else
      Set ss = ThisDrawing.SelectionSets.Item("cir")
      ss.Clear
    End If
      
   
    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = "Circle"
   
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue

   
    ss.Select acSelectionSetAll, , , groupCode, dataCode
   
    Dim cir As AcadCircle, obj As AcadEntity
    Dim ptAs Variant

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim pfile As Object
    Set pfile = fso.CreateTextFile("c:\ttttt.txt", True)
   
    For Each obj In ss
       Set cir = obj
       pt = cir.Center
       pfile.WriteLine (pt(0) & "   " & pt(1))
    Next

    pfile.Close
End Sub

kids 发表于 2011-11-20 10:36:20

guohq 发表于 2011-11-19 23:23 static/image/common/back.gif


谢谢但是程序运行时报错未找到主键

guohq 发表于 2011-11-21 21:51:38

我测试过,可以运行的,你自己可以设断点调试一下,看哪句话出错了

sailorcwx 发表于 2011-11-22 12:19:19

在一开始增加一个On Error Resume Next
因为一开始没有cir选集的话,ThisDrawing.SelectionSets.Item("cir")就会出错

kids 发表于 2011-11-22 22:34:51

sailorcwx 发表于 2011-11-22 12:19 static/image/common/back.gif
在一开始增加一个On Error Resume Next
因为一开始没有cir选集的话,ThisDrawing.SelectionSets.Item("cir ...

恩是这样的谢谢

guohq 发表于 2011-11-22 23:12:20

呵呵,不怎么用VBA,没有考虑到这些
页: [1]
查看完整版本: 跪求高手