找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1227|回复: 13

[ 编程申请]:根据标高坡长计算坡度(总图场地)

[复制链接]
发表于 2005-5-18 22:40:52 | 显示全部楼层 |阅读模式

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

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

×
找了好久好像没有,我希望的是建筑室外道路的那种标注方法
如图,有一段线(直线,弧线,多义线等),和两个标高数字(线、数字单位均为米),
能不能直接生成中间的那个标注,箭头下面就是线的长度,上面是坡度(百分之),箭头是坡向

如果复杂一点,起点标高、终点标高、线长、坡度(及坡向),四个数据已知其中三个是否能算出另一个?

谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-20 13:03:29 | 显示全部楼层
四个数据已知其中三个可以算出另一个:共6种情况。
通常情况:
路线固定(线长已知)、知道起点或终点中的一个标高,
a. 知道第二点标高,求坡度。
b. 知道坡度,求第二点标高。

盘山路:
已知两点标高和规范坡度要求,求路长。

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

使用道具 举报

 楼主| 发表于 2005-5-20 21:02:49 | 显示全部楼层
楼上大大可有这种程序?

盘山路?难道叫计算机选线,这个不大可能哦,除非计算机能识别地形。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-20 23:53:36 | 显示全部楼层
命令:PD  (坡度)
修改增强版,试试:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-21 02:25:13 | 显示全部楼层
坡度标注能拾取第一点但拾取第二点显示为0.00,还有能改动一下标高标注,就是改为动态引出线方式h=0.000.

请重新下载程序,再试。“动态引出线方式h=0.000”何意?by xyp1964[/COLOR]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-23 10:28:00 | 显示全部楼层
1.标高表示不符合规范要求。
2.坡度一般不加%,因设计说明中一次说明。
3.如果是多义线则不能正确表示。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-24 22:10:57 | 显示全部楼层
谢谢xyp1964,
评论两句权作感谢,不要当做挑毛病哦
1. 如上,如果是多义线则不能正确表示,而现实中大部分都是直线、平曲线结合的多义线。
2. 每次都要选出图比例,一般一张图只会一个比例
3. 后续0不应该取消,5.000 和 5 表示不同精度
交流一下,别无他意
还有楼上,我们设计院一直都是这样,我也和规范对这看过,但是规范上没有明确规定阿,楼上兄弟可否举个例子,或是告诉正确表示的规范名称页数,不胜感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-5-25 22:22:22 | 显示全部楼层
再次谢谢xyp1964  ,可以标多义线,但是还有几个问题:)
1,坡向不是从高指向低,而是从第二个选择标高指向第一个选择对象
2.,还是没有精度
另外,jinsong-liao ,坡度确实不写%号,是我当时发示意图的一个手误,(xyp1964 大大能不能把那个百分号去了,呵呵),但是标高确实一直是这样。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-4-13 09:46:55 | 显示全部楼层
我用了一下显示的坡度为百分整数,不带小数的,不知道怎么设置,我查了一下UN,小数点后有四位呢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-13 10:14:43 | 显示全部楼层
xyp1964 斑竹能否将 PD (坡度)修改增强版的源代码公布出来,方便大家修改为自己的习惯表达方式?要求有点过分!不过你的程序绝大部分都公布了源代码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-13 13:10:39 | 显示全部楼层
  1. [FONT=courier new]
  2. (load "xyp_lib.vlx")  ;版本 V.20060413
  3. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  4. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  5. ★1·在acad.lsp中增加(load"xyp_lib.vlx")
  6. ■2·在每个程序内增加(load"xyp_lib.vlx")
  7. ■3·在command下,输入(load"xyp_lib.vlx")
  8. ■4·在菜单.mnl中增加(load"xyp_lib.vlx")
  9. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. |;

  13. ;;;[url]http://p4.xdcad.net/forum/showthread.php?s=&threadid=389500[/url]
  14. ;;;pdbz(坡度标注)
  15. (defun c:pdbz ()
  16.   (CMDLASC0)
  17.   (setq h (* SC 300))
  18.   (command "osnap" "int,endp,cen")
  19.   (mkla "总图-标高" 3)
  20.   (if (null tx1)
  21.     (setq tx1 "1")
  22.   )
  23.   (if (null tx2)
  24.     (setq tx2 "1")
  25.   )
  26.   (setq        tx1 (ukword 1 "1 2" "\n标高输入方式 : 1-输入/2-拾取" tx1)
  27.         tx2 (ukword 1 "1 2" "\n道路方式 : 1-两点/2-拾取" tx2)
  28.   )
  29.   (cond        ((= tx2 "1") (mode01))
  30.         ((= tx2 "2") (mode02))
  31.   )
  32.   (redraw)
  33.   (CMDLA1)
  34. )

  35. (defun mode01 ()
  36.   (while (setq pt1 (getpoint "\n起点位置<退出> : "))
  37.     (setq pt2 (getpoint pt1 "\n端点位置<退出> : "))
  38.     (if        (and pt1 pt2)
  39.       (progn
  40.         (xyp-Cross pt1 (* Sc 1000) 0)
  41.         (xyp-Cross pt2 (* Sc 1000) 0)
  42.         (grdraw pt1 pt2 1)
  43.         (cond
  44.           ((= tx1 "1")
  45.            (while (not (setq NO1 (ureal 1 "" "\n输入起点标高值" NO1))))
  46.            (while (not (setq NO2 (ureal 1 "" "\n输入端点标高值" NO2))))
  47.           )
  48.           ((= tx1 "2")
  49.            (setq e1  (usel 0 "TEXT" "TEXT文本")
  50.                  e2  (usel 0 "TEXT" "TEXT文本")
  51.                  no1 (atof (xyp-get-dxf 1 (car e1)))
  52.                  no2 (atof (xyp-get-dxf 1 (car e2)))
  53.            )
  54.           )
  55.         )
  56.         (command "osnap" "none")
  57.         (setq dx   (distance pt1 pt2)
  58.               x           (/ (- NO1 NO2) dx 0.01)
  59.               jd   (angle pt1 pt2)
  60.               jd2  (angtos (+ jd pi) 0 2)
  61.               jd1  (angtos jd 0 2)
  62.               pdz  (rtos (abs x) 2 3)        ;(strcat (rtos (abs x) 2 3) "%")
  63.               pt3  (polar pt1 jd (/ dx 2.0))
  64.               pt4  (polar pt3 (+ (/ pi 2.0) jd) (+ (/ bl 1.0) (/ h 2.0)))
  65.               pt5  (polar pt3
  66.                           (- 0 (- (/ pi 2.0) jd))
  67.                           (+ (/ h 2.0) (/ bl 1.0))
  68.                    )
  69.               s1   (+ (max (strlen pdz) (strlen (rtos dx 2 3))) 1)
  70.               s2   (/ (* h 0.7 s1) 2.0)
  71.               pt6  (polar pt3 jd s2)
  72.               pt7  (polar pt3 jd (- 0 s2))
  73.               pt8  (polar pt3 jd (- s2 (* h 0.8)))
  74.               pt9  (polar pt3 jd (- 0 (- s2 (* h 0.8))))
  75.               pt1a (polar pt1 (+ jd (* pi 0.5)) (* sc 300))
  76.               pt2a (polar pt2 (+ jd (* pi 0.5)) (* sc 300))
  77.         )
  78.         (mkla "总图-坡度" 4)
  79.         (if (>= (car pt2) (car pt1))
  80.           (progn
  81.             (command "text" "j" "m" pt4 h jd1 pdz)
  82.             (command "text" "j" "m" pt5 h jd1 (rtos dx 2 3))
  83.           )
  84.           (progn
  85.             (command "text" "j" "m" pt5 h jd2 pdz)
  86.             (command "text" "j" "m" pt4 h jd2 (rtos dx 2 3))
  87.           )
  88.         )
  89.         (if (> NO1 NO2)
  90.           (command "pline" pt8 "w" (* h 0.2) "0" pt6 "")
  91.           (command "pline" pt9 "w" (* h 0.2) "0" pt7 "")
  92.         )
  93.         (command "line" pt6 pt7 "")
  94.         (cond ((= tx1 "1")
  95.                (command "text" "j" "m" pt1a h 0 (rtos no1 2 3))
  96.                (command "text" "j" "m" pt2a h 0 (rtos no2 2 3))
  97.                (mkla "总图-坡度-位置" 1)
  98.                (command "donut" 0 (* sc 100) pt1 "")
  99.                (command "donut" 0 (* sc 100) pt2 "")
  100.               )
  101.               ((= tx1 "2")
  102.                (mkla "总图-坡度-位置" 1)
  103.                (command "donut" 0 (* sc 100) pt1 "")
  104.                (command "donut" 0 (* sc 100) pt2 "")
  105.               )
  106.         )
  107.       )
  108.     )
  109.   )
  110. )

  111. (defun mode02 ()
  112.   (while (setq s1 (entsel "\n选择道路<退出> : "))
  113.     (setq e (car s1))
  114.     (setq pt1  (xyp-get-CurveStartPoint e)
  115.           pt2  (xyp-get-CurveEndPoint e)
  116.           leng (xyp-get-CurveLength e)
  117.     )
  118.     (xyp-Cross pt1 (* Sc 1000) 0)
  119.     (xyp-Cross pt2 (* Sc 1000) 0)
  120.     (grdraw pt1 pt2 1)
  121.     (cond
  122.       ((= tx1 "1")
  123.        (while (not (setq NO1 (ureal 1 "" "\n输入起点标高值" NO1))))
  124.        (while (not (setq NO2 (ureal 1 "" "\n输入端点标高值" NO2))))
  125.       )
  126.       ((= tx1 "2")
  127.        (setq e1         (usel 0 "TEXT" "TEXT文本")
  128.              e2         (usel 0 "TEXT" "TEXT文本")
  129.              no1 (atof (xyp-get-dxf 1 (car e1)))
  130.              no2 (atof (xyp-get-dxf 1 (car e2)))
  131.        )
  132.       )
  133.     )
  134.     (command "osnap" "none")
  135.     (setq dx   leng
  136.           x    (/ (- NO1 NO2) dx 0.01)
  137.           jd   (angle pt1 pt2)
  138.           jd2  (angtos (+ jd pi) 0 2)
  139.           jd1  (angtos jd 0 2)
  140.           pdz  (rtos (abs x) 2 3)        ;(strcat (rtos (abs x) 2 3) "%")
  141.           pt3  (xyp-get-CurvePointAtDist e (/ leng 2.0))
  142.           pt4  (polar pt3 (+ (/ pi 2.0) jd) (+ (/ bl 1.0) (/ h 2.0)))
  143.           pt5  (polar pt3 (- 0 (- (/ pi 2.0) jd)) (+ (/ h 2.0) (/ bl 1.0)))
  144.           s1   (+ (max (strlen pdz) (strlen (rtos dx 2 3))) 1)
  145.           s2   (/ (* h 0.7 s1) 2.0)
  146.           pt6  (polar pt3 jd s2)
  147.           pt7  (polar pt3 jd (- 0 s2))
  148.           pt8  (polar pt3 jd (- s2 (* h 0.8)))
  149.           pt9  (polar pt3 jd (- 0 (- s2 (* h 0.8))))
  150.           pt1a (polar pt1 (+ jd (* pi 0.5)) (* sc 300))
  151.           pt2a (polar pt2 (+ jd (* pi 0.5)) (* sc 300))
  152.     )
  153.     (mkla "总图-坡度" 4)
  154.     (if        (>= (car pt2) (car pt1))
  155.       (progn
  156.         (command "text" "j" "m" pt4 h jd1 pdz)
  157.         (command "text" "j" "m" pt5 h jd1 (rtos dx 2 3))
  158.       )
  159.       (progn
  160.         (command "text" "j" "m" pt5 h jd2 pdz)
  161.         (command "text" "j" "m" pt4 h jd2 (rtos dx 2 3))
  162.       )
  163.     )
  164.     (if        (> NO1 NO2)
  165.       (command "pline" pt8 "w" (* h 0.2) "0" pt6 "")
  166.       (command "pline" pt9 "w" (* h 0.2) "0" pt7 "")
  167.     )
  168.     (command "line" pt6 pt7 "")
  169.     (cond ((= tx1 "1")
  170.            (command "text" "j" "m" pt1a h 0 (rtos no1 2 3))
  171.            (command "text" "j" "m" pt2a h 0 (rtos no2 2 3))
  172.            (mkla "总图-坡度-位置" 1)
  173.            (command "donut" 0 (* sc 100) pt1 "")
  174.            (command "donut" 0 (* sc 100) pt2 "")
  175.           )
  176.           ((= tx1 "2")
  177.            (mkla "总图-坡度-位置" 1)
  178.            (command "donut" 0 (* sc 100) pt1 "")
  179.            (command "donut" 0 (* sc 100) pt2 "")
  180.           )
  181.     )
  182.   )
  183. )
  184. (PXYP "pdbz  (坡度标注)")
  185. (princ)
  186. [/FONT]

命令 : pdbz    (坡度标注)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-4-13 14:50:41 | 显示全部楼层
象xyp1964这样的 斑竹真是不多见了!有求必应哟!对论坛管理和对大家帮助的热情“始终如一”,建议晓东开展“2005~2006年度感动中国十大斑竹”活动,我举双手投票赞成xyp1964  同志!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 15:10 , Processed in 0.195612 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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