Midas GTS NX 的四面体模型转为 3DEC的模型 c++源码 (Tetrahedron to 3DEC)

Midas GTS NX 的四面体模型导入3DEC

 

1.使用方法->有问题加群:956765008

(1)数据导出之前:网格->工具->重新编号:单元、节点

 

Midas GTS NX 的四面体模型转为 3DEC的模型 c++源码 (Tetrahedron to 3DEC)_第1张图片

 

 

(2)数据格式

Midas GTS NX 的四面体模型转为 3DEC的模型 c++源码 (Tetrahedron to 3DEC)_第2张图片

 

(3)双击打开 Tet to 3DEC.exe ,输入节点文件名称:nl,和单元文件名称:el,回车,程序将自动开始读取。 

 

Midas GTS NX 的四面体模型转为 3DEC的模型 c++源码 (Tetrahedron to 3DEC)_第3张图片

(注意:Tet to 3DEC.exe 和 节点、单元文件放在同一个文件夹

 

Midas GTS NX 的四面体模型转为 3DEC的模型 c++源码 (Tetrahedron to 3DEC)_第4张图片

 

 

Midas GTS NX 的四面体模型转为 3DEC的模型 c++源码 (Tetrahedron to 3DEC)_第5张图片Midas GTS NX 的四面体模型转为 3DEC的模型 c++源码 (Tetrahedron to 3DEC)_第6张图片

 

 

2.//完整程序:

https://pan.baidu.com/s/1UHq2yiX7jyEo__HihYBVeA

 

3.//可以直接运行的程序:

https://pan.baidu.com/s/1MCQj4MB9Ue2pt_AuwD1Snw

 

 

4.//以下是完整代码

/************************************************************************/
/* 将Midas GTS NX 的四面体模型 转为 3DEC模型 2018.4.23 */
/************************************************************************/
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;


class CVert  // 节点
{
public:
	double x, y, z; 
	int id, pointattribute;
	CVert() {};
};

 class CElem  // 单元
 {
 public:
	int pt012[4];  
	int id, tettattribute;
	CElem() {};
};


void printinformation()
{
	
	cout<<"//************************************************************************//"<GroupNum;
	bool gp = false;

	int nVert, nTET;  //块体的节点和单元数量
	string filenamenode;
	string filenameele;
	string filename3dec;


	cout<<"\n请输入节点文件*.txt: ";
	cin>>filenamenode;
	ifstream finnode(filenamenode + ".txt");

	finnode >> nVert;
	PTS = new CVert[nVert];
	//读入点
	for (int i = 0; i < nVert; i++)
	{
		finnode >> id >> x >> y >> z;
		PTS[i].x = x;
		PTS[i].y = y;
		PTS[i].z = z;
	}
	finnode.close();

	cout<<"\t读入节点数量: "<< nVert <>filenameele;
	ifstream finele(filenameele + ".txt");

	GroupNum.push_back(0);

	finele >> nTET;
	TET = new CElem[nTET];
	for(int i = 0; i < nTET; i++)
	{
		gp = false;

		finele >> id >> id >> id0 >> id1>> id2>> id3;
		TET[i].pt012[0] = id0 - 1;
		TET[i].pt012[1] = id1 - 1;
		TET[i].pt012[2] = id2 - 1;
		TET[i].pt012[3] = id3 - 1;

		TET[i].tettattribute = id;


		for (int j = 0; j < GroupNum.size(); j++)
		{
			if (id == GroupNum[j]) 
			{
				gp = true; 
				break; 
			}
		}
		if (!gp) GroupNum.push_back(id);

	}
	finele.close();	
	
	cout<<"\t读入单元数量: "<< nTET <

 

你可能感兴趣的:(MIDAS,TO,3DEC)