sg001833 发表于 2012-3-30 22:55

如何将样条曲线变成多段线?

n条样条曲线怎么能转变为多段线

sg001833 发表于 2012-4-10 08:07

哪位高手回复一下啊,教教!

www_qf 发表于 2012-4-18 11:27

下面是acad的方法,你可以在中望中试试

1.普通方法
    样条曲线转换成多段线的方法AutoCAD本身携带的ET工具(Express tool)有一个命令可以直接实现此功能:FLATTEN命令可以完成此项,前提是AutoCAD安装的时候已经安装了ET工具。
方法1:直接输入“FLATTEN”
方法2:用菜单——Express——Modify——Flatten objects

2.把样条曲线转换成多段线另类方法
方法1:将要转换的样条曲线复制在一新图中,用“另存为”命令将图纸保存为“AutoCAD R12/L12 DXF (*.dxf)”格式,再“打开”命令选择打开刚才保存的“DXF (*.dxf)”格式文件即可。
方法2:用WMFOUT命令选择要要转换的样条后,将所选对象保存为“图元文件 (*.wmf)”格式文件,再用WMFIN命令打开刚才保存的“图元文件 (*.wmf)”文件,按提示输入相应参数后炸开图形,就得到了所要转换的多段线了。

3.用lsp程序
将如下代码存为lsp格式,用CAD加载后输入命令ee即可转换。(princ "+++ 曲线或圆弧到多线段 - Chris. [email protected] 2012-1-3 +++\n")
(princ "+++++ 输入命令\"ee\"进行操作 +++++\n")
(defun c:ee () ;任意曲线变多段线一般只用于椭圆、圆弧和样条曲线
(VL-LOAD-COM)(setvar "cmdecho" 0)
(setq ss (ssget '((0 . "ARC,*LINE,ELLIPSE"))))
(princ "\n")
(setq jj (getint "设置间距(1):"))
(if (= jj nil) (setq jj 1))
(setq lenss (sslength ss)
i   0 eelist '()
)
(repeat lenss;外循环开始
    (setq en(ssname ss i);取得图元名
   obj (vlax-ename->vla-object en);转换为vla对象
    )
    (setq ;zc (vlax-curve-getendparam obj)
    j 1);求得图元周长
   (setq zc(vlax-curve-getDistAtPoint obj (vlax-curve-getEndPoint obj)))
   
    ;(setq j (- zc (* (fix(/ zc jj)) jj)));取第一段长度
    (setq lst1(vlax-curve-getPointAtDist obj 0));取开始点
    (repeat (fix (/ zc jj));循环周长取整次刚好到端点
      ;(setq ePt (vlax-safearray->list (vlax-variant-value (vla-get-coordinate obj j))))
      (setq lst (vlax-curve-getPointAtDist obj j);取距开始点为j的点
    ; lstlen (vlax-curve-getDistAtPoint obj lst);测量开始点到j点的距离
      )
      (setq eelist (append eelist (list lst)));加入到点集
      (setq j (+ jj j));递增jj
    );内循环结束
    ;(setq eelist(reverse eelist))
    (setq eelist (append eelist (list (vlax-curve-getEndPoint obj))))
    (command ".pline" "non" lst1);开始描点
    (foreach n eelist (command "non" n)(grdraw lst1 n 1) (setq lst1 n));模拟描红
    (COMMAND "");描点结束
    (setq eelist '());清空点集
    (setq i (1+ i));下一个图元
);外循环结束
(princ "\n转换结束.")
)

flour2006 发表于 2012-4-19 11:07

下面是acad的方法,你可以在中望中试试

1.普通方法
    样条曲线转换成多段线的方法AutoCAD本身携带的E ...
www_qf 发表于 2012-4-18 11:27 http://askcad.com/bbs/images/common/back.gif

竟然有这么多的方法。

qqqqqq 发表于 2012-4-24 12:02

不错,学习了。

929171718 发表于 2022-7-17 10:54

www_qf 发表于 2012-4-18 11:27
下面是acad的方法,你可以在中望中试试

1.普通方法


这ee插件,怎么只能设置整数呀,
页: [1]
查看完整版本: 如何将样条曲线变成多段线?