明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 809|回复: 9

[讨论] ★★问题不断,如何求多段线上水平等距点的坐标★★

[复制链接]
发表于 2016-9-29 11:49:36 | 显示全部楼层 |阅读模式
画渠道又碰到另一个问题了,渠道纵剖面还要对每隔一定水平长度的地面线求坐标,网上有很多求定距坐标的,但都是按多段线长度来求的,不是按水平距来求的,继续恳请各位英雄大侠帮帮忙解决。

本帖子中包含更多资源

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

x
发表于 2016-9-29 12:36:55 | 显示全部楼层
最简单的方式,临时产生一条竖直射线,求交点
发表于 2016-9-29 13:32:19 | 显示全部楼层
有图无码:


本帖子中包含更多资源

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

x
发表于 2016-9-29 13:39:21 | 显示全部楼层
本帖最后由 Sylvanas 于 2016-9-29 15:04 编辑
  1. (defun c:tt ()
  2.   (setq ptlst nil)
  3.   (setq ent (car (entsel "\n选择要定距等分的对象:")))
  4.   (if (= (cdr (assoc 0 (setq data (entget ent)))) "LWPOLYLINE")
  5.     (progn (setq obj          (vlax-ename->vla-object ent)
  6.                  ;totallen (vla-get-length obj)
  7.                  dis          (getdist "\n指定线段长度:")
  8.                  pts (vlax-curve-getStartPoint obj)
  9.                  pte (vlax-curve-getEndPoint obj)
  10.                  totallen (abs (- (car pts) (car pte)))
  11.                  k          1
  12.            )
  13.            (while (<= (* k dis) totallen)
  14.              (setq dislast (* k dis))
  15.              (setq pt (list (+ (car pts) dislast) (cadr pts)))
  16.              (setq
  17.                ptlst (cons (vlax-curve-getClosestPointToProjection obj pt '(0 1 0))

  18.                        ;(vlax-curve-getPointAtDist obj dislast)
  19.                            ptlst)
  20.              )
  21.              (setq k (1+ k))
  22.            )
  23.     )
  24.   )
  25.   (reverse ptlst)
  26. )


用你给的代码改的,试一下

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 赞一个!

查看全部评分

 楼主| 发表于 2016-9-29 15:37:51 | 显示全部楼层
Sylvanas侠的代码正是我需要的,没想到这么快就有结果了,非常惊喜,非常感谢!!
 楼主| 发表于 2016-9-29 16:01:49 | 显示全部楼层
谢谢大家的关注,尤其感谢贡献源码的大侠!!

本帖子中包含更多资源

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

x
 楼主| 发表于 2016-9-29 16:49:58 | 显示全部楼层
能将各点坐标在对应上点用text文本写出来吗?不只是在命令行显示,如果能将终点坐标写出来就更好了!!

本帖子中包含更多资源

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

x
发表于 2016-9-30 09:07:23 | 显示全部楼层
好学的妹纸, 上面有源码了 ,改改就可以了
发表于 2016-9-30 09:26:55 | 显示全部楼层
wanhongron 发表于 2016-9-29 16:49
能将各点坐标在对应上点用text文本写出来吗?不只是在命令行显示,如果能将终点坐标写出来就更好了!!

已有点表ptlst,foreach+entmake应该不是什么难事吧?
 楼主| 发表于 2016-9-30 10:19:03 | 显示全部楼层
好的,见笑了,目前还停留在抄袭的水平,非常感谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 05:00 , Processed in 0.275981 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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