CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
查看: 10162|回复: 66

马上开始学3dmax,最后问一个问题,有难度,关于卷起的曲面

[复制链接]
发表于 2008-5-4 18:17 | 显示全部楼层 |阅读模式
如图,想要一个卷起的薄膜,这个薄膜展开后是正方形。现在是卷起的。



我画的是近似图,我自己画不出来。



沿对角线卷起的薄膜,起点是90的角,终点也是90的角。我的起点只能做到是一个边。



其实我做的差不多了,如果哪位高手告诉我,怎么切割曲面,应该就行了。



似乎只能切割实体,不能切割曲面?是这样吗?


图在此,仅供参考,不是最终目标。

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-5-4 22:10 | 显示全部楼层
自己顶一下,顶到有人解答
发表于 2008-5-5 08:53 | 显示全部楼层
没什么,别的软件可以用一个命令就自动执行了,正如你所说,的确.
CAD能画,只是不会自动执行吧,HEHE.

以下图原理是一样的.我只是用一张三角形的纸卷的,(当然,最后镜像一下就成一张长方形或正文形的纸卷起来了.)
其实,任何软件都有它的利弊,总有它各自的特长,关键是你对这个软件的熟悉程度.再好的软件也是人来使用的.HEHE

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-5-5 09:53 | 显示全部楼层
看不清楚,做个完整的把。



模拟一张完整的纸,用透明效果,最关键要看到纸的两个对角。



cad里面,一根线扫掠后,缩放倍数于限制。


如果一个你从一个点缩放,那就更麻烦,点怎么缩放?点是不可能缩放的。所以你应该跟我一样,用线模拟,可是超短线不能扫掠,长线扫掠后,端点是边。


不过如果能切割曲面,那更好。



如果能用矩形扫掠成实体,也行,可是缩放后,内外厚度又不均匀。


所以麻烦你做一个完整的,透明的,特别显示其端点的薄膜模型吧。谢谢。
发表于 2008-5-5 11:00 | 显示全部楼层
可以做一个非常薄的实体
 楼主| 发表于 2008-5-5 11:11 | 显示全部楼层
版主你别偷乐,做出来才是王道。哈哈


时时看吧??


做了,就知道难度了。
 楼主| 发表于 2008-5-5 14:29 | 显示全部楼层
不能掉到第二页,继续顶。



看看有没有人能做出来。
 楼主| 发表于 2008-5-5 16:06 | 显示全部楼层
慢慢顶啊,一直顶到有人做出来为止。
发表于 2008-5-5 16:24 | 显示全部楼层
既然楼主如此执着,就请试用下面的代码吧
这是个VBA程序,如果你在安装CAD程序时安装了VBA功能,就请运行CAD后按Alt+F11,在弹出的VBA编辑器的工程资源管理器中双击ThisDrawing对象,在其代码窗口粘贴下面的代码,按F5运行程序,回到CAD窗口,在模型空间会出现四条样条曲线,就是卷曲的纸的边界。至于怎样建模、渲染就看你自己的了。
  1. Sub A()
  2.     Dim Alf As Double, R As Double, R0 As Double, AA As Double, X1 As Double, Y1 As Double, X2 As Double, _
  3.     Y2 As Double, L As Double, L1 As Double, I As Integer, P1(302) As Double, P2(302) As Double, P3(302) As Double, _
  4.     P4(302) As Double, T0(2) As Double, T1(2) As Double, T2(2) As Double
  5.     L = 100# '正方形对角线的1/2,可由使用者更改
  6.     R0 = 10# '内圈起始半径,可由使用者更改
  7.     AA = 2# '每卷一圈的半径增加值,可由使用者更改
  8.     R = R0 + AA / 6.28318530717959 * Alf
  9.     X1 = R * Cos(Alf)
  10.     Y1 = R * Sin(Alf)
  11.     P1(0) = X1
  12.     P1(1) = Y1
  13.     P2(0) = X1
  14.     P2(1) = Y1
  15.     For I = 1 To 100
  16.         Do
  17.             Alf = Alf + 6.28318530717959E-04
  18.             R = R0 + AA / 6.28318530717959 * Alf
  19.             X2 = R * Cos(Alf)
  20.             Y2 = R * Sin(Alf)
  21.             L1 = L1 + Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
  22.             X1 = X2
  23.             Y1 = Y2
  24.         Loop Until L1 >= L / 100# * CDbl(I)
  25.         P1(I * 3) = X1
  26.         P1(I * 3 + 1) = Y1
  27.         P1(I * 3 + 2) = L1
  28.         P2(I * 3) = X1
  29.         P2(I * 3 + 1) = Y1
  30.         P2(I * 3 + 2) = -L1
  31.     Next
  32.     T1(0) = AA / 6.28318530717959 * Cos(Alf) - (R0 + AA / 6.28318530717959 * Alf) * Sin(Alf)
  33.     T1(1) = AA / 6.28318530717959 * Sin(Alf) + (R0 + AA / 6.28318530717959 * Alf) * Cos(Alf)
  34.     T1(2) = Sqr(T1(0) ^ 2 + T1(1) ^ 2)
  35.     T2(0) = T1(0)
  36.     T2(1) = T1(1)
  37.     T2(2) = -T1(2)
  38.     P3(0) = X1
  39.     P3(1) = Y1
  40.     P3(2) = L1
  41.     P4(0) = X1
  42.     P4(1) = Y1
  43.     P4(2) = -L1
  44.     For I = 1 To 100
  45.         Do
  46.             Alf = Alf + 6.28318530717959E-04
  47.             R = R0 + AA / 6.28318530717959 * Alf
  48.             X2 = R * Cos(Alf)
  49.             Y2 = R * Sin(Alf)
  50.             L1 = L1 - Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
  51.             X1 = X2
  52.             Y1 = Y2
  53.         Loop Until L1 <= L - L / 100# * CDbl(I)
  54.         P3(I * 3) = X1
  55.         P3(I * 3 + 1) = Y1
  56.         P3(I * 3 + 2) = L1
  57.         P4(I * 3) = X1
  58.         P4(I * 3 + 1) = Y1
  59.         P4(I * 3 + 2) = -L1
  60.     Next
  61.     P3(302) = 0
  62.     P4(302) = 0
  63.     With ThisDrawing.ModelSpace
  64.         .AddSpline P1, T0, T1
  65.         .AddSpline P2, T0, T2
  66.         .AddSpline P3, T1, T0
  67.         .AddSpline P4, T2, T0
  68.     End With
  69. End Sub
