CAD中SPL线转换成PL线的方法

请教下。。。CAD中SPL线如何转换成PL线。。。高手回答下咧。。。

1、如何把样条曲线转换成多段线?
命令行键入命令:flatten,按提示选择你要转换的样条曲线即可。
注意:flatten命令是Express扩展工具包中的命令,使用前先确认你已经安装了这个扩展工具。
2、把样条曲线转换成多段线另类方法
方法1:将要转换的样条曲线复制在一新图中,用“另存为”命令将图纸保存为“AutoCAD R12/L12 DXF (*.dxf)”格式,再“打开”命令选择打开刚才保存的“DXF (*.dxf)”格式文件即可。
方法2:用WMFOUT命令选择要要转换的样条后,将所选对象保存为“图元文件 (*.wmf)”格式文件,再用WMFIN命令打开刚才保存的“图元文件 (*.wmf)”文件,按提示输入相应参数后炸开图形,就得到了所要转换的多段线了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-17

1、首先打开电脑上的CAD软件。

2、如下图所示,画出来的多段线很粗 。

3、在CAD软件的命令行里输入PL,按回车键确认 。

4、使用鼠标点击界面任意的空白处,指定一个起点 。

5、指定下一点,根据命令行出现的指示完成操作,这里选择宽度,输入W,按回车键进行确认。

6、输入指定起始宽度为0;输入指定终止宽度为0;按回车键进行确认 。

7、使用鼠标点击界面任意的空白处,指定下一个点,就完成了。

第2个回答  2013-04-02
不知你用的CAD是什么版本,如果用的是2010版就能实现。命令如下:splinedit---选择样条线---输入“P”(输入选项里面有一个“转换为多线段P”的选项)---输入精度(输入10就差不多了)。SPL线转PL线就完成了。
第3个回答  2013-04-02
不知你用的CAD是什么版本,如果用的是2010版就能实现。命令如下:splinedit---选择样条线---输入“P”(输入选项里面有一个“转换为多线段P”的选项)---输入精度(输入10就差不多了)。SPL线转PL线就完成了。
第4个回答  2018-10-19
(defun c:SP2PL();;等分转化和cad高版本精度控制不一样
(vl-load-com)
    (setq ent (entsel "\n选择一个样条曲线:"))

(if (not ent)
(exit)
)

(setq layerName (cdr (ASSOC 8 (entget(car ent)))))

(if (= 4 (logand 4 (cdr (assoc 70 (tblsearch "layer" layerName)))))
(exit)
)

   (if ent
  (progn
    (if(= (cdr (ASSOC 0 (entget(car ent)))) "SPLINE")
              (progn
        (initget 2 "Yes No")
(setq sta (getkword "\n要删除样条曲线吗? [是(Y)/否(N)]:"))
     (setq obj (vlax-ename->vla-object (car ent)))
(setq bisclose (vlax-curve-isclosed (car ent)))
   (setq param (vlax-curve-getEndParam obj))
     (setq pntcount (vla-get-NumberOfControlPoints obj))
  (setq segcount (getint (strcat "\n选择段数<" (rtos (* pntcount 8) 2 0) ">:")))
     (if (not segcount) (setq segcount (* pntcount 8)))
     (setq count (1+ segcount))
     (if(< segcount 1) (exit))
     (setq subparam (/ param segcount))
(if bisclose
(setq rblist (append '((0 . "LWPOLYLINE") (100 . "AcDbEntity") (67 . 0)
       (100 . "AcDbPolyline")) (list (cons 90  (1+ count ))) '((70 . 1) (43 . 0.0) (38 . 0.0) (39 . 0.0))
(list (cons 10 (vlax-curve-getStartPoint obj)))
     ))
(setq rblist (append '((0 . "LWPOLYLINE") (100 . "AcDbEntity") (67 . 0)
       (100 . "AcDbPolyline")) (list (cons 90  (1+ count ))) '((70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0))
(list (cons 10 (vlax-curve-getStartPoint obj)))
     ))
)
(setq inp 1)
(setq segnpt 100)
(while (< inp count)
(setq subcount (min segnpt (- count inp)))
(setq subrblist nil)
(repeat subcount
(setq vex (vlax-curve-getPointAtParam obj subparam))
(setq subrblist (append subrblist (list (cons 10 vex))))
   (setq subparam (+ subparam (/ param segcount)))
  )
(setq rblist (append rblist subrblist))
(setq inp (+ inp subcount))
)
(setq rblist (append rblist  '((210 0.0 0.0 1.0))))
(if(not (entmake rblist)) (exit))
(if(not (setq pl (entlast)))(exit))
(setq pl-obj (vlax-ename->vla-object pl))
(if (= sta "Yes")
   (entdel (car ent))
)
      )
      (print "选择的不是样条曲线!") 
              )
    )
  )
  (princ)
  )

相似回答