# Program Examples:Defining a Cartesian Group/zh-hans

 语言: English  • 中文（简体）‎

## 配置

```common shared gXYZ   as group Axnm = a1 Axnm = a2 Axnm = a3 model=1  of xyz
```

## 轴定义

 NOTE 假设系统中定义了一个全局整数数组pos_units []。它保存每个轴的位置分辨率; 即，电机的旋转一整圈的计数。
 NOTE 在这个例子中，假设线性螺丝和电机之间没有齿轮，螺杆的螺距为每转5毫米。
```sub SetAxis(ax as generic axis, byval vvv as double)
with ax
attach
en = 0
sleep 10
'      simulated = 0

pfac = pos_units[elementid]/5 'For 5mm pitch

vfac = pfac/1000 ' mm /sec
afac = vfac/1000 ' mm /sec^2
jfac = afac/1000 ' mm / sec^3
vmax = vvv
amax = 1500
dmax = 1500
jmax = omega*amax ' Fast reacting
vcruise = vmax
acc = amax
dec = dmax
jerk = jmax
prftype = profile
smooth = -1
vospd               = 2*vmax
velocitysafetylimit = 100*vmax
positionerrorsettle = 5
pemax  = 1
pmaxen = 1
pminen = 1
disp = 0
abs = 1
positionrolloverenable = 0
'      simulated = 1
Print "axis ";elementname;" set."
detach
end with
end sub
```

## 组设置

 NOTE 假设机器人的每个轴的工作范围在0到+300mm之间
```sub SetGroup(gr as generic group)
dim i as long
with gr
attach
en = 0
sleep 10
vfac = 1/1000
afac = vfac/1000
jfac = afac/1000
positionerrorsettle = 2
pemax  = 1
abs = 1

a1.axistype = 0
a2.axistype = 0
a3.axistype = 0

configgroup

vmax = 1000 '  mm/sec
amax = 1500 '  1500 mm/sec^2
dmax = 1500 '  1500 mm/sec^2
jmax = omega*amax
vcruise = vmax
acc = amax
dec = dmax
jerk = jmax

vmtran = vmax
amtran = amax
jmtran = jmax
vtran = vmtran
atran = amtran
dtran = amtran
jtran = jmtran

vmrot = vmax
amrot = amax
jmrot = jmax
vrot = vmrot
arot = amrot
drot = amrot
jrot = jmrot

xmax = 300
xmin = 0

ymax = 300
ymin = 0

zmax =  300
zmin =  0

rmin = 0
rmax = 4000

smooth = -1
prftype = profile

j1.pmin = 0
a1.pmin = 0

j2.pmin = 0
a2.pmin = 0

j3.pmin = 0
a3.pmin = 0

j1.pmax = 300
a1.pmax = 300

j2.pmax = 300
a2.pmax = 300

j3.pmax = 300
a3.pmax = 300

Print "group ";elementname;" set."
detach
end with
end sub
```

## 完成任务

```dim shared profile as long = -1' 2 - Acceleration Trapeze Profile, -1-Sine Acceleration
dim shared omega as double = 15
program
call Setaxis(a1,1000) ' X max speed 1000mm/sec
call Setaxis(a2,1000) ' Y max speed 1000mm/sec
call Setaxis(a3,1000)   ' Z max speed 1000mm/sec
call SetGroup(GXYZ)
end program
```