命令: BMBOM,BMBOMPANELOPEN,BMBOMPANELCLOSE
工程物料清单(BOM)是装配中使用的唯一机械零件的列表。在CSCAD的,该列表被表示为表实体(见表),并且可以在图中的任何位置。每个实体都有其自己的序列号(以1开头),名称和出现的次数。
您可以在“物料清单管理器”中查看和配置物料清单。
有三种BOM表类型:
顶级:仅包含顶级组件。顶层零部件是直接插入到主装配体中的零部件。这种BOM表仅列出主要组件,而没有子组件的详细信息。
底层:仅包含底层组件(部件)。底层零部件是不包含其他零件或子装配体的零件。这种BOM表列出了主装配体中的所有零件,无论零件属于哪个零件。
层次结构:包含所有组件,其子组件直接在下面列出。子组件的序列号是由点分隔的数字序列(例如,“ 1.2.3”)。此BOM表类型显示装配体的层次结构。
注意 | 该BOM状态这部分包括在物料清单属性控制。BOM表中组件的级别是根据所有相关组件的BOM状态设置的。例如,具有终端BOM表状态的零部件始终被视为底层零部件,即使它包含其他零件或子装配体也是如此。 |
示例:三脚架组装
类型 | 物料清单 |
顶层 |
![]() |
底层 |
![]() |
分层的 |
![]() |
对于分层BOM表,支持两种计数模式:
例如,三脚架主组件包含3个三脚架支脚组件。三脚架脚组件的每个实例都包含1个Bond组件和1个Tube组件。
如果计数模式设置为Count all instance,则结果为:
物料清单三脚架装配(所有实例都包括在内) | ||
编号 | 零件 | 数量 |
1 | 三脚架装配 | 1个 |
1.1 | 三脚架脚架装配 | 3 |
1.1.1 | 连结装配 | 3 |
1.1.2 | 管件组装 | 3 |
如果计数模式设置为“在父组件中计数实例”,则结果为:
物料清单三脚架装配(每个零件的实例数) | ||
编号 | 零件 | 数量 |
1 | 三脚架装配 | 1个 |
1.1 | 三脚架脚架装配 | 3 |
1.1.1 | 连结装配 | 1个 |
1.1.2 | 管件装配 | 1个 |
为默认值的计数模式是计数在父组件的实例。您可以在BOM表管理器中或使用BMBOM命令来更改计数模式。
注意 | 默认情况下,所有层次BOM表都使用“计数所有实例”模式。在CSCAD或更高版本中更新此类表时,默认模式设置为计数父组件中的实例。这可能导致某些零件的数量不同。如有必要,在BOM表管理器中手动设置计数模式。 |
默认情况下,分层物料清单显示模型中的所有级别。使用最大级别属性可以将层次化BOM限制到特定级别。设置最大级别时,仅包括该级别的零件。例如,如果最大级别= 2,则仅列出顶级组件和直接包含在顶级组件中的子组件。
默认情况下,BOM表包含“数量”,“名称”和“数量”列。
使用BmBom命令的设置选项,您可以添加更多列,例如描述,密度,体积,质量,材质,厚度(对于钣金零件)和参数(对于参数化零件)。
可以将组件,实例或块引用的任何内置属性添加到BOM表。使用数据提取技术还支持自定义评估列。
具有密度,体积和质量的BOM。
BOM表仅列出了唯一的组件;根据分组模式,将相同组件的多个插入分组。
支持以下分组模式:
可以使BOM表中的任何列都不可见。不可见的列将不会出现在文档的表中。但是,您仍然可以在公式中使用这些列。不可见的列也将显示在BOM表管理器中。
可以对顶层或底层BOM表中的几乎每一列设置聚合函数。聚合函数将BOM表中几行的值(仅在那些值上有所不同)分组为一个值。支持以下聚合函数:
例如,使用以下BOM表:
零件 | 宽度 | 长度 | 高度 | 数量 |
梁 | 16 | 250 | 10 | 1个 |
梁 | 16 | 200 | 10 | 2个 |
梁 | 16 | 220 | 20 | 1个 |
梁 | 20 | 215 | 20 | 3 |
梁 | 20 | 225 | 20 | 1个 |
并将一个聚合函数应用于“长度”列。下表中汇总了结果:
零件 | 宽度 | 高度 | 长度(总和) | 长度(平均) | 长度(最小) | 长度(最大) | 长度(连接) | 长度(与计数连接) |
梁 | 16 | 10 | 650 | 216.6667 | 200 | 250 | 200; 250 | 2x200;250 |
梁 | 16 | 20 | 220 | 220 | 220 | 220 | 220 | 220 |
梁 | 20 | 20 | 870 | 217.5 | 215 | 225 | 215; 225 | 3x215; 225 |
对于“与计数连接”列,可以:
如果在求值列中使用了聚合列,则默认情况下将使用最终值。但是,可以将聚合函数应用于求值列。在这种情况下,将首先针对所有原始值(在合计之前)计算此类评估列的结果,然后将合计结果值。
数字列是用于枚举行的特殊列。它自动为BOM表中的所有行分配编号,而无需跳过,并且独立于其他表。行从1开始编号。
可以更改数字列的以下设置:
对于分层BOM表,可以使用以下设置:
通常,BmBalloon命令使用数字列作为源来注释工程图。但是,表中的任何列都可以通过更改其角色而用作注释气球的源。可以使用以下列角色:
只有一列可以具有“数字”,“名称”或“数量”角色。如果没有列分配有这些角色之一,则无法进行自动注释。
默认情况下,每列的宽度是自动设置的,因此其内容适合而没有其他换行符。但是,可以设置固定的列宽。
要设置列宽,请执行以下操作之一:
要恢复自动宽度模式,请在BOM表管理器中选择列,然后在宽度属性的下拉列表中选择自动。
您可以格式化列值。在BOM表管理器中选择所需的列,然后在上下文菜单中选择“格式”选项。 在“格式”对话框中定义所需的格式。可用设置取决于所选列的数据类型。您可以选择多个相同类型的列以均等地设置其格式。
因为BOM表使用数据提取技术,所以您可以列出机械零部件的属性和实体属性,例如BOM表中的块引用。
但是,这些属性并不总是必需的。在大型装配体中,这些属性可能会对性能产生负面影响。这是因为CSCAD在BOM表创建期间会缓存属性。
属性集是内置的属性集。您可以根据需要选择最佳的属性集。当前,支持以下属性集:
您可以在BOM表管理器中更改BOM表的属性集,或者在添加新表时使用BMBOM。
可以过滤将构成物料清单的零件。从CSCAD 开始,有两种过滤器类型:主过滤器和色谱柱。
Main过滤器的工作方式与DataExtraction命令的工作方式相同:首先,将装配中的所有零件(在所需级别(顶部,底部或层次))与过滤器表达式进行匹配。然后,只有那些通过过滤器的零件才会被包含在BOM表中。
过滤器表达式可能不引用BOM表列,因为过滤是在生成BOM表之前完成的。例如,可以为所有标准零件创建过滤器,因为“标准”是组件的常规属性。但是,不可能将主过滤器设置为过滤出数量大于1的所有零件;否则,不能进行过滤。您应该为此使用列过滤器。
配置主过滤器的最简单方法是使用BOM表管理器中的“过滤器配置器”。
过滤器配置器允许定义一组条件。每个条件都定义了所选属性和目标值之间的关系。可能的关系为“等于”,“不等于”,“小于”,“大于”,“小于或等于”和“大于或等于”。可以将条件添加到组中,该组定义了应如何处理这些条件。有两种组类型:
一个组可以包含任意数量的条件。它还可以包含嵌套组,从而使复杂的过滤器成为可能。
要添加条件:
对于文本值,“等于”和“不等于”关系支持通配符。
Filter Configurator自动将条件集转换为一个过滤器表达式,可以通过按以下按钮使其可见:
此表达式是完全可编辑的,并且与条件集有双向关联。
关系运算符:
操作员 | 意义 |
== | 等于 |
!= | 不等于 |
< | 少于 |
> | 比...更棒 |
<= | 小于或等于 |
> = | 大于或等于 |
例如,要获取所有标准零件的物料清单,请使用以下表达式:
“是标准” ==“是”
要获取所有ISO标准零件的BOM,请使用以下表达式:
“是标准” ==“是”和“部件标准” ==“ ISO”
要获取所有ISO或DIN标准零件的BOM,请使用以下表达式:
“是标准” ==“是”和(“零件标准” ==“ ISO”或“零件标准” ==“ DIN”)
通配符允许您将属性值与特定模板进行匹配。例如,如果要查找名称中包含“喷嘴”的所有组件,则可以使用以下表达式:
“组件名称” ==“* *喷头”
通配符可以也用作目标值过滤器配置。
仅“等于”和“不等于”关系运算符支持通配符。请注意,主过滤器中的通配符区分大小写。对于列过滤器,你可以,如果你需要区分大小写或不区分大小写匹配指定。
下面的特殊符号的支持:
姓名 | 特点 | 描述 |
反引号 | ` | 转义下一个字符(取它的字面)。 |
逗号 | , | 分隔模式。 |
星号 | * | 在任何地方匹配任何字符序列,包括空序列。 |
问号 | ? | 匹配一个字符。 |
时期 | 。 | 匹配一个非字母数字字符。 |
在标志 | @ | 匹配一个字母字符。 |
井号 | # | 匹配单个数字字符。 |
蒂尔达 | 〜 | 如果模式中的第一个字符与模式匹配,则不匹配。 |
括号 | [...] | 匹配一个封闭的字符。 |
蒂尔达括号 | [〜...] | 匹配一个非封闭字符。 |
连字号 | -- | 在方括号中,匹配指定范围内的单个字符。 |
这使您可以根据列内容(与某些电子表格处理器中的过滤器类似)快速设置行显示的条件。与主过滤器不同,它们在生成BOM表之后应用。因此,可以对具有聚合内容(例如数量)的列使用列过滤器。
每列只能有一个过滤器;但是,您可以根据需要将列过滤器添加到尽可能多的列中。只有通过所有列过滤器的行才会显示在最终BOM表中。
您可以使用BOM表管理器中的“列过滤器”对话框来配置列过滤器:
在此对话框中,您可以从列表中选择过滤器的类型并进行相应的配置。可能的过滤器列表取决于列内容类型,如下表所示:
过滤器类型 | 列类型 | 描述 |
一直被接受 | 任何 | 接受所有列值 |
等于 | 数值的 | 值应等于目标值一 |
不等于 | 数值的 | 值应不等于目标值一 |
少于 | 数值的 | 值应小于目标值一 |
大于 | 数值的 | 值应大于目标值1 |
小于或等于 | 数值的 | 值应小于或等于目标值1 |
大于或等于 | 数值的 | 值应大于或等于目标值1 |
之间 | 数值的 | 值应在给定范围内,包括两端 |
不在范围内 | 数值的 | 值应不在给定范围内,两端不包括在内 |
完全匹配 | 文本 | 值应与目标值完全匹配 |
不匹配 | 文本 | 值应与目标值不同 |
以。。开始 | 文本 | 值应以给定的文本开头 |
不以 | 文本 | 值不应以给定的文本开头 |
以。。结束 | 文本 | 值应以给定的文本结尾 |
不以 | 文本 | 值不应以给定的文本结尾 |
包含 | 文本 | 值应包含给定的文本 |
不含 | 文本 | 值不应包含给定的文本 |
匹配模式 | 文本 | 值应与给定的通配符模板匹配 |
与模式不符 | 文本 | 值应不匹配给定的通配符模板 |
在 | 文字和数字 | 值应该是在给定的一组值 |
不在 | 文字和数字 | 值应该不会在给定值 |
对于所有的文本过滤器,你还可以指定是否应区分大小写或不区分大小写。
BOM表有三种排序模式:
BOM表使用所谓的文本的“自然排序”。这意味着,如果文本包含字母和数字的混合,将针对这些数字进行排序。例如,字符串“ N1”,“ M2”,“ N11”,“ N2”,“ AA1”将被排序为“ M2”,“ N1”,“ N2”,“ N11”,“ AA1”。因此,可以与各种前缀使用自定义的参数组件,然后排序按照正确的顺序这些数字的BOM表指定自定义数字。
评估列是特殊列,其结果取决于使用用户定义表达式的其他列,支持两种评估列:公式列和模板列。
物料清单支持公式字段。DataExtraction命令中使用相同的语法。FormulaExpression是\ AcExpr公式字段格式的表达式。它可以包含诸如PI之类的常量或诸如SIN之类的函数(请参见Use Expressions)。表达式中的操作数可以是用尖括号(<>)括起来的ColumnTitle。
例如,公式= <质量> / <体积>计算组件的平均密度。
如果某行不包含值,则将使用默认值。可以使用以下语法为操作数指定默认值:
<“ ColumnTitle”,默认值>
其中ColumnTitle是必填列的标题,而DefaultValue是默认值。ColumnTitle必须在双引号(“)之间。如果未指定默认值,则将使用空值,在大多数情况下,这将导致空输出。
公式列可以包含多个表达式。每个表达式都应用和括起来({})。这些表达式将从头到尾进行评估,并且将使用第一个产生非空输出的表达式。
从CSCAD开始,一个公式可以引用其他公式列,只要它们不形成循环即可。在分层BOM表中,公式还可以通过在列名称之前添加Parent:来引用父行的值。它还可以引用未显式添加到表中的属性,但是公式中引用的所有其他公式列必须存在于表中。您仍可以在公式表达式的BOM表中将此类列显示为不可见。
对于距离,面积,体积和质量属性,这些值将在公式表达式中使用之前转换为用户定义的单位。如果未设置用户定义的单位,将使用文档单位。对于大众财产,公制文件中将使用公斤,英制文件中将使用磅(磅)。
模板列允许您将多个属性以及自定义文本组合到一个列中。基于Diesel表达式的特殊语法用于定义模板列。模板列的表达式必须以$符号开头。表达式中的操作数可以是用尖括号(<>)括起来的ColumnTitle。也可以使用特殊功能:
$(+,arg1,arg2 [,...,arg9]) | 将提供的参数添加到第一个 |
$( - ,ARG1,ARG2 [,...,arg9]) | 减去从第一个提供的参数。 |
$(*,ARG1,ARG2 [,...,arg9]) | 将第一个参数乘以提供的参数。 |
$(/,arg1,arg2 [,...,arg9]) | 将第一个参数除以提供的参数。 |
$(=,arg1,arg2) | 如果arg1等于arg2,则返回1;否则返回1。否则,返回0。arg1和arg2都必须是数字。 |
$(<,ARG1,ARG2) | 如果arg1小于arg2,则返回1;否则,返回1。否则,返回0。arg1和arg2都必须是数字。 |
$(>,ARG1,ARG2) | 如果arg1大于arg2,则返回1;否则返回1。否则,返回0。arg1和arg2都必须是数字。 |
$(!=,arg1,arg2) | 如果arg1不等于arg2,则返回1;否则返回1。否则,返回0。arg1和arg2都必须是数字。 |
$(<=,arg1,arg2) | 如果arg1小于或等于arg2,则返回1;否则,返回1。否则,返回0。arg1和arg2都必须是数字。 |
$(> =,arg1,arg2) | 如果arg1大于或等于arg2,则返回1;否则返回1。否则,返回0。arg1和arg2都必须是数字。 |
$(and,arg1,arg2 [,...,arg9]) | 对参数应用按位AND运算 |
$(angtos,angle [,mode,precision]) | 相对于给定模式(0-度,1- d / m / s,2-渐变,3-弧度)和精度将角度转换为字符串。 |
$(delim,delimiter_string) | 插入智能定界符。仅当此分隔符前后的输出不为空时,分隔符字符串才会添加到输出中。 |
$(编辑时间,时间,格式) | 根据给定的格式字符串格式化日期。 |
$(eq,arg1,arg2) | 如果arg1等于arg2,则返回1;否则返回1。否则,返回0。arg1和arg2都必须是文本。 |
$(eval,表达式) | 将给定表达式评估为Diesel表达式。 |
$(固定值) | 将实际值截断为整数1。 |
$(getvar,变量) | 返回给定系统变量的值。 |
$(if,arg,then [,else]) | 返回“那么”如果“ARG”不为0; 否则,如果未提供'else',则返回'else'或空字符串。 |
$(索引,位置,逗号分隔的字符串) | 返回给定逗号分隔字符串中给定位置的子字符串。 |
$(nth,position,arg1 [,arg2,...,arg9]) | 返回给定位置的参数。 |
$(或arg1,arg2 [,...,arg9]) | 对参数应用按位或运算。 |
$(RTOS,值[,模式,精密]) | 根据所需的模式和精度设置给定值的格式。 |
$(strlen的字符串) | 返回给定字符串的长度。 |
$(SUBSTR,字符串,开始[,长度]) | 从给定的“长度”的“开始”的“串”的返回的字符串。计数从1开始。 |
$(大写,字符串) | 将“字符串”转换为大写。 |
$(xor,arg1,arg2 [,...,arg9]) | 对所有参数应用按位XOR。 |
一个模板列可以包含多个表达式。每一个表达应该由总和括号括起来({})。这些表达式将从头到尾进行评估,并且将使用第一个产生非空输出的表达式。
从CSCAD开始,模板列可以引用其他评估列,只要它们不形成循环即可。在分层BOM表中,模板列还可以通过在列名称之前添加父行:来引用父行中的值。它也可以引用未显式添加到表中的属性,但是任何表达式中引用的所有其他求值列都必须存在于表中。您仍然可以在BOM表中使用在模板表达式中显示为不可见的列。
您可以使用“ \ n”字符串添加换行符。
例如,以下表达式结合了PartNumber,Width,Height和Length属性:
$ {<PartNumber> $(delim,“ X”)<Width> $(delim,“ X”)<Height> $(delim,“ X”)<Lenght>}
您可以使用“表达式配置器”对话框来配置评估列。此对话框在物料清单管理器中可用。
该对话框允许您设置列的标题和单位,使用带有语法突出显示和自动完成功能的编辑器来编辑表达式,并查看带有已评估列的BOM表的。对于模板列,可以使用“模板”部分轻松地插入,移动和删除属性以及定界符和自定义文本。
您可以为具有关联单位的列调整单位放置模式。提供以下选项:
可以设置单位模式为距离,面积,体积和质量值来定义用于显示一个特定的值的单位。例如,如果有从群众1克要几吨,选择最适合每个值显示每个质量转换为最适合的质量单位。看到所有群众公斤,设置公斤作为用户定义的列单元。最适合所有的值是默认的。
单位模式选项:
注意 | 如果为列设置了用户定义的单位,并且该列在公式字段中使用,则转换为该单位的值将替换为公式。否则,将使用文档单元。 |
材料明细表表支持页脚。要定义哪些列将构成页脚,请为所需的列设置页脚类型:
如果所有列的页脚类型均为No footer,则不显示页脚行。
您可以将BOM表配置另存为模板,并使用它来创建新的BOM表。模板文件包含所有必需的数据。它包括表类型,标题,过滤器和具有所有关联属性的列集。您可以将标题中的<NAME>用作程序集实际名称的占位符。例如,如果您的部件名称为“我的部件”,并且BOM表的标题被指定为<NAME>的材料明细表,则BOM标题将为“我的部件的材料明细表”,因为“我的部件”将被替换<NAME>。
默认情况下,BOM模板文件的扩展名为.BOM。
BOM表模板文件是数据提取定义文件(.dxd)的扩展。但是,您不能将.dxd文件用作BOM表模板,因为某些BOM表特定的数据将丢失。您不能使用.BOM文件来定义DataExtraction模板。
您可以在任何文本编辑器中编辑模板文件。但是,建议使用BMBOM命令或BOM表管理器来创建和编辑模板文件。
每个组件都有一个BOM表状态属性。您可以使用它来控制“物料清单”表中组件的行为。此属性可以具有以下值之一:
常规-零件出现在材料明细表中与装配体结构相同的位置,并且是材料明细表所选模式的默认值。
透明-组件充当其子组件的透明容器。组件不会出现在材料明细表中,但是子组件可以出现在BOM表中,这取决于它们的BOM表状态,在装配结构中的位置以及BOM表的模式。
终端-该组件被视为叶组件(没有子组件)。这对于复杂零件或标准组件很有用。
排除-组件及其子组件未出现在材料明细表中。
打开包含组件的文件。
在“机械浏览器”中选择根组件。
设置BOM表状态属性。
在机械浏览器中选择组件。
右键单击所选节点以打开上下文菜单。
从“ BOM状态”子菜单中选择一个“ BOM状态”。
注意 | 无法通过上下文菜单为插入外部组件的本地组件设置BOM表状态。为此,您必须打开包含本地组件的组件。 |
从CSCAD开始,可以将桌子的任何角设置为固定的。BOM更新期间,固定角将始终保持其初始位置。手动移动桌子后,将保留该角的新位置。固定的角允许将BOM表与其他对象对齐。
您可以通过BmBom命令或BOM表管理器选择在放置表期间要固定的角点;使用Tab键循环拐角。您可以在BOM表管理器中更改BOM表的固定角。
命令: BMBOM,BMBOMPANELOPEN,BMBOMPANELCLOSE
工程物料清单(BOM)是装配中使用的唯一机械零件的列表。在CSCAD的,该列表被表示为表实体(见表),并且可以在图中的任何位置。每个实体都有其自己的序列号(以1开头),名称和出现的次数。
您可以在“物料清单管理器”中查看和配置物料清单。