十五年专注于
液压缸筒生产

全国咨询热线:
400-086-9833

   热门关键词修理 加工 活塞杆 缸筒 不锈钢

无标题文档

天圆液压产品中心

当前位置:主页 > 行业资讯 >

存取和应用Auto液压站CAD非图形特征的探讨研究

时间:2017-04-05 09:00来源:来自网络 作者:天圆液压 点击:
在举办产物计划时,许多时辰只是计划出了产物的几许特性和属性,在图纸中很少涉及到其余非图形特性属性,如零件的原料、出产数目、拓扑相关等。这些非图形特性每每通过标注来实现,但在图纸自己的数据库中并没有生涯这些有效的非图形特性信息。跟着计较机

  辞书用以存储用户本身界说的种种标记表及其他大量数据。扩显现实体记录就是一个Resbuf链表。该链表是一个数据组的列表,链表中每一节点都包括一个DXF组码及相干数据。扩显现实体记录的DXF组码的范畴是1~369,个中的数据没有任何限定,可以被任何其余工具所拥有。我们可以通过以下要领来实现对非图形特性信息的存储和提取。

  struct resbuf *pHead;

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

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

  Acad::ErrorStatus getAt(const char* entryName,AcDbObject*&entryObj,AcDb::OpenMode mode) const;

  本文先容了在AutoCAD中通过二次开拓措施来实现非图形特性信息的存储和提取,这些要领可以大大进步图纸数据库中的信息含量,从而为后续的产物计划和开拓事变提供基本,大大进步计划服从。

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

  AutoCAD 以其强盛的成果及对二次开拓的支持和开放性,成为浩瀚计划职员回收的事变平台和二次开拓平台。它不只能存储所天生图形的几许信息和其余相干信息,并且还应承用户成立本身的“非图形特性信息”,以便在图形文件中提供须要的较完备的产物数据,实现零件信息的自动统计,差异零部件的关联计划,天圆液压缸筒,自动提取所需零件及图纸的相干特性参数等,为后续开拓和出产提供保障。

  三、非图形特性存储提取要领的应用

  //获取当前数据库中的定名工具字典

  (1)建设辞书工具

  char appName[40];//应用措施名

  struct resbuf *pRb;

  AcDbDictionary *pDict;

  1.扩显现实体数据(Xdata)

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

  pDict->close();

  AcdbObject *pObj;//通过必然的方法获取必要添加数据的工具

  AcDbObject* pObj;

  在AutoCAD中,图形是指存储在数据库中的工具的荟萃。根基的数据库工具包罗实体、标记表和字典。实体是一种指定范例的数据库工具,它在AutoCAD中有图形暗示,如直线、圆、曲线和笔墨等;标记表和字典是用来存储数据库工具的容器工具。ObjectARX 行使户的应用措施可以或许会见这些数据库工具,其它,用户也可觉得指定的应用措施建设新的数据库工具。

  (3)检索指定要害字的扩显现数据辞书记录

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

  strcpy(pTemp->resval.rstring, appName);//将数据存入功效缓冲器链表

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

  pTemp->resval.rstring= (char*)malloc(strlen(appName)+1);

  1.操作扩显现实体数据生涯和提取实体非图形特性

  (2)获取指定工具的扩显现实体数据

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

  { if(pRb->restype==1000)

  在凡是的计划中,图纸中只包括了各类图形实体及实体的根基属性,如线型、图层和可见性等,一样平常都不包罗根基属性以外的非图形特性属性,如实体的原料、加工要领等。我们可以操作扩显现数据(Xdata)和扩显现记录工具(Xrecord)来存储其非图形特性参数,为关联计划和CAPP等提供须要的信息。

  AcDbObjectId xrecObjId;

  ads_real length;//电缆长度

  pRbList=pRbList->rbnext;

  3. 其他应用

  bl=pRbList->resval.rreal;//获取关联参数bl

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

  acdbHostApplicationServices()->workingDatabase()

  if(n==1)

  pDict->close();

  (2)获取指定工具的扩显现实体数据

  在举办产物计划时,许多时辰只是计划出了产物的几许特性和属性,在图纸中很少涉及到其余非图形特性属性,如零件的原料、出产数目、拓扑相关等。这些非图形特性每每通过标注来实现,但在图纸自己的数据库中并没有生涯这些有效的非图形特性信息。跟着计较机技能的成长,尤其是收集和数据库的成长和成熟,图纸数据库中若不包括须要的非图形特性信息,就很难实现零件之间的关联及信息的彼此操作,很难充实实现信息的共享。

  acdbRegApp(appName);//以appName挂号图形中一个应用措施名

  char appName[40];//应用措施名

  AcDbDictionary *pNamedobj;

  个中,xdata 为功效缓冲区链表,包括要添加的信息。

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

  (2)添加工具到扩显现数据辞书

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

  if(pRb!=NULL)

  在工场电气布线中,必要对电缆设定代号、名称、产地等非几许特性,以便于对电缆等原料举办自动统计等后续事变。

  (4)添加数据到扩显现数据记录

  ObjectARX、Visual Lisp等应用措施都可以建设扩显现实体数据(Xdata),扩显现实体数据可以附在任何工具上,AutoCAD 只认真维护这些信息,但并不行使这些信息。一个实体的扩显现数据由应用措施所成立,液压缸,跟从在该实体的正常界说数据之后,包括一个或多个1001组。每一组均以一个互不沟通的应用措施名开头,扩显现数据的组码在1000至1071之间,差异组码对应差异范例的信息。可用以下要领为指定工具附加扩显现实体数据,获取指定工具的扩显现实体数据。

  四、竣事语

  个中,regappName 欲获守信息所属的应用措施名。

  Acad::ErrorStatus createExtensionDictionary();

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

  pNamedobj->close();

  if(n==2)

  个中,Key为插手到辞书的新工具的索引要害字;

  struct resbuf *pRb,*pTemp;

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

  acutRelRb(pRb);

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

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

  pTemp=pTemp->rbnext;

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

  strcpy(pTemp->resval.rstring, daihao); //将代号存入功效缓冲器链表

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

  Acad::ErrorStatus;

  obj为插手到辞书的新工具指针;

  entryObj为返回的检索到的工具指针;

  length=pRb->resval.rreal;

  //获取要害字为XREC1的扩显现记录工具

  pObj->SetXData(pRb);//为工具添加扩显现实体数据

  }

  pTemp->resval.rreal=length;

  retobjId为插手到辞书的新工具Id。

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

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

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

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

  前面先容了怎样操作扩显现实体数据和扩显现记录工具来存储和提取非图形特性,除此以外,尚有更多的应用。譬喻,在CAPP中自动提取零件的一些特性参数供工艺计划用,可镌汰一再的事变,进步整个计划进程的服从。

  acutRelRb(pRbList);

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

  pTemp=pTemp->rbnext;

  ……

  pXrec->rbChain(&pRbList);//获取包括特性信息的功效缓冲器链表

  fl=pRbList->resval.rreal; //获取关联参数fl

  Acad::ErrorStatusAcDbXrecord::setFromRb

  AcDbXrecord *pXrec;

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

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

  2.操作扩显现记录工具实现关联计划

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

  struct resbuf *pRbList;

  { int n=0;

  AcDbXrecord *pXrec = new AcDbXrecord;

  个中,pRb为包括特性信息的功效缓冲区链表。

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

  //配置包括参数bl,fl的功效缓冲器链表

  pXrec->close();

  }

  if(pRb->restype==1040)

  个中,ppRb为功效缓冲区布局指针。

  个中,entryName为指定检索的要害字;

  pObj->close();

  pNamedobj->close();

  acutRelRb(pHead);

  AcDbDictionary *pNamedobj, *pDict;

  pRb = acutNewRb(AcDb::kDxfRegAppName);//分派功效缓冲器

  strcpy(appName,“diqibuxian”);

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

  ads_real length;//电缆长度

  AcDb::kForRead);//获取名为Guanliansheji的数据辞书

  pTemp->resval.rstring= (char*)malloc(strlen(daihao)+1);

  acutRelRb(pRb);

  二、 非图形特性的存储和提取要领

  2.扩显现实体辞书和扩显现实体记录

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

  以上先容了通过扩显现实体数据和扩显现实体记录工具来存储和提取非图形特性的要领。下面通过3个实例来先容其应用。

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

  (1)为指定工具附加扩显现实体数据

  mode为工具打开的方法。

  }

  { n++;

  strcpy(mingcheng,pRb->resval.rstring);//获得电缆名称

  strcpy(appName,“dianqibuxian”);

  strcpy(daihao,pRb->resval.rstring);//获得电缆代号

  pXrec->close();

  pXrec->setFromRbChain(*pHead);//给扩显现记录工具附加信息

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

  pTemp = pRb;

(责任编辑:admin)
分享按钮
------分隔线----------------------------