求助:多线段怎么变圆弧
本帖最后由 simpleye 于 2015-3-31 16:24 编辑从网上下载一段 多线段怎么变圆弧的代码,因水平不限调试不成功,是什么原因???
(defun c:cc2()
(setq xtblm '("cmdecho" "osmode")
xtblz (mapcar 'getvar xtblm)
)
(mapcar 'setvar xtblm '(0 0))
(command "_undo" "be")
(if (progn (princ "\n请要转回圆的多段线:")
(setq ssa(ssget (list '(0 . "*POLYLINE") )))
)
(progn
(setq dxf (entget (ssname ssa 0))
ptb (mapcar 'cdr (vl-remove-if-not '(lambda(x)(= (car x) 10)) dxf))
p1 (car ptb)
p2 (nth (fix (/ (length ptb) 2)) ptb)
p3 (last ptb)
)
(command "_arc" p1 p2 p3)
)
)
(command "_undo" "e")
(mapcar 'setvar xtblm xtblz)
(princ)
)
如果多段线有圆弧,直接炸开。
如果多段线是由直线构成,本程序只用第一、第二和最后一点进行三点画圆弧。如果三点无法构成圆弧,则程序失效。 先谢谢大神给个回复,上面的文件是用Soldworks转换成CAD的,有的圆弧就变成POLYINE,标注太不方了。
我是用这种方法解决的,先用"CONVERTPOLY"把POLYLINE转换成LWPOLYLINE,再用上面的代码(再加个erase命令)就可以了。因水平有限步骤就多了一步“选择对象”,呵呵
页:
[1]