找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: fdg30001

[已解决] 1000人民币求一个切剖面程序,具体要求看附件

[复制链接]
 楼主| 发表于 2013-11-10 20:07:02 | 显示全部楼层
这都不是事,看这幅图

0805.rar

34.84 KB, 下载次数: 13

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

使用道具 举报

 楼主| 发表于 2013-11-10 20:27:20 | 显示全部楼层
我只要剖面线与我画的地形线(多段线)交点标高,其他地方不考虑,剖面纵横比例都是1:1000

点评

先下载api和lisp-lib库,给你用api写一个  详情 回复 发表于 2013-11-10 21:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-10 21:04:17 来自手机 | 显示全部楼层
fdg30001 发表于 2013-11-10 20:27
我只要剖面线与我画的地形线(多段线)交点标高,其他地方不考虑,剖面纵横比例都是1:1000

先下载api和lisp-lib库,给你用api写一个

点评

你是决定帮我写着程序了? 我下载了个XDRX_API.R16.X32,但是LISP-lib库没有,我找找看,要不等你做出来了一起打包给我。 加我QQ吧,详细谈谈,支付什么的一些问题,782244632  详情 回复 发表于 2013-11-10 21:19
你是决定帮我写着程序了? 我下载了个XDRX_API.R16.X32,但是LISP-lib库没有,我找找看,要不等你做出来了一起打包给我。 加我QQ吧,详细谈谈,支付什么的一些问题,782244632  详情 回复 发表于 2013-11-10 21:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-11-10 21:17:52 | 显示全部楼层
st788796 发表于 2013-11-10 21:04
先下载api和lisp-lib库,给你用api写一个

你是决定帮我写着程序了?
我下载了个XDRX_API.R16.X32,但是LISP-lib库没有,我找找看,要不等你做出来了一起打包给我。
加我QQ吧,详细谈谈,支付什么的一些问题,782244632
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-11-10 21:19:08 | 显示全部楼层
st788796 发表于 2013-11-10 21:04
先下载api和lisp-lib库,给你用api写一个

你是决定帮我写着程序了?
我下载了个XDRX_API.R16.X32,但是LISP-lib库没有,我找找看,要不等你做出来了一起打包给我。
加我QQ吧,详细谈谈,支付什么的一些问题,782244632

点评

楼主这个应用中的剖线编号最好有个配套程序在线上记录编号信息,直接由程序判定不好办,比如出现"U"时  详情 回复 发表于 2013-11-11 09:12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-11 01:47:48 | 显示全部楼层
dnbcgrass 发表于 2013-11-10 22:49
加载qpmt.vlx后,在命令行键入qpmt命令,选择图中的剖面线,并指定第一条剖面线的起点,即可切取剖面,切完 ...

