xml version="1.0" encoding="utf-8" standalone="yes"12bet++博客-首页原创精华区http://www.fometaux.com/专注于12bet技术zh-cnSun, 23 Jun 2019 02:39:26 GMTSun, 23 Jun 2019 02:39:26 GMT6012bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/06/15/rvmtranslator7_1.htmleryareryarSat, 15 Jun 2019 02:04:00 GMThttp://www.fometaux.com/eryar/archive/2019/06/15/rvmtranslator7_1.htmlhttp://www.fometaux.com/eryar/comments/216404.htmlhttp://www.fometaux.com/eryar/archive/2019/06/15/rvmtranslator7_1.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216404.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216404.html

RvmTranslator7.1

eryar@163.com

 

RvmTranslator can translate the RVM file exported by AVEVA Plant(PDMS)/AVEVA Marine to STEP, IGES, STL, DXF, 3D PDF, OBJ, 3DXML, IFC,.etc. So it can be used for exchanging model data between other CAD software, such as Autodesk AutoCAD, Plant3d, 3ds Max, CATIA, Solidworks, Pro/E, Unity3d, .etc.

RvmTranslator可以将AVEVA PDMS/Plant/Marine中导出的RVM文件进行可视化,以及将RVM转换成常见的三维文件格式。如STEPIGESSTLDXF, OBJ, 3DPDF, 3DXML, IFC等,便于与其他CAD系统进行数据交换,如Autodesk AutoCAD, Plant3d, 3ds Max, CATIA, Solidworks, Pro/E, Unity3d, Bentley等。

RvmTranslator7.1修复了设计树上中文显示问题:

下载RvmTranslator7.1: https://share.weiyun.com/5I8biQw

 


为了方便大家在移动端也能看到我的博文和讨论交流,现已注册微信公众号,欢迎大家扫描下方二维码关注。
Shing Liu(eryar@163.com)


eryar 2019-06-15 10:04 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/06/03/lineplaneint.htmleryareryarMon, 03 Jun 2019 08:40:00 GMThttp://www.fometaux.com/eryar/archive/2019/06/03/lineplaneint.htmlhttp://www.fometaux.com/eryar/comments/216393.htmlhttp://www.fometaux.com/eryar/archive/2019/06/03/lineplaneint.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216393.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216393.htmlOpenCASCADE直线与平面求交

在《解析几何》相关的书中都给出了直线和平面的一般方程和参数方程。其中直线的一般方程有点向式形式的。

由于过空间一点可作且只能作一条直线平行于已知直线,所以当直线上一点(x0, y0, z0)和它的一方向向量(m,n,p)为已知时,直线就完全确定了。所以在OpenCASCADE中直线类gp_Lin有一个构造函数:

gp_Lin (const gp_Pnt &P, const gp_Dir &V) 即通过点和方向来构造直线。由直线的点向式方程容易导出直线的参数方程:

其中OpenCASCADE的直线是用参数方程来表示的。

同理对于平面而言,过空间一点可以作而且只能作一平面垂直于一已知直线,所以平面的一点(x0,y0,z0)和它的一个法线方向(A, B, C)为已知时,平面就完全确定了。所以平面方程也有点向式的:

从一个点和两个不共线的向量确定一个平面作为讨论的出发点,可以得出平面的参数方程:

 

如上图所示,已知一个点M0(x0,y0,z0),向量v1(x1,y1,z1)和向量v2(x2,y2,z2),我们来求点M0和向量V1V2确定的平面方程。点M(x,y,z)在平面上的充要条件是向量M0MV1, V2共面。因为向量V1, V2不平行,所以共面的充要条件是存在唯一的一对实数u, v使:

向量M0MV1V2共面的充要条件是:

根据平面的参数方程可知,要确定一个平面从参数方程的角度来看需要一个点和两个方向。从参数方程推导出一般方程的过程也是计算平面一般方程系数的方法。

根据直线的参数方程及平面的一般方程可以推导出直线与平面交点的计算公式,推导过程如下:

从上面的推导过程可以看出,计算直线与平面的交点主要就是计算参数t,当t求出后代入直线参数方程即可得到交点坐标。从参数t的计算公式可知,有个特殊情况就是分母为零的情况,此时是直线与平面平行共面需要特别处理。

