openscad - 有没有办法使用 OpenScad 拉伸对象
问题描述
我创建了一个具有环形形状的小夹子,但我现在希望能够将它拉伸成更椭圆的形状。就好像你要在两根手指之间挤压一个橡胶环。
使用 OpenSad 有没有简单的方法来做到这一点?
这是我到目前为止所拥有的:
difference()
{
difference()
{
cylinder(r = 9.8/2, h = 1.7);
translate([0,0,-0.1]) cylinder(r = 7/2, h = 1.9);
}
translate([2,2,-0.1]) rotate([0,0,90]) cube([4,4,3]);
}
另外,如果您能提出更好的方法来创建开口,请告诉我。我不确定从环中减去一个立方体是最好的方法。
解决方案
这只是一个轻微的改进:
$fn=80;
scale([1,2,1])
difference()
{
cylinder(r = 9.8/2, h = 1.7);
translate([0,0,-1]) cylinder(r = 7/2, h = 1.7+2);
translate([-2,2,-1]) cube([4,4,1.7+2]);
}
您可以将任意数量的对象与第一个对象区别开来,因此不需要嵌套区别。我还更改了立方体旋转,以便将立方体平移到正确的位置。
如果您想要与开口平行的侧面,立方体可以很好地作为开口的方式。如果您希望在对象被捏合并关闭时两侧完全接触,则需要某种多边形。
我还将要减去的对象更改为 Z=-1,并将它们的高度更改为“期望高度 + 2”。我喜欢这种语法,因为如果需要,用变量替换“期望高度”会更容易。
推荐阅读
- html - 两个 div 彼此相邻,它们的项目彼此相邻
- php - 嵌套数组上的 PHP/Laravel 数组差异 - 删除错误值
- javascript - Laravel 一天只允许一次提交
- c++ - 字符串初始化的变化导致 UB
- java - 在 Spring Security 过滤器链之前记录请求标头
- latex - LaTeX 表太宽,我怎样才能使它适合?
- spring-data-jpa - Spring Data JPA - java.sql.Timestamp 对于列表或实体集的其余部分为空
- python - 开头的 0 被跳过,我不知道如何解决它
- java - 在邮件中发送附件 java
- android-studio - 调整 XML Vector 图像的 viewportHeight 和 viewportWidth 大小