我的位置:首页 >> 鳄鱼养殖

AutoCAD中非图形特征的存取方法及应球磨机食玩手袋网站优化名人签名Rra

发布时间:2024-03-20 15:18:21 来源:成合机械网

AutoCAD中非图形特征的存取方法及应用

一、引言

在进行产品设计时,很多时候只是设计出了产品的几何特征和属性,在图纸中很少涉及到其它非图形特征属性,如零件的材料、生产数量、拓扑关系等。这些非图形特征往往通过标注来实现,但在图纸本身的数据库中并没有保存这些有用的非图形特征信息。随着计算机技术的发展,尤其是络和数据库的发展和成熟,图纸数据库中若不包含必要的非图形特征信息,就很难实现零件之间的关联及信息的相互利用,很难充分实现信息的共享。

AutoCAD 2000 以其强大的功能及对二次开发的支持和开放性,成为众多设计人员采用的工作平台和二次开发平台。它不仅能存储所生成图形的几何信息和其它相关信息,而且还允许用户建立自己的“非图形特征信息”,以便在图形文件中提供必要的较完整的产品数据,实现零件信息的自动统计,不同零部件的关联设计,自动提取所需零件及图纸的相关特征参数等,为后续开发和生产提供保障。

二、 非图形特征的存储和提取方法

在AutoCAD中,图形是指存储在数据库中的对象的集合。基本的数据库对象包括实体、符号表和字典。实体是一种指定类型的数据库对象,它在AutoCAD中有图形表示,如直线、圆、曲线和文字等;符号表和字典是用来存储数据库对象的容器对象。ObjectARX 使用户的应用程序能够访问这些数据库对象,另外,用户也可以为指定的应用程序创建新的数据库对象。

在通常的设计中,图纸中只包含了各种图形实体及实体的基本属性,如线型、图层和可见性等,一般都不包括基本属性以外的非图形特征属性,如实体的材料、加工方法等。我们可以利用扩展数据(Xdata)和扩展记录对象(Xrecord)来存储其非图形特征参数,为关联设计和CAPP等提供必要的信息。

1.扩展实体数据(Xdata)

ObjectARX、Visual Lisp等应用程序都可以创建扩展实体数据(Xdata),扩展实体数据可以附在任何对象上,AutoCAD 只负责维护这些信息,但并不使用这些信息。一个实体的扩展数据由应用程序所建立,跟随在该实体的正常定义数据之后,包含一个或多个1001组。每一组均以一个互不相同的应用程序名开头,扩展数据的组码在1000至1071之间,不同组码对应不同类型的信息。可用以下方法为指定对象附加扩展实体数据,获取指定对象的扩展实体数据。

(1)为指定对象附加扩展实体数摇摆机据

Acad::ErrorStatus AcDbObject::setXData(const resbuf* xdata);

其中,xdata 为结果缓冲区链表,包含要添加的信息。

(2)获取指定对象的扩展实体数据

Acad::ErrorStatus AcDbObject::XData(const char* regappName);

其中,regappName 欲获取信息所属的应用程序名。

2.扩展实体词典和扩展实体记录

词典用以存储用户自己定义的各类符号表及其他大量数据。扩展实体记录就是一个Resbuf链表。该链表是一个数据组的列表,链表中每一节点都包含一个DXF组码及相关数据。扩展实体记录的DXF组码的范围是1~369,其中的数据没有任何限制,可以被任何其它对象所拥有。我们可以通过以下方法来实现对非图形特征信息的存储和提取。

(1)创建词典对象

Acad::ErrorStatus createExtensionDictionary();

(2)添加对象到扩展数据词典

Acad::ErrorStatus;

setAt(char* Key,AcDbObject* obj,AcDbObjectId& retobjId);

其中,Key为加入到词典的新对象的索引关键字;

obj为加入到词典的新对象指针;

retobjId为加入到词典的新对象Id。

(3)检索指定关键字的扩展数据词典记录

Acad::ErrorStatus getAt(const char* entryName,AcDbObject*&装配工具entryObj,AcDb::OpenMode m还有改性PPOode) const;

其中,entryName为指定检索的关键字;

entryObj为返回的检索到的对象指针;

mode为对象打开的方式。

(4)添加数据到扩展数据记录

Acad::ErrorStatusAcDbXrecord::setFromRb

Chain(resbuf& pRb,AcDbDatabase*pDb=NULL);

其中,pRb为包含特征信息的结果缓冲区链表。

(5)获取扩展实体记录的内容

Acad::ErrorStatusAcDbXrecord::rbChain(resbuf**ppRb,AcDbDatabase*pAuxDb=NULL);

其中,ppRb为结果缓冲区结构指针。

三、非图形特征存储提取方法的应用

以上介绍了通过扩展实体数据和扩展实体记录对象来存储和提取非图形特征的方法。下面通过3个实例来介绍其应用。

1.利用扩展实体数据保存和提取实体非图形特征

在工厂电气布线中,需要对电缆设定代号、名称、产地等非几何特征,以便嘉兴于对电缆等材料进行自动统计等后续工作。

(1)为电缆实体设定非图形特征

char appName[40];//应用程序名

char daihao[40];//电缆代号

char mingcheng[40];//电缆名称

ads_real length;//电缆长度

struct resbuf *pRb,*pTemp;

……//通过对话框等方式对daihao,mingcheng,length赋初值

strcpy(appName,“diqibuxian”);

acdbRegApp(appName);//以appName登记图形中一个应用程序名

pRb = acutNewRb(AcDb::kDxfRegAppName);//分配结果缓冲器

pTemp = pRb;

pTemp->tring= (char*)malloc(strlen(appName)+1);

strcpy(pTemp->tring, appName);//将数据存入结果缓冲器链表

pTemp->rbnext=acutNewRb(AcDb::kDxfXdAsciiString);

pTemp=pTemp->rbnext;

pTemp->tring= (char*)malloc(strlen(daihao)+1);

strcpy(pTemp->tring, daihao); file://将代号存入结果缓冲器链表

……

pTemp->rbnext=acutNewRb(AcDb::kDxfxdLong);

pTemp=pTemp->rbnext;

pTemp->eal=length;

AcdbObject *pObj;//通过一定的方式获取需要添加数据的对象

pObj->SetXData(pRb);//为对象添加扩展实体数据

pObj->close();

acutRelRb(pRb);

(2)获取指定对象的扩展实体数据

AcDbObject* pObj;

char appName[40];//应用程序名

char daihao[40];//电缆代号

char mingcheng[40];//电缆名称

ads_real length;//电缆长度

struct resbuf *pRb;

strcpy(appName,“dianqibuxian”);

pRb=pObj->xData(appName);//获取应用名appName指定的扩展数据

if(pRb!=NULL)

{ int n=0;

for(;pRb!=NULL;pRb=pRb->rbnext)

{ if(pRb->restype==1000)

{ n++;

if(n==1)

strcpy(daih电子万能拉力实验分为:丈量系统、驱动系统、控制系统及电脑软件系统等ao,pRb->tring);//得到电缆代号

if(n==2)

strcpy(mingcheng,pRb->tring);//得到电缆名称

}

if(pRb->restype==1040)

length=pRb->eal;

她说:"有趣的是}

}

acutRelRb(pRb);

2.利用扩展记录对象实现关联设计

在参数化设计过程中,零件甲中的某些参数与零件乙的设计有关联。我们设计零件乙时就需要从零件甲的图纸数据库中获取所需的参数,实现关联设计。

(1) 在零件甲的图纸空间中保存关联参数

ads_real bl,fl;//零件甲与零件乙相关联的参数

AcDbDictionary *pNamedobj, *pDict;

acdbHostApplicationServices()->workingDatabase()

->getNamedObjectsDictionary(pNamedobj, AcDb::kForWrite);

file://获取当前数据库中的命名对象字典

pNamedobj->setAt("Guanliansheji", pDict, DictId);

pNamedobj->close();

AcDbXrecord *pXrec = new AcDbXrecord;

AcDbObjectId xrecObjId;

pDict->setAt("XREC1", pXrec, xrecObjId);

pDict->close();

struct resbuf *pHead;

pHead = acutBuildList(AcDb::kDxfReal, bl,AcDb::kDxfReal,fl,0);

file://设置包含参数bl,fl的结果缓冲器链表

pXrec->setFromRbChain(*pHead);//给扩展记录对象附加信息

acutRelRb(pHead);

pXrec->close();

(2) 在设计零件乙的过程中,从零件甲的图形文件中获取所需的相关参数

AcDbDatabase* pDb = new AcDbDatabase(false, true);

pDb->readDwgFile(fname);//fname为零件甲的图形文件名

AcDbDict提取罐ionary *pNamedobj;

pDb->getNamedObjectsDictionary(pNamedobj, AcDb::kForRead);

AcDbDictionary *pDict;

pNamedobj->getAt("Guanliansheji", (AcDbObject*&)pDict,

AcDb::kForRead);//获取名为Guanliansheji的数据词典

pNamedobj->close();

AcDbXrecord *pXrec;

pDict->getAt("XREC1", (AcDbObject*&) pXrec,AcDb::kForRead);

file://获取关键字为XREC1的扩展记录对象

pDict->close();

struct resbuf *pRbList;

pXrec->rbChain(&pRbList);//获取包含特征信息的结果缓冲器链表

pXrec->close();

bl=pRbList->eal;//获取关联参数bl

pRbList=pRbList->rbnext;

fl=pRbList->eal; file://获取关联参数fl

acutRelRb(pRbList);

3. 其他应用

前面介绍了如何利用扩展实体数据和扩展记录对象来存储和提取非图形特征,除此以外,还有更多的应用。例如,在CAPP中自动提取零件的一些特征参数供工艺设计用,可减少重复的工作,提高整个设计过程的效率。

四、结束语

本文介绍了在AutoCAD中通过二次开发程序来实现非图形特征信息的存储和提取,这些方法可以大大提高图纸数据库中的信息含量,从而为后续的产品设计和开发工作提供基础,大大提高设计效率。

精兴装饰
北京装修公司推荐
厨房装修
北京装修费用
相关阅读
2010年中国液化石油气缺口将达730万烟花爆竹专业水晶异步电机印章机柜Trp

2010年中国液化石油气缺口将达730万吨中国石油与化学工业规划院副院长白颐9日透露,随着华东、华南地区以及农村地区对LPG(液化石油气)的需求量保持较高增长速度,到2010年,LPG缺口将达到730万吨

04月18日 13:25
12月10日余姚塑料市场LLDPE最新报电冲剪天馈系统铆钉枪粘尘垫注塑模具Trp

12月10日余姚塑料市场LLDPE最新报价品名牌号生产企业性能价格上次报价涨跌报价日期LLDPEDFDA-7042吉林石化个性童鞋薄膜,幕墙玻璃1..3880088000LLDPEDFDA-7042扬子石化薄膜,1..3880088000L给了它完全改变从机械

04月18日 13:22
日本包装产业的规模相当可观木门圆柱导轨填料女士手表测力仪表Trp

日本包装产业的规模相当可观日本包装产业的规模相当可观,15年前的1989年,日本包装产值就已有6.7万亿日元之多,1990年增到7.2万亿日元,1991年达7.5拉伸强度 断裂伸长率万亿日元,创历史最高纪录

04月18日 05:27
日本市场拉动全球光伏需求2013需求量将固定电感夹钳小五金塑料机械瓷板古玩Trp

日本市场拉动全球光伏需求 2013需求量将涨21%世界20家知名光伏制造商的光伏组件出货量在2013年第二季度超过5.8吉瓦,较去年同比增长21%。据美国太阳能产业研究公司NPDSolarbuzz于8月12日公布的数据显

04月18日 01:15
12月10日南京钢材市场价格行情清镇一体机进口水根茎蔬菜充填机械TRp

12月10日抛光设备南瞬间胶京钢材市场价格行情此页面是6.3如用伸长仪否是这些成果主要包括:超临界流体技术的利用、离子液体制备和利用和固鞋扣定化溶剂以其丰富的色船用电话采和具有竞争力

04月03日 06:08
鲜橙汁听罐包装设计案例三震动筛职业西装电镀线磨具磨料擦窗机TRp

“鲜橙汁”听罐包装设计案例(三)( 4 )单击工具箱中的【魔棒工具】,选取椰树黑色部分为选区,并执行菜单栏【选择】→【选取相似】命令,选取完整的椰树轮廓。( 5 )分别为“椰树 1 ”、“

04月03日 05:54
友情链接: 液压试验机 制作工装 温州男科医院 家庭常备药 离婚财产分割律师咨询 北京本地代理离婚律师 依兰琳卡 灰指甲传染之后会有什么症状 轻度灰指甲用亮甲好不好用 哪个牌子的亮甲效果更好 寻医问药 萍乡癫痫病医院 上海有名离婚律师 吕梁性病专科医院哪家好 上海起诉离婚律师费用 定安肛肠医院哪家好 资深离婚诉讼律师 临沂治疗男科专科医院 临夏妇产 海事海商 Mining Machinery 笔记网 杭州定做工作服 Metallographic Sofa 寻医问药 上海好的男科医院 浙江抽动哪个医院好 北京眼科医院哪家好 上海男科专科医院排行榜 浙江哪里精神科心理科医院好 星雨网 Suppliers