乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 29|回复: 3

[编程交流] VB。有效交叉获胜

[复制链接]

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 14:15:08 | 显示全部楼层 |阅读模式
我正在构建一个VB点网络程序,从图形中提取数据,而无需打开和渲染每个图形。我通过以下方式实现这一点:
 
'将数据库源初始化为读取
Dim dbExtract作为新的数据库服务。数据库
数据库提取。ReadDwgFile(文件名,IO.FileShare.Read,True,“”)
 
由于这意味着图形将在内存中打开,因此EditorInput不可用,这是交叉窗口选择集方法所在的位置。有人知道如何在没有EditorInput的情况下有效地搜索指定窗口中的任何线或线吗?
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 14:53:07 | 显示全部楼层
嗯,我想出来了。。。下面是我的代码片段的副本,以帮助像我这样想知道的人。诀窍在于使用多段线对象的IntersectWith方法。还请注意,您必须初始化一个空的Point3dCollection,IntersectWith方法将在其中填充与您尝试验证的实体相关的点。换句话说,对于这个论点,请思考ByRef而不是ByVal:
 
'为多边形交叉窗口创建点集合并指定点
Dim ptcollSelectionWindowFront作为新的点3DCollection
ptcollSelectionWindowFront。添加(ptTBPoint1)
ptcollSelectionWindowFront。添加(ptTBPoint2)
ptcollSelectionWindowFront。添加(ptExtTBPoint2)
ptcollSelectionWindowFront。添加(ptExtTBPoint1)
'初始化多边形交叉窗口
Dim polySelWindowFront作为新的数据库服务。Polyline2d(DatabaseServices.Poly2dType.SimplePoly_
ptcollSelectionWindowFront,0,True,0,0,Nothing)
'初始化交叉指示器
Dim blnCrossing As Boolean=False
'这里的代码是在程序迭代实体时获取实体
'将迭代中的每个值分配给'CrossEntity'
'确定图元是否为直线/多线并穿过窗口
如果交叉实体的类型是DatabaseServices。跨实体的行或类型是DatabaseServices。然后是多段线
Dim ptcollCross作为新的点3DCollection
窗口多边形。IntersectWith(CrossEntity,DatabaseServices.Intersect.OnBothOperands,ptcollCross,0,0)
如果ptcollCross。然后计数>0
blnCrossing=真
其他的
blnCrossing=假
如果结束
如果结束
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:11:29 | 显示全部楼层
很好的即兴表演。
 
在图形编辑器中执行的窗口交叉选择将包括窗口内的图元,即使其几何图形没有穿过窗口的边界。你日常生活中张贴的部分似乎不包括这些项目:这些实体不是一个因素吗?或者,是否有其他代码未显示–GeometricExtents分析?
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:22:32 | 显示全部楼层
这些实体不是一个因素。这是为了提取扩展到表示布线图中布线的PLINE和线路。你说得对,如果它们很小,在十字路口的窗户里,我会想念它们的。但幸运的是,在这种情况下,这将是一种非常罕见的情况。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 03:02 , Processed in 0.391722 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表