摘要:
Aveva Marine是Aveva公司收购Tribon公司之后,整合了M3和PDMS两大模块。现在AM解决方案在船舶和海洋工程行业应用日趋成熟,这得益于M3在船体结构方面的成熟市场,和PDMS在舾装管系方面的强大。
1.前言
M3在船舶生产设计中已经被普遍使用,并且得到行业中的一致认可。由于M3是基于欧洲的造船工艺开发,在国内十几年的引进使用中,也进行了大量的二次开发。M3的二次开发主要基于Vitesse接口,一种基于Python语言的脚本程序。PDMS原先应用于虚拟工厂,石油管道布置等行业。对于这些行业PDMS有一套成熟的解决方案。PDMS内部提供了PML一种宏语言,来为客户提供二次开发的接口。
由于M3是被PDMS厂商进行收购,组合形成了AvevaMarine。在多年的使用软件和软件更新中,发现Aveva公司努力把M3中的数据结构,转变到PDMS的体系结构中。为了更好的使用和拓展AM软件,所以,作为船体设计者很有必要对新的数据变化进行研究。
2.PML语言
PML语言是Aveva公司自己开发的一种宏语言。目前,新的语言版本是 PML2,是一种面向对象的语言。相比其他语言PML有如下优势
优势1:语言是脚本语言,可以用记事本直接编写。而且不用编译,可以做到边编写,边调试。
优势2:PML语言具有很强的访问数据结构的能力,只需简单的一句话,就能获得需要得到的数据。
优势3:PML2是一种面向对象的语言,能够直接调用.net开发的接口函数。大大增强了PML的能力
3.船体结构标注
船体结构主要有板厚,筋,肘板等,对这些结构进行进行名称,材质,规格等信息标注是船体生产设计的主要工作内容。M3对标注提供接口有ConfigNote.py和Drafting中的note_new。这两个接口函数可调整的范围比较小,出来的结果也远不能满足设计上面的要求。其中ConfigNote.py本身就存在错误的接口,导致很多功能都无法实现。在实际设计中,也被用的比较少。我见过的很多开发标注程序,基本都是在图面绘制文字和线型。虽然能够满足出图要求,但是,标注信息与模型关联度不够。总觉得还差那么一点点。
4.利用PML对船体结构进行标注
4.1 PDMS中的GLAB和SLAB节点
节点Element在PDMS是一种带属性的数据结构。这些结构通过Explorer浏览器进行浏览。M3虽然也有节点的概念,但是是底层的数据结构存储模式,并不对设计员和开发者开放。而PDMS却是完全开放的。
GLAB和船体中的Note类似,是一种单行的标注方式,可以通过设置BTEXT属性值,匹配船体模型中的信息。如#FLNM() 显示模型元素的内部名。
SLAB是一种自定义的标注方式,通过自定义一种Symbol Library,在标注时就能够按照模板对结构进行标注。标注样式就是我们的模板样式。在这里我们使用SLAB进行出图标注。
4.2 利用PML对板材进行标注
第一步,我们需要建立一个SYTM为节点的符号模板。这个模板中使用#PrtIDl来匹配板材模型的零件名,#Thickn来匹配零件的厚度,#QuaTxt来匹配零件的材质。
第二步,选中View节点,新建一个Laye节点,在Laye节点下新建一个SLAB节点。
第三步,对SLAB节点进行属性设置
DDNM属性值设置为需要匹配的板材结构Ref
TMRF属性值设置为SYTM符号模板的Ref
这样一个SLAB就创建了,为了更好的自动化,在上面思路的基础上,我们也利用PMl进行了客户端开发。
5.小结
利用PML创建的SLAB来标注船体结构,能够自定义模板,并且标注的信息与模型直接相关联。在使用也发现PML开发相比Vitesse对船体模型进行开发,具有更大的优势。其中,Vitesse读取一个船体信息需要使用Keyword,这种方式非常死板,深度开发的解决方案都不是很好。而利用PMl读取模型信息,就方便了许多许多。
目前,PML开发船体插件,实际使用还是比较少得。这和历史原因有关。但是随着科技的发展,已经船厂对数字化设计要求的提高。我相信基于PML语言的船体插件将被更多的开发出来。