这个目前只有编写的autolisp才可以办到,AutoCAD里面直接转换的话,只能转换为等分多段线。
(defun C:TES ( / &dis1 &dis2 &dis3 &dis4 &end &hud &k1 &kw1 &ob1 &p1 &p2 &sta &tc1 fb1 i n ss)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(vl-load-com)
(princ "\n请选择样条曲线")
(if (and (setq &kw1 (ssget '((0 . "SPLINE"))))
(setq n (getint "\n请输入等分数值"))
);1
(progn;;1
(while (setq &k1 (ssname &kw1 0));1
(setq &kw1 (ssdel &k1 &kw1) &ob1 (vlax-ename->vla-object &k1))
(if (> (setq &dis1 (vlax-curve-getDistAtParam &ob1 (vlax-curve-getEndParam &ob1))) 0)
(progn;;2
(setq &sta (vlax-curve-getStartPoint &ob1) &end (vlax-curve-getEndPoint &ob1) i 1 &dis2 0 ss '())
(while (>= n i);2
(setq &dis3 (/ (* &dis1 i) n) &dis4 (/ (+ &dis2 &dis3) 2) &p2 (vlax-curve-getPointAtDist &ob1 &dis4))
(if (= i n) (setq &p1 &end) (setq &p1 (vlax-curve-getPointAtDist &ob1 &dis3)) )
(setq ss (cons (cons 10 &sta) ss))
(setq &hud (T~20150813~1 &sta &p1 &p2) ss (cons (cons 42 &hud) ss))
(setq &sta &p1 &dis2 &dis3 i (+ i 1))
);while;2
(if (vlax-curve-isClosed &ob1)
(setq fb1 '(70 . 1))
(progn
(setq fb1 '(70 . 0) ss (cons (cons 10 &end)ss) n (1+ n))
)
)
(setq &tc1 (vla-get-layer &ob1) ss (reverse ss))
(entmake (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") (cons 8 &tc1) '(100 . "AcDbPolyline") (cons 90 n) fb1) ss))
);progn;2
);if;2
(vla-delete &ob1)
);while;1
);progn;1
);if;1
(prin1)
)
(defun T~20150813~1 (&_point1 &_point2 &_point3 / &_ang1 &_ang2 &_point1 &_point2 &_point3);三点输入计算弧度
(setq &_ang1 (angle &_point3 &_point2) &_ang2 (angle &_point3 &_point1) &_ang1 (* (- &_ang2 &_ang1) 0.5))
(if (= (sin &_ang1) 0) (cos &_ang1) (/ (cos &_ang1) (sin &_ang1)) )
);复制到记事本,以【.lsp】为后缀命名,打开CAD,autolisp加载,命令【TES】
;等分的数值越大,得到的多段线越接近样条曲线,炸开多段线,得到的就是圆弧。
下插件,,,燕秀工具箱 里面有一个命令给样条曲线转成全弧线的命令。这个插件功能强大。而且免费。。。。默认cad功能很有限,所以国产cad各种插件孕育而生。很方便的。
你可以直接画多个圆弧(云线),比改得快90倍
用br打断命令就可