工业机器人编程语言:KRL(KUKA):KUKA机器人路径规划与优化技术教程_第1页
工业机器人编程语言:KRL(KUKA):KUKA机器人路径规划与优化技术教程_第2页
工业机器人编程语言:KRL(KUKA):KUKA机器人路径规划与优化技术教程_第3页
工业机器人编程语言:KRL(KUKA):KUKA机器人路径规划与优化技术教程_第4页
工业机器人编程语言:KRL(KUKA):KUKA机器人路径规划与优化技术教程_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

工业机器人编程语言:KRL(KUKA):KUKA机器人路径规划与优化技术教程1KRL(KUKA)编程基础1.1KRL语言简介KRL(KUKARobotLanguage)是KUKA机器人专有的编程语言,用于控制和编程KUKA机器人。它是一种高级语言,设计用于简化工业机器人编程,提供直观的语法和丰富的功能集,使用户能够轻松地创建和修改机器人程序。KRL支持各种机器人运动控制、传感器数据处理、逻辑控制和通信功能,是KUKA机器人系统的核心组成部分。1.1.1特点直观的语法:KRL的语法设计接近自然语言,易于理解和学习。强大的功能:包括运动控制、逻辑处理、数据管理等。灵活性:支持多种编程模式,如顺序执行、循环、条件判断等。安全性:内置安全机制,确保机器人操作的安全性。1.2KUKA机器人系统架构KUKA机器人的系统架构主要由以下几个部分组成:机器人本体:执行物理操作的机械结构。控制柜:包含机器人控制器和必要的电子设备。操作面板:用于手动操作和程序调试。软件系统:包括KRL编程环境和机器人操作系统。1.2.1控制柜控制柜是KUKA机器人的大脑,负责处理所有来自传感器的输入数据,执行KRL程序,并控制机器人的运动。它包含主控制器、电源模块、I/O模块等。1.2.2软件系统KUKA的软件系统包括:KUKA.SimPro:用于机器人模拟和程序验证。KUKA.WorkVisual:KRL编程的主要环境,提供程序编辑、调试和上传功能。1.3KRL编程环境搭建搭建KRL编程环境通常需要以下步骤:安装KUKA.WorkVisual:这是KUKA官方提供的编程软件,可在KUKA官方网站下载。配置机器人系统:在软件中设置机器人的型号、工作范围等参数。创建项目:在KUKA.WorkVisual中创建新的项目,用于编写和管理KRL程序。编写程序:使用KRL语言在项目中编写机器人程序。上传程序:将编写的程序上传到机器人控制柜中。1.3.1示例在KUKA.WorkVisual中创建一个新项目:1.打开KUKA.WorkVisual软件。

2.选择“File”->“NewProject”。

3.选择机器人型号,例如KUKAKR6R900。

4.设置项目名称和保存位置。

5.点击“Create”完成项目创建。1.4基本运动指令学习KRL提供了多种运动指令,用于控制机器人的运动。以下是一些基本的运动指令:PTP(PointtoPoint):点到点运动,机器人从一个点直接移动到另一个点,路径不重要。LIN(Linear):线性运动,机器人沿直线从一个点移动到另一个点。CIRC(Circular):圆周运动,机器人沿圆周路径移动。1.4.1示例:PTP运动指令//定义目标点

VARpos1=[100,200,300,0,0,0];

//使用PTP指令移动到目标点

PTP(pos1);1.4.2示例:LIN运动指令//定义起点和终点

VARpos_start=[100,200,300,0,0,0];

VARpos_end=[400,500,600,0,0,0];

//使用LIN指令沿直线移动到终点

LIN(pos_end,VEL=1000,ACC=1000,pos_start);1.4.3示例:CIRC运动指令//定义起点、中间点和终点

VARpos_start=[100,200,300,0,0,0];

VARpos_center=[200,300,400,0,0,0];

VARpos_end=[300,400,500,0,0,0];

//使用CIRC指令沿圆周路径移动到终点

CIRC(pos_end,VEL=1000,ACC=1000,pos_center,pos_start);通过这些基本的运动指令,可以开始构建简单的机器人程序,实现自动化任务的执行。在实际应用中,根据具体任务需求,可能还需要结合传感器数据、逻辑控制等其他功能,以实现更复杂的操作。2路径规划与控制2.1路径规划原理路径规划是工业机器人操作中的关键步骤,它涉及到从起点到终点的运动路径设计。在工业环境中,机器人需要高效、精确地完成任务,路径规划确保了这一过程的顺利进行。路径规划原理通常包括以下几个方面:障碍物检测与避免:通过传感器数据,识别工作空间中的障碍物,规划一条避开障碍物的路径。路径优化:计算最短、最快或最节能的路径,以提高生产效率。运动学与动力学分析:确保路径在机器人的物理限制内,同时考虑加速度、速度和力的限制。2.2KRL中的路径点设置KRL(KUKARobotLanguage)是KUKA机器人使用的编程语言。在KRL中,路径点的设置是通过定义一系列的坐标点来实现的,这些点构成了机器人运动的路径。路径点可以是笛卡尔坐标或关节坐标,具体取决于应用需求。2.2.1示例代码//定义笛卡尔坐标路径点

VARposCartesian1=[1000,0,500,0,0,0];

VARposCartesian2=[1000,0,1000,0,0,0];

//移动到第一个路径点

MoveLposCartesian1;

//移动到第二个路径点

MoveLposCartesian2;在上述代码中,VAR关键字用于声明变量,MoveL指令用于执行线性运动,将机器人从一个路径点移动到另一个路径点。2.3连续路径与点到点运动在KRL中,连续路径运动和点到点运动是两种基本的运动模式。2.3.1连续路径运动连续路径运动要求机器人在运动过程中保持连续的轨迹,通常用于需要精确路径控制的场景,如焊接或喷涂。2.3.2点到点运动点到点运动则关注于机器人从一个点快速移动到另一个点,路径的精确度不如连续路径重要,但速度更快,适用于搬运或装配任务。2.3.3示例代码//连续路径运动示例

MoveCposCartesian1,posCartesian2;

//点到点运动示例

MoveJposCartesian1;MoveC指令用于执行连续路径运动,而MoveJ指令则用于点到点运动,通过关节运动实现快速定位。2.4路径平滑技术路径平滑技术用于改善机器人运动的流畅性和减少振动,这对于提高加工质量和延长机器人寿命至关重要。KRL提供了多种方法来实现路径平滑,包括使用圆弧运动指令和调整运动参数。2.4.1示例代码//使用圆弧运动指令进行路径平滑

VARposCartesian1=[1000,0,500,0,0,0];

VARposCartesian2=[1000,0,1000,0,0,0];

VARposCartesian3=[1000,0,1500,0,0,0];

MoveLposCartesian1;

MoveCposCartesian2,posCartesian3;

//调整运动参数进行路径平滑

MoveLposCartesian1,v1000,z10;在上述代码中,MoveC指令用于创建圆弧运动,实现路径平滑。同时,通过调整速度(v1000)和加速度(z10)参数,可以进一步优化运动过程,减少振动。通过以上内容,我们了解了KRL中路径规划与控制的基本原理和实现方法,包括路径点设置、连续路径与点到点运动的区别,以及路径平滑技术的应用。这些知识对于有效操作和编程KUKA机器人至关重要。3优化技术详解3.1运动学优化3.1.1原理运动学优化主要关注于机器人的关节运动,确保机器人在执行任务时,其关节轨迹平滑、连续,避免不必要的关节加速和减速,从而提高运动效率和减少机械磨损。在KUKA机器人中,运动学优化通常涉及调整关节速度、加速度和路径规划参数,以达到最佳的运动效果。3.1.2内容关节速度和加速度的调整:通过设置合理的速度和加速度限制,可以避免关节在运动过程中的剧烈变化,减少振动和冲击。路径规划参数优化:合理设置路径规划参数,如路径平滑度、关节限制等,可以改善机器人运动的流畅性和精度。3.1.3示例假设我们有一台KUKA机器人,需要执行一个特定的运动任务,我们可以通过调整运动学参数来优化其运动轨迹。//设置关节速度和加速度

setJointSpeed(100);//设置关节速度为100%

setJointAcceleration(50);//设置关节加速度为50%

//定义路径点

pointp1=[0,0,0,0,0,0];

pointp2=[100,0,0,0,0,0];

//使用平滑路径规划

moveL(p1,0.5,0.5,0.5,0.5,0.5,0.5);

moveL(p2,0.5,0.5,0.5,0.5,0.5,0.5,100,50,0.1,0.1,0.1,0.1,0.1,0.1);在上述代码中,我们首先设置了关节速度和加速度,然后定义了两个路径点p1和p2。使用moveL指令时,我们不仅指定了路径点,还设置了路径平滑度和关节限制,以优化机器人运动。3.2动力学优化3.2.1原理动力学优化关注于机器人在运动过程中的力和能量消耗,通过调整负载参数、运动速度和加速度,以及使用动力学补偿算法,来减少能量消耗,提高运动效率和稳定性。3.2.2内容负载参数调整:正确设置负载参数,如质量、重心位置等,可以确保动力学模型的准确性,从而优化运动控制。动力学补偿算法:使用动力学补偿算法,如前馈控制,可以减少运动过程中的力矩波动,提高运动的平稳性。3.2.3示例在KRL中,我们可以通过调整负载参数和使用动力学补偿算法来优化机器人的动力学性能。//设置负载参数

setLoad(10,[0,0,0],[0,0,0]);

//使用动力学补偿算法

setDynamicsCompensation(1);//开启动力学补偿

//定义路径点

pointp1=[0,0,0,0,0,0];

pointp2=[100,0,0,0,0,0];

//执行运动

moveL(p1,0.5,0.5,0.5,0.5,0.5,0.5);

moveL(p2,0.5,0.5,0.5,0.5,0.5,0.5);在本例中,我们首先设置了负载参数,然后开启了动力学补偿算法。通过这些设置,机器人在执行从p1到p2的直线运动时,将更加平稳,能量消耗也会减少。3.3路径优化算法介绍3.3.1原理路径优化算法旨在寻找从起点到终点的最优路径,考虑因素包括路径长度、运动时间、能量消耗等。常见的路径优化算法有A*算法、Dijkstra算法、RRT(随机树重构)算法等。3.3.2内容**A*算法**:结合了Dijkstra算法和启发式搜索,通过评估函数来预测路径成本,快速找到最优路径。RRT算法:适用于高维空间的路径规划,通过随机采样和树结构扩展,逐步逼近目标点,找到可行路径。3.3.3示例虽然KRL本身不直接支持高级路径优化算法的实现,但我们可以使用外部软件或库,如Python的networkx库,来计算最优路径,然后将结果转换为KRL指令。importnetworkxasnx

#创建图

G=nx.Graph()

#添加节点和边

G.add_node(1)

G.add_node(2)

G.add_node(3)

G.add_edge(1,2,weight=10)

G.add_edge(1,3,weight=20)

G.add_edge(2,3,weight=5)

#使用A*算法找到最优路径

path=nx.astar_path(G,1,3)

#输出路径

print(path)#输出:[1,2,3]在上述Python代码中,我们使用networkx库创建了一个图,并添加了节点和边。然后,我们使用A*算法找到了从节点1到节点3的最优路径。虽然这只是一个简单的图示例,但在实际应用中,我们可以使用类似方法来规划机器人在复杂环境中的路径,然后将计算出的路径点转换为KRL指令,供机器人执行。3.4KRL中的路径优化实践3.4.1原理在KRL中,路径优化实践通常涉及使用内置的路径规划指令和算法,以及根据具体应用调整运动参数。通过合理设置,可以实现更高效、更精确的机器人运动。3.4.2内容使用KRL内置路径规划指令:如moveL、moveC等,这些指令可以生成平滑的直线或圆弧运动。调整运动参数:根据任务需求,调整速度、加速度、路径平滑度等参数,以优化路径。3.4.3示例在KRL中,我们可以通过调整运动参数和使用内置路径规划指令来优化机器人路径。//定义路径点

pointp1=[0,0,0,0,0,0];

pointp2=[100,0,0,0,0,0];

pointp3=[100,100,0,0,0,0];

//使用平滑路径规划指令

moveL(p1,0.5,0.5,0.5,0.5,0.5,0.5);

moveL(p2,0.5,0.5,0.5,0.5,0.5,0.5);

moveL(p3,0.5,0.5,0.5,0.5,0.5,0.5);

//调整运动参数

setJointSpeed(80);//调整关节速度

setJointAcceleration(40);//调整关节加速度在本例中,我们定义了三个路径点p1、p2和p3,并使用moveL指令执行平滑的直线运动。此外,我们还调整了关节速度和加速度,以优化机器人在执行路径时的性能。通过上述示例和讲解,我们可以看到,在KRL中,通过合理设置运动学参数、动力学参数,以及使用内置路径规划指令,可以有效地优化KUKA机器人的路径规划与运动控制,从而提高生产效率和产品质量。4高级编程技巧4.1自定义路径规划函数在KUKA机器人编程中,自定义路径规划函数允许程序员根据特定的应用需求,创建更精确和高效的运动路径。这通常涉及到使用KRL中的数学函数和逻辑控制结构来定义路径的计算规则。4.1.1示例:创建一个自定义路径规划函数假设我们需要一个函数,用于计算机器人从点A到点B的直线运动路径,但要确保在运动过程中,机器人始终保持一定的安全距离,避免与工作区域内的固定障碍物发生碰撞。//自定义路径规划函数,确保机器人运动时避开障碍物

FUNCTIONPathPlanningAvoidObstacles(INTEGERstart_point,INTEGERend_point,REALsafety_distance)

VAR

path:PATH;

start_pos:VECTOR;

end_pos:VECTOR;

obstacle_pos:VECTOR;

obstacle_radius:REAL;

BEGIN

//获取起点和终点位置

start_pos:=GetPosition(start_point);

end_pos:=GetPosition(end_point);

//获取障碍物位置和半径

obstacle_pos:=GetObstaclePosition();

obstacle_radius:=GetObstacleRadius();

//计算直线路径

path:=Line(start_pos,end_pos);

//检查路径是否与障碍物相交

IFPathIntersectsObstacle(path,obstacle_pos,obstacle_radius+safety_distance)THEN

//如果相交,重新规划路径

path:=AvoidObstaclePath(start_pos,end_pos,obstacle_pos,obstacle_radius+safety_distance);

ENDIF;

//返回规划后的路径

RETURNpath;

END;在这个示例中,我们首先定义了一个函数PathPlanningAvoidObstacles,它接受起点、终点和安全距离作为输入参数。函数内部,我们获取了起点和终点的实际位置,以及障碍物的位置和半径。然后,我们计算了一个从起点到终点的直线路径,并检查这个路径是否与障碍物相交。如果相交,我们调用另一个函数AvoidObstaclePath来重新规划路径,确保机器人能够安全地避开障碍物。4.2利用KRL进行路径补偿路径补偿是在机器人运动过程中,根据实时的传感器数据或环境变化,对预设路径进行微调的过程。这可以提高机器人在动态环境中的适应性和精度。4.2.1示例:基于传感器数据的路径补偿假设我们有一个传感器,可以实时检测工作台上的零件位置,我们需要根据这些数据调整机器人的抓取路径,以确保每次都能准确地抓取零件。//基于传感器数据的路径补偿函数

FUNCTIONPathCompensation(INTEGERpath_id,REALsensor_data)

VAR

path:PATH;

adjusted_path:PATH;

offset:VECTOR;

BEGIN

//获取预设路径

path:=GetPath(path_id);

//根据传感器数据计算偏移量

offset:=CalculateOffset(sensor_data);

//应用偏移量进行路径补偿

adjusted_path:=OffsetPath(path,offset);

//返回补偿后的路径

RETURNadjusted_path;

END;在这个示例中,我们定义了一个PathCompensation函数,它接受一个路径ID和传感器数据作为输入。函数内部,我们首先获取了预设路径,然后根据传感器数据计算了一个偏移量。接下来,我们使用OffsetPath函数来调整路径,最后返回补偿后的路径。4.3路径同步与协调控制在多机器人协作或机器人与外部设备同步操作的场景中,路径同步与协调控制是关键。这涉及到确保机器人运动与外部事件或其它机器人运动的精确同步。4.3.1示例:多机器人同步运动假设我们有两个KUKA机器人,需要同时开始运动,一个从点A到点B,另一个从点C到点D,且它们的运动需要同步完成。//多机器人同步运动控制

FUNCTIONSynchronizedMotion(INTEGERrobot1_id,INTEGERrobot2_id,PATHpath1,PATHpath2)

VAR

motion1:MOTION;

motion2:MOTION;

BEGIN

//为两个机器人创建运动指令

motion1:=Motion(robot1_id,path1);

motion2:=Motion(robot2_id,path2);

//使用同步指令开始两个机器人的运动

Sync(motion1,motion2);

//等待两个运动指令完成

WaitMotion(motion1);

WaitMotion(motion2);

END;在这个示例中,我们定义了一个SynchronizedMotion函数,它接受两个机器人的ID和它们各自的运动路径作为输入。函数内部,我们为每个机器人创建了一个运动指令,然后使用Sync函数来同步开始这两个运动指令。最后,我们使用WaitMotion函数来等待两个运动指令的完成,确保它们同步结束。4.4故障诊断与路径修复在机器人运行过程中,可能会遇到各种故障,如运动偏差、传感器故障等。故障诊断与路径修复技术旨在检测这些故障,并自动调整或修复路径,以恢复机器人的正常运行。4.4.1示例:基于偏差检测的路径修复假设机器人在执行预设路径时,由于某些原因(如机械磨损)导致实际运动与预设路径存在偏差。我们需要一个函数来检测这种偏差,并自动修复路径。//基于偏差检测的路径修复函数

FUNCTIONPathRepair(INTEGERrobot_id,PATHcurrent_path,REALmax_deviation)

VAR

deviation:REAL;

new_path:PATH;

BEGIN

//检测机器人运动偏差

deviation:=DetectDeviation(robot_id,current_path);

//如果偏差超过最大允许值,修复路径

IFdeviation>max_deviationTHEN

new_path:=RepairPath(current_path);

//将修复后的路径应用到机器人

SetPath(robot_id,new_path);

ENDIF;

END;在这个示例中,我们定义了一个PathRepair函数,它接受机器人ID、当前路径和最大允许偏差作为输入。函数内部,我们首先使用DetectDeviation函数来检测机器人在执行当前路径时的运动偏差。如果偏差超过了最大允许值,我们调用RepairPath函数来修复路径,并使用SetPath函数将修复后的路径应用到机器人上,以恢复其正常运行。以上示例展示了KUKA机器人编程中的一些高级技巧,包括自定义路径规划、基于传感器数据的路径补偿、多机器人同步运动控制以及基于偏差检测的路径修复。通过这些技术,可以显著提高机器人在复杂和动态环境中的性能和可靠性。5工业机器人编程语言:KRL(KUKA):案例分析与实践5.1搬运机器人路径规划案例5.1.1原理与内容搬运机器人在工业自动化中扮演着重要角色,其路径规划直接影响到生产效率和安全性。KRL(KUKARobotLanguage)提供了多种路径规划指令,如LIN(线性运动)、CIRC(圆弧运动)和SPLINE(样条曲线运动),用于精确控制机器人的运动轨迹。5.1.2示例:使用KRL进行搬运机器人路径规划假设我们需要控制KUKA机器人从点A移动到点B,再移动到点C,最后回到点A,形成一个矩形路径。我们将使用KRL的LIN指令来实现这一路径规划。//定义点A、B、C的坐标

VARposA:pos:=[100,0,0,0,0,0];

VARposB:pos:=[100,100,0,0,0,0];

VARposC:pos:=[0,100,0,0,0,0];

//机器人从点A线性移动到点B

LINposB,vel=50,acc=50,blend=10;

//从点B移动到点C

LINposC,vel=50,acc=50,blend=10;

//从点C移动回点A

LINposA,vel=50,acc=50,blend=10;在上述代码中,LIN指令用于控制机器人进行线性运动。vel参数定义了运动速度,acc参数定义了加速度,blend参数用于控制运动轨迹的平滑度。通过调整这些参数,可以优化搬运机器人的路径,提高效率和减少碰撞风险。5.2焊接机器人路径优化实践5.2.1原理与内容焊接机器人路径优化是确保焊接质量和提高生产效率的关键。优化路径需要考虑焊缝的几何形状、焊接参数和机器人的运动特性。KRL提供了高级路径规划功能,如PATH指令,可以生成连续、平滑的焊接路径。5.2.2示例:使用KRL优化焊接机器人路径假设我们有一系列焊缝点,需要机器人连续焊接。我们将使用KRL的PATH指令来规划一个连续的焊接路径。//定义焊缝点坐标

VARpathPoints:array[1..4]ofpos:=[

[100,0,0,0,0,0],

[100,100,0,0,0,0],

[0,100,0,0,0,0],

[0,0,0,0,0,0]

];

//创建焊接路径

VARpath:path:=PATH(pathPoints);

//执行焊接路径

FOLLOWpath,vel=30,acc=30,blend=5;在本例中,PATH指令用于创建一个基于焊缝点的路径,FOLLOW指令则用于执行该路径。通过调整vel、acc和blend参数,可以优化焊接过程中的速度、加速度和平滑度,从而提高焊接质量和效率。5.3装配机器人路径控制案例5.3.1原理与内容装配机器人路径控制需要高精度和灵活性,以适应不同零件的装配需求。KRL提供了精细的路径控制功能,如PTP(点到点运动)和LIN指令,以及OFFSET指令用于调整机器人在装配过程中的位置和姿态。5.3.2示例:使用KRL进行装配机器人路径控制假设我们需要控制装配机器人从当前位置移动到零件上方,然后下降进行装配,最后回到安全位置。我们将使用PTP和LIN指令,结合OFFSET指令来实现这一路径控制。//定义零件上方和安全位置的坐标

VARposAbovePart:pos:=[100,0,100,0,0,0];

VARposSafe:pos:=[0,0,100,0,0,0];

//机器人移动到零件上方

PTPposAbovePart,vel=50,acc=50;

//下降进行装配,使用OFFSET指令调整姿态

LINOFFSET(posAbovePart,z=-100),vel=10,acc=10;

//完成装配后回到安全位置

PTPposSafe,vel=50,acc=50;在上述代码中,PTP指令用于快速移动到零件上方,而LIN指令结合OFFSET指令用于精确控制机器人下降到零件表面进行装配。通过这种方式,可以确保装配过程的精度和稳定性。5.4KRL编程实战:路径规划与优化5.4.1实战指南在实际工业应用中,路径规划与优化需要综合考虑多种因素,包括机器人工作空间、障碍物、零件位置和姿态等。KRL提供了丰富的指令和函数,如DISTANCE函数用于计算两点之间的距离,AVOID指令用于避免障碍物,这些工具可以帮助我们更有效地规划和优化机器人路径。5.4.2示例:使用KRL进行复杂路径规划与优化假设我们需要规划一个机器人路径,使其在避免障碍物的同时,从点A移动到点B,再到点C,最后回到点A。我们将使用AVOID指令和DISTANCE函数来实现这一路径规划与优化。//定义点A、B、C和障碍物的坐标

VARposA:pos:=[100,0,0,0,0,0];

VARposB:pos:=[100,100,0,0,0,0];

VARposC:pos:=[0,100,0,0,0,0];

VARobstacle:pos:=[50,50,0,0,0,0];

//计算点A到点B的距离

VARdistAB:real:=DISTANCE(posA,posB);

//机器人从点A移动到点B,避免障碍物

AVOIDobstacle,LINposB,vel=50,acc=50,blend=10;

//从点B移动到点C

LINposC,vel=50,acc=50,blend=10;

//从点C移动回点A

LINposA,vel=50,acc=50,blend=10;在本例中,DISTANCE函数用于计算点A到点B的距离,而AVOID指令则用于确保机器人在移动过程中能够避开障碍物。通过这种方式,可以确保机器人路径的安全性和效率。通过以上案例分析与实践,我们可以看到KRL在工业机器人路径规划与优化中的强大功能。合理运用KRL指令和函数,可以显著提高工业机器人的工作性能,满足不同工业场景的需求。6KRL路径规划与优化总结在工业自动化领域,KUKA机器人语言(KRL)为机器人提供了强大的编程能力,特别是在路径规划与优化方面。KRL允许用户精确控制机器人的

温馨提示

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

评论

0/150

提交评论