通过拾取点填充图案时防止图案重叠
您好,我正在创建一个AutoCAD插件,在其中我实现了一个拾取点图案填充。问题是,我想防止用户在同一区域上单击两次,并在同一个区域上填充两次
是否有任何方法可以检查某个点下是否有一个舱口,并停止该方法?或者,如果图案填充位于光标下方,是否可以创建禁止单击的否决<我很乐意接受任何建议<提前谢谢你
**** Hidden Message ***** 你能提供一些例子吗? 这应该让你开始
https://www . te k1 . com . au/point-monitor-hello-world-AutoCAD-net-API/
干杯
您可能希望展示您的代码,或者解释/描述您的“拾取点阴影”过程的工作流程,以便人们可以了解为什么您需要防止同一区域被多次拾取以及如何进行。
让我想象一下“pickpoint hatch”会是什么样子:
1。你要求用户在一个由一个或多个实体包围的区域中选择一个点;
2。选择一个点后,调用编辑器。TraceBoundary()返回1个边界实体(当检测孤岛的参数为false时)。此时,你有一个可孵化的区域;
3。你要么继续孵化这个区域;然后再次重复“pick point”;或者你可以在一个集合中保留边界,并要求用户做另一轮的“拾取点”,并且只在最后将它们全部填充。
如您所见,在每个点拾取之后,您要么有可用的图案填充对象(您创建的),要么有可用的边界实体。当然,在多次挑选之后,你会将它们保存在一个集合中。因此,每当用户再次拾取时,您可以进行计算来确定该点是否在已经拾取的区域内(在图案填充或边界实体内)。如果该点是双重拾取,您只需不填充它或不保留边界实体(用于以后的填充)并提示用户双重拾取。您甚至可以使用Point_Monitor来跟踪鼠标的移动,以便每当光标移动时,您都可以进行“如果在内部”的计算,如果是,您会显示警告工具提示,甚至将光标类型更改为可视提示。但是在大多数情况下,我不会为此使用Point_Monitor处理:如果每移动一次鼠标,就调用Editor,这可能是一个昂贵的操作。TraceBoundary(),然后针对多个先前创建的影线/边界实体进行计算,以确定“if-is-inside”可能会非常困难。
总之,在接受拾取点之前,根据一个或多个先前拾取的区域验证新拾取的点(确定它是否在内部)是非常简单的。
页:
[1]