Tribon二次开发-面向对象

        最近在做基于自定义属性的二次开发,注意到提取自定义属性值可以通过两种方法来获得。

         第一:调用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.模型的基本对象都封装在哪里?
我…悟了...

你可能感兴趣的:(Tribon二次开发,python)