兄弟部件互引功能使用说明

本文阅读时长:9分钟更新于2026-04-09

一、功能介绍

兄弟互引是编辑器建模的一项新功能,它允许同一个父部件下的多个子部件(兄弟部件)之间相互引用彼此的参数。

在以往,部件之间的依赖关系只能是单向的。例如,部件A可以引用部件B的参数,但部件B就不能再引用部件A的参数,否则会被系统检测为"变量循环依赖"错误。

现在,通过兄弟互引功能,兄弟部件之间可以相互引用,实现双向参数联动,让参数化模型的设计更加灵活。

典型应用场景

当您的模型中有多个子部件需要保持尺寸或属性一致时,兄弟互引功能特别有用。例如:

  • 两个板件需要保持相同的宽度或深度
  • 一个部件的尺寸需要根据另一个部件动态调整
  • 多个部件之间需要实现参数联动

二、引用名概念说明

在使用兄弟互引功能前,需要先理解引用名的概念。每个子部件都有一个引用名,用于在公式中标识该部件。

引用名分为两种形式:

引用名形式 示例 可引用的范围
完整引用 @A 可引用该部件的所有属性,包括:尺寸属性、系统属性、部件属性、物理属性(位置、旋转)、前端使用属性等
self引用 @selfA 仅可引用该部件的自定义变量部分,包括:尺寸属性(W、D、H)、系统属性、部件属性

重要说明:

  • self引用指向的是子模型脚本中的自定义变量信息,适用于引用子部件内部定义的参数
  • 完整引用可以访问更广泛的属性,包括不属于子模型脚本的位置变量等

引用范围示意图:


 

 

三、语法规则

兄弟互引功能使用以下语法格式:

@self{子部件引用名}.{变量名}

其中:

  • self:固定关键字,表示引用兄弟部件
  • {子部件引用名}:目标兄弟部件的引用名
  • {变量名}:要引用的兄弟部件的变量的引用名,如 W(宽度)、D(深度)、H(高度)等

示例:

  • @selfB.W - 引用兄弟部件B的宽度
  • @selfA.D - 引用兄弟部件A的深度
  • @selfB.H - 引用兄弟部件B的高度

四、操作步骤

以下步骤演示如何使用兄弟互引功能

步骤1:添加两个子部件,分别设置引用名为A 和 B


 

 

 

 

步骤2:分别设置两个子部件的部分变量,引用兄弟部件

如上图,A.W=@selfB.W;B.D=@selfA.D

五、双向引用示例

兄弟互引功能的核心优势是支持双向引用。以下是一个典型的双向引用示例:

假设有两个部件A和B,可以实现:

  • 部件A的宽度引用部件B的深度:A.W = @selfB.D
  • 部件B的深度引用部件A的高度:B.D = @selfA.H

这种双向依赖关系在以往是不被允许的,现在可以通过兄弟互引功能实现。

双向引用关系示意图:



六、注意事项

1. 语法要求

兄弟互引功能仅支持self形式的语法(如 @selfB.W),不支持完整引用形式(如 @B.W)。

2. 可引用的属性

使用self形式引用时,只能引用以下类型的属性:

  • 尺寸属性:W(宽度)、D(深度)、H(高度)
  • 系统属性:如离地高度等
  • 部件属性:部件内部定义的自定义变量

3. 位置变量的处理

如果需要引用的是部件的位置变量(如位置X、Y、Z),由于位置变量不属于子模型脚本,建议采用以下方式:

  • 将位置变量定义在父模型上作为父模型的变量或中间变量
  • 两个兄弟部件都引用该父模型上的变量或中间变量,实现位置联动

位置变量联动方案示意图:



4. 循环依赖的合理性

虽然兄弟互引允许双向引用,但请确保引用关系在设计上是合理的。例如,A的宽度引用B的深度,B的深度引用A的高度,这种链式引用是可以接受的;但如果A的宽度引用B的宽度,同时B的宽度又引用A的宽度,则可能造成无意义的循环。

七、常见问题

Q1:为什么我输入 @B.W 报错?

A:兄弟互引功能目前只支持self形式的语法,请使用 @selfB.W 格式。

Q2:@A 和 @selfA 有什么区别?

A:@selfA 只能引用部件A的自定义变量部分(尺寸、系统属性、部件属性),而 @A 可以引用更广泛的属性(包括位置、旋转等)。兄弟互引功能目前只支持self形式。

Q3:如何引用兄弟部件的位置?

A:位置变量不属于子模型的自定义变量,不能通过 @selfA.位置X 引用。建议将位置定义在父模型的全局变量中,让两个兄弟部件都引用该全局变量。

Q4:双向引用会不会造成无限循环?

A:系统会智能处理双向引用的计算顺序,不会造成无限循环。但仍建议在设计时考虑引用关系的合理性,避免无意义的循环依赖。

可以随时点赞啦