×
热门分类
微信扫码登陆

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去做,层间只传尺寸参数这个偶想了一整天才明白...刚开始琢磨...欢迎纠正...

0

主题

37

帖子

3

红宝石

SU入学(等级1)

Rank: 1

红宝石
3
CBYD45 2020-10-27 18:09:58
感谢分享,学习了

4

主题

35

帖子

2

红宝石

SU入学(等级1)

Rank: 1

红宝石
2

积极讨论奖

darktank 2018-10-25 18:49:57
支持楼主分享。

0

主题

19

帖子

2

红宝石

SU入学(等级1)

Rank: 1

红宝石
2

社区微博达人

黎先行 2017-12-4 14:38:31
谢谢,收获颇多

2

主题

59

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
ccgguang 2017-11-19 13:33:25
学到了,谢谢楼主

9

主题

1190

帖子

27

红宝石

SU有学(等级3)

Rank: 3Rank: 3

红宝石
27

社区微博达人

little大 2016-9-20 09:39:11
感谢分享,学习了。

0

主题

12

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
茶末儿 2016-7-26 19:55:57
谢谢楼主

0

主题

2

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
yy55555 2016-6-13 16:43:56
谢谢楼主。很有帮助。谢谢楼主。很有帮助。谢谢楼主。很有帮助。

0

主题

45

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
w1384327 2015-12-22 15:51:06
学习了,自己试试看

0

主题

11

帖子

2

红宝石

SU入学(等级1)

Rank: 1

红宝石
2

社区微博达人

zhifeiji110 2015-11-20 12:12:42
厉害   正好在研究这个

9

主题

19

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
daewoo_zy 2015-5-20 01:26:37
多谢教程 学习了

36

主题

602

帖子

69

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
69

社区微博达人积极讨论奖

til000 2015-4-4 08:25:44
大牛能做朋友么

3

主题

73

帖子

5

红宝石

SU入学(等级1)

Rank: 1

红宝石
5

积极讨论奖

goodliu1 2014-7-5 09:57:40
很不错的,深有启发。可以避免大量重复劳动

0

主题

91

帖子

2

红宝石

SU入学(等级1)

Rank: 1

红宝石
2
svwlao 2014-6-22 20:47:29
谢谢楼主,顶了再看。

0

主题

3

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
惟鑫主义 2014-5-5 11:46:49
好教程啊。谢谢分享啊。自学大神。。

7

主题

221

帖子

3

红宝石

SU入学(等级1)

Rank: 1

红宝石
3
archione 2014-4-14 13:14:03
恩,一直没注意动态组件可以这样精确的玩,学习了

6

主题

88

帖子

13

红宝石

SU游学(等级2)

Rank: 2

红宝石
13
gllinda 2014-3-22 18:10:39
好,啊,我刚好用得上,非常常谢谢

1

主题

27

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
QQ
Calyx-GM 2014-1-10 16:25:44
学习了!可刚接触到动态组件,这编码还是要加强研究才能懂!谢谢楼主分享

25

主题

422

帖子

314

红宝石

SU有道(等级7)

Rank: 7Rank: 7Rank: 7

红宝石
314

网站日常维护组宝石收藏家

QQ
sk_yoh 2013-8-16 23:50:47
一直都没尝试过,但愿能有个机会试试动态组件

0

主题

4

帖子

0

红宝石

SU入学(等级1)

Rank: 1

红宝石
0
打酱油的四两 2013-7-26 10:21:17
正在学习!!!!!!!!

13

主题

317

帖子

98

红宝石

SU学师(等级6)

Rank: 6Rank: 6

红宝石
98
乌拉呆OTZ三 2013-7-23 15:43:18
遇到弯曲的道路怎么做设置参数呢?
12下一页
高级模式
您需要登录后才可以回帖 登录 | 立即加入SketchUp吧! 微信扫码登陆

本版积分规则

stlva

SU初师(等级5)

  • 主题

    3

  • 吧币

    5100

  • 红宝石

    47

关闭

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

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