明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4091|回复: 22

[提问] 悬赏50个明经币,求大神出手多段线中点垂足上的一点!最简求法

[复制链接]
发表于 2017-11-30 10:07 | 显示全部楼层 |阅读模式
50明经币
本帖最后由 水吉空 于 2017-12-1 00:06 编辑

悬赏50个明经币,求大神出手多段线中点垂足上的一点!最简求法
垂足在多段线的右边或者上边,从上往下画也是在右边,从下往上画也是在右边,从左往右画在上边,从右往左画也是在上边。感谢回答问题的热心网友!

修改 了springwillow大师的程序实现垂足在多段线的右边或者上边,从上往下画也是在右边,从下往上画也是在右边,从左往右画在上边,从右往左画也是在上边。实现了自己想要的功能,感谢!
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

欢迎试用,简单写了一下,加了一些注释,方便同学们参考
发表于 2017-11-30 10:07 | 显示全部楼层

试用

本帖最后由 springwillow 于 2017-12-1 08:49 编辑

欢迎试用,简单写了一下,加了一些注释,方便同学们参考
  1. (defun c:getmap()
  2.   (setq dist (getdist "输入垂直距离:"))
  3.   (setq ename (car (entsel)))
  4.   (setq curve (vlax-ename->vla-object ename))
  5.   (setq len (vlax-curve-getDistAtParam curve (vlax-curve-getEndParam curve)));求多段线长度
  6.   (setq d (/ len 2))
  7.   (setq midpoint (vlax-curve-getPointAtDist curve d));求多段线中点
  8.   (setq param (vlax-curve-getparamatpoint curve midpoint));求中点处的参数,参数的意义为计算点在polyline顶点上的顺序位置值,该值整数为计算点在polyline上的顶点顺序,以0为计数起点,小数部分为计算点在该poly片段上的长度比率
  9.   (setq SecondDeriv (vlax-curve-getSecondDeriv curve param));求中点的法线向量
  10.   (if (equal SecondDeriv '(0 0 0));如果法线的向量为'(0 0 0)说明此线段为直线段,否则为有凸度段
  11.     (progn
  12.       (setq FirstDeriv (vlax-curve-getFirstDeriv curve param));求中点的切线向量
  13.       (setq ang (+ (angle '(0 0 0)  FirstDeriv) (* 0.5 pi)));根据切线向量求法向角度
  14.       )
  15.     (setq ang (angle '(0 0 0)  SecondDeriv));直接用法线向量求角度
  16.     )
  17.   (setq pt (polar midpoint ang dist))
  18.   (entmake (list '(0 . "LINE") (cons 10 midpoint) (cons 11 pt)))
  19.   )


评分

参与人数 1金钱 +5 收起 理由
水吉空 + 5 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2017-11-30 11:10 | 显示全部楼层
帮顶一个,需要选中一个多段线,然后再求出多段线的中点,然后再求出该中点和多段线的垂线,再根据距离找出一个座标点!
回复

使用道具 举报

发表于 2017-11-30 11:48 | 显示全部楼层
这几个函数会有帮助滴

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2017-11-30 11:52 | 显示全部楼层
panliang9 发表于 2017-11-30 11:10
帮顶一个,需要选中一个多段线,然后再求出多段线的中点,然后再求出该中点和多段线的垂线,再根据距离找出 ...

谢谢支持!
回复

使用道具 举报

 楼主| 发表于 2017-11-30 11:53 | 显示全部楼层
Andyhon 发表于 2017-11-30 11:48
这几个函数会有帮助滴

我查查看,谢谢大神。
回复

使用道具 举报

发表于 2017-11-30 14:15 来自手机 | 显示全部楼层
这个垂足方向有两个,就像offset你要偏向哪边?
回复

使用道具 举报

 楼主| 发表于 2017-11-30 14:26 | 显示全部楼层
xinxirong 发表于 2017-11-30 14:15
这个垂足方向有两个,就像offset你要偏向哪边?

总是偏向上面或者右面。
回复

使用道具 举报

 楼主| 发表于 2017-11-30 14:27 | 显示全部楼层
springwillow 发表于 2017-11-30 14:08
欢迎试用,简单定了一下

谢谢大神,等下我试试看!感谢!
回复

使用道具 举报

发表于 2017-11-30 16:28 | 显示全部楼层
水吉空 发表于 2017-11-30 14:26
总是偏向上面或者右面。

多段线前进方向右边?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 20:43 , Processed in 0.656842 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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