怎么画出河道图
我这有个软件可以画河流向图,第一步是先选中宽度,就像ML输入间距一样,然后就是画线,线画完后二线中间会出现箭头,如图所示,求大神帮写个程序,谢谢试试这个:
(defun c:tt (/ b dis en en1 en2 l perpt pnt qpt qxcs tang)
(setq B (getreal "\n输入河道宽度< 默认:10 >:"))
(if (null B) (setq B 10))
(vl-cmdf "_SPLINE")
(while (> (getvar "cmdactive") 0)
(command pause)
)
(setq en (entlast))
(vla-Offset (vlax-ename->vla-object en) (* B 0.5))
(setq en1 (entlast))
(vla-Offset (vlax-ename->vla-object en) (* B -0.5))
(setq en2 (entlast))
(setq L (vlax-curve-getDistAtParam en (vlax-curve-getEndParam en))
dis 50
)
(while (< dis L)
(setq pnt (vlax-curve-getpointatdist en dis)
perPT (vlax-curve-getclosestpointto en pnt)
qxcs (vlax-curve-getparamatpoint en perPT)
qpt (vlax-curve-getFirstDeriv en qxcs)
TAng (angle '(0.0 0.0 0.0) qpt)
)
(entmake (list '(0 . "INSERT") (cons 2 "dxdm-jt") (cons 10 pnt) (cons 41 1) (cons 42 1) (cons 43 1) (cons 50 TAng)))
(setq dis (+ dis 50))
)
(vl-cmdf "_erase" en "")
(princ)
) 请哪位大神抽空帮写一个呗,先谢谢了 继续请大神出现 这样还不行的吗 不是PL线,还不完美 ssyfeng 发表于 2018-10-22 15:19
试试这个:
(defun c:tt (/ b dis en en1 en2 l perpt pnt qpt qxcs tang)
(setq B (getreal "\n输入河 ...
加载后出现命令: ; 错误: 输入的字符串有缺陷CAD版本2014 本帖最后由 ssyfeng 于 2021-11-10 13:52 编辑
添加了箭头生成,在2010及2016下测试均可生成。如果要生成PL线的,用PE命令转一下就行了
ssyfeng 发表于 2021-11-10 13:48
添加了箭头生成,在2010及2016下测试均可生成。如果要生成PL线的,用PE命令转一下就行了
下载试用了,2009可以运行。河流宽度宽些能否箭头多增加几条,单独一条显得很单调。谢谢提供。 ssyfeng 发表于 2021-11-10 13:48
添加了箭头生成,在2010及2016下测试均可生成。如果要生成PL线的,用PE命令转一下就行了
谢 谢
页:
[1]
2