最近在做基于自定义属性的二次开发,注意到提取自定义属性值可以通过两种方法来获得。
第一:调用kcs_dex模块,使用关键字抽取数据;
第二:对象的属性来获取,即kcs_att.string/real/integer_get()来获取。
这两种方法的原理和区别是什么呢?
考虑到面向对象编程思想:
new obj([参数])是创建一个对象
obj.name是获取属性值
obj.Name([参数]),是调用方法
基于面向对象的编程思想来考虑问题,各专业的模型本身就是一个对象,比如panel,structure,pipe等,所以这两种方式底层就是对象。
看一条数据抽取命令:STR('1550').ITEM('LUGF144-ACCG-1BPF').GRO(1).PART,
STR(1550')不就是传入一个参数,创建对象吗
ITEM('LUGF144-ACCG-1BPF')不就是传递一个字符串类型的数据并调用方法吗,关键是这个方法返回一个对象,即STR('1550').ITEM('LUGF144-ACCG-1BPF')执行后返回一个对象,跟str.UPPER().TRIM.()类似,每执行一个方法后返回一个新对象,同理STR('1550').ITEM('LUGF144-ACCG-1BPF').GRO(1)也是一个对象,XX.PART调用属性,即获取属性值。
每个船体的板架,舾装的structure模型等都是一个对象。通过对象给属性设置,取值。
所以tribon二次开发最后都是回到对象操作,习以为常的数据抽取命令,最后回归到对象,神不神奇,意不意外。但有一点需要注意,数据抽取命令都是读取值,不能写入值,而且值的类型也有限。
既然数据抽取最后回归到对象,那么取值很可能是在方法中通过sql语句取值,vitesses中应该封装了非常多的对象。我们可以尝试将tribon这次的关键字抽取命令都转换成类,通过对象来取值和设值。
回归编程思想,用面向对象编程思想看待二次开发
回归编程思想,用面向对象编程思想看待二次开发
回归编程思想,用面向对象编程思想看待二次开发
重点在于:
1.模型数据的存储形式,是如何存储的?是目前常见的数据库和数据表吗(通过SQL语句增删改查)?但从工程初始化的时候好像不涉及数据库和数据边,而是以四种格式的文)的形式存放的,如ogdb数据库,四种文件是ogdb.dat、ogdb.eob、ogdb.idx、ogdb.lck。从文字意思上看ogdb.idx中idx应该是idex是存放索引的,ogdb.lck中lck应该是lock即锁,锁是干嘛的呢?例如船体建模是需要先激活板架,激活板架就是给板架加锁了,其他人就不能编辑板架了。
M3数据库是记录信息的载体,在M3系统每一个数据文件都有IDX,DAT,EOB,LCK四种文件组成。其中IDX,DAT为索引文件,EOB是真正的数据文件。具体的数据都存储在EOB文件中。
2.模型的基本对象都封装在哪里?
我…悟了...