OpenCASCADE中提供了直线与平面求交的计算类IntAna_IntConicQuad,其实现源码如下:

 

void IntAna_IntConicQuad::Perform (const gp_Lin& L, const gp_Pln& P,
                                   const Standard_Real Tolang,
                                   const Standard_Real Tol,
                                   const Standard_Real Len) {
  // Tolang represente la tolerance angulaire a partir de laquelle on considere
  // que l angle entre 2 vecteurs est nul. On raisonnera sur le cosinus de cet
  // angle, (on a Cos(t) equivalent a t au voisinage de Pi/2).
  
  done=Standard_False;
  Standard_Real A,B,C,D;
  Standard_Real Al,Bl,Cl;
  Standard_Real Dis,Direc;
  P.Coefficients(A,B,C,D);
  gp_Pnt Orig(L.Location());
  L.Direction().Coord(Al,Bl,Cl);
  Direc=A*Al+B*Bl+C*Cl;
  Dis = A*Orig.X() + B*Orig.Y() + C*Orig.Z() + D;
  //
  parallel=Standard_False;
  if (Abs(Direc) < Tolang) {
    parallel=Standard_True;
    if (Len!=0 && Direc!=0) {
      //check the distance from bounding point of the line to the plane
      gp_Pnt aP1, aP2;
      //
      aP1.SetCoord(Orig.X()-Dis*A, Orig.Y()-Dis*B, Orig.Z()-Dis*C);
      aP2.SetCoord(aP1.X()+Len*Al, aP1.Y()+Len*Bl, aP1.Z()+Len*Cl);
      if (P.Distance(aP2) > Tol) {
        parallel=Standard_False;
      } 
    }
  }
  if (parallel) {
    if (Abs(Dis) < Tolang) {
      inquadric=Standard_True;
    }
    else {
      inquadric=Standard_False;
    }
  }
  else {
    parallel=Standard_False;
    inquadric=Standard_False;
    nbpts = 1;
    paramonc [0] = - Dis/Direc;
    pnts[0].SetCoord(Orig.X()+paramonc[0]*Al,
                     Orig.Y()+paramonc[0]*Bl,
                     Orig.Z()+paramonc[0]*Cl);
  }
  done=Standard_True;
}

 

从上述代码中可以看出其计算思路也是先计算参数t,还加了一个特殊用法,即当参数Len!=0且参数t的分母!=0时重新判断直线与平面的平行状态。这个用法虽然有平行状态的重新判断,但是如果不平行没有计算交点的处理。所以使用这个函数时,参数Len可以用默认值0,即不用这段处理逻辑。还有个不严谨的地方是这里的实数判断没有用区间判断法。



eryar 2019-06-03 16:40 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/05/29/rvmtranslator_obj.htmleryareryarWed, 29 May 2019 13:04:00 GMThttp://www.fometaux.com/eryar/archive/2019/05/29/rvmtranslator_obj.htmlhttp://www.fometaux.com/eryar/comments/216387.htmlhttp://www.fometaux.com/eryar/archive/2019/05/29/rvmtranslator_obj.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216387.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216387.htmlRvmTranslator7.0-OBJ

eryar@163.com

 

RvmTranslator can translate the RVM file exported by AVEVA Plant(PDMS)/AVEVA Marine to STEP, IGES, STL, DXF, 3D PDF, OBJ, 3DXML, IFC,.etc. So it can be used for exchanging model data between other CAD software, such as Autodesk AutoCAD, Plant3d, 3ds Max, CATIA, Solidworks, Pro/E, Unity3d, .etc.

 

RvmTranslator可以将AVEVA PDMS/Plant/Marine中导出的RVM文件进行可视化,以及将RVM转换成常见的三维文件格式。如STEPIGESSTLDXF, OBJ, 3DPDF, 3DXML, IFC等,便于与其他CAD系统进行数据交换,如Autodesk AutoCAD, Plant3d, 3ds Max, CATIA, Solidworks, Pro/E, Unity3d, Bentley等。

