AMTONNY 发表于 2009-8-10 22:08:00

[已解决]有关垂直距离

本帖最后由 作者 于 2009-8-12 21:22:54 编辑

现已知图形中的三点的,求其中的一点<Pt2>到到另外两点<Pt6Pt7>的垂直距离,如附图所示,本人弄了好久也没有搞成功.

yxp 发表于 2009-8-11 11:24:00

<p><font face="Verdana" color="#61b713"><strong>AMTONNY,</strong><font color="#000000">你看这个DLT返回的是不是你需要的距离,pt1应该是你需要的点,用autolisp程序如下:</font></font></p><p>(defun Dlt(pt2 pt6 pt7 / pt1)<br/>(setq pt1(inters pt2 (polar pt2 (+ (angle pt6 pt7) (/ pi 2.0)) 1.0) pt6 pt7 nil))<br/>(distance pt1 pt2)<br/>)</p><p></p><p>如果采用VL的话似乎应该用vlax-curve-getClosestPointTo,即返回曲线上离指定点最近的点,当然你的pt6和pt7是直线也属于曲线范畴<br/><strong>语法</strong>:(vlax-curve-getClosestPointTo curve-obj givenPnt )<br/><strong>参数:&nbsp; </strong>curve-obj&nbsp;&nbsp; 要测量的 VLA 对象。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; givenPnt&nbsp;&nbsp; 点(在 WCS 上),寻找曲线上距该点最近的点。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; extend&nbsp;&nbsp;&nbsp;&nbsp; 如果指定该参数且其值不为 nil,vlax-curve-getClosestPointTo 在搜索最近点时扩展曲线。</p><p><strong>返回值</strong>:如果成功则返回表示曲线上一点的三维点表,否则返回 nil。</p>

5061220 发表于 2009-8-11 11:30:00

<p>知道三角形的三个顶点位置,求任一个顶点的垂线距离,这个是一道中学生的题。</p>

AMTONNY 发表于 2009-8-11 22:00:00

yxp发表于2009-8-11 11:24:00static/image/common/back.gifAMTONNY,你看这个DLT返回的是不是你需要的距离,pt1应该是你需要的点,用autolisp程序如下:(defun Dlt(pt2 pt6 pt7 / pt1)(setq pt1(inters pt2 (polar pt2 (+ (angle pt6 pt7) (/ pi 2.0))

<p>谢谢YXP大侠的热心,我用了你的程序还是找不到我要的点,都怪我没有表达清楚,现在我重新上传了附件了,此附件加载到那张图中后运行即可知道我所需要的点了.</p>

yshf 发表于 2009-8-12 15:26:00


(setq jd(inters pt2 (polar pt2 (+ (* 0.5 pi) (angle pt6 pt7)) 1.0) pt6 pt7 nil))

yxp 发表于 2009-8-12 15:54:00

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq aw (getdist pt2 "\n请指定底边上一点(垂直):"))
;(如何自动求得此点距离<附有CAD图档》就是要程序自动求得此AW点,不需要再用鼠标点此点了)
将你中间那句替换为:
(setq aw (distance pt2 (inters pt2 (polar pt2 (+ (angle pt6 pt7) (/ pi 2.0)) 1.0) pt6 pt7 nil)))

AMTONNY 发表于 2009-8-12 21:20:00

<p>谢谢楼上几位大侠的热心帮忙,此问题已经完美解决了,谢谢!</p><p>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>&nbsp; ;(setq aw (getdist pt2 "\n请指定底边上一点(垂直):"))<br/>(setq aw (distance pt2 (inters pt2 (polar pt2 (+ (angle pt6 pt7) (/ pi 2.0)) 1.0) pt6 pt7 nil)))<br/>&nbsp;&nbsp;&nbsp; (setq bda (polar pt2 (* pi 1.5) aw))<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>&nbsp;(command "_line" pt2 bda "");<u><font style="BACKGROUND-COLOR: #dd22dd;"><strong>此处画线已OK</strong></font></u></p>
页: [1]
查看完整版本: [已解决]有关垂直距离