复制代码


此程序已经修改由于编制程序时已快到下班时间,忽略了样条曲线的端点切向,导致生成的曲面上行和下行之间过渡不圆滑,生成的实体也不理想。
现在程序已经修改过,指定了上行和下行曲线衔接部位的端点切向。建模时,将视图转到主视图,将上面的两条曲线合并(JOIN)在一起、下面两条曲线合并在一起,用放样命令,选取两“条”曲线,“仅横截面”,“直纹曲面”,就得到曲面了,想做实体用加厚就可以。

代码放在在代码框中,就不会出现表情符号等这种问题了。------------cad版主

[ 本帖最后由 cad 于 2008-5-6 12:02 编辑 ]

评分

1

查看全部评分

发表于 2008-5-5 17:39 | 显示全部楼层
因水平有限,很艰难做了一个,达不到楼主的要求


将下图卷曲的实体打开就是一等腰三角形,顶点的厚度为0,底边的厚度最厚,呵呵




[ 本帖最后由 truezx 于 2008-5-5 17:41 编辑 ]

本帖子中包含更多资源

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

x
发表于 2008-5-5 17:53 | 显示全部楼层

回复 #9 woaishuijia 的帖子

我试了一下,不行啊










哈哈哈,woaishuijia的东西果然有效.....



[ 本帖最后由 truezx 于 2008-5-5 18:34 编辑 ]

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-5-5 22:09 | 显示全部楼层
woaishuijia 是牛人。



强烈要求woaishuijia 自己做一个出来,因为这个只有你最明了。拜托啊拜托~~~!!!!!!!


箭头所指方向,那个地方是怎么回事???似乎还是有问题啊??
所以如果不靠二次开发,本身还是很难很难很难~~



不过版主大大,你的图为啥就不能渲染一下呢??现在看的似乎还是有问题啊,

本帖子中包含更多资源

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

x
发表于 2008-5-5 22:16 | 显示全部楼层
都是高级别的玩家啊!
看的我一头雾水!
 楼主| 发表于 2008-5-6 09:40 | 显示全部楼层
难道此问题无解?



呼唤xsbf&woaishuijiao达人。



帮个忙吧。
发表于 2008-5-6 10:08 | 显示全部楼层

回复 #14 yueye0305 的帖子

首先我可以告诉你,woaishuijia的程序完全可以实现你的要求,从其程序开始的说明就可以看出

L = 100# '正方形对角线的1/2,可由使用者更改
R0 = 10# '内圈起始半径,可由使用者更改
AA = 2# '每卷一圈的半径增加值,可由使用者更改

可以看到设置了正方形纸、内圈半径、半径增量,而且我的确是做出来了,不信的话你可以自己实验一下

其次,就算不用程序,用其他方法,只要能做出四条样条曲线,就是卷曲的纸的边界,一样可以完成楼主的要求

最后,想说明一点,楼主说来说去,无非是想说明cad画这种图比其它软件要困难得多,的确也是如此,你完全可以掌握更好的软件,用简单的方法完成复杂的工作,没有必要再在这里强调cad的不足,不过你的话题从另一方面说明工具始终是工具,好不好用主要还是要看使用者是怎么去用的,正如明知汽车比人跑步快,但是百米世界冠军的名头不比舒马赫差,刘翔去离家不远的闹市买菜估计宁愿自己跑步去买,也不会开车去忍受塞车的痛苦的........,或者刘翔根本不会开车,给了他一辆F1赛车,他也许会说:“虽然开车是快,可惜这种车到我手上因为不会开,比蜗牛快不了多少,还是相信自己的腿好过了,说不定因为我的腿用得好,那些水平差的司机就算开F1还不一定比我跑步快呢....”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2024-11-24 21:42

CAD设计论坛,为工程师增加动力。

© 2005-2024 askcad.com. All rights reserved.

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