2

我一直在为 STEP 格式的数据(特别是 ISO 10303-21 标准)构建一个解析器,但是我遇到了一个围绕单个字符 - '$' 的障碍。

快速的 Google 搜索显示,在 STEP 中,此字符表示“未设置”值,我将其解释为未初始化的值,但我不知道该怎么处理它。

例如,采用以下定义:

#111=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#109,#110,$) ; #109=CARTESIAN_POINT('Axis2P3D Location',(104.14,0.,0.)) ; #110=DIRECTION('Axis2P3D Direction',(1.,-0.,0.)) ;

对我来说,我看不出这将如何工作,因为参考方向未初始化,因此无法导出 x 轴,这意味着使用此 Axis2Placement 的任何东西也将具有未定义的数据。

通常,当我达到这一点时,我只会为给定的数据类型(顶点(0,0,0),方向(1,0,0)等)定义某种默认数据,但这并没有似乎有效,因为我的默认方向可能会导致与提供的数据发生冲突。

我已经用谷歌搜索了在这种情况下该怎么做,结果却一无所获。

我也有一个非常相似的 STEP 格式 (ISO-10303-42) 的 PDF,但它也没有提及任何类型的默认数据,也没有提供有关其工作原理的更多见解。

因此,明确说明我的问题:我该如何处理 STEP (ISO 10303-21) 数据中的未初始化数据?

4

3 回答 3

1

您需要能够将“未设置”表示为不同的值。它与未初始化的值或默认值的含义不同。例如,您可能表示AXIS2_PLACEMENT_3D为一个对象,其数据成员是指向CARTESIAN_POINTand的指针DIRECTION,这$意味着该指针在您的表示中将为空。

处理空值将取决于上下文。如果数据确实需要,则可能是某种错误。或者可能是数据不是必需的,例如如果您不需要轴定向,并且一个点和方向足以表示数据。

于 2014-07-22T22:25:18.020 回答
0

$使用符号时,该值不是必需的。具体来说,如果有一系列可选值,并且您想为第三个可选参数指定一个值,并且您不想为第一个和第二个可选参数指定值,则可以$对这两个参数使用符号。

看看这里以获得更好的描述。

于 2014-07-22T22:20:00.547 回答
0

在这种情况下:#111 是具有以下 4 个属性的局部坐标系:

  • 角色名字;
  • 指向原点的指针(#109);
  • 指向轴的指针(#110);
  • 指向第二个轴(参考方向)的指针。

如果#111 是圆的坐标系(我猜是'name'值),轴是圆平面的法线,而参考方向指向圆的起点(圆的零t参数的位置)。由于圆是闭合曲线,可以将这个零 t 位置定位在任意位置,对圆的几何形状没有影响,本例中的参考方向不强制,省略。您可以选择如何处理这种情况。

于 2016-04-03T04:07:18.233 回答