天圆液压产品中心
关于AutoCAD非液压油缸图形特性存取的应用切磋
|
pDict->setAt("XREC1", pXrec, xrecObjId); AutoCAD 2000 以其强盛的成果及对二次开拓的支持和开放性,成为浩瀚计划职员回收的事变平台和二次开拓平台。它不只能存储所天生图形的几许信息和其余相干信息,并且还应承用户成立本身的“非图形特性信息”,以便在图形文件中提供须要的较完备的产物数据,实现零件信息的自动统计,差异零部件的关联计划,自动提取所需零件及图纸的相干特性参数等,为后续开拓和出产提供保障。 在凡是的计划中,图纸中只包括了各类图形实体及实体的根基属性,如线型、图层和可见性等,一样平常都不包罗根基属性以外的非图形特性属性,如实体的原料、加工要领等。我们可以操作扩显现数据(Xdata)和扩显现记录工具(Xrecord)来存储其非图形特性参数,为关联计划和CAPP等提供须要的信息。 bl=pRbList->resval.rreal;//获取关联参数bl ads_real bl,fl;//零件甲与零件乙相干联的参数 pHead = acutBuildList(AcDb::kDxfReal, bl,AcDb::kDxfReal,fl,0); pDict->close(); Acad::ErrorStatus AcDbObject::setXData(const resbuf* xdata); AcDbObjectId xrecObjId; pRb=pObj->xData(appName);//获取应用名appName指定的扩显现数据 if(n==1) Acad::ErrorStatus getAt(const char* entryName,AcDbObject*&entryObj,AcDb::OpenMode mode) const; char daihao[40];//电缆代号 (2) 在计划零件乙的进程中,从零件甲的图形文件中获取所需的相干参数 AcDbDictionary *pNamedobj, *pDict; char daihao[40];//电缆代号 1.操作扩显现实体数据生涯和提取实体非图形特性 acutRelRb(pRb); fl=pRbList->resval.rreal; //获取关联参数fl (2)添加工具到扩显现数据辞书 pDict->getAt("XREC1", (AcDbObject*&) pXrec,AcDb::kForRead); strcpy(pTemp->resval.rstring, daihao); //将代号存入功效缓冲器链表 pNamedobj->close(); AcDbXrecord *pXrec = new AcDbXrecord; //配置包括参数bl,fl的功效缓冲器链表 char appName[40];//应用措施名 AcDb::kForRead);//获取名为Guanliansheji的数据辞书 acutRelRb(pHead); pTemp->resval.rstring= (char*)malloc(strlen(daihao)+1); Acad::ErrorStatus; (5)获取扩显现实体记录的内容 { int n=0; ->getNamedObjectsDictionary(pNamedobj, AcDb::kForWrite); 2.操作扩显现记录工具实现关联计划 辞书用以存储用户本身界说的种种标记表及其他大量数据。扩显现实体记录就是一个Resbuf链表。该链表是一个数据组的列表,链表中每一节点都包括一个DXF组码及相干数据。扩显现实体记录的DXF组码的范畴是1~369,个中的数据没有任何限定,可以被任何其余工具所拥有。我们可以通过以下要领来实现对非图形特性信息的存储和提取。 struct resbuf *pRbList; pTemp = pRb; (4)添加数据到扩显现数据记录 strcpy(pTemp->resval.rstring, appName);//将数据存入功效缓冲器链表 (2)获取指定工具的扩显现实体数据 (1) 在零件甲的图纸空间中生涯关联参数 } 三、非图形特性存储提取要领的应用 AcdbObject *pObj;//通过必然的方法获取必要添加数据的工具 AcDbDatabase* pDb = new AcDbDatabase(false, true); ads_real length;//电缆长度 for(;pRb!=NULL;pRb=pRb->rbnext) 在工场电气布线中,必要对电缆设定代号、名称、产地等非几许特性,以便于对电缆等原料举办自动统计等后续事变。 (3)检索指定要害字的扩显现数据辞书记录 strcpy(appName,“dianqibuxian”); 个中,Key为插手到辞书的新工具的索引要害字; 以上先容了通过扩显现实体数据和扩显现实体记录工具来存储和提取非图形特性的要领。下面通过3个实例来先容其应用。 entryObj为返回的检索到的工具指针; setAt(char* Key,AcDbObject* obj,AcDbObjectId& retobjId); pDb->readDwgFile(fname);//fname为零件甲的图形文件名 pTemp->resval.rreal=length; 个中,regappName 欲获守信息所属的应用措施名。 pNamedobj->close(); struct resbuf *pRb,*pTemp; pObj->close(); 个中,ppRb为功效缓冲区布局指针。 在AutoCAD中,图形是指存储在数据库中的工具的荟萃。根基的数据库工具包罗实体、标记表和字典。实体是一种指定范例的数据库工具,它在AutoCAD中有图形暗示,如直线、圆、曲线和笔墨等;标记表和字典是用来存储数据库工具的容器工具。ObjectARX 行使户的应用措施可以或许会见这些数据库工具,其它,用户也可觉得指定的应用措施建设新的数据库工具。 } (1)为电缆实体设定非图形特性 (1)建设辞书工具 acutRelRb(pRb); pRb = acutNewRb(AcDb::kDxfRegAppName);//分派功效缓冲器 pXrec->close(); 本文先容了在AutoCAD中通过二次开拓措施来实现非图形特性信息的存储和提取,这些要领可以大大进步图纸数据库中的信息含量,从而为后续的产物计划和开拓事变提供基本,大大进步计划服从。 个中,xdata 为功效缓冲区链表,液压油缸,包括要添加的信息。 pXrec->setFromRbChain(*pHead);//给扩显现记录工具附加信息 } obj为插手到辞书的新工具指针; //获取要害字为XREC1的扩显现记录工具 Acad::ErrorStatus createExtensionDictionary(); pTemp=pTemp->rbnext; 在参数化计划进程中,零件甲中的某些参数与零件乙的计划有关联。我们计划零件乙时就必要从零件甲的图纸数据库中获取所需的参数,实现关联计划。 AcDbXrecord *pXrec; strcpy(appName,“diqibuxian”); Acad::ErrorStatusAcDbXrecord::setFromRb 2.扩显现实体辞书和扩显现实体记录 { if(pRb->restype==1000) pDict->close(); 3. 其他应用 pNamedobj->getAt("Guanliansheji", (AcDbObject*&)pDict, (1)为指定工具附加扩显现实体数据 pXrec->rbChain(&pRbList);//获取包括特性信息的功效缓冲器链表 length=pRb->resval.rreal; acdbRegApp(appName);//以appName挂号图形中一个应用措施名 ObjectARX、Visual Lisp等应用措施都可以建设扩显现实体数据(Xdata),天圆液压缸筒,扩显现实体数据可以附在任何工具上,AutoCAD 只认真维护这些信息,但并不行使这些信息。一个实体的扩显现数据由应用措施所成立,跟从在该实体的正常界说数据之后,包括一个或多个1001组。每一组均以一个互不沟通的应用措施名开头,扩显现数据的组码在1000至1071之间,差异组码对应差异范例的信息。可用以下要领为指定工具附加扩显现实体数据,获取指定工具的扩显现实体数据。 pTemp->rbnext=acutNewRb(AcDb::kDxfXdAsciiString); AcDbDictionary *pDict; pXrec->close(); struct resbuf *pRb; pDb->getNamedObjectsDictionary(pNamedobj, AcDb::kForRead); (2)获取指定工具的扩显现实体数据 { n++; pTemp=pTemp->rbnext; //获取当前数据库中的定名工具字典 char mingcheng[40];//电缆名称 if(n==2) struct resbuf *pHead; 四、竣事语 …… Acad::ErrorStatus AcDbObject::XData(const char* regappName); strcpy(daihao,pRb->resval.rstring);//获得电缆代号 1.扩显现实体数据(Xdata) pTemp->rbnext=acutNewRb(AcDb::kDxfxdLong); Chain(resbuf& pRb,AcDbDatabase*pDb=NULL); AcDbObject* pObj; 二、 非图形特性的存储和提取要领 pObj->SetXData(pRb);//为工具添加扩显现实体数据 Acad::ErrorStatusAcDbXrecord::rbChain(resbuf**ppRb,AcDbDatabase*pAuxDb=NULL); char mingcheng[40];//电缆名称 retobjId为插手到辞书的新工具Id。 前面先容了怎样操作扩显现实体数据和扩显现记录工具来存储和提取非图形特性,除此以外,尚有更多的应用。譬喻,在CAPP中自动提取零件的一些特性参数供工艺计划用,可镌汰一再的事变,进步整个计划进程的服从。 在举办产物计划时,许多时辰只是计划出了产物的几许特性和属性,在图纸中很少涉及到其余非图形特性属性,如零件的原料、出产数目、拓扑相关等。这些非图形特性每每通过标注来实现,但在图纸自己的数据库中并没有生涯这些有效的非图形特性信息。跟着计较机技能的成长,尤其是收集和数据库的成长和成熟,图纸数据库中若不包括须要的非图形特性信息,就很难实现零件之间的关联及信息的彼此操作,很难充实实现信息的共享。 acdbHostApplicationServices()->workingDatabase() acutRelRb(pRbList); strcpy(mingcheng,pRb->resval.rstring);//获得电缆名称 char appName[40];//应用措施名 mode为工具打开的方法。 pNamedobj->setAt("Guanliansheji", pDict, DictId); 个中,entryName为指定检索的要害字; if(pRb!=NULL) pRbList=pRbList->rbnext; AcDbDictionary *pNamedobj; ads_real length;//电缆长度 pTemp->resval.rstring= (char*)malloc(strlen(appName)+1); 个中,pRb为包括特性信息的功效缓冲区链表。 if(pRb->restype==1040) ……//通过对话框等方法对daihao,mingcheng,length赋初值 (责任编辑:admin) |
- 上一篇:盘点四大珩磨管经典可持续设计
- 下一篇:欧特克如何构液压油缸建“可持续设计”组合拳
- [ 18-11-06 ]换向阀中位性液压站能特点及应用留意
- [ 18-10-09 ]公制螺纹、BS液压油缸PP螺纹ED密封油
- [ 18-09-11 ]很是具体的液液压站压阀块计划履历总
- [ 18-09-11 ]液压节液压站制技能的革命
- [ 16-09-14 ]联轴珩磨管器选择方法
- [ 16-07-17 ]怎样避免缸筒液压站冲击危害?
- [ 16-07-17 ]液压动力单元液不锈钢缸筒压齿轮泵的
