OpenSCAD 建模:矿泉水瓶花洒

简介:   下载地址:https://github.com/ZhangGaoxing/openscad-models/tree/master/Sprinkle     代码: module screw(r=15){ for(g=[0:1:240]){ translate...

  下载地址:https://github.com/ZhangGaoxing/openscad-models/tree/master/Sprinkle

 

  代码:

module screw(r=15){
    for(g=[0:1:240]){
        translate([cos(g)*r,sin(g)*r,(g)/40])
        rotate(a=[93,60,g])
        cylinder(.6,.6,.6,center=true,$fn=3);
    }
}

module cylinderWithScrew(){
    union(){
        // Cylinder shell
        difference(){
            cylinder(28,16.5,16.5,$fn=200);
            cylinder(28,15.5,15.5,$fn=200);
        }

        // Screw
        union(){
            translate([0,0,19])screw(15);
            translate([0,0,19])rotate([0,0,120])screw(15);
            translate([0,0,19])rotate([0,0,240])screw(15);
        }
    }
}

module sprinklerWall(){
    difference(){
        cylinder(35,35,16.5,$fn=200);
        cylinder(35,33.5,15.5,$fn=200);
        
        rotate([90,0,0])translate([0,22,18])cylinder(18,1.5,1.5,$fn=200);
    }
}

module sprinklerBottom(){
    difference(){
        cylinder(1,35,35,$fn=200);

        cylinder(2,1,1,$fn=200);

        for(i=[0:0.2:0.8]){
            rotate(i*360/0.8,[0,0,1])
            translate([0,6,0])
            cylinder(2,1,1,$fn=200);
        }

        for(i=[0:0.2:1.6]){
            rotate(i*360/1.6,[0,0,1])
            translate([0,12,0])
            cylinder(2,1,1,$fn=200);
        }

        for(i=[0:0.2:2.4]){
            rotate(i*360/2.4,[0,0,1])
            translate([0,18,0])
            cylinder(2,1,1,$fn=200);
        }

        for(i=[0:0.2:3.2]){
            rotate(i*360/3.2,[0,0,1])
            translate([0,24,0])
            cylinder(2,1,1,$fn=200);
        }
        
        for(i=[0:0.2:4]){
            rotate(i*360/4,[0,0,1])
            translate([0,30,0])
            cylinder(2,1,1,$fn=200);
        }
    }
}

union(){
    sprinklerBottom();
    translate([0,0,1])sprinklerWall();
    translate([0,0,36])cylinderWithScrew();
}

 

  效果图:

目录
相关文章
|
网络协议 网络架构
UDP包的大小与MTU
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好?当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对像ICQ一类的发送聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助:首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,运输层,应用层.
4110 0
|
8月前
|
机器学习/深度学习 自然语言处理 语音技术
《探秘卷积神经网络:权重共享与局部连接的神奇力量》
卷积神经网络(CNN)中的权重共享和局部连接是其核心特性。权重共享通过同一卷积核在不同位置使用相同权重,减少参数量并提高泛化能力;局部连接则使每个神经元仅与输入的局部区域相连,专注于提取局部特征。两者相辅相成,显著降低计算复杂度,增强对空间结构的感知,使CNN在图像识别等领域表现出色。
477 8
|
前端开发
前端轮询问题之为什么使用setTimeout可以保证轮询请求的唯一性
前端轮询问题之为什么使用setTimeout可以保证轮询请求的唯一性
211 0
|
Linux 测试技术 Shell
Centos7下安装Dogtail GUI自动化测试工具并打开sniff工具过程中遇到的问题解决方法
Centos7下安装Dogtail GUI自动化测试工具并打开sniff工具过程中遇到的问题解决方法
678 0
Centos7下安装Dogtail GUI自动化测试工具并打开sniff工具过程中遇到的问题解决方法
|
存储 安全 搜索推荐
什么是PDS
简述什么是PDS以及基于PDS搭建的企业网盘的体验感受
|
JavaScript
Vue中深度拷贝对象属性,但是界面的双向绑定功能失效问题解决
Vue中深度拷贝对象属性,但是界面的双向绑定功能失效问题解决
476 0
|
机器学习/深度学习 自然语言处理 索引
【神经网络】MLP 编码器-解码器 注意力机制 残差连接
【神经网络】MLP 编码器-解码器 注意力机制 残差连接
1060 0
【神经网络】MLP 编码器-解码器 注意力机制 残差连接