Vba 是否有包含临时轴的View.GetOutline()的替代方法?

Vba 是否有包含临时轴的View.GetOutline()的替代方法?,vba,solidworks,Vba,Solidworks,注意:这是而不是的答案-它实际上与之相反。此外,也是我问了这个问题,我也在下面链接了这个问题 我正在修复其他人的SolidWorks VBA代码,该代码根据工程视图的大小将它们彼此相邻放置。 视图的大小取自view.GetOutline()返回的边界框,视图的位置通过更改view.position属性来设置。 该代码处理多实体零件,为每个实体创建一张图纸 问题在于View.Position属性对应于包含临时轴的边界框的中心,而View.GetOutline()不包含这些轴-它返回的内容略多于So

注意:这是而不是的答案-它实际上与之相反。此外,也是我问了这个问题,我也在下面链接了这个问题

我正在修复其他人的SolidWorks VBA代码,该代码根据工程视图的大小将它们彼此相邻放置。 视图的大小取自
view.GetOutline()
返回的边界框,视图的位置通过更改
view.position
属性来设置。 该代码处理多实体零件,为每个实体创建一张图纸

问题在于
View.Position
属性对应于包含临时轴的边界框的中心,而
View.GetOutline()
不包含这些轴
-它返回的内容略多于SolidWorks GUI显示的选择轮廓

这是在SW GUI中打开临时轴的多体零件和一个有问题的工程视图:

在图形中可以看到:

  • SW GUI显示的选择轮廓(浅蓝色点矩形)
  • View.GetOutline()
    返回的轮廓对角线(红线)
  • 视图的中心,如
    视图中所示。位置
    属性(红色X)
  • 临时轴(蓝色十字和线)
是否有方法获取工程视图的实际大小,即与以
视图为中心的边界框相对应的大小。位置
属性?

显然,工程视图在此多实体零件中包含来自其他实体的临时轴。 这就指向了另一个问题:是否有办法防止多实体零件中其他实体的临时轴包含在单个实体的工程视图中?

作为参考,无论使用哪种方法创建视图(例如,
CreateDrawViewFromModelView3()
createUnfolderViewAt3()
CreateRelativeView()
,等等),问题都是一样的


注意:我问这个问题是因为我错误地认为
View.GetOutline()
不包括临时轴,所以我更改了这个问题。

这是否回答了您的问题?谢谢@Anna,但这也是我问的一个问题,我在这个问题中链接到了这个问题。当我更改标题时,链接发生了变化,但这是相同的问题。为了获得多体组件的正确实际尺寸,我使用
GetBox
GetPartBox
函数。但是,当存在多配置组件时,Solidworks中有一个错误,用于更正drawview中心的确定,有时您需要手动更正drawview的位置。谢谢@Ivan,我不确定我是否了解您。我有单体视图,可以看到视图的中心。我不能得到的是视图的轮廓,它的中心是视图。位置。我计算视图的大小,图纸的大小,比例因子。根据此值定义View.position并将其指定给View