如何按多段线上的任意点为准定距等分
MEASURE命令只能按端点进行定距等分,如何用lisp实现指定多段线上的任意一点(不一定是顶点),以这个点为等分的起点,将多段线定距等分。求高人指点。要插块什么的自己改(vl-load-com)
;;;by x_s_s_1@163.com
(defun c:test1 (/ old_os en pts pt dis pts-start pt-start n)
(setq old_os (getvar "osmode"))
(setq en (car (entsel "\n选择需等分线:")))
(setvar "osmode" 15359)
(setq pts (getpoint "\n选择等分起始点:"))
(setvar "osmode" 512)
(setq pt (getpoint "\n选择等分方向:"))
(setq dis (getreal "\n输入等分距离:"))
(setq pts-start (vlax-curve-getDistAtPoint en pts))
(setq pt-start (vlax-curve-getDistAtPoint en pt))
(setq n 1)
(if (> pt-start pts-start)
(while (setq pt (vlax-curve-getPointAtDist en (+ pts-start (* n dis))))
(entmake (list '(0 . "point") (cons 10 pt)))
(setq n (1+ n))
)
(while (setq pt (vlax-curve-getPointAtDist en (- pts-start (* n dis))))
(entmake (list '(0 . "point") (cons 10 pt)))
(setq n (1+ n))
)
)
(setvar "pdmode" 3)
(setvar "osmode" old_os)
(princ)
)
x_s_s_1 发表于 2013-5-6 10:18
要插块什么的自己改
厉害 正式需要的 感谢 学习了顶一个 补充:目的是取等分点。 shiyan001 发表于 2013-5-4 17:45 static/image/common/back.gif
补充:目的是取等分点。
使用 Vlax-curve-getpointatdist 等vlax-curve-族函数即可!相关代码论坛里找找,好多的! 先把多段线打断不就行了。 谢谢各位,已经解决。 shiyan001 发表于 2013-5-7 10:59 static/image/common/back.gif
谢谢各位,已经解决。
能导出等分点坐标到excel就更完美了 x_s_s_1 发表于 2013-5-6 10:18 static/image/common/back.gif
要插块什么的自己改
能导出等分点坐标到excel就更完美了 x_s_s_1 发表于 2013-5-6 10:18 static/image/common/back.gif
要插块什么的自己改
能导出等分点坐标到excel就更完美了,设定0不导出,1导出为txt,2为excel x_s_s_1 发表于 2013-5-6 10:18 static/image/common/back.gif
要插块什么的自己改
能导出定距等分、定数等分点坐标到excel就更完美了,设定0不导出,1导出为txt,2为excel
改写后,能传个在邮箱;13883235807@qq.com吗。
页:
[1]
2