找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1002|回复: 9

铁路线绘制。

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-1-20 13:56:02 | 显示全部楼层 |阅读模式

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

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

×
铁路线绘制,作匿名块改用api中的block_make.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-5-4 19:45:24 | 显示全部楼层
ea,请完善你的帖子
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2003-5-4 19:56:18 | 显示全部楼层

Re: 铁路线绘制。

最初由 eachy 发布
[B]铁路线绘制,作匿名块改用api中的block_make. [/B]

  1. (defun c:XDTB_Tlx (/ ss e tf1 sp lp0 lp1 ang e1 e2 _dist ptl num filter)
  2.   (if (not $XDTB_GLOBAL_SCALE)
  3.     (setq $XDTB_GLOBAL_SCALE 100.0)
  4.   )
  5.   (xdrx_begin "铁路")
  6.   (xdrx_SysVar_Push "cmdecho" "osmode" "offsetdist")
  7.   (setvar "osmode" 0)
  8.   (princ "\n选择Line、Arc、Spline、ELLIPSE、非样条化Pline<回车退出>....")
  9.   (setq        filter (list '(-4 . "<AND")
  10.                      '(0 . "*LINE,ARC,ELLIPSE")
  11.                      '(-4 . "<NOT")
  12.                      '(-4 . "<AND")
  13.                      '(0 . "*POLYLINE")
  14.                      '(70 . 4)
  15.                      '(-4 . "AND>")
  16.                      '(-4 . "NOT>")
  17.                      '(-4 . "AND>"))
  18.   )
  19.   (setq ss (ssget filter))
  20.   (if ss
  21.     (progn
  22.       (xdrx_setsstodb ss 0)
  23.       (if (setq tf1 (apply 'xdrx_isptoffscr (xdrx_entity_box ss)))
  24.         (progn
  25.           (xdrx_drawing_viewsave)
  26.           (xdrx_drawing_zoomw
  27.             (car (xdrx_entity_box ss))
  28.             (nth 3 (xdrx_entity_box ss))
  29.           )
  30.         )
  31.       )
  32.       (while (setq e (xdrx_getentdata 0))
  33.         (if (> (last (xdrx_getarea e))
  34.                (* $XDTB_GLOBAL_SCALE 20.0)
  35.             )
  36.           (progn
  37.             (xdrx_modent 8 "TLX")
  38.             (if        (or (= (xdrx_getentdxf 0) "SPLINE")
  39.                     (= (xdrx_getentdxf 0) "ELLIPSE")
  40.                     (AND (= (xdrx_getentdxf 0) "POLYLINE")
  41.                          (= (XDRX_GETENTDXF 70) 2)
  42.                     )
  43.                 )
  44.               (PROGN
  45.                 (SETQ ptl (xdrx_getsamplept e))
  46.                 (apply
  47.                   'command
  48.                   (cons "pline" (reverse ptl))
  49.                 )
  50.                 (if (xdrx_curve_isclosed e)
  51.                   (command "c")
  52.                   (command "")
  53.                 )
  54.                 (entdel e)
  55.                 (xdrx_setenttodb (setq e (entlast)))
  56.               )
  57.             )             
  58.             (setq sp        (car (xdrx_curve_getpoint e))
  59.                   ep (last (xdrx_curve_getpoint e))
  60.                   _dist        (/ (rem        (last (xdrx_getarea e))
  61.                                 (* $XDTB_GLOBAL_SCALE 20.0)
  62.                            )
  63.                            2
  64.                         )
  65.                   ang        (last
  66.                           (xdrx_getperpline
  67.                             e
  68.                             (list (car sp) (cadr sp) '0)
  69.                           )
  70.                         )
  71.                   num        (fix (/        (last (xdrx_getarea e))
  72.                                 (* $XDTB_GLOBAL_SCALE 20.0)
  73.                              )
  74.                         )
  75.                   lp0        (polar sp ang 1)
  76.                   lp1        (polar sp (+ ang pi) 1)
  77.                   PTL        (xdrx_getpointatdist E (* $XDTB_GLOBAL_SCALE 20.0))
  78.             )
  79.             (mapcar 'setvar
  80.                     '("offsetdist" "osmode")
  81.                     (list (* $XDTB_GLOBAL_SCALE 0.500) 0)
  82.             )
  83.             (c:xdrx_setmark)
  84.             (command ".offset" "" (cons e (list sp)) lp0 "")
  85.             (setq e1 (entlast))
  86.             (redraw e1 2)
  87.             (command ".offset" "" (cons e (list sp)) lp1 "")
  88.             (setq e2 (entlast))
  89.             (redraw e2 2)
  90.             (if        (not (and
  91.                        (/= (rem num 2) 0)
  92.                        (= _dist 0)
  93.                      )
  94.                 )
  95.               (progn (setq ptl ($Xdlsp_list_del ptl (1- (length ptl))))
  96.                      (setq ptl
  97.                             (mapcar '(lambda (x)
  98.                                        (xdrx_getpointatdist
  99.                                          e
  100.                                          x
  101.                                          (+ (* $XDTB_GLOBAL_SCALE 10.0) _dist)
  102.                                        )
  103.                                      )
  104.                                     ptl
  105.                             )
  106.                      )
  107.                      (setq ptl (cons ep (reverse (cons sp ptl))))
  108.               )
  109.               (setq ptl (reverse ptl))
  110.             )
  111.             (while (>= (LENGTH Ptl) 2)
  112.               (setvar "osmode" 0)
  113.               (command ".break"
  114.                        (cons e (list sp))
  115.                        "f"
  116.                        (car ptl)
  117.                        (cadr ptl)
  118.               )
  119.               (xdrx_setenttodb (entlast))
  120.               (if (and (not (equal (entlast) e1))
  121.                        (not (equal (entlast) e2))
  122.                   )
  123.                 (if (wcmatch (xdrx_getentdxf 0) "*POLYLINE")
  124.                   (command ".pedit" (entlast) "w" $XDTB_GLOBAL_SCALE "")
  125.                   (command ".pedit"
  126.                            (entlast)
  127.                            "y"
  128.                            "w"
  129.                            $XDTB_GLOBAL_SCALE
  130.                            ""
  131.                   )
  132.                 )
  133.               )
  134.               (setq ptl (cddr ptl))
  135.             )
  136.             (if        (and e
  137.                      (xdrx_setenttodb e)
  138.                      (wcmatch (xdrx_getentdxf 0) "*POLYLINE")
  139.                 )
  140.               (command ".pedit"
  141.                        (cons e (list sp))
  142.                        "w"
  143.                        $XDTB_GLOBAL_SCALE
  144.                        ""
  145.               )
  146.               (command ".pedit"
  147.                        (cons e (list sp))
  148.                        "y"
  149.                        "w"
  150.                        $XDTB_GLOBAL_SCALE
  151.                        ""
  152.               )
  153.             )
  154.                 (redraw e1 1)
  155.             (redraw e2 1)
  156.             (xdrx_block_make (ssadd e (c:xdrx_getss)) sp T)
  157.             (xdrx_setenttodb (entlast))
  158.             (xdrx_modent 8 "TLX")
  159.           )
  160.         )
  161.       )
  162.     )
  163.   )
  164.   (if tf1
  165.     (xdrx_drawing_viewres)
  166.   )
  167.   (xdrx_end)
  168.   (xdrx_SysVar_Pop)
  169.   (princ)
  170. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-5-29 09:53:09 | 显示全部楼层
那些代码复制下来,新建一个记事本,然后粘贴到记事本,然后将记事的文件扩展名TXT改为LSP,打开你的CAD,将这个文件扩展名为LSP的文件拖到你的CAD绘图窗口中就可以输入启动命令,可以使用了。
启动命令:XDTB_Tlx,不知道要不要安装晓东工具箱呀?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-6-18 19:35:55 | 显示全部楼层
唉,楼主,我按照你的说明去做了,可是一直都没有成功,我用appload命令加载后再用XDTL_Tlx命令时,提示按F1键寻求帮助,这是怎么回事?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-6-19 10:52:21 | 显示全部楼层
我就是不知道要不要安装晓东工具箱呀?看你的情况,我想应该安装晓东工具箱后,才能用吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

发表于 2005-6-19 13:19:04 | 显示全部楼层
还有一个办法,就就是 运行命令_vlide,在打开的窗口里把上面的内容复制进去,保存,然后加载就可以用拉!  哈哈  
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-18 23:18 , Processed in 0.439417 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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