用下面的程序,可以Polyline和LWPolyline互换了。^_^
注意:以下代码为了显示,过滤选择中有空格,请下载附件!!!
 - ;|
- 命令:xconvert
-
- 功能:ACAD标准命令CONVERT的增强,可以在POLYLINE和LWPOLYLINE之间相互转换
- 说明:ACAD本身的对象模型就不允许把拟和的转换成LWPOLYLINE对象,所以程序过滤了拟合曲线
- 程序配合XDRX_API build 20428+版本使用,朋友们可以把这个LISP拷贝到“晓东工具箱”的安装的
- LISP目录,自己加入到菜单里面就可以非常方便的使用了。
- 关于程序的建议请到“晓东CAD空间-编程申请”论坛
- [url]http://www.xdcad.net/forum留言[/url]
-
- |;
- (defun c:xconvert (/ info filter ss e tf)
- (initget "Lw Poly")
- (if (not
- (setq tf (getkword "\n请选择转换方式[Lw->poly | Poly->lw]<P>:"))
- )
- (setq tf "Poly")
- )
- (if (= tf "Lw")
- (setq filter '((0 . "lwpolyline"))
- info "\n请选取要转换成老的多义线的LWPOLYLINE实体<全选>:"
- )
- (setq filter (list '(-4 . "< or")
- '(0 . "polyline")
- '(70 . 1)
- '(70 . 0)
- '(-4 . "or >")
- )
- info "\n请选取要转换成LWPOLYLINE的老的多义线实体<全选>:"
- )
- )
- (prompt info)
- (if (not (setq ss (ssget filter)))
- (setq ss (ssget "x" filter))
- )
- (xdrx_setsstodb ss 0)
- (while (setq e (xdrx_getentdata 0))
- (if (= tf "Lw")
- (xdrx_polyline->2dpolyline e)
- (xdrx_polyline_ConvertFrom e)
- )
- )
- (prompt (strcat "\n成功转换了 "
- (itoa (sslength ss))
- (if (= tf "Lw")
- " 个Lwpolyline实体!"
- " 个Polyline实体!"
- )
- )
- )
- (princ)
- )
|