struct resbuf 结构就象LISP里面的表(

huangyufeng0 2020-04-18

struct resbuf 结构就象LISP里面的表((LISP a b)(LISP a b)(LISP a b)(LISP a b).....) 之类的东东,主要是用来做一个对象的DXF组码链表,然后用来给别的涵数生成对象之类的处理,如果是生成对象的话我们可以不用struct resbuf结构来做,直用用对象类来生成啊.例如:

LISP用DXF组码生成一个圆的代码:
(setq Cirlist ‘((0 . "CIRCLE")(100 . "AcDbEntity")(100 . "AcDbCircle")(8 . "0")(40 . 0.8) (10 0 0 0)))
(entmake Cirlist)

ARX用struct resbuf 生成一个圆的代码:
  struct resbuf *Cirlist;
  ads_point PT1={0,0,0};
  Cirlist=acutBuildList(RTDXF0,"CIRCLE",100,"AcDbEntity",100,"AcDbCircle",8,"0",40,0.8,10,PT1,0);
  acdbEntMake(Cirlist);

用ARX的类生成一个圆的代码:
ads_real rad=3.0;
  AcGePoint3d Cpt(0,0,0);
  AcGeVector3d Vec(0,0,1);
  AcDbCircle *nc=new AcDbCircle();
  nc->setCenter(Cpt);
  nc->setRadius(rad);
  AcDbBlockTable *btable;
  acdbHostApplicationServices()->workingDatabase()->getSymbolTable(btable,AcDb::kForRead);
  AcDbBlockTableRecord *brecord;
  btable->getAt(ACDB_MODEL_SPACE,brecord,AcDb::kForWrite);
  brecord->appendAcDbEntity(nc);
  nc->close();
  btable->close();
  brecord->close();

相关推荐