亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        二三維平臺(tái)間管線數(shù)據(jù)同步編輯的實(shí)現(xiàn)

        2015-07-04 11:50:34王光昇付海龍周麗珠天津市測(cè)繪院天津300381
        城市勘測(cè) 2015年5期
        關(guān)鍵詞:服務(wù)器端視圖反應(yīng)器

        王光昇,付海龍,周麗珠(天津市測(cè)繪院,天津 300381)

        二三維平臺(tái)間管線數(shù)據(jù)同步編輯的實(shí)現(xiàn)

        王光昇?,付海龍,周麗珠
        (天津市測(cè)繪院,天津 300381)

        摘 要:目前,正在開展的全國城市地下管線普查對(duì)于管線數(shù)據(jù)質(zhì)量提出了更高要求,一般的管線數(shù)據(jù)檢查都只針對(duì)二維數(shù)據(jù)。如果在二維數(shù)據(jù)檢查和編輯的過程中能夠?qū)崟r(shí)顯示三維模型,對(duì)作業(yè)人員而言,就能夠非常直觀、快速地發(fā)現(xiàn)比較明顯的空間關(guān)系錯(cuò)誤,對(duì)提高管線數(shù)據(jù)質(zhì)量具有重要的意義。本文提出了在二三維平臺(tái)間實(shí)現(xiàn)管線數(shù)據(jù)同步編輯的方法。

        關(guān)鍵詞:地下管線;三維;同步;管線普查

        1 引 言

        城市地下管線是保障城市運(yùn)行的重要基礎(chǔ)設(shè)施,是城市的“生命線”。為了對(duì)城市地下管線信息進(jìn)行科學(xué)管理和有效利用,為城市規(guī)劃、建設(shè)和管理提供準(zhǔn)確的管線數(shù)據(jù),全國各省市開展了地下管線普查工作。管線普查所生產(chǎn)的數(shù)據(jù)量非常大,數(shù)據(jù)質(zhì)量的優(yōu)劣直接關(guān)系著地下管線管理的正確性和有效性。一般對(duì)于管線數(shù)據(jù)的檢查都只是針對(duì)二維數(shù)據(jù)的基本屬性、邏輯關(guān)系等的檢查,而很少考慮三維空間關(guān)系的正確性。

        我院對(duì)管線數(shù)據(jù)的采集是基于AutoCAD環(huán)境二次開發(fā)的軟件,同時(shí),在GIS市場(chǎng)運(yùn)營過程中也開發(fā)了基于OSG(Open Scene Graph)的三維管線平臺(tái)。但是,數(shù)據(jù)的采集與三維展示二者是分離的,作業(yè)員只處理二維數(shù)據(jù),不考慮三維空間關(guān)系中是否正確,而三維平臺(tái)僅僅是作為數(shù)據(jù)展示的工具,并沒有考慮作業(yè)人員的實(shí)際應(yīng)用,當(dāng)發(fā)現(xiàn)錯(cuò)誤的以后,需要將數(shù)據(jù)返回給作業(yè)員去修改,拖長了數(shù)據(jù)生產(chǎn)周期。如果作業(yè)人員在編輯和檢查二維數(shù)據(jù)的同時(shí)能夠?qū)崟r(shí)地看到三維結(jié)果,那么就可以方便、快速發(fā)現(xiàn)問題,在數(shù)據(jù)的源頭避免出現(xiàn)更多問題,這樣就可以大大縮短數(shù)據(jù)檢查修改的周期。本文采用命名管道、DotSpatial、反應(yīng)器等技術(shù)實(shí)現(xiàn)了管線數(shù)據(jù)在二三維平臺(tái)間的同步編輯。

        國內(nèi)已經(jīng)實(shí)現(xiàn)的二三維同步操作的平臺(tái)一般都是在基于同一個(gè)進(jìn)程的專用管理平臺(tái),與數(shù)據(jù)生產(chǎn)人員的聯(lián)系不夠緊密。而本文研究的是兩個(gè)進(jìn)程間的同步編輯操作,即AutoCAD軟件與自主研發(fā)三維平臺(tái)間的通信,它為管線數(shù)據(jù)生產(chǎn)人員提供了一種實(shí)時(shí)查看三維模型的技術(shù)手段。

        2 關(guān)鍵技術(shù)

        2.1命名管道

        命名管道(Named Pipes)是一種簡單的進(jìn)程間通信(IPC)機(jī)制,支持可靠的、單向或雙向的數(shù)據(jù)通信。不同于匿名管道,命名管道可以在不相關(guān)的進(jìn)程和不同計(jì)算機(jī)之間使用,服務(wù)器建立命名管道時(shí)給它指定一個(gè)名字,任何進(jìn)程都可以通過該名字打開管道的另一端,根據(jù)給定的權(quán)限和服務(wù)器進(jìn)程通信。

        在WCF(Windows Communication Foundation)中,使用NetNamedPipeBinding類實(shí)現(xiàn)了Windows的命名管道機(jī)制。但是限定了在使用命名管道的服務(wù)時(shí)只能接收來自同一臺(tái)機(jī)器的調(diào)用,因此必須指定明確的本機(jī)器名或直接寫localhost,并且每臺(tái)機(jī)器只能打開一個(gè)命名管道。

        本文中,我們選擇WCF中的命名管道機(jī)制實(shí)現(xiàn)在同一臺(tái)機(jī)器上建立三維應(yīng)用程序與AutoCAD平臺(tái)之間的通信,使得管線作業(yè)人員在數(shù)據(jù)生產(chǎn)編輯、檢查的同時(shí),能夠?qū)崟r(shí)地看到三維效果。

        2.2DotSpatial

        DotSpatial是一個(gè)基于.NET 4.0,使用C#語言開發(fā)的開源地理信息系統(tǒng)類庫,該類庫集成了地圖顯示、編輯、查詢、空間分析等常用的GIS功能,是目前比較成熟的開源GIS類庫。

        本文在實(shí)現(xiàn)二三維管線數(shù)據(jù)同步編輯的過程中, 以shpefile格式的數(shù)據(jù)作為中間數(shù)據(jù),作業(yè)人員在AutoCAD中編輯二維數(shù)據(jù)時(shí),通過自定義反應(yīng)器處理函數(shù),調(diào)用DotSpatial組件同步修改shapefile數(shù)據(jù),最后將修改的結(jié)果在三維平臺(tái)中實(shí)時(shí)顯示。

        2.3反應(yīng)器

        反應(yīng)器是AutoCAD中的一種反饋機(jī)制,它類似于Windows的消息處理,可以響應(yīng)輸入事件、實(shí)體編輯等事件。AutoCAD中的反應(yīng)器主要包括數(shù)據(jù)庫反應(yīng)器、對(duì)象反應(yīng)器、編輯器反應(yīng)器等。

        3 實(shí)現(xiàn)過程

        實(shí)現(xiàn)管線數(shù)據(jù)從二維到三維同步編輯的基本流程如圖1所示。

        圖1 從二維到三維的同步流程

        通過WCF的命名管道技術(shù)實(shí)現(xiàn)AutoCAD平臺(tái)與三維平臺(tái)的同步操作,首先要?jiǎng)?chuàng)建服務(wù)器端和客戶端,建立起進(jìn)程間的通信??紤]到程序功能的獨(dú)立性和調(diào)試的方便,我們將服務(wù)器端宿主在一個(gè)獨(dú)立的.NET應(yīng)用程序中,而將AutoCAD和三維平臺(tái)都作為客戶端??蛻舳伺c服務(wù)器之間的通信是雙向的,上述流程僅演示了從AutoCAD客戶端發(fā)消息給服務(wù)器,然后由服務(wù)器處理消息后再提交給三維平臺(tái)客戶端的過程。

        3.1WCF服務(wù)模型

        WCF是面向服務(wù)的應(yīng)用程序框架,與WCF服務(wù)的所有通信都是通過該服務(wù)的終結(jié)點(diǎn)進(jìn)行的。終結(jié)點(diǎn)包含4個(gè)屬性:地址(Address)、綁定(Binding)、契約(Contract)和行為(Behavior)。

        地址:包含服務(wù)的位置和傳輸協(xié)議,唯一地標(biāo)識(shí)終結(jié)點(diǎn)。

        綁定:指定如何與終結(jié)點(diǎn)進(jìn)行通信,封裝了傳輸協(xié)議、消息編碼、通信模式、可靠性、安全性、事務(wù)傳播以及互操作性等特征。

        契約:是WCF的消息標(biāo)準(zhǔn),是服務(wù)的提供者和服務(wù)消費(fèi)者進(jìn)行交互的手段,它告訴客戶端如何與服務(wù)器聯(lián)系。

        行為:客戶端的行為體現(xiàn)的是WCF如何進(jìn)行服務(wù)調(diào)用的方式,而服務(wù)端的行為則體現(xiàn)了WCF的請(qǐng)求分發(fā)方式。

        3.2服務(wù)器端的實(shí)現(xiàn)過程(1)定義和實(shí)現(xiàn)服務(wù)契約。定義:

        [ServiceContract(SessionMode=SessionMode.Allowed)]

        public interface IFromClientToServerMessages

        {

        [OperationContract(IsOneWay=true)]

        void Register(Guid clientID,string clientName);

        [OperationContract(IsOneWay=true)]

        void DisplayTextOnServerAsFromThisClient(Guid clientID,string text);

        }

        實(shí)現(xiàn):

        public void Register(Guid clientID,string clientName) {

        if (! _registeredClients.Keys.Contains(clientID)) {

        _registeredClients.Add(clientID,clientName);

        }

        }

        public void DisplayTextOnServerAsFromThisClient(Guid clientID,string text) {

        / /處理來自客戶端發(fā)送過來的信息}

        (2)在宿主進(jìn)程中,為服務(wù)構(gòu)建ServiceHost的實(shí)例,并暴露終結(jié)點(diǎn)信息。

        可以看出,契約接口IFromClientToServerMessages定義的兩個(gè)函數(shù)是客戶端向服務(wù)器發(fā)出的請(qǐng)求,需要在服務(wù)器宿主應(yīng)用程序中來處理客戶端的請(qǐng)求,也就是要在服務(wù)器端來實(shí)現(xiàn)這兩個(gè)函數(shù)。其中,Register函數(shù)是客戶端連接服務(wù)器時(shí)發(fā)出的請(qǐng)求注冊(cè),參數(shù)clientName用來區(qū)分客戶端是AutoCAD或三維平臺(tái);函數(shù)Display-TextOnServerAsFromThisClient是客戶端發(fā)送給服務(wù)器的文本信息處理函數(shù)。我們需要在宿主應(yīng)用程序類中繼承IFromClientToServerMessages接口,如下:

        public partial class Form1 : Form,IFromClientToServerMessages

        {

        ServiceHost _serverHost;

        Dictionary<Guid,string>_registeredClients=new Dictionary<Guid,string>();

        NetNamedPipeBinding _bind=new NetNamedPipeBinding ();public Form1() {

        InitializeComponent();

        _serverHost=new ServiceHost(this);

        _bind.MaxBufferPoolSize=2147483647;

        _bind.MaxBufferSize=2147483647;

        _bind.MaxReceivedMessageSize=2147483647;

        _serverHost.AddServiceEndpoint((typeof(IFrom-ClientToServerMessages)), _ bind," net.pipe:/ / localhost/ Acad-Server");

        _serverHost.Open();

        } / /...}

        ServiceHost對(duì)象負(fù)責(zé)管理服務(wù)的生存周期,通過AddServiceEndpoint方法將服務(wù)終結(jié)點(diǎn)添加到承載服務(wù)中,該方法接收的參數(shù)分別是契約(Contract)、綁定(Binding)和地址(Address)。

        (3)打開通訊通道提供服務(wù)

        客戶端與服務(wù)之間的通信是雙向的,它們通過彼此的地址(Address)標(biāo)識(shí)就可以隨時(shí)訪問對(duì)方。這里需要用到通道工廠(ChannelFactory),它接收服務(wù)協(xié)定接口作為泛型參數(shù),這樣創(chuàng)建出來的實(shí)例稱為該協(xié)定的通道工廠。顧名思義,這個(gè)工廠專門用于生產(chǎn)通道,這個(gè)通道就是架設(shè)在服務(wù)器終結(jié)點(diǎn)和客戶端終結(jié)點(diǎn)之間的通信通道了。由于這個(gè)通道是用服務(wù)協(xié)定來創(chuàng)建的,所以就可以在這個(gè)通道上調(diào)用這個(gè)服務(wù)協(xié)定的操作了。例如,從服務(wù)器向客戶端發(fā)送信息的方法如下:

        private void SendText(Guid client,string text) {

        using (ChannelFactory<IFromServerToClientMessages>factory = new ChannelFactory<IFromServerToClientMessages>(_bind, new EndpointAddress(" net.pipe:/ / localhost/

        AcadClient_" + client.ToString()))) { IFromServerToClientMessages serverToClientChannel =factory.CreateChannel();serverToClientChannel.DisplayTextInClient(text);

        } / / using

        }

        該實(shí)現(xiàn)過程可以簡單地描述成:在服務(wù)器端打開客戶端通道,向客戶端發(fā)送消息。

        3.3客戶端的實(shí)現(xiàn)過程

        (1)定義和實(shí)現(xiàn)的服務(wù)契約:

        [ServiceContract(SessionMode=SessionMode.Allowed)]

        public interface IFromServerToClientMessages

        {

        [OperationContract(IsOneWay=true)]

        void DisplayTextInClient(string text);/ /處理來自服務(wù)器端發(fā)送過來的信息

        }

        (2)其他的實(shí)現(xiàn)過程和服務(wù)器端的實(shí)現(xiàn)類似,其中,向服務(wù)器發(fā)送信息的實(shí)現(xiàn)方法為:

        public void SendTextToServer(string text) {

        using (ChannelFactory<IFromClientToServerMessages>factory=new

        ChannelFactory<IFromClientToServerMessages>(_bind, new

        EndpointAddress ( " net.pipe:/ / localhost/ AcadServer")))

        { IFromClientToServerMessages clientToServerChannel =factory.CreateChannel();clientToServerChannel.DisplayTextOnServerAs-FromThisClient(_clientID,text);

        }

        }

        同樣,SendTextToServer函數(shù)可以簡單地描述成:在客戶端打開服務(wù)器端通道,向服務(wù)器端發(fā)送消息。

        3.4AutoCAD客戶端的消息監(jiān)控

        作業(yè)人員應(yīng)用AutoCAD進(jìn)行管線數(shù)據(jù)的編輯過程中,產(chǎn)生了數(shù)據(jù)編輯、窗口縮放、鼠標(biāo)移動(dòng)等事件,這些事件是二三維同步的源頭,我們首先要在AutoCAD中捕獲這些事件。

        (1)對(duì)象編輯事件

        通過對(duì)象編輯反應(yīng)器來捕獲數(shù)據(jù)新增、修改信息,將變化后對(duì)象的位置和點(diǎn)號(hào)等屬性信息發(fā)送給服務(wù)器,然后由服務(wù)器通知DotSpatial去更新相應(yīng)的shp數(shù)據(jù)。反應(yīng)器的添加如下:

        Document doc = acApp.DocumentManager.MdiActiveDocument;

        doc.Database.ObjectModified += Database_ObjectModified;

        (2)視圖變化事件

        在AutoCAD中,影響視圖變化的因素主要有兩種:一種是鼠標(biāo)拖動(dòng)、鼠標(biāo)滾輪等窗口消息。另一種是操作圖形窗口的AutoCAD命令,如ZOOM、PAN、RTZOOM、RTPAN等。AutoCAD中視圖發(fā)生變化后,我們必須及時(shí)地將當(dāng)前視圖范圍信息發(fā)送給服務(wù)器,由服務(wù)器通知三維平臺(tái)更新視圖范圍,這樣才能產(chǎn)生較好的同步效果。

        對(duì)于窗口消息,通過PreTranslateMessage消息預(yù)處理響應(yīng)函數(shù)來捕獲,方法為:

        public static Delegate pHandler;

        pHandler = new PreTranslateMessageEventHandler ( messageEv);

        public void messageEv ( object sender, PreTranslateMessag-eEventArgs e) {

        Document mdiActiveDocument=acApp.DocumentManager.MdiActiveDocument;

        if (mdiActiveDocument = = actdoc) { if (e.Message.message = = 0xc1f0 | | e.Message.message = = 520 | | e.Message.message = = 0x20a | | e.Message.message = = 0x20e) {

        Editor editor = acApp.DocumentManager.Mdi-ActiveDocument.Editor;ExecuteInApplicationContextCallback callback =new ExecuteInApplicationContextCallback(_Lambda);acApp.DocumentManager.ExecuteInApplicationContext(callback,null);

        }

        } / / if

        }

        對(duì)于AutoCAD命令,通過命令反應(yīng)器來捕獲,方法為:

        public static Delegate eHandler;

        eHandler=new CommandEventHandler(cmdEnded);

        public void cmdEnded(object o,CommandEventArgs e) { string globalCommandName=e.GlobalCommandName;string[] cmds = new string[9]{" -PAN"," ZOOM"," PAN","RTZOOM","RTPAN", " VIEW"," REGEN"," REGENALL"," REDRAW"};

        if (cmds.Contains(globalCommandName))

        { Editor editor=acApp.DocumentManager.MdiActive-Document.Editor;ExecuteInApplicationContextCallback callback=new ExecuteInApplicationContextCallback(_Lambda);

        acApp.DocumentManager.ExecuteInApplication-Context(callback,null);

        }

        }

        其中,_Lambda函數(shù)實(shí)現(xiàn)了獲取AutoCAD當(dāng)前視圖的范圍,然后通過命名管道技術(shù)將視圖范圍發(fā)送給服務(wù)器,再由服務(wù)器更新三維平臺(tái)的視圖范圍。

        [CompilerGenerated,DebuggerStepThrough]

        private void _Lambda(object a0)

        {

        Document doc = acApp.DocumentManager.MdiActive-Document;

        Editor ed=doc.Editor;

        Matrix3d ucs=ed.CurrentUserCoordinateSystem;

        Point3d vc = ((Point3d) acApp.GetSystemVariable( " VIEWCTR")).TransformBy(ucs);

        Vector3d vd=new Vector3d(0,0,1);

        double vpHeight = ((double) acApp.GetSystemVariable ("VIEWSIZE"));

        Point2d screensize=(Point2d)acApp.GetSystemVariable ("Screensize");

        double vpWidth=vpHeight?screensize.X / screensize.Y;

        Point2d centerPoint=new Point2d(vc.X,vc.Y);Vector3d viewDirection=vd;

        double x0=centerPoint.X - vpWidth / 2.0;double y0=centerPoint.Y - vpHeight / 2.0;double x1=centerPoint.X + vpWidth / 2.0;double y1=centerPoint.Y + vpHeight / 2.0;/ /調(diào)用SendTextToServer函數(shù),向服務(wù)器發(fā)送信息}

        3.5DotSpatial更新shp數(shù)據(jù)

        這里以管線為例說明用DotSpatial更新shp數(shù)據(jù)的步驟:

        由AutoCAD的反應(yīng)器傳遞過來的管線編輯信息中,包含了管線的坐標(biāo)以及起始點(diǎn)號(hào)、終止點(diǎn)號(hào)、管徑等所有屬性信息。

        (1)首先根據(jù)管線亞類信息,打開相應(yīng)的管線文件。

        IFeatureSet fs=FeatureSet.Open(strVectorFile);

        (2)根據(jù)管線的坐標(biāo)范圍選擇管線。

        Extent ext=new Extent(minx,miny,maxx,maxy);

        List<int>ids=fs.SelectIndices(ext);

        (3)遍歷選擇的所有管線,通過比較起始點(diǎn)號(hào)、終止點(diǎn)號(hào)找到目標(biāo)管線,然后編輯坐標(biāo)、修改屬性。

        IFeature feat=fs.GetFeature(id);/ /比較點(diǎn)號(hào)

        feat.DataRow.BeginEdit();

        List<Coordinate>points=new List<Coordinate>();points.Add(new Coordinate(x0,y0));points.Add(new Coordinate(x1,y1));feat.Coordinates=points;feat.DataRow.EndEdit();/ /修改屬性…

        (4)保存文件。

        fs.SaveAs(strVectorFile,true);

        3.6三維渲染

        三維平臺(tái)采用OSG開發(fā),在本文所述的同步流程中,作為一個(gè)客戶端接收來自服務(wù)器的指令。當(dāng)二維數(shù)據(jù)更新之后,shp數(shù)據(jù)也隨之更新了,三維平臺(tái)會(huì)按照服務(wù)器的指令重新將shp數(shù)據(jù)渲染成三維模型。對(duì)于三維平臺(tái)的實(shí)現(xiàn)方法本文不作具體論述。

        3.7成果展示

        二三維進(jìn)程間的同步如圖2所示。

        在控制面板中,選擇“啟動(dòng)服務(wù)”后,就啟動(dòng)了Au-toCAD和三維應(yīng)用程序間通信的服務(wù)器;選擇“同步”選項(xiàng)后,在AutoCAD窗口中的任何與視圖相關(guān)的操作,如縮放、平移、全屏等,在三維窗口中都會(huì)實(shí)時(shí)改變視圖,與二維窗口保持一致。

        對(duì)于數(shù)據(jù)檢查的錯(cuò)誤,我們將二維數(shù)據(jù)的錯(cuò)誤發(fā)送到AutoCAD的錯(cuò)誤定位窗口中,對(duì)于發(fā)生碰撞的三維空間錯(cuò)誤發(fā)送到三維窗口中。三維窗口中的紅色箭頭指示了碰撞的位置,如圖2所示。

        圖2 二三維同步

        4 結(jié) 語

        本文論述了如何采用基于WCF的命名管道技術(shù)實(shí)現(xiàn)AutoCAD平臺(tái)與三維平臺(tái)間進(jìn)程間的通信,在此基礎(chǔ)上,結(jié)合反應(yīng)器、視圖同步、DotSpatial空間處理組件等技術(shù)實(shí)現(xiàn)管線數(shù)據(jù)在二三維平臺(tái)間的同步編輯。該方法可以幫助作業(yè)人員快速地發(fā)現(xiàn)管線三維空間的問題,提高管線數(shù)據(jù)質(zhì)量。

        參考文獻(xiàn)

        [1] 蔣金楠.WCF全面解析(上冊(cè))[M].北京:電子工業(yè)出版社,2012:294~343.

        [2] 嚴(yán)商.基于WCF的分布式程序的研究與實(shí)現(xiàn)[D].武漢理工大學(xué),2008:18~24.

        [3] 吳清壽.基于WCF的分布式系統(tǒng)模型研究與實(shí)現(xiàn)[J].吉林師范大學(xué)學(xué)報(bào)·自然科學(xué)版,2012,8(3):61~64.

        [4] 胡玉貴.基于WCF的雙工操作研究[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2008(08):74~76.

        [5] Justin Smith.WCF技術(shù)內(nèi)幕[M].武漢:華中科技大學(xué)出版社,2010:181~195.

        [6] Autodesk.ObjectARX開發(fā)指南.1999.

        [7] 肖鵬,劉更代,徐明亮.OpenSceneGraph三維渲染引擎編程指南[M].北京:清華大學(xué)出版社,2010.

        [8] 王銳,錢學(xué)雷.OpenSceneGraph三維渲染引擎設(shè)計(jì)與實(shí)踐[M].北京:清華大學(xué)出版社,2009.

        Realization of Synchronous Editing of Pipeline Data Between Two and Three Dimensional Platform

        Wang Guangsheng,Fu Hailong,Zhou Lizhu
        (Tianjin Institute of Surveying and Mapping,Tianjin 300381,China)

        Abstract:At present,the ongoing national urban underground pipeline survey is carried out,and put forward higher requirements for the pipeline data quality,the general pipeline data are only for two-dimensional data.If in the process of 2D data checking and editing,we can display 3D model in real time,to the operator,can very intuitive,quickly found more obvious spatial relationship errors,and to improve the data quality of the pipeline has important significance.In this paper,the method of realizing the synchronous editing of pipeline data between two and three dimensional platforms is presented.

        Key words:underground pipeline;3D;synchronization;pipeline survey

        文章編號(hào):1672-8262(2015)05-75-05中圖分類號(hào):P208.1

        文獻(xiàn)標(biāo)識(shí)碼:B

        收稿日期:?2015—05—10

        作者簡介:王光昇(1979—),男,高級(jí)工程師,主要從事基礎(chǔ)地理信息數(shù)據(jù)處理工作。

        猜你喜歡
        服務(wù)器端視圖反應(yīng)器
        聚丙烯環(huán)管反應(yīng)器升密操作與控制
        云南化工(2021年11期)2022-01-12 06:06:36
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        EGSB反應(yīng)器處理阿維菌素廢水
        5.3 視圖與投影
        視圖
        Y—20重型運(yùn)輸機(jī)多視圖
        SA2型76毫米車載高炮多視圖
        上旋流厭氧反應(yīng)器在造紙廢水處理中的應(yīng)用
        在Windows中安裝OpenVPN
        費(fèi)托合成微反應(yīng)器研究進(jìn)展
        妺妺窝人体色www聚色窝仙踪| 丁香婷婷激情俺也去俺来也| 国产亚洲中文字幕一区| 国产爆乳美女娇喘呻吟| 射死你天天日| 久久婷婷人人澡人人爽人人爱| 欧美亚洲精品一区二区| 国产精品久久无码免费看| 亚洲av影片一区二区三区| 国产极品大奶在线视频| 亚无码乱人伦一区二区| 国产成人综合亚洲看片| 伊伊人成亚洲综合人网香| 亚洲av成人精品日韩一区| 国产呦系列视频网站在线观看| 日本黄色影院一区二区免费看 | 中文字幕福利视频| 亚洲av五月天天堂网| 亚洲精品一区二区三区52p| 人人妻一区二区三区| 国产精品无码精品久久久| 魔鬼身材极品女神在线| 男女无遮挡高清性视频| 国产精品免费看久久久8| 中文字幕精品久久天堂一区 | 456亚洲老头视频| 日本加勒比一道本东京热| 国产大屁股喷水视频在线观看| 丰满熟女人妻中文字幕免费| 亚洲欧美日韩精品高清| 人妖啪啪综合av一区| 国产一区二区三区免费观看在线 | 91spa国产无码| 日韩一区二区,亚洲一区二区视频| 国产激情视频免费在线观看 | 99精品国产99久久久久久97| 久久精品国产亚洲av大全相关| 国产尤物自拍视频在线观看| 国产乱人伦av在线麻豆a| 人妻系列无码专区久久五月天 | 国产av精品久久一区二区|