马上开始学3dmax,最后问一个问题,有难度,关于卷起的曲面
如图,想要一个卷起的薄膜,这个薄膜展开后是正方形。现在是卷起的。我画的是近似图,我自己画不出来。
沿对角线卷起的薄膜,起点是90的角,终点也是90的角。我的起点只能做到是一个边。
其实我做的差不多了,如果哪位高手告诉我,怎么切割曲面,应该就行了。
似乎只能切割实体,不能切割曲面?是这样吗?
图在此,仅供参考,不是最终目标。 自己顶一下,顶到有人解答 没什么,别的软件可以用一个命令就自动执行了,正如你所说,的确.
CAD能画,只是不会自动执行吧,HEHE.
以下图原理是一样的.我只是用一张三角形的纸卷的,(当然,最后镜像一下就成一张长方形或正文形的纸卷起来了.)
其实,任何软件都有它的利弊,总有它各自的特长,关键是你对这个软件的熟悉程度.再好的软件也是人来使用的.HEHE 看不清楚,做个完整的把。
模拟一张完整的纸,用透明效果,最关键要看到纸的两个对角。
cad里面,一根线扫掠后,缩放倍数于限制。
如果一个你从一个点缩放,那就更麻烦,点怎么缩放?点是不可能缩放的。所以你应该跟我一样,用线模拟,可是超短线不能扫掠,长线扫掠后,端点是边。
不过如果能切割曲面,那更好。
如果能用矩形扫掠成实体,也行,可是缩放后,内外厚度又不均匀。
所以麻烦你做一个完整的,透明的,特别显示其端点的薄膜模型吧。谢谢。 可以做一个非常薄的实体:lol 版主你别偷乐,做出来才是王道。哈哈
时时看吧??
做了,就知道难度了。 不能掉到第二页,继续顶。
看看有没有人能做出来。 慢慢顶啊,一直顶到有人做出来为止。 既然楼主如此执着,就请试用下面的代码吧
这是个VBA程序,如果你在安装CAD程序时安装了VBA功能,就请运行CAD后按Alt+F11,在弹出的VBA编辑器的工程资源管理器中双击ThisDrawing对象,在其代码窗口粘贴下面的代码,按F5运行程序,回到CAD窗口,在模型空间会出现四条样条曲线,就是卷曲的纸的边界。至于怎样建模、渲染就看你自己的了。
Sub A()
Dim Alf As Double, R As Double, R0 As Double, AA As Double, X1 As Double, Y1 As Double, X2 As Double, _
Y2 As Double, L As Double, L1 As Double, I As Integer, P1(302) As Double, P2(302) As Double, P3(302) As Double, _
P4(302) As Double, T0(2) As Double, T1(2) As Double, T2(2) As Double
L = 100# '正方形对角线的1/2,可由使用者更改
R0 = 10# '内圈起始半径,可由使用者更改
AA = 2# '每卷一圈的半径增加值,可由使用者更改
R = R0 + AA / 6.28318530717959 * Alf
X1 = R * Cos(Alf)
Y1 = R * Sin(Alf)
P1(0) = X1
P1(1) = Y1
P2(0) = X1
P2(1) = Y1
For I = 1 To 100
Do
Alf = Alf + 6.28318530717959E-04
R = R0 + AA / 6.28318530717959 * Alf
X2 = R * Cos(Alf)
Y2 = R * Sin(Alf)
L1 = L1 + Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
X1 = X2
Y1 = Y2
Loop Until L1 >= L / 100# * CDbl(I)
P1(I * 3) = X1
P1(I * 3 + 1) = Y1
P1(I * 3 + 2) = L1
P2(I * 3) = X1
P2(I * 3 + 1) = Y1
P2(I * 3 + 2) = -L1
Next
T1(0) = AA / 6.28318530717959 * Cos(Alf) - (R0 + AA / 6.28318530717959 * Alf) * Sin(Alf)
T1(1) = AA / 6.28318530717959 * Sin(Alf) + (R0 + AA / 6.28318530717959 * Alf) * Cos(Alf)
T1(2) = Sqr(T1(0) ^ 2 + T1(1) ^ 2)
T2(0) = T1(0)
T2(1) = T1(1)
T2(2) = -T1(2)
P3(0) = X1
P3(1) = Y1
P3(2) = L1
P4(0) = X1
P4(1) = Y1
P4(2) = -L1
For I = 1 To 100
Do
Alf = Alf + 6.28318530717959E-04
R = R0 + AA / 6.28318530717959 * Alf
X2 = R * Cos(Alf)
Y2 = R * Sin(Alf)
L1 = L1 - Sqr((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)
X1 = X2
Y1 = Y2
Loop Until L1 <= L - L / 100# * CDbl(I)
P3(I * 3) = X1
P3(I * 3 + 1) = Y1
P3(I * 3 + 2) = L1
P4(I * 3) = X1
P4(I * 3 + 1) = Y1
P4(I * 3 + 2) = -L1
Next
P3(302) = 0
P4(302) = 0
With ThisDrawing.ModelSpace
.AddSpline P1, T0, T1
.AddSpline P2, T0, T2
.AddSpline P3, T1, T0
.AddSpline P4, T2, T0
End With
End Sub
此程序已经修改由于编制程序时已快到下班时间,忽略了样条曲线的端点切向,导致生成的曲面上行和下行之间过渡不圆滑,生成的实体也不理想。:L
现在程序已经修改过,指定了上行和下行曲线衔接部位的端点切向。建模时,将视图转到主视图,将上面的两条曲线合并(JOIN)在一起、下面两条曲线合并在一起,用放样命令,选取两“条”曲线,“仅横截面”,“直纹曲面”,就得到曲面了,想做实体用加厚就可以。
代码放在在代码框中,就不会出现表情符号等这种问题了。------------cad版主
[ 本帖最后由 cad 于 2008-5-6 12:02 编辑 ] 因水平有限,很艰难做了一个,达不到楼主的要求
将下图卷曲的实体打开就是一等腰三角形,顶点的厚度为0,底边的厚度最厚,呵呵
[ 本帖最后由 truezx 于 2008-5-5 17:41 编辑 ]
回复 #9 woaishuijia 的帖子
我试了一下,不行啊哈哈哈,woaishuijia的东西果然有效.....
[ 本帖最后由 truezx 于 2008-5-5 18:34 编辑 ] woaishuijia 是牛人。
强烈要求woaishuijia 自己做一个出来,因为这个只有你最明了。拜托啊拜托~~~!!!!!!!
箭头所指方向,那个地方是怎么回事???似乎还是有问题啊??
所以如果不靠二次开发,本身还是很难很难很难~~
不过版主大大,你的图为啥就不能渲染一下呢??现在看的似乎还是有问题啊, 都是高级别的玩家啊!
看的我一头雾水! 难道此问题无解?
呼唤xsbf&woaishuijiao达人。
帮个忙吧。
回复 #14 yueye0305 的帖子
首先我可以告诉你,woaishuijia的程序完全可以实现你的要求,从其程序开始的说明就可以看出L = 100# '正方形对角线的1/2,可由使用者更改
R0 = 10# '内圈起始半径,可由使用者更改
AA = 2# '每卷一圈的半径增加值,可由使用者更改
可以看到设置了正方形纸、内圈半径、半径增量,而且我的确是做出来了,不信的话你可以自己实验一下
其次,就算不用程序,用其他方法,只要能做出四条样条曲线,就是卷曲的纸的边界,一样可以完成楼主的要求
最后,想说明一点,楼主说来说去,无非是想说明cad画这种图比其它软件要困难得多,的确也是如此,你完全可以掌握更好的软件,用简单的方法完成复杂的工作,没有必要再在这里强调cad的不足,不过你的话题从另一方面说明工具始终是工具,好不好用主要还是要看使用者是怎么去用的,正如明知汽车比人跑步快,但是百米世界冠军的名头不比舒马赫差,刘翔去离家不远的闹市买菜估计宁愿自己跑步去买,也不会开车去忍受塞车的痛苦的........,或者刘翔根本不会开车,给了他一辆F1赛车,他也许会说:“虽然开车是快,可惜这种车到我手上因为不会开,比蜗牛快不了多少,还是相信自己的腿好过了,说不定因为我的腿用得好,那些水平差的司机就算开F1还不一定比我跑步快呢....”