本帖最后由 tinyheaven 于 2023-3-23 19:14 编辑
反射镜一般只用于单轴旋转,所以网上的资料多是的单轴反射镜的建立和优化。
这里提出一个问题,
如何建立一个绕两轴同时旋转的反射镜,并对绕轴的角度进行优化控制,从而对
反射光线的方向进行精确定位?
数学老师说得好,复杂问题可以简单化,做不了就退一步看。
所以我把问题分解成为几部分。
步骤一,建立一个绕两轴旋转的反射镜,而且角度能够优化。
如下图,最简单的反射镜旋转方式,是直接在属性栏里进行编辑,这样的好处是
不会有虚拟面的存在,在后期作图时省去了不必要的麻烦,但是这里边的TIlt X/Tit Y
无法设置变量,所以就无法优化。舍弃。
所以还是要用老办法,直接add fold mirror两次,得到一个两层虚拟面嵌套的反射
镜。这样很不错,不用去纠结于tilt的顺序,同时可以在操作数观察单一坐标断点
对反射光线的影响。
步骤二.使用操作数读取反射光线的角度,然后仅使用操作数去优化旋转角。
然后我想当然地使用了reaa/reab/reac+acos,去读取角度,但是这里出现了一个很
棘手地问题,这个方向余弦的角度,跟我想要的投影角度,并不是一回事。
这里一共有三种角度:
layout展先的投影夹角(可以通过CAD或者其余结构软件导出来直接测量得到,
确实也可以通过投影夹角,再加上反射光线的长度,去使用高中空间解析几何,去
计算得到方向余弦,但是这种方式得到方向余弦,却并不合操作数得到的一致!!!因
为坐标断点的使用,影响了整个坐标系!!!)
我的目的是通过操作数控制投影夹角(关键),优化反射镜的两个夹角(偏转角),最后
达到目标值投影夹角。
关键问题
1. 采用方向余弦时,如果是单轴旋转,此时投影夹角与方向余弦等价;
2. 但当反射镜的翻转为两轴旋转,并不满足这个规律。此时使得某一个轴旋转角为零,
确实得到一个角度,但这个角度在使用两轴旋转之后,并不是分量关系。
所以采用方向余弦的路径并不本质,需要直接有操作数直接读取layout上的投影夹角。
步骤三.再次使用操作数计算反射光线的角度,然后仅使用操作数去优化旋转角。
这里我反复查看了layout上的坐标位置,然后想到了,只要能读取到每个光线的坐标位
置,然后使用三角函数就可以计算。首先我使用了reax/reay/rear等操作数,得到了不错的数据,但是与CAD查角度对应,只满足了一半。
然后我想到了全局坐标 RAGX/RAGY/RAGZ,然后分别读取某个面的坐标,和layout上的坐标一比对,完美对应,问题解决!
经验总结:
切记不能不求甚解
1. 虽然实际上精度要求不高的情况下,在不知道操作数时,可以通过CAD计算,然后人工设置角度去逼近,但是这个并不是本质的解决办法;
2. 甚至可以让结构同事去直接帮忙旋转反射镜,然后告诉你夹角,但是这个会影响反射镜的接受面大小,也不是本质的解决办法;
坐标断点的使用和旋转/偏心,是设计自由曲面等非对称系统/离轴系统的基础,本着磨刀不误砍柴工的想法,还是应该去一步步思考,去考虑问题的本质,不然这个问题到后边还是会有问题。