1 新建空项目

2测数据

测量得出数据.这个长方体的长宽高分别是1.6、4.6、8 注意,这三个数据并不是测量得到的数据,而且加了一点公差值(为3D打印做准备)

3画图

写代码

导入模型

为了方便以后其他零件定位,统一在他们的后面使用对齐中心命令 center=true
得到第一个长方体之后,第二个就简单了.直接复制第一个,并且以Z轴为中心,对其进行旋转操作,如下图

这样,我们就得到了这个十字键槽,但是,键帽上并不是这样的啊. 别急.下面,我们将见到OPENSCAD中最常用的一个布尔运算是如何做的.
首先我们画一个圆柱体

然后我们把之前做好的那个十字立方体放到这个圆柱体的下面

cylinder(7.9,r=4,center=true,$fn=36);//画圆
//下面
cube([1.6,4.6,8],center=true);//画长方体
rotate([0,0,90])//旋转得到长方体
cube([1.6,4.6,8],center=true);

  这个时候,使用三个布尔运算函数中的 差集 命令 difference()
把它们都包起来,

是的,差集命令的含义,是用第一个立方体,减去之后的所有立方体.

difference(){

cylinder(7.9,r=4,center=true,$fn=36);//画圆

cube([1.6,4.6,8],center=true);//画长方体

rotate([0,0,90])//旋转得到长方体
cube([1.6,4.6,8],center=true); }

  请注意顺序差别,如果不一样就会相反操作,如下图,十字减去圆柱,

这时,我们就有了键帽中最关键的零件了.
接下来,我们就要开始画键帽了.
在openscad中,有一个叫hull()的命令. 我把他理解为蒙皮.就是将两个物体,最表面的部分,连接起来的一个命令. 我们就能利用这个命令,生成我们需要的键帽主体.

首先我们要先用一个长宽18毫米,高0.1毫米的长方体来做键帽的底

然后再做一个长12.5、宽15、高1的长方体作为顶。并且把它往Z轴方向上移10毫米。
也就是键帽的高度。

利用hull命令给他们蒙皮。

hull(){
cube([18,18,0.1],center=true);
translate([0,0,10])cube([12.5,15,1],center=true);
}

  但是这是一个实心的东西啊,要怎么才能实现其他建模软件中的 抽壳 命令呢?
其实很简单,我们键帽的外壳是2mm,那么我们就再做一个尺寸缩小2mm的梯形立方体,再做一下减法不是就成了?

difference(){
hull(){
cube([18,18,0.1],center=true);
translate([0,0,10])cube([12.5,15,1],center=true);
} hull(){
cube([16,16,0.2],center=true);
translate([0,0,6.5])cube([10.5,13,1],center=true);
}
}

  接下来,就是把两个东西组合在一起了。
这一步,需要慢慢的调整具体的位置。 好在,我们一开始就在画所有立方体的时候都在中心位置。我们只需要单纯的移动一个轴就能调整了。
最后我们得到了这样的结果。

// 模型1 十字星柱体
module caozhu(){
difference(){ cylinder(7.9,r=4,center=true,$fn=36);//画圆 cube([1.6,4.6,8],center=true);//画长方体 rotate([0,0,90])//旋转得到长方体
cube([1.6,4.6,8],center=true); }
}
//模型二 外壳
module zhuti(){ difference(){
hull(){
cube([18,18,0.1],center=true);
translate([0,0,10])cube([12.5,15,1],center=true);
} hull(){
cube([16,16,0.2],center=true);
translate([0,0,6.5])cube([10.5,13,1],center=true);
}
}
} // 模型三 1+2 组合
module chengshuti(){
zhuti();
translate([0,0,3.5])caozhu();
}

//程序执行
chengshuti();

  

这里大家会看到,为了方便对每个部件进行操作,我使用了 模块 的方式,把它们分别的包装起来,然后就能方便的进行各种操作了。

然后,键帽不可能是这么四平八稳的,上面是有弧度,而下面也是有斜面的。要怎么样做出这样的效果呢?
还是很简单,我们一样来做减法。
首先上面画一个非常大的圆柱体,并且旋转它,移动它,让他刚刚接触到键帽主体的顶部表面。

//Z方向移动28.4  绕X轴旋转90
translate([0,0,28.4])rotate([90,0,0])cylinder(20,r=19,center=true,$fn=100);

  然后再画一个比底部大一点的方块,旋转它。

   rotate([-8,0,0])cube([20,20,4],center=true);

  这样,我们就得到了这样的东西。

是不是感觉很难看?
马上就好。让我们开始做减法吧。用键帽减去上面和下面多余的东西

// 模型1 十字星柱体
module caozhu(){
difference(){ cylinder(7.9,r=4,center=true,$fn=36);//画圆 高度7.9 半径4 cube([1.6,4.6,8],center=true);//画长方体 rotate([0,0,90])//旋转得到长方体
cube([1.6,4.6,8],center=true); }
}
//模型二 外壳
module zhuti(){ difference(){
hull(){
cube([18,18,0.1],center=true);
translate([0,0,10])cube([12.5,15,1],center=true);
} hull(){
cube([16,16,0.2],center=true);
translate([0,0,6.5])cube([10.5,13,1],center=true);
}
}
} // 模型三 1+2 组合
module chengshuti(){
zhuti();
translate([0,0,3.5])caozhu();
} //模型四
module wancheng(){
difference(){
chengshuti();
//Z方向移动28.4 绕X轴旋转90
translate([0,0,28.4])rotate([90,0,0])cylinder(20,r=19,center=true,$fn=100);
//
rotate([-8,0,0])cube([20,20,4],center=true);
}
} //程序执行
wancheng();

  好了,这样,一个机械键盘的键帽就绘制完成了。
接下来要做的事情,就是直接在openscad里面,按一下F6开始实体运算。
在运算结束后,保存该模型为STL文件。
打开你的切片软件,切片并打印吧。

最新文章

  1. Python学习实践-----打印日历
  2. 【腾讯Bugly干货分享】微信mars 的高性能日志模块 xlog
  3. ARC以及MRC中setter方法
  4. sql的 group by 分组;linq的 group by 分组
  5. 泛泰A870S官方4.4.2系统S0218210 内核版本号信息
  6. ps快速删除圆角图片旁白的白色区域方法
  7. hdu 4308 Saving Princess claire_ BFS
  8. python3 annotations
  9. springcloud之服务注册与发现(Eureka)
  10. Intent和PendingIntent的区别
  11. IconFont的iOS使用
  12. Webshell密码极速爆破工具 – cheetah
  13. A Survey of Machine Learning Techniques Applied to Software Defined Networking (SDN): Research Issues and Challenges
  14. HDU 2052 Picture
  15. 基于spring-cloud的微服务(4)API网关zuul
  16. jQuery代码实现表格内容可编辑修改
  17. HDU1811 拓扑排序判环+并查集
  18. 【转】几款移动跨平台App开发框架比较
  19. Qt DLL总结
  20. delphi 理解ParamStr

热门文章

  1. Django之视图层
  2. typeof() 和 GetType()区是什么
  3. autocomplate 学习
  4. MVC 【Razor 视图引擎】基础操作 --页面跳转,传值,表单提交
  5. Maven之setting.xml配置文件详解
  6. Hive数据倾斜
  7. Python入门到精通学习书籍推荐!
  8. JNI和NDK基础
  9. ASP.NET MVC WebAPI 资源整理
  10. Salesforce Live Agent 简介