先写几句求交点的,有个函数没有关闭调试信息
  1. (defun c:tt (/ ss Lss Pss Lcurve Lcurves pts Ppts)
  2.   (if (setq ss (ssget '((0 . "*polyline"))))
  3.     (progn
  4.       (setq Lss           (ssget "P" '((0 . "lwpolyline")))
  5.             Pss           (xdrx_pickset_subtract ss Lss)
  6.             Lcurve (xdrx_curve_getProjectCurve Pss '((0. 0. 0.) (0. 0. 1.)))
  7.             Lcurves (xdrx_pickset->ents lcurve)
  8.             pts           (xdrx_curve_getinters Lss Lcurve)
  9.             Rays  (mapcar '(lambda (x) (xdrx_ray_make x (mapcar '+ x '(0. 0. 1.)))) pts)
  10.             Ppts (xdrx_curve_getinters (XD::Entity->Pickset Rays) Pss)
  11.       )
  12.       (mapcar 'xdrx_entity_delete rays)
  13.       (mapcar 'xdrx_entity_delete Lcurves)
  14.     )
  15.   )
  16.   Ppts
  17. )


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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-11 09:12:02 来自手机 | 显示全部楼层
fdg30001 发表于 2013-11-10 21:19
你是决定帮我写着程序了?
我下载了个XDRX_API.R16.X32,但是LISP-lib库没有,我找找看,要不等你做出来 ...

楼主这个应用中的剖线编号最好有个配套程序在线上记录编号信息,直接由程序判定不好办,比如出现"U"时
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-11-11 18:26:10 | 显示全部楼层
dnbcgrass,就交给i做了,加我QQ详谈,有些问题

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-12 21:30:52 | 显示全部楼层
fdg30001 发表于 2013-11-11 18:26
dnbcgrass,就交给i做了,加我QQ详谈,有些问题

解决了就不往下写了
  1. (defun c:tt (/ ss BaseH Lss Pss Lcurve Lcurves pts Ppts Pents PtsOnPl)
  2.   (defun cutz (p)
  3.     (list (car p) (cadr p))
  4.   )
  5.   (if (and (setq ss (ssget '((0 . "*polyline"))))
  6.            (setq BaseH (getreal "\n基准高程: "))
  7.            (setq p (getpoint "\n绘制基点: "))
  8.       )
  9.     (progn
  10.       (setq Lss            (ssget "P" '((0 . "lwpolyline")))
  11.             Pss            (xdrx_pickset_subtract ss Lss)
  12.             Pents   (xdrx_pickset->ents lss)
  13.             Lcurve  (xdrx_curve_getProjectCurve
  14.                       Pss
  15.                       '((0. 0. 0.) (0. 0. 1.))
  16.                     )
  17.             Lcurves (xdrx_pickset->ents lcurve)
  18.             pts            (xdrx_curve_getinters Lss Lcurve)
  19.             Rays    (mapcar
  20.                       '(lambda (x)
  21.                          (xdrx_ray_make x (mapcar '+ x '(0. 0. 1.)))
  22.                        )
  23.                       pts
  24.                     )
  25.             Ppts    (xdrx_curve_getinters (XD::Entity->Pickset Rays) Pss)
  26.       )
  27.       (mapcar 'xdrx_entity_delete rays)
  28.       (mapcar 'xdrx_entity_delete Lcurves)
  29.       (setq Ppts    (mapcar
  30.                       '(lambda (x)
  31.                          (list (car x) (cadr x) (- (caddr x) BaseH))
  32.                        )
  33.                       Ppts
  34.                     )
  35.             PtsOnPl (mapcar '(lambda (x / l)
  36.                                (setq l          (vl-remove-if-not
  37.                                             '(lambda (p)
  38.                                                (xdrx_point_ison
  39.                                                  (cutz p)
  40.                                                  x
  41.                                                )
  42.                                              )
  43.                                             Ppts
  44.                                           )
  45.                                      Ppts (vl-remove-if
  46.                                             '(lambda (p)
  47.                                                (xdrx_point_ison
  48.                                                  (cutz p)
  49.                                                  x
  50.                                                )
  51.                                              )
  52.                                             Ppts
  53.                                           )
  54.                                )
  55.                                (cons x l)
  56.                              )
  57.                             Pents
  58.                     )
  59.             PtsOnPl (mapcar '(lambda (x / e pts)
  60.                                (setq e         (car x)
  61.                                      pts (vl-sort
  62.                                            (cdr x)
  63.                                            '(lambda (p1 p2)
  64.                                               (< (xdrx_curve_getparamatpoint
  65.                                                    e
  66.                                                    (cutz p1)
  67.                                                  )
  68.                                                  (xdrx_curve_getparamatpoint
  69.                                                    e
  70.                                                    (cutz p2)
  71.                                                  )
  72.                                               )
  73.                                             )
  74.                                          )
  75.                                )
  76.                                (cons e pts)
  77.                              )
  78.                             PtsOnPl
  79.                     )
  80.             PtsOnpl (mapcar
  81.                       '(lambda (x / pts e bp disL)
  82.                          (setq e    (car x)
  83.                                pts  (cdr x)
  84.                                bp   (cutz (car pts))
  85.                                disL (mapcar '(lambda (a)
  86.                                                (cons (distance
  87.                                                        (cutz a)
  88.                                                        bp
  89.                                                      )
  90.                                                      (caddr a)
  91.                                                )
  92.                                              )
  93.                                             (cdr pts)
  94.                                     )
  95.                          )
  96.                          (cons e (cons (cons '0. (last (cadr x))) disL))
  97.                        )
  98.                       PtsOnpl
  99.                     )
  100.       )
  101.     )
  102.   )
  103.   (princ PtsOnPl)
  104.   (princ)
  105. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-13 07:57:19 | 显示全部楼层
正好测试几个make函数,完整程序如下,没有写*error*处理,运行中如果中断可能会产生垃圾!
  1. (defun c:tt (/            cutz   ss          BaseH         Lss        Pss    Lcurve Lcurves
  2.              pts    Ppts   Pents  Rays         PtsOnPl       bh     an
  3.              p
  4.             )
  5.   (defun cutz (p)
  6.     (list (car p) (cadr p))
  7.   )
  8.   (if (and (setq ss (ssget '((0 . "*polyline"))))
  9.            (setq BaseH (getreal "\n基准高程: "))
  10.            (setq p (getpoint "\n绘制基点: "))
  11.       )
  12.     (progn
  13.       ;;(XD::Begin)
  14.       (setq Lss            (ssget "P" '((0 . "lwpolyline")))
  15.             Pss            (xdrx_pickset_subtract ss Lss)
  16.             Pents   (xdrx_pickset->ents lss)
  17.             Lcurve  (xdrx_curve_getProjectCurve
  18.                       Pss
  19.                       '((0. 0. 0.) (0. 0. 1.))
  20.                     )
  21.             Lcurves (xdrx_pickset->ents lcurve)
  22.             pts            (xdrx_curve_getinters Lss Lcurve)
  23.             Rays    (mapcar
  24.                       '(lambda (x)
  25.                          (xdrx_ray_make x (mapcar '+ x '(0. 0. 1.)))
  26.                        )
  27.                       pts
  28.                     )
  29.             Ppts    (xdrx_curve_getinters (XD::Entity->Pickset Rays) Pss)
  30.       )
  31.       (mapcar 'xdrx_entity_delete rays)
  32.       (mapcar 'xdrx_entity_delete Lcurves)
  33.       (setq Ppts    (mapcar
  34.                       '(lambda (x)
  35.                          (list (car x) (cadr x) (- (caddr x) BaseH))
  36.                        )
  37.                       Ppts
  38.                     )
  39.             PtsOnPl (mapcar '(lambda (x / l)
  40.                                (setq l          (vl-remove-if-not
  41.                                             '(lambda (p)
  42.                                                (xdrx_point_ison
  43.                                                  (cutz p)
  44.                                                  x
  45.                                                )
  46.                                              )
  47.                                             Ppts
  48.                                           )
  49.                                      Ppts (vl-remove-if
  50.                                             '(lambda (p)
  51.                                                (xdrx_point_ison
  52.                                                  (cutz p)
  53.                                                  x
  54.                                                )
  55.                                              )
  56.                                             Ppts
  57.                                           )
  58.                                )
  59.                                (cons x l)
  60.                              )
  61.                             Pents
  62.                     )
  63.             PtsOnPl (mapcar '(lambda (x / e pts)
  64.                                (setq e         (car x)
  65.                                      pts (vl-sort
  66.                                            (cdr x)
  67.                                            '(lambda (p1 p2)
  68.                                               (< (xdrx_curve_getparamatpoint
  69.                                                    e
  70.                                                    (cutz p1)
  71.                                                  )
  72.                                                  (xdrx_curve_getparamatpoint
  73.                                                    e
  74.                                                    (cutz p2)
  75.                                                  )
  76.                                               )
  77.                                             )
  78.                                          )
  79.                                )
  80.                                (cons e pts)
  81.                              )
  82.                             PtsOnPl
  83.                     )
  84.             PtsOnpl (mapcar
  85.                       '(lambda (x / pts e bp disL)
  86.                          (setq e    (car x)
  87.                                pts  (cdr x)
  88.                                bp   (cutz (car pts))
  89.                                disL (mapcar '(lambda (a)
  90.                                                (list (distance
  91.                                                        (cutz a)
  92.                                                        bp
  93.                                                      )
  94.                                                      (caddr a)
  95.                                                )
  96.                                              )
  97.                                             (cdr pts)
  98.                                     )
  99.                          )
  100.                          (cons e (cons (list '0. (last (cadr x))) disL))
  101.                        )
  102.                       PtsOnpl
  103.                     )
  104.       )
  105.       (setq an (- (/ pi 3.))
  106.             bh (rtos BaseH 2 0)
  107.       )
  108.       ;;Draw
  109.       (mapcar '(lambda (x / pp pp1 p1 txt)
  110.                  (setq pp  (mapcar '(lambda (a) (mapcar '+ p a)) x)
  111.                        pp1 (mapcar '(lambda (b)
  112.                                       (mapcar '+ p (list (car b) 0.))
  113.                                     )
  114.                                    x
  115.                            )
  116.                        p   (mapcar '+ p '(100. 0. 0.))
  117.                  )
  118.                  (apply 'xdrx_polyline_make pp)
  119.                  (mapcar '(lambda (a)
  120.                             (xdrx_Donut_make
  121.                               (list (car a) (cadr a) 0.) ;_需要 3D 点
  122.                               0.
  123.                               0.5
  124.                             )
  125.                           )
  126.                          pp1
  127.                  )
  128.                  (mapcar '(lambda (c d) (xdrx_line_make c d)) pp pp1)
  129.                  (xdrx_line_make
  130.                    (polar (car pp1) pi 20.)
  131.                    (setq p1 (polar (last pp1) 0. 20.))
  132.                  )
  133.                  (setq txt (xdrx_text_make
  134.                              (list (car p1) (cadr p1) 0.) ;_需要 3D 点
  135.                              bh
  136.                              2.5
  137.                              0.
  138.                            )
  139.                  )
  140.                  (xdrx_text_setvermode txt 2)
  141.                  (mapcar '(lambda (e f / txt)
  142.                             (setq txt (xdrx_text_make
  143.                                         (list (car e) (cadr e) 0.) ;_需要 3D 点
  144.                                         (rtos (cadr f) 2 3)
  145.                                         2.0
  146.                                         an
  147.                                       )
  148.                             )
  149.                             (xdrx_text_setvermode txt 3)
  150.                           )
  151.                          pp1
  152.                          x
  153.                  )
  154.                )
  155.               (mapcar 'cdr PtsOnpl)
  156.       )
  157.      ;; (XD::End)
  158.     )
  159.   )  
  160.   ;;(princ PtsOnPl)
  161.   (princ)
  162. )

点评

不好意思st788796,谢谢你的热情帮忙,dnbcgrass帮我写了,很完美的一个程序,超过我的预期,也谢谢dnbcgrass。  详情 回复 发表于 2013-11-13 18:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-11-13 18:24:34 | 显示全部楼层
本帖最后由 fdg30001 于 2013-11-13 18:31 编辑
st788796 发表于 2013-11-13 07:57
正好测试几个make函数,完整程序如下,没有写*error*处理,运行中如果中断可能会产生垃圾!

不好意思st788796,谢谢你的热情帮忙,dnbcgrass帮我写了,很完美的一个程序,超过我的预期,也谢谢dnbcgrass。

另外我测试了你写的代码,没用,辛苦了。

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-13 19:17:56 | 显示全部楼层
fdg30001 发表于 2013-11-13 18:24
不好意思st788796,谢谢你的热情帮忙,dnbcgrass帮我写了,很完美的一个程序,超过我的预期,也谢谢dnbcg ...

有用的就好欢迎常来!
3dpoly.gif

点评

XDCAD论坛很好,让我学习了很多知识,只要有时间就上来看看。 看了你的程序效果也很好,谢谢  详情 回复 发表于 2013-11-13 20:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2013-11-13 20:31:55 | 显示全部楼层
XDCAD论坛很好,让我学习了很多知识,只要有时间就上来看看。

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

使用道具 举报

 楼主| 发表于 2013-11-13 20:34:22 | 显示全部楼层
st788796 发表于 2013-11-13 19:17
有用的就好欢迎常来!

XDCAD论坛很好,让我学习了很多知识,只要有时间就上来看看。
看了你的程序效果也很好,谢谢

点评

那你可以把那个朋友给你做的效果,运行下,做个动画贴上来,让大家看看吧。  详情 回复 发表于 2013-11-13 20:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-11-13 20:47:28 | 显示全部楼层
fdg30001 发表于 2013-11-13 20:34
XDCAD论坛很好,让我学习了很多知识,只要有时间就上来看看。
看了你的程序效果也很好,谢谢

那你可以把那个朋友给你做的效果,运行下,做个动画贴上来,让大家看看吧。

点评

看看dnbcgrass写的程序效果,因为单个GIF文件3.31M无法上传,只能压缩了。  详情 回复 发表于 2013-11-14 19:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 05:09 , Processed in 0.352478 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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