S3D仪表符号开发小记

在工程设计中,通常需要根据实际仪表厂家资料图纸进行符号开发。

PDMS中,如下截图所示,仪表的定制、测试都在PARAGON模块下可视化编辑。而S3D目前也引入界面操作的工具,但笔者暂时并未掌握,且为了更好的说明底层的逻辑,笔者使用了传统.NET开发过程,并将结果记录分享如下。

目标说明:如下截图所示,目标开发上/下两种表皮温度计。

开发步骤:

  1. 1.    增加引用及namespace 等基本设定。

Namespace 可以自定义。但是新编制class需要继承CustomSymbolDefinition

  1. 2.    整体结构说明

  2. A.   Definition of Inputs

此处定义元件中用户交互的参数/part表格中使用的参数。此处需要注意:CustomInterfacesSymbolParameter中名称定义尽量自己给写,不要用诸如HandwheelAngle 或是Operator***等字眼,说不上什么原因就会与内置已有的一些值冲突导致BULKLOAD出错。

  1. B.   Definition of Aspects and their
    Outputs

此处定义元件中每一部分具体显示类型(实体/保温等)。

具体格式如下:

Aspect(Name,
Description, Aspect ID)

SymbolOutput(Name,
Description)

  1. C.    Definition of
    ConstructOutputs() Sub

此处即元件开发主体。

注意事项:a.建议使用try-catch进行错误捕捉

         b.可以使用同一dll对近似符号统一编制,只需要基于partDataBasis进行多条件跳转即可。本例即适用此情况。

  1. 3.    符号定义

符号的开发可以使用“搭积木”方式执行,几个要点:

  1. A.   使用UtilityFunctions.GetPipingPortData获取PORT相关信息,如DN等值。

  2. B.    实体常用Graphics3D 类(CreateBox /CreateCylinder /CreateRevolution等)

  3. C.   单位注意:距离默认使用m,因此程序中应该常见小数

  4. 4.    编译测试

需要如下表格:

InstrumentClassDataPipingCommodityMatlControlDataCustomInterfaces、自定义的PART(对于tag 的方式无需要设置R-Hierarchy

对于InstrumentClassData,示例如下截图,RequisitionType为必须项。如果使用TAG+CC直接用5即可,不要给10(只有tag的用10),否则会出现放置错误。

注意dll更新后将partm更新下,不然旧有的程序不替换。(不知道是不是延迟的原因)

  1. 5.    结果示例:

数字化工程设计公众号二维码
原文链接:查看原文  文章来源:数字化工程设计
🔗 分享 0

上5篇 more...

下5篇 more...