Skip to content
🤖 AI 助手 / 自动化工具:先读 《AI 助手先读》 《Agent 开发指引》 《生成前信息采集清单》;机器可读入口 /llms.txt;技能包(SKILL)直链:SKILL.md

十二、激光切割工艺(Python) ​

本页对应 C++ 版。函数名与参数顺序与 C++ 完全一致(Python SDK 由 C++ 经 SWIG 生成),差异只在两处:

  1. 返回值形态:C++ 用引用参数回填数据;Python 的返回形态由 SWIG 绑定决定,逐接口实测,不按类型推断。
  2. 少数接口在 Python 中不可直接调用(绑定缺陷),页面内已逐个标注。

本页共 16 个接口,其中 16 个在 Python SDK 中存在。


数据结构 ​

LaserCuttingGlobalParam ​

cpp
struct LaserCuttingGlobalParam {
    LaserCuttingEquipment equipment;  // 设备参数
};

LaserCuttingEquipment 子结构体:

字段类型默认值说明
RetreatDistancedouble0.0回退距离(mm)
arrivalOutLightModeint0到位出光模式
collisionDistancedouble10.0碰撞检测距离(mm)
delAspiratedModeint1延时吸气模式
delAspiratedTimedouble0.0延时吸气时间(S)
focusCompensationboolfalse焦点补偿使能
focusCompensationConstantdouble0.0焦点补偿常数
focusCompensationPowerdouble0.0焦点补偿功率
focusCompensationTimedouble0.0焦点补偿时间(S)
focusFormulaint0焦点计算公式
followint0随动模式
preAspiratedTimedouble0.0预吸气时间(S)
rePerforateint1重穿孔模式
waitFollowTimedouble1.0等待随动时间(S)
waitLiftUpTimedouble1.0等待抬起时间(S)

Python 中定义:nrc_interface.LaserCuttingGlobalParam(构造:nrc.LaserCuttingGlobalParam())。

可用字段(共 1 个,实测 dir()):

equipment


LaserCuttingCraftParam ​

cpp
struct LaserCuttingCraftParam {
    int num;                    // 工艺号
    LaserCuttingParam cut;      // 切割参数
};

LaserCuttingParam 子结构体:

字段类型默认值说明
dutyRatioint0占空比(%)
focusPositiondouble0.0焦点位置(mm)
followHeightdouble0.10随动高度(mm)
freqint1频率(Hz)
powerint1激光功率(%)
pressuredouble0.0气压(bar)
notestring""备注信息

Python 中定义:nrc_interface.LaserCuttingCraftParam(构造:nrc.LaserCuttingCraftParam())。

可用字段(共 2 个,实测 dir()):

cut、num


LaserCuttingAnalogParam ​

cpp
struct LaserCuttingAnalogParam {
    LaserCuttingAnalogMatch analogMatch;  // 模拟量匹配曲线
};

LaserCuttingAnalogMatch 子结构体:

字段类型说明
laserPowerCurve激光功率匹配曲线(含level和x/y向量)
pressureCurve气压匹配曲线(含level和x/y向量)

Curve 结构体:

字段类型说明
levelint曲线等级/层数
xvector<double>X轴数据(输入值)
yvector<double>Y轴数据(输出值)

Python 中定义:nrc_interface.LaserCuttingAnalogParam(构造:nrc.LaserCuttingAnalogParam())。

可用字段(共 1 个,实测 dir()):

analogMatch


LaserCuttingIOParam ​

cpp
struct LaserCuttingIOParam {
    IO io;                        // IO端口配置
    Fault laser_fault;            // 激光器故障输入端口
    Fault pressure_fault;         // 气压故障输入端口
    Fault regulator_fault;        // 调压器故障输入端口
    Fault water_cooler_fault;     // 水冷机故障输入端口
};

IO 子结构体:

字段类型默认值说明
AO_laserPowerint-激光功率模拟量输出端口
AO_pressureint-气压模拟量输出端口
DI_backMiddleArrivalint-回中到位数字量输入端口
DI_capacitance_int-电容传感器数字量输入端口
DI_followArrivalint-随动到位数字量输入端口
DI_liftUpArrivalint-抬起到位数字量输入端口
DI_perforateArrivalint-穿孔到位数字量输入端口
DO_aspirationint-吸气数字量输出端口
DO_backMiddleint-回中数字量输出端口
DO_capacitance_int-电容传感器数字量输出端口
DO_followint-随动数字量输出端口
DO_highPressgasint-高压气数字量输出端口
DO_liftUpint-抬起数字量输出端口
DO_lightGateint-光闸数字量输出端口
DO_lowPressgasint-低压气数字量输出端口
DO_redLightint-红光数字量输出端口
pwm_port_int-PWM输出端口

Fault 结构体:

字段类型说明
input_portint故障信号输入端口号

Python 中定义:nrc_interface.LaserCuttingIOParam(构造:nrc.LaserCuttingIOParam())。

可用字段(共 5 个,实测 dir()):

io、laser_fault、pressure_fault、regulator_fault、water_cooler_fault


12.1 全局参数 ​

laser_cutting_set_global_parameter / laser_cutting_set_global_parameter_robot ​

设置激光切割的全局参数,包括回退距离、碰撞检测、随动模式、穿孔模式等设备级配置。

laser_cutting_set_global_parameter

python
def laser_cutting_set_global_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

laser_cutting_set_global_parameter_robot

python
def laser_cutting_set_global_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingGlobalParam输入切割全局参数

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


laser_cutting_get_global_parameter / laser_cutting_get_global_parameter_robot ​

查询激光切割当前的全局参数配置。

laser_cutting_get_global_parameter

python
def laser_cutting_get_global_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingGlobalParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingGlobalParam()
ret = nrc.laser_cutting_get_global_parameter(fd, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

laser_cutting_get_global_parameter_robot

python
def laser_cutting_get_global_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingGlobalParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingGlobalParam()
ret = nrc.laser_cutting_get_global_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingGlobalParam&输出接收全局参数

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


12.2 工艺参数 ​

laser_cutting_set_craft_parameter / laser_cutting_set_craft_parameter_robot ​

设置激光切割的工艺参数,包括指定工艺号的功率、频率、占空比、焦点位置、随动高度和气压等。

laser_cutting_set_craft_parameter

python
def laser_cutting_set_craft_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

laser_cutting_set_craft_parameter_robot

python
def laser_cutting_set_craft_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingCraftParam输入切割工艺参数,含工艺号和切割参数

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


laser_cutting_get_craft_parameter / laser_cutting_get_craft_parameter_robot ​

查询激光切割的工艺参数。

laser_cutting_get_craft_parameter

python
def laser_cutting_get_craft_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingCraftParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingCraftParam()
ret = nrc.laser_cutting_get_craft_parameter(fd, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

laser_cutting_get_craft_parameter_robot

python
def laser_cutting_get_craft_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingCraftParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingCraftParam()
ret = nrc.laser_cutting_get_craft_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingCraftParam&输出接收工艺参数(需先设置 param.num 指定要查询的工艺号)

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


12.3 模拟量匹配参数 ​

laser_cutting_set_analog_parameter / laser_cutting_set_analog_parameter_robot ​

设置激光切割的模拟量匹配曲线参数,用于将激光功率百分比和气压值映射到实际的模拟量输出电压。

laser_cutting_set_analog_parameter

python
def laser_cutting_set_analog_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

laser_cutting_set_analog_parameter_robot

python
def laser_cutting_set_analog_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingAnalogParam输入模拟量匹配参数

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


laser_cutting_get_analog_parameter / laser_cutting_get_analog_parameter_robot ​

查询激光切割当前的模拟量匹配曲线参数。

laser_cutting_get_analog_parameter

python
def laser_cutting_get_analog_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingAnalogParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingAnalogParam()
ret = nrc.laser_cutting_get_analog_parameter(fd, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

laser_cutting_get_analog_parameter_robot

python
def laser_cutting_get_analog_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingAnalogParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingAnalogParam()
ret = nrc.laser_cutting_get_analog_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingAnalogParam&输出接收模拟量匹配参数

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


12.4 IO 参数 ​

laser_cutting_set_io_parameter / laser_cutting_set_io_parameter_robot ​

设置激光切割的 IO 端口配置,包括模拟量输出、数字量输入输出以及各类故障检测端口。

laser_cutting_set_io_parameter

python
def laser_cutting_set_io_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

laser_cutting_set_io_parameter_robot

python
def laser_cutting_set_io_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingIOParam输入IO参数配置(含IO端口和故障检测端口)

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


laser_cutting_get_io_parameter / laser_cutting_get_io_parameter_robot ​

查询激光切割当前的 IO 端口配置。

laser_cutting_get_io_parameter

python
def laser_cutting_get_io_parameter(socketFd, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingIOParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingIOParam()
ret = nrc.laser_cutting_get_io_parameter(fd, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

laser_cutting_get_io_parameter_robot

python
def laser_cutting_get_io_parameter_robot(socketFd, robotNum, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingIOParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingIOParam()
ret = nrc.laser_cutting_get_io_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num)    # 结构体按字段读取

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
paramLaserCuttingIOParam&输出接收IO参数配置

C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。


12.5 完整激光切割配置流程示例 ​