Tribon用户自定义属性在Tribon中称作user-defined attributes或者Customer Defined Attributes,用户可以定义属性模板(attribute template)并给模板赋值绑定到模型上。最早我在国内看到有人将用户自定义属性用于Tribon二次开发的是广船国际红帆电脑公司的江峰,他的一篇论文《基于Tribon M3的舾装设计出图系统的实现》中提到了使用用户自定义属性保存模型信息。我有幸曾在镇江的船舶CAD年会上与他有一面之缘,江峰在论文中提出使用用户自定义属性以及.NET结合Python进行Tribon二次开发的思路,后来深刻影响了我们的开发方向。又过了一段时间,听外高桥张世超说NeilSoft也是使用用户自定义属性来记录模型信息,当时外高桥正在和NeilSoft谈Cabin模块的合作。NeilSoft是我认为最优秀的Tribon Vitesse二次开发公司,该公司有人直接参与了Tribon的开发工作。我相信NeilSoft应该更早将用户自定义属性用于Tribon二次开发。目前,我们参数化建模程序都是用用户自定义属性来保存模型信息,数据用于后期统计。

其实用户自定义属性应用到实际开发中已经有很长一段时间了,早在07年我在龙船论坛里面推荐过(论坛帖子链接),还发布了封装Vitesse操作的类代码。近期又有朋友问起来,我才想总结一下。

1.         创建模板

创建模板的方法请参见Tribon M3–User's Guides中Toolkit Preference -> Attribute Templates章节,这里我们在本地工程中使用New Category创建Structure分类,并在Structure上右键New Template输入PipeSupport创建管支架模板。在模板上New Data创建两个属性:ChineseName和Weight,数据类型分别为String和Integer。OK保存。如图所示:

2.         使用SodrAttribute.py给模板赋值绑定模型

pipeSupportName = "SPT_SUPP_LAB_8090"

model = KcsModel.Model("struct", pipeSupportName)

sa = SodrAttribute.SodrAttribute(model, 'Structure', 'PipeSupport')

attDict = {

'ChineseName': "管支架",

'Weight': 100

}

sa.SetAtt(attDict)

kcs_ui.message_noconfirm(sa.GetAtt())

实例化一个管支架模型的Model,传入SodrAttribute,调用SetAtt方法将属性字典里面的值赋给模板,使用GetAtt方法可读取属性,返回属性字典。

3.         COM数据抽取

如果要在Tribon外部提取用户自定义属性的数据,就要使用Data Extraction。数据抽取的关键字为:.USER_ATT[RIBUTE](i)

4.         工程迁徙

在某个Tribon工程里面设置好的模板保存在SB_SETTINGS_DB库中,如果有模板工程,在每次新建工程将Setting库拷贝到新工程下即可。如果工程配置有变化,也可以将用户自定义属性保存到.sbd文件中,在新建工程里面使用Database Utility导入。用户自定义属性是用TEMPLATE开头-后面N个数字,下面是摘自Tribon文档中的一段话:

Recreate template database

This function must be used when attribute template objects have been copied from another project.

To copy all attribute templates from one project into another use a Tribon Database Utility and copy all objects named TEMPLATE-nnnnn from the settings database in the other project into the SB_SETTINGS_DB database. After the copy, recreate the template database using this function.

5.         快捷方式

用户自定义属性可在Tribon菜单Tools -> Data Management -> Attributes查看,也可以添加快捷方式,用户自定义属性的Function ID是33982,在Trigger里面的代码如下:

kcs_gui.toolbar_button_std_add(sdr_toolbar, 7, 33982, "attribute.ico", "Attribute")

如果有能力,可针对不同的模板,编写界面操作属性数据,例如我们针对直梯开发的属性修改界面:

Tribon用户自定义属性综述相关推荐

  1. RocketMQ快速入门之消息过滤器(用户自定义属性)

    默认配置下,不支持自定义属性,需要设置开启: #加入到broker的配置文件中 enablePropertyFilter=true package cn.learn.rocketmq.filter;i ...

  2. ABAQUS学习记录1——用户子程序综述

    概述 ABAQUS提供了相当丰富的单元类型,材料属性等数据库可供用户选择,但是工程问题是千变万化的,为了满足用户的特殊工程要求,ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBR ...

  3. 用户自定义属性表结构设计_属性类型定制及其妙用

    引擎版本 4.22.0 属性类型定制简介 在介绍属性类型定制前先了解下引擎提供的默认的详细布局. 默认详细布局 只要我们的UPROEPRTY类型是值类型,编辑器系统就会在详细面板为你创建一个默认布局. ...

  4. Python 数据挖掘之电力窃漏电用户自动识别

    Python 数据挖掘之电力窃漏电用户自动识别 综述 拉格朗日插值 决策树模型 LM神经网络模型 结果 决策树模型结果图 LM神经网络模型结果图 综述 对电力公司数据进行挖掘分析,首先使用拉格朗日插值 ...

  5. 速卖通html自定义属性,速卖通自定义属性怎么填?有哪些需要注意的地方?

    在速卖通开店后,卖家需要销售新产品.在填写商品属性时,最好将每一个信息都填写完整,这样买家就可以更好的在商店里找到商品.商品信息中有一个自定义属性.我应该如何填写? 首先,商家应尽可能填写产品的基本属 ...

  6. php js attr,jquery属性与自定义属性操作:attr()和removeAttr()

    jquery属性与自定义属性操作:attr()和removeAttr() 预备知识: 读取器,设置器 1. 有一些函数,可以根据参数的数量不同,执行不同的功能,返回不同的值,类似于功能重载 2. 传入 ...

  7. C#的自定义属性AttributeUsage用法

    [AttributeUsage( // AttributeUsage是.net定义的特性的内置特性说明,可以叫特性的元特性.AttributeTargets.All,// 应用到的 程序元素[必选], ...

  8. SpringBoot/Spring Cloud/Docker

    第九阶段模块一 SpringBoot 1. SpringBoot基本应用 1.1 约定优于配置 ​ 官方: Spring Boot 是所有基于 Spring 开发的项目的起点.Spring Boot ...

  9. What's Great 2012

    原文发布时间:2011/12/20  16:32:10 "What's Great"是FME某个特定版本的新功能的罗列,这里是针对FME Desktop 2012的新功能介绍. 提 ...

最新文章

  1. 凯明MAE被超越了?字节跳动iBOT刷新十几项SOTA
  2. 波士顿动力副总裁:机器人一天就学会了芭蕾舞,尚未使用机器学习技术
  3. java 连接两个arraylist,java – 在两个线程之间共享一个ArrayList?
  4. SpringBoot:Could not autowire there is more than one bean of xx type
  5. 解决iview中</Input>标签报错的方法
  6. java 检测目录下的文件_如何在Java中检查文件是目录还是文件
  7. vs2015 中无法链接strcasecmp 和 strncasecmp的解决办法
  8. 生成特定区间的随机数
  9. 负载均衡之LVS详解
  10. 暗影精灵4如何调节风扇转速_关于解决暗影精灵4散热问题。
  11. 计算机卡死后自动关机,电脑经常卡住自动关机怎么办
  12. SATA M2 SSD 无法安装系统的解决方法
  13. 英雄联盟 python 刷等级_自从学了python,我再也不缺英雄联盟的皮肤了
  14. car | 线性回归(三)——残差分析和异常点检验
  15. PyImport_ImportModule
  16. 国外程序员推荐:每个程序员都应读的书
  17. 苹果iOS App上架流程,非iOS开发人员上架教程
  18. 【四】零基础上手HAL库之—GPIO按键
  19. 通过源码理解 vue beforecreated 周期与 created 周期之间发生了什么
  20. android 替换全局字体

热门文章

  1. 品牌营销策划如何做才会成功?
  2. 关于python实现CRC32Mpeg2的应用和总结
  3. 类似大众点评 58 美团 等应用的城市选择器 — Edit
  4. 一些垃圾堆收集出来的,未来可能要用的MiME类型
  5. 【NOI2008】【BZOJ1061】志愿者招募
  6. JUC并发编程:Condition的简单理解与使用
  7. D2550安装Centos7
  8. 注册成为Windows Phone开发者并且解锁Windows Phone 8.1手机
  9. Asp调用存储过程,command.CreateParameter 参数值的类型说明
  10. Qt/C++编写地图综合应用48-地球模式、三维模式、地铁模式