• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于船舶設(shè)計(jì)軟件SPD 4.0的二次開(kāi)發(fā)

      2018-11-01 03:28:50彬,優(yōu)
      造船技術(shù) 2018年5期
      關(guān)鍵詞:物量二次開(kāi)發(fā)管子

      周 彬, 吳 優(yōu)

      (中船澄西船舶修造有限公司, 江蘇 江陰 214433)

      0 引 言

      船舶產(chǎn)品設(shè)計(jì)(Ship Product Design, SPD)軟件是能滿(mǎn)足船體結(jié)構(gòu)、機(jī)裝、電裝、居裝和甲裝等專(zhuān)業(yè)設(shè)計(jì)的三維全數(shù)字化產(chǎn)品模型軟件平臺(tái)。隨著SPD應(yīng)用的不斷深入,用戶(hù)對(duì)SPD的開(kāi)放性提出了更高的要求,因此SPD V4.0新增數(shù)據(jù)查詢(xún)二次開(kāi)發(fā)接口,使用戶(hù)可在獲取數(shù)據(jù)后根據(jù)實(shí)際需要對(duì)數(shù)據(jù)進(jìn)行篩選、排序、統(tǒng)計(jì)并輸出數(shù)據(jù)報(bào)表等,大大提升用戶(hù)與SPD間的交互能力。由于SPD已在船廠長(zhǎng)期使用,船廠的物量及管理數(shù)據(jù)結(jié)構(gòu)已趨于穩(wěn)定,與之配套的軟件也已形成,如果更換船舶設(shè)計(jì)軟件,會(huì)對(duì)原有的管理造成沖擊,船廠基本不會(huì)愿意更換。而且,幾乎沒(méi)有SPD二次開(kāi)發(fā)的交流平臺(tái),開(kāi)發(fā)人員無(wú)法方便地獲取資料,這也會(huì)對(duì)SPD獲取更多用戶(hù)造成影響。

      中船澄西船舶修造有限公司現(xiàn)行船舶設(shè)計(jì)軟件為SPD V4.0,在載重量82 000 t船的生產(chǎn)設(shè)計(jì)中,利用C#語(yǔ)言對(duì)SPD進(jìn)行軟件的二次開(kāi)發(fā),主要為突破生產(chǎn)設(shè)計(jì)瓶頸,提高設(shè)計(jì)人員效率,同時(shí)獲取實(shí)際需要的數(shù)據(jù)。

      1 SPD軟件二次開(kāi)發(fā)接口

      SPD V4.0提供SpdCustomization.dll和SpdArxCustomization.dll等2個(gè)DLL文件作為數(shù)據(jù)查詢(xún)二次開(kāi)發(fā)接口,提供基于模型和基于產(chǎn)品數(shù)據(jù)庫(kù)的2種數(shù)據(jù)提取方式。2種提取方式的特點(diǎn)有:模型數(shù)據(jù)完整,提取效率較低;產(chǎn)品數(shù)據(jù)庫(kù)的數(shù)據(jù)不完整,提取效率較高。用戶(hù)可根據(jù)不同需求選擇提取方式。SPD軟件的管子模型數(shù)據(jù)提取流程如圖1所示(產(chǎn)品數(shù)據(jù)結(jié)構(gòu)樹(shù)和其他模型數(shù)據(jù)均類(lèi)似)。

      圖1 管子模型數(shù)據(jù)提取流程

      源代碼如下:

      Project m_proj = new Project();

      m_proj.Open(string projectname);

      ModelFile mdf = m_proj.OpenModelFile

      (string modelname,SpecialityIdx.Pipe) ;

      For (mdf.RewindRec(); mdf.GetRecState (out rectype, out recnum) == 0; mdf.NextRec());

      MddRec rec = mdf.GetMddRec(recnum) ;

      其他主要數(shù)據(jù)接口如下:

      (1) SpdtRecord類(lèi):數(shù)據(jù)表基類(lèi),主要存儲(chǔ)SQL數(shù)據(jù)庫(kù)數(shù)據(jù);

      (2) Component類(lèi):實(shí)體部件記錄基類(lèi),主要存儲(chǔ)管子部件、實(shí)體部件和參數(shù)化部件;

      (3) PpdRec類(lèi):原理記錄基類(lèi),主要存儲(chǔ)管子原理和電氣原理數(shù)據(jù)。

      2 部件管理

      部件庫(kù)是SPD設(shè)計(jì)系統(tǒng)中管子、電氣、舾裝專(zhuān)業(yè)設(shè)計(jì)的基礎(chǔ),沒(méi)有部件庫(kù),設(shè)計(jì)師無(wú)法在SPD設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)快速建模。SPD部件分為參數(shù)化部件、實(shí)體部件和管子部件。SPD部件提供的接口有基類(lèi)和拓展類(lèi),其中基類(lèi)為空體部件記錄基類(lèi)(Component),擴(kuò)展類(lèi)分別為參數(shù)化部件(ParaComponent)、實(shí)體部件(PartComponent)和管子部件(PipeComponent)。

      2.1 參數(shù)化部件

      SPD參數(shù)化建模系統(tǒng)支持用戶(hù)自定義計(jì)算、報(bào)表生成和模型瀏覽,為用戶(hù)提供良好的設(shè)計(jì)模式、數(shù)據(jù)瀏覽和管理方式。參數(shù)化部件按專(zhuān)業(yè)分為管子、電氣、舾裝和通用,按用途分為基礎(chǔ)型材和組合部件,按標(biāo)準(zhǔn)又分為標(biāo)準(zhǔn)件和非標(biāo)件。對(duì)復(fù)雜部件物量的抽取,原SPD接口需要在每個(gè)部件中單獨(dú)計(jì)算并定義物量,才能實(shí)現(xiàn)物量輸出。通過(guò)二次開(kāi)發(fā)參數(shù)化部件數(shù)據(jù)查詢(xún)工具,實(shí)現(xiàn)對(duì)參數(shù)化部件建模準(zhǔn)確性的檢查,完成參數(shù)化部件建模數(shù)據(jù)的提取程序。完善后的接口可以根據(jù)底層基礎(chǔ)型材定義的物量信息實(shí)現(xiàn)復(fù)雜部件物量信息的完整提取,復(fù)雜部件無(wú)需再單獨(dú)計(jì)算和定義物量,提高了參數(shù)化部件的設(shè)計(jì)效率。SPD參數(shù)化部件可以用其他部件組合為復(fù)雜的部件,參數(shù)化部件物量提取流程如圖2所示。

      圖2 參數(shù)化部件物量提取流程圖

      主要源代碼如下:

      List listpara = new List();

      MddSstru recsstru = (MddSstru)rec;

      ParaComponent paracomponent = new ParaComponent(recsstru.ParaCompNum, recsstru.ParaValues);

      listpara.Add(paracomponent);

      組合件判斷源代碼如下:

      if (listpara[i].RefParaComps[j].ParaNum < 9000)

      {

      listpara.Add(listpara[i].RefParaComps[j]);

      }

      通過(guò)ParaComponent屬性輸出物量信息如下:

      (1) SubSpecs:組件規(guī)格描述($MSPEC),如:型材規(guī)格;

      (2) SubSpecLengths:組件規(guī)格長(zhǎng)度($LENS),如:型材長(zhǎng)度、電氣基座的螺栓個(gè)數(shù);

      (3) SubSpecNums:組件數(shù)量($NUMS),如:型材數(shù)量、電氣導(dǎo)架的螺栓個(gè)數(shù);

      (4) SubWeights:組件基準(zhǔn)質(zhì)量($WETS)。

      本文通過(guò)SubSpecs判斷部件是否為組合件,參數(shù)化部件組合件無(wú)需定義和計(jì)算物量信息,原參數(shù)化部件的物量數(shù)據(jù)抽取不受影響,提高了參數(shù)化部件基礎(chǔ)庫(kù)的建模效率,降低了參數(shù)化部件基礎(chǔ)庫(kù)的維護(hù)難度。

      2.2 實(shí)體部件

      對(duì)管子專(zhuān)業(yè)的實(shí)體部件進(jìn)行優(yōu)化。管子專(zhuān)業(yè)物資種類(lèi)多,標(biāo)準(zhǔn)件多,管子專(zhuān)業(yè)的實(shí)體部件如果處理不好,后期會(huì)對(duì)物資采購(gòu)需求產(chǎn)生較大影響。物資編碼是物資管理的基礎(chǔ),每個(gè)企業(yè)均有自己的物資編碼體系,由于各個(gè)企業(yè)的物資編碼體系差異性較大,SPD軟件無(wú)法為每個(gè)企業(yè)建立完善的物資編碼系統(tǒng)。通過(guò)對(duì)SPD數(shù)據(jù)的深入了解,開(kāi)發(fā)了物資編碼系統(tǒng)。該系統(tǒng)采用的是基礎(chǔ)數(shù)據(jù)配置,實(shí)現(xiàn)全自動(dòng)復(fù)雜結(jié)構(gòu)編碼。以管子為例,介紹物資編碼系統(tǒng)的結(jié)構(gòu)和原理,管子編碼結(jié)構(gòu)如圖3所示。系統(tǒng)設(shè)計(jì)原理為提取每個(gè)結(jié)構(gòu)信息單獨(dú)的編碼,通過(guò)數(shù)據(jù)庫(kù)中的組合規(guī)則將單獨(dú)的編碼組合成完整的物資編碼,如圖4所示。

      圖3 管子編碼結(jié)構(gòu)

      圖4 自動(dòng)編碼設(shè)計(jì)原理

      3 原理定義

      SPD的原理定義是其短板,定義效率不高。SPD原理提供的接口為原理記基類(lèi)(PpdRec)和擴(kuò)展類(lèi),擴(kuò)展類(lèi)包括閥附件原理(PpdValve)、管路原理(PpdPipeline)和設(shè)備原理(PpdDevice)等。主要對(duì)管路原理定義進(jìn)行優(yōu)化,實(shí)現(xiàn)管路原理以詳細(xì)設(shè)計(jì)的DWG原理圖直接輸入到SPD系統(tǒng)。其主要原理為:定義各系統(tǒng)基礎(chǔ)信息,如法蘭、處理、壓力等信息,然后抓取詳細(xì)設(shè)計(jì)的DWG原理圖的管路信息(管路號(hào)、管子規(guī)格、管子材質(zhì)、管子等級(jí)),在定義每條原理數(shù)據(jù)的過(guò)程中自動(dòng)選取法蘭、處理和壓力等信息,最終實(shí)現(xiàn)管路原理自動(dòng)定義功能。自動(dòng)定義設(shè)計(jì)原理如圖5所示。

      圖5 自動(dòng)定義設(shè)計(jì)原理

      主要源代碼如下:

      PrincipleFile principlefile = m_proj.GetPipePpdFile();

      PpdPipeline ppdpipeline = new PpdPipeline();

      // ppdpipeline屬性賦值

      ppdpipeline.SysCode= "管路名";

      ppdpipeline.PipeCompCode="管子部件代號(hào)";

      ……

      principlefile.WriteRec(ppdpipeline);

      4 物量提取與物量需求

      4.1 物量提取和重組

      物量提取是建立在中船澄西船舶修造有限公司自主研發(fā)的綜合數(shù)據(jù)管理平臺(tái)和SPD二次開(kāi)發(fā)基礎(chǔ)上的,可以實(shí)現(xiàn)將SPD模型數(shù)據(jù)無(wú)縫導(dǎo)入綜合數(shù)據(jù)管理平臺(tái),然后通過(guò)該平臺(tái)對(duì)外發(fā)布數(shù)據(jù)。

      SPD雖然提供了大量報(bào)表,但是報(bào)表中部分?jǐn)?shù)據(jù)并不完整,無(wú)法滿(mǎn)足實(shí)際需求,因此對(duì)SPD模型數(shù)據(jù)進(jìn)行準(zhǔn)確的提取和重組是有必要的。管子制作托盤(pán)提取界面如圖6所示。通過(guò)該模塊提取的管子材料明細(xì)有材料來(lái)源信息、物資編碼信息和需要的備注信息。

      圖6 管子制作托盤(pán)提取

      主要源代碼如下:

      if ((mdf = m_proj.OpenModelFile(modelname, SpecialityIdx.Pipe)) != null)//判斷模型是否為管子專(zhuān)業(yè)

      {

      for (mdf.RewindRec(); mdf.GetRecState(out rectype, out recnum) == 0; mdf.NextRec())//遍歷模型

      {

      if ((rec = mdf.GetMddRec(recnum)) != null)

      {

      recspool = (MddSpool)mdf.GetMddRec((uint)Math.Abs(SPD_Pipe.spoolrecno(rec)));//獲取零件

      if (recspool != null && recspool.Pallet == Listview.SelectedItems[0].SubItems[0].Text && recspool.PalletOrderNumber < 3000)//判斷零件托盤(pán)

      {

      spoolname = recspool.SpoolName;

      ArrayList pipedetail = new ArrayList();//管子材料

      pipedetail = SPD_Pipe.PipeDetail(rec, mdf, m_proj);//讀取管子部件詳細(xì)信息(自己寫(xiě)的接口)

      }

      }

      }

      }

      4.2 物量需求

      物量需求是指在設(shè)計(jì)端建立出庫(kù)和入庫(kù)數(shù)據(jù)庫(kù),將設(shè)計(jì)下發(fā)的采購(gòu)需求作為入庫(kù)數(shù)據(jù),模型提取的數(shù)據(jù)作為出庫(kù)數(shù)據(jù),通過(guò)對(duì)出入庫(kù)數(shù)據(jù)的對(duì)比分析,動(dòng)態(tài)顯示物量需求,指導(dǎo)設(shè)計(jì)人員進(jìn)行材料采購(gòu)。目前完成了管子專(zhuān)業(yè)模塊的開(kāi)發(fā),主要功能有基礎(chǔ)物資庫(kù)、材料請(qǐng)購(gòu)、材料比對(duì)、材料查詢(xún)和材料請(qǐng)購(gòu)單。物量需求模塊程序設(shè)計(jì)原理如圖7所示。

      圖7 物量需求設(shè)計(jì)原理

      基礎(chǔ)物資庫(kù)主要作用為將模型數(shù)據(jù)與采購(gòu)數(shù)據(jù)對(duì)照,形成標(biāo)準(zhǔn)的采購(gòu)數(shù)據(jù),同時(shí)也作為材料比對(duì)的標(biāo)準(zhǔn)數(shù)據(jù)。程序輸入端為托盤(pán)、基礎(chǔ)物資庫(kù)和采購(gòu)單。托盤(pán)由模型直接輸出,基礎(chǔ)物資庫(kù)需要系統(tǒng)管理人員進(jìn)行維護(hù),采購(gòu)單則由缺料數(shù)據(jù)直接輸出,設(shè)計(jì)師只允許進(jìn)行數(shù)量調(diào)整,修改備注等操作。該系統(tǒng)保證了采購(gòu)需求物量信息的標(biāo)準(zhǔn)化。

      通過(guò)該系統(tǒng),設(shè)計(jì)師能在提交模型數(shù)據(jù)后快速生成物料需求,過(guò)程中可以直觀地看到訂貨數(shù)據(jù)和模型數(shù)據(jù),通過(guò)對(duì)比分析,指導(dǎo)后續(xù)項(xiàng)目訂貨,其他專(zhuān)業(yè)物量需求可用類(lèi)似的方法實(shí)現(xiàn)。

      5 全套料技術(shù)

      全套料技術(shù)指實(shí)現(xiàn)船體以外其他專(zhuān)業(yè)板材類(lèi)零件圖形數(shù)據(jù)的提取。該技術(shù)是建立在參數(shù)化建?;A(chǔ)上的,對(duì)參數(shù)化建模和手工建模過(guò)程作如下約定:

      (1) 在建模過(guò)程中除了板材類(lèi)零件可以使用軟件自帶的拉伸體功能,其余均通過(guò)參數(shù)化部件建模。

      (2) 在參數(shù)化部件的組合部件中型材類(lèi)均從基本型材中引用,只有板材可以引用基礎(chǔ)實(shí)體部件。

      通過(guò)約定,可以實(shí)現(xiàn)自動(dòng)過(guò)濾,將舾裝件中需要套料的板材過(guò)濾出來(lái),最終實(shí)現(xiàn)舾裝件板材零件的全套料。

      實(shí)現(xiàn)過(guò)程源代碼如下:

      MddSstru recsstru = (MddSstru)rec; //獲取鐵舾件零件

      HdEntStretchPrism hdentstretchprism = (Hd

      EntStretchPrism)recsstru.Ents[0];//獲取實(shí)體信息

      hdentstretchprism.BottomSpline //獲取實(shí)體圖形信息,拉伸體底面邊界樣條

      底面邊界樣條數(shù)據(jù)解析如下:

      xyz

      x1y1z1

      ……

      xnynzn

      其中:yn、zn為樣條節(jié)點(diǎn)的坐標(biāo);xn為連接節(jié)點(diǎn)(yn-1,zn-1)和(yn,zn)組成的樣條片段的有向半徑, 當(dāng)xn= 0時(shí)為直線段。程序通過(guò)獲取的邊界樣條自動(dòng)輸出圖形文件,該圖形文件能在中船澄西船舶修造有限公司套料軟件中直接套料。

      6 結(jié) 語(yǔ)

      設(shè)計(jì)軟件二次開(kāi)發(fā)是打通企業(yè)信息化建設(shè)孤島的關(guān)鍵所在,能夠使設(shè)計(jì)軟件更加貼合企業(yè)實(shí)際需求。船舶設(shè)計(jì)模型數(shù)據(jù)是船廠信息化的基石,理論物量、理論工時(shí)等均以模型數(shù)據(jù)為源頭,二次開(kāi)發(fā)是從模型數(shù)據(jù)中獲得基礎(chǔ)數(shù)據(jù)的必由之路。通過(guò)對(duì)SPD軟件的二次開(kāi)發(fā),可以將設(shè)計(jì)模型數(shù)據(jù)轉(zhuǎn)化為其他軟件需要的信息,建立企業(yè)統(tǒng)一的數(shù)據(jù)源,打通設(shè)計(jì)、生產(chǎn)和管理之間的信息孤島。隨著SPD軟件二次開(kāi)發(fā)接口的不斷完善,船廠信息化建設(shè)要求將更能滿(mǎn)足。

      猜你喜歡
      物量二次開(kāi)發(fā)管子
      模擬降雨下枯落物調(diào)控坡面徑流特征分析
      地下水(2023年5期)2023-10-13 06:03:28
      淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      淺談Mastercam后處理器的二次開(kāi)發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      西門(mén)子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
      造林密度對(duì)米老排凋落物量及動(dòng)態(tài)的影響
      植物研究(2017年5期)2017-11-10 01:47:20
      《左傳》數(shù)詞計(jì)物量和動(dòng)量研究
      滾球游戲
      搞不定的水管子
      臺(tái)風(fēng)干擾對(duì)天童常綠闊葉林凋落物量的影響
      基于Pro/E二次開(kāi)發(fā)的推土鏟參數(shù)化模塊開(kāi)發(fā)
      仁布县| 文登市| 玛沁县| 奉节县| 项城市| 昌都县| 龙江县| 临海市| 云林县| 萨迦县| 兰溪市| 洛川县| 磐石市| 富裕县| 金堂县| 木兰县| 盈江县| 万源市| 靖江市| 茶陵县| 岐山县| 精河县| 凉山| 凉城县| 赣榆县| 扶沟县| 营口市| 合肥市| 湄潭县| 罗定市| 江门市| 柘城县| 嘉鱼县| 博白县| 云阳县| 永善县| 丹巴县| 宁蒗| 曲靖市| 新疆| 获嘉县|