【问题标题】:Detecting changes on Polyline area, position or shape检测折线区域、位置或形状的变化
【发布时间】:2016-06-28 19:21:44
【问题描述】:

我正在尝试修改任何折线 XData当且仅当其位置、面积或形状(顶点更改)发生更改。

在 AutoCAD 中有哪些可能的方法?

提前感谢您的帮助

【问题讨论】:

    标签: .net autocad polyline


    【解决方案1】:

    当您使用 XData 时,一些DXF codes are transformed with their owner。您可以使用代码:ExtendedDataWorldXCoordinate (1011)、ExtendedDataWorldXDisp (1012)、ExtendedDataWorldXDir (1013)、ExtendedDataDist (1041) 和 ExtendedDataScale (1042)。

    但是,在您的情况下,我将使用 Database.ObjectModifiedDBObject.Modified 事件。您可以使用this approach 查找已修改的属性。

    为了获得良好的性能,您应该使用 ObjectOverrule 覆盖 Open 方法,如果多段线为写入打开,则保存多段线的状态,并将其与在 @987654332 中找到的状态进行比较@ 方法。然后,您可以在 CommandEnded 事件处理程序中更改您的 XData,以确保安全。

    您还可以使用DBObject.OpenedForModifyDBObject.ObjectClosed 事件。

    事实上,有很多方法可以做到这一点,但ObjectOverrule 似乎是最好的选择,因为您可以在 XData 上设置过滤器。当您覆盖 Close 方法时,您可以直接访问对象及其状态,而在 DBObject.ObjectClosed 事件中,您只有 Id。

    【讨论】:

      【解决方案2】:

      Kean 对此有一系列帖子。他正在处理 OnCommandEnded 事件以查看一系列圆圈的位置/大小是否发生变化。

      看这里:http://through-the-interface.typepad.com/through_the_interface/2006/11/linking_circles.html

      【讨论】:

        猜你喜欢
        • 2012-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-29
        • 2017-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多