找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 957|回复: 15

如何求得一个曲面和一条线的交点呢?

[复制链接]
发表于 2005-1-23 07:52:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如题,线即为line,曲面是任意的.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-1-23 08:02:43 | 显示全部楼层
是的我也有这个疑问,难道CAD中捕捉不到点与面的交点吗?如果是平面还好,曲面上画出一个曲线,再投影到平面上形成一直线,再找这条过曲面的直线在由曲线和它的直线投影构成的平面上的投影与曲线的交点。这点就是线与面的交点。太烦了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 08:12:48 | 显示全部楼层
最初由 whiteon 发布
[B]是的我也有这个疑问,难道CAD中捕捉不到点与面的交点吗?如果是平面还好,曲面上画出一个曲线,再投影到平面上形成一直线,再找这条过曲面的直线在由曲线和它的直线投影构成的平面上的投影与曲线的交点。这点就是线?.. [/B]


看了几遍,不是很明白,能再仔细说说么?麻烦不怕,就怕结果不准确.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 09:30:28 | 显示全部楼层
Returns the closest point (in WCS) on a curve after projecting the curve onto a plane

(vlax-curve-getClosestPointToProjection curve-obj givenPnt normal [extend])

Arguments

curve-obj

The VLA-object to be measured.

givenPnt

A point (in WCS) for which to find the nearest point on the curve.

normal

A normal vector (in WCS) for the plane to project onto.

extend

If specified and not nil, vlax-curve-getClosestPointToProjection extends the curve when searching for the nearest point.

vlax-curve-getClosestPointToProjection projects the curve onto the plane defined by the givenPnt and normal, and then calculates the nearest point on that projected curve to givenPnt. The resulting point is then projected back onto the original curve, and vlax-curve-getClosestPointToProjection returns that projected point.

Return Values

A 3D point list representing a point on the curve, if successful; otherwise nil.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 11:01:48 | 显示全部楼层
谢谢斑竹,用你提供的函数搜索了一下,找到一个(vla-intersectwith object1 object2 extendoption) 函数,是否也可以用,我觉得更直观些呀!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 11:13:50 | 显示全部楼层
最初由 urljit 发布
[B]谢谢斑竹,用你提供的函数搜索了一下,找到一个(vla-intersectwith object1 object2 extendoption) 函数,是否也可以用,我觉得更直观些呀! [/B]

一条线还是用 intersectwith
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 11:43:49 | 显示全部楼层
不可!斑竹!刚刚查了,intersectwith 不能用作polygonmesh和pviewport的交点!能否给出一个(vlax-curve-getClosestPointToProjection  使用例子?

其中的关键是如何表示那个向量。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 13:01:26 | 显示全部楼层
把 UCS 的 Z 轴和  Line 对齐,然后再想想办法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 14:56:55 | 显示全部楼层
eachy:我没有设置ucs,就是一个空间的曲面polygonmash和一个直线相交呀?试着写了一些,不成功:
[php]
(defun c:vint ()
  (setq        AcadObject   (vlax-get-acad-object)
        AcadDocument (vla-get-ActiveDocument AcadObject)
        mSpace             (vla-get-ModelSpace AcadDocument)
  )
  (setq utility (vla-get-utility AcadDocument))
  (setq cathit t)
  (while cathit
    (setq cathit (vl-catch-all-apply
                   'vla-getentity
                   (list utility 'returnobj 'basepnt "\n请选取曲面")
                 )
    )
  )
  (setq        cathit (vl-catch-all-apply
                 'vla-getentity
                 (list utility 'returnobj2 'basepnt2 "\n请选取线")
               )
  )
  (setq basepnt3 (vla-get-startpoint returnobj2))
  (vlax-curve-getClosestPointToProjection
    returnobj
    basepnt3
    '(1 1 0)
  )
  (princ)
)
[/php]
里面的使用向量方式不对,请问如何解决?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 16:34:40 | 显示全部楼层
最初由 urljit 发布
[B]eachy:我没有设置ucs,就是一个空间的曲面polygonmash和一个直线相交呀?试着写了一些,不成功:
[php]
(defun c:vint ()
  (setq        AcadObject   (vlax-get-acad-object)
        AcadDocument (vla-get-ActiveDocument... [/B]

把你想到的CAD曲面贴个 DWG 上来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 16:46:53 | 显示全部楼层
其实就是想计算土方量,顺便学习vlisp编程(此前一直是autolisp)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 18:27:52 | 显示全部楼层
最初由 urljit 发布
[B]其实就是想计算土方量,顺便学习vlisp编程(此前一直是autolisp) [/B]

这就复杂了,其实算土方据介绍  AutoDesk有个产品 Civil 3D 2005 就有算土方功能,根据点自动生成三维地表模型,可以设计坡度计算土方。自己在Autocad这个通用平台上写就没必要了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-23 18:33:56 | 显示全部楼层
应该要用对象坐标系,可以间接的画
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-23 20:14:10 | 显示全部楼层
最初由 eachy 发布
[B]
这就复杂了,其实算土方据介绍  AutoDesk有个产品 Civil 3D 2005 就有算土方功能,根据点自动... [/B]


既然已经知道vlax-curve-getClosestPointToProjection 这个函数了,还是弄懂用法比较好,还希望你能给出一个vlax-curve-getClosestPointToProjection 使用的例子,尤其是里面那个矢量怎么代入?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-1-23 20:27:07 | 显示全部楼层
CAD 中没有连续的面吧,都是三角网面,做土方计算都是要转为一个个的三角面,直线和对应的三角面(平面)相交来求高程。
那个参数是一个点格式,符合右手规则。用 vlax-3d-point 转。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 21:15 , Processed in 0.438506 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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