关于经过两点的各类线获取
我用的如下代码: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里头,一般都是最后一个才是真正要获取的,这是为什么啊?
栏选的方式是与两点连线有交点的图元就会被选中,你可以选择后在遍历过滤一下 那有什么更好的方法只选择startpoint和endpoint只为给出的两点的线呢?上面方法对于大图来说,搜索时间太烦 过滤组码10/11
这样吗?但是我搜索不到线条
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
复制代码 我按照 版主的代码改了,但是还是没有?
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)
多段线用下面的
{0 ,"LWPOLYLINE"},
{10, ss.pos},
{10, ps.pos}
版主,好像还是没有唉,我搜索所有直线包括多段线,或者单独多段线也不行。
我这里测试是正常的复制代码
页:
[1]