乐筑天下

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

通过拾取点填充图案时防止图案重叠

[复制链接]

5

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
34
发表于 2019-8-21 06:57:28 | 显示全部楼层 |阅读模式
您好,
我正在创建一个AutoCAD插件,在其中我实现了一个拾取点图案填充。问题是,我想防止用户在同一区域上单击两次,并在同一个区域上填充两次
是否有任何方法可以检查某个点下是否有一个舱口,并停止该方法?或者,如果图案填充位于光标下方,是否可以创建禁止单击的否决<我很乐意接受任何建议<提前谢谢你

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

5

主题

14

帖子

1

银币

初来乍到

Rank: 1

铜币
34
发表于 2019-8-21 20:35:15 | 显示全部楼层
你能提供一些例子吗?
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2019-8-22 16:25:36 | 显示全部楼层
这应该让你开始
https://www . te k1 . com . au/point-monitor-hello-world-AutoCAD-net-API/
干杯
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2019-8-22 21:17:13 | 显示全部楼层

您可能希望展示您的代码,或者解释/描述您的“拾取点阴影”过程的工作流程,以便人们可以了解为什么您需要防止同一区域被多次拾取以及如何进行。
让我想象一下“pickpoint hatch”会是什么样子:
1。你要求用户在一个由一个或多个实体包围的区域中选择一个点;
2。选择一个点后,调用编辑器。TraceBoundary()返回1个边界实体(当检测孤岛的参数为false时)。此时,你有一个可孵化的区域;
3。你要么继续孵化这个区域;然后再次重复“pick point”;或者你可以在一个集合中保留边界,并要求用户做另一轮的“拾取点”,并且只在最后将它们全部填充。
如您所见,在每个点拾取之后,您要么有可用的图案填充对象(您创建的),要么有可用的边界实体。当然,在多次挑选之后,你会将它们保存在一个集合中。因此,每当用户再次拾取时,您可以进行计算来确定该点是否在已经拾取的区域内(在图案填充或边界实体内)。如果该点是双重拾取,您只需不填充它或不保留边界实体(用于以后的填充)并提示用户双重拾取。您甚至可以使用Point_Monitor来跟踪鼠标的移动,以便每当光标移动时,您都可以进行“如果在内部”的计算,如果是,您会显示警告工具提示,甚至将光标类型更改为可视提示。但是在大多数情况下,我不会为此使用Point_Monitor处理:如果每移动一次鼠标,就调用Editor,这可能是一个昂贵的操作。TraceBoundary(),然后针对多个先前创建的影线/边界实体进行计算,以确定“if-is-inside”可能会非常困难。
总之,在接受拾取点之前,根据一个或多个先前拾取的区域验证新拾取的点(确定它是否在内部)是非常简单的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 06:15 , Processed in 0.138750 second(s), 60 queries .

© 2020-2024 乐筑天下

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