找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4757|回复: 15

[测试]:铁路线-程序

[复制链接]
发表于 2005-9-22 22:39:41 | 显示全部楼层 |阅读模式

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

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

×
用户可修改层颜色
  1. ;;;
  2. (load "xyp_lib")
  3. ;|加载通用函数(可在签名栏直接下载)
  4. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  5. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  6. 1.在acad.lsp中增加(load"xyp_lib")
  7. 2.在每个程序内增加(load"xyp_lib")
  8. 3.在command下,输入(load"xyp_lib")
  9. 4.在菜单.mnl中增加(load"xyp_lib")
  10. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  11. [COLOR=red] ★通用函数下载地址:[/COLOR]
  12. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  13. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  14. ;;;铁路线
  15. ;;;------------------------------------------------------------------------
  16. (defun c:tlx ()
  17.   (cmdla0)
  18.   (setvar "osmode" 0)
  19.   (SETQ        TX1  (UKWORD 7 "1 2" "\n填充方式 : 1-SOLID/2-宽拟合线" TX1)
  20.         no1  (UREAL 7 "" "\n铁路线宽度" no1)
  21.         wide (/ no1 2.0)
  22.         no2  (UREAL 7 "" "\n黑白段长度" no2)
  23.         n    -1
  24.   )
  25.   (princ "\选择SPLINE线 : ")
  26.   (setq ss (ssget '((0 . "SPLINE"))))
  27.   (cond        ((= tx1 "1") (tieluxian1))
  28.         ((= tx1 "2") (tieluxian2))
  29.   )
  30.   (cmdla1)
  31. )
  32. ;;;SOLID------------------------------------------------------------------------
  33. (defun tieluxian1()
  34.   (while (setq s1 (ssname ss (setq n (1+ n))))
  35.     (setq pts (vlax-curve-getStartPoint s1)
  36.           pt1 (PT-FAXIAN s1 pts wide)
  37.           pt2 (PT-FAXIAN s1 pts (* wide -1.0))
  38.     )
  39.     (command "offset" wide s1 pt1 s1 pt2 "")
  40.     (setq ptlst1 (CURVE-DIV-PTLST s1 no2)
  41.           ptlst2 (CURVE-DIV-PTLST s1 (/ no2 2.0))
  42.     )
  43.     (mkla "枕木" 6)
  44.     (while (setq pt (car ptlst1))
  45.       (setq ptlst1 (cdr ptlst1)
  46.             pt1           (PT-FAXIAN s1 pt (* wide 1.25))
  47.             pt2           (PT-FAXIAN s1 pt (* wide -1.25))
  48.       )
  49.       (command "line" pt1 pt2 "")
  50.     )
  51.     (entdel s1)
  52.     (mkla "填充" 1)
  53.     (while (setq pt0 (car ptlst2))
  54.       (if (and (setq ptlst2 (cdr ptlst2))
  55.                (setq pt (car ptlst2))
  56.           )
  57.         (progn ;;确保填充范围在显示区内
  58.                (command        "zoom"
  59.                         "w"
  60.                         (polar pt (* pi 1.25) (* no2 0.75))
  61.                         (polar pt (* pi 0.25) (* no2 0.75))
  62.                )
  63.                (working)
  64.                (command "_bhatch" "p" "solid" pt "")
  65.                (setq ptlst2 (cdr ptlst2))
  66.                (if (and        (setq ptlst2 (cdr ptlst2))
  67.                         (setq pt (car ptlst2))
  68.                    )
  69.                  (setq ptlst2 (cdr ptlst2))
  70.                )
  71.         )
  72.       )
  73.     )
  74.   )
  75.   (command "zoom" "e")
  76. )
  77. ;;;宽拟合线-----------------------------------------------------------
  78. (defun tieluxian2 ()
  79.   (while (setq s1 (ssname ss (setq n (1+ n))))
  80.     (setq pts         (vlax-curve-getStartPoint s1)
  81.           pt1         (PT-FAXIAN s1 pts wide)
  82.           pt2         (PT-FAXIAN s1 pts (* wide -1.0))
  83.           ptlst1 (CURVE-DIV-PTLST s1 no2)
  84.           ptlst2 (CURVE-DIV-PTLST s1 (/ no2 2.0))
  85.     )
  86.     (command "offset" wide s1 pt1 s1 pt2 "")
  87.     (mkla "枕木" 6)
  88.     (while (setq pt (car ptlst1))
  89.       (setq ptlst1 (cdr ptlst1)
  90.             pt1           (PT-FAXIAN s1 pt (* wide 1.3))
  91.             pt2           (PT-FAXIAN s1 pt (* wide -1.3))
  92.       )
  93.       (command "line" pt1 pt2 "")
  94.     )
  95.     (entdel s1)
  96.     (mkla "填充" 1)
  97.     (while (setq pt0 (car ptlst2))
  98.       (setq ptnum (length ptlst2))
  99.       (if (<= ptnum 3)
  100.         (if (= ptnum 2)
  101.           (progn
  102.             (setq pt1         (cadr ptlst2)
  103.                   pt2         (_midp pt0 pt1)
  104.                   pt2         (osnap pt2 "near")
  105.                   ptlst2 nil
  106.             )
  107.             (command "pline" pt0 pt1 pt2 "")
  108.             (command "pedit" (entlast) "s" "w" no1 "")
  109.             (working)
  110.           )
  111.           (progn
  112.             (setq pt1         (cadr ptlst2)
  113.                   pt2         (caddr ptlst2)
  114.                   ptlst2 nil
  115.             )
  116.             (command "pline" pt0 pt1 pt2 "")
  117.             (command "pedit" (entlast) "s" "w" no1 "")
  118.             (working)
  119.           )
  120.         )
  121.         (progn
  122.           (if (and (setq ptlst2 (cdr ptlst2))
  123.                    (setq pt1 (car ptlst2))
  124.                    (setq ptlst2 (cdr ptlst2))
  125.                    (setq pt2 (car ptlst2))
  126.                    (setq ptlst2 (cdr ptlst2))
  127.               )
  128.             (progn
  129.               (command "pline" pt0 pt1 pt2 "")
  130.               (command "pedit" (entlast) "s" "w" no1 "")
  131.               (setq ptlst2 (cdr ptlst2))
  132.               (working)
  133.             )
  134.           )
  135.         )
  136.       )
  137.     )
  138.   )
  139. )
  140. (defun working ()
  141.   (princ ".")
  142.   (princ)
  143. )
  144. ;;;
  145. (pxyp "tlx  (铁路线)")[FONT=courier new][/FONT]

20050923版-相间
20050924版-填充方式可选:1-SOLID/2-宽拟合线
20051020版-修改BUG
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2005-9-22 22:39:57 | 显示全部楼层
效果:
HATCH及POLYLINE
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-23 11:57:27 | 显示全部楼层
用solid填充,有时会出错,改为宽拟合线可能更好!
用宽拟合线可以不考虑所画位置是否在显示区内,填充不会遗漏但不精确。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-10-20 21:41:17 | 显示全部楼层
在2006是否能用?为什么有时行,在有的图中就不行?请指教!谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-11 14:15:13 | 显示全部楼层
怀念我的堕落街,思念我的师大mm,
在八年抗战四级的路上慢慢遗忘,回首却发现已在少林市敲起了木鱼!————枫叶是否又已红遍!!!
遥远的铃声轻颤, 在天边渺茫的响起,
再沉落……
那是奈何桥上, 亡魂不舍昼夜的歌声……
奈何桥上,孟婆悠悠端起汤碗…
喝一碗孟婆汤 忘了前世的忧伤
喝一碗孟婆汤 来生跟你再续缘
无论谁,都要走奈何桥,喝孟婆汤
所以,今生今世,该珍惜的,就去珍惜!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-8-8 11:43:41 | 显示全部楼层
我是搞规划的,原来用CAD不多,现在开始用了,向大家请教
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-18 17:57:01 | 显示全部楼层
我用的是2004版的,加载后运行出现下面提示:
命令: _appload 已成功加载 铁路线.lsp。
已成功加载 铁路线.lsp。
命令: ; 错误: no function definition: PXYP
命令: ; 错误: no function definition: PXYP
命令:
命令: TLX
; 错误: no function definition: CMDLA0
不知什么原因,怎样解决?
E-mail:TLHMQH@163.COM
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2009-8-21 20:14:38 | 显示全部楼层

铁路线

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

使用道具 举报

发表于 2009-9-19 16:07:12 | 显示全部楼层
爱心能用钱还来么?
有好心人能不能给我发一份,本人将无限感激,在此先谢谢了。aqi7222785@163.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 09:54 , Processed in 0.286596 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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