第7章交互式工具组的使用
- 格式:ppt
- 大小:3.93 MB
- 文档页数:47
第7章 用户界面† ObjectARX 程序中使用MFC 资源。
† AdUi 和AcUi 界面类。
†模式对话框与非模式对话框。
Microsoft 基础类库(MFC)为开发者提供了建立标准用户界面的方法,ObjectARX 也为开发者提供了一系列基于MFC 的用户界面类,可以利用这些类开发与Autodesk 用户界面完全一致的用户界面。
本章我们主要讨论如何使用AutoCAD 内部的MFC 系统来生成AutoCAD 风格的用户界面。
7.1 ObjectARX 应用程序中使用MFC开发者可以利用MFC 提供的界面类快速方便的创建标准用户界面,另外ObjectARX 还提供了基于MFC 的界面类的扩展类,其中CAdUi 类是适用与所有Autodesk 应用程序的界面类,而CAcUi 类则派生于CAdUi 类,是专为AutoCAD 设计的界面类,它建立在AdUi 框架之上,提供AutoCAD 特定的外观和行为。
开发者可以使用ObjectARX 提供的这些界面类开发出与AutoCAD 内部相同的用户界面。
需要注意的是,开发者在使用向导创建工程的时候,需要设定工程支持MFC ObjectARX ,只有这样才能使用MFC 的用户界面类和ObjectARX 中提供的的AdUi 和AcUi 界面类,如图7-1。
7.1.1 资源管理当ObjectARX 应用程序与AutoCAD 的其它应用程序共享MFC 库的时候,资源管理是一个重要任务,当应用程序执行资源定位时,必须事先在MFC 检查序列中插入自己的模块。
因此,我们需要管理程序中的资源,以免与AutoCAD 或者其它ObjectARX 应用程序之间发生冲突。
本章简介8图7-1 设定ObjectARX应用程序支持MFCObjectARX中提供两种管理资源的方法:显式管理资源和隐式管理资源。
显式管理资源方法在执行自定义资源操作之前,需要调用函数AfxSetResourceHandle()设定自定义资源作为系统资源,在这之前还应该调用函数AfxGetResourceHandle()获得当前的系统资源,暂时保存,在执行完任何需要自定义资源的函数之后,应该立即恢复先前的系统资源。
第七章Maple的3D图形基本功能图7-01~06快捷绘图函数smartplot3d的运用smartplot3d(x^2+y^2);lprint(%);图1smartplot3d直接返回的图形和数据结构smartplot3d(abs(x)+abs(y)+abs(z)=4);lprint(%);图2smartplot3d还可以接受非初等函数的隐函数方程smartplot3d(x^2+y^2,x*y);lprint(%);图3smartplot3d可以接受多个表达式并可分别做交互式设置利用函数smartplt3d还可以绘制自定义的“分区函数”的图形。
M:=(x,y,z)->piecewise(y>0and x>0,1,-1);M(x,y,z);smartplot3d(M(x,y,z));lprint(%);图4利用smartplot3d绘制“分区函数”的图形(做过交互式设置)smartplot3d函数具有multyple功能,因而可以绘制曲面族的图形。
smartplot3d(seq(x^2+y^2+125*i,i=1..4));图5利用smartplot3d函数的multyple功能绘制曲面族的图形可以把smartplot3d函数返回的图形数据结构拷入一个执行组,并添加一些plot设置选项,再次执行。
INTERFACE_SMARTPLOT3D([x^2+y^2,x,y,_NoZ],style=LINE,a xes=frame,color=blue);lprint(%);图6把图1的返回数据拷入一个执行组,并添加一些设置选项,再次执行的结果图73D图形窗口图83D图形工具栏的第一组图93D图形工具栏的第二组图10各钮对应的图形样式图113D图形工具栏的第三组图12不同样式的坐标架图13Style级联菜单图14Color级联菜单INTERFACE_SMARTPLOT3D([x^2+y^2-z^2=1,x,y,z],color=cya n,view=[-3..3,-3..3,-2..2]);图15按着命令语句生成的图形图16鼠标指向图形,颜色变得灰暗图17选中color命令引出级联菜单图186条命令的不同着色效果图19使用曲面样式选项和颜色选项分别设置的实例图20坐标架的四种样式图21Ranges命令可确定各个坐标轴的显示范围图22Projection级联菜单图23不同的投影类型图24绘制3D图形的子菜单命令图25从返回信息中选定一个三元表达式,绘制快捷图形图26从返回信息中选定一个二元表达式,绘制3D快捷图形图27从返回信息中选定一个二元表达式,绘制2D快捷图形图28从返回信息中选定一个一元表达式,绘制2D快捷图形图29从返回信息中选定一个一元表达式,绘制3D快捷图形图30 6.0中选定单变量表达式只能绘制2D图形图317.0中选定单变量表达式还能绘制3D图形图7-32~34plot3d的调用语句plot3d(x*exp(-x^2-y^2),x=-2..2,y=-2..2,color=green);图32用plot3d绘制单片曲面plot3d([sin(x)*cos(y),sin(x)*sin(y),cos(x)],x=0..Pi/2, y=0..x);图33用plot3d绘制参数曲面plot3d([x,y,sqrt(4-x^2-y^2)],x=-1.999..1.999,y=-sqrt( 4-x^2)+1/920..sqrt(4-x^2),grid=[15,35]);图34参数曲面,变量y的范围界线是x的函数图7-35~41plot3d的调用语句的设置选项plot3d(1,t=0..2*Pi,p=0..Pi,orientation=[50,70],scalin g=constrained,axes=box);plot3d(1,t=0..2*Pi,p=0..Pi,coords=cylindrical,scaling =constrained,orientation=[50,70],axes=box);plot3d(1,t=0..2*Pi,p=0..Pi,coords=spherical,scaling=c onstrained,orientation=[50,70],axes=box);图35表达式“1”在三种坐标系(直角系、圆柱系、球面系)中的图形plot3d(v,u=0..2*Pi,v=-1..1,title=`CONE`,scaling=uncon strained,orientation=[50,70],axes=box);plot3d(v,u=0..2*Pi,v=-1..1,coords=cylindrical,title=` CONE`,scaling=unconstrained,orientation=[50,70],axes= box);plot3d(v,u=0..2*Pi,v=-1..1,coords=spherical,title=`CONE`,scaling=unconstrained,orientation=[50,70],axes=bo x);图36表达式“v ”在三种坐标系(直角系、圆柱系、球面系)中的图形plot3d(u,u=0..2*Pi,v=-2..2,title=`CONE`,scaling=uncon strained,orientation=[50,70],axes=box);plot3d(u,u=0..2*Pi,v=-2..2,coords=cylindrical,title=`CONE`,scaling=unconstrained,orientation=[50,70],axes=box);plot3d(u,u=0..2*Pi,v=-2..2,coords=spherical,title=`CO NE`,scaling=unconstrained,orientation=[50,70],axes=bo x);图37表达式“u ”在三种坐标系(直角系、圆柱系、球面系)中的图形plot3d((1.3)^x*sin(y),x=-1..2*Pi,y=0..Pi,style=patch);plot3d((1.3)^x*sin(y),x=-1..2*Pi,y=0..Pi,coords=cylin drical,style=patch);plot3d((1.3)^x*sin(y),x=-1..2*Pi,y=0..Pi,coords=spher ical,style=patch);图38表达式“(1.3)^x*sin(y)”在三种坐标系(直角系、圆柱系、球面系)中的图形范围的端值可以使用变量在某些情况下,范围的端值可以使用变量。