C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C#使用TypedValue数组

C# CAD SelectionFilter下TypedValue数组使用方式

作者:李建军

这篇文章主要介绍了C# CAD SelectionFilter下TypedValue数组使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

TypedValue数组使用方式

SelectionFilter是用于过滤AutoCAD实体的类,在AutoCAD中,可以使用它来选择具有特定属性的实体。

构造SelectionFilter对象时,需要传入一个TypedValue数组,它用于定义选择规则。

在TypedValue数组中,每个元素表示一个选择条件,它由两个参数组成:DxfCode和值。

DxfCode是一个整数枚举值,用于表示选择条件的类型,而值则是与之对应的具体属性值。

根据不同的需求,可以定义不同的TypedValue对象,并将它们组合成一个数组,从而实现各种自定义的选择规则。

常用的DxfCode枚举值及其对应的属性值

// 选择颜色为1(红色)且位于图层“Layer1”的线段
TypedValue[] values = new TypedValue[] {
    new TypedValue((int)DxfCode.Color, 1),
    new TypedValue((int)DxfCode.Start, "LINE"),
    new TypedValue((int)DxfCode.LayerName, "Layer1")
};

下面是一个示例代码

演示如何实现选择图层名为"权利人"和"预编号"

并且类型为TEXT的实体:

    SelectionFilter innerFilter = new SelectionFilter(new TypedValue[] {
    new TypedValue((int)DxfCode.Operator, "<or"),
    new TypedValue((int)DxfCode.LayerName, "权利人"),
    new TypedValue((int)DxfCode.LayerName, "预编号"),
    new TypedValue((int)DxfCode.Start, "TEXT"),  // 实体类型为TEXT
    new TypedValue((int)DxfCode.Operator, "or"),
    new TypedValue((int)DxfCode.End, "or"),
});
    // 使用多边形窗口选择方式让用户选择位于外部多段线内的实体
    PromptSelectionResult innerSelRes = ed.SelectWindowPolygon(outerPoints, innerFilter);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文