免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
王淑营,ObjectARX实体建模技术,inlineAcGePoint3d/将三维向量转换为三维阵列,补充知识,1、点对象与阵列的相互转换方法,例如AcGePoint3dpc; acedGetPoint(NULL,n中心点: asDblArray(pc ) ) : 双重长度; acedingetsdist(asdblarray(pc ),n长度:1,基本三维实体生成技术2,基于二维对象的三维实体生成技术3,三维实体的布尔运算和查询技术,ObjectARX的实体建模技术,AutoCAD为wire 表面形状, 提供了三种实体形状建模方法:线框模型:描述3d实体对象的骨架,线框模型没有面,只有对象边界的点,直线和曲线,AutoCAD描述了几个3d线框对象,3d多义线和步骤由于构成线框模型的所有对象都必须分别绘制和放置,因此该建模方法最耗时、曲面模型:比线框形状复杂,它不仅定义三维对象的边,而且定义面, 由于AutoCAD曲面模型使用多边形网格定义剖切面,网格面为平面,因此网格只能近似于曲面,并且可以使用MechanicalDesktop创建真实曲面;实体形状:实体模型是最易于使用的三维模型。 利用AutoCAD实体模型创建三维对象,如长方体、圆锥体、圆柱体、球体、圆环体等,将这些形状合并在一起,找到它们的差集和交叉点,将它们合并以生成更复杂的实体,沿路径延伸二维对象,或围绕轴旋转1、基本的3d实体产生技术;1、基于ObjectARX的3d实体建模技术概述;在ObjectARX应用中,实体形状直接调用AutoCAD系统本身提供的实体形状和编辑命令,或数据库对象在AutoCAD资料库中,3d实体属于AcDb3dSolid类别物件,并衍生自AcDbEntity类别。 调用AcDb3dSolid类的成员函数可生成各种基本的3d实体并实现实体布尔运算。 生成三维实体的基本过程包括: 1、基本三维实体生成技术、2、基本三维实体生成方法、调用AcDb3dSolid类创建容器对象的示例: acdb3d solid * p3do bj=newca CDB3d solid; 调用AcDb3dSolid类的成员函数创建基本的3d实体对象。 典型格式是指向acdb3dsolid类对象的指针-创建基本的3d3d对象成员函数。 将AcDb3dSolid类对象写入当前图形数据库中的块表记录。 另外,基本的三维实体是长方体(Box )、平断头体(Frustum )、球体(Sphere )、圆环体(Torus )、主体(Wedge )等,向营业实体的acdb三维solid函数的原型是:一,基本三维实体生成技术:三,生成基本三维实体的函数,一, 长方体:中心位于坐标原点的长度、宽度、高度分别平行于x、y、z轴的长方体,函数的原型为virtual acad :30 errorscreenbox (double len、doublezLen ),长方体的边长小于1E-6时, 函数返回Acad:eOutOfRange,如果生成失败,函数返回acad :3360 egenermodellingfailure。 平截面:生成重心在WCS坐标原点的圆柱体或圆锥体,函数的原型如下: virtual acad :3360 errorr status (double height,doublexRadius,doubleyRadius,doubletopxs ) 其中xRadius和yRadius分别表示x和y方向的半径,topXRadius表示尖端半径。 、球体:生成重心位于WCS坐标原点的球体。 函数的原型如下: virtual acad :3360 errorrstscreensphere (double radius ),一、基本三维实体生成技术,三、生成基本三维实体的函数,环形:生成重心在WCS坐标原点的环形,z轴是环形中心线。 函数的原型如下: 在virtual acad :3360 errorscreetus (doublelemajorradius,doubleminorRadius )中,MajorRadius和minorRadius分别代表圆环半径和圆管半径。楔形:产生重心位于WCS座标原点的楔形块。 长度、宽度和高度分别平行于x、y和z轴。 函数的原型如下: virtual acad :3360 errorrstscreenwedge (双len,双len,双zLen ) xlen、yLen和zlen分别代表楔形体的长度、宽度和高度。 程序实现的主要功能:以对话形式生成长方体、球体、圆环体。 生成实体的算法是:在将实体的中心点、长方体的边长、球体的半径等几何参数作为输入数据的基础上,分别调用AcDb3dSolid类的成员函数createBox ()、createSphere、createTorus () 另一方面,基本三维实体生成技术、四、生成基本三维实体的程序设计实例、程序主要接口:程序中使用的主要技术: createBox ()、createSphere、createTorus ()只能制作在WCS坐标原点具有中心点的简单实体1 )在程序中使用AcGeVector3d类的对象来定义变换后的x、y、z轴方向向量: acge vector 3d x (1,0,0 )、y (0,1,0 )、z (0,0,1 ); /定义新坐标系与原始系统平行2 )在AcGeMatrix3d类的setCoordSystem ()成员函数中设置三维几何变换矩阵,函数的原型是AcGeMatrix3d将此函数生成的三维实体转换为三维几何变换矩阵xform。 1、基本3d实体生成技术、4、生成基本3d实体的编程示例、1、基本3d实体生成技术、基于2d对象的3d实体生成技术、3d实体布尔运算和查询技术、ObjectARX实体建模技术、 面域是由闭合边界创建的2d闭合区域,边界是曲线或连续曲线,构成边界的对象是直线、多段线、圆、圆弧、椭圆、椭圆弧、样条曲线、3d平面、宽线和实体。 这些对象可以自己封闭,也可以与其他对象共同形成封闭区域,但必须位于同一平面上。 基于2,2 d对象生成3d实体的技术可以从封闭对象或由端点连接的多个封闭对象创建多个面域,如果边界对象相交,则无法创建面域。 您可以填充区域的图案和着色,并分析区域的特性。 AcDbRegion类的主要成员函数是,1,区域表现类,acad :3360 errorrstatusfromcurves (constracdbvoidptrarray/对向域进行布尔运算。 拉伸是指基于二维对象(如圆、椭圆或闭合的二维多段线)在拉伸高度或指定路径处生成新的三维实体。 在ARX应用程序中使用挤出技术生成新的三维实体是通过调用AcDb3dSolid类的成员函数来实现的。 2、基于二维对象生成三维实体的技术;1、按指定高度挤出函数的原型: virtual acad :30 errorrstatesextrude (constracdbregion * p region,doubleheight ) 参数pRegion表示指向区域对象的指针,height表示挤出高度taper表示挤出锥角(单位为弧度)、2、将二维对象挤出到三维实体中、按指定的路径进行挤出, 函数的原型如下: virtual acad :30 eerrerstatuseddealongpath (constracdbregion * p region,constAcDbCurve*path )。 path是拉伸路径,必须是直线、圆、椭圆、圆弧、样条曲线等对象。 旋转是指根据二维对象(例如圆、椭圆或封闭的二维多段线)在指定轴上旋转以生成新的三维实体。 函数的原型包括: 2、基于二维对象生成三维实体的技术,virtual acad :30 errorrstatusvolve (constracdbregion * p region, constAcGePoint3d参数pdegion表示指向区域对象的指针,axisPoint是旋转轴上的点,axisDir是轴的方向向量,angleofvoluton是旋转角度(弧度)。、3、将二维对象旋转为三维实体,获取二维对象的区域指针分为三个阶段:获取指向闭合边界的无值指针阵列基于闭合边界生成区域对象。 例如,acdb region :30 createfromcurves (lines,regions ); lines表示指向封闭边界的指针,regions是返回区域对象的指针数组。 、获取指向区域的指针。 二、基于二维对象生成三维实体的技术,四、通过挤出方法生成三维实体的例子,程序实现的主要功能:通过挤出方法生成a型键模型和l型弯头模型。 其中,a型键三维实体模型以AcDbPolyline类生成的平面图(由密钥长度l和密钥宽度b方向构成的平面)为基础,向密钥高度h方向推出生成三维实体。 程序中使用的主要技术:1)AcDbPolyline类结构函数的原型为acdb polyline (unsignedintonum _ verts=0); 成员函数addVertexAt ()用于添加顶点,原型为acad :36 errestatusaddvertexat (unsigned index, constAcGePoint2d.)、2、基于二维对象生成三维实体的技术、4、通过挤出方法生成三维实体的实例、参数index是顶点编号(从0开始计数) pt、顶点坐标bulge是凸起值startWidth和end 2 )成员函数setClosed ()用于设置多行的打开/关闭状态,参数Adesk:kTrue表示关闭,adesk:30kfalse表示打开。 3 )成员函数setNormal ()设置多行法向量。 4 )检索二维对象的区域指针基于a、检索指向封闭边界的无值指针数组的三个阶段b .封闭边界生成区域对象。 示例: acdb region :3360 createfromcurves (lines,regions) lines表示指向封闭边界的指针,regions是返回区域对象的指针数组。 c .获取指向该区域的指针。 1、基本的3d实体产生技术2、基于2d对象产生3d实体的技术3、3d实体布尔运算和查询技术、ObjectARX实体建模技术和上述两种方法仅仅是形成相对简单的3d实体,复杂的建模就可以通过恒定的布尔运算来实现具体的布尔运算有三、三维实体的布尔运算和查询技术,和(UNION ) :求两个以上实体的和,即合并为一个实体的交叉(subtract ) :求两个以上实体的交叉,即生成实体的共同部分的差(INTERSECTION ) 、1、3维实体的布尔运算函数、ARX应用程序对实体进行布尔运算时调用AcDb3dSolid类的成员函数booloper (),函数的原型为virtual acad :30 errorstrongstopoper (acdb 函数参数operation是布尔运算型,该值作为acdb:30kbtoolunite、acdb:30kbtoolintersect、acdb:30kboolsubtract,分别表示和、积、差运算。 pSolid表示参与布尔运算的另一个物理指针。 此外,通过AcDb3dSolid类的查询函数可以获得有关三维实体的数据信息。 三、三维实体布尔运算和查询技术,查询特性: virtual acad :3360 errorrstatusmassprop (doubleleacgepoint3daxispoint (0.0,0.0,0.0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肝脏疾病考试题目及答案
- 老年髋部骨折治疗的基准指标总结2026
- 2026年国际贸易实务操作试卷及答案
- 2026八年级下语文修辞手法分析技巧
- 保安员值班巡查制度
- 供热公司安全生产制度
- 氧压机考试试题及答案
- 企业员工制度
- 人社局公平竞争审查制度
- 淘宝仓库发货奖惩制度
- 2026广东云浮市新兴县林业局招聘1人笔试备考试题及答案解析
- 2026春道德与法治二年级下册《身心健康很重要》教学设计
- 抖音直播营销案例分析
- 平行线的判定课件2025-2026学年人教版数学七年级下册
- 2025青岛国企社会招聘笔试题及答案解析
- 隧道爆破作业安全操作规程
- 03【教案】 项目三 数控编程基础知识
- 中小学体育教师职称晋升面试答辩真题解密
- 代开发票委托书范本
- 接触网技术规格书3电连接线
- 《大学物理》说课课件
评论
0/150
提交评论