【问题标题】:Placing 2D rectangles in a 3D space在 3D 空间中放置 2D 矩形
【发布时间】:2018-04-08 17:09:59
【问题描述】:

希望你做得很好。我有一个关于将 2D 矩形放置在 3D 空间中的问题。我有一个 CATIA 软件,其中有几个矩形框,我需要沿屏幕边框放置,如图所示。

虚线矩形显示 CATIA 中的框,实心矩形是我需要放置它们的位置。这里的问题是,矩形是 2D 的,而 CATIA 屏幕是 3D 空间中的。我无法将它们放置在正确的位置,我需要您的帮助。

这是我的方法:

  1. 我得到了屏幕的中心点,这是一个 3D 点。

  2. 获取 2 个 3D 向量(屏幕的上方向,右方向)

  3. 通过将屏幕的 3D 中心点沿 2 个向量移动等于屏幕宽度的一半、高度的一半的距离来计算屏幕角的坐标。

  4. 将 2D 矩形的右上角坐标与屏幕的右上角 3D 坐标相等。(输出错误)

  5. 将第二个矩形移到第一个矩形下方,继续for循环,直到所有矩形都沿屏幕边框放置。

这里要注意的另一件事是,虚线矩形可以沿 xy 平面或 yz 平面或 xz 平面定位。并且可以计算出与屏幕平行的3D平面。我的问题是,如何将 2D 矩形坐标转换为 3D 坐标,以便将它们移动到 3D 空间中的正确位置。提前感谢您的帮助。

【问题讨论】:

    标签: c# catia


    【解决方案1】:

    希望您注意到任何 CATPart 都有轴系和 xy、yz、zx 平面,因此您必须参考这些平面而不是屏幕。

    如果您要放置 4 个矩形,则取决于您将创建的位置。

    下面是在 CATPart 中创建的平面的参数列表。

    Part1\绝对轴系\原点\X 0mm: Part1\绝对轴系\原点\Y 0mm: Part1\绝对轴系\原点\Z 0mm: Part1\绝对轴系\XAxis\X 1: Part1\绝对轴系\XAxis\Y 0: Part1\绝对轴系\XAxis\Z 0: Part1\绝对轴系\YAxis\X 0: Part1\绝对轴系\YAxis\Y 1: Part1\绝对轴系\YAxis\Z 0: Part1\绝对轴系\ZAxis\X 0: Part1\绝对轴系\ZAxis\Y 0: Part1\绝对轴系\ZAxis\Z 1: Part1\Absolute Axis System\Activity true: Part1\Geometrical Set.1\Plane.1\Offset 0mm: Part1\Geometrical Set.1\Plane.1\Activity 真: 第 1 部分\零件编号
    第 1 部分:第 1 部分\命名法: 第 1 部分\修订: Part1\产品说明: Part1\定义:

    您可能知道,CATIA 中的 2D 元素可以在平面或平面上创建,因此您需要从不同的角度考虑您的问题....请记住,在 CATIA 中您也有不同的视图(iso,前视图a.s.o) 和简单的命令“Fit All In”将改变元素在屏幕上的显示方式....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-31
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 2014-10-09
      相关资源
      最近更新 更多