问题标签 [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.
openscad - STL 面和边线
在 OpenSCAD 中是否可以访问 STL 几何的面、法线、边和连通性?
我想通过迭代每个面并根据一些本地标准对其进行修改来修改 STL 几何。
如果这在 OpenSCAD 中不可行,欢迎推荐开放工具或库。
谢谢。
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 是否有明确的方法来实现我当前的目标,而不会在渲染过程中产生大量计算负载?
我花了足够多的时间试图解决这个问题,我发布了这个冗长的问题,如果我对一个简单的现有解决方案感到困惑,我深表歉意。我非常感谢任何愿意提供帮助的人。
3d - 给定尺寸在 3D 打印机上不同
我在 openSCAD 中画了一个小帽子,并在“mm”中定义了尺寸。
当我将零件导出为 STL 并在 3D 打印机的软件中打开时,零件的大小几乎翻了一番。
这是零件的代码:
渲染显示内边缘约 32 毫米,外边缘约 35 毫米。但 3D 打印机显示 70 毫米半径。我一周前开始使用 openSCAD,以前的测试打印(立方体、金字塔等)没有任何比例问题。这是我设计的第一个现实生活,我有一个比例问题。我可以在 3D 打印机软件中缩小模型,但我想知道它背后的原因,以便我可以相应地设计未来的东西。
编辑:我缩小了 50% 并打印。外半径是正确的,但所有其他尺寸(高度、壁厚)也按比例缩小了 50%。所以一开始只有外半径是不正确的。
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
java - 有没有办法将 OpenSCAD 编译器合并到 java 或任何其他编程语言中?
我目前正在使用 OpenScad 创建一个模板代码(我将值插入到输入变量中)以生成 3D 模型。
我这样做的原因是一个更大的项目的一部分,我想根据应用于输入变量的进化算法迭代生成 3D 模型,其中用户偏好将决定进化的方向。(用户从模型中选择一个模型,新模型将从所选模型中生成,冲洗并重复)
我希望能够为此设计一个用户界面。我是否可以在 Java 之类的编程语言中使用 OpenScad 编译器(如果可能,还可以使用渲染器)(我可以在其中为我的程序设计 UI)?
PS我是初学者,所以放轻松
arrays - Openscad 在数组或等效项中
openScad上有类似的东西吗?
bash - Sed 错误“命令 a 需要 \ 后跟文本”
这是我的脚本:
该输出: