×
热门分类
微信扫码登陆

QQ登录

只需一步,快速开始

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

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

x
SketchUp8.0在组件属性的函数里增加了Power函数(幂函数),这解决了当初玩儿动态组件想达到一个数的N次幂必须得在公式里把这个数乘N遍的尴尬局面。


最近在使用这个函数的时候发现这个函数在SketchUp里的不足,不能对负数进行开方运算(幂为分数),接下来对这个函数进行了扩展;由于个人能力有限,只能解决 负数的开整数方根 这个方面,希望官方在后期的SketchUp版本中能优化这个函数;


首先说明一下Power函数:
函数表达式为Power(base,power),base为基数,power为幂;


如:Power(2,3),表示2的3次幂,结果为8;
Power(8,1/3),表示8的1/3次幂,也就是8的立方根,结果为2;
这些在SketchUp的组件属性中自定义一个属性并在属性后输入表达式“=Power(base,power)”(不需要引号)可得到验证。


但是,问题来了,当我输入Power(-8,1/3),本以为会得到-2这个结果,谁知道得到的如下
搜狗截图20150709164511.png

我也是醉了,还以为自己数学没学好,赶紧打开Excel,输入了同样的等式,结果确实是-2;


经过多次测试得出这样一个结论:
组件属性的Power函数不支持对负数进行小数/分数次幂运算;


接下来提出的方案只能解决负数开整数方根的可实施性,也就是对负数进行整数分之一次幂的运算;
Power(base,power)中的Power为1/2,1/3,1/4...


搜狗截图20150709165900.png

图中Result后的表达式即为解决方案;


以下为解释说明;


我把基数分为两种情况,base大于等于0,base小于0;
base大于等于0,则base的root分之一次幂等于,表达式为Power(abs(base),1/root);
注:abs()为绝对值运算,因为base为负数时结果不对;


当base小于0,又分为两种情况,root为奇数还是偶数;
   1.我们知道负数没有偶数方根,所以root为偶数时,我输入了“FalseNum”;
   2.root为奇数时,相当于基数base的绝对值的root分之一次幂*-1;


中间利用到的函数列举如下,具体用法及定义可在网上查询
IF(test,thenValue,elseValue),逻辑函数,判定函数;
ABS(number),绝对值转换;
ISEVEN(number),偶数判断;或用ISODD(number),奇数判断;

精彩评论

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

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2016-3-1 09:50:29
123594030 发表于 2016-3-1 08:49
因为最近在做家具,怎么样可以做到自由拉伸的时候柜体变成32的倍数呢(除去踢脚线)?比如拉了个2200,能 ...

这里有两个方法可以达到你要的效果(推荐方法2):
1.做一个厚度为32的长方体,然后利用copies进行复制,个数等于总组件高度除以32(方法不合适,就不详述了);
2.组件嵌套(两层组件,如下图1),内部组件高度LenZ等于外部组件高度除以32的整数倍再乘以32。
公式为LenZ=Floor(G!LenZ/3.2)*3.2
其中“Floor”用作向下取整,“G”为上层组件名称,“!”意为 之后LenZ参数归属于之前的G组件,其余就比较好理解了。
D1.jpg
图1
D2.jpg



希望可以完全理解!!

89

主题

1737

帖子

152

红宝石

SU学师(等级6)

Rank: 6Rank: 6

红宝石
152

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

word9999 2015-8-29 08:13:20
请教,有没有su组件函数方面好的学习资料,中文的,e文水平相当于奥巴马中文水平。

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2015-8-29 20:51:55
建议直接自己练习,本人英语也超级烂,利用网络翻译是个不错的途径,但是在网上没有找到系统的动态组件教程,如何利用还得自己尝试。SketchUp内置的一些组件都是带有属性的,可以看看他们的组件属性,就能了解个别函数如何使用。SketchUp可用的函数被分为7类,分别是数学函数,文本函数,逻辑函数,SketchUp函数,三角函数,运算符,onclick函数。SketchUp的组件属性里选择任何一个函数,都有简单的解释,并且,其中运算符一般都很常用,一看便知;数学函数、三角函数、逻辑函数网上都有详细的解释,直接百度就能得到,SketchUp里的能用的函数都很基础;文本函数只需要在SketchUp的组件属性里选择该函数,就能出现解释,里面个别函数解释的翻译不准,导致理解起来比较费劲,尝试一下就能理解了;SketchUp函数、onclick函数都是SketchUp软件独有的,SketchUp中个别函数我也没弄明白是干什么用的,onclick函数只能用于onclick属性,本质就是给该组件设置一个可以被互动的值,(注:使用过程中要特别注意的是,onclick属性里的函数不能是公式,也就是不能给函数前加等号)。
具体的函数还是多尝试一下吧。

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2015-8-29 20:53:53
word9999 发表于 2015-8-29 08:13
请教,有没有su组件函数方面好的学习资料,中文的,e文水平相当于奥巴马中文水平。 ...

那个。。。回复错地方了,你看看楼下,我回复在帖子里了

7

主题

1027

帖子

63

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
63
梅宇哲 2015-9-9 16:28:11
很高端的,支持了

12

主题

491

帖子

10

红宝石

SU游学(等级2)

Rank: 2

红宝石
10

积极讨论奖

123594030 2016-2-29 09:35:37
很棒了,楼主我也在学这个呢

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2016-2-29 11:31:34
123594030 发表于 2016-2-29 09:35
很棒了,楼主我也在学这个呢

希望有更多的人一起努力,发表出有意义的动态组件。

12

主题

491

帖子

10

红宝石

SU游学(等级2)

Rank: 2

红宝石
10

积极讨论奖

123594030 2016-3-1 08:49:54
Devil_1111 发表于 2016-2-29 11:31
希望有更多的人一起努力,发表出有意义的动态组件。

因为最近在做家具,怎么样可以做到自由拉伸的时候柜体变成32的倍数呢(除去踢脚线)?比如拉了个2200,能自动变成2194

12

主题

491

帖子

10

红宝石

SU游学(等级2)

Rank: 2

红宝石
10

积极讨论奖

123594030 2016-3-1 14:40:37
这样算出来的却是32的倍数,我的方法是这样,你看看~
3Q`9JF(S5C68Y~C(J6(YK.jpg

12

主题

491

帖子

10

红宝石

SU游学(等级2)

Rank: 2

红宝石
10

积极讨论奖

123594030 2016-3-1 14:58:50
gao是无效数据

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2016-3-2 13:52:27
123594030 发表于 2016-3-1 14:40
这样算出来的却是32的倍数,我的方法是这样,你看看~

你的模型应该是zhengti(gui1(ge1))。参数应该没有什么问题。
有一点需要说明一下:copies参数本身自带向下取整功能,无需多加Floor参数。

12

主题

491

帖子

10

红宝石

SU游学(等级2)

Rank: 2

红宝石
10

积极讨论奖

123594030 2016-3-4 16:14:59
后来左右拉的数据问题有点大,做了好久都做不出来

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2016-3-4 17:19:48
123594030 发表于 2016-3-4 16:14
后来左右拉的数据问题有点大,做了好久都做不出来

水平方向跟垂直方向应该完全同理,是不是哪个函数出现了故障

12

主题

491

帖子

10

红宝石

SU游学(等级2)

Rank: 2

红宝石
10

积极讨论奖

123594030 2016-3-7 11:03:31
Devil_1111 发表于 2016-3-4 17:19
水平方向跟垂直方向应该完全同理,是不是哪个函数出现了故障

没有公式故障,就是有问题。现在在模仿 H22(7NPX3_BE}H58KNDUTFO.png
这个组件,这个没有问题,但是看不懂。

7

主题

201

帖子

87

红宝石

SU学师(等级6)

Rank: 6Rank: 6

红宝石
87
QQ
zyuan-skp 2017-5-25 21:33:15
我想请教,动态组件缩放所用到的函数(按比例缩放,或者是等距缩放)

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2017-5-26 21:21:49
zyuan-skp 发表于 2017-5-25 21:33
我想请教,动态组件缩放所用到的函数(按比例缩放,或者是等距缩放)

其实不太明白你问的函数到底是哪个,动态组件中的缩放效果是通过控制其外观尺寸LenX、LenY、LenZ来实现的,直接输入数值,或者可以计算出数值的公式,均可达到缩放效果。至于你问的“按比例缩放”、“等距缩放”,还请再详细描述一下。

7

主题

201

帖子

87

红宝石

SU学师(等级6)

Rank: 6Rank: 6

红宝石
87
QQ
zyuan-skp 2017-6-7 15:25:43
Devil_1111 发表于 2017-5-26 21:21
其实不太明白你问的函数到底是哪个,动态组件中的缩放效果是通过控制其外观尺寸LenX、LenY、LenZ来实现的 ...

lz应该有了解过cad的动态块,有一项功能是可以拉伸局部图元,这个拉伸的操作是可以设定固定间距的。
~TY%7G7N0E~J2L9WEX~]{L.png

大概也这种意思,能否做到这su动态组件缩放的时候也有个固定间距的捕捉?

8

主题

1266

帖子

72

红宝石

SU初师(等级5)

Rank: 5Rank: 5

红宝石
72

忠实粉丝积极讨论奖

Devil_1111 2017-6-7 18:50:59
zyuan-skp 发表于 2017-6-7 15:25
lz应该有了解过cad的动态块,有一项功能是可以拉伸局部图元,这个拉伸的操作是可以设定固定间距的。

大 ...

可以的,就是限定长度内等间距插入特定的组件,我有一篇帖子是发的电动门的动态组件,里面就有你想要达到的效果。
请查看链接:动态组件-电动门【可定义长度+切换开启关闭状态】
高级模式
您需要登录后才可以回帖 登录 | 立即加入SketchUp吧! 微信扫码登陆

本版积分规则

Devil_1111

SU初师(等级5)

  • 主题

    8

  • 吧币

    170010

  • 红宝石

    72

关闭

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

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