首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

autocad二次开发,放坡算法解决思路

2013-01-26 
autocad二次开发,放坡算法各位高手,请教一个问题。关于autocad二次开发的放坡算法,至于放坡的解释,请看:htt

autocad二次开发,放坡算法
各位高手,请教一个问题。关于autocad二次开发的放坡算法,至于放坡的解释,请看:http://www.hudong.com/wiki/%E6%94%BE%E5%9D%A1和http://www.hudong.com/wiki/%E6%94%BE%E5%9D%A1

不知道大家有没有这方面的资料和成功的算法,提供思路、资料或代码,本人都非常感谢!

看一下
放坡的平面图:http://184.72.244.156/u/3111836/plan.JPG

放坡的剖面图:http://184.72.244.156/u/3111836/section.JPG
autocad文件:http://184.72.244.156/u/3111836/Drawing1.dwg


[解决办法]
这个好象驴妹拿手
[解决办法]
不好意思,沙发是我的


[解决办法]
偷竊谷歌地球現成的果子啊
[解决办法]
你要求什么啊,画什么线
[解决办法]
。。。。。。。。。。忘了怎么算了,我记得挺简单的,放多大的破,有几个已知数,直接就算出来了,就是忘了到底怎么算了,刚才努力的想了半天 autocad二次开发,放坡算法解决思路 也没想起来
[解决办法]
你先把它的手工算法整理好,再转换成计算机算法吧。
这个工程方法其实就是要保证每个节点的坡度不能太大,如果有太大的地方,就把它做成缓坡。从而防止塌方。
[解决办法]
你要绘制等高线?

也就是说不是直线,而是多个arc拼接成的?

plan.jpg里面黄色的,紫色的,白色的,哪个是你要画的?如果是白色的实在不会阿



[解决办法]
三角函數跑哪兒去了,地球的水平面是一條直線的旋轉構成的,組成的,啥區別
[解决办法]
学习学习,对我而言是新东西
[解决办法]
脑袋不好用了
[解决办法]
你已知黄色的线,画紫色的线。

我觉得你的难点在找那条(几条)对的等高线,紫色是黄色的平行线,等量偏移,两个新的起止点, 画线,这个简单吧
dim objLine as acadline
set objLine=thisdrawing.paperspace.addline ....

然后呢objline.IntersectWith 这个东东给你返回和目标object的交点坐标。拿到坐标后重新对新画线段的起止点作调整
但是首先你要找到你想要的等高线。这个找等高线的方法要根据你怎么画的等地形高线来确定。如果你已经把相应的数据放到相应地形等高线的Xdata里面了那就简单多了。

另外一种方法就是对于objLine画的长点,然后做selectionset。然后循环得到的东西找到你要的地形等高线。

[解决办法]
~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔~~海拔
[解决办法]
简单的目标被你描述得复杂化了,有“专家”素质!
1)已知坝顶(双黄线)
2)已知两边的坡度 1:2, 1:3
3)那么每条紫色等高线与黄线的平易距离是确定的
4)需要求的就是相同高度的紫线(直线)和白线(不规则曲线)的交点,很基本的图形算法:
 (a)先手工在原始地形图上用不同的颜色填充不同的高度。
 (b)程序按照每条紫线(直线)的走向逐点扫描 (a) 做成的地形图,根据该点的颜色可以知道高度,白点两边如果正好一边比紫线高一边比紫线低,就是交点。
 (c)这些交点把紫线分成了不同的线段,再人工剔除一些多余的线段(两边山峰外面的紫色等高线)。
完成!
------解决方案--------------------


chinaboyzyq (猴哥) 好像也是玩CAD的
也许CAD中有专门的现成的函数
 
[解决办法]
举贤得当,坐等接分。

引用:
引用:

你已知黄色的线,画紫色的线。

我觉得你的难点在找那条(几条)对的等高线,紫色是黄色的平行线,等量偏移,两个新的起止点, 画线,这个简单吧
dim objLine as acadline
set objLine=thisdrawing.paperspace.addline ....

然后呢objline.IntersectWith……

[解决办法]
\

[解决办法]
  \

[解决办法]
    \

[解决办法]
      \
-------

黑线高度为已知条件,按已知条件放破比例可以得到红线的投影长度,即黑线长度,勾股定理可求出红线长度

[解决办法]
黑线高度为已知条件,按已知条件放破比例可以得到红线的投影长度,即线长度,勾股定理可求出红线长度
[解决办法]
引用:
哈哈,居然与我以前的实现方法很相似,我以前没有说清楚,被您“专家”了!
我主要是不想要“再人工剔除一些多余的线段”!

这个也是可以编程的。

“有效”的等高线(紫线)表示它通过结构的表面和坝顶是“连通”的,方法是
先将“坝顶”标记为有效;然后逐层向下,如果下层的线段可以和上层某个有效的等高线段“连通”,就标记为有效。

判断两条等高线是否连通,可以通过平行投影,看两个投影线段是否有重叠部分即可。
我认为对坝体这种简单结构,“连通”的两条等高线之间总能找到地方水可以沿垂线方向流动。
[解决办法]
阿勇怎么改行啦,玩起了CAD!还是老鸟讲得很专业,我没学过!
[解决办法]
引用:
引用:

黑线高度为已知条件,按已知条件放破比例可以得到红线的投影长度,即蓝线长度,勾股定理可求出红线长度

你可能没理解
我按作图顺序截几幅图:
1.已确定了坝顶一侧边线的位置,图中黄线!

2.坝以1:3的坡度向上放坡,自然等高线的等高距为2米,所以1:3的坡度的平面投影长度为2*3=6米,所以,垃圾坝边线向北偏移6米,即为第一条坝辅助线!

……


你这破怎么倒着放。。。。
不知道你有没有交点位置的值,如果有直接比较3个交点的x值,然后相邻的值相减,最大的就是你需要的?
[解决办法]
引用:
你说的,我理解,我试图用确定为“有效”的等高线的垂直平分线来确定下一条等高线,认为,下一条待确定的等高线如在垂直平分线的两侧,就是我要的等高线,如在一侧,就不是我要的等高线,但是,还有特殊情况!
如下:

所以我说的是平行投影重叠
无论左下还是右下,按照上述两个规则都是有效的。
[解决办法]
我早上来了,大家讨论的好欢快阿
你就是要优化一下吧 

小勇勇同学,你要说一下为什么选B不选A,你自己心理要有这个标准才能用代码表达吧。
我初步猜测你的黄线,也就是坝顶总有个长度吧。你的坡线长度应该基于坝顶线段长度的一个范围吧。如果我的假设是正确的,那么
1。你的初始坡线长度不会偏差过大
2。当你出现多个交点的时候可以根据线段长短来判断
这样用来降低出现多个交点的几率

当出现多于2个交点的时候,选择在黄线朝坡地影射的投影范围内部分大的那一段(从图上看就是B段了)。

‘--------------------------------------------
从计算过程中来说IntersectWith那叫一个慢,如果想快就把这个函数的算法拿出来自己写,快很多很多。

从用户体验上面来说,你可以自动放坡结束后弹出窗口,显示那些拿不准的,让用户自己微调。试想下如果你自动作了50条放坡线,只有几条拿不准的话有那时间跟这些死磕不如直接弹出窗口,用户点击listview上面的item,直接zoom到相应的坡线,用自己调一下就好了。

这样你的算法不用太高效精准(也不容易就进入死循环),用户也不会觉得太纠结--->我是不是太偷懒了...不好意思啊


[解决办法]
怎么从地形等高线上看出来是山谷还是山脊?你开始没说这个标准别人也不知道啊

是不是可以从地形等高线在交点间弓形的方向?如果是的话你可以从交点作切线,然后根据斜度判断是不是山谷?

实在是需要懂土建的人才知道标准是什么
[解决办法]


CAD也玩过,不过是工程机械方面的,对于楼主的问题完全摸不着头脑,哈哈,重在参合了
[解决办法]

引用:
平行投影,无论验证是否完全重叠或不完全重叠,都无法得到想要的结果,如31楼最后一张图片,A与坝顶线平等投影是不安全重叠,而B在这张图中是完全重叠的,但也可能不完全重叠(地形略微变化),所以,这个难有通用性。我再按你的思路想想吧

A线段在我21楼算法中已经被排除的。
因为根据颜色判断该处地形比A线段高,应为交点的特性就是一边有一边没有,所以我认为不必特别注明。
[解决办法]
引用:
引用:
怎么从地形等高线上看出来是山谷还是山脊?你开始没说这个标准别人也不知道啊

是不是可以从地形等高线在交点间弓形的方向?如果是的话你可以从交点作切线,然后根据斜度判断是不是山谷?

实在是需要懂土建的人才知道标准是什么

我在第一楼里放了autocad文件:http://184.72.244.156/u/3111836/Drawing1……

哦,能不能这么说,A线段的地形比B线段高所以弃用?
越是这么想越觉得你应该放一些额外的数据在地形等高线上用来帮助计算。

热点排行