问题标签 [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 回答
123 浏览

openscad - STL 面和边线

在 OpenSCAD 中是否可以访问 STL 几何的面、法线、边和连通性?

我想通过迭代每个面并根据一些本地标准对其进行修改来修改 STL 几何。

如果这在 OpenSCAD 中不可行,欢迎推荐开放工具或库。

谢谢。

0 投票
2 回答
2266 浏览

stl - 如何将函数作为参数传递给 OpenSCAD 模块?

在过去的几天里,我对使用基于编程语言的软件创建 3D 模型的想法产生了兴趣。我一直在使用的语言之一是 OpenSCAD,它已被证明在创建有趣的形状方面非常有帮助。

我目前正在尝试使用 OpenSCAD 创建一朵花,但我遇到了一个问题,我无法使用我在网上找到的文档或其他资源来规避。

这是问题的简短形式:

我可以将函数作为参数传递给 OpenSCAD 模块吗?

如果是这样,怎么做?如果没有,为什么不呢?我能做些什么呢?

这让我想到了问题的详细形式,具体到我的情况:

我正在尝试使用 2D 极坐标函数的线性挤压来创建花瓣,并将其与 3D 函数相交。

为此,我从在http://spolearninglab.com/curriculum/lessonPlans/hacking/resources/software/3d/openscad/openscad_math.html找到的两个非常好的模块开始。我并没有声称一开始就写过它们。

第一个 - Dan Newman 的 3D 绘图仪 /* 3Dplot.scad */

第二 - 2D Grapher /* 2dgraphing.scad */

我的包装代码:

当我渲染世界上计算成本最高的花瓣时,世界一切都很好。

[在这里我会发布一张图片,但由于这是我的第一篇文章,我没有先决条件 10 声望点]

但是,现在我想从花瓣底部减去多余的部分。所以我可以使用具有更陡峭函数和更低起点的 3D 图,然后从原始 3D 图中减去它。

所以在同一个程序中,我想为 3Dplot 模块的两种不同用途使用两个不同的功能。

我尝试修改 3dplot 和我的代码来这样做:

修改了我的代码:

我收到以下错误:警告:忽略未知函数“input_function”。

那么我该如何将函数作为参数传递呢?

在此之前我没有用任何函数式语言编写过,但我从 OpenSCAD 用户手册中了解到“从 2015.03 版本开始,现在可以在任何范围内分配变量”。所以我应该能够为每次运行 3dplot 更改 input_function 的值,就像 3dplot 中的变量一样。我是否错误地解释了这一点?

作为一个可选的附带问题:OpenSCAD 是否有明确的方法来实现我当前的目标,而不会在渲染过程中产生大量计算负载?

我花了足够多的时间试图解决这个问题,我发布了这个冗长的问题,如果我对一个简单的现有解决方案感到困惑,我深表歉意。我非常感谢任何愿意提供帮助的人。

0 投票
1 回答
107 浏览

3d - 给定尺寸在 3D 打印机上不同

我在 openSCAD 中画了一个小帽子,并在“mm”中定义了尺寸。

当我将零件导出为 STL 并在 3D 打印机的软件中打开时,零件的大小几乎翻了一番。

这是零件的代码:

渲染显示内边缘约 32 毫米,外边缘约 35 毫米。但 3D 打印机显示 70 毫米半径。我一周前开始使用 openSCAD,以前的测试打印(立方体、金字塔等)没有任何比例问题。这是我设计的第一个现实生活,我有一个比例问题。我可以在 3D 打印机软件中缩小模型,但我想知道它背后的原因,以便我可以相应地设计未来的东西。

编辑:我缩小了 50% 并打印。外半径是正确的,但所有其他尺寸(高度、壁厚)也按比例缩小了 50%。所以一开始只有外半径是不正确的。

在 openSCAD 中渲染

0 投票
1 回答
1326 浏览

openscad - 预览时结果正常,但渲染后为空

我想切割这个半球:

在此处输入图像描述

我的代码是:

在预览结果是好的:

在此处输入图像描述

但渲染后(F6 键)我收到一个空对象:

在此处输入图像描述

渲染完成,没有任何错误:

我在 Windows 7 64 位机器上使用 OpenSCAD 版本 2015.03-2。 是关于我的构建的详细信息,这里是我需要切割的半球 stl。

我究竟做错了什么?

0 投票
1 回答
249 浏览

rendering - 在 openSCAD 中用多面体创建一个“杯子”

我正在尝试使用八角棱镜(使用该polyhedron功能)创建一个“杯子”形状(一端开口的空心)。当我渲染我的代码时,OpenSCAD 不会渲染底面和内面。我究竟做错了什么?

谢谢!

我的代码:

我的渲染问题的图像:

在此处输入图像描述

0 投票
1 回答
876 浏览

boost - 铿锵声:错误:链接器命令在 make openscad 时失败,退出代码为 1

我正在尝试安装openscad,我已经安装了所有依赖项,但是当我尝试安装时,openscad我遇到了这个问题:

$ make clang++ -headerpad_max_install_names -stdlib=libc++ -mmacosx-version-min=10.7 -stdlib=libc++ -arch x86_64 -o OpenSCAD.app/Contents/MacOS/OpenSCAD objects/OffscreenContextCGL.o objects/CocoaUtils.o objects/PlatformUtils-mac .o 对象/scintillaeditor.o 对象/scadlexer.o 对象/version_check.o 对象/ProgressWidget.o 对象/mathc99.o 对象/linalg.o 对象/Camera.o 对象/handle_dep.o 对象/value.o 对象/expr .o objects/stackcheck.o objects/func.o objects/localscope.o objects/module.o objects/feature.o objects/node.o objects/context.o objects/modcontext.o objects/evalcontext.o objects/csgnode .o objects/CSGTreeNormalizer.o objects/CSGTreeEvaluator.o objects/Geometry.o objects/Polygon2d.o objects/clipper-utils.o objects/polyset-utils.o objects/GeometryUtils.o objects/polyset.o objects/polyset- gl.o 对象/csgops.o 对象/变换。o objects/color.o objects/primitives.o objects/projection.o objects/cgaladv.o objects/surface.o objects/control.o objects/render.o objects/text.o objects/dxfdata.o objects/dxfdim。 o objects/offset.o objects/linearextrude.o objects/rotateextrude.o objects/printutils.o objects/fileutils.o objects/progress.o objects/parsersettings.o objects/stl-utils.o objects/boost-utils.o objects/PlatformUtils.o objects/LibraryInfo.o objects/nodedumper.o objects/traverser.o objects/GeometryEvaluator.o objects/ModuleCache.o objects/GeometryCache.o objects/Tree.o objects/DrawingCallback.o objects/FreetypeRenderer.o objects/FontCache.o objects/settings.o objects/rendersettings.o objects/highlighter.o objects/Preferences.o objects/OpenCSGWarningDialog.o objects/editor.o objects/GLView.o objects/QGLView.o objects/AutoUpdater.o对象/grid.o 对象/内置。o 对象/calc.o 对象/export.o 对象/export_stl.o 对象/export_amf.o 对象/export_off.o 对象/export_dxf.o 对象/export_svg.o 对象/export_nef.o 对象/export_png.o 对象/导入。 o objects/renderer.o objects/colormap.o objects/ThrownTogetherRenderer.o objects/svg.o objects/OffscreenView.o objects/fbo.o objects/system-gl.o objects/imageutils.o objects/lodepng.o objects/ openscad.o objects/mainwin.o objects/UIUtils.o objects/Dock.o objects/FontListDialog.o objects/FontListTableView.o objects/launchingscreen.o objects/legacyeditor.o objects/LibraryInfoDialog.o objects/clipper.o objects/ bucketalloc.o 对象/dict.o 对象/geom.o 对象/mesh.o 对象/priorityq.o 对象/sweep.o 对象/tess.o 对象/imageutils-macosx.o 对象/OpenCSGRenderer.o 对象/cgalutils.o对象/cgalutils-applyops.o 对象/cgalutils-project。o 对象/cgalutils-tess.o 对象/cgalutils-polyhedron.o 对象/CGALCache.o 对象/CGALRenderer.o 对象/CGAL_Nef_polyhedron.o 对象/cgalworker.o 对象/Polygon2d-CGAL.o 对象/AppleEvents.o 对象/moc_scintillaeditor .o 对象/moc_ProgressWidget.o 对象/moc_QGLView.o 对象/moc_MainWindow.o 对象/moc_Preferences.o 对象/moc_OpenCSGWarningDialog.o 对象/moc_AboutDialog.o 对象/moc_FontListDialog.o 对象/moc_FontListTableView.o 对象/moc_highlighter.o 对象/moc_editor .o 对象/moc_Dock.o 对象/moc_AutoUpdater.o 对象/moc_launchingscreen.o 对象/moc_legacyeditor.o 对象/moc_LibraryInfoDialog.o 对象/moc_cgalworker.o 对象/moc_EventFilter.o 对象/qrc_openscad.o 对象/parser_yacc.o 对象/lexer_lex .o -F/usr/local/Cellar/qt/4.8.7_2/lib -L/opt/local/lib -L/usr/local/Cellar/qt/4.8。7_2/lib -framework Cocoa -framework ApplicationServices -lCGAL -lmpfr -lgmp -lopencsg -lGLEW -lboost_thread-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt -L/usr/local/Cellar/glib/ 2.46.2/lib -L/usr/local/opt/gettext/lib -lglib-2.0 -lintl -liconv -L/usr/local/lib -lharfbuzz -L/usr/local/Cellar/freetype/2.6_1/lib -L/usr/local/Cellar/fontconfig/2.11.1/lib -lfontconfig -lfreetype -L/usr/local/Cellar/qt/4.8.7_2/lib -lqscintilla2 -framework QtOpenGL -L/usr/local/opt/ openssl/lib -F/usr/local/Cellar/qt/4.8.7_2/lib -framework QtGui -framework QtCore -framework OpenGL -framework AGL ld: 警告:目标文件 (objects/OffscreenContextCGL.o) 是为较新的 OSX 版本构建的(10.10)比被链接(10.7)ld:警告:目标文件(objects / CocoaUtils.o)是为更新的OSX版本(10.10)而不是被链接(10.7) ld: 警告: 目标文件 (objects/PlatformUtils-mac.o) 是为更新的 OSX 版本 (10.10) 而不是被链接 (10.7) 架构 x86_64 的未定义符号: "boost::re_detail_106000::get_mem_block()",引用自:boost::re_detail_106000::perl_matcher, std::__1::allocator >>, boost::regex_traits >>::find_imp() in Tree.o boost::re_detail_106000::perl_matcher, std::__1::分配器 > >, boost::regex_traits > >::match_all_states() in Tree.o boost::re_detail_106000::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::match_startmark() 在 Tree .o boost::re_detail_106000::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::match_alt() in Tree.o boost::re_detail_106000::perl_matcher, std::__1::allocator > >,boost::regex_traits > >::match_rep() 在 Tree.o boost::re_detail_106000::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::match_char_repeat() 在 Tree.o boost: :re_detail_106000::perl_matcher, std::__1::allocator >>, boost::regex_traits >>::match_set_repeat() in Tree.o ... "boost::re_detail_106000::put_mem_block(void*)",引用自: boost::re_detail_106000::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::find_imp() in Tree.o boost::re_detail_106000::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::unwind_extra_block(bool) in Tree.o boost::re_detail_106000::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::find_imp() 在导入中。 o 提升::re_detail_106000::perl_matcher, std::__1::allocator >>, boost::regex_traits >>::unwind_extra_block(bool) in import.o "boost::re_detail_106000::verify_options(unsigned int, boost::regex_constants::_match_flags )”,引用自:boost::re_detail_106000::perl_matcher, std::__1::allocator > >, boost::regex_traits > >::find_imp() in Tree.o boost::re_detail_106000::perl_matcher, std:: __1::allocator >>, boost::regex_traits >>::find_imp() in import.o "boost::re_detail_106000::raise_runtime_error(std::runtime_error const&)",引用自:void boost::re_detail_106000::raise_error > > >(boost::regex_traits_wrapper > > const&, boost::regex_constants::error_type) in Tree.o void boost::re_detail_106000::raise_error > > >(boost::regex_traits_wrapper > > const&, boost::regex_constants::error_type) in import.o "boost::re_detail_106000::get_default_error_string(boost::regex_constants::error_type)",引用自: boost::re_detail_106000::cpp_regex_traits_implementation ::error_string(boost::regex_constants::error_type) const in Tree.o boost::re_detail_106000::cpp_regex_traits_implementation::error_string(boost::regex_constants::error_type) const in import.o "boost::re_detail_106000::cpp_regex_traits_implementation: :transform_primary(char const*, char const*) const",引用自:std::__1::__wrap_iter boost::re_detail_106000::re_is_set_member, char, boost::regex_traits >, unsigned int>(std::__1:: __wrap_iter, std::__1::__wrap_iter, boost::re_detail_106000::re_set_long const*, boost::re_detail_106000::regex_data > > const&, bool) in Tree.o std::__1::__wrap_iter boost::re_detail_106000::re_is_set_member, char, boost::regex_traits >, unsigned int>(std::__1::__wrap_iter, std ::__1::__wrap_iter, boost::re_detail_106000::re_set_long const*, boost::re_detail_106000::regex_data >> const&, bool) in import.o "boost::re_detail_106000::cpp_regex_traits_implementation::transform(char const*, char const*) const",引用自:std::__1::__wrap_iter boost::re_detail_106000::re_is_set_member, char, boost::regex_traits >, unsigned int>(std::__1::__wrap_iter, std::__1: :__wrap_iter, boost::re_detail_106000::re_set_long const*, boost::re_detail_106000::regex_data > > const&, bool) 在 Tree.o std::__1::__wrap_iter boost::re_detail_106000::re_is_set_member, char,boost::regex_traits >, unsigned int>(std::__1::__wrap_iter, std::__1::__wrap_iter, boost::re_detail_106000::re_set_long const*, boost::re_detail_106000::regex_data > > const&, bool) in import.o ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)make:*** [OpenSCAD.app/Contents/MacOS/OpenSCAD] 错误1

0 投票
2 回答
643 浏览

java - 有没有办法将 OpenSCAD 编译器合并到 java 或任何其他编程语言中?

我目前正在使用 OpenScad 创建一个模板代码(我将值插入到输入变量中)以生成 3D 模型。

我这样做的原因是一个更大的项目的一部分,我想根据应用于输入变量的进化算法迭代生成 3D 模型,其中用户偏好将决定进化的方向。(用户从模型中选择一个模型,新模型将从所选模型中生成,冲洗并重复)

我希望能够为此设计一个用户界面。我是否可以在 Java 之类的编程语言中使用 OpenScad 编译器(如果可能,还可以使用渲染器)(我可以在其中为我的程序设计 UI)?

PS我是初学者,所以放轻松

0 投票
1 回答
1042 浏览

arrays - Openscad 在数组或等效项中

openScad上有类似的东西吗?

0 投票
1 回答
102 浏览

openscad - Openscad:linear_extrude不会缩放

这个简单的代码:

在拉伸过程中创建一个圆柱体而不是缩放圆。

结果: 缩放结果不好

0 投票
1 回答
10493 浏览

bash - Sed 错误“命令 a 需要 \ 后跟文本”

这是我的脚本:

该输出: