找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2050|回复: 19

[求助] [求助]:怎样把提取出的xyz重新定义为一个坐标点

[复制链接]
发表于 2008-12-24 12:32:17 | 显示全部楼层 |阅读模式

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

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

×
刚学,请指教,怎样把dx dy dz 重新定义为一个新坐标
(setq  p1 (getpoint  "\n基点")
        d (getpoint  "\n选点")
       dx (car d)
       dy (cadr d)
       dz (getreal "\n输入Z")
我想做这样一个东东,就是在画三维多段线过程中,xy值由鼠标拾取,而z值由人工输入,这样的多段线怎样能连续画下去呢?
请高手指点,不胜感激。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2008-12-24 13:09:56 | 显示全部楼层

Re: [求助]:怎样把提取出的xyz重新定义为一个坐标点

最初由 SGP007 发布
[B]刚学,请指教,怎样把dx dy dz 重新定义为一个新坐标
(setq  p1 (getpoint  "\n基点")
        d (getpoint  "\n选点")
       dx (car d)
       dy (cadr d)
       dz (getreal "\n输入Z")
我想做这样一个?.. [/B]


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

使用道具 举报

 楼主| 发表于 2008-12-24 13:16:31 | 显示全部楼层
刚学,很多不懂,还得请教一下:怎样把dx dy dz 重新定义为一个新坐标呢?
这个循环怎么做呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-24 13:57:03 | 显示全部楼层
(defun c:tt ()
  (command "_.3dpoly")
  (while (/= 0 (getvar "cmdactive"))
    (if        (and (setq d (getpoint "\n point for xy:"))
             (setq dz (getdist "\n Z value:"))
        )
      (command "non" (list (car d) (cadr d) dz))
      (command "")
    )
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-25 09:12:51 | 显示全部楼层
高手果然厉害,佩服佩服,非常感谢。
那么提取三位多段线的坐标xyz到文本怎样实现呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7335个

财富等级: 富甲天下

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

使用道具 举报

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

使用道具 举报

已领礼包: 7335个

财富等级: 富甲天下

发表于 2008-12-25 12:04:22 | 显示全部楼层

  1. (defun coord (ee / dat rp ptss)
  2.   (setq dat (entget ee)
  3.          rp 1
  4.   )
  5.   (while rp
  6.     (setq dat (entget (entnext (cdr (car dat)))))
  7.     (if (/= (cdr (assoc 0 dat)) "SEQEND")
  8.       (setq ptss (cons (cdr (assoc 10 dat)) ptss))
  9.       (setq rp nil)
  10.     )                                   ; if
  11.   )                                     ; while
  12.   (reverse ptss)
  13. )
  14. ;;


  15. (defun WrtPt (ee fp)
  16.    (mapcar
  17.      (function
  18.        (lambda (pt)
  19.          (Write-line
  20.            (strcat
  21.              (rtos (car pt))
  22.              ",  "
  23.              (rtos (cadr pt))
  24.              ",  "
  25.              (rtos (caddr pt))
  26.            )
  27.            fp
  28.      ) ) )
  29.      (coord  ee)
  30.    )
  31. )

  32. (defun c:try ()
  33.   (if (and
  34.         (setq ss (ssget ":S:E" '((0 . "POLYLINE"))))
  35.         (setq fp (open "C:/xyz.txt" "w"))
  36.       )
  37.     (and
  38.       (wrtPt (ssname ss 0) fp)
  39.       (close fp)
  40.     )
  41.   )
  42.   (princ)
  43. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 7335个

财富等级: 富甲天下

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

使用道具 举报

 楼主| 发表于 2008-12-25 18:13:00 | 显示全部楼层
首先,非常感谢各位高手指点!
我想加入这样一个功能,确定起点后:每点一个点,就输出这个点到起点的距离 和 输入的Z值。
命令行的提示我做出了,但是怎样输出的文本呢?或者全部一次输出也行。本来我是输出坐标到excel里面处理,但是这样有点麻烦。所以还得请教高手

(vl-load-com)
(defun c:k ()
(setq qd (getpoint "\n 请拾取起点:")
      qdx (car qd)
      qdy (cadr qd)
      qdlc (getreal "\n 请输入起点里程")
)
(command "_.3dpoly")
(while (/= 0 (getvar "cmdactive"))
(if (and (setq d (getpoint "\n 请拾取点:"))
(setq dz (getdist "\n 请输入标高:"))
)
(command "non" (list (car d) (cadr d) dz))
(command "")
)
(setq     xcz (- (car d) qdx)
          ycz (- (cadr d) qdy)
           xx (expt xcz 2)
           yy (expt ycz 2)
           ooo (+ xx yy)
           cd (sqrt ooo)
           lc (+ qdlc cd)
)
(princ "\n 当前点里程为:")
(princ lc)
(princ "\n 当前点标高为:")
(princ dz)
)

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

使用道具 举报

已领礼包: 7335个

财富等级: 富甲天下

发表于 2008-12-26 10:17:58 | 显示全部楼层
...本来我是输出坐标到excel里面处理.. [/B]

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

使用道具 举报

 楼主| 发表于 2008-12-26 13:04:49 | 显示全部楼层
格式如下:里程就是变量LC,高程就是变量DZ

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

使用道具 举报

已领礼包: 7335个

财富等级: 富甲天下

发表于 2008-12-26 17:51:56 | 显示全部楼层

  1. (defun c:k ()
  2.   (setq qd   (getpoint "\n 請拾取起點:")
  3.         qdx  (car qd)
  4.         qdy  (cadr qd)
  5.         qdlc (getreal "\n 請輸入起點里程")
  6.           fp (open "C:/里程.txt" "w")
  7.   )
  8.   
  9.   (command "_.3dpoly")
  10.   (while (/= 0 (getvar "cmdactive"))
  11.     (if (and (setq d (getpoint "\n 請拾取點:"))
  12.              (setq dz (getdist "\n 請輸入標高:"))
  13.         )
  14.       (progn   
  15.         (command "non" (list (car d) (cadr d) dz))
  16.         (setq xcz (- (car d) qdx)
  17.               ycz (- (cadr d) qdy)
  18.               xx  (expt xcz 2)
  19.               yy  (expt ycz 2)
  20.               ooo (+ xx yy)
  21.               cd  (sqrt ooo)
  22.               lc  (+ qdlc cd)
  23.         )
  24.         (princ "\n 當前點里程為:")
  25.         (princ lc)
  26.         (princ lc fp)
  27.         (princ "\n 當前點標高為:")
  28.         (princ dz)
  29.         (princ "    " fp)  ; or (princ "         " fp)  .....
  30.         (princ dz fp)
  31.         (princ (chr 10) fp)
  32.       )  
  33.       (command "")
  34.     )
  35.   )
  36.   (close fp)
  37. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-12-27 11:49:31 | 显示全部楼层
[php]
命令: tt2 功能:批量输出逐桩坐标及方位角。
请点取道路设计线: 路线全长: 693.117
请输入起始桩号<10>:
***起点桩号: 10    终点桩号: 703.117
请输入桩号间隔<20>: 50

(50.0 (669.297 556.155 0.0) 1.38466)
(100.0 (679.405 605.119 0.0) 1.34284)
(150.0 (692.887 653.243 0.0) 1.23588)
(200.0 (715.208 697.74 0.0) 0.903583)
(250.0 (758.634 716.496 0.0) -0.166722)
(300.0 (804.608 697.412 0.0) -0.505045)
(350.0 (848.201 672.929 0.0) -0.486229)
(400.0 (894.354 654.021 0.0) -0.240554)
(450.0 (943.758 654.901 0.0) 0.278383)
(500.0 (987.818 677.924 0.0) 0.650514)
(550.0 (1023.74 712.564 0.0) 0.865928)
(600.0 (1053.19 752.92 0.0) 1.00703)
(650.0 (1077.44 796.616 0.0) 1.11905)
(700.0 (1096.89 842.658 0.0) 1.2091)
是否标注中桩位置?[是(Y)/否(N)] <N>: y


命令:
命令: tt2 功能:批量输出逐桩坐标及方位角。
请点取道路设计线: 路线全长: 666.741
请输入起始桩号<30>:
***起点桩号: 30    终点桩号: 696.741
请输入桩号间隔<20>: 100

(100.0 (771.599 555.434 0.0) -0.439844)
(200.0 (865.255 521.107 0.0) -0.221779)
(300.0 (964.573 512.394 0.0) 0.046768)
(400.0 (1062.64 530.345 0.0) 0.315314)
(500.0 (1152.49 573.586 0.0) 0.560087)
(600.0 (1237.21 626.712 0.0) 0.560087)
是否标注中桩位置?[是(Y)/否(N)] <N>: y
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 04:12 , Processed in 0.491702 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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