• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            Distribution of Data Through OCAF Tree

            OCAF數(shù)據(jù)的分配

            eryar@163.com

            一、作者注 Annotation

            本文檔主要用于說(shuō)明OCAFOpen CASCADE Application Framework)中數(shù)據(jù)模型的選擇問(wèn)題。另外,以一個(gè)例子來(lái)說(shuō)明OCAF的標(biāo)準(zhǔn)屬性的使用和創(chuàng)建OCAF新的屬性。

            作者假設(shè)讀者已經(jīng)熟悉OCAF的一些基礎(chǔ)知識(shí)。

            二、簡(jiǎn)介 Introduction

            OCAFOpen CASCADE Application Framework)是為快速程序開(kāi)發(fā)(Rapid Application Development)而提供的一些類。OCAF實(shí)現(xiàn)如下功能:撤銷、重做、復(fù)制、剪切、粘貼、保存文檔、打開(kāi)文檔等等。

            OCAF基于標(biāo)簽-屬性(Label-Attribute)模型。標(biāo)簽組成樹(shù)。在OCAF文檔中,屬性用于保存用戶的數(shù)據(jù),且屬性綁定在標(biāo)簽上。

            本文檔描述了數(shù)據(jù)保存在OCAF文檔中應(yīng)考慮的注意事項(xiàng):

            1. 是使用標(biāo)準(zhǔn)屬性還是創(chuàng)建自定義的新的屬性?

            2. 如何優(yōu)化數(shù)據(jù)的存儲(chǔ)來(lái)提高時(shí)間和空間上效率,和程序的運(yùn)行速度?

            三、概述Description

            當(dāng)開(kāi)始設(shè)計(jì)基于OCAF的程序時(shí),對(duì)于數(shù)據(jù)的存儲(chǔ)通常要面臨這樣的選擇:是使用標(biāo)準(zhǔn)屬性還是根據(jù)需要自己創(chuàng)建新的屬性?在給出這個(gè)問(wèn)題的答案之前,先簡(jiǎn)要回顧一下OCAF的標(biāo)準(zhǔn)屬性:

            所有基本數(shù)據(jù)類型都在OCAF中表示為標(biāo)準(zhǔn)屬性:

            u 整數(shù)Integer

            u 實(shí)數(shù)Double

            u 字符串String

            u 整數(shù)數(shù)組Array of integer values

            u 實(shí)數(shù)數(shù)組Array of double values

            u 字符串?dāng)?shù)組Array of string values

            u 拓樸形狀Topological shapes

            除了拓樸形狀屬性外,其它屬性都在Toolkit TKLCAFPackage TDataStd中:

            u 整數(shù)屬性:TDataStd_Integer

            u 實(shí)數(shù)屬性:TDataStd_Real

            u 字符串屬性:TDataStd_AsciiStringTDataStd_Expression

            u 整數(shù)數(shù)組:TDataStd_IntegerArray

            u 實(shí)數(shù)數(shù)組:TDataStd_RealArray

            u 字符串?dāng)?shù)組:TDataStd_ExtStringArray

            細(xì)心的讀者可能發(fā)現(xiàn)沒(méi)有Boolean類型,因?yàn)橥ǔS?b>Integer來(lái)代替了。

            所以使用OCAF的標(biāo)準(zhǔn)屬性可以用來(lái)定義任何模型。但是這樣定義對(duì)內(nèi)存的使用、程序運(yùn)行速度、及使用的方便性上來(lái)說(shuō)是否合適?還是要根據(jù)特定的模型具體分析。

            OCAF只有一個(gè)限制:每種屬性一個(gè)標(biāo)簽只能包含一個(gè)。即只能給一個(gè)標(biāo)簽定義一個(gè)整數(shù)屬性,一個(gè)實(shí)數(shù)屬性等。所以有必要考慮程序數(shù)據(jù)樹(shù)的設(shè)計(jì)。例如:一個(gè)標(biāo)簽有幾個(gè)實(shí)數(shù)值,是把這幾個(gè)實(shí)數(shù)值分別存儲(chǔ)到子標(biāo)簽中還是使用一個(gè)實(shí)數(shù)數(shù)組來(lái)存儲(chǔ),都是需要事先考慮周全。

            考慮同一個(gè)模型在OCAF中不同的存儲(chǔ)方法,并分析每種方法的優(yōu)缺點(diǎn)。

            四、不同方法的比較與分析Comparison and Analysis of Approaches

            這里描述了定義模型的兩種方式:一種是基于OCAF標(biāo)準(zhǔn)屬性;另一種是創(chuàng)建新的屬性。

            A load is distributed through the shape。量度由坐標(biāo)(x, y, z)來(lái)定義。Load通過(guò)由每點(diǎn)的局部坐標(biāo)系投影到X-、Y-和Z-軸上來(lái)表示。一個(gè)由局部坐標(biāo)系轉(zhuǎn)換到世界坐標(biāo)系的矩陣也可能需要,但這是可選的。

            所以,每個(gè)點(diǎn)上有15個(gè)數(shù)值需要被存儲(chǔ)。若這樣的點(diǎn)有100000個(gè),則在OCAF文檔中需要存儲(chǔ)1500000個(gè)數(shù)值。

            第一種方式是使用OCAF的標(biāo)準(zhǔn)屬性。使用標(biāo)準(zhǔn)屬性也有幾種不同的方式:

            1. 使用實(shí)數(shù)數(shù)組屬性來(lái)存儲(chǔ)這1500000個(gè)數(shù),并將這個(gè)實(shí)數(shù)數(shù)組綁定到一個(gè)標(biāo)簽;如下圖1所示。

            2. 將每組15個(gè)值用一個(gè)實(shí)數(shù)數(shù)組屬性存儲(chǔ),并將每個(gè)實(shí)數(shù)數(shù)組綁定到每個(gè)標(biāo)簽上;如下圖2所示。

            3. 使用實(shí)數(shù)數(shù)組屬性來(lái)存儲(chǔ)每個(gè)點(diǎn)的(XYZ)3個(gè)坐標(biāo)值,并將其綁定到標(biāo)簽;局部坐標(biāo)系到世界坐標(biāo)系的投影軸的3個(gè)值也使用實(shí)數(shù)數(shù)組屬性來(lái)存儲(chǔ),并將其綁定到子標(biāo)簽上;同樣地,變換坐標(biāo)系的9個(gè)值也用實(shí)數(shù)數(shù)組屬性存儲(chǔ),并也將其綁定到子標(biāo)簽上;如下圖3所示。

            4. 當(dāng)然,其它方法也是可行的。

            圖1 使用一個(gè)數(shù)組屬性來(lái)存儲(chǔ)所有數(shù)據(jù)

            第一種方法是把所有數(shù)據(jù)都用一個(gè)實(shí)數(shù)數(shù)組屬性來(lái)存儲(chǔ)。這種方法的優(yōu)點(diǎn)是節(jié)省了初始內(nèi)存,并且易于實(shí)現(xiàn)。但是數(shù)據(jù)的訪問(wèn)很不方便,還需要為取得相應(yīng)數(shù)據(jù)來(lái)定個(gè)專門的類來(lái)處理。如果程序需要對(duì)這些值進(jìn)行編輯,這就意味著整個(gè)數(shù)組在每次編輯時(shí)都需要備份,這會(huì)導(dǎo)致內(nèi)存的使用快速增加。所以,這種方式可能只能用于數(shù)據(jù)不需要編輯的程序。

            圖2 為每個(gè)數(shù)據(jù)點(diǎn)使用一個(gè)數(shù)組屬性及一個(gè)標(biāo)簽

            考慮每個(gè)數(shù)據(jù)點(diǎn)作為一個(gè)標(biāo)簽的第二種方式。這種情況需要?jiǎng)?chuàng)建100000個(gè)標(biāo)簽,每個(gè)標(biāo)簽上綁定了一個(gè)包含15個(gè)實(shí)數(shù)的實(shí)數(shù)數(shù)組屬性。如圖2所示。

            現(xiàn)在數(shù)據(jù)的編輯要安全些,且內(nèi)存的使用也在考慮之中。每個(gè)數(shù)據(jù)點(diǎn)的編輯(任意值:point coordinate, load, and so on)的備份也只是一個(gè)小的實(shí)數(shù)數(shù)組。但是這種結(jié)構(gòu)需要更多的內(nèi)存空間,因?yàn)槭褂煤芏嗟臉?biāo)簽和屬性。

            另外,數(shù)據(jù)的訪問(wèn)還是不方便,也需要一個(gè)類來(lái)處理數(shù)據(jù)的訪問(wèn)。

            圖3 存儲(chǔ)數(shù)據(jù)到不同的數(shù)組屬性中

            第三種方式的數(shù)據(jù)存儲(chǔ)如圖3所示。在這種情況下引入了子標(biāo)簽,數(shù)據(jù)的訪問(wèn)變得容易了,不需要為此專門設(shè)計(jì)一個(gè)類來(lái)訪問(wèn)所需要的數(shù)據(jù)了。

            這種方式一方面為屬性分配更多的內(nèi)存;另一方面,在數(shù)據(jù)編輯需要備份時(shí)節(jié)省了內(nèi)存。所以,若程序中所有數(shù)據(jù)都可以修改,則這種方式會(huì)更好。

            圖4 使用自定義屬性

            在下結(jié)論之前,考慮使用自定義屬性來(lái)表示這個(gè)模型的方式。

            例如,可以將每組15個(gè)值作為一個(gè)自定義屬性綁定到標(biāo)簽上。與使用標(biāo)準(zhǔn)屬性的第三種方式相比,自定義屬性的方法使用更少的內(nèi)存,因?yàn)橹皇褂昧艘粋€(gè)屬性而不是三個(gè)屬性。

            使用標(biāo)準(zhǔn)屬性的第二種方式還有些不足:當(dāng)編輯數(shù)據(jù)時(shí),每個(gè)點(diǎn)的所有數(shù)據(jù)都被備份,不管有些數(shù)據(jù)有沒(méi)有被修改。

            當(dāng)有些不可編輯的數(shù)據(jù),最好將之與可編輯的數(shù)據(jù)分開(kāi)存儲(chǔ)。數(shù)據(jù)編輯備份時(shí)將不會(huì)對(duì)不可編輯的數(shù)據(jù)進(jìn)行備份,這樣在編輯時(shí)內(nèi)存就會(huì)有所減少了。

            五、結(jié)論Conclusion

            當(dāng)確定選擇使用哪種數(shù)據(jù)模型時(shí),需要考慮程序響應(yīng)時(shí)間、內(nèi)存分配與內(nèi)存在事務(wù)處理中的使用。大部分模型只使用OCAF的標(biāo)準(zhǔn)屬性已經(jīng)足夠。其它需要特別處理的模型需要定義OCAF新屬性。

            欧美久久久久久| 久久亚洲精品视频| 日本亚洲色大成网站WWW久久| 国产精品久久久天天影视| 久久精品国产99国产电影网| 国产亚洲精午夜久久久久久| 久久人与动人物a级毛片| 久久久久高潮毛片免费全部播放| 久久婷婷国产麻豆91天堂| 九九精品99久久久香蕉| 国产成人99久久亚洲综合精品| 污污内射久久一区二区欧美日韩 | 欧美亚洲国产精品久久蜜芽| 国产欧美久久一区二区| 日本道色综合久久影院| 久久精品无码一区二区app| 77777亚洲午夜久久多喷| 久久久久亚洲AV无码专区网站| 精品久久久久久无码不卡| 久久播电影网| 亚洲国产成人精品女人久久久| 日本欧美久久久久免费播放网 | 亚洲精品国精品久久99热| 亚洲精品国产自在久久| 久久九九全国免费| AV狠狠色丁香婷婷综合久久| 久久99国产精品久久99小说| 亚洲精品无码久久毛片| 色播久久人人爽人人爽人人片aV | 久久久精品人妻一区二区三区蜜桃 | 奇米影视7777久久精品| 2021久久精品免费观看| 精品久久久久久久久免费影院| 久久久久噜噜噜亚洲熟女综合 | 精品国产VA久久久久久久冰| 三上悠亚久久精品| 热re99久久6国产精品免费| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲午夜久久久久久久久电影网 | 久久亚洲国产精品五月天婷| 久久综合给合综合久久|