openscad-ify搅拌机

BlendSCAD的Python项目详细描述


#blendscad-弥合blender和openscad之间的差距 < BR>
blendscad是[michael mlivoncic的](https://github.com/migueltoelgrande)blenderscad模块的一个分支,名称略有更改,以避免与原始模块混淆。最初的dev私奔现在似乎已经暂停了;希望这个分叉可以帮助恢复项目并将其带向新的方向。此分叉具有以下设计目标: < BR>
*与[solidpython]兼容(https://github.com/solidcode/solidpython);目标是在每个脚本上运行相同的脚本。
*添加新的openscad功能,如文本。旨在与openscad完全兼容;目前唯一重要的问题似乎是minkowski函数。
*仅添加Blender附加功能和增强功能,例如使用顶点颜色或纹理支持3D可打印的全彩模型的功能,以及其他修改器,如Solidify。
*可在PYPI上获得,并可通过PIP安装。
*blendscad面板目前不受支持,并且不会随着底层模块的更改而保持最新。这可能会在未来再次被提起。 < BR>
在Blender的Python 3中安装PIP;Blender没有PIP,因此我们必须先安装它:
1。下载[get pip.py](https://pip.pypa.io/en/stable/installing/使用get pip py安装)
2。安装PIP 'BR/''SH "c:\程序文件\搅拌器基础\搅拌器\ 2.78 \ Python \bin \ python .exe"GET-PI.Py

3。安装blendscad <"嘘" "c:\程序文件\搅拌器基础\搅拌器\ 2.78 \ Python \ bin \ python .exe"-m PIP安装BuldScad
< BR>
以上路径适用于安装在Windows上默认位置的Blender 2.78;请针对您的操作系统进行相应的修改。 < BR>
原始自述如下: < BR>
Blender是一款功能强大的开源软件,在3D打印领域也很有用。来自OpenSCAD或Tinkercad,乍一看有一些问题: < BR>
*重新访问和更改模型似乎很困难-连接网格不如分组/取消分组对象有吸引力
*撤消功能没有那么高级。
*openscad的参数化方法非常强大,而且易于学习。Blender的Python控制台是您甚至可能不知道的,使用OpenSCAD参数化您的第一个对象肯定要容易得多。
*Blender的用户界面(即默认主题)太暗,无法提供TinkerCAD或OpenSCAD的温暖和受欢迎的感觉:-) < BR>
这个小项目是作为概念实现的证明开始的,因为我只是在熟悉blender和python。同时,它已经成熟了不少,是一个非常好的增强搅拌机。
这是一个屏幕截图,展示了基本理念:![](imgs/screenshottblender.png) < BR>
openscad代码 < BR>
顺便说一句:这是openjscad的标志 < BR>
<;pre>;模块logodemo(){
比例尺([10,10,10]){
翻译([0,0,1.5]){
联合体(){
差异{
立方体(尺寸=3,中心=真);
球体(r=2,中心=真);

交集(){
球体(r=1.3,中心=真);
立方体(尺寸=2.1,中心=真);



< }
logodemo();
<;前>; < BR>< BR>![](imgs/openscad.png) < BR>
翻译成BlendersCad < BR>
…添加了一些颜色并将其视为两个分组对象 < BR>
<;pre>;def logodemo():
比例尺([10,10,10],
翻译([0,0,1.5]
,组(
颜色(紫色,差异(
立方体([3,3,3],中心=真)
,球体(r=2,中心=真) < BR>)
,颜色(黄色,交叉点(
球体(r=1.3,中心=真)
,立方体([2.1,2.1,2.1],中心=真) < BR>) < BR>< BR>< BR>< BR>
登录演示()
<;前>; <乙R/>< BR>![](imgs/logo_blenderscad.png)我已经开始在Blender2.68/2.69\上开发Blenderscad。当前版本在Blender2.68到最新的2.74之间运行良好,并且可能仍然在旧的Blender版本上运行(不过还没有测试)。操作系统方面,我在Windows764bit上使用Blender,但也在ubuntu上进行了测试(安卓平板电脑上有很好的侧加载)。 < BR>
安装说明 < BR>
安装blenderscad相当简单:同时,我将项目拆分为python模块blenderscadu、默认用户prefs和启动文件(用于配置文件夹)以及blenderscad面板(放置在加载项文件夹中)。只需安装模块就可以了,其他两个部分可以看作是可选的。此外,在"测试"和"示例"文件夹中还有一个演示脚本"blenderscad demo.py"和一些其他演示文件。 < BR>
搅拌机SCAD模块 < BR>
首先,将blenderscad目录放在blender的模块路径中: < BR>
<;pre>;[安装路径]\blender-2.69\2.69\scripts\modules\blenderscad <或>或
[安装路径]\blender-2.74\2.74\scripts\modules\blenderscad
<;前>; < BR>
作为替代方法,您还可以在控制台或演示脚本中设置包含模块的文件夹的路径。 < BR>
用户界面外观 < BR>
您可以选择使用配置子文件夹中的my**startup.blend**和**userpref.blend**文件。这些将提供我的搅拌机主题调整和屏幕区域设置,如上图所示。将"配置"文件夹的内容放入搅拌机的配置文件夹: < BR> Br//lt;Pr.Gt;%UrrStices %\AppDATa\ROM\BlunFrase\Bluld\\\CONFIG <或>或 < BR/> %用户配置文件%\AppDATa\ROMM\Brand基金会\搅拌器\ 2.74配置
<;前>; < BR>
如果您使用的是windows(否则,请参阅搅拌机文档)。 < BR>
搅拌机面板 < BR>
这超出了提供类似openscad的操作的最初范围,与使用tinkercad非常相似。如果要尝试,请安装该加载项并在"用户首选项"中激活它: < BR>
<;pre>;[安装路径]\blender-2.69\2.69\scripts\addons\blenderscad_toolbar.py <或>或
[安装路径]\blender-2.74\2.74\scripts\addons\blenderscad_toolbar.py
<;前>; < BR>
入门 < BR>
首先保存所有打开的工作,最好转到干净的文档。在Blender的内部文本编辑器中打开演示脚本blenderscad demo.py,并取消注释要尝试的演示部分。只需使用"运行脚本"。这是最简单的方法。也可以将脚本保存为.blend文件的一部分。再次提醒,在我的大多数演示脚本中,有一行代码可以先擦除打开场景中的所有对象,以便进行快速测试。恭喜,Blender现在是你的开放式IDE了。您甚至可以在输入时编译代码(在编辑器中选中"live edit")。 < BR>
或者,通过python控制台运行 < BR>
如果对代码使用外部编辑器,则首选此选项。 < BR>
<;pre>;可选,在python控制台中第一次清除命令历史:
bpy.ops.console.clear(历史=真)
文件名="<;您的路径=">;/blenderscad.py
执行(编译(open(filename.read(),filename,'exec'))<;>;<;/pre>; < BR>
通常,我建议从命令行(Windows或Linux)启动Blender。这样可以看到所有错误消息和警告。 < BR>
一些提示 < BR>
搅拌机文件通常随所有未链接对象一起增长。每当您保存并重新打开文档时,它将进行垃圾清理。为了使"live edit"选项合理工作,我显式地强制删除(取消链接)中间对象和网格(例如,在并集之前)。因此,文件应该比用通常的方式编辑搅拌机文件时更干净。
"警告"的最后一句话:注意保存源文件的位置。_ alt+s将在编辑器中保存文件,ctrl+s将保存"具体化"D"版本的文件在搅拌机里。如果重新同步,更改可能会丢失。 < BR>
支持: < BR>
*立方体
*气缸
*球体
*圆圈
*方形
*多边形
*多面体 < BR>
*翻译
*旋转
*镜子
*比例尺
*调整大小
*颜色 < BR>
*联合体
*差异
*交叉口 < BR>
*投影
**线性挤出
*旋转挤压
*船体 < BR>
*表面
*导入、导入stl、*导入dxf
*导出,导出stl,*导出dxf < BR>
*六边形
*八角形
*椭球体
*rcube公司
*圆形框 < BR>
*特殊变量:fs、fa、fn(~$fs、$fa、$fn)
*字符串函数:echo、str、*search
*数学函数:查找、rands、sign、sin、cos… < BR>
额外费用 < BR>
*连接、拆分
*分组,取消分组
*克隆、销毁 < BR>
*圆形边缘
*溶解 < BR>
*+几个(openscad)演示 *… < BR>
缺少 < BR>
*明科夫斯基
*标准
*多矩阵 *… < BR>
搅拌机面板 < BR>
这是我目前最活跃的开发领域-随时可能更改;-)我想有一些交互性,尝试一些额外的操作和调整容易。由于这是一个非常简单的搅拌机,我定义了一个面板。第一个版本是这样的: < BR>< BR>![](imgs/panel.png) < BR>
它主要重用我为blenderscad增强编写的一些代码。一个非常方便的事情是多对象布尔运算:在屏幕上点击3次,得到一个立方体、一个圆柱体和一个球体,点击几次,将它们对齐,选择几个对象(shift+鼠标右键),然后点击其中一个布尔按钮。在幕后,它将创建所需的修改器并应用它们。我认为这是一个巨大的生产力提升。试试看。几乎和TinkerCad(组和洞以及撤消/取消组)一样方便。对象清理(使用"有限融合")实际上清理了大多数生成的几何体。 < BR>
通常,大多数操作将应用于选定对象集。 < BR>
对象选择与默认搅拌机设置不同。我已经更改了鼠标选择的分配,以便使平板电脑操作(没有键盘)成为可能。 < BR>
说到几何学:当代码从对象模式切换到编辑模式时,用户甚至不会意识到(在Blender中,有些东西并不总是直截了当的,尤其是在通过Python编写脚本时?)。有一个调试按钮,即使在对象模式下也可以切换显示所有对象边。搅拌机可以这么容易! < BR>
由于我无论如何都需要看到"真实"的控制台输出,我决定从单窗口多区域方法切换到三窗口方法。 < BR>< BR>![](imgs/blenderide2.png) < BR>
只需调整启动代码(右侧)中打开的文本中的路径并运行它。这将使面板出现-目前没有成熟的附加组件。 < BR>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Grid loadmask(true)在gxt中不起作用   java将字符串索引转换为整数   为什么Java泛型适用于基元数组,但不适用于基元数组?   java如何让Azure应用程序服务Tomcat将所有80/443流量转发到运行在同一应用程序服务上的JBoss   具有多个值的java转换映射到树?   java如何设置SQL server连接URL?   java设置了多个相互独立的JFrame   安全性在JAVA中如何使用RSAPrivateKey的密码短语?   java不能使用比Apache Velocity中更大的条件   如何在Java中打印字符串的所有排列   停止Android Studio自动导入java。sql。日期   对象简单计算器程序java   java如何在安卓中使用“&”符号作为字符串?   java Connect,为我的安卓应用程序从REST API发布和获取数据