Midas GTS NX 的中性FPN文件转为 FLAC3D5.0的模型 c++源码 (FPN to FLAC3D) | 您所在的位置:网站首页 › 迈达斯cdn导入模型无法运行怎么解决 › Midas GTS NX 的中性FPN文件转为 FLAC3D5.0的模型 c++源码 (FPN to FLAC3D) |
FPN文件转为 FLAC3D5.0的模型
1.使用方法 新增:依据Midas中的网格组,将FLAC3D的模型进行分组的程序,无需再填写属性,数据导出之前一定要执行步骤(1), (链接:https://pan.baidu.com/s/1JDsgstUYOtqw_Efcd-jXJg 提取码:6j3h ),2019.4.22, 有问题加群:956765008。 (1)数据导出之前:网格->工具->重新编号:单元、节点
请剖分的时候给网格组赋属性,这样才能在flac3d中正确分组,或者直接使用新的程序。 (2)打开MIDAS GTS NX 软件,单击界面左上角的NX图标,将模型输出为FPN格式的文件。 (请查看FPN文件的大小,确认里面是否存有节点和单元等数据,有时候会导出空的FPN文件)
(3)双击打开 FPNtoFLAC3D.exe ,输入FPN文件名称,回车,程序将自动开始读取文件,并转换为FLAC3D5.0文件。
(注意:FPNtoFLAC3D.exe 和 FPN文件放在同一个文件夹) (保存在当前目录下)
2.可以直接运行的程序
https://pan.baidu.com/s/1nrCkDTBWkw4XluWV9lpD6Q
3.完整程序
https://pan.baidu.com/s/1u9Vq1eKkmkan2-gtygdOQA
4.以下为程序源码 /************************************************************************/ /* 将Midas的FPN中性文件转为FLAC3D文件 2018.4.7 */ /************************************************************************/ #include #include #include #include #include #include using namespace std; class CVert // 节点 { public: CVert() {}; CVert(int Id, double xx, double yy, double zz) { id = Id; x = xx; y = yy; z = zz; }; ~CVert(){}; double x, y, z; // 点坐标 int id; } ; class CElem // 单元 { public: CElem(){}; CElem(int Id, int teta, int ph, string ele, int *nid) { id = Id; polyhedron = ph; tettattribute = teta; pt012[0] = nid[0] - 1; pt012[1] = nid[1] - 1; pt012[2] = nid[2] - 1; pt012[3] = nid[3] - 1; pt012[4] = nid[4] - 1; pt012[5] = nid[5] - 1; pt012[6] = nid[6] - 1; pt012[7] = nid[7] - 1; }; ~CElem(){}; int pt012[8]; int id; int tettattribute; int polyhedron; string elemname; } ; void printinformation() { cout hex[2] >> scom >> hex[3] >> scom; fin >> hex[4] >> scom >> hex[5] >> scom >> hex[6] >> scom >> hex[7] >> scom; fin >> scom >> scom >> scom >> scom >> scom; } if(lintext == "PRISM") { polyhedron = 6; fin >> scom >> id >> scom >> attribute >> scom; fin >> hex[0] >> scom >> hex[1] >> scom >> hex[2] >> scom >> hex[3] >> scom; fin >> hex[4] >> scom >> hex[5]; } if(lintext == "PYRAM") { polyhedron = 5; fin >> scom >> id >> scom >> attribute >> scom; fin >> hex[0] >> scom >> hex[1] >> scom >> hex[2] >> scom >> hex[3] >> scom >> hex[4] >> scom; } if(lintext == "TETRA") { polyhedron = 4; fin >> scom >> id >> scom >> attribute >> scom; fin >> hex[0] >> scom >> hex[1] >> scom >> hex[2] >> scom >> hex[3] >> scom >> scom; } if (lintext == "TETRA" || lintext == "PYRAM" ||lintext == "PRISM" ||lintext == "HEXA") { eles.push_back(CElem(id, attribute, polyhedron, lintext, hex)); for (int j = 0; j < GroupNum.size(); j++) { if (attribute == GroupNum[j]) { gp = true; break; } } if (!gp) GroupNum.push_back(attribute); } fin >> lintext; } fin.close(); cout> hex[2] >> scom >> hex[3] >> scom >> scom; } if (lintext == "TETRA" || lintext == "PYRAM" ||lintext == "PRISM" ||lintext == "HEXA") { eles.push_back(CElem(id, attribute, polyhedron, lintext, hex)); /*for (int j = 0; j < GroupNum.size(); j++) { if (attribute == GroupNum[j]) { gp = true; break; } } if (!gp) GroupNum.push_back(attribute);*/ } fin >> lintext; } cout scom>> scom>> scom>> scom>> scom>> scom; cout lintext; } fin >> lintext; } fin.close(); //******************************************************************************************************************************************/ //* midas to FLAC3D*/ cout |
CopyRight 2018-2019 实验室设备网 版权所有 |