×
热门分类
微信扫码登陆

QQ登录

只需一步,快速开始

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

您需要 登录 才可以下载或查看,没有帐号?立即加入SketchUp吧! 微信扫码登陆

x


       首先我也不会编程,而且也是做动态组件初学者,只是在坛子里学了各位前辈的教程,也学了官方的例子,发现没有想象的那么难,做一些简单的东西根本不需要会编程,知道一些简单的公式就可以。这是我学着做第二个动态组件,上次做了个门,因为是自己摸索着做,所以也没有记下来步骤。这次呢我把做的过程写下来,首先肯定有很多不太合理的地方,我做的过程也不是一气呵成,一路摸索,难免有些地方说得不是很清楚,希望不要贻笑大方。要是你完全不懂什么是动态组件可以看ardong很久很久以前的教程,他说得比我详细:http://www.sketchupbar.com/thread-419-1-2.html。也许我写得不好但是目的是希望和大家一起学习进步。然后如果有人能给我指出不足之处,我会感激不尽,同时也希望大家可以就动态组件多交流交流,抛砖引玉,有问必答。
————————开工分割线——————————
先做前期准备工作,
首先可以自己做动态组件必须是要sketchup Pro版本。
然后在菜单里“窗口>组件选项”打上勾。就会出现这个 9df8baf3def4ae11696eefe44d895c05.jpg

然后打开官方的教程http://support.google.com/sketchup/bin/answer.py?hl=zh-Hans&answer=108144,上面有每个公式怎么用的例子。
最后多开一个sketchup,可以用来打开例子参考别人的做法。

1,我要做的是一个简单的公路,目标是能够随意的指定长宽高,这也是动态组件最基本的功能之一了。只是这次我弄得稍微有点结构复杂了一点点而已。首先建一个桥的基本模型出来,我不知道其他人是不是这样的,但是我觉得先做出来可以让自己有个直观的感受,便于分析怎么做动态组件。
48827250.png

2,有了基本模型就分析一下这个桥要怎么做成动态组件。先看我想要做成什么,我这个希望可以自己定义桥的长度,宽度,和高度。那这三个参数变化了桥会怎么变呢?
长度上,桥身是直接拉伸就可以,单独的栏杆和桥墩应该不会有外形上的变化而是在固定的长度重复。
宽度上,桥身也是拉伸,栏杆和一些边缘的突起在宽度上应该是不变的。
高度上,应该变化的只有桥墩。

3,分析好了,把桥拆分成一个个部件,按照刚才的分析,比如桥的宽度是会变化的,但是桥栏杆的宽度不会变,那么就把他们分开。
分别把他们做成组件分别命名,最后全选所有的部件再做成一个整的组件命名为bridge,命名最好规范一点,这样在做的时候免得自己麻烦。

4,打开组件属性 2046546.jpg
,所有的组件都能看到了。

48878171.png

开始给组件加上属性,涉及到长宽高所以先把所有组件的位置和尺寸都添加,点击组件名称下的添加属性就会有个下拉菜单。而且因为要自定义长宽高,所以在最下面的自定义处添加三个变量:
Height
Length
width
ecf18a85eeaf0e724a79f3f2de88b824.jpg

然后把这三个都设置为“用户可用作文本框进行编辑”:

NL0)J0QPG4YL}HK6_[5]W76.jpg

可以事先输入一些数值,便于公式调用。

5,现在一个个的组件来写。先看桥身,位置我先不管,尺寸应该是
长度等于桥长度,
宽度为桥减去两侧,
高度应该是不变所以直接填一个固定值。如下:
2}F@TH0AR(VB44B79QO)]7I.jpg

把组件选项打开,输入数字测试下。
17167250.png
E]0RQIYA8B0QL_({ZS}5622.jpg

嗯!没有问题。
然后来处理桥身左边这部分。现在就要考虑位置的问题了,先看我怎么写的:
c020a49b4b7d2b8dd646a025559ed22f.jpg

x和桥身一样,y是桥身在y轴上的位置减去自己y轴上的长度,那z的+80是什么呢?看图:
398968.png

嗯,这个80是我的结构造成的,left要对齐body就得在z上加上80。
右边也如法炮制。
3003171.png

其他的东西全都如法炮制。都和上面的桥身同理,就是根据你自己的结构来给予它们的位置和尺寸,比如B挨着A(假设A的位置和尺寸已经定了)那么B的坐标就是A的坐标加上A的的尺寸。非常简单。有两点要注意的是所有的位置都是以组件自己的轴为原点的,遇到有问题的时候不妨检查一下轴,另外建模的时候要用准确的数值,不要自己随意推拉,不然长度是~0.5之类的就没法写公式了。位置都调整好了以后,我们可以输入几个参数试验一下,没有问题就可以进行下一步了。 50131921.png






赞赏

20

查看全部评分

精彩评论

文明上网理性发言、请文明用语

2

主题

8

帖子

1

红宝石

SU入学(等级1)

Rank: 1

红宝石
1
zoubobuoz 2012-10-16 15:31:08


"组件不能获取不在它那个层级别的其他组件的值。"...
这一点很好理解...在su软件中,组和组件是靠引入相对坐标系来管理滴,如此这般,组中组、件中件,一层层嵌套其中,每层都有自己相对外层组或组件的独立坐标系。因为坐标系的不同,自然无法获取其他层级的构件值嘞。换句话讲,SU软件做了一个限定,即:从外层不能直接操作组或组件当中的构件。只有打开组或组件,才能操纵。所以在制作动态组件时,不要试图从外层直接操纵组件中的构件。而是应该由内向外来建模,先将最内层组件的参数,用该层根组件【暂且这么叫吧】中各参数做变量赋值,偶管这叫参数封组,这样,组件就有了外层接口。封组后,就不需要再考虑内层组件内部情况,只需专心考虑外层接口,也就是刚才那个根组件的参数赋值。如此这般,由内向外层层设计并封组...补充一句,su会自己根据底层组件与顶层组件之间的相对坐标轴差,自动计算内层组件的位置与尺寸等参数取值滴...嫩看懂意思了米有?舌头都打结儿啦...嘿嘿...
举个例子,看图...

三个内层组件

三个内层组件

...这是三个内层组件,底座、栏杆、灯头...
...如下图,作封组设置,注意看最后一行那个传参设置...

封组

封组

...到外层看看...

形成外层组件

形成外层组件

...将来通过改变外层lenz参数,这个模型的栏杆部分就会变长,灯头和灯座尺寸和相对位置不会变化...
最后调整成这样...养成良好习惯,让语法符合调用逻辑...
4.png

要明白一点,参考坐标系的改变,只会影响不同组件层组件的位置参数,尺寸是不受影响的,所以不要试图去在不同组件层中传递位置参数,这样做没有意义,把它交给SU去做,层间只传尺寸参数这个偶想了一整天才明白...刚开始琢磨...欢迎纠正...

21

主题

401

帖子

22

红宝石

SU有学(等级3)

Rank: 3Rank: 3

红宝石
22
jazzthink 2012-4-23 10:54:28
谢谢楼主。很有帮助。

21

主题

401

帖子

22

红宝石

SU有学(等级3)

Rank: 3Rank: 3

红宝石
22
jazzthink 2012-4-23 10:54:46
谢谢楼主。很有帮助。

0

主题

9

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
yang332 2012-4-23 23:20:12
过程值得学习

0

主题

5

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
chisn_k 2012-4-24 14:26:05
顶起来~

4

主题

255

帖子

26

红宝石

SU有学(等级3)

Rank: 3Rank: 3

红宝石
26
imyas 2012-4-25 17:26:22
好像做软件UI

15

主题

977

帖子

133

红宝石

SU学师(等级6)

Rank: 6Rank: 6

红宝石
133

忠实粉丝积极讨论奖宝石收藏家

ximulee 2012-4-27 16:12:34
多谢楼主分享

19

主题

1155

帖子

132

红宝石

SU学师(等级6)

Rank: 6Rank: 6

红宝石
132

积极讨论奖

L.Lynn. 2012-4-29 21:50:07
动态组件,不错,学习学习

14

主题

349

帖子

4

红宝石

SU入学(等级1)

Rank: 1

红宝石
4

忠实粉丝

wanjvk 2012-4-30 14:02:18
谢谢分享制作方法和理念

3

主题

243

帖子

14

红宝石

SU游学(等级2)

Rank: 2

红宝石
14
1234321 2012-4-30 17:39:36
启发很大呀

3

主题

243

帖子

14

红宝石

SU游学(等级2)

Rank: 2

红宝石
14
1234321 2012-4-30 17:40:57
启发很大

1

主题

174

帖子

39

红宝石

SU俊才(等级4)

Rank: 4

红宝石
39
决不退缩版 2012-5-21 15:42:38

1

主题

174

帖子

39

红宝石

SU俊才(等级4)

Rank: 4

红宝石
39
决不退缩版 2012-5-21 15:44:26
这个对于大多数人的帮助嗨了去!

1

主题

174

帖子

39

红宝石

SU俊才(等级4)

Rank: 4

红宝石
39
决不退缩版 2012-5-21 15:47:02
这个对于大多数人的帮助嗨了去!

0

主题

66

帖子

2

红宝石

SU入学(等级1)

Rank: 1

红宝石
2
hushutao 2012-5-26 00:04:55
看不懂!{:soso_e101:}

2

主题

137

帖子

8

红宝石

SU入学(等级1)

Rank: 1

红宝石
8
1/5个世纪 2012-12-4 11:00:43
好帖,学习了

16

主题

1014

帖子

53

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
53
QQ
wja6000 2013-5-23 17:16:10
膜拜的对象啊,研究了一下午还没研究出来

6

主题

303

帖子

20

红宝石

SU有学(等级3)

Rank: 3Rank: 3

红宝石
20

积极讨论奖

ggggitol 2013-5-31 10:30:51
做的挺精细的

9

主题

102

帖子

17

红宝石

SU游学(等级2)

Rank: 2

红宝石
17
QQ
360111357 2013-6-21 19:04:28
正好在研究动态组件 ,学习下
12下一页
高级模式
您需要登录后才可以回帖 登录 | 立即加入SketchUp吧! 微信扫码登陆

本版积分规则

stlva

SU初师(等级5)

  • 主题

    3

  • 吧币

    5100

  • 红宝石

    47

关闭

站长推荐上一条 /2 下一条

积分兑换活动
发布主题 快速回复 返回列表 客服中心 搜索 官方QQ群
关于我们/小黑屋/手机app/国土人/SketchUp吧 /京ICP备16008035号/