为什么界面拖不动坐标系到模型下级

当前对象类型不同:

  • 桁架-1 XZITEM_TYPE_OBJECT,即 STL/网格模型;
  • Huayan E10-L BaseITEM_TYPE_FRAME,即坐标系。

RoboDK 界面的拖拽功能对父子类型做了限制。通常允许:

坐标系
└─ 模型

但不允许在界面中建立:

模型
└─ 坐标系

原因是 STL 模型只是几何对象,不是标准的参考坐标系或运动机构。RoboDK 界面为了避免产生不规范的运动学层级,不提供“把坐标系拖到模型下”的操作。但当前 RoboDK API 的 setParentStatic() 可以建立并保存这种关系。

通过 RoboDK Python API 直接修改站树父子关系。

核心操作是:

from robodk import robolink

RDK = robolink.Robolink()

y_model = RDK.Item("桁架-1 Y", robolink.ITEM_TYPE_OBJECT)
xz_model = RDK.Item("桁架-1 XZ", robolink.ITEM_TYPE_OBJECT)
base_frame = RDK.Item("Huayan E10-L Base", robolink.ITEM_TYPE_FRAME)

# 保持模型和 Base 当前的绝对位置,只修改父子关系
xz_model.setParentStatic(y_model)
base_frame.setParentStatic(xz_model)

setParentStatic() 中的 Static 不是“禁止移动”,而是“重新挂载时保持当前绝对位姿不变”。挂载完成后,移动 桁架-1 XZ,它的子级 Huayan E10-L Base 和机器人都会跟随移动。

当时的层级是:

Frame 2
├─ 桁架-1 柱
└─ 桁架-1 Y
   └─ 桁架-1 XZ
      └─ Huayan E10-L Base
         └─ Huayan E10-L
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