问题标签 [openscad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
641 浏览

recursion - 在 OpenSCAD 中递归构造对象

所以我正在尝试使用递归函数构建一个简单的缩放立方体堆栈:

现在由于某种原因,我目前不明白 OpenSCAD 告诉我第 4 行出现语法错误,将编辑器标记为:

上述代码中突出显示的语法错误

可悲的是控制台只产生这个输出:

错误:第 4 行中的解析器错误:语法错误

错误:编译失败!

所以我很难弄清楚我到底做错了什么。我想有一种方法可以使用for,但我认为递归方法更具可读性。

我会尝试用模块来做到这一点,如果这不起作用,我可以求助于for与我想的模块结合使用 - 我更希望它能够工作并发现它非常易读。


更新:所以从OpenSCAD 用户手册我得到这个片段: OpenSCAD 模块和功能定义

我倾向于解释这一点,这样就不可能按照我想象的方式创建递归结构。

相反,我可以:

  • 使用辅助函数生成多维数据集参数并随后计算它们的并集。
  • for用循环重写结构。

我不确定我的信念是否正确,但理由是这样的:

  1. 我不能在函数中创建对象,因为那样会产生影响。
  2. 我不能递归地使用模块,因为它不返回结果,并且变量在 OpenSCAD 中的工作方式可能会干扰这个想法。
0 投票
1 回答
955 浏览

python - python固体处理后如何将数据保存在stl文件中?

我需要在 python 上处理 openscad 程序。我使用实体库(https://solidpython.readthedocs.io/en/latest/index.html),但我还没有找到任何在处理后保存数据的方法。例子

我需要将d变量保存到 stl 文件。这个怎么做?如果有更好的图书馆,我需要建议更好地使用哪个图书馆。

0 投票
1 回答
915 浏览

python - 如何在solidpython中设置特殊变量$fa、$fs、$fn

上一个线程中展示了如何创建一个 3D-body 并将其保存到 solidpython 的 stl 文件中。由于未设置 $fa、$fs、$fn,它们具有默认值,并且 3D 主体的面数较少。上面线程中的示例代码:

这里产生的 stl-body 在此处输入图像描述文档中我没有找到任何关于设置这些变量的信息。这个自述文件似乎已经过时了。

如何在solidpython 中设置$fa、$fs、$fn?

0 投票
4 回答
3795 浏览

curve - 如何在 OpenSCAD 中制作曲面片(立方体)?

我怎样才能弯曲一张纸(立方体)?我想控制弯曲/曲线的角度。

曲线

例如

立方体([50,50,2]);

0 投票
1 回答
373 浏览

openscad - how to import an image into openjscad

I am trying to draw on an image that I have. 2D the image is of a laptop and I want to draw lines around it to get measurements. I am very new to openjscad and am stuck on this very first step. Any help would be appreciated

0 投票
2 回答
85 浏览

scope - openscad 范围问题 a=a+1 解决方法

令我惊讶的是,OpenSCAD 用户手册指出:

不,你仍然不能做 a=a+1;

那么解决方法是什么?

我有多个嵌套的 for 循环,我想在最内层循环中更改位置:

目前我得到:

0 投票
1 回答
310 浏览

functional-programming - 任意曲线的递归弧长重新参数化

我有一条定义为P(t) = [x(t), y(t), z(t)]的 3D 参数曲线。

我正在寻找一个函数来根据弧长重新参数化这条曲线。我正在使用 OpenSCAD,它是一种没有变量(仅限常量)的声明性语言,因此解决方案需要递归工作(并且除了全局常量和函数参数之外没有变量)。

更准确地说,我需要编写一个函数Q(s),它给出P上的点,即从t=0点沿弧线的(大约)距离s。我已经有可以合并到答案中的数值积分和推导函数。

任何建议将不胜感激!

ps 在 OpenSCAD 中不能将函数作为参数传递,我通常只使用全局声明来解决这个问题。

0 投票
2 回答
850 浏览

dictionary - openscad中的关联数组?

openscad 是否有任何用于字符串键关联数组(又名哈希映射,又名字典)的语言原语?或者是否有任何关于如何模拟关联数组的约定?

到目前为止,我能想到的只是使用向量并使用变量将向量中的索引映射到人类可读的名称。这意味着没有很好的、可读的方式来定义向量,你只需要评论它。

想象一下,我想写一些类似于 Python 数据结构的东西:

这样我就可以在模型定义中以某种可识别的类似哈希映射的方式引用它,比如传递bobbin_metrics['majacraft']给某个东西 asmetrics和引用metrics['close_wheel_diameter'].

到目前为止,我的最大努力看起来像

我认为这会奏效。但它很丑。不完全是“我用bash”丑陋的方式编写应用程序,但也不远了。

有没有更好的办法?

我准备在openscad之外维护数据集,如果需要的话,我准备了一个包含文件的生成器,但我宁愿不这样做。


另外,为了纪念 4 月 1 日,我想念闪烁标签,想知道滚动选框是否可以工作?试过了 :)

0 投票
1 回答
27 浏览

loops - 是否可以在 openscads quicksort() 中使用循环结果

数组 openScad:我需要在 quicksort() 函数中使用嵌套循环的结果,但这似乎是不可能的。

倒数第二行(在下面的代码中)中的“arr”一次不会包含多个值。在循环的第一次运行中,arr 得到值 2.01,在第二次运行中,值是 1.6125,依此类推。我需要的是一个包含所有四个值的数组:arr=[[2.01],[1.6125],[3.775],[4.8]],因为上面的快速排序需要这样的输入。如果可以在 openScad 中实现这一点,我该怎么做?

0 投票
1 回答
46 浏览

openscad - 生成 3D 分支结构

我想在 OpenScad 中生成一个自相似、尺寸减小、固定角度的分支结构。生成的树将模拟肺部。

我设法生成了树的第一个分区(“世代”),但如果我想走得更远,我会被卡住......

我希望与前一个轴相比,我能够生成具有固定角度分割 (30°) 和 90 度旋转的其他代。

感谢您的见解。