davehuhudave 发表于 2010-8-26 09:31:00

关于经过两点的各类线获取

我用的如下代码:
            Dim acTypValAr(0) As TypedValue
            acTypValAr.SetValue(New TypedValue(DxfCode.Start, "*Line"), 0)
            Dim pc As New Point3dCollection
            pc.Add(ss.pos)
            pc.Add(ps.pos)
            Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)
            Dim acSSPrompt As PromptSelectionResult = ed.SelectFence(pc, acSelFtr)
            Dim acSSet As SelectionSet = acSSPrompt.Value
            If Not acSSet Is Nothing Then
                obc = acSSet.GetObjectIds
             end if
奇怪的是,明乐筑天下过两点的直线只有一条,却总是得到好几条,并且从我调试的前几个点来看,筛选的obc里头,一般都是最后一个才是真正要获取的,这是为什么啊?

雪山飞狐_lzh 发表于 2010-8-26 11:01:00

栏选的方式是与两点连线有交点的图元就会被选中,你可以选择后在遍历过滤一下

davehuhudave 发表于 2010-8-26 11:56:00

那有什么更好的方法只选择startpoint和endpoint只为给出的两点的线呢?上面方法对于大图来说,搜索时间太烦

雪山飞狐_lzh 发表于 2010-8-26 16:14:00

过滤组码10/11

davehuhudave 发表于 2010-8-26 17:21:00

          这样吗?但是我搜索不到线条
Dim acTypValAr(4) As TypedValue
            acTypValAr.SetValue(New TypedValue(DxfCode.Start, "*Line"), 0)
            acTypValAr.SetValue(New TypedValue(-4, ""), 4)
            Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)
            Dim acSSPrompt As PromptSelectionResult = ed.SelectAll(acSelFtr)
            Dim acSSet As SelectionSet = acSSPrompt.Value

雪山飞狐_lzh 发表于 2010-8-26 22:04:00

复制代码

davehuhudave 发表于 2010-8-27 08:40:00

我按照 版主的代码改了,但是还是没有?
Dim acTypValAr(10) As TypedValue
            acTypValAr.SetValue(New TypedValue(DxfCode.Start, "*Line"), 0)
            acTypValAr.SetValue(New TypedValue(-4, ""), 5)
            acTypValAr.SetValue(New TypedValue(-4, ""), 9)
            acTypValAr.SetValue(New TypedValue(-4, "XOR>"), 10)
            Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)
            Dim acSSPrompt As PromptSelectionResult = ed.SelectAll(acSelFtr)

雪山飞狐_lzh 发表于 2010-8-27 10:54:00

多段线用下面的
{0 ,"LWPOLYLINE"},
{10, ss.pos},
{10, ps.pos}

davehuhudave 发表于 2010-8-27 12:33:00

版主,好像还是没有唉,我搜索所有直线包括多段线,或者单独多段线也不行。

雪山飞狐_lzh 发表于 2010-8-27 19:17:00

我这里测试是正常的复制代码
页: [1]
查看完整版本: 关于经过两点的各类线获取