OBJ文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的互导,也可以通过Maya读写。比如你在3dsMaxLightWave中建了一个模型,想把它调到Maya里面渲染或动画,导出OBJ文件就是一种很好的选择。目前几乎所有知名的3D软件都支持OBJ文件的读写,不过其中很多需要通过插件才能实现。RvmTranslator可以将PDMS模型转换成OBJ格式。

 

上图为RvmTranslator转换的工厂模型。

上图为RvmTranslator转换的船体模型。

 

Download RvmTranslator

 https://share.weiyun.com/5fcHSBC



eryar 2019-05-29 21:04 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/05/29/occ_license_faq.htmleryareryarWed, 29 May 2019 13:03:00 GMThttp://www.fometaux.com/eryar/archive/2019/05/29/occ_license_faq.htmlhttp://www.fometaux.com/eryar/comments/216386.htmlhttp://www.fometaux.com/eryar/archive/2019/05/29/occ_license_faq.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216386.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216386.htmlOpenCASCADE License FAQs

 

经常用人问我使用OpenCASCADE开发商业软件是否需要付费,下面从OpenCASCADE的官方网站上截取其回答翻译成中文,官方网址:https://www.opencascade.com/content/faqs 

 

翻译统一将Open CASCADE Technology简称为 OCCT

 

OCCT许可与GPL兼容吗?

是的,从版本6.7.0开始,OCCT是根据GNU LGPL版本2.1的条款(以及一些小的附加权限)发布的,因此它与GNU GPL版本2及更高版本完全兼容。

但是,OCCT版本6.6.0及更早版本是根据自定义许可证(OCCT Public License)发布的。 该许可在目的和意图方面类似于GNU LGPL,但与GNU GPL不兼容。

 

我可以使用OCCT根据GPLLGPL或其他许可(包括专有)分发我的软件产品吗?

是的你可以。 但是,您应始终确保最终产品许可证符合产品中使用的库的许可证要求。 从版本6.7.0开始,OCCT根据GNU LGPL版本2.1的条款(以及一些小的附加权限)发布,使用该库的软件产品的要求在LGPL文本的第6部分中描述。 如果您的最终产品的许可与其中使用的库的许可有任何冲突,您需要采取措施(例如,对此类最终产品许可进行适当的修改)以解决任何矛盾。

如果有疑问并避免可能的误解,请联系我们获取建议,我们很乐意回答您对此事可能有的任何疑问。

 

我可以使用Open CASCADE技术制作商业产品并进行销售吗? 如果是,是否有任何限制?

是的,您可以在商业应用程序中使用Open CASCADE技术(OCCT)库,而无需支付任何开发许可费或运行时费或版税。您的义务是要明确注意您的软件使用Open CASCADE技术(OPEN CASCADE公司的商标),在您的产品中提供OCCT许可证的副本,并遵循许可证本身的其他要求。 从版本6.7.0开始,此许可证是GNU LGPL版本2.1(具有一些小的附加权限)。另请注意,OCCT使用“系统要求”页面上列出的第三方组件。 第三方组件的使用受其相应许可证的约束。

 

 

如果我想发布自己使用OCCT的软件,我是否有义务重新分发整个安装包,或者我只能分发我需要的部分代码?

这样是允许的并期望您仅分发你的程序使用到的库和资源。

 

 

我对OCCT的使用是否会侵犯任何其他许可或专利?

您不需要任何特定的安排来使用OCCT开源分发中包含的任何算法。多年来,我们一直没有听说过客户或用户使用Open CASCADE技术的任何专利问题。

 

 

我是否有义务使用OCCT的时候开源应用程序的完整源代码?

不,你不是。 披露您的应用程序源代码的决定取决于您。



eryar 2019-05-29 21:03 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/05/29/projlib.htmleryareryarWed, 29 May 2019 13:02:00 GMThttp://www.fometaux.com/eryar/archive/2019/05/29/projlib.htmlhttp://www.fometaux.com/eryar/comments/216385.htmlhttp://www.fometaux.com/eryar/archive/2019/05/29/projlib.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216385.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216385.htmlOpenCASCADE点向平面投影

 

OpenCASCADEProjLib类提供了解析曲线(直线、圆、椭圆、抛物线、双曲线)向解析曲面(平面、圆柱面、圆锥面、球面、圆环面)投影的功能,主要用来计算三维曲线在二维参数空间的参数。

 

其中点向平面投影是最简单的情况,本文主要介绍点向平面投影的注意事项。ProjLib类是个工具类,因为其函数都是静态函数。点向平面投影很简单,直接用ProjLib::Project(aPlane, aPoint)即可。

 

其实现代码如下:

gp_Pnt2d  ProjLib::Project(const gp_Pln& Pl, const gp_Pnt& P)
{
  Standard_Real U, V;
  ElSLib::Parameters(Pl, P, U, V);
  return gp_Pnt2d(U,V);
}
inline void ElSLib::Parameters(const gp_Pln& Pl,
          const gp_Pnt& P,
          Standard_Real& U,
          Standard_Real& V) {
  ElSLib::PlaneParameters(Pl.Position(),P,U,V);
}
void ElSLib::PlaneParameters (const gp_Ax3& Pos,
         const gp_Pnt& P,
         Standard_Real& U,
         Standard_Real& V)
{
  gp_Trsf T;
  T.SetTransformation (Pos);
  gp_Pnt Ploc = P.Transformed (T);
  U = Ploc.X();
  V = Ploc.Y();
}

从上面的代码可以看出,点向平面投影实现就是将点变换到平面所在的坐标系中。使用这个类向平面投影要注意的事项是平面的构造。平面gp_Pln有如下构造函数:

 

默认构造函数:构造了一个XOY平面

基于一个坐标系gp_Ax3构造平面

基于一个点和一个方向构造平面

基于平面的系数方程,即AX+BY+CZ+D=0

前两个构造函数很清晰,而第三个构造函数即基于一个点和一个方向构造平面的方式没有明确,注释不清晰。这里的方向指定了平面的法向,但是还缺少一个方向来确定一个坐标系,所以使用这个构造函数来生成平面的时候,需要理解其生成另外一个方向的算法是不是自己需要的。

gp_Pln::gp_Pln (const gp_Pnt& P,
  const gp_Dir& V)
{
  Standard_Real A = V.X();
  Standard_Real B = V.Y();
  Standard_Real C = V.Z();
  Standard_Real Aabs = A;
  if (Aabs < 0) Aabs = - Aabs;
  Standard_Real Babs = B;
  if (Babs < 0) Babs = - Babs;
  Standard_Real Cabs = C;
  if (Cabs < 0) Cabs = - Cabs;
  //  pour determiner l'axe X :
  //  on dit que le produit scalaire Vx.V = 0. 
  //  et on recherche le max(A,B,C) pour faire la division.
  //  l'une des coordonnees du vecteur est nulle. 
  if( Babs <= Aabs && Babs <= Cabs) {
    if (Aabs > Cabs)  pos = gp_Ax3 (P, V, gp_Dir (-C,0., A));
    else              pos = gp_Ax3 (P, V, gp_Dir ( C,0.,-A));
  }
  else if( Aabs <= Babs && Aabs <= Cabs) {
    if (Babs > Cabs)  pos = gp_Ax3 (P, V, gp_Dir (0.,-C, B));
    else              pos = gp_Ax3 (P, V, gp_Dir (0., C,-B));
  }
  else {
    if (Aabs > Babs)  pos = gp_Ax3 (P, V, gp_Dir (-B, A,0.));
    else              pos = gp_Ax3 (P, V, gp_Dir ( B,-A,0.));
  }
}

当这里确定平面坐标系的方式与需要的不一致时,在使用投影算法的时候就会产生问题。



eryar 2019-05-29 21:02 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/04/18/compile_occ730_vs2008.htmleryareryarWed, 17 Apr 2019 23:17:00 GMThttp://www.fometaux.com/eryar/archive/2019/04/18/compile_occ730_vs2008.htmlhttp://www.fometaux.com/eryar/comments/216353.htmlhttp://www.fometaux.com/eryar/archive/2019/04/18/compile_occ730_vs2008.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216353.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216353.html

Compile OpenCASCADE7.3 with VS2008

eryar@163.com

 

1. 概述

OpenCASCADE的源码文件夹中有个adm文件夹,里面提供了各个平台中编译源码的项目文件。其中在Windows操作系统中使用微软的Visual Studiomsvc文件夹中提供了VS相应版本的项目文件。所以在使用批处理对OpenCASCADE源码进行编译的时候,会根据vc的版本来启动相应版本的visual studio。如果文件夹中没有对应的VS版本,就打不开相应的VS

 

在最新版本的OpenCASCADE7.3.0中,没有提供VS2008的项目文件。所以对于想将OpenCASCADE用于老的系统,如XP系统中时,或者主程序是用VS2008编译的,这时就需要将OpenCASCADEVS2008来编译了。

2. 生成VS项目

其实OpenCASCADEVS项目都是采用Tcl脚本生成的,而且生成的脚本里面还保留了对VS2008的支持。下面就介绍一下如何生成VS项目。在OpenCASCADE源码文件夹中有个批处理文件genproj.bat

 

由于这个批处理会调用Tcl文件中的命令,所以需要将Tcl加入到环境变量PATH中以便于运行Tcl脚本文件中的命令。如上图中

SET "PATH=%PATH%;D:\OpenCASCADE-7.3.0\tcltk-86-64\bin;"

就是将Tcl加入到PATH的一种方法,配置好这个就可以直接双击genproj.bat,运行截图如下:

 

根据genproj.bat中的注释可知genproj还可以带上参数,第一个参数是VS编译器的版本,第二个参数是操作系统。我们要生成Windows操作系统中VS2008的项目,所以输入参数:

genproj vc9 wnt

这样就生成了VS2008的项目了!

 


为了方便大家在移动端也能看到我的博文和讨论交流,现已注册微信公众号,欢迎大家扫描下方二维码关注。
Shing Liu(eryar@163.com)


eryar 2019-04-18 07:17 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/04/08/wuhan_ocade_intro.htmleryareryarMon, 08 Apr 2019 03:34:00 GMThttp://www.fometaux.com/eryar/archive/2019/04/08/wuhan_ocade_intro.htmlhttp://www.fometaux.com/eryar/comments/216344.htmlhttp://www.fometaux.com/eryar/archive/2019/04/08/wuhan_ocade_intro.html#Feedback4http://www.fometaux.com/eryar/comments/commentRss/216344.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216344.html武汉欧凯德信息科技有限公司

武汉欧凯德信息科技有限公司取名来源于OpenCASCADE的音译,主要提供开源几何造型库OpenCASCADE相关的咨询、培训和定制开发服务。Open意为开放分享,正是因为分享,为他人创造价值才会有更多的回报。将会继续分享OpenCASCADE的一些技巧和实现原理,共同进步。

 

目前公司的产品有:

l RvmTranslator

RvmTranslator可以将AVEVA PDMS/Plant/Marine中导出的RVM文件进行可视化,以及将RVM转换成常见的三维文件格式。如STEPIGESSTLDXF, OBJ, 3DPDF, 3DXML, IFC等,便于与其他CAD系统进行数据交换,如Autodesk AutoCAD, Plant3d, 3ds Max, CATIA, Solidworks, Pro/E, Unity3d, Bentley等。

1 RvmTranslator程序界面

 

2 RvmTranslator转换的3DXML到达索系统

3 RvmTranslator转换的STEPCATIA

4 RvmTranslator 转换的IFC

 

l IsoAlgo

IsoAlgopiping Isometric drawing generation Algorithm的简称,意为管道轴测图出图算法。国际主流的管道轴测图出图程序ISOGEN是英国一家公司开发的,现被Intergraph收购,而Intergraph也在2010年被美国公司Hexagon收购。ISOGEN作为相对成熟的软件,也存在一些问题,如环管出图成折线,以及客户的一些定制化要求不能及时反馈等。IsoAlgo具有自主知识产权,全面兼容ISOGEN的输入,如管道数据文件PCFIDF,以及SKEY定义文件。IsoAlgo生成管道轴测图如下:






通过程序IsoAlgo3d方便地将PCF/IDF可视化,更便捷的显示出管道信息。以及基于IsoAlgo3d定制开发相关的焊点管理程序。

定制开发

随着国内版权意识的提高以及本地化的一些标准规范要求,考虑成本和效率,有越来越多的定制化开发服务。成功案例有:

v GIM建模

随着国家电网数字化三维设计的推广,提出了GIM三维设计标准,为了满足国网GIM工程数字化移交,为某公司定制开发了GIM建模功能:

v FORAN定制

FORAN是一款3D造船软件,FORAN软件由西班牙SENER集团开发,该公司以船舶设计起家,已有50年的历史,具有40多年的造船CAD软件开发和应用经验。目前在进行软件开发和应用的同时,仍然承接船舶设计项目。FORAN软件是世界上应用最为广泛的大型造船专业软件之一,全球用户包括了120家以上的设计公司和造船厂,近年来更以较快的速度在全球推广。

定制开发了全面支持FORAN几何宏及NORM参数化模型,方便直接访问FORAN的数据库,脱离FORAN环境进行三维可视化。

 

船舶管子零件图

船舶管子零件图也称小票图,零件图上除了图形及其标注外,还应包括管材规格、弯管数据、校管数据、表面处理、安装位置等信息。

 



eryar 2019-04-08 11:34 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/04/02/pdms2dialux.htmleryareryarTue, 02 Apr 2019 08:19:00 GMThttp://www.fometaux.com/eryar/archive/2019/04/02/pdms2dialux.htmlhttp://www.fometaux.com/eryar/comments/216327.htmlhttp://www.fometaux.com/eryar/archive/2019/04/02/pdms2dialux.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216327.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216327.htmlAVEVA PDMS to DIALux

eryar@163.com

  Abstract. DIAL develops DIALux - the world's leading software for planning, calculation and visualisation of indoor and outdoor lighting. With a community of over 700,000 users, the light planning tool is available in 25 languages and is free of charge for users. All renowned luminaire manufacturers offer digital product data for planning in DIALux. The software makes professional lighting design easier and accessible to everyone. As a platform and tool, it connects planners and manufacturers all over the world. DIALux is available as a desktop version and as a basic mobile app.

DIALux can import model by IFC, so use RvmTranslator to convert PDMS model to IFC format and imported by DIALux for lighting calculation.

Key Words. DIAlux, IFC, RvmTranslator

1. Introduction

首席灯光环境模拟与计算软件DIALux德国DIAL研发,能满足照明设计的所有需求:从标准化的室内、户外或街道的照明规划与计算,到专业的灯光设计、视觉立体化、能量评估,模拟效果接近真实,方便设计师验证各种特殊用法,导出报告,全方位协助设计师高效完成创作。

DIALux完全免费开放下载,有含中文在内的26种语言版本,在全球有100多万用户,在中国大陆有10万多名用户,用户主要包含照明设计师、建筑师、工程公司等,是全球领先的照明规划与计算软件。

 

PDMS主要用于工厂辅助设计,其中也会涉及到仪表、电气专业。通过使用RvmTranslator可以快速地将PDMS模型导入DIALux软件进行灯光照明设计。

2. PDMS to IFC

RvmTranslator7.0可以将PDMS模型转换成IFC格式,IFC主要用于BIM的数据交换,所以灯光设计软件DIALux为了方便导入其他软件创建的建筑模型,增加了IFC导入的功能。使用IFC导入功能,就可以导入PDMS的模型了。

上图为RvmTranslator转换的示例模型成IFC文件。

 

上图所示为导入RvmTranslator转换的IFC文件到DIALux.

3. Showcase

DIALux软件生成的光照效果很逼真,下面给出几个实际工厂的光照效果的例子:

 

 

4. Download

直接在搜索引擎中输入RvmTranslator7.0,即可以找到下载地址。



eryar 2019-04-02 16:19 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/hlong/archive/2019/04/02/216326.html中国民工中国民工Mon, 01 Apr 2019 23:26:00 GMThttp://www.fometaux.com/hlong/archive/2019/04/02/216326.htmlhttp://www.fometaux.com/hlong/comments/216326.htmlhttp://www.fometaux.com/hlong/archive/2019/04/02/216326.html#Feedback0http://www.fometaux.com/hlong/comments/commentRss/216326.htmlhttp://www.fometaux.com/hlong/services/trackbacks/216326.html阅读全文

188bet.com 2019-04-02 07:26 发表评论
]]>
12bet++博客-首页原创精华区http://www.fometaux.com/eryar/archive/2019/03/30/gltf.htmleryareryarSat, 30 Mar 2019 13:47:00 GMThttp://www.fometaux.com/eryar/archive/2019/03/30/gltf.htmlhttp://www.fometaux.com/eryar/comments/216324.htmlhttp://www.fometaux.com/eryar/archive/2019/03/30/gltf.html#Feedback0http://www.fometaux.com/eryar/comments/commentRss/216324.htmlhttp://www.fometaux.com/eryar/services/trackbacks/216324.htmlGLTF简介

1.glTF(GL TransmissionFormat),即图形语言交换格式,它是一种3D内容的格式标准,由Khronos Group管理(Khronos Group还管理着OpenGL系列、OpenCL等重要的行业标准);

2.glTF的设计是面向实时渲染应用的,尽量提供可以直接传输给图形API的数据形式,不再需要二次转换;

3.glTF对OpenGL ES、WebGL非常友好;

4.glTF的目标是:3D领域的JPEG;

5.作为一个标准,自2015年10月发布(glTF 1.0)以来,已经得到了业界广泛的认可,你可以相信它的水平;

6.glTF目前最新版本为2.0已于2017年6月正式发布。

GLTF具体的数据存储格式可以去官方网站上看:https://www.khronos.org/gltf/,大概就是相对于XML的JSON存储方式。

 

文章关注的是GLTF给我们带来的便利——节约存储空间,减少带宽压力。

那么如何获得GLTF格式文件?

目前已经有了很多的转换工具:

 

其中Input代表输入模型的格式,输出为gltf格式。由于之前使用过Dae格式的文件(https://www.khronos.org/collada/),因此文章选取COLLADA2GLTF工具转换文件:

 

千万别纠结于工具源代码的编译,因为KhronosGroup已经给出了Release版本。这里说一些使用方法:

1.解压zip文件,在根目录新建dae文件夹——用于存放原始的dae文件

2.在根目录新建gltf文件夹——用于存放转换后的gltf文件

3.在根目录按住Ctrl+Shift+Alt+鼠标右键,打开PowerShell窗口

4.在命令行中输入:./collada2gltf-bin.exe input.dae output.gltf –i dae/input.dae –o gltf/output.gltf

其中input为dae文件的名称,output为输出gltf文件的名称。

5.Enter开始转换。

PS C:\Users\Ruby\Desktop\COLLADA2GLTF-v2.1.2-windows-Release-x64>./COLLADA2GLTF-bin.exe elf.dae elf.gltf -i dae/elf/elf.

dae -o gltf/elf.gltf

Convertingdae\elf\elf.dae -> gltf\elf.gltf

Time: 320 ms

原始dae文件包含4个jpg贴图一共2.46M,转换后为一个单独的gltf文件约1.38M(含贴图)。其实我很好奇那些贴图文件去哪儿了,于是打开了gltf文件查看,发现在image数组下已经把这些贴图文件用base 64编码,变成一堆机器码直接插在gltf文件中。

完成模型转换以后,利用ThreeJS的LoadGLTF API导入网页中浏览效果如下: 

如何在GLTF格式中捕获动画?

上述过程展示了从Collada到gltf的转换以及让gltf模型展示在网页上。下面将继续研究如何获取gltf模型的动画("Talk is cheap,show me the code"——哈哈哈) 

效果如图所示:

至此,gltf从模型到动画都run了一遍。

 

总结

GLTF格式号称3D图形界的JPEG,能够实现快速的模型数据交换。在2017年中旬更新的2.0版本克服了一些低版本的功能缺陷,使得自身功能得到发展;同时,gltf解析及转换Tool的快速发展,为GLTF的进一步推广做出了很多的贡献。文中也应证了,作为GLTF格式的用户,能够利用现有的工具对模型处理,减少模型的数据量,在WebGL的应用中在成倍地节省带宽的同时能够获取同质量的模型以及动画。

 

原文:https://cloud.tencent.com/developer/news/204942

 



eryar 2019-03-30 21:47 发表评论
]]>