几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(AutoLISP) (http://www.dimcax.com/hust/forumdisplay.php?f=178)
-   -   lisp已知任意点,及任意点与曲线的距离,求曲线上的点 (http://www.dimcax.com/hust/showthread.php?t=10638)

yang686526 2009-04-25 08:26 PM

lisp已知任意点,及任意点与曲线的距离,求曲线上的点
 
lisp已知任意点,及任意点与曲线的距离,求曲线上的点
www.dimcax.com
lisp已知任意点,及任意点与曲线的距离,求曲线上的点
如题,如何得出曲线上的点??
还有一个就是,如果知道曲线与另一条直线间的距离,怎样求出曲线上的这个点?

请参考 vlax-curve-*** 函数

谢谢。。。我先看下函数。。。

刚才看了一下你说的那些函数。。。还是理解不了。。。
比方说:

我想画那条红线
只知道两条竖线的交点和红色线的长度,怎么样才能画出来呢?

我自己的理解是,一定要知道画红线在曲线上的点和水平线上点,但这两点怎么求啊。。。

图片:

图片:

图片:

图片:

下面是给你编的一个程序:
你把下面的程序考到你的cad下给一个名qdian.lsp在命令下用(load"qdian")回车就可使用,
在命令下输入qdian回车,
(defun c:qdian ()
(setq os (getvar "osmode"))
(setvar "osmode" 39)
(prompt "输入线的长度: ")
(setq l (getreal))
(setq p1 (getpoint "两条直线交点: ") p2 (polar p1 (* pi 0.5) l))
(setvar "osmode" 0)
(command "xline" "h" p2 "")
(setvar "osmode" 39)
(setq p3 (getpoint "曲线和xline的交点: "))
(command "xline" "v" p3 "")
(command "line" p3 (getpoint "xline和水平线的交点:") "" )
(command "change" "l" """p" "c" "1" "")
(setvar "osmode" 0)
(command "erase" )
(setvar "osmode" os)
)
gbg

谢谢版主。。。
但是还不是我想要得到的结果。。
我想要的是曲线上画那条红线的点的坐标,以利用此坐标来做起点画另外的一张图。
当然,肯定是用lisp程序

vlax-curve-getfirstderiv和vlax-curve-getparamatdist这两个函数是什么意思?
怎么用?
从书本上找不到,看函数解释的也不是很明白。。。

下面把程序改成红线的两个点的座标.
你到另一图上画p3 p4的线还是不理解.用!p3 !p4 看到它的值
(defun c:qdian ()
(setq os (getvar "osmode"))
(setvar "osmode" 39)
(prompt "输入线的长度: ")
(setq l (getreal))
(setq p1 (getpoint "两条直线交点: ") p2 (polar p1 (* pi 0.5) l))
(setvar "osmode" 0)
(command "xline" "h" p2 "")
(setq aa (ssget "l"))
(setvar "osmode" 39)
(setq p3 (getpoint "曲线和xline的交点: "))
(command "xline" "v" p3 "")
(setq bb (ssget "l") p4 (getpoint "xline和水平线的交点:") )
(command "line" p3 p4 "" ) ;是红线的两个点
(command "change" "l" """p" "c" "1" "")
(setvar "osmode" 0)
(command "erase" aa bb "")
(setvar "osmode" os)
)
gbg

这样我就明白了。。。看来我是把问题想的太复杂了。。。
非常感谢斑竹。。。。

刚才又仔细的看了一遍。。。还是有问题。。。
如果我不用去选择点的话,到了(setq p3 (getpoint "曲线和xline的交点: "))
到了这一点就进行不下去了。。
p3,p4这两点还是需要用鼠标去点取的。。
如果要自动的话还是实现不了。。。


所有的时间均为北京时间。 现在的时间是 09:49 PM.