当前位置: 首页 > news >正文

医疗网站怎么做seo搭建网站开发网站环境

医疗网站怎么做seo,搭建网站开发网站环境,外贸服装网站开发,网站免费建站系统FastCAE使用gmsh进行网格划分#xff0c;划分的时候直接启动一个新的gmsh进程#xff0c;个人猜测这么设计是为了规避gmsh的GPL协议风险。 进行网格划分时#xff0c;其大体运行如下图#xff1a; 一、Python到gmshModule模块 GUI操作到Python这步不再分析#xff0c;比…FastCAE使用gmsh进行网格划分划分的时候直接启动一个新的gmsh进程个人猜测这么设计是为了规避gmsh的GPL协议风险。 进行网格划分时其大体运行如下图 一、Python到gmshModule模块 GUI操作到Python这步不再分析比较简单。执行的Python代码大概如下 gmsher Mesher.Gmsher() gmsher.setDim(3) gmsher.selectedAll() gmsher.setElementType(Tet) gmsher.setElementOrder(1) gmsher.setMethod(1) gmsher.setSizeFactor(1) gmsher.setMinSize(0) gmsher.setMaxSize(100) gmsher.cleanGeo() gmsher.startGenerationThread()这些代码可以在控制台找到如下图 这样创建了一个gmsher对象赋予网格划分的控制参数最后调用startGenerationThread()方法这个方法的源码在Mesher.py文件中。对于三维问题会调用gmshModule模块的接口GenerateMesh3D()。gmshModule同样提供了针对二维、流体网格的划分接口代码在GmshPy.h文件中如下图所示。 二、启动gmsh线程写出gmsh文件生成网格 在GmshPy::GenerateMesh3D()函数中只是准备网格划分的参数最后会调用到GmshModule::generateSlot()函数中。 void GmshModule::generateSlot(GMshPara *para) {GmshThread *thread iniGmshThread(para);auto processBar new ModuleBase::ProcessBar(_mainwindow, tr(Gmsh Working...));_threadManager-insertThread(processBar, thread); // 运行gmsh线程 }// 初始化gmsh线程 GmshThread *GmshModule::iniGmshThread(GMshPara *para) {if (_threadManager-isRuning()){delete para;ModuleBase::Message m(Common::Message::Error, QString(Gmsh is running !));emit printMessageToMessageWindow(m);}GmshThread *thread new GmshThread(_mainwindow, _preWindow, this, para-_dim);thread-setPara(para);delete para;return thread; }在GmshModule::generateSlot函数中会初始化一个线程并启动运行。 再打开GmshThread的run方法大体流程就是合并几何对象形成一个TopoDS_Compound对象调用BRepTools::Write写出geometry.brep文件。写出gmsh控制文件最后调用gmsh命令生成网格文件。 void GmshThread::run(){this-mergeGeometry(); // 写出几何文件this-initGmshEnvoirment(); // 写出gmsh的控制文件this-generate(); // 执行gmsh命令}void GmshThread::mergeGeometry(){QString exelPath QCoreApplication::applicationDirPath();const QString tempDir exelPath /../temp/;QDir dir(tempDir);if (!dir.exists())dir.mkpath(tempDir);// 清理之前的临时文件const QString meshfilename exelPath /../temp/mesh.vtk;if (QFile::exists(meshfilename))QFile::remove(meshfilename);const QString geofilename exelPath /../temp/geometry.brep;if (QFile::exists(geofilename))QFile::remove(geofilename);const QString gmshfilename exelPath /../temp/gmsh.Geo;if (QFile::exists(gmshfilename))QFile::remove(gmshfilename);const QString tempPath tempDir QString(geometry.brep);if (_fluidMesh)_fluidMeshProcess-mergeFluidField(_compounnd, _solidHash);else if (_selectall)mergeAllGeo(); // 将需要划分网格的组成一个compounnd对象else if (_selectvisible)mergeVisibleGeo();elsemergeSelectGeo();QByteArray arr tempPath.toLatin1();BRepTools::Write(*_compounnd, arr.data()); // 使用BRepTools写出geometry.brep文件}void GmshThread::initGmshEnvoirment(){QString exelPath QCoreApplication::applicationDirPath();const QString tempDir exelPath /../temp/;// const QString gmshDir exelPath /gmsh/;QFile::remove(tempDir gmsh.Geo);_scriptWriter-setCompound(_compounnd);setGmshScriptData();if (_fluidMesh){QListint curve _fluidMeshProcess-getInerMember(1);QListint surface _fluidMeshProcess-getInerMember(2);_scriptWriter-writeFluidMeshScript(tempDir, _solidHash, curve, surface);}else_scriptWriter-writeGmshScript(tempDir); // 写出gmsh控制文件}void GmshThread::generate(){QString exelPath QCoreApplication::applicationDirPath();const QString tempDir exelPath /../temp/;// const QString gmshDir exelPath /gmsh/;QString gmshexe exelPath /gmsh;bool ok false; #ifdef Q_OS_WINok QFile::exists(gmshexe .exe); #endif #ifdef Q_OS_LINUXok QFile::exists(gmshexe); #endifif (!ok){QMessageBox::warning(_mainwindow, QString(tr(Warning)), QString(tr(Gmsh is not exist !)));return;}// 调用gmsh生成网格QString startProcess QString(%1 %2 -format vtk -bin -o %3 -%4).arg(gmshexe).arg(tempDir gmsh.Geo).arg(tempDir mesh.vtk).arg(_dim);if (gmshexe.contains( ))startProcess QString(\%1\).arg(startProcess);qDebug() startProcess;_process.start(startProcess);}最后调用的gmsh命令大体如下生成mesh.vtk网格文件。 C:/workspace/FastCAE/build/Debug/gmsh C:/workspace/FastCAE/build/Debug/…/temp/gmsh.Geo -format vtk -bin -o C:/workspace/FastCAE/build/Debug/…/temp/mesh.vtk -3 三、读取网格文件 读取网格文件代码在GmshThread::readMesh函数中注意执行这段代码时gmsh线程已经结束了。 void GmshThread::readMesh() {MeshData::MeshData *data MeshData::MeshData::getInstance();QString exelPath QCoreApplication::applicationDirPath();const QString fileName exelPath /../temp/mesh.vtk;QTextCodec *codec QTextCodec::codecForName(GB18030);QByteArray ba codec-fromUnicode(fileName);vtkSmartPointervtkDataSetReader vtkReader vtkSmartPointervtkDataSetReader::New();vtkReader-SetFileName(ba);vtkReader-Update();vtkDataSet *dataset vtkReader-GetOutput();if (dataset nullptr)return;if (!_isSaveToKernal)emit writeToSolveFileSig(dataset);else{auto k new MeshData::MeshKernal();k-setName(QString(Mesh_%1).arg(k-getID()));k-setMeshData(dataset);data-appendMeshKernal(k);if (!_fluidMesh)setGmshSettingData(k);emit _gmshModule-updateMeshTree();emit _gmshModule-updateSetTree();// emit _preWindow-updateMeshActorSig();emit _gmshModule-updateActions();emit updateMeshActor();} }由于gmsh输出的是vtk文件这里直接使用vtkDataSetReader读取的。
http://www.hkea.cn/news/14456958/

相关文章:

  • 网站在哪里建立网站设计策划书3000字
  • 有个网站做彩盒的铁路建设网站
  • 网站建设合同编号高端网站建设过程
  • 建站之星网站成品分离笫三性WordPress
  • e4a能建设网站吗网页开发工作室
  • 百度小程序还需要做网站吗怎么搞自己的网站
  • 礼品做便宜的网站少儿编程价格表
  • 系统官网网站模板下载安装自己怎么建立个人网站
  • asp access网站开发实例精讲中关村网站建设
  • 网站设计包括什么网站查询入口
  • 网站推广四个阶段电子邮箱怎么申请
  • 无锡建设银行网站简述什么叫市场营销
  • 建一个网站要多少钱营销团队名字
  • 深圳网站定制建设针对不同网站的cdn加速
  • 个人网站建设制作个人如何做seo推广
  • 商务网站建设的基本流程图驾校网站模板
  • 深圳网站建设李天亮网站快速优化排名免费
  • 淘宝网站的建设目标企业网站推广方案上海
  • 做旅游网站毕业设计wordpress网站下载文件
  • 深圳网站营销型建设中方建设局网站
  • 常见的网站开发工具有哪些东莞网站建设企业
  • 怎么制作个人求职网站metro大都会app
  • 哈尔滨口碑好的网站建设中国北京出啥大事了
  • 花都微网站建设系统官网网站模板
  • 写手机版网站的静态页面兴化网站制作
  • 怎么做快法务类似网站多用户分布式网站开发
  • 做商城的网站程序做网站平台的公司
  • 有关电子商务网站建设的 论文姜堰做网站
  • 18成禁人养成游戏手游网站优化一般怎么做
  • 创业过程中网站建设甘肃兰州地震最新消息刚刚