找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 963|回复: 0

[讨论]:如何由照片(透视图)编程获得三视图》??

[复制链接]
发表于 2004-3-3 17:36:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
影像反求外形 CAD 系统的研制

引 言
影像反求外形设计是通过产品的照片图片等影像资 料,进行产品外形反求的一门技术。该技术主要是根据照片 与透视图的形成原理一致,利用透视图的作图方法由透视图 反求三视图,以完成求解产品外形的设计工作。由于透视图 反求步骤多,反求作图方法不易掌握等因素,手工作图求解 存在效率低、作图准确度低等问题,一定程度上阻碍了影像 反求设计方法的应用与发展。作者在研究透视图反求作图方 法的基础上,运用 Auto CAD 的定制与开发技术,在 AutoCAD 2000 的平台上,进行影像反求外形 CAD 系统的 二次开发。

1 影像反求外形 CAD 系统概述
1.1 系统开发目标与开发平台、工具的确定
影像反求外形 CAD 系统应该具有在显示产品照片的 图形文件上,逐步完成反求作图的各个环节,每一步骤通过 少量的交互输入操作,通过程序定义自动完成求解图形的绘制。最后的设计结果以工程图形式体现。
目前设计领域广泛采用的 AutoCAD 图形系统具有强 大的作图、图形编辑等功能,是设计结果体现的首选“电子 图板”。而其提供的适合于专业用户进行应用开发的 Visual LISP、VBA 以及 object ARX等开发环境和工具,使机械设 计专业人员可以方便地开发出适合专业设计要求的 CAD系 统。所以该系统采用 AutoCAD 2000 为开发平台,用 Visual LISP 程序设计语言来开发特别用于影像反求外形设计的、 具有智能化、参数化的命令,同时用 AutoCAD 的定制技术对这些新增命令进行菜单定制,完成影像反求外形的专业设计 CAD 软件的开发。
1.2 系统开发的总体设计思路
影像反求外形的设计步骤大致要经过以下几个步骤: 图片透视图→反求透视图布局条件→反求平面图、立面图→ 实物与图中尺寸的比例换算→实物的三视图。按照这样的设 计步骤,系统除了要充分利用AutoCAD 2000原有的功能(命 令)外,如尺寸标注、画出反求作图的辅助图线、图形编辑、 出图以及图形文件的打开、保存、打印等功能,就是要对 AutoCAD 2000进行二次开发,用 Visual LISP 程序设计语言 为系统注入影像反求外形所需要的命令,使其具有特定的功 能,来完成影像反求外形的自动化绘图工作。反求设计的原 始资料——产品的照片,通过系统原有插入命令实现图片文件调入。但是如果图片不是数码相机出的照片,则要在系统 外通过扫描仪和画图软件将其转换成位图文件。从调入图片 到完成反求大致要用到以下系统原有的和新增命令。打开影 像反求作图模板图→调入图片→透视图布局→反求产品的 主要轮廓(一般为四棱柱)的平面图、立面图→点反求(按 需要重复多次)→将所求点连线→标注尺寸→出图(透视图 形式);打开三视图模板图以反求图为准画出三视图并标注 尺寸→计算尺寸换算比例→设置换算比例→出图(三视图)。
1.3 系统新增命令功能
在 AutoCAD 2000 系统命令的基础上,增加了下述用 于反求作图的命令。
透视图布局:输入若干点,自动求出透视图作图的布 局条件。如灭点、站点等。
画平面图:输入产品四棱柱轮廓的左右基透视点,自 动画出该四棱柱的平面图。
画立面图:输入四棱柱轮廓的高点位,自动画出该四 棱柱的左、右立面图。
点反求:输入图片中某点的透视和基透视,自动画出 该点的平、立面图。
四棱柱三视图:在四棱柱三视图对话框中,输入长宽 高及相对位置参数,在三视图模板图上自动画出该四棱柱的 三视图。
确定尺寸比例:在确定尺寸比例对话框中输入参考尺 寸数据与视图尺寸数据,显示其比例值。
影像反求外形 CAD 系统帮助信息:显示在系统中进行 影像反求外形的操作步骤和各命令的使用。
2 系统新命令的程序设计
VLISP 集成开发环境是 Autodesk 公司为了增强 Auto LISP 程序开发能力而设计的软件工具。它提供了许多功能, 使得 Auto LISP 在程序设计中,编写、修改和调试程序变得 更加容易。本系统新增的命令全部是在 VLISP 开发环境下 进行的。
在各个命令的程序设计中,用到函数处理、转换、用 户输入、命令与查询、数学计算、扩展的数据库操作等函数, 还在程序设计中采用了对话框设计。
2.1 用 Defun 函数定义新增命令
按照影像反求外形的设计要求,用 Defun 函数定义新增 命令,如定义用于反求透视图布局条件的命令:[透视图布局] (defun C:bj(\ fp1 fp2 …)…) 函数名是“C:bj”,其中“C:”不能省略,这样定义的 函数,只要在 AutoCAD[命令:]提示下敲入该函数名(bj) 就可以执行该程序。
2.2 透视图布局反求图解算法
按照透视成象原理和二点透视的特性[3][4],由照片透视图反求透视图条件的程序设计流程如下所述(参看图1、图2)。
   (1) 输入透视图上三段平行线上的各两个点(如 A0、D0; a0、d0;A0、B0),棱柱上处于画面上的点 a0。这些点均为已 知点。 c d b
  

(2) A0D0和 a0d0 两直线(延长)相交得到灭点 f1,f1和 A0B0 两直线相交得灭点 f2。f1,f2 既为视平线 hh。过 a0点作 水平的线为画面上的基线 O’X’。由 a0向上(或向下)作铅 直线,在适当位置画出地面上的基线 OX,a 点也可定出。 由 f1f2作铅直线交 OX 轴得到地面上的灭点 F1、F2。输出灭 点 f1,f2 ,F1、F2;视平线 hh;基线 O’X’、OX。       (   3) 以 F1F2的中点为圆心,F1F2 为直径画半圆;以 b0B0, d0D0 交于 OX 轴的 bXdX的中点画铅直线,该铅直线与圆弧的 交点既为站点 S。输出站点 S。

2.3 定义参数化绘图的命令程序
用参数约束图形,改变参数的值时,图形就随之改变, 这样的图形即为参数化的图形。在本系统中每个反求作图步 骤均有参数化作图的应用。如反求图片上的总体轮廓(四棱 柱),绘制立面图的程序(程序略)。
2.4 在程序中使用 DCL
在反求出图片透视图的三视图后,还需要根据产品的 实际尺寸(参照尺寸)和图中尺寸,计算出其比例值,以便得出反映产品实际大小的三视图。在程序设计中,采用对话 框界面来完成比例值的计算。对话框界面用 DCL 定义(程 序略),编写对话框驱动程序调出对话框(图 3)。


3 系统新增命令的菜单、工具栏定制
系统为反求设计增加了命令,这些命令的调用是通过 对AutoCAD的命令菜单重新定制而实现的。既将AutoCAD 菜单的模板源文件acad.mnu复制一份,然后在其上增加下拉 菜单项**POP11和工具栏项**TB_yxfq。系统新增菜单界面 见图4所示。

4 系统帮助文件的制作与调用
由于影像反求外形的设计步骤较多,各个命令的用法 也需要有所解释,为系统提供帮助文件是必不可少的。同时, 要使软件走向市场也必需使系统具备帮助功能。作者采用
Microsoft的Word和Help Workshop软件制作出帮助文件 yxfqhelp.hlp,然后在菜单定制时用help函数调用,就可以在 操作时点取帮助菜单得到影像反求外形CAD系统的帮助信 息(图5)。

5 结论
该系统通过上述的开发与定制,经过反复地设计与运行 调试后,用几张造型不同的产品样本图片(照片)来做试验, 反求得到产品的外形三视图。试验证明该系统能够快速准确 半自动化地完成以平面体为主而组合的产品照片的外形反 求。对于外形局部较复杂的产品照片,还需借助 AutoCAD 自身的作图功能,用手工求解的方法在计算机上完成。系统 还应开发反求常用曲面体,如圆柱、圆台的智能化、参数化 命令,进一步提高系统的自动化程度。
C:\WINDOWS\Desktop\snap1.jpg
C:\WINDOWS\Desktop\snap2.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-28 17:31 , Processed in 0.203714 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表