图片缩略图

STL格子发电机

版本1.4.0.0(680 KB)
用于增材制造的STL格式栅格发生器程序

37下载

更新2015年1月27日

查看版本历史记录

查看许可证

晶格发生器是一个简单的MatLab程序,自动生成各种晶格几何直接STL格式。这些周期性结构用于选择性激光熔化(SLM)或电子束熔化(EBM)的金属增材制造技术,但是也可以应用于许多其他需要输入STL文件的增材技术。
为了研究目的,开发了一个快速和简单的方法来生成STL晶格结构的明显需求,该程序是开发更大的晶格生成能力的初步工作的一部分。在其当前状态下,该程序包括以下统一栅格类型:
身体中心立方(BCC)
-面心立方(FCC)
-修改FCC变体删除x-y, y-z,和x-z飞机
- 合并BCC和FCC细胞
修改联合BCC和FCC移除x-y平面
-简单立方体(盒子单元格)
理论上,可以将任何晶格单元配置添加到程序中,只要它可以占据立方体积并且能够使其镶嵌。
此外,观察到,通过传统技术创建有限元(Fe)网格非常耗时。作为响应,格子发生器脚本具有在Nastran格式中自动生成FE网格的附加功能。其他格式是可能的,但是对于开发项目的目的,Nastran就是所需的一切。在其目前的形式中,晶格Fe网格是3D光束元件网,其中应用了STL格的特性。不会产生负载或约束,并且材料属性仅设置为位置架。需要在预处理器(HyperMesh,Patran等)中修改这些方面。

引用

貂(2021)。STL格子发电机(//www.tatmou.com/matlabcentral/fileexchange/48373-stl-lattice-generator), MATLAB中央文件交换。检索

意见及评分(9.

苛刻的耆那教

13222000109

PRANAV NADIMPALLI

嘿那里,我正在尝试运行这个代码,但我收到以下错误:

错误使用fopen
无效的文件名。

initialise_FE错误(第4行)
fid_nas = fopen(fevars.nas_filename,'w');%make nastran文件

Lattice_cell错误(第58行)
misc.fid_nas = initialise_FE (FEvars nodes_unique element_radius);

lattice_gui_v0a_extended> generate_callback中出现错误(第105行)
lattice_cell(handles.lattice,handles.fevars,handles.misc);

gui_mainfcn错误(第95行)
函数宏指令(变长度输入宗量{:});

Lattice_GUI_v0a_extended错误(第42行)
gui_mainfcn(gui_state,varargin {:});

错误
matlab.graphics.internal.figfile.FigFile /阅读> @ (hObject eventdata) Lattice_GUI_v0a_extended (generate_Callback, hObject、eventdata guidata (hObject))
在评估UIControl回调时出错。

还有其他人遇到过这个问题吗?如果有,你是如何解决的?

感谢您的帮助

朱莉

与代码一样,我需要一个基本3d桁架(尺寸nxmxl)的节点和连接器列表,这很好。Lattice_node_connections对于更大的格的一些快速的速度改进-

使用新变量而不是任何结构.ABC,因为Matlab结构可能很慢。
例子:
LCX = lattice.csize.x;

此外,如果你将所有循环并行化,你的速度也会大幅提高,尽管你只能得到唯一的节点。你可以进一步将整个循环平行化,但你将获得越来越少的回报。对于FCC 5x5x5,它是100倍快,而且差距随着尺寸增长而增长。下面是FCC的一个例子:

elsefif strcmpi(lattice.ctype,'fcc')%face ened cubic
对于n = 1:大小(nodes_unique,1)-1
j = n + 1:大小(nodes_unique,1);
I = 1(大小(J)) * n;
Lnew =√总和(nodes_unique(我,:)-nodes_unique (J:)) ^ 2, 2));
J(〜((lnew <(sqrt((lcx / 2)^ 2 +(lcy / 2)^ 2)+ meb)&...
Lnew >(√(LCX / 2) ^ 2 + (LCY / 2) ^ 2) -MEb) &……
总和(abs (nodes_unique(我,:)-nodes_unique (J,:)) = = [LCX / 2 LCY / 2 0), 2) = = 3 &…
REM(nodes_unique(i,3),lcz)== 0)| ...
(Lnew <(√(LCX / 2) ^ 2 + (LCZ / 2) ^ 2) + MEb) &……
Lnew >(√(LCX / 2) ^ 2 + (LCZ / 2) ^ 2) -MEb) &……
总和(abs (nodes_unique(我,:)-nodes_unique (J,:)) = = [LCX / 2 0 LCZ / 2), 2) = = 3 &…
快速眼动(nodes_unique(2),我LCY) = = 0) |…
(LNEW <(SQRT((LCY / 2)^ 2 +(LCZ / 2)^ 2)+ MEB)&...
lnew>(sqrt((lcy / 2)^ 2 +(lcz / 2)^ 2)-meb)&...
总和(abs (nodes_unique(我,:)-nodes_unique (J,:)) = = [0, LCY / 2, LCZ / 2), 2) = = 3 &…
快速眼动(nodes_unique(我,1),LCX) = = 0))) = [];
connection_nodes_unique = [connection_nodes_unique; n *的(大小(J)), J ');
结尾

江李韩

江李韩

嗨这个程序对我非常有帮助。
我正在学习创建三维结构模型。
你能分享更多关于这个项目的细节吗?
我想创造更多不同的模型。

亚历克斯·H

嗨,这对我来说非常有帮助。谢谢你开发这个。

然而,有时会出现这些错误。有时不会。

---------------------------
错误使用dialogCellstrHelper
预期的输入是以下类型之一:

char、细胞

而是它的类型是双倍的。

dialogCellstrHelper错误(第10行)
validateattributes (inputStr{“字符”,“细胞”},{2 d的},mfilename);

消息框错误(第62行)
BodyTextString = DialogCellStrhelper(Inputstr);

lattice_cell错误(第186行)
对话框(字符串,“点阵生成器”,“模态”)

lattice_gui_v0a_extended> generate_callback中出现错误(第105行)
lattice_cell(handles.lattice,handles.fevars,handles.misc);

gui_mainfcn错误(第95行)
函数宏指令(变长度输入宗量{:});

Lattice_GUI_v0a_extended错误(第42行)
gui_mainfcn(gui_state,varargin {:});

错误
matlab.graphics.internal.figfile.FigFile /阅读> @ (hObject eventdata) Lattice_GUI_v0a_extended (generate_Callback, hObject、eventdata guidata (hObject))
评估UIControl回调时出错

嗨杰伊,谢谢你的反馈!是的,在此功能中,端部留下打开(孔),但您不应该看到倒置的正常。在我注意到的新版本的Matlab中有一些交叉,在新版本的Matlab中,但没有机会改变。我不相信它的影响整体运作。
如文档中所述,端部可以通过填充孔函数在像meshlab(或磁性,如果您有它)的程序中的填充孔函数可以容易地填充。Matlab的实施是有点笨拙,所以它并不包括在这里..抱歉。

Jay Muller.

非常感谢您的工作 - 这似乎是一个很棒的工具。但是,在我的Matlab版本(2015A)上,只生成边缘,但没有顶点/角点,留下结构断开连接。此外,当我检查所生成的STL时出错(例如,在例如魔法中),它检测到众多反转的正常,孔和坏边缘。有没有较新的版本可以修复这些问题?

MATLAB版本兼容性
创建R2011b
与任何版本兼容
平台兼容性
窗户 macOS Linux.
致谢

灵感来自:geom3d四元数

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!