[讨论]如何写选择多段线的过滤器?
多段线在.NET中有Polyline、Polyline2d、Polyline3d三种,我想通过过滤器分别选择这三种类型的图元,每次只选其中一种。我是这样建立过滤器的:TypedValue layerValue = new TypedValue((int)DxfCode.LayerName, "0");
TypedValue entityTypeValue = new TypedValue((int)DxfCode.Start, "Polyline");
TypedValue[] filList ={ layerValue, entityTypeValue };
SelectionFilter filter = new SelectionFilter(filList);
奇怪的是,上述代码把Polyline2d和Polyline3d都选中了,却选不到Polyline;若把红色部分换成Polyline2d或Polyline3d,就什么都选不到。是不是这里设置的图元类型与.NET的类型不对应啊?那么Polyline、Polyline2d、Polyline3d分别对应什么名称?哪里能找到各种图元名称的资料?
命令: (defun C:dxf() (entget(car(entsel)) '("*"))) CXF
命令: dxf
选择对象: ((-1 . ) (0 . "LWPOLYLINE") (330 . ) (5 .
"1B1") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbPolyline") (90 . 4) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 769.274
892.487) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 1098.75 1306.26) (40 . 0.0) (41 .
0.0) (42 . 0.0) (10 1757.69 804.9) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 2087.17
1321.36) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0))
命令:
命令:DXF
选择对象: ((-1 . ) (0 . "POLYLINE") (330 . ) (5 .
"1B2") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDb2dPolyline") (66 . 1) (10 0.0 0.0 0.0) (70 . 2) (40 . 0.0) (41 . 0.0) (210
0.0 0.0 1.0) (71 . 0) (72 . 0) (73 . 0) (74 . 0) (75 . 0))
命令:
命令:DXF
选择对象: ((-1 . ) (0 . "POLYLINE") (330 . ) (5 .
"1BB") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDb3dPolyline") (66 . 1) (10 0.0 0.0 0.0) (70 . 8) (40 . 0.0) (41 . 0.0) (210
0.0 0.0 1.0) (71 . 0) (72 . 0) (73 . 0) (74 . 0) (75 . 0))
对应组吗0,三种都选:"*POLYLINE"
原来是这样,谢谢斑竹了。 多谢飞狐! 怎么设置动态块名的过滤器
页:
[1]