找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1001|回复: 6

如何绘制铁路

[复制链接]
发表于 2002-4-13 10:41:30 | 显示全部楼层 |阅读模式

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

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

×
如何象绘制样条曲线一样绘制铁路,就象地图上的一段黑一段白的那种,谢谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-4-13 12:20:38 | 显示全部楼层
以前有段时间讨论了 沿着曲线等距离插断线 这个问题,有很多贴及解决方案,和你的问题很想象,你用“距离”“短线”搜索一下。也可在程序库“xd给大家写的程序”中找。
大体方法如下:
1。作形文件,改线形。
2。offset ,两条细实线,中间夹一条粗虚线。
3。求曲线法线,等距离插入,编程实现
4。divide用 短粗线块 均分曲线。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-4-13 23:52:49 | 显示全部楼层

如何自动实现???

非常感谢梦断江南老师的指导
我已采用如下办法实现:首先绘制一多段线(细实线),然后用offset在两侧各复制一条,用Pedit编辑中间的多段线,线型采用按要求编制的虚线,线宽设成和两侧细实线的距离相等即可。
但是每次都进行以上操作很麻烦,希望高手能编一lisp程序自动实现以上过程,即绘制一条多段线后,剩下的操作自动执行,谢谢!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-4-14 09:02:21 | 显示全部楼层

回复: 如何自动实现???

最初由 ahwu 发布
[B]非常感谢梦断江南老师的指导
我已采用如下办法实现:首先绘制一多段线(细实线),然后用offset在两侧各复制一条,用Pedit编辑中间的多段线,线型采用按要求编制的虚线,线宽设成和两侧细实线的距离相等即可。
但是每次都进行以上操作很麻烦,希望高手能编一lisp程序自动实现以上过程,即绘制一条多段线后,剩下的操作自动执行,谢谢!!!! [/B]


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

使用道具 举报

 楼主| 发表于 2002-4-16 09:52:29 | 显示全部楼层

请eachy版主帖过来,也请各位高手帮忙,谢谢!

管理员,有关本主题的内容还是搜索不到,请eachy版主把程序帖过来,也请各位高手帮忙,谢谢!!!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-4-16 10:15:47 | 显示全部楼层

  1. ;|
  2. 命令:tlx

  3. 说明:通过拾取中线自动生成铁路线, 中线可以是*polylinee、line或arc
  4.       
  5.       程序中使用线型作虚线, 所以对经过拟合的pline支持不好,请注意!

  6.       以下所用H3线型可根据ltscale调整数值,将其加入到acad.lin中
  7. *H3,___  ___  ___  ___  ___  ___  ___  ___
  8. A,5,-4
  9. |;
  10. (setq #tl_wid 2.0)                        ;默认路宽
  11. (defun c:tlx (/ ss s1 e tf wid sp lp0 lp1 ang)
  12.   (xdrx_begin '("cmdecho" "0"))
  13.   (setq        tf        T
  14.         olddist        (getvar "offsetdist")
  15.         oldos        (getvar "osmode")
  16.   )
  17.   (while (and tf
  18.               (setq ss (xdrx_entsel
  19.                          "\n选路中心线<退出>: "
  20.                          '((0 . "LINE,ARC,*POLYLINE") (8 . "TL"))
  21.                        )
  22.               )
  23.          )
  24.     (if        ss
  25.       (progn
  26.         (setq wid
  27.                (getreal        (strcat "\n铁路线宽度:<" (rtos #tl_wid 2 1) ">: ")
  28.                )
  29.         )
  30.         (if (null (tblsearch "ltype" "h3")) ;判断是否加载线型
  31.           (command ".linetype" "l" "h3" "acad" "")
  32.         )
  33.         (if (or        (= wid "")
  34.                 (= wid nil)
  35.             )
  36.           (setq wid #tl_wid)
  37.           (setq #tl_wid wid)
  38.         )
  39.         (mapcar 'setvar '("offsetdist" "osmode") (list wid 0))
  40.         (setq e (car ss))
  41.         (setq sp  (car (xdrx_getsamplept e)) ;线起点
  42.               ang (last
  43.                     (xdrx_getperpline
  44.                       e
  45.                       (list (car sp) (cadr sp) '0.0)
  46.                     )
  47.                   )                        ;法线角度
  48.               lp0 (polar sp ang wid)
  49.               lp1 (polar sp (+ ang pi) wid)
  50.               s1  (ssadd)
  51.               s1  (ssadd e s1)
  52.         )
  53.         (command ".offset" "" e lp0 "")
  54.         (setq s1 (ssadd (entlast) s1))
  55.         (command ".offset" "" e lp1 "")
  56.         (setq s1 (ssadd (entlast) s1))
  57.         (command ".change" e "" "p" "lt" "h3" "")
  58.         (if (wcmatch (xdrx_getentdxf 0) "*POLYLINE")  
  59.           (command ".pedit" e "w" (* 2 wid) "")
  60.           (progn
  61.             (command ".pedit" e "y" "w" (* 2 wid) "")
  62.             (setq s1 (ssadd (entlast) s1))
  63.           )
  64.         )
  65.         (xdrx_block_make s1 sp T)        ;作匿名块
  66.       )                                       
  67.       (setq tf nil)                       
  68.     )                                       
  69.   )                                       
  70.   (mapcar 'setvar
  71.           '("offsetdist" "osmode")
  72.           (list olddist oldos)
  73.   )
  74.   (xdrx_end)
  75.   (princ)
  76. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-28 21:59:19 | 显示全部楼层
这里有一个:
http://www.xdcad.net/forum/showthread.php?s=&threadid=74032

(if (null (tblsearch "ltype" "h3")) ;判断是否加载线型
  (command ".linetype" "l" "h3" "acad" "")
)
这方法很好,我得把它加到我的程序中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 04:18 , Processed in 0.303873 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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