yueye0305 发表于 2008-5-4 18:17

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

如图,想要一个卷起的薄膜,这个薄膜展开后是正方形。现在是卷起的。



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



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



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



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


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

yueye0305 发表于 2008-5-4 22:10

自己顶一下,顶到有人解答

czy12 发表于 2008-5-5 08:53

没什么,别的软件可以用一个命令就自动执行了,正如你所说,的确.
CAD能画,只是不会自动执行吧,HEHE.

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

yueye0305 发表于 2008-5-5 09:53

看不清楚,做个完整的把。



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



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


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


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



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


所以麻烦你做一个完整的,透明的,特别显示其端点的薄膜模型吧。谢谢。

liuyilmy 发表于 2008-5-5 11:00

可以做一个非常薄的实体:lol

yueye0305 发表于 2008-5-5 11:11

版主你别偷乐,做出来才是王道。哈哈


时时看吧??


做了,就知道难度了。

yueye0305 发表于 2008-5-5 14:29

不能掉到第二页,继续顶。



看看有没有人能做出来。

yueye0305 发表于 2008-5-5 16:06

慢慢顶啊,一直顶到有人做出来为止。

woaishuijia 发表于 2008-5-5 16:24

既然楼主如此执着,就请试用下面的代码吧
这是个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 编辑 ]

truezx 发表于 2008-5-5 17:39

因水平有限,很艰难做了一个,达不到楼主的要求


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




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

truezx 发表于 2008-5-5 17:53

回复 #9 woaishuijia 的帖子

我试了一下,不行啊










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



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

yueye0305 发表于 2008-5-5 22:09

woaishuijia 是牛人。



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


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



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

bearxt 发表于 2008-5-5 22:16

都是高级别的玩家啊!
看的我一头雾水!

yueye0305 发表于 2008-5-6 09:40

难道此问题无解?



呼唤xsbf&woaishuijiao达人。



帮个忙吧。

truezx 发表于 2008-5-6 10:08

回复 #14 yueye0305 的帖子

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

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

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

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

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