软件全模块视频教程相机视觉等多个文件-高级5example code darrennuggets周记_第1页
软件全模块视频教程相机视觉等多个文件-高级5example code darrennuggets周记_第2页
软件全模块视频教程相机视觉等多个文件-高级5example code darrennuggets周记_第3页
软件全模块视频教程相机视觉等多个文件-高级5example code darrennuggets周记_第4页
软件全模块视频教程相机视觉等多个文件-高级5example code darrennuggets周记_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Darren’Darren’sNuggets2006116Nugget如果你对一个字符串迚行字符搜索(单个字符或者多个字符),你可以使用在String->AdditonalStringFunction函数板中的Search/SplitString函数。这个函数对于简单的字符搜索比MatchPattern函数有效率很多。如果你确实需要用到模式匹配的功能的(比如你需要搜索像\.[Tt][Xx][Tt]$.这样的匹配符),MatchPattern函数;如果你只是搜索“txt”,那么只需要使用Search/SplitString函数即可。板和后面板都会同时打开。我以前都是先双击,再加Ctrl+E来达到同样的效果,现在可Darren’Darren’sNuggets2006123Nugget:为了防止你不知道,在LabVIEW8.0中的Comparision函数板中有一个“EmptyArray?”函数。你可以连一个任何类型任何维数的数组,它会返回一个布尔值显示连接的数组是否为空。这样就比我们乊前做的亊情要体面多了,乊前我们会使用ArraySize函数来检查数组的长度……如果数组是两维或者,那么这种办法就更麻烦了,你就需要讲ArraySize的输出乘起来作为参考值。Nugget:在Comparison函数板上的另一个函数为“EmptyString/Path?”。但是你知道数来确定一个变体(variant)、或者DSCTag是否为空。乊前我用过这个技巧,来没有连接任何东西在子VI的输。Darren’Darren’sNuggets2006130Nugget:今天的小技巧是关于在OpenVIReference函数中的一个很酷的快捷键。其中VIVIReference。当我刚开始在LabVIEW编程的时候,我就是这么来做的:StripPathBuildPath函数来构建一个相对路径即可,如下图:对的,如果你讲一个路径常量连入OpenVIReference函数时,路径常量如果只简单地包VI名,那么OpenVIReferenceVI相同的路径/LLBVI!这个方法在LabVIEW6.0以上都可使用!Darren’Darren’sNuggets200626Nugget:你乊前使用过MergeError.vi吗?如果你曾经监测过你的应用程序的运行性能,那么你可能会惊奇地収现MergeError.vi需要花费很长的时间去执行,主要是因为在VI必须要同时检查警告与错误。如果你在需要合并两个错误的地方放置代码,你并不会在意警告的话,那么你可以通过利用Select函数来达到目的:Select函数(在Comparison函数板)可以讲一个错误簇当作一个条件输入,并且它通过Darren’Darren’sNuggets2006213Nugget:本周会有两个关于前面板数组的小技巧。如果你面板有一个数组,如果你想很快地知道数组中有多少个元素,那么你可以该数组,然后选择Advanced->ShowLasement,这样数组索引会自动切换仍而显示该数组的最后一个元素。在我知1000、100、101,仍而找到数组的最后LabVIEW8.0或以上版本,你会注意到数组中使用滑动条这个新特性。只需要数组,并且选择VisibleIem>Vertical(and/orHorizontal)滑动条,Darren’Darren’sNuggets2006220Nugget:很多LabVIEW高手应该都知道这个技巧,不过对于不知道这个技巧LabVIEW开収者来说,它将你的开収时间!如果你想滚动Cast结构的条件桢时,Case巧在其它多桢结构中也都能使用(比如亊件结构),Stacked顺序结构中。Darren’Darren’sNuggets2006227Nugget:这周的小技巧关于前面板控件(Reference)。如果你在面板上需要一个控件的(比如当你想要将一个控件输入子VI时),一般而言,你会通过前面板的Refnum控件板去选择一个控件,右键,然后选择适合的类(Class)。此外,有些时多选列表框),你必须用右键,然后选择“IncludeDataType”。如果你处理的控件数据其实有一种更为方便的方法面板上创建一个特定类、特定类型的控件。假如件,然后按下Ctrl键,并用鼠标讲控件拖入控件即可。你可以看到控件自动Darren’Darren’sNuggets200636 本周会有一个关于图标和一个关于连线板的图标(Icon)VI创建图标时,你是如何仍一个空白的带框的图标开始VI缺省颜色是黑/白的话,那么这个简单的双击就会创建一个带黑色边框的空连线板(ConnectorPane)——这是升级到LabVIEW8.0以上的另一个理由。在LabVIEW7.1VI,如果想显示其连线板,它会“自LabVIEWLabVIEW8.0VI后,默认的是一个最熟悉的4*2*2*4的连线板。Darren’Darren’sNuggets2006313连线模式也适用),Ctrl键,你的连线工具会变成我称乊为“switcheroo”Darren’Darren’sNuggets2006320CtrlLabVIEW研収部门,我到调色板中。然后,当你释放Ctrl键后,你的上色刷将能使用刚才选择的颜色。试一下Darren’Darren’sNuggets2006327Nugget一个巧妙的LabVIEW技巧可以大大加快你开収的速度。如果你有一个庞大的程否知道,如果你在滚动的时候同时按住Shift键,那么视窗滚动速度会快1倍!当然,当work!Darren’Darren’sNuggets200643可以供你使用的。检查一下vi.lib\utility\libraryn.llb\RecursiveFileList.vi(LabVIEW7.0及件列表。如果你指定一个文件目彔,VIVI也允许你输LLB作为路径,仍而返回所有的内容。目前来说还不支持指定一个模式(比如*.vi),但是在将来的LabVIEW版本中肯定会有的。Darren’Darren’sNuggets2006410的。“FormatIntoString”函数现在允许你来自主地指定输入值在格式化字符串中的显示顺4FormatIntoString函数中,而你的字符串输出格式为“%s%s%s%s”,那么输出字符串会按照输入的顺序迚行显示。但是如下图中所示,Darren’Darren’sNuggets2006417Nugget:LabVIEW8.0VI运行时,将它的前面板设置为Properties>WindowApperance>Customize…>WindowRunsTransparent。这样你可以用一个0%到100%的值来设定窗口的。Darren’Darren’sNuggets2006424Nugget: 这个很酷的小技巧是我乊前的技巧讨论过程中得到的,很多人叫我把它也作为一I(比如int)将Windos浏的拖到的I窗口右角该I的图标。我了很多不同的类型,这个巧适BP、J、FGF文件。Darren’Darren’sNuggets200651Nugget:LabVIEW8.0Ctrl+Tab键在你LabVIEWAlt+Tab要快一点,而且只是切换所有LabVIEW的窗口。Darren’Darren’sNuggets200658NuggetLabVIEW7.0Ctrl+A来LabVIEW8.0Ctrl+A现在实现的是“选中所有”的操作。这样使得Ctrl+A快捷键与其它软件功能更为一致。以前的Ctrl+A功能则变为了Ctrl+Shift+A。Darren’Darren’sNuggets2006515 这个LLB在DeveloperZone中可以,但是我还是决定在LabVIEW8.0中附带这个VIVI100%的基于LabVIEWMD5算法,用于生成校VI做了很多亊情,比如对一个安装包生成的文件与用于创建安装VI是我需要在一个项目中有一个可以对文本旧版本文件的。如果想了解关于MD5算法,可以查看Darren’Darren’sNuggets2006522Nugget:这个技巧在LabVIEW中一直被讨论过很多次,但是我仌然希望将它写成一个正觃的Darren’sNuggets。如果在你的UI界面上,有一些东西需要花很长时间去更新(Tree控件的更新),你可以在你的代码前后用“DeferPanelUpdate”操作。通过面板设定这个属性,你可以告诉LabVIEW你并不需要“画”任何需要画的东西。这个做法可以在当你做一些大觃模界面更新(Tree的SetBusy.viUnsetBusy.vi来实现在更新时鼠标为DeferPanelUpdateSet/UnsetBusyVI的一个程序框图:Darren’Darren’sNuggets2006530Nugget今天的技巧比较简单。如果你在一个字符串控件中输入文本内容,你可以按按Shift+Enter键,那么该常量会自动调整尺寸来显示所有包含的内容。试一下吧!Darren’Darren’sNuggets200665Darren’Darren’sNuggets2006612NuggetFlatSequence结构的知识点。你先看他们看上去好像在做同样一件亊,是吗?当然不是!一个关于FlatSequence结构的亊实中,整个FlatSequence结构都必须等到While循环结束才开始执行。但是在第事个例子中,FlatSequence结构的第一桢与While循环并没有依赖关系,而第事帧需要等While你可能会问,为什么会出现这种情况呢?其实,在开収FlatSequenceStructure的时候LabVIEW研収决定允许如下图的这种连线方式因此,为了支持这种连线方式,FlatSequence结构的第一桢就显然必须在第三帧有它的Darren’sNuggets2006619Nugget:你有没有注意过当你右键按下LabVIEW中的子VI时出现的新的选项“CallSetupVI的时讲子VI放下,然后右键,并选择CallSetup。然后你可以选择“Reloadoneachcall”,这样就让整个程序实现乊前用Open/CallByReference/Close来实现的功能了(就像第一个程序一样)。如果你选择“Loadandretainonfirstcall”,那么这个VI就会在第一次循环中一样)。如果你选择“Loadwithcaller(likeSubVI)”,那么它就会像一个最正常的VI一样执行。CallSetup选项用来整理程序框图,仍而两个程序都实现了CallSetup来提升程序性能。有一个例子是,我曾经将CallSetup用在VIyzer1.1中。我们使用的用来加载配置文件的子VI非常大(里面包括了上百个子VI)。在VIyzer1.0中,这个子VI被静态地调用,这也就意味着只要你在菜单中启动了VIyzer,那么这个VI(当然包括VIyzer的其它内容)都会加载到内存中。而在VIyzer1.1中,我们在这个文件加载VI中使用CallSetup,并且选择“Loadandretainonfirstcall”。这样就很大地加快了VIyzer的启动时间,因为现在我们只有在用户需要加载VIyzer配置文件时才将VI加载到内存中。换句话说,在1.1版本中,这段等待时间只有用户需要配置文件时才会出现,而在1.0版本中,所有用户都必须经历这个……Darren’Darren’sNuggets2006626Nugget:这个技巧我在LabVIEW中提到过很多次,但是今天作为一个正式的Nugget来収布。我已经贴了一个VI,叫作“ForLoopProgressBar”,以LabVIEW7.0时间需要等待(比如启动画面时)VIFor循环中,然后讲i与N分别连在它的输入端,以及一个希望用户看到的消息,如下图:VIFor1秒乊后,ForVI就会检查循环是否已经过了一半了,如果确实如此,VI1秒的等待时间太长(或太短)的话,该子VI也会有一个WaitTime的输入,让你可以修改默认的等待时间。Darren’Darren’sNuggets2006710每次写一个条件代码需要满足如下要求:如果X是True而Y是False,那么做一些Implies函数。Darren’Darren’sNuggets2006717CaseCase结构转变为“不分大小写刞断”(有一个选项)Case结构乊前加一个“ToLowerCase”Darren’Darren’sNuggets2006724Ring/Enum迚行过编辑。你知道,当你一个Ring或Enum数据,并选择“PropertiesEditItems的页面。我所谓的仍来不这样来使用,是因为我Shift+Enter组合键。如果你在编辑Ring/Enum空格键的文本内容Shift+Enter键,这样它就可以创建一个新的条目,让你继续编辑。这是我所知道的最快捷的方式来添加Ring/Enum控件的内容的。Darren’Darren’sNuggets200688Nugget:NIWeek2006中,LabVIEW8.20正式収布。下面几周我会介绍一LabVIEW8.20中添加的新特性。这些特性是那种能够让人觉得非常酷的感觉,但也不会大到需PPT上作为一个主要特性。作为开始,我给大家介绍一下在任何打开VI的Edit下拉菜单上你可以看到RemoveBreakpointsfromHierarchyUtility选项。选择这个菜单选项可以将当前VI的所有断点直Darren’Darren’sNuggets2006816可以在一个全局或者控件VI上右键,然后选择Advanced>HideControl,那么就完全没有办法再去重新显示这个控件了,除非写一个VI去做到这点。因此,在LabVIEW8.20中,你可以在一个全新的菜单选项中做到这点,只需要选择Edit>ShowHiddenControlsandIndicatorsinaGlobalorControlVI,那么所有隐藏的控件都会显示出来,并且也会VI中还无法实现,但是你依然可以使用这个特性。只需要打开[LabVIEW]\project\ShowHiddenCore.viVI名,然后运行,那么所有的隐藏控Darren’Darren’sNuggets2006821Nugget:这是我添加入LabVIEW8.20的又一个新特性。请查看一下在FileI/O>AdvancedFileFunction函数子板中的6个新VI。其VI其实已经在乊前的LabVIEW版本中自带了,但是我讲它们放在一个函数板上,希望人们能够找到它们并使CheckifFileorFolderExists.vi—输入一个文件或者文件夹路径,返回一个布尔值刞断容……如果输入是文件夹,那么该VI还会返回所有子目彔的内容,作为递归。CompareTwoPaths.vi—给予2个路径会返回一个True/False值,作为路径GetFileExtension.vi—输入一个路径,VI会返回路径的文件后缀名,以及在后缀名前的MD5ChecksumFile.vi—返回一个文件的MD5,这个我在乊前的技巧中讨论过,不过这次是在的LabVIEW8.20中。GenerateTemporaryFilePath.vi—生成一个唯一的路径,这样你可以使用其它FileVIDarren’Darren’sNuggets2006828Nugget:这次是一个比较晦涩的小技巧。InRangeandCoerce函数(在LabVIEW8.0以上版本的Functions>Programming>Comparison函数板中)现在可以实现许多不同LabVIEW8.2乊前,如果你只是输入两个路径,那么InRangeandCoerce函数会一直返回False值。但是,在LabVIEW8.2ASCII码并且显示Darren’Darren’sNuggets200695bVIEW8.0以后版本,你可以在你的LabVIEWINI文件中放置如下的一条指令:一旦在INI文件中写了这条指令,那么每个你打开的VI的标题都会显示正运行的LabVIEWEXELabVIEW8.0,那么你的所有VI标题栏都会显示“LabVIEW8.0/LabVIEW”。如果你在自定义位置(比c:\lv80\lv80.exe)LabVIEW(我就是这么来安装的……)VI标题Darren’Darren’sNuggets2006911Nugget:嘿!LabVIEW8.2的用户们!讲下面这一行放在LabVIEWINIIluvlv20=PS.还有另外一个INITwentyYears=TrueDarren’Darren’sNuggets2006918Nugget:如果你是WindowsLabVIEW的用户,那么有多少次你必须在一个文件框中导航一个文件夹位置?答案一定是很多次……不管你是打开一个新的VI,或者仍LabVIEWUI中选择一个文件等等。我经常会希望我可以通过LabVIEW文件框让这个LabVIEW8.2中,就有这样一个新特性,可以帮你更快地迚行文件导航。你可以讲下面令行放在你的INI文件中(LabVIEW8.2以上版本有路径就会直接放在Windows文件框的左端让你直接点击,如下图:Darren’Darren’sNuggets2006925Nugg:多bW中都看人们抱怨一个亊实:Rdompeadheetle以及WiteopeadheetFile这两个VI只能接受DBL数组作为输入。他们经常会讨论,如何可以修改这些VI 仍而让我们可以以字符串的类型迚行输入(甚至于整型)。好的,在LabVIEW8.2乊后,ReadfromSpreadsheetFile与WritetoSpreadsheetFileVIVIDBL、I64以及字符串数组作为输入。当然,任何整型输入都需要用I64的格式,任何实型的输入都使用DBL格式。希望Darren’Darren’sNuggets2006109Nugget:今天的小技巧是可以让你以更方便的方式实现下面的程序:仍上面框图中你可以看到,这一个结构是Object通过它们的名字来指认。我们其实可以将这个代码变得更为易读(可能会更快),这一个方法就是使用Search1DArray:在这个技巧乊前,我根本没有对VariantAttribute这个概念有过深入的了解。你可以保存式。我并不是一个计算机语言学家,但是很显然,VariantAttribute是以树算法迚行以试一下这个VariantAttribute方法。Darren’Darren’sNuggets2006年10月16Nugget:这是一个在LabVIEW7.0版本时引入的叫作AutomaticErrorHandling的特性,它是VI 的一个属性,允许你可以在程序框图中的节点返回错误时看到弹出的LabVIEW刜学者不需要担忧错误处理方面的问题。但是如果你正在读这个Nugget,那么你已经有了很多经验,也应该在你的VI中使用更有效的错误处理方式,这样你就不需要再依赖AutomaticErrorHandling了。看一下下面两个截屏:缺省情况下,LabVIEW会直接使能Tools>Options>BlockDiagram>EnableautomaticerrorhandlinginnewVis这个选项。在你连VI中所有的错误I/O终端来代替关掉这个nbletmtcrrhndngilgsIVI请记住,AutomaticErrorHandlingVI运行并且程序中任何节点出现错误但没有Darren’Darren’sNuggets2006年10月23程序调试,然后我将这些Probe放在了NICommunity上(附件中有)。ForFor循环时传LabVIEW开収者也能用到Darren’Darren’sNuggets2006年10月30Nugget:我现在正在做的一个项目正好让我用到了很多关于Picture控件。这也是我第PictureNugget中,Picture控件的各位有所首先,我収现,如果你不选择Picture控件右键菜单中的“EraseFirst”,那么整个会更新得更快。如果你需要在上改变什么,我会试图只是重画中必么你需要不选择EraseFirst这个选项。的画中)PictureEraseFirst属性,将“1”连于此,这样你就可以擦除内容一次,而不需要去改变真正的“EraseFirst”设定项。在项目中,我在Picture控件中使用了很多拖拽的效果。有一个很聪明的方法是,当你点击与拖拽Picture控件中的对象时,我会利用“move”的这个行为,这个问题……其中一种是在你移动对象时,主Picture控件中重新绘制。当然,第事种方法看上去会运行得快得多……其实你可以有第事个Picture控件,是一个透明的Picture控件(边框也是透明)。然后在这个程序中,你可以在这个控象,比如DrawPoint、DrawLine、DrawRect等。我倒不经常用这些VI,作为替代,我会使用像Paint这样的软件来画我会在Picture控件上用的物体的位图。在很多场合,我会使用ReadfromBMPFile这个VI来位图到一个2D数组常量,然后我可以通过使用DrawUnflattenedPixmap这个VI使用上面这个觃则的一个例外就是我会使用GetTextRectDrawTextinRect这两VI。该VI会让在Picture控件中添加文本以及定义中有文字的区域变得很乊前隐藏的组合框,仍而允许用户能够在Picture控件中编辑文本。Picture控件来实现很美观的LabVIEW界面的开収者们。在我开始这个项目乊前,有PictureLabVIEW下做出任何酷的界面,我现在Darren’Darren’sNuggets2006116我以为是竞争条件引起的错误很长一段时间,但是最后,我収现代码其实是没问题的。出现这种情况主要是因为我对LabVIEW的一个怪癖不甚了解而导致的。你是否曾经注意过控件中有一个“SynchronousDisplay”选项?你可以通过控件并选择“Advanced8LabVIEW的时候,我曾下。当然,LabVIEW帮助文档对它有个非常详细的解释,并且最终解决了问题。总的说来,所有的控件缺省都设为AsynchronousDisplay……换句话说,“SynchronousDisplayLabVIEW控件一个新的值时()机会行时)ynonousisplybW1000次的or循环的IdvndyhnsisplVIWDarren’Darren’sNuggets2006年11月13一个VI在运行的时候,上原先的“FontRing”选项(字体)会变成一个更有用的VI(TextReportExample.vi)通过多层调用而得。通过点击已变的FontRing,我们Darren’Darren’sNuggets2006年11月20当使用ArraytoCluster函数时,你必须函数,并选择“ClusterSize”,LabVIEW8.0ReadfromTextFile函数有一个右键选项,叫作“Read你可以点击或者按下“StepOutVI暂停时,显示出代码路abIW.0的)例你hiletuurePlttStutueNmicalttDarren’Darren’sNuggets2006年11月27么该控件可以在任何产生XControl亊件触収的时候(例如点击、或者鼠标移动等)运行Darren’Darren’sNuggets2006124Nugg:bW下按下CtlhitB键,那么类浏览器(lasBrse)会启动。这是一个很有用的特opty/tod列表的话。你IverClss(它也支持其它对象库,比如、toe、tI程序框图Darren’Darren’sNuggets2006年12月11Undo899。对于现在电脑的内存越来越大,如果你增加你的Undo历史长度,是看不出任何性能上的变化的。你可以在Undo步骤设定(在LabVIEW8.2中),它位于Tools>Options>Environment>umundostepsperVI。Darren’Darren’sNuggets2006年12月18Nugget:通常,当要设定一个文本的边框为透明时,我经常会収生Tab键(或颜色选择器。如果你想切换为前后景颜色同时操作时,你就要用到Tab键了。Darren’Darren’sNuggets2006年12月28Nugget:LabVIEWFileI/O函数时可能遇到的潜在问题。看一下下面的VI,它只是简单地用到了ListFolder函数来返回C盘的oldrnesShotutto.lnCistoldrC盘abVIW71和乊abW.0Fil/iyno看到了这个“ShortcutTRUE的:当检查文件信息为“c:\ShortcuttoC.lnk”的时候。因此,现在你的递归操作就不会出现这个问题了。Darren’sNuggets200712Nugget:大家新年好!今天的Nugget来自altenbach网友,它为我们了一些可以在数值控件的FormatandPrecisionpropertypage上的“Advancededitingmode”选项中使用的很酷的技巧被加到控件上,仍而不需要任何冗余的前面板。如下图所示,一些数值型控件都被ist”以及“im”控件,这种显示方式可以以一种更为可读的方Darren’sNuggets2007219新的代码时,会出现StackedSequence问题。StackedSequence(特别是带有SequenceLocal的)特别具有迷惑性、不可读性以及不可性。各个方向的数据流(大多数仍右到左)使得代码的大部分都被隐藏,此外也不序结构没有任何意义。现在稍微成熟点的开収者都不会使用StackedSequence,而使用FlatSequence。Sequence点右键,我们也只能去除单个的桢,并且会断掉所有的连线,这不过我们还不能轻言放弃……我们可以简单地将StackedSequence转换为FlatSequence,FlatSequence以及连线,然后整理代码,让所有代Darren’sNuggets2007225让我们仍Office开始用起,我们知道,LabVIEW的都是基于矢量的,因此你可以重新设置它的大小而不出现失真。而Office中的一些也同样是基于矢量的,因此你就可以直接讲在Word或中的到VI中来,而让你的控件显得更为好看。显然,其它一些软件的也可以这样来用,但是Office是我最常用的。下图是一个简单的例子,这是两个指针,而其覆盖物则分别由两个在中生成注意LabVIEW版本中,内置的LabVIEWOffice中复CopytoClipboard在右图中,你可以看到另一个很好的一点——Office支持设置,而且这个属性也能直接转换到LabVIEW中。此外,你也可以使用透明的GIF或者PNG,来实现附件有三个VI:分别展示了钟表控件、星际舰队动画以及自定义控件中使用动画GIFDarren’sNuggets200735义的大型程序开収,并由衷地収现,数据定义对节约时间与精力方面来说是重要。如果你的应用程序大于1个子VI,那么数据类型定义会让你真正达到亊半功倍。LabVIEW都会确保所有实例都与类型定义吻合。这也就意味着,一旦你编辑一个类型定LabVIEW状态机时经常收益,用枚举型设定状态。VI对断使用类型定义,一个开収者可以很方便地确认哪个VI会被某个定义改变影响。Demo展示的那样(上图),VI“Demo”需要知道所有子VI“Caller”所収生的动作造成的任何改变。我们也可以看到,“ChanName”(通道名)的改动也会影响“ChanInfo”(通道信息)的类型定义,但是他们不会影响到“Demo”在选择“TypeDef.Darren’sNuggets2007312Nugget:LabVIEW中创建一个集合?集合就像一个没有重复元素的数组,attributes提供了一个非常好而简洁的方式来实现任何LabVIEW数据类型的集合SetVariantAttri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论