找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1450|回复: 28

[VBA程序]:请问如何在等高线图上截出地面线?

[复制链接]
发表于 2004-6-17 09:21:23 | 显示全部楼层 |阅读模式

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

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

×
请问如何在等高线图上截出地面线?

每根等高线的z坐标值就是高程,如何在图上得到指定剖面的地面线。
我现在只知道在剖面线位置先画一根直线,在打开对象捕捉方式下,用3dpoly描出剖面线,再把3dpoly线的xyz坐标数据转换,很麻烦。

谁有什么好办法吗?如果有lisp或vb程序就更好。

【斑竹提示】:请将您的专业术语解释一下好么,隔行如隔山那,您认为很简单的,别人不一定明白 by Lzh741206
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-17 22:20:05 | 显示全部楼层
可以解释一下么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3532个

财富等级: 富可敌国

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

使用道具 举报

 楼主| 发表于 2004-6-18 09:44:17 | 显示全部楼层
实际上就是在等高线地形图上截出所需地面线,

我有一张acad的dwg图,里面是一些具有z坐标属性的polyline,我在xy坐标面上画一根直线与几根polyline相交,要得到投影相交交点处的polyline的x、y、z坐标,应该怎么做?(这种情况下是投影相交,不是空间相交)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-18 09:53:05 | 显示全部楼层
在截面内做n条与polyline的Z坐标相等的直线,可以求得polyline与直线的交点,再用polyline连接
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-18 20:20:11 | 显示全部楼层
请问用哪个函数可求得polyline与直线的交点坐标?如果多段线各转折点的z坐标不同又如何求交点坐标?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-18 23:26:49 | 显示全部楼层
求交点用
RetVal = object.IntersectWith(IntersectObject, ExtendOption)
你的图是等高线图,polyline的各点Z坐标应该相等吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-21 19:36:32 | 显示全部楼层
最初由 lzh741206 发布
[B]求交点用
RetVal = object.IntersectWith(IntersectObject, ExtendOption)
你的图是等高线图,polyline的各点Z坐标应该相等吧 [/B]


我只是想了解空间曲线交点的求法而已,
比如acad图形中两条空间曲线,在xy坐标系中看上去是相交的,如何求这点的x、y坐标,以及已知空间曲线上某点的x、y坐标,求空间曲线该点的z坐标。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-21 20:59:05 | 显示全部楼层
先求两条直线相交(是二维的),再验证交点是否在等高线上,是则求出等高线高程!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-21 22:01:00 | 显示全部楼层
现在有很多软件可以做,比如捷力、路线大师、鸿业等,个人多次使用觉得捷力的效果最好
他的方法是首先导入图形后,设定最小和最大高程,三角化,建立用三角联系起来的三维三角网,通过道路中线与三角网的交点得到中线地面高,依次按道路法线用一定间距的线延伸与三角网相交得到地面高,把数据采集出来的,两次用在了实际工程中,低等级道路上还是没问题的。高等级的就不敢用了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-21 22:09:32 | 显示全部楼层
比如acad图形中两条空间曲线,在xy坐标系中看上去是相交的,但是用vba怎么知道他们是相交的?是不是必须遍历所有的曲线?这样执行效率是不是太低了。有没有高效的办法?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-21 22:54:19 | 显示全部楼层
先把Z坐标置0,求交点后还原
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-22 08:52:48 | 显示全部楼层
最初由 lzh741206 发布
[B]先把Z坐标置0,求交点后还原 [/B]


这个办法可行。请问置0后怎么还原?当然我也可以采用生成一个实体后删除的办法。
但是如果等高线图中线条很多,而我又要截很多截面,那么计算量很大。
能否直接知道与某直线相交的有哪几根等高线?还是必须遍历所有等高线?
如果要遍历的话,耗时将会很长。我一个同事编了个lisp程序,和10楼的功能是一样的。截几百个断面要一下午。可能算法不对,效率很低。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-22 09:01:52 | 显示全部楼层
可以先将等高线的坐标值保存在一个数组的数组里
估计也只有历遍,单纯求交点VBA应该比Vlisp快些
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-22 14:46:50 | 显示全部楼层
我想起一个办法,先设置相交范围的选择集,只要遍历选择集内的实体就行了,这样速度都不知要快多少倍了。haha。希望高手能编段vba用用。

另外不知谁有根据离散点获得三角网及等高线的公开代码,希望共享共享。
请问10楼的软件能否发一个给我。venus789@163.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 10:07 , Processed in 0.235641 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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