- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
工程 中建立各分视 坐标中心
先对三视图的表示和三视图坐标系的建立作两个约定:① 中国的三视图表示与美国采用的标准不同,中国按投影源分,美国按视图位置分,所以中国的左视图即为美国的右视图,还有其他差别等等。但用过计算机三维软件及其二次开发的人都知道,现在的计算机图形软件几乎都是美欧的天下,要用人家的软件作二次开发最明智的选择就是遵循对方标准,所以文章中的三视图标准为美国标准;② 三视图坐标系按右手定则 Z 值应该向内指向页面,但是为了取值正负的方便,文章中 Z 轴刚好相反。
1 视图坐标中心的确定
视图坐标中心是从划分中心域中抽象出来的一个规范点。在得到划分中心 O 点后,根据要求的不同,如果进一步把 3 个视图的坐标中心定位到模型坐标中心这就是坐标中心通用求解算法;如果仅为了保证右视图和俯视图的 Z 值相等并使模型坐标中心为整数,则只需向右或向下平移划分中心得到另两个视图坐标中心,这就是原点取整平移算法。
1.1 坐标中心通用求解算法
(1) 根据下面四原则来重新确定三视图坐标① 三视图坐标取整;② 右视图和俯视图对应坐标 Z 值相等;③ 三视图“长平齐,高对正宽相等”;④ 视图中的二维图元坐标与所描述的真实三维实体,其对应结构尺寸比例趋同。原则④ 中,趋同就是二维图元坐标值能反映出真实三维实体尺寸比例,即大的数值所对应的边不会比小的数值所对应的边短。最大的趋同就是视图坐标中心与模型坐标中心重合,这样二维图元坐标值对应的就是真实三维图元的长宽高的大小。由三视图“长平齐,高对正,宽相等”原则、三视图布局与 O 点的位置关系和三视图极值点以及极值点间的对应关系,进一步找到前视图(front)、俯视图(bottom)和右视图(right)的全局坐标原点即:
这里选择集字符串 str 的变化最多(多达 22种),每一种变化实现一种选择方式,如下列几种常用选择:表示码——意义
A——All 选择方式,B——Box 选择方式,C——Crossing 选择方式,I——如果存在PICKFIRST集,则用该集,W——选择窗口中的实体等等。常与 acedSSGet 相 配 合 使 用 的 还 有 函 数acutBuildList()建立点链表,然后构造 CP——封闭多边形或 WP 选择。
选择集的过滤器功能还不止于此,它还可以进行通配符选择、扩展数据选择、关系选择、和条件选择等。比如只选择右视图里符合条件的圆而把其他实体过滤掉等。
得到了 3 个视图的选择集实体后,就可以对选择集进行操作了。相应的函数有 acedSSAdd()、acedSSDel()向选择集中添加和移出实体,其他还有acedSSLength()、acedSSName()、acedSSMemb()等选择集操作函数。另外还可以对选择集进行平移、旋转、镜像等变换,这些变换可以通过函数 acedXformSS()
实现。该函数原型为
int acedXformSS(const ads_name ssname, //选择集的名称ads_matrix genmat //变换矩阵)。选择集 ssname 的所有变换的只反映在矩阵genmat 的定义上。以下分三步求解坐标原点:
通过调用三视图坐标中心通用求解算法(fccg)后得到了 3 个视图选择集(3 个蓝线框所围)和 3 个局部坐标原点(3 个蓝色小圆),并实现了规范化(满足 4 条原则)三视图布局。1.2 取整平移原点算法某些特殊情况下,为简化过程及其运算量,只要求满足前 3 条原则,且假定视图已经满足了第③条原则,这样求解视图原点的算法就是取整平移算法。
(2) 取整平移原点算法如下
1) 算法描述
3 结 束 语
利用坐标中心通用求解算法(FCCG)或取整平移算法(OPIL)分别找到前视图、右视图和俯视图的规范化布局及其 3 个坐标原点,然后借助ObjectARX 中的选择集函数及视图变换建立三视图局部坐标系。当得到一幅工程图的三视图局部坐标系后,就可以用计算机通过识别 3 个视图中各个图元的对应关系及相应的 X、Y 和 Z 坐标值,对图形自动作正误判断或三维重建等。
参 考 文 献
[1] 陈 杉. 用 ObjectARX 开发 AutoCAD 2000 应用程
序[M]. 北京: 人民邮电出版社, 2001. 398-399.
[2] 孙家广, 等. 计算机图形学[M]. 北京: 清华大学出
版社, 2000. 365-377.
[3] 黄星梅, 尚建忠. 计算机绘图基础[M]. 长沙: 湖南
大学出版社, 2005. 11-18.