好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

创建和编辑基本图形对象.ppt

49页
  • 卖家[上传人]:pu****.1
  • 文档编号:606201087
  • 上传时间:2025-05-23
  • 文档格式:PPT
  • 文档大小:225KB
  • / 49 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,,*,第三章 创建和编辑基本图形对象,,在学习,ObjectARX,的时候,大多数曾经试图直接去学习数据库的操作、几何类等概念,结果并不理想经过一段时间的摸索,将创建和编辑基本图形对象作为突破口,逐步深入,在学习过程中成就感很强3.1.1,说明,,本实例运行的结果是在,AutoCAD 2008,中,创建一条直线,该直线的起点是(,0,,,0,,,0,),终点是(,100,,,100,,,0,)除此之外,不准备再做更多的事情麻雀虽小,五脏俱全通过这个程序,你将要开始了解,AutoCAD,数据库的基本结构,,3.1,创建直线,,3.1.2,思路,,,首先来看看,在,AutoCAD,中,使用,LINE,命令创建一条直线,需要哪些东西:,,,命令,: _line,,,指定第一点,: 0,0,,,指定下一点或,[,放弃,(U)]: 100,100,,,指定下一点或,[,放弃,(U)]:,,从上面的命令提示可以看出,创建一条直线,需要用户指定起点和终点在继续之前,必须给大家介绍一点数据库最基础的几个名词:,,,表:表是数据库的组成单位,一个数据库至少包含一个表。

      记录:记录是表的组成单位,一个表可能包含多条记录,也可能不包含任何记录上图用来描述,AutoCAD,数据库的基本结构再好不过了从图中来看,实体包含在块表记录中,因此要创建一个图形对象,需要遵循下面的基本步骤:,,(,1,)确定要创建对象的图形数据库;,,(,2,)获得图形数据库的块表;,,(,3,)获得一个存储实体的块表记录,所有模型空间的实体都存储在模型空间的特定记录中4,)创建实体类的一个对象,将该对象附加到特定的块表记录中3.1.3,步骤,,(,1,)使用向导创建一个命令(名称为,MyLine,)2,)函数中,添加创建直线对象(在,ObjectARX,中,,AcDbLine,类代表直线)的代码:,,//,在内存上创建一个新的,AcDbLine,对象,,AcGePoint3d ptStart(0, 0, 0);,,AcGePoint3d ptEnd(100, 100, 0);,,AcDbLine *pLine = new AcDbLine(ptStart, ptEnd);,,注意,基于,AutoCAD,内部的实现机制,必须在堆上创建对象,而不能用下面的语句创建直线的对象:,,AcDbLine line(ptStart, ptEnd);,,此时,直线对象仅被在内存上创建,并没有添加到图形数据库中,因此不可能会显示在图形窗口中。

      3,)在函数中,添加获得指向块表的指针的相关代码:,,//,获得指向块表的指针,,AcDbBlockTable *pBlockTable;,,acdbHostApplicationServices()->workingDatabase(),,->getBlockTable(pBlockTable, AcDb::kForRead);,,acdbHostApplicationServices()->workingDatabase(),能够获得一个指向当前活动的图形数据库的指针,这在后面还要经常遇到getBlockTable,是,AcDbDatabase,类的一个成员函数,用于获得指向图形数据库的块表的指针,其定义为:,,inline Acad::ErrorStatus getBlockTable(,,AcDbBlockTable*& pTable,,,AcDb::OpenMode mode);,,该函数的返回值,Acad::ErrorStatus,是,ObjectARX,中定义的一个枚举类型,主要用于判断函数的返回状态,如果函数成功执行会返回,Acad::eOk,第一个参数,pTable,返回指向块表的指针;第二个参数同样是一个枚举类型的变量,其类型,AcDb::OpenMode,包含了,AcDb::kForRead,、,AcDb::kForWrite,和,AcDb::kForNotify,三个可取的值,创建直线的时候不需要更改块表,因此这里打开的模式为,AcDb::kForRead,。

      4,)在函数中,添加获得指向特定块表记录的指针的相关代码:,,//,获得指向特定的块表记录(模型空间)的指针,,AcDbBlockTableRecord *pBlockTableRecord;,,pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,,,AcDb::kForWrite);,,getAt,函数是,AcDbBlockTable,类的一个成员函数,用于获得块表中特定的记录,其定义为,,Acad::ErrorStatus getAt(,,const char* entryName,,,AcDbBlockTableRecord*& pRec,,,AcDb::OpenMode openMode,,,bool openErasedRec = false) const;,第一个参数用于指定块表记录的名称,,ACDB_MODEL_SPACE,是,ObjectARX,中定义的一个常量,其内容是“*,Model_Space,”;第二个参数用于返回指向块表记录的指针;第三个参数指定了块表记录打开的模式,下一步要向块表记录中添加实体,所以就用写的模式(,AcDb::kForWrite,)打开;第四个参数指定是否查找已经被删除的记录,这里暂时不深入介绍,后面在合适的地方我会谈到它,一般使用默认的参数值。

      5,)在函数中,添加向块表记录中附加实体的代码:,,//,将,AcDbLine,类的对象添加到块表记录中,,AcDbObjectId lineId;,,pBlockTableRecord->appendAcDbEntity(lineId, pLine);,,appendAcDbEntity,是,AcDbBlockTableRecord,类的成员函数,用于将,pEntity,指向的实体添加到块表记录和图形数据库中,其定义为:,,Acad::ErrorStatus appendAcDbEntity(,,AcDbObjectId& pOutputId,,,AcDbEntity* pEntity);,,第一个参数返回图形数据库为添加的实体分配的,ID,号;第二个参数指定了所要添加的实体6,)在函数中,添加关闭图形数据库各种对象的代码:,,//,关闭图形数据库的各种对象,,pBlockTable->close();,,pBlockTableRecord->close();,,pLine->close();,,在操作图形数据库的各种对象时,必须遵守,AutoCAD,的打开和关闭对象的协议该协议确保当对象被访问时在物理内存中,而未被访问时可以被分页存储在磁盘中。

      创建和打开数据库的对象之后,必须在不用的时候关闭它7)最后,来看一下完整的代码:,,void ZffCHAP2CreateLine(),,{,,// 在内存上创建一个新的AcDbLine对象,,AcGePoint3d ptStart(0, 0, 0);,,AcGePoint3d ptEnd(100, 100, 0);,,AcDbLine *pLine = new AcDbLine(ptStart, ptEnd);,,// 获得指向块表的指针,,AcDbBlockTable *pBlockTable;,,acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable, AcDb::kForRead);,,// 获得指向特定的块表记录(模型空间)的指针,,AcDbBlockTableRecord *pBlockTableRecord;,,pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,,,AcDb::kForWrite);,,// 将AcDbLine类的对象添加到块表记录中,,AcDbObjectId lineId;,,pBlockTableRecord->appendAcDbEntity(lineId, pLine);,,,// 关闭图形数据库的各种对象,,pBlockTable->close();,,pBlockTableRecord->close();,,pLine->close();,,},,,3.2,修改图形对象的属性,,3.2.1,说明,,上一节的学习,你已经能创建一条直线了,本节介绍的例子则会改变直线的颜色。

      所要实现的效果非常简单:创建一条直线之后,将它的颜色变为红色3.2.2,思路,,如果是在创建时修改直线的颜色,就可以直接在上节函数中加入下面的代码(放在关闭图形数据库各种对象之前):,,pLine->setColorIndex(1);,,运行程序中注册的命令,创建的直线颜色变为红色在实际编程中,并不是每一次都可以在创建对象时将其特性设置到合适的状态,相反,更多的时候可能在创建对象之后才修改其特性,本节正要解决这个问题1,.打开和关闭图形数据库的对象,,访问图形数据库中对象的特性,必须在该对象被打开(对象创建时也会被打开)的状态下,用对象的指针进行访问,并且在访问结束后要及时关闭该对象,不然就会引起,AutoCAD,的错误终止创建一个对象,必须在创建之后关闭该对象,那么如何在某个时候再访问该对象?这就要用到上面介绍的,AcDbObjectId,,也就是对象的,ID,号在创建对象时,可以将图形数据库分配给该对象的,ID,保存起来,在需要访问该对象时,根据这个,ID,从数据库中获得指向该对象的指针,就可以修改或者查询该对象的特性AcDbBlockTableRecord,类的,appendAcDbEntity,函数能够将一个实体添加到图形数据库中;全局函数,acdbOpenAcDbEntity,用于从实体的,ID,号获得指向图形数据库中实体的指针,其定义为:,,Acad::ErrorStatus acdbOpenAcDbEntity(,,AcDbEntity*& pEnt,,,AcDbObjectId id,,,AcDb::OpenMode mode,,,bool openErasedEntity = false);,,第一个参数返回指向图形数据库实体的指针;第二个参数输入了要获得的实体的,ID,号;第三个参数指定了打开该实体的方式,如果仅是查询该实体的特性用“读”模式打开即可,要修改实体的特性就必须用“写”模式打开;第四个参数指定是否允许访问一个已经被删除的实体。

      ObjectARX,提供了另外两个全局函数,acdbOpenAcDbObject,和,acdbOpenObject,来实现类似的功能,这三个函数的区别在与适用范围:,,,acdbOpenAcDbEntity,:适用于打开继承于,AcDbEntity,的数据库常驻对象,这类对象一般都能在图形窗口中显示,如直线、圆等acdbOpenAcDbObject,:适用于打开未继承于,AcDbEntity,的数据库常驻对象,这类对象不能在图形窗口中显示,如层表、线型表等acdbOpenObject,:如何不知道要打开的对象是否继承于,AcDbEntity,类,可以使用这个函数打开某个对象之后,使用,close,函数就可以将其关闭对象标识,,开发者使用,ObjectARX API,开发时,通常需要标识所处理的对象,同一个数据库对象根据所处的阶段不同可以用不同的标识符加以标识,,,不同的阶段可以是在,dwg,文件中或者是当前图形数据库(内存中),以及选择集中,通常可以通过以下方式标识一个实体AcDbHandle,,DWG,文件中的每一个实体都有一个唯一的标识符,称为句柄,用,AcDbHandle,表示实体的句柄可以随,DWG,文件保存,所以即使,DWG,文件没有被,AutoCAD,打开,也可以根据句柄搜索,DWG,文件获取对象信息,句柄的唯一性仅限于其所在的,DWG,文件。

      AcDbObjectId,,当,DWG,图形被打开后,数据库中的实体对象都会在内存中对应一个唯一的对象,ID,(,AcDbObjectId,),对象,ID,也是与实体对象相关联的唯一的标识符,,,与句柄不同,对象,ID,仅存在于其所在的数据库从内存中产生到数据库被删除之间,并且如果操作多个数据库,对象,ID,在多个数据库之间都是唯一的AcDbObject,对象指针,,当一个对象被打开后,,AutoCAD,会返回指向,AcDbObject,或其派生类型的一个,C++,,指针,开发者就可以采用标准,C++,类对象的方式对实体进行操作显然,这是,ObjectARX,操作实体的主要方式ads_name,,ads_name,是,AutoCAD,定义的一个数据类型,这个数据类型在,AutoCAD,发展到,ADS,开发阶段被引入,并作为,ADSRX,的一部分保留在,ObjectARX,开发方式下ads_name,一般用来保存用户交互过程中成功选择实体的结果,通常,选择实体是为了用户能获得并修改实体的属性,,ObjectARX,提供了,ads_name,与对象,ID,的转换函数,从而可以按,ObjectARX,的方式修改实体属性。

      对象标识符的相互转换,,ObjectARX,提供了丰富的实体标识符转换函数,保证开发者采用合适的开发方式获取或修改实体的属性,如图所示:,具体来说,,ID,、指针、句柄和,ads_name,之间具有下面的转换关系(不完转换并未提及): ,,从,ID,到对象指针:通过打开数据库对象的三个函数,acdbOpenAcDbEntitu,、,cdbOpenAcDbObject,和,acdbOpenObject,中的任何一个从对象指针到,ID,:所有的数据库常驻对象都继承自,AcDbOject,,而,AcDbObject,类包含的,objectId,函数能获得所指向对象的,ID,,从句柄到,ID,:使用,AcDbDatabase::getAcDbObje,函数从,ID,到句柄:使用,AcDbObjectId::handle,函数从指针到句柄:使用,AcDbObject::getAcDbHandle,函数从,ads_name,到,ID,:使用全局函数,acdbGetObjectId,从,ID,到,ads_name,:使用全局函数,acdbGetAdsName,调用全局函数,acdbOpenObject,()传入,AcDbObjectId,将打开对象,得到对象指针。

      调用,AcDbObject ::getAcDbHandle,()可以获取对象的句柄,AcDbHandle,,,,通过,AcDbDatabase:: getAcDbObjectId(),可以将对象句柄,AcDbHandle,映射为,AcDbObjectId,对象;,,反之,,AcDbObjectId::handle,()函数用于返回,AcDbObjectId,所关联的对象句柄,AcDbHandle,调用,acdbGetObjectId,()可以,ads_name,转化为,AcDbObjectId,;反之,调用,acdbGetAdsName(),则将,AcDbObjectId,转化为,ads_name,例:,,//,选择对象,返回,ads_name,,ads_name en;,,ads_point pt;,,acedEntSel(_T("\n,选择对象,: "), en, pt);,,//,通过对象标识转换函数得到对象,ID,,AcDbObjectId eId;,,acdbGetObjectId(eId, en);,,//,打开实体,得到,AcDbEntity,指针,,AcDbEntity * pEnt;,,acdbOpenObject(pEnt, eId, AcDb::kForRead);,3.3,创建圆,,在,ObjectARX,中,,AcDbCircle,类用来表示圆。

      该类有两个构造函数,其形式分别为:,,AcDbCircle();,,AcDbCircle(const AcGePoint3d,,两个构造函数的名称相同,接受不同的参数,这是,C++,中函数的重载重载是,C++,提供的一个很有用的特性,相同功能的函数采用同样的名称,大大减少了程序员的记忆量第一个构造函数不接受任何参数,创建一个圆心为(,0,,,0,,,0,)、半径为,0,的圆,其所在平面法向量为(,0,,,0,,,1,);第二个构造函数则接受了圆心、圆所在平面法向量和半径三个参数一般来说,我习惯于在创建实体时直接将其初始化,很少用第一个构造函数AcGePoint3d ptCenter(0,0,0);,,AcGeVector3d vec(0,0,1),,double radius =10,,,AcDbCircle *pCircle = new AcDbCircle(ptCenter, vec, radius);,,//,将实体添加到图形数据库,,AcDbObjectId circleId;,3.3,对象的类型判断,,由于所有实体都是从,AcDbEntity,派生的,所以当打开一个,AcDbEntity,对象时,开发者经常需要进一步判断其类型,如判断是一条线还是一个圆等。

      在实际的开发中,对,ObjectARX,对象进行类型判断需要使用,ObjectARX,提供的类型判断机制我们可以通过,AcRxObject::desc,()静态函数返回,AcRxClass,类型的指针,,,然后调用,AcRxObject::isA,()或者,AcRxObject::isKindOf,()来进行类型判断,其中,AcRxObject::isA,()用于判断对象是否是所需要的对象类型,,,,而,AcRxObject::isKindOf,()可用于判断对象是否是所需要的类型或者其派生类类型假定,AcDbEntity *pEnt,,判断实体是否正好是一条线段可用以下代码:,,if(pEnt->isA()==AcDbLine::desc()),,如果要判断实体是否是线段或者线段的派生对象,可用以下代码来实现:,,if(pEnt->isKindOf(AcDbLine::desc()) {,,AcDbLine* pLine = AcDbLine::cast(pEnt);,,},,通过上述方法完成了对象的类型判断以后,如果需要进行类型转换,通常调用静态函,,数,AcRxObject::cast (),来完成,该函数将传入的对象指针转化为指定的对象类型指针,,,如上,,述代码中将实体,pEnt,转化为,AcDbLine,对象指针。

      3.4,实体操作,,前面介绍了通过,API,创建新实体对象,除此之外,开发者还可以通过,API,来对实体进行打开、编辑、删除等操作,当然对于复杂实体在处理的时候需要多做一些工作3.4.1,实体操作方式,,ObjectARX,中对实体的操作一般有两种方式,一种为,open/close,方式,另一种为通过事务的方式open/close,方式,,在,open/close,方式中,通常调用全局函数,acdbOpenObject,()来打开实体对象,需要传入数据库对象,ID,,返回数据库对象的指针另外还可以通过,acdbOpenAcDbEntity,()打开从,AcDbEntity,派生的实体对象,或者调用,acdbOpenAcDbObjec,()打开从,AcDbObject,派生的数据库常驻对象这三个函数的用法一样,下面以,acdbOpenObject,()为例说明函数的使用,,,acdbOpenObject,函数原型为:,,Acad::ErrorStatus acdbOpenObject(,,AcDbObject*& obj,,,AcDbObjectId objId,,,AcDb::OpenMode openMode,,,Adesk::Boolean openErasedObject,,);,,或者:,,Acad::ErrorStatus acdbOpenObject(,,AcDbEntity *& pEnt,,,AcDbObjectId id,,,AcDb::OpenMode mode,,,bool openErased);,在通过,acdbOpenObject,函数打开对象的时候,需要指定对象的打开模式,,AcDb::OpenMode,,打开模式有,AcDb::kForRead,,,AcDb::kForWrite,和,AcDb::kForNotify,三种,各种模式的说明如下:,,打开模式 说明,,AcDb::kForRead,,以读的模式打开对象。

      一个对象最多可以同时被以读模式打开,256,次,此时不能再以读或通知模式打开,,AcDb::kForWrite,,以写模式打开如果已经打开,则以写模式打开对象将失败一个对象同时只能以写的模式打开一次AcDb::kForNotify,,以通知模式打开当对象已经被读或写模式打开时,可以通知模式打开当以,AcDb::kForRead,打开对象的时候,只能访问数据库对象的数据,不能进行修改操作,如果要进行修改,需要调用,AcDbObject::upgradeOpen,()将打开模式升级为写,可以调用,AcDbObject::downgradeOpen,将对象打开模式降低为读实体对象打开后,就可以通过实体的对象指针操作实体,当操作结束后,切记关闭实体对象,否则会造成,AutoCAD,异常,关闭实体调用的是实体的,close,()成员函数//,选择对象,,ads_name en;,,ads_point pt;,,acedEntSel( _T("\n,选择实体,: "), en, pt);,,AcDbObjectId id;,,//,转化,ads_name,为,AcDbObjectId,,acdbGetObjectId(id,en);,,AcDbEntity * pEnt;,,//,打开对象,,acdbOpenObject(pEnt, id, AcDb::kForRead );,,//,将打开的对象转化为,AcDbLine,对象指针,,if(pEnt->isKindOf (AcDbLine::desc())),,{,,//,编辑对象,,AcDbLine* pLine = AcDbLine::cast(pEnt);,,pLine->upgradeOpen ();,,pLine->setColorIndex (1);,,},,//,关闭对象,,pEnt->close();,实体的删除,,,如果新创建的实体没有通过,AcDbBlockTableRecord::appendAcDbEntity,()加入到块表记录的时候,它只是一个普通的,C++,对象指针,开发者可以使用,delete,将其删除。

      一旦实体被添加加进数据库,则不能通过,delete,进行删除,否则会造成,AutoCAD,崩溃删除已经在数据库中的实体必须通过,AcDbObject::erase(),,该函数有一个,bool,型的参量,所以它既可以删除实体,也可以将删除的实体恢复实际上,,erase,函数只是将实体做了是否删除的标记,实体仍然在数据库中,只有执行了文件保存操作的时候,它才会从数据库中消失3.5,实体属性,,,不论是,AutoCAD,自带的实体还是开发者开发的自定义实体,所有实体都是从,,AcDbEntiy,派生的,它们都具有一些共同的属性,并且拥有共同的存取属性的函数这些属性包括颜色、线型、线型比例、可见性、图层等当添加一个实体到块表记录的时候,如果没有明确的设置这些属性,,AutoCAD,会自动,,调用,AcDbEntity::setDatabaseDefaults(),函数,将这些属性设置为默认值实体颜色,,实体颜色可以用,0,~,256,的颜色索引值表示,也可以用,AcCmColor,类来表示,通过,,AcCmColor::colorIndex(),成员函数可以得到颜色的索引值颜色索引值,1,~,7,用于标准颜色,,8,~,255,的颜色取决于显示设备。

      1,~,7,的颜色如下表,可以通过,AcDbEntity::colorIndex(),来获取实体颜色索引值,也可以通过,,AcDbEntity::setColorIndex(Adesk::UInt16 color),来设置实体的颜色,下面代码通过输入颜色索引来改变实体的颜色Acad::ErrorStatus,,changeColor(AcDbObjectId entId, Adesk::UInt16 newColor),,{,,AcDbEntity *pEntity;,,acdbOpenObject(pEntity, entId, AcDb::kForWrite);,,pEntity->setColorIndex(newColor);,,pEntity->close();,,return Acad::eOk;,,},实体线型,,线型就是定义了一系列的点和短线的组合,用来绘制不同样式的线段,在,ObjectARX,,中线型对象对应线型表中的一条线型记录,通过,AcDbLinetypeTableRecord,来表示,通过,,API,可以根据线型记录的名称来获取指定的线型表记录,如下代码所示,:,//,首先获取线型表,,AcDbLinetypeTable *pLinetypeTbl;,,es = acdbHostApplicationServices()->workingDatabase(),,->getSymbolTable(pLinetypeTbl, AcDb::kForRead);,,if (es != Acad::eOk) {,,return;,,},,//,获取指定的线型表记录,,AcDbObjectId ltypeObjId;,,es = pLinetypeTbl->getAt(_T("CONTINUOUS"), ltypeObjId);,,if (es != Acad::eOk) {,,es = pLinetypeTbl ->close();,,return;,,},当一个实体对象被创建时,其线型被初始化为,NULL,,然后用户可以通过调用,,AcDbEntity::setLinetype(),传入线型名或线型的对象,ID,来设置实体的线型,同样也可以,,AcDbEntity::linetype(),或,AcDbEntity::linetypeId(),来返回实体线型名或线型的对象,ID,。

      可以通过以下代码来设置实体的线型:,,ads_name en;,,ads_point pt;,,acedEntSel( _T("\n,选择实体,: "), en, pt);,,AcDbObjectId entId;,,acdbGetObjectId(entId, en);,,AcDbEntity *pEntity;,,acdbOpenAcDbEntity(pEntity, entId,AcDb::kForWrite);,,pEntity->,setLinetype(_T("HIDDEN"));,,pEntity->close();,,如果实体对象添加到数据库时没有显式地调用以上函数进行设置,则实体将采用数据库的当前线型值,此值存在,CELTYPE,系统变量中AutoCAD,中提供一些特殊的线型,具体说明如下表:,。

      点击阅读更多内容
      相关文档
      【全国硕士研究生入学统一考试政治】2020年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2015年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2010年考研政治真题.docx 【全国硕士研究生入学统一考试政治】1996年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2001年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2016年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2000年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2007年考研政治真题.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2004年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2003年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2019年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2009年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2001年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2021年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2014年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2018年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2008年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2011年考研政治真题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.