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