奇怪!为什么一条线既是LW线又是二维多段线?
刚才不知怎么做出了一条线,用List显示是LWpolyline,在属性菜单里显示的却是二维多段线,正常应该是多段线的,请问有没有遇到这种情况的?是什么原因呢?<br>再做就做不出来了,纳闷!<br> LWPolyLine 就是二维多段线啊. 现在的 ACAD 都是尽可能地使用该类型来表示的. 如果打开的早期版本的图形中有 PolyLine 的话, 缺省也是会自动转换为 LWPolyLine 的 我以前也没注意这个问题,只是最近在学做一些CAD的二次开发时才发现的,一开始也把我弄糊涂了。<br>我开始跟zara的看法是一样的,但实际上是不对的,现在的LWPolyline才叫“多段线”或叫什么轻量多段线,而原来的Polyline叫做2DPolyline,相对应的还有个3DPolyline。2DPolyline就叫做“二维多段线”。<br>所以我今天才非常奇怪地遇到了上面提到的二维多段线的LWPolyline,我想正常是不应该出现这种情况的,但不知什么原因。不知道还有没有人知道呢?<br> PolyLine 是最初的实体模式, 各个端点 Vertex 是 PolyLine 的子实体, 必须由PolyLine 通过 (entnext ...) 函数获取. 而现在采用的 LWPolyLine, 端点信息则是以分组信息直接存放在 LWPolyLine 中的, 没有了原来的子实体形式. 可以直接通过对 LWPolyLine 实体表进行检索获取. 3DPoLyLine, 则是可以创建空间三维多段线, 但是对端点上没有了细节, 比如局部宽度控制. 这些实体名称的汉译说法, 不要太在意 呵呵,赞同你关于它们的区别的说法。我也是一直对它们的说法不在意的,不然不会今天才发现这个现象。<br> 实际上你没有明白我的意思,我不是为了一个没有什么用的“说法问题”而到这来提问的,我是问这种现象产生的可能的原因,以及怎么来控制这种现象的出现。因为不管汉译成什么,在一个软件的一个界面里它的叫法都应该是统一的,而不可能出现它本来是叫二维多段线的,忽然有那么一阵又叫多段线了,而且在这中间并没有对它进行过转换。<br> 平时编图可能不必理会它倒底叫什么,但在进行开发时就得必须区分出来。像LW线的实体名称就是'AcDbPolyline',原Poly线叫做‘AcDb2dPolyline’,3DPoly线叫做'AcDb3Dpolyline',尽管最初让我郁闷了好长时间,但它就这么叫,而且还区分大小写。<br> 我想也有可能是在程序对其进行操作时出现了什么异常吧,如果找不到原因就只能是这个原因了。<br> 对了,忘了说了,我不是用Lsp做开发的的,所以表示方法上有所区别。在Lsp下的Polyline还是原来的Polyline,我也是这么用的,真不知道AutoDesk他们怎么弄得这么混乱。<br> 是比较乱, 针对这个, 各个时期和不同方面的表示没有很好地统一起来. <P>指定 AutoCAD 是否要使用最佳化的 2D 聚合线。PLINETYPE 会控制 PLINE 指令对於新聚合线的建立,以及旧版图面的既有聚合线的转换。</P>
<P>0 当开启旧版图面时,不转换其中的聚合线;PLINE 会建立旧格式的聚合线。<BR>1 当开启旧版图面时,不转换其中的聚合线;PLINE 会建立最佳化的聚合线。<BR>2 当开启旧版图面时,转换其中的聚合线;PLINE 会建立最佳化的聚合线。</P>
<P>如果需要这两种格式的详细资讯,请参阅 CONVERT 指令。</P>
<P>PLINETYPE 也会控制下列指令所建立的聚合线类型:BOUNDARY (当物件类型设为「聚合线」时) 、DONUT、PEDIT (<BR>当选取线或弧时) 、POLYGON,以及 SKETCH (当 SKPOLY 设为 1 时) 。</P> 呵呵,谢谢Joseflin了。<br>不过你说的和我说的不是一回事啊。<br><br>我在想呢,不是那天我产生幻觉了吧。<br>当时是在取ConstantWidth时出错的,按理说捕捉了这个错误后,就可以 GetWidth来取每个vertex的宽度了,但又出错了,这时用CAD的propertise菜单一看,就出现了我上面说的情况。后来这种现象又莫明其妙的没了。看来要郁闷下去了,不过还是要感谢两位的热心了!<br> <P>开发的时候 不要用Typename(Ent) = "IAcadLWPolyline"之类的</P>
<P>改成Like 就好了 </P> 学习啊
页:
[1]
2