明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5873|回复: 16

[讨论] 怎么找到两条不相交直线的交点

[复制链接]
发表于 2013-11-18 12:08 | 显示全部楼层 |阅读模式
有两条不平行直线,不相交,现在想找这两条直线的交点,怎么实现啊?
发表于 2013-11-18 12:35 | 显示全部楼层
inters                                          
 楼主| 发表于 2013-11-18 12:37 | 显示全部楼层
gdslqs 发表于 2013-11-18 12:35
inters

谢谢!要找的就是这个命令
 楼主| 发表于 2013-11-18 12:39 | 显示全部楼层
gdslqs 发表于 2013-11-18 12:35
inters

如果是两条曲线呢?不相交,但是如果延伸后,会相交,怎么找这个交点?
发表于 2013-11-18 13:10 | 显示全部楼层
求两条直线的交点

(inters pt1 pt2 pt3 pt4 [onseg])
所有的点都以当前 UCS 表示,如果提供的四个点都是三维点,inters 函数检查三维交点。只要所提供的点中有一个是二维点,inters 函数就将这两条线投影到当前构造平面上,仅检查二维交点。

参数

pt1

第一条直线的端点。

pt2

第一条直线的另一端点。

pt3

第二条直线的端点。

pt4

第二条直线的另一端点。

onseg

如果指定为 nil,则由四个 pt 参数定义的两条线被认为是无限长的。如果省略 onseg 参数或其值不为 nil,则交点必须同时位于两条线上,否则 inters 返回 nil。
返回值

如果 onseg 参数存在且为 nil,则 inters 返回交点坐标,即使这个交点不在其中的一条线(或者两条线)的端点范围之内。如果忽略 onseg 参数或其值不为 nil,则交点必须同时位于两条线上,否则 inters 返回 nil。如果两条直线不相交,inters 函数返回 nil。
发表于 2013-11-18 13:51 | 显示全部楼层
倔强的蚂蚁 发表于 2013-11-18 12:39
如果是两条曲线呢?不相交,但是如果延伸后,会相交,怎么找这个交点?

(IntersectWith obj1 obj2 ExtendOption)

ExtendOption:
AcExtendOption enum; input-only
This option specifies if none, one or both, of the objects are to be extended in order to attempt an intersection.

acExtendNone
Does not extend either object.

acExtendThisEntity
Extends the base object.

acExtendOtherEntity
Extends the object passed as an argument.

acExtendBoth
Extends both objects.

 楼主| 发表于 2013-11-18 14:43 | 显示全部楼层
kwok 发表于 2013-11-18 13:10
求两条直线的交点

(inters pt1 pt2 pt3 pt4 [onseg])

这个貌似是明经版帮助里的内容,不过还是要说声,谢谢!
 楼主| 发表于 2013-11-18 14:54 | 显示全部楼层
Gu_xl 发表于 2013-11-18 13:51
(IntersectWith obj1 obj2 ExtendOption)

ExtendOption:

no function definition
intersectwith

 楼主| 发表于 2013-11-18 14:57 | 显示全部楼层
Gu_xl 发表于 2013-11-18 13:51
(IntersectWith obj1 obj2 ExtendOption)

ExtendOption:

(defun c:sss()
(setq obj1 (car (entsel "select the first curve:")))
(setq obj2 (car (entsel "select the second curve:")))
(intersectwith obj1 obj2 acextendboth)
)

我是这么写的,提示,没定义函数
 楼主| 发表于 2013-11-18 15:11 | 显示全部楼层
Gu_xl 发表于 2013-11-18 13:51
(IntersectWith obj1 obj2 ExtendOption)

ExtendOption:

(defun c:sss()
(vl-load-com)
(setq obj1 (car (entsel "select the first curve:")))
(setq obj2 (car (entsel "select the second curve:")))
(setq obj1 (vlax-ename->vla-object obj1))
(setq obj2 (vlax-ename->vla-object obj2))
(setq jiaodian (vla-intersectwith obj1 obj2 acextendboth))
)

返回这个 #<variant 8197 ...>
不知道是怎么回事
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 20:00 , Processed in 0.202096 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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