网站首页 > 开源技术 正文
在max中通常需要给玻璃体添加杆件的情况,所以一般原始方法就是3dmax本身自带的阵列实现,就是下面的SpacingTool工具
但是很麻烦不是?所以可以使用脚本去快捷实现,下面是实现效果。
主要思路是 在线上插入很多相等距离的点,然后获得这些点的坐标并赋予给每一个杆件
其他具体细节有:
1每个杆件需要按照线的走势顺势转动角度,
2杆件间隔设置的1.5m一根
3每一根杆件都是关联的
4不管是一条线还是多条线,只要选中时就可以一起生成杆件,速度快
5适配不同系统单位下杆件大小保持真实尺寸
下面是相关代码。可以复制保存为后缀为".ms"的格式的文件这里保存的是ArrayBar.ms
--单位换算
fn displaymetertosysunit oldcount=(
case units.SystemType of (
#centimeters:(oldcount=oldcount*100)
#millimeters:(oldcount=oldcount*1000)
#inches:(oldcount=oldcount*39.37)
#feet:(oldcount=oldcount*3.2808)
#miles:(oldcount=oldcount*0.0006214)
#meters:(oldcount=oldcount)
#kilometers:(oldcount=oldcount*0.001)
default:(oldcount)
)
return oldcount
)---end fn
--核心代码区,主要是在线上插入很多等比例距离的点,然后获得这些点的坐标给每一个杆件
fn ArrayBar =(
--append all selected shapes into array
sel=getcurrentselection ()
shapeNumbers=#()
for a in sel do (
if (iskindof a shape) do (
append shapeNumbers a
)
)--end for1
--create a bar
oringBar=Box name:#bar width:(displaymetertosysunit (0.05)) length:(displaymetertosysunit (0.05)) height:(displaymetertosysunit (15))
converttoPoly oringBar
for k=1 to shapeNumbers.count do (
-- get interplation from every line
if classof shapeNumbers[k]==SplineShape then(
splineNums=numsplines shapeNumbers[k]
for j=1 to splineNums do(
per=(displaymetertosysunit (1.5))/(curveLength shapeNumbers[k] j)
for i=0 to 1 by per do(
interPlationPos=(lengthInterp shapeNumbers[k] j i)
Tanangle=pathTangent shapeNumbers[k] j i
newBar=instance oringBar pos:interPlationPos
rotate newBar (eulerangles 0 0 (acos(dot [1,0,0] Tanangle)))
)
)
)else(
newLine=ConverttoSplineshape(copy shapeNumbers[k])
per=(displaymetertosysunit (1.5))/(curveLength newLine)
for i=0 to 1 by per do(
interPlationPos=(lengthInterp shapeNumbers[k] 1 i)
Tanangle=pathTangent shapeNumbers[k] 1 i
newBar=instance oringBar pos:interPlationPos
rotate newBar (eulerangles 0 0 (acos(dot [1,0,0] Tanangle)))
)
delete newLine
)
)
delete oringBar
resetLengthInterp ()
)---end fn
ArrayBar()
猜你喜欢
- 2024-12-13 外媒说 | 看看外媒都是如何评价《芭比》这部电影的
- 2024-12-13 用js实现html页面水印
- 2024-12-13 GC-PowerStation使用教程
- 2024-12-13 2023 年 CSS 新特性大盘点
- 2024-12-13 Canvas 从进阶到退学
- 2024-12-13 Qt4/5升级到Qt6吐血经验总结V202308
- 2024-12-13 肝一下Go.js的高级使用—动态显示效果......
- 2024-12-13 如何用FFMpeg生成视频
- 2024-12-13 如何在fabric.js中使用蒙版合成图片
- 2024-12-13 canvas画箭头线
你 发表评论:
欢迎- 05-16东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 05-16这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 05-16湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- 05-16Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- 05-16G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- 05-16DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 05-16上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- 05-16WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 最近发表
-
- 东契奇:DFS训练时喷了我很多垃圾话 我不懂他为什么比赛不这么干
- 这两球很伤!詹姆斯空篮拉杆不中 DFS接里夫斯传球空接也没放进
- 湖人自媒体调查:89%球迷希望DFS回归79%希望詹姆斯回归
- Shams:湖人得到全能球员DFS 节省了1500万奢侈税&薪金空间更灵活
- G5湖人胜率更高!詹姆斯不满判罚,DFS谈5人打满下半场:这很艰难
- DFS:当东契奇进入状态 所有防守者在他面前都像个圆锥桶
- 上一场9中6!DFS:不能让纳兹-里德这样的球员那么轻松地投三分
- WIDER FACE评测结果出炉:滴滴人脸检测DFS算法获世界第一
- 湖人自媒体调查:89%球迷希望DFS回归 79%希望詹姆斯回归
- 一觉醒来湖人苦盼的纯3D终于到位 DFS能带给紫金军多少帮助
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)