从关于关系测试的帮助:
从多段线实体70代码的DXF文档:
这意味着多段线3d将总是具有第8位,并且如果闭合的话可能具有第1位(8 + 1 = 9)(如果是样条曲线的话,则具有第2位或第4位),因此检查第8位足以确保多段线是多段线3d。8 & 8 = 8或8 & 9 = 8或8 & 10 = 8等等,都不同于0。
多段线2d可能具有位0、2或4,加上可能的1(如果闭合),加上可能的128,即它可以是0、1、2、3 (2 + 1)、4、5 (4 + 1)、128、129 (1 + 128)、130 (2 + 128)、131 (1 + 2 + 128)、132 (4 + 128)、133 (1 + 4 + 128)。但是它不能有第8、16、32或64位。因此,检查折线实体是否没有这些位足以确保它是一条2d折线。
因此,您可以使用带有关系测试“&”和120 (8 + 16 +32 +64)的逻辑组“NOT”来过滤多段线2d。
这里有一些LISP表达式,它们只关注实体类型来过滤折线、二维多段线和三维多段线。
Polyline: LWPOLYLINE足够了代码3]
Polyline3d:多段线和位8
- (sssetfirst nil (ssget "_X" '((0 . "POLYLINE") (-4 . "&") (70 . 8))))
Polyline2d: POLYLINE而不是位8或16或32或64
- (sssetfirst nil (ssget "_X" '((0 . "POLYLINE") (-4 . ""))))
我让您添加其他过滤标准(层、布局)...
|