美文网首页Office职场大学AutoCAD宝典
用好对象选择过滤器Filter省时省力——高级篇

用好对象选择过滤器Filter省时省力——高级篇

作者: 资深刘刘 | 来源:发表于2019-08-08 13:02 被阅读19次

    著作权归作者所有,任何形式的转载都请联系作者。

    昨天Filter的基础篇里介绍了基本用法,尚未介绍等高线不分颜色、不分图层的地形图计曲线线宽修改的解决方案。在解决该问题前,必须深入掌握Filter命令。这里介绍两个高级技巧:

    一、逻辑运算符

    复杂的过滤器需要用到逻辑运算符,Filter支持的逻辑运算符包括NOT、AND、OR和XOR四种。每一个逻辑运算符包括3行或3行以上,第一行为开始行,最后一行为逻辑运算结束行,二者之间为过滤条件。

    1、** 开始 NOT/** 结束 NOT

    NOT为逻辑非,只能有1个条件,结果为不满足该条件的对象。若需要多个条件,需要嵌套AND使用。
    如:
    ** 开始 NOT
    对象 = 直线
    ** 结束 NOT
    表示选择不是直线的对象。

    2、** 开始 AND/** 结束 AND

    AND为逻辑与,可以有1个或多个条件,结果为满足所有条件的对象。
    如:
    ** 开始 AND
    对象 = 块
    图层 = GCD
    块名 = GC200
    ** 结束 AND
    表示选择图层为GCD、块名为GC200的块参照对象。

    3、** 开始 OR/** 结束 OR

    OR为逻辑或,可以有1个或多个条件,结果为满足其中一个条件或多个条件的对象。
    如:
    ** 开始 OR
    对象 = 直线
    对象 = 多段线
    ** 结束 OR
    表示选择直线或多段线对象。

    4、** 开始 XOR/** 结束 OR

    XOR为逻辑异或,只能有2个条件,结果为满足其中一个条件、但不满足另一个条件的对象。
    如:
    ** 开始 XOR
    线型 = Dashed
    颜色 = 5 - 蓝色
    ** 结束 XOR
    表示选择仅线型为Dashed或仅颜色为蓝色的对象(不选择线型为Dashed、颜色为蓝色的对象)。

    逻辑运算符必须配对使用,可以嵌套使用。

    二、filter.nfl文件编辑与复制

    言归正传,讲一讲等高线不分颜色、不分图层的地形图中,计曲线线宽修改的问题。

    那天拿着等高线不分颜色、不分图层的地形图,手工用Filter过滤 265m、270m两个高程的等高线,尝试过滤修改。但地形图里高程从100+到600+,5m等高距,一百多个高程,一个个修改很慢,也很无趣。正无计可施之际,突然想起过滤器的存储文件Filter.nfl,之前用文件编辑神器UltraEdit打开研究过,是一个文本文件。搜索到该文件,在C:\Users<用户名>\AppData\Roaming\Autodesk\AutoCAD 2012 - Simplified Chinese\R18.2\chs\Support目录下找到了,用UltraEdit打开,文件内容如下:

    Filter.nfl -- 请勿编辑此文件。
    :ai_lisp|等高线
    (0 . "*POLYLINE")
    (-4 . "<OR")
    (-4 . "=")
    (38 . 265.000000000000000)
    (-4 . "=")
    (38 . 270.000000000000000)
    (-4 . "OR>")
    :ai_str|等高线
    对象 = 多段线
    ** 开始 OR
    标高 = 265.000000000000000
    标高 = 270.000000000000000
    ** 结束 OR

    该文件第一行有汉字提示“请勿编辑此文件。”虽然有此提示,但对于什么都感改的自己来说,这样的提示完全无效,凭直觉认为依葫芦画瓢完全没问题。记得自己最伤心的一次修改,是多年前,不知道哪根筋不对,去修改Windows Mobile手机的注册表,当时就将手机改成砖头,据说是字体损坏,花了380元才修好。这是自己计算机研究生涯中最严重的一次事故,如导致计算机无法启动的修改都不值一谈。

    既然动了这个心思,就将225~260的等高线过滤,用Excel依葫芦画瓢做好,拷贝到Filter.nfl中,结果如下:

    Filter.nfl -- 请勿编辑此文件。
    :ai_lisp|等高线
    (0 . "*POLYLINE")
    (-4 . "<OR")
    (-4 . "=")
    (38 . 225.000000000000000)
    (-4 . "=")
    (38 . 230.000000000000000)
    (-4 . "=")
    (38 . 235.000000000000000)
    (-4 . "=")
    (38 . 240.000000000000000)
    (-4 . "=")
    (38 . 245.000000000000000)
    (-4 . "=")
    (38 . 250.000000000000000)
    (-4 . "=")
    (38 . 255.000000000000000)
    (-4 . "=")
    (38 . 260.000000000000000)
    (-4 . "=")
    (38 . 265.000000000000000)
    (-4 . "=")
    (38 . 270.000000000000000)
    (-4 . "OR>")
    :ai_str|等高线
    对象 = 多段线
    ** 开始 OR
    标高 = 225.000000000000000
    标高 = 230.000000000000000
    标高 = 235.000000000000000
    标高 = 240.000000000000000
    标高 = 245.000000000000000
    标高 = 250.000000000000000
    标高 = 255.000000000000000
    标高 = 260.000000000000000
    标高 = 265.000000000000000
    标高 = 270.000000000000000
    ** 结束 OR

    在AutoCAD中重新打开Filter命令,看到了修改的结果(修改不正确,会导致AutoCAD崩溃,呵呵),然后应用,试验成功。之后一次性将所有高程在Excel中拖拖拉拉编制好,复制到Filter.nfl中,一次修改成功。这个研究虽然耗费了一些时间,但相比枯燥的修改,这个研究显然更有成就感和乐趣。这里给大家抛砖引玉,在需要进行大量手工重复劳动的时候,可以研究采用一些非常规手段解决。

    补充说明一下:第一,Filter.nfl文件其实主要由两部分组成,第一部分是过滤器的DXF组码表达,有兴趣的同仁可以继续研究,第二部分是过滤器的字符串表达,与Fileter命令内见到的内容完全一致;第二,Filter.nfl文件可以拷贝到其他计算机对应的目录下,过滤器就能在该计算机上使用。对于大家都反复用的过滤器,可以通过该方法共享,而不必重复编辑。

    相关文章

      网友评论

        本文标题:用好对象选择过滤器Filter省时省力——高级篇

        本文链接:https://www.haomeiwen.com/subject/vqoadctx.html