明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2100|回复: 12

点沿矢量到线的距离

  [复制链接]
发表于 2005-7-3 00:37:00 | 显示全部楼层 |阅读模式
求救!


怎么求点沿一矢量到各种线的距离啊??


请大侠指教!!!
发表于 2005-7-3 01:57:00 | 显示全部楼层
看一下vlax-curve-getClosestPointTo 函数
 楼主| 发表于 2005-7-3 10:27:00 | 显示全部楼层
不明白??


vlax-curve-getClosestPointTo 是求垂足的!!!


而我说的是点沿一angle与曲线的交点啊!!
发表于 2005-7-3 12:52:00 | 显示全部楼层
那你说求距离不太确切,


可以考虑先画一短线(polar函数),然后求它与已知曲线的交点
 楼主| 发表于 2005-7-3 22:53:00 | 显示全部楼层
我点沿angle延伸的距离可是个变量!!!不是个固定值!!这个方法好象有点勉强!!!
发表于 2005-7-3 22:54:00 | 显示全部楼层
;请试用以下程序
;点沿矢量到线的距离
(defun c:ddxjl()
(setq xtblm '("cmdecho" "osmode")
xtblz (mapcar 'getvar xtblm)
)
(mapcar 'setvar xtblm '(0 0))
(while (setq p1 (getpoint "\n请指定点<回车结束>:"))
(setq an (getangle p1 "\n请手指定矢量方向:")
en (car (entsel "\n请选择线:"))
)
(command "_line" p1 (setq p2 (polar p1 an 0.5)) ""
"_extend" en "" (list (setq en1 (entlast)) p2) ""
)
(setq dis (rtos (distance p1 (cdr (assoc 11 (entget (entlast))))) 2 6))
(entdel (entlast))
(alert (strcat "点到沿矢量线的距离为:" dis))
(princ (strcat "\n点到沿矢量线的距离为:" dis))
)
(mapcar 'setvar xtblm xtblz)(princ)
)
 楼主| 发表于 2005-7-9 23:56:00 | 显示全部楼层
如果0.5的距离太长!则用extend就不行了!!!所以此程序有bug!!!!!
发表于 2005-7-10 00:54:00 | 显示全部楼层
  1. (defun c:test ()
  2.    ;(CMDLA0)
  3.    (setq  pt1 (getpoint "\n点 : ")
  4.   pt2 (getpoint pt1 "\n方向 : ")
  5.   s1   (car (entsel "\n选择实体"))
  6.    )
  7.    (command "line" pt1 pt2 "")
  8.    (setq s2 (entlast))
  9.    (setq  pt (vlax-safearray->list
  10.            (vlax-variant-value
  11.                (vla-intersectwith
  12.      (vlax-ename->vla-object s2)
  13.      (vlax-ename->vla-object s1)
  14.      acExtendthisentity
  15.                )
  16.            )
  17.        )
  18.   pt (list (car pt)(cadr pt))
  19.    )
  20.    (entdel s2)
  21.    (grdraw pt1 pt 1)
  22.    (princ "\距离 = ")
  23.    (princ (distance pt1 pt))
  24.    ;(command "line" pt1 pt "")
  25.    ;(CMDLA1)
  26. )
 楼主| 发表于 2005-7-10 10:15:00 | 显示全部楼层
8楼真是高手!!可惜我有几个函数看不懂!!!!比如:vlax-safearray->list、vlax-variant-value
等!能帮忙解释一下吗?? 谢谢!!万分感谢!!!
 楼主| 发表于 2005-7-10 10:17:00 | 显示全部楼层
我的VLISP函数集中你写的函数好多都没有!!!


这是怎么会事?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 17:48 , Processed in 0.161598 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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