Labview 第三章 数据类型:数组、簇和波形

上传人:m**** 文档编号:191846217 上传时间:2023-03-05 格式:DOCX 页数:16 大小:421.67KB
收藏 版权申诉 举报 下载
Labview 第三章 数据类型:数组、簇和波形_第1页
第1页 / 共16页
Labview 第三章 数据类型:数组、簇和波形_第2页
第2页 / 共16页
Labview 第三章 数据类型:数组、簇和波形_第3页
第3页 / 共16页
资源描述:

《Labview 第三章 数据类型:数组、簇和波形》由会员分享,可在线阅读,更多相关《Labview 第三章 数据类型:数组、簇和波形(16页珍藏版)》请在装配图网上搜索。

1、第三章 数据类型:数组、簇和波形3.1 概述数组是同类型元素的集合。一个数组可以是一维或者多维, 如果必要,每维最多可有 2311 个元素。可以通过数组索引访 问其中的每个元素。索引的范围是0到n - 1其中n是数组 中元素的个数。图31所显示的是由数值构成的一维数组。注 意第一个元素的索引号为0,第二个是1,依此类推。数组的元 素可以是数据、字符串等,但所有元素的数据类型必须一致。index0123456789110-element array1.23.28.28.04.85.16.01.02.51.7图31 数组示意图簇(Cluste r)是另一种数据类型,它的元素可以是不同类 型的数据。

2、它类似于C语言中的stuct。使用簇可以把分布在流 程图中各个位置的数据元素组合起来,这样可以减少连线的拥挤 程度。减少子VI的连接端子的数量。波形(Wavefo rm)可以理解为一种簇的变形,它不能算是一种有普遍意义的数据类 型,但非常实用。3.2 数组的创建及自动索引3.2.1 创建数组一般说来,创建一个数组有两件事要做,首先要建一个数组的“壳”(shell),然后 在这个壳中置入数组元素(数或字符串等)。如果需要用一个数组作为程序的数据源, 可以选择 FunctionsArrayArray Constant,将它放置在流程图中。 然后再在数组框中放置数值常量、布尔数还是字符串常量。下图

3、显示了在数组框放入字符串常量数组的例子。左边是一个数组 壳,中间的图上已经置入了字符串元素,右边的图反映了数组的 第0个元素为:ABC,后两个元素均为空。Array Constant数组的创建Array Constant在前面板中创建数组的方法是,从 Controls 模板中选择Array & Cluste r,把数组放置在前面板中,然后选择一个对象 (例如数值常量)插入到数组框中。这样就创建了一个数值数组。也可以直接在前面板中创建数组和相应的控制对象,然后将 它们复制或者拖曳到流程图中,创建对应的常数。还有很多在流程图中创建和初始化数组的方法,有些功能函 数也可以生成数组。3.2.2 数组控

4、制对象、常数对象和显示对象通过把数组与数值、布尔数、字符串或者簇组合在一起,可以在前面板和流程图中创建 任何一种控制对象、常数对象和显示对象。数组元素不能是数组、图表或者图形。如果您想 查看一些数组的例子,请查看 ExamplesGeneralarrays.llb 中的例子。3.2.3 自动索引For 循环和 While 循环可以自动地在数组的上下限范围内编索引和进行累计。这些功 能称为自动索引。在启动自动索引功能以后,当把某个外部节点的任何一维元素连接到循环 边框的某个输入通道时,该数组的各个元素就将按顺序一个一个地输入到循环中。循环会对 一维数组中的标量元素,或者二维数组中的一维数组等编制

5、索引。在输出通道也要执行同样 的工作 数组元素按顺序进入一维数组,一维数组进入二维数组,依此类推。在默认情况下,对于每个连接到 For 循环的数组都会执行 自动索引功能。可以禁止这个功能的执行,方法是用鼠标右键单 击通道(输入数组进入循环的位置),在快捷菜单中选择Disable Indexing。练习3-1创建一个自动索引的数组目的:使用For循环的自动索引功能创建数组,并用一个图形(Graph)显示该数组。前面板-0.091IPT14l-li-lduJY图3-2 练习3-1的面板1. 打开一个新的前面板。2. 选择 ControlsArray & Cluster,在前面 板中放置 一个数 组

6、。设 置它的 标签为 WaveformArray。3. 选择ControlsNumeric,在数组框中插入一个数字 式显示对象。如右图所示。它用于显示数组的内容。4. 选择ControlsGraph,在前面板中放置一个波形图。 设置它的标签为 Waveform Graph。5. 隐藏图例和模板。6. 用鼠标右键单击图形,并在快捷菜单中取消选中 YScaleAutoscale Y,禁止自动坐标功能。7. 使用文本工具,把 Y 轴的范围改为-0.5到 1.5。图3-2 练习3 1的流程图流程图8. 按照下图创建流程图。 由 FunctionsSelect a VI.寻找 LabVIEWactivi

7、ty 目 录 下 的 Generate Waveform VI ,它的作用是返回波形中的某一 点。这个VI需要输入一个索引,我们将循环周期 连接到这个输入。 注意 Generate Waveform VI 连出来的连线在循环边界变成一个数组时会变粗,正是在这个边界处形成了一维数 组。 For 循环会自动累计边界内的数组。这种功能叫做自动 索引。在这个例子中,连接到循环计数输入的数值常数令 For 循环创建了一个由 100 个元素组成的数组。 Bundle 函数(Functions Cluster) 一将图块中的各个组件组合成一个簇,在正确连接 P以前需要改变该函数的图标的大小。将移位工具放 在

8、图标的左下角。变形工具会变成如左图所示,拖曳鼠标直到出 现第三个输入端子。 数值常数(FunctionsNumeric) 三个数值常 数用于设置For循环执行的周期数N = 100,初始X=0和delta X=1。9.从前面板执行该VI。该VI将把自动索引后的波形图数组显示在波形图中。10.把X的delta值改为0.5, X的初始值改为20。再次执行该VI。注意,波形图现在同样显示100个点,而每个点的 初始值为20, X的delta值为0.5 (见X轴)。11. 只需在显示器中输入元素的索引号就可以查看波形数 组中的任何元素。如果输入的数比数组的元素个数大,那么显示 器将变暗,表示您没有为该

9、元素设置索引。如果需要一次查看多个元素,可以通过改变数组显 示对象的大小来实现。把定位工具放置在数组框的右下归角。工具将变成右图所示的变形工具。当工具变形时,用鼠标拖 曳数组的右边或者下边。数组现在就可以按照元素索引的上升顺 序显示多个素,以某个与指定索引对应的元素开始,如下图所示。602670.668Waveform ArrayWaveform Array1 02index0.S6iG 0.02index图3-3 练习3 1中多个数组元素的同时观察在前面的流程图中,您为波形图指定了初始的X值和deltaX值。默认的X初始值是0, delta X值是1。这样,也可以把而无需指定初始的 X 值和

10、波形数组直接连接到波形图端子delta X值,如图3 4所示。图3 4 练习3-1使用默认X及Delta X时简化后的流程图12. 按上图删除 Bundle 功能函数和它所连接的常数对 象。方法是用移位工具选择该功能函数和连接的常数对象,按下 vDelete。再选择 EditRemove Bad Wires。按照上图完 成流程图的连线。13. 执行该VI。注意初始的X值是0, delta X值是1。多图区图形可以创建含有多条曲线的图形,方法是创建一个数组,用它来汇集传给单图区图形的类型的数据元素。图3-5 练习3 1多图区图形的流程图14. 按照上图创建流程图。 正弦函FunctionsNum

11、ericTrigonometric)数在这里,它用于在 For 循环中创建一个由数据点组成的数组,表示一个正弦波周期。 Pi 常数( FunctionsNumericAdditional Numeric Constants ) Build Array (FunctionsArray) 在这里,它用于创建合适的数据结构(一个二维数 组),在波形图中绘制两条曲线。用移位工具拖曳边角可以增大该函数的面积,创建两个输入端子。15. 返回前面板,执行该VI。注意同一个波形中的两个图区。默认情况下,它们的X初始值都是0,delta X初始值都是 1 。下图是该程序的运行结果(前面板未改动)。16. 把该

12、VI 保存为 LabVIEWActivity 目录中的 Graph Waveform Arrays.vi。17. 可以修改图形中的某个图区的外观。方法是,用鼠标右键单击这个图形,再从弹出菜单选择对应的图例。Array:0-0.09500.00.50102030405060708090 100-0.5Waveform GraphPlot 0图3 6 练习3 1多图区图形的面板显示练习 31 结束。在上面这个例子中,由于计算端子连接了一个值为100的常数对象,所以For循环将执行100次。下面这个例子显示了另外一种控制循环执行次数的方法。更详细的例子建议调阅 Examples Fundamenta

13、ls Graphs and ChartsGraph ExamplesWaveform Graph 例子。练习3-2对输入数组使用自动索引功能目的:打开并执行一个VI,它将在一个For循环中使用自动索引功能处理一个数组。1. 选 择 FileOpen, 打 开ExamplesGeneralarrays.llb 中 的 Separate Array Values VI 。2. 打开流 程图 。下 面的 示意 图显示的是 在 TRUE 和 FALSE 时的情况。HInitiallyr=0 thenIns p,Sb r将P值插入右寄存器ElseIns p,Sc rend ifSbl=Sb r右寄存器值

14、送给左寄存器Scl=Sc rNext iB=Sb r右寄存器值送到正数组C=Sc rPrint B显示Print CEnd练习 3-2 结束。33 数组功能函数LabVIEW 提供了很多用于操作数组的功能函 数,位于 FunctionsArray 中。其中包括 Replace Array Element,、 Search 1D Array、 Sort 1D Array、 Reverse 1D Array 和 Multiply Array Elements 等等。创建数组Build Array函数(FunctionsArray),用于根据标量值或者其他的数组创建一个数组。开始时,Build Ar

15、ray函数具有一个标量输入端子。您可以根据需要向该功能函数中加 入任意数量的输入,输入可以是标量或者数组。如果要添加其他的输入,用鼠标单击函数的 左侧,在弹出菜单中选择Add Eleme nt In put或者Add Arr ay In put。还可以用变形工 具来增大节点的面积(把移位工具放置在某个对象的边角就会变成变形光标)。也可以使用 变形光标或者选择Remove In put来删除输入。下图显示了利用流程图中的常数对象的值创建和初始化数组的两种方法。左侧的方法 是,将 5 个字符串常数放入一个一维字符串数组中。右侧的方法是,将三组数值常数放入 三个一维数值数组,再将这三个数组组成一个二

16、维数组。这样最后产生的是一个 3x3 的数组,三列分别是 3, 4, 7; -1, 6, 2; 5, -2, 8.。还可以通过结合其他的含有标量元素的数组来创建数组。例如,假设有两个数组,三个 标量元素,可把它们组成一个新的数组,顺序是:数组1,标量1,标量2,数组2,标量 3。初始化数组(In itialize Arr ay)用于创建所有元素值都相等的数组。下 图中,该功能函数创建了一个一维数组。Initialize- Array|I32|132dimension size|I32|1D Array元素输入端子决定每个元素的数据类型和数值,维长度输入端子决定数组的长度,例如, 假设元素类型是

17、长整型,值为 5,维长度为100,那么创建的数组是一个一维的、由 100 个值为 5 的长整型元素组成的数组。也可以从前面板控制端子、流程图常数或者程序其他 部分的计算结果得到输入。创建和初始化一个多维数组的方法是,用鼠标右键单击函数的右下侧,在弹出菜单中选 择Add Dimension。还可以使用变形光标来增大初始化数组节点的面积,为每个增加的维 添加一个维长度输入端子。也可以通过缩小节点的方法来删除维,即从函数的弹出菜单中选 择Remove Dimension,或者使用变形光标。下面的示意图显示了怎样初始化一个三维数 组。如果所有的维长度输入都是0,该函数会创建一个具有指定数据类型和维数的

18、空数组。 数组大小Array Size函数,返回输入数组中的元素个数。7325Array|團靭Size = 4 Elements3251422D ArraySize = 2 严3 CQlumns数组子集(Arr ay Subset)选取数组或者矩阵的某个部分。该函数可以返回从某个指针开始的部分数组,并包括了长度元素。下图显示了一些数组子集的例子,注意,数组索引从 0开始。2D Array13252511427Row Index0 1Row Length | 2 |Column Index | 1Column Length | 3 |上325571New 20 Array 索引数组(In dex

19、 Arr ay) 用于访问数组中的某个元素。n-dimension array indx 0element or sub-array疋-|Index Array下图显示了一个索引函数的例子,它用于访问数组中的第三个元素。注意,因为第一个 元素的索引为0,所以第三个元素的索引是 2。325714 I 2 | 勒口才Index | 2 |1D Array1 5 IElement将一个二维数组与Index Array函数相连,Index Array就会含2个索引端子。将一 个三维数组与Index Array函数相连,Index Array就会含3个索引端子。余类推。可以 使用的索引端的符号是一个黑方

20、快,被禁止使用的索引端(Disable Indexing)是一个空 心的小方框。当给一个被禁止使用的索引端连接上一个 Constant 或 Control 是它会自动 变为黑方快,即变为可以索引,相反原来一个可以使用的索引端上连接的 Constant 或 Control 被删去时,索引端符号会自动变为空心的小方框,即变为禁止使用。也可以按照任何维的组合提取子数组,下面的示意图显示了怎样从一个二维数组中提取 一个一维的行或者列数组。还可以从一个三维数组中提取一个二维数组,方法是禁止两个索引端子,或者通过禁止一个索引端子提取一个一维数组。下图显示了从三维数组提取数组的各种方法。下面的规则对使用剪切

21、数组进行了规定:输出对象的维数必须等于被禁止的索引端口的数目。例如0个索引端口被禁止二标量元素1个索引端口被禁止二二维元素2个索引端口被禁止二三维元素 启动的端子所连接的数值必须指定输出元素。这样,您就可以理解,上图中左下方的例子的作用是,利用0列和3行的所有元素产 生一个一维数组,而右上方的例子的作用是利用第一帧中的所有元素产生一个二维数组。新 的第0个元素是与原有元素最近的元素。练习3-3 使用创建数组功能函数目的:使用创建数组函数,把一些元素和输出组织成一个更大的数组。Ait ay 2Ait ay 1+ 4- + 4- + dlldl图3 8 练习3 3的面板和框图1. 按照图3 8创建

22、一个前面板。2. 从 ControlsNumeric 模板中选择一个数字控制对象 放置在前面板中,设置它的标签为 scalar 1。3. 复制并粘贴该数字显示对象,创建两个新的对象,并分 别设置它们的标签为 scalar 2和 scalar 3。4. 创建一个数字控制对象的数组,设置它的标签为 array 1。复制并粘贴它,创建一个新的数组,设置它的标签为 array 2。5. 在 array 1、scalar 1、 scalar 2、scalar 3、array 2 中输入数值 1 到 9 。6. 创建流程图。选择FunctionsArray,在流程图中放 置一个 Build Array 功

23、能函数。用定位工具增大函数额面积, 以容纳 5 个输入。7. 把数组和标量与 Build Array 连接起来。创建输出的 一维数组,它由 array 1 、scalar 1 、 scalar 2 、array 2、 scalar 3中的元素所组成,如图所示。8. 执行该 VI。可以看到 array 1、scalar 1、scalar 2、 scalar 3、 array 2中的数值出现在同一个一维数组中。9. 保存该 VI 为 LabVIEWActivity 目录下的 Build Array.vi。练习 33 结束。3.4 什么是多态化(Polymorphism) ?多态化是指一种函数功能,

24、即可以协调不同格式、维数或者 显示的输入数据。大多数LabVIEW的函数都是多态化的。例如, 图3 9给出了 Add函数的一些多态化组合。CombinationScalar + ScalarScalar + ArrayArray + Array|215|3|2EEHeResultScalarArrayArray图3-9 多态化组合的例子第一个组合中,两个标量相加,结果还是一个标量。第二个 组合中,该标量与数组中的每个元素相加,结果是一个数组。数 组是数据的集合。第三个组合中,一个数组的每个元素被加到另 一个数组的对应元素中。您还可以使用其他的组合,例如数值簇 或者簇数组。可以把这些准则应用到其

25、他的G语言函数或者数据类型。G 语言函数对于各种情况都具有多态性功能。有些函数接受数值和 布尔输入,而有些函数接受其他任何数据格式的组合。如果您想 了 解 更 多 关 于 多 态 化 的 知 识, 请 参 阅 Online ReferenceFunction and VI Reference 。3.5簇3.5.1 创建簇控制和显示ClusterITijjrieri cBoolean Boolean 2String 匚orLtral在前面板上放置一个簇壳(Cluster shell)就创建了一个 簇。然后你可以将前面板上的任何对象放在簇中。例如数组, 你也可以直接从 Control 工具板上直接

26、拖取对象堆放到簇中。 一个簇中的对象必须全部是Control,或全是Indicator,不能 在同一个簇中组合Control与Indicator,因为簇本身的属性 必须是其中之一。一个簇将是Control或Indicator,取决于 其内的第一个对象的状态。如果需要可以使用工具重置簇的大 小。右图所示是一个含4个Control的簇。也可以在流程图上 用类似的方法创建簇常数。如果你要求簇严格地符合簇内对象的大小,可在簇的边界上弹出快速菜单选择自动定义大小(Autosizing) 簇的序( Order) 簇的元素有一个序,它与簇内元素的位置无关。簇内第一个元素的序为 0,第二个是 1, 等等。如果

27、你删除了一个元素,序号将自动调整。如果你想将一个簇与另一个簇连接,这两 个簇的序和类型必须同一。如果想改变簇内元素的序,可在快速菜单中选择ReOrder Controls In Claster,这 时会出现一个窗口,在该窗口内可以修改序。3.5.2使用簇与子VI传递数据一个VI的连接窗口最大有28个端子,如果你不希望使用全部28个端子传递数据, 这既烦琐又易出错。通过把控制或显示对象捆绑成一个簇的方法,仅使用一个端子就可以实 现该功能。捆绑(Bundle)数据CllJSternnnnnnDi: o m p ci nent -I LJlcompunent-I T rclusterBundle 功

28、能将分散的元件集合为一个新的簇,或允许你重置 一个已有的簇中的元素。可以用位置工具拖曳其图标的右下角以 增加输入端子的个数。最终簇的序是取决于被捆绑的输入的顺序。右图中Bundle图标中部的Claster端子用于用新元素重置原簇中的元素。 分解(Unbundle)簇丑cluster3-一cumpunentcumpunentUnbundle 功能是 Bundle 的逆过程,它将一个簇分解为若 干分离的元件。如果你要对一个簇分解,就必须知道它的元素的 个数丄abVIEW还提供一种可以根据元素的名字来捆绑或分解簇 的方法,稍后介绍。练习3 4 簇目的:学习创建簇、分解簇,再捆绑簇并且在另一个簇中显示

29、其内容。Input ClusterOutput ClusterNumeric却 6.00Booleanl Boolean 2NumericstopSTOP |6.00Booleanl Boolean 2StringTsinghuaStringTsinghua图3 10 练习3 4的面板和框图1.打开前面板,创建一个簇壳(Array & Cluste r palette),标签改为In put Cluste r, 拖曳至适当大小。2 .在这个簇壳中放置一个数字Control,两个布尔开关,和一个串Control。3.仿照以上步骤,创建Output Cluste r如上。注意将各Control改为

30、相应的in dicat or。4.用快速菜单查看两个簇的序是否一致,若有差别,改之。6.5 .在前面板上设置一个STOP按钮。注意其缺省值为FALSE,不要改变它的状态。建立如上面所示的流程图。注意在STOP按钮与循环条件端子之间接入了一个NOT函数,因为按钮缺省值为FALSE,经NOT函数后变为TRUE, 这就意味着当按钮状态不变时,循环继续执行,相反一旦按钮动 作,则循环终止。在 6i 版本中这个设置可以简化,不必使用 NOT 函数,直接将STOP 按钮与循环条件端子相连,然后用鼠标右键点击循环条件端子,选择 stop if true 即可。结果如右图所示。7 .返回前面板并运行VI。在输

31、入簇中输入不同的值观察输出。8 .关闭并保存程序。Cluster Exercise.vi练习3-4 结束 3.5.3用名称捆绑与分解簇有时你并不需要汇集或分解整个簇,而仅仅需要对其一、两个元素操作。这时你可以用 名称来捆绑与分解簇。在Cluster工具模板中除了 Bundle及Unbundle功能外,还提供 有Bundle By Name和Unbundle By Name功能。它们允许根据元素的名称(而不是其 位置)来查询元素。与Bundle不同,使用Bundle By Name可以访问你需要的元素,但 不能创建新簇;它只能重置一个已经存在的簇的元素,同时你必须给Bundle By Name图

32、 标中间的输入端子一个输入以申明要替换其元素的簇。 Unbundle 可返回指定名称的簇元 素,不必考虑簇的序和大小。例如,如果你想重置上例中 Boolean 2 的值,就可以使用 Bundle By Name 功能而不必担心簇的序和大小。与此类似如果你要访问串的值,可以使 用 Unbundle By Name 功能。1用名称操作簇String|String Conttol在上面的例子中,Cluster Control中有两个元素,一个是数据类型(名称是Numeric), 另一个是字符串型(名称是St ring),另一个控制是字符串“ ABCD ”,框图如右所示, 运行该程序,即可将簇内的字符

33、串值重置。(本例中为了使Bundle By Name的输入端由 Nume ric变为St ring,需使用快速菜单中的Select Item项操作。)3.5.4 数组和簇的互换 有时你会发现,将数组变为簇(或者相反)很方便。尤其是因为 LabVIEW 包括的关于 数组的操作功能多于簇。例如,前面板上有一个多按钮的簇,你希望颠倒这些按钮值的序。 好了, Reverse 1D Array 功能正好可用,但是它仅可用于数组。这没关系,你可以使用功能 Cluster to Array 将簇转换为数组,使用 Reverse 1D Array 切换开关的值,最后 再利用 Array to Claster

34、变换回簇。cluster叫目Ifarray刃归V3.6 Waveform数据类型在数据采集和信号分析中经常要遇到波形数据,在LabVIEW 6i中增加了 Waveform 数据类型,使得波形的描述更加简洁。Waveform数据类型包含了波形的数据(Y)、起始时 刻(tO)和步长AX,使用Waveform模板的Build Waveform 函数可以建立一个波形。 许多用于数据采集和波形分析的VI和函数的缺省状态都接受或返回Waveform数据类型。 当你将一个 Waveform 数据类型连接到 Waveform Graph 或 Chart 时,会自动画出相应 的曲线。 Waveform 数据类型

35、是根据原有的数据类型进一步“打包”组合而成,这种打包 也不可避免地带来一些负作用,有时还需要对 Waveform 数据类型“解包”。有关这一数 据类型的函数或VI在Functions Waveform和Analyze之中。fr e qiierLcy:iiTipl i tudmphasee :diTipi i ng irLtu图3-12 使用Waveform的波形发生例子图3-12是一个使用 Waveform函数产生正弦波的例子。其中仅仅调用了 Sine Waveform 一个函数,只要将有关参数指定,就可产生正弦波。 Sine Waveform 实际上 是一个子VI,点击其图标,就可看到下层的程序,还是比较复杂的。在LabVIEW 6I以前 的版本中用户就需要那样去编程。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!