明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2593|回复: 12

怎么画出河道图

[复制链接]
发表于 2018-10-22 15:19 | 显示全部楼层 |阅读模式
5明经币
我这有个软件可以画河流向图,第一步是先选中宽度,就像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 ( ...
发表于 2018-10-22 15:19 | 显示全部楼层
试试这个:
(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)
)

点评

非常感谢大神,是我在新的图上没有加块,非常感谢  发表于 2018-10-25 16:28
先谢谢您的帮助,用你的代码能画出样条曲线了,但是没有箭头啊  发表于 2018-10-25 16:26
回复

使用道具 举报

 楼主| 发表于 2018-10-22 18:57 | 显示全部楼层
请哪位大神抽空帮写一个呗,先谢谢了
回复

使用道具 举报

 楼主| 发表于 2018-10-23 15:09 | 显示全部楼层
继续请大神出现
回复

使用道具 举报

发表于 2019-6-13 19:48 | 显示全部楼层
这样还不行的吗
回复

使用道具 举报

发表于 2019-9-6 17:09 | 显示全部楼层
不是PL线,还不完美
回复

使用道具 举报

发表于 2021-11-9 19:19 | 显示全部楼层
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
回复

使用道具 举报

发表于 2021-11-10 13:48 | 显示全部楼层
本帖最后由 ssyfeng 于 2021-11-10 13:52 编辑

添加了箭头生成,在2010及2016下测试均可生成。如果要生成PL线的,用PE命令转一下就行了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
疯球 + 1 + 5 谢谢

查看全部评分

回复

使用道具 举报

发表于 2021-11-13 21:40 | 显示全部楼层
ssyfeng 发表于 2021-11-10 13:48
添加了箭头生成,在2010及2016下测试均可生成。如果要生成PL线的,用PE命令转一下就行了

下载试用了,2009可以运行。河流宽度宽些能否箭头多增加几条,单独一条显得很单调。谢谢提供。
回复

使用道具 举报

 楼主| 发表于 2021-11-29 15:05 | 显示全部楼层
ssyfeng 发表于 2021-11-10 13:48
添加了箭头生成,在2010及2016下测试均可生成。如果要生成PL线的,用PE命令转一下就行了

    谢    谢   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-28 22:09 , Processed in 0.267149 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表