項(xiàng)目十二 智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案設(shè)計(jì)與實(shí)踐_第1頁(yè)
項(xiàng)目十二 智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案設(shè)計(jì)與實(shí)踐_第2頁(yè)
項(xiàng)目十二 智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案設(shè)計(jì)與實(shí)踐_第3頁(yè)
項(xiàng)目十二 智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案設(shè)計(jì)與實(shí)踐_第4頁(yè)
項(xiàng)目十二 智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案設(shè)計(jì)與實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、項(xiàng)目十二:智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案設(shè)計(jì)與實(shí)踐一、教學(xué)目標(biāo)1、掌握物聯(lián)網(wǎng)倉(cāng)儲(chǔ)貨物門(mén)禁、入庫(kù)等多個(gè)功能模塊設(shè)計(jì)。2、掌握物聯(lián)網(wǎng)倉(cāng)儲(chǔ)物門(mén)禁系統(tǒng)門(mén)禁功能設(shè)計(jì)。3、掌握物聯(lián)網(wǎng)倉(cāng)儲(chǔ)物貨門(mén)禁系統(tǒng)整體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn)。二、教學(xué)內(nèi)容12.1智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)概述1、系統(tǒng)概述智能物流倉(cāng)儲(chǔ)系統(tǒng)是以企業(yè)物流業(yè)務(wù)流程為基礎(chǔ),以RFID技術(shù)為實(shí)現(xiàn)手段,實(shí)現(xiàn)從采購(gòu)訂單、收貨、組托上架、盤(pán)點(diǎn)、銷(xiāo)售訂單、揀貨、出庫(kù)到裝車(chē)運(yùn)輸?shù)耐暾悄芪锪髁鞒?,同時(shí)結(jié)合RFID識(shí)別設(shè)備和環(huán)境監(jiān)控,可實(shí)現(xiàn)商品倉(cāng)儲(chǔ)環(huán)境及商品運(yùn)輸途中環(huán)境的實(shí)時(shí)監(jiān)控、設(shè)備管理等功能,并通過(guò)對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行綜合統(tǒng)計(jì)分析和運(yùn)用,達(dá)到改善管理,減少人工、降低成本,

2、提升效率及準(zhǔn)確率,優(yōu)化合理庫(kù)存,縮短商品庫(kù)存周期,提高數(shù)據(jù)實(shí)時(shí)性,實(shí)時(shí)動(dòng)態(tài)掌握庫(kù)存情況,實(shí)現(xiàn)對(duì)庫(kù)存物品的可視化管理的目的,實(shí)現(xiàn)企業(yè)物流過(guò)程的精益管理。2、硬件系統(tǒng)構(gòu)成 RFID標(biāo)簽 :根據(jù)不同的應(yīng)用需求 ,采用高頻和超高頻的產(chǎn)品。分為貨架標(biāo)簽、托盤(pán)標(biāo)簽、設(shè)備標(biāo)簽、單品標(biāo)簽、人員工卡等。讀寫(xiě)器 :分為固定式讀寫(xiě)器和手持移動(dòng)式讀寫(xiě)器兩類(lèi) ,支持 RS232、以太網(wǎng)和無(wú)線(xiàn)局域網(wǎng)等多種通信方式。固定式天線(xiàn) :包括超高頻全向平板、垂直平板和水平平板天線(xiàn) ,能夠適應(yīng)多路徑高散射的復(fù)雜環(huán)境 ,能夠增強(qiáng)接收信號(hào)。12.2 智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案設(shè)計(jì)1、基礎(chǔ)數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)數(shù)據(jù)部分包括:倉(cāng)庫(kù)、供應(yīng)商、產(chǎn)品種類(lèi)、

3、產(chǎn)品、客戶(hù)設(shè)置安全庫(kù)存、付款條件、DPS電子標(biāo)簽設(shè)置等基礎(chǔ)資料部分,主要操作就是增,刪,該,查,保存基礎(chǔ)資料到數(shù)據(jù)庫(kù),以便之后的模塊進(jìn)行操作。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)1)員工表員工表 bas_staffinfo 字段名稱(chēng)說(shuō)明數(shù)據(jù)類(lèi)型SfaffID 工號(hào)varchar(10)StaffName員工姓名varchar(10)RFID員工RFID標(biāo)簽varchar(10)Status狀態(tài)char(1)2)貨品信息表貨品信息表 eqm_cargoinfoCARGOCode貨品編號(hào)VARCHAR(20)RFIDRFID電子標(biāo)簽VARCHAR(24)BARCode條形碼VARCHAR(24)EqptType貨品類(lèi)型V

4、ARCHAR(10)EQPTName貨品名稱(chēng)VARCHAR(50)Status狀態(tài)CHAR(1)3)訂單表表設(shè)備權(quán)限表 eqm_orderStaffID人員工號(hào)VARCHAR(10)CARGORFID貨品RFIDVARCHAR(24)Time訂單時(shí)間DATETIMERTNDate入庫(kù)時(shí)間DATETIMEORDERType訂單類(lèi)別VARCHAR(10)2、智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)整體架構(gòu)設(shè)計(jì)用系統(tǒng)觀(guān)點(diǎn)來(lái)研究物流活動(dòng)是現(xiàn)代物流學(xué)的核心問(wèn)題之一。物流系統(tǒng)分析是指在一定時(shí)間、空間里,以所從事的物流活動(dòng)和過(guò)程作為一個(gè)整體來(lái)處理,用系統(tǒng)的觀(guān)點(diǎn)、系統(tǒng)工程的理論和方法進(jìn)行分析研究,以實(shí)現(xiàn)其空間和時(shí)間的經(jīng)濟(jì)效應(yīng)。物

5、流系統(tǒng)是由運(yùn)輸、儲(chǔ)存、裝卸、搬運(yùn)、包裝、配送、流通加工、信息處理等各個(gè)環(huán)節(jié)所組成的,他們也稱(chēng)為物流系統(tǒng)的子系統(tǒng)。作為系統(tǒng)的輸入是輸送、儲(chǔ)存、搬運(yùn)、裝卸、包裝、物流情報(bào)、流通加工等環(huán)節(jié)所消耗的勞務(wù)、設(shè)備、材料等資源,經(jīng)過(guò)物流系統(tǒng)的處理轉(zhuǎn)化,以物流服務(wù)的方式輸出系統(tǒng)。換句話(huà)說(shuō),整體優(yōu)化的目的就是要使輸入最少,即物流成本最低,消耗的資源最少;而作為輸出的物流服務(wù)效果最佳。作為物流系統(tǒng)服務(wù)性的衡量標(biāo)準(zhǔn)可以列舉如下: 對(duì)用戶(hù)的訂貨能很快地進(jìn)行配送; 接受用戶(hù)訂貨時(shí)商品的在庫(kù)率高; 在運(yùn)送中交通事故、貨物損傷、丟失和發(fā)送錯(cuò)誤少; 保管中變質(zhì)、丟失、破損現(xiàn)象少; 具有能很好地實(shí)現(xiàn)運(yùn)送、保管功能的包裝; 裝卸

6、搬運(yùn)功能滿(mǎn)足運(yùn)送和保管的要求; 能提供保障物流活動(dòng)流暢進(jìn)行的物流信息系統(tǒng),能夠及時(shí)反饋信息; 合理的流通加工,以保證生產(chǎn)費(fèi)用、物流費(fèi)用總和最少。圖12-1RFID通道閱讀器應(yīng)用示意圖3、智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)功能模塊流程設(shè)計(jì)智能物流倉(cāng)儲(chǔ)室基于物聯(lián)網(wǎng)信息平臺(tái),以特高頻RFID通道讀卡器、特高頻RFID手持機(jī)、高頻RFID讀卡器為感知體系,以物流管理軟件為支撐,形成高效統(tǒng)一的入庫(kù)系統(tǒng)。可完成自動(dòng)批量收貨、入庫(kù)計(jì)劃、組托、上架、采購(gòu)?fù)素?、操作員任務(wù)自動(dòng)下發(fā)、入庫(kù)商品監(jiān)控和門(mén)禁功能。同時(shí)可實(shí)時(shí)觀(guān)察倉(cāng)庫(kù)內(nèi)工作人員工作情況,掌握工作進(jìn)度,確保操作規(guī)范性,保證料帳帳實(shí)相符。導(dǎo)航貨位上架錄入采購(gòu)訂單收貨進(jìn)入門(mén)禁

7、允許進(jìn)入結(jié)束開(kāi)始掃描匹配貨物報(bào)警,貨品有誤圖12-2入庫(kù)操作流程圖智能入庫(kù)系統(tǒng)的特點(diǎn): 以物聯(lián)網(wǎng)信息平臺(tái)為基礎(chǔ),形成統(tǒng)一的物流系統(tǒng); 采用超高頻RFID技術(shù),可進(jìn)行收貨批量掃描、入庫(kù)商品監(jiān)控、上架信息自動(dòng)判別是否與入庫(kù)計(jì)劃相符等智能功能,提升入庫(kù)速度、加強(qiáng)入庫(kù)安全;標(biāo)簽可重復(fù)利用,降低管理成本。12.3 智能倉(cāng)儲(chǔ)貨物門(mén)禁系統(tǒng)方案實(shí)踐1、權(quán)限設(shè)備操作連接數(shù)據(jù)庫(kù)/權(quán)限設(shè)備操作連接數(shù)據(jù)庫(kù)public class ConnectionDB private Connection con = null;private Statement stmt = null;private ResultSet rs =

8、 null;public boolean getmart_flag = true;public boolean isLogin_flag = true;/ 連接數(shù)據(jù)庫(kù)public ConnectionDB() try String strurl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);+ DBQ=DataBase/logistics.mdb;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException eg) con = DriverMa

9、nager.getConnection(strurl); catch (Exception es) es.printStackTrace();2、判斷用戶(hù)是否有權(quán)限登錄/ *判斷用戶(hù)是否有權(quán)限登錄*/public boolean isLimit(int name, String mark) boolean f = false;try stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);rs = stmt.executeQuery(select * from bas_us

10、errightinfo where MoniRecoSN = + name+ and RFID = + mark + );while (rs.next() f = true;rs.close();stmt.close();return f; catch (SQLException e) return f;3、權(quán)限設(shè)備操作/ 權(quán)限設(shè)備操作/設(shè)備監(jiān)控入口public class ExecListener extends ContextLoaderListener public void contextDestroyed(ServletContextEvent event) System.out.p

11、rintln(設(shè)備監(jiān)控結(jié)束!); public void contextInitialized(ServletContextEvent event) System.out.println(設(shè)備監(jiān)控開(kāi)始!);final ServletContext context = event.getServletContext();/多線(xiàn)程執(zhí)行操作new Thread( new Runnable() public void run() /定時(shí)執(zhí)行的方法ApplicationContext ac=WebApplicationContextUtils.getRequiredWebApplicationConte

12、xt(context);ExecBrushCard execBrushCard=(ExecBrushCard)ac.getBean(execBrushCard);Timer timer=new Timer();timer.schedule(new ExecTimer(ac), 10,1000); /設(shè)備掃描計(jì)時(shí)器execBrushCard.exec();/門(mén)禁打卡監(jiān)控入口).start(); 4、門(mén)禁監(jiān)控進(jìn)程/門(mén)禁監(jiān)控進(jìn)程(線(xiàn)程一)public class ExecBrushCard AutowiredQualifier(visitData)private VisitData visitDat

13、a;private Judge judge;private ExecSocket esk;public List monitordev;/* * 刷卡時(shí)判斷是否可以登入 * param IP 門(mén)禁IP * param port 門(mén)禁機(jī)器端口 * param rfid員工RFID電子標(biāo)簽 */public boolean run(String IP,int port,String rfid)boolean bl=false;BasUserrightinfo basUserrightinfo=null;List userRightList=new ArrayList();userRightList

14、=visitData.getUserright(rfid);for(BasUserrightinfo userRight:userRightList)BasMonitordevinfo monitordev = (BasMonitordevinfo)visitData.findEntityId(userRight.getMoniRecoSn(), BasMonitordevinfo.class);if(monitordev.getIp().equals(IP) & monitordev.getPort().intValue()=port)bl=true;basUserrightinfo=use

15、rRight;if(bl & basUserrightinfo!=null)return visitData.updateUserright(basUserrightinfo);elsereturn false;/* * 門(mén)禁監(jiān)控執(zhí)行方法 */public void exec() monitordev=visitData.login(設(shè)備門(mén)禁);if(monitordev=null | monitordev.size()1)System.out.println(找不到打卡設(shè)備信息!);return; new Thread(new Runnable() public void run() for

16、(BasMonitordevinfo monit:monitordev)/獲得Socket連接操作類(lèi)esk = new ExecSocket(monit.getIp(),monit.getPort(),ExecBrushCard.this);/執(zhí)行Socket連接方法esk.openSocketConn();).start();public Judge getJudge() return judge;public void setJudge(Judge judge) this.judge = judge; public VisitData getVisitData() return visit

17、Data; public void setVisitData(VisitData visitData) this.visitData = visitData; /門(mén)禁Socket操作類(lèi)public class ExecSocket private String Ip;private int Port;private ExecBrushCard ebc;public boolean connect_flag;public boolean esk_flag;private SocketOperates soc=new SocketOperates();private DataInputStream

18、 dis;public ExecSocket(String Ip,int port,ExecBrushCard ebc)this.Ip=Ip;this.Port=port;this.ebc = ebc;/執(zhí)行Socket操作方法public void openSocketConn() while(true) try Thread.sleep(100);soc.getConnect(Ip,Port, 10000); dis=new DataInputStream(new BufferedInputStream(soc.getClient().getInputStream(); StringBuf

19、fer rfid=new StringBuffer(); connect_flag = true; esk_flag = true;new Thread(new Runnable() public void run() while (esk_flag) try Thread.sleep(3000);if(!esk_flag)connect_flag = false;soc.closeSock();dis.close();soc.client.sendUrgentData(0xFF); catch (Exception e) connect_flag = false;try dis.close(

20、);soc.closeSock(); catch (IOException e1) e1.printStackTrace();break;).start(); do rfid.delete(0, rfid.length(); dis.read(); byte ss=new bytedis.available(); dis.read(ss);/循環(huán)獲得掃描到的所有數(shù)據(jù) for(int i=0;iss.length-1;i+) rfid.append(char)Integer.parseInt(ssi+); ebc.run(Ip, Port, rfid.toString();/對(duì)掃描到的數(shù)據(jù)進(jìn)行對(duì)

21、應(yīng)的操作 while(dis.available()=0&connect_flag); catch (Exception e) System.err.println(e);esk_flag = false;connect_flag = false;try if(dis!=null)dis.close();if(soc!=null)soc.closeSock(); catch (IOException e1) e1.printStackTrace(); 4、設(shè)備監(jiān)控進(jìn)程/設(shè)備監(jiān)控進(jìn)程(線(xiàn)程二)public class ExecTimer extends TimerTask private Lis

22、t listRfid=new ArrayList();private int i=0;private ApplicationContext ac;public ExecTimer(ApplicationContext ac)this.ac=ac;Override/定時(shí)器執(zhí)行內(nèi)容public void run() ExecMonitoring execMonitoring=(ExecMonitoring)ac.getBean(execMonitoring);Jinvoke jin=(Jinvoke)ac.getBean(jinvoke);this.addRfidData(jin.equVisit

23、();/收集每次掃描獲得的數(shù)據(jù)i+;if(i=5 & this.listRfid.size()0)/每掃描5次時(shí)會(huì)對(duì)數(shù)據(jù)處理execMonitoring.run(this.listRfid);/調(diào)用數(shù)據(jù)處理方法this.listRfid.removeAll(listRfid);/處理完數(shù)據(jù)后進(jìn)行清空if(i=5)i=0;/收集數(shù)據(jù)方法public List addRfidData(String rfid)if(rfid=null)return null;for(int i=0;irfid.length;i+)if(rfidi.equals() | rfidi=null)continue;if(

24、listRfid.size()1)listRfid.add(rfidi);elseboolean bl=true;for(String str:listRfid)if(rfidi.equals(str)bl=false;if(bl)listRfid.add(rfidi);return listRfid; /設(shè)備監(jiān)控Socket連接操作public class JinvokeAutowiredQualifier(visitData)private VisitData visit;public String equVisit() BasMonitordevinfo monit=visit.logi

25、n(設(shè)備掃描).get(0);if(monit=null)System.out.println(找不到標(biāo)簽掃描設(shè)備信息!);return null;/Socket連接對(duì)象(IP,端口,初始時(shí)間,指令,數(shù)據(jù)類(lèi)型狀態(tài))SensorTcp soke=new SensorTcp(monit.getIp(), monit.getPort(), 3000, 04 02 01 6b 78 88 05 02 01 fb 4a 88 04 01 00 9b 4a, 1);soke.Operate();/Scket連接方法byte by=soke.getResult();/獲得掃描數(shù)據(jù)if(by=null | b

26、y.length1)System.out.println(掃描沒(méi)有獲得的設(shè)備信息!);return null;String str=BytetoString(by);String data=trimStr(str).split(0c);String ret=new Stringdata.length-1;for (int i = 1; i data.length; i+) reti-1=datai.toUpperCase();return ret; /去除空字符public String trimStr(String str)StringBuffer srtBut= new StringBuf

27、fer();for (int i = 0; i str.length()-6; i+) char cha=str.charAt(i);if(cha!= )srtBut.append(cha);return srtBut.toString();/16進(jìn)制轉(zhuǎn)換 byteStringpublic String BytetoString(byte retval2)/byte到String的一個(gè)轉(zhuǎn)換程序,例如16進(jìn)制0x06使顯示臺(tái)顯示為06byte retval1=retval2;String str=;for(int i=0;iretval1.length;i+) str=str+(Integer.

28、toHexString(retval1i) & 0x000000FF) | 0xFFFFFF00).substring(6)+ ; return str; public void setVisit(VisitData visit) this.visit = visit; /設(shè)備監(jiān)控Socket類(lèi)public class SensorTcp public boolean executeFlag;public boolean connectFlag;private String IP;private int port;private int outtime;private String order

29、;private byte result;private int resultlength;private String originaldata;private String datatype;public SensorTcp(String IP, int port, int outtime, String order, String datatype)this.IP = IP;this.port = port;this.outtime = outtime;this.order = order;this.datatype = datatype;this.executeFlag = false

30、;this.resultlength = 0;this.connectFlag = false;public void setresultlength(int resultlength)this.resultlength = resultlength;public String getoriginaldata()System.out.println(changdu +result.length);reformat(result);return originaldata;/* * 返回ASCII碼數(shù)據(jù) * */public String getoriginaldataASCII()return

31、new String(result);/* * Socket執(zhí)行方法 * */public void Operate()byte sendOrder = null;NumberSendtoPile nsp = new NumberSendtoPile();if(datatype.equals(1)sendOrder = nsp.stringToByte16(order);/指令轉(zhuǎn)換BYTEelse if(datatype.equals(2)sendOrder = nsp.stringToByteASCII(order);/指令轉(zhuǎn)換BYTESocketOperates soc=new Socke

32、tOperates();soc.getConnect(IP, port, outtime);connectFlag = true; DataOutputStream dos = null; DataInputStream dis = null; try dos = new DataOutputStream(new BufferedOutputStream(soc.getClient().getOutputStream(); Thread.sleep(1000); dos.write(sendOrder, 0, sendOrder.length);/發(fā)送指令 dos.flush(); dis=n

33、ew DataInputStream(new BufferedInputStream(soc.getClient().getInputStream(); int recvcontrol = 0; while(dis.available()=0&recvcontrol=resultlength)for(int i=0;i=resultlength)for(int j = 0;jresultlength;j+)cj=bi+j;/System.out.println(Integer.toHexString(cj) & 0x000000FF) | 0xFFFFFF00).substring(6);or

34、iginaldata += Integer.toHexString(cj) & 0x000000FF) | 0xFFFFFF00).substring(6)+ ;String str1=;for(int j=0;jc.length-2;j+)str1=str1+(+Integer.toHexString(cj) & 0x000000FF) | 0xFFFFFF00).substring(6);byte sbuf = CRC16M.getSendBuf(str1);str1=CRC16M.getBufHexStr(sbuf).substring(CRC16M.getBufHexStr(sbuf)

35、.length()-4, CRC16M.getBufHexStr(sbuf).length();String str2=;for(int j=0;j2;j+)str2=str2+(+Integer.toHexString(cc.length-2+j) & 0x000000FF) | 0xFFFFFF00).substring(6);if(!str2.equalsIgnoreCase(str1)c = null;elsec = null;return c; public byte getResult() return result; public void setResult(byte resu

36、lt) this.result = result; /設(shè)備監(jiān)控?cái)?shù)據(jù)處理類(lèi)public class ExecMonitoring AutowiredQualifier(judge)private Judge judge;AutowiredQualifier(visitData)private VisitData visitData;public static List assetsList=null;/* * 運(yùn)行方法 */public void run(List list)if(ExecMonitoring.assetsList=null)ExecMonitoring.assetsList =

37、 visitData.getDataAssets();/初始化獲得所有的設(shè)備IDSystem.out.println(初始數(shù)據(jù)長(zhǎng)度:+ExecMonitoring.assetsList.size();System.out.println(上一步數(shù)據(jù)長(zhǎng)度:+ExecMonitoring.assetsList.size();List rfidList=judge.filterRfid(list);/List rfidList=掃描設(shè)備獲得設(shè)備ID集合System.out.println(當(dāng)前數(shù)據(jù)長(zhǎng)度:+rfidList.size();List takesRfidList=judge.getTake

38、sAssetsRfid(ExecMonitoring.assetsList, rfidList);/數(shù)據(jù)比較 獲得剛被取走的數(shù)據(jù)System.out.println(被取走的設(shè)備數(shù)量:+takesRfidList.size();List backRfidList=judge.udgeAssetsRfid(ExecMonitoring.assetsList, rfidList);/數(shù)據(jù)比較 獲得新歸還的數(shù)據(jù)System.out.println(歸還的設(shè)備數(shù)量:+backRfidList.size();if(takesRfidList.size()1 & backRfidList.size()0)/是否有設(shè)備被取走BasStaffinfo staff=null;BasUserrightinfo basUserrightinfo=visitData.inquireStatus();/獲得當(dāng)前刷卡的記錄數(shù)據(jù)String useType=1;if(basUserrightinfo=null)System.out.println(警告:無(wú)人登入設(shè)備被取走!);useT

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論