linshiyin2 发表于 2012-5-30 17:58:24

将曲线转换成等距多段线

(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)
)

zmx6189 发表于 2012-5-30 18:50:12

好帖子
沙发

hhh454 发表于 2012-5-30 19:59:21

好像就是spl线转pl线,功能很强,原来有一个的

清风明月名字 发表于 2012-5-31 09:02:15

谢谢楼主,又学一招!仅对样条曲线有效

佑佑不哭 发表于 2012-5-31 15:21:47

偶想要把圆或圆弧转成多段线~~
有木有LISP~~??
请教高手!

ynhh 发表于 2012-5-31 17:00:47

这个程序真不错
偶想要把圆或圆弧转成多段线~~
有木有LISP~~??
请教高手!

linshiyin2 发表于 2012-6-1 00:16:51

本帖最后由 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>")
                  )
         )

清风明月名字 发表于 2012-6-1 09:03:16

谢谢楼主提醒,学习了

革天明 发表于 2012-6-2 15:19:01

顶一个,我有一个样条曲线分解成多段线的程序

gao051525 发表于 2012-6-3 19:14:56

好帖子,不错,顶!
页: [1] 2
查看完整版本: 将曲线转换成等距多段线