wanghere 发表于 2007-5-24 16:10:00

新人报道,问个初级的问题

我现在做工程老要算管道的长度,我想用vba来帮我完成,有点vb的基础。不过对这个还是蛮陌生,我想算同一颜色的线的长度,看了少少书,知道可以获取他的起点和终点,但是我还不会让它自动。麻烦大侠给个例子我瞧瞧吧!就给个获取红色直线的长度吧?谢谢拉

laoliu09 发表于 2007-5-24 16:57:00

凡事不能急于求成哦,还是从基本学起好,祝你成功!你需要的功能大致如下:
Sub test()
    Dim ss As AcadSelectionSet
    Dim ft(1) As Integer, fd(1) As Variant
    Dim l As AcadLine
   
    On Error Resume Next
   
    '安全创建选择集
    Set ss = ThisDrawing.SelectionSets.Add("ss1")
    If Err Then
      Err.Clear
      Set ss = ThisDrawing.SelectionSets.item("ss1")
      ss.Clear
    End If
   
    '过滤设置
    ft(0) = 0: fd(0) = "line"
    ft(1) = 62: fd(1) = 1
   
    '过滤选择
    ss.Select acSelectionSetAll, ft, fd
   
    '距离累加
    Dim dis As Double
    For Each l In ss
      dis = dis + l.Length
    Next
    MsgBox "管线总长为:" & dis
   
    '删除选择集
    ss.Delete
End Sub

wanghere 发表于 2007-5-24 17:18:00

选择集是这样用的呀!谢谢!非常感谢laoliu09!

wanghere 发表于 2007-5-24 17:34:00

ss.Select acSelectionSetAll, ,,ft, fd
太高兴了。我决定每天进来学一点。呵呵

laoliu09 发表于 2007-5-24 18:54:00

选择集很多用法的,也很容易犯莫名错误,建议先熟悉cad对像模型!
页: [1]
查看完整版本: 新人报道,问个初级的问题