找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 11490|回复: 91

(更新 6.15)[编程申请]:能否做一个切地形图纵、横剖面的程序

[复制链接]
发表于 2003-6-3 14:01:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
XDSOFT、EACHY:
在水利水电工程设计中,经常会遇到如题问题。ZDM3。0中有这个功能,经实际运用,发现其有不足之处,主要表现在:1、切剖面只能剖直线,不能剖曲线。2、经常会多处漏切,即使按其提示办法也不能完全解决,特别是横剖面。3、切在两条同高等高线之间,其连接线是直线,而实际应该是曲线。
要求:剖面切出后,在剖面的左边有高程标尺,下边有等高线的间距,剖面线上有等高线高程。
在求剖面图时,用户能设定图的比例、字高等。
附参考图:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-6-4 14:51:40 | 显示全部楼层

Re: [编程申请]:能否做一个切地形图纵、横剖面的程序

最初由 msdg 发布
[B]XDSOFT、EACHY:
在水利水电工程设计中,经常会遇到如题问题。ZDM3。0中有这个功能,经实际运用,发现其有不足之处,主要表现在:1、切剖面只能剖直线,不能剖曲线。2、经常会多处漏切,即使按其提示办法也不能完全... [/B]

先写了个等高线赋值。

  1. (if (not $xdtb_globle_high1)
  2.   (setq $xdtb_globle_high1 "10")
  3. )
  4. (if (not $xdtb_globle_high2)
  5.   (setq $xdtb_globle_high2 "1")
  6. )
  7. (if (not $XDTB_globle_scale)
  8.   (setq $XDTB_globle_scale 1.)
  9. )
  10. (defun $set_high (/ hig)
  11.   (princ "\n输入起始高程[H]或高程与高差[H,h]...")
  12.   (setq hig (getstring "\n输入高程或高程、高程或高差: "))
  13.   (cond
  14.     ((= (substr hig 1 1) ",")
  15.      (setq $xdtb_globle_high2 (substr hig 2))
  16.     )
  17.     ((xdrx_string_find hig ",")
  18.      (setq $xdtb_globle_high1 (car (xdrx_string_tok hig ","))
  19.            $xdtb_globle_high2 (cadr (xdrx_string_tok hig ","))
  20.      )
  21.     )
  22.     (t (setq $xdtb_globle_high1 hig))
  23.   )
  24. )
  25. ;;等高线赋值
  26. (defun c:XDTB_FZ (/ $_setxdata tf e p1 p2 pint ss tf0 e1 hig)
  27.   (defun $_setxdata (e p tf1 h / ang txt e1 ln)
  28.     (if        (> tf1 1)
  29.       (setq $xdtb_globle_high1
  30.              (rtos (+ (read $xdtb_globle_high1)
  31.                       (read $xdtb_globle_high2)
  32.                    )
  33.                    2
  34.                    0
  35.              )
  36.       )
  37.     )
  38.     (setq ang ($xdlsp_angle_format
  39.                 (car (xdrx_getperpline e p))
  40.               )
  41.     )
  42.     (command ".text"
  43.              "j"
  44.              "mc"
  45.              p
  46.              (* 2.5 $XDTB_globle_scale)
  47.              ($xdlsp_rtd ang)
  48.              $xdtb_globle_high1
  49.     )
  50.     (setq na (cadr (xdrx_object_classname e)))
  51.     (setq txt (entlast)
  52.           ln  (list e p)
  53.     )
  54.     (command ".trim" txt "" ln "")
  55.     (setq e1 (entlast))
  56.     (if        (= (cadr (xdrx_object_classname e1)) na)
  57.       (xdrx_setxdata e1 "Yb_high" (if h h $xdtb_globle_high1))
  58.     )
  59.     (xdrx_setxdata e "Yb_high" (if h h $xdtb_globle_high1))
  60.   )
  61.   (xdrx_begin)
  62.   (xdrx_ucson)
  63.   (xdrx_sysvar_push "osmode")
  64.   (setvar "dimzin" 0)
  65.   (setvar "osmode" 0)
  66.   (setq tf t)
  67.   (while tf
  68.     (princ (strcat "\n当前高程 H="
  69.                    (if h1
  70.                      h1
  71.                      $xdtb_globle_high1
  72.                    )
  73.                    ", 高差 h="
  74.                    $xdtb_globle_high2
  75.            )
  76.     )
  77.     (initget 128 "F S M")
  78.     (setq e (xdrx_entsel
  79.               "\n选择等高线[S - 设置 / F - 多选 / M - 匹配]<Exit>: "
  80.               '((0 . "*line,arc,circle,ellipse"))
  81.             )
  82.     )
  83.     (cond
  84.       ((= e "S")
  85.        ($set_high)
  86.       )
  87.       ((= e "F")
  88.        (princ "\n注意: 按递增方向选择.....")
  89.        (if (and        (setq p1 (getpoint "\n第一点: "))
  90.                 (setq p2 (getpoint p1 "\n第二点: "))
  91.            )
  92.          (progn
  93.            (xdrx_line1 p1 p2)
  94.            (setq ent1 (entlast))
  95.            (setq ss (ssget "F" (list p1 p2) '((0 . "*line,arc,circle,ellipse"))))
  96.            (xdrx_setsstodb ss 0)
  97.            (while (setq e1 (xdrx_getentdata 0))
  98.              (if (not tf0)
  99.                (setq tf0 1)
  100.              )
  101.              (setq pint (xdrx_getinters e1 ent1 0))
  102.              ($_setxdata e1 (car pint) tf0 nil)
  103.              (setq tf0 (1+ tf0))
  104.            )
  105.            (xdrx_entity_delete ent1)
  106.          )
  107.        )
  108.       )
  109.       ((= e "M")
  110.         (setq
  111.           e (xdrx_entsel "\n选择已赋值的等高线: " '((-3 ("YB_high"))))
  112.         )
  113.         (setq hig (xdrx_getxdata (car e) "YB_high"))
  114.         (setq e1 (xdrx_entsel
  115.                    "\n选择目标等高线: "
  116.                    '((0 . "*line,arc,circle,ellipse"))
  117.                  )
  118.         )
  119.         ($_setxdata (car e1) (cadr e1) 2 hig)
  120.       )
  121.       ((= (type e) 'STR)
  122.        (princ "\n输入错误!")
  123.       )
  124.       ((= (type e) 'LIST)
  125.        (progn
  126.          (if (not tf0)
  127.            (setq tf0 1)
  128.          )
  129.          (setq pint (cadr (xdrx_curve_ClosestPoint (car e) (cadr e)))
  130.          )
  131.          ($_setxdata (car e) pint tf0 nil)
  132.          (setq tf0 (1+ tf0))
  133.        )
  134.       )
  135.       (t (setq tf nil))
  136.     )
  137.   )
  138.   (xdrx_sysvar_pop)
  139.   (xdrx_ucsoff)
  140.   (xdrx_end)
  141.   (princ)
  142. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-6-5 00:31:27 | 显示全部楼层
辛苦了!很完美!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-6-7 00:39:34 | 显示全部楼层
正式完成。在工具葙环境下运行

增加绘制中线

命令:XDTB_FZ 等高线赋值
命令:XDTB_DrPm 绘制剖面
命令:XDTB_DrZH 桩号标注
命令:XDTB_InsCu 等高线内插
命令:XDTB_CalArea 计算开挖面积

msdg 作个演示吧。:6

演示:
http://www.xdcad.net/modrator/fi ... 14014633_qhxzpm.swf
下载:
http://www.xdcad.net/forum/showthread.php?s=&threadid=66087
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-8 10:26:21 | 显示全部楼层
有时间的时候我来做个演示,呵呵,谢谢啊,我测试一下,看看有什么意见可以提出,呵呵,抱歉啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-8 13:05:49 | 显示全部楼层
能否在生成的剖面中将图中轴线绿线一起生成
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-6-8 13:15:20 | 显示全部楼层
最初由 j1187 发布
[B]能否在生成的剖面中将图中轴线绿线一起生成 [/B]

绿线是什么?尽量把要求描述详细些,对水利行业的工作我一窍不通。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-8 17:52:33 | 显示全部楼层
是个好东西,看来这里真的是高手如云!以前我都要一点一点量,然后再画!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-8 18:39:12 | 显示全部楼层
是个好东西,可惜我加载不了,晓东工具箱没法安装在2004上,什么时候才能解决这个问题?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-9 21:55:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
最初由 eachy 发布
[B]
绿线是什么?尽量把要求描述详细些,对水利行业的工作我一窍不通。 [/B]

平面图如下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-6-9 21:57:40 | 显示全部楼层
生成的剖面图如下即可,不知表达清楚没有?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-9 22:02:50 | 显示全部楼层
上图中高程标注有误,重贴一张
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-6-9 22:06:19 | 显示全部楼层
最初由 j1187 发布
[B]上图中高程标注有误,重贴一张 [/B]


那个5 点 和绿线 绘制的依据是什么? 详细说下.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-9 23:20:06 | 显示全部楼层
绿线可以代表公路、渠道等线路的中心线,5点即是剖面与轴线的交点,既然在平面中有5点,在剖面中也应由5点,剖面中有了5点才可标出轴线的相对位置。这对于计算开挖和回填很有用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-9 23:28:27 | 显示全部楼层
有了轴线,便可确定开挖断面的位置。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 17:31 , Processed in 0.298469 second(s), 62 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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