将曲线转换成等距多段线
(defun C:qxtopl ( / aa dis dist len n pt pt0 pt1 ptlist ss)(princ "\n 选择所要修改的曲线:")
(setq ss (ssget '((0 . "SPLINE")))
ss (ssname ss 0)
aa (getint "\n 分为段数<10>:")
n 1
)
(if (= aa nil)
(setq aa 10)
)
(setq pt0 (vlax-curve-getStartPoint ss)
pt1 (vlax-curve-getEndPoint ss)
len (vlax-curve-getDistAtPoint ss pt1)
dis (/ len aa)
ptlist (list pt0)
)
(repeat aa
(setq dist (* n dis))
(setq pt (vlax-curve-getPointAtDist ss dist))
(setq ptlist (cons pt ptlist))
(setq n (+ n 1))
)
(entmake (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 90 (length ptlist)))
(mapcar '(lambda (pt)(cons 10 pt)) ptlist ))
)(princ)
)
好帖子
沙发
好像就是spl线转pl线,功能很强,原来有一个的 谢谢楼主,又学一招!仅对样条曲线有效 偶想要把圆或圆弧转成多段线~~
有木有LISP~~??
请教高手! 这个程序真不错
偶想要把圆或圆弧转成多段线~~
有木有LISP~~??
请教高手! 本帖最后由 linshiyin2 于 2012-6-1 00:18 编辑
清风明月名字 发表于 2012-5-31 09:02 http://bbs.mjtd.com/static/image/common/back.gif
谢谢楼主,又学一招!仅对样条曲线有效
其他的图元形式自己添加, (ssget '((-4 . "<OR") (0 . "line")
(0 . "SPLINE")
(-4 . "OR>")
)
) 谢谢楼主提醒,学习了 顶一个,我有一个样条曲线分解成多段线的程序 好帖子,不错,顶!
页:
[1]
2