展开全部
1、如何把样条曲线转换成多段线?
命令行键入命令:flatten,按提示选择你要转换的样条曲线即可。
注意:flatten命令是Express扩展工具包中的命令,使用前先确认你已经安装了这个扩展工具。
2、把样条曲线转换成多段线另类方法
方法1:将要转换的样条曲线复制在一新图中,用“另存为”命令将图纸保存为“AutoCAD R12/L12 DXF (*.dxf)”格式,再“打开”命令选择打开刚才保存的“DXF (*.dxf)”格式文件即可。
方法2:用WMFOUT命令选择要要转换的样条后,将所选对象保存为“图元文件 (*.wmf)”格式文件,再用WMFIN命令打开刚才保存的“图元文件 (*.wmf)”文件,按提示输入相应参数后炸开图形,就得到了所要转换的多段线了。
命令行键入命令:flatten,按提示选择你要转换的样条曲线即可。
注意:flatten命令是Express扩展工具包中的命令,使用前先确认你已经安装了这个扩展工具。
2、把样条曲线转换成多段线另类方法
方法1:将要转换的样条曲线复制在一新图中,用“另存为”命令将图纸保存为“AutoCAD R12/L12 DXF (*.dxf)”格式,再“打开”命令选择打开刚才保存的“DXF (*.dxf)”格式文件即可。
方法2:用WMFOUT命令选择要要转换的样条后,将所选对象保存为“图元文件 (*.wmf)”格式文件,再用WMFIN命令打开刚才保存的“图元文件 (*.wmf)”文件,按提示输入相应参数后炸开图形,就得到了所要转换的多段线了。
2013-04-02
展开全部
不知你用的CAD是什么版本,如果用的是2010版就能实现。命令如下:splinedit---选择样条线---输入“P”(输入选项里面有一个“转换为多线段P”的选项)---输入精度(输入10就差不多了)。SPL线转PL线就完成了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-02
展开全部
不知你用的CAD是什么版本,如果用的是2010版就能实现。命令如下:splinedit---选择样条线---输入“P”(输入选项里面有一个“转换为多线段P”的选项)---输入精度(输入10就差不多了)。SPL线转PL线就完成了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(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)
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询