首页 arx函数集合

arx函数集合

举报
开通vip

arx函数集合arx函数集合 void drawline(AcGePoint3d startPt,AcGePoint3d endPt,const ACHAR *linetype,int c,AcDb::LineWeight ww)//画直线 { AcDbLine *pLine = new AcDbLine(startPt, endPt); //构建直线类(AcDbLine)的对象 AcDbBlockTable *pBlockTable; //指向块表的指针 acdbHostApplicationServices()->...

arx函数集合
arx函数集合 void drawline(AcGePoint3d startPt,AcGePoint3d endPt,const ACHAR *linetype,int c,AcDb::LineWeight ww)//画直线 { AcDbLine *pLine = new AcDbLine(startPt, endPt); //构建直线类(AcDbLine)的对象 AcDbBlockTable *pBlockTable; //指向块表的指针 acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead); //将指针指向当前数据库中的块表 AcDbBlockTableRecord *pBlockTableRecord; //指向块表记录的指针 //将块表记录的指针指向当前块表的模型空间记录 pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); pBlockTable->close(); //关闭块表 AcDbObjectId lineId; //直线ID pBlockTableRecord->appendAcDbEntity(lineId, pLine); //将指向添加到块表记录 //属性设置------------------------------------------------------------------- pLine->setLinetype(linetype); pLine->setLinetypeScale(0.6,1); pLine->setLineWeight(ww); pLine->setColorIndex(c); pBlockTableRecord->close(); //关闭块表记录 pLine->close(); } void createArc( AcGePoint3d centerPt,double r,double bA,double eA,const ACHAR *linetype,int c,AcDb::LineWeight ww) { AcDbArc *pArc = new AcDbArc(centerPt,r,bA,eA); AcDbBlockTable *pBlockTable; //指向块表的指针 acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead); //将指针指向当前数据库中的块表 AcDbBlockTableRecord *pBlockTableRecord; //指向块表记录的指针 //将块表记录的指针指向当前块表的模型空间记录 pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); pBlockTable->close(); //关闭块表 AcDbObjectId arcId; //圆弧ID pBlockTableRecord->appendAcDbEntity(arcId, pArc); //添加到块表记录 //属性设置--------------------------------------------------------- pArc->setLinetype(linetype); pArc->setLinetypeScale(0.6,1); pArc->setLineWeight(ww); pArc->setColorIndex(c); pBlockTableRecord->close(); //关闭块表记录 pArc->close(); } void createspLine(AcGePoint3dArray points,int order,double jd,const ACHAR *linetype,int c,AcDb::LineWeight ww) { AcDbSpline *pLine = new AcDbSpline(points, order, jd); AcDbBlockTable *pBlockTable; //指向块表的指针 acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead); //将指针指向当前数据库中的块表 AcDbBlockTableRecord *pBlockTableRecord; //指向块表记录的指针 //将块表记录的指针指向当前块表的模型空间记录 pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); pBlockTable->close(); //关闭块表 AcDbObjectId spLineId; //样线 pBlockTableRecord->appendAcDbEntity(spLineId, pLine); //添加到块表记录 //属性设置--------------------------------------------------------- pLine->setLinetype(linetype); pLine->setLinetypeScale(0.6,1); pLine->setLineWeight(ww); pLine->setColorIndex(c); pBlockTableRecord->close(); //关闭块表记录 pLine->close(); } void createText(AcGePoint3d pt1,const ACHAR *zhi,AcDbObjectId style,double h,double xzj) { AcDbText *pText = new AcDbText(pt1, zhi, style, h,xzj); AcDbBlockTable *pBlockTable; acdbHostApplicationServices()->workingDatabase() ->getBlockTable(pBlockTable, AcDb::kForRead); AcDbBlockTableRecord *pBlockTableRecord; pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); AcDbObjectId zhiId; pBlockTableRecord->appendAcDbEntity(zhiId, pText); pBlockTable->close(); pBlockTableRecord->close(); pText->close(); } void createAlignedDim(AcGePoint3d pt1,AcGePoint3d pt2,AcGePoint3d pt3)//直线尺寸标注 { const ACHAR *a=NULL; AcDbObjectId style = AcDbObjectId::kNull; AcDbAlignedDimension *pDim = new AcDbAlignedDimension(pt1, pt2, pt3,a,style); pDim->setColorIndex(1); AcDbBlockTable *pBlockTable; acdbHostApplicationServices()->workingDatabase() ->getBlockTable(pBlockTable, AcDb::kForRead); AcDbBlockTableRecord *pBlockTableRecord; pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); AcDbObjectId biaoID; pBlockTableRecord->appendAcDbEntity(biaoID, pDim); pBlockTable->close(); pBlockTableRecord->close(); pDim->close(); } void createDiaDim(AcGePoint3d pt,double l,double d)//直径尺寸标注 { const ACHAR *zheshicicun=NULL; AcDbObjectId dimStyle = AcDbObjectId::kNull; ads_point pt2, pt3; pt2[X] = pt.x; pt2[Y] = pt.y; pt2[Z] = pt.z; double pi=3.1415926,gel; AcGeVector2d pt4(pt.x,pt.y); gel=pt4.angle(); acutPolar(pt2, pi+gel, d, pt3);o AcGePoint3d pt1=asPnt3d(pt3); AcDbDiametricDimension *pDim = new AcDbDiametricDimension(pt,pt1, l, zheshicicun, dimStyle); pDim->setColorIndex(1); AcDbBlockTable *pBlockTable; acdbHostApplicationServices()->workingDatabase() ->getBlockTable(pBlockTable, AcDb::kForRead); AcDbBlockTableRecord *pBlockTableRecord; pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); AcDbObjectId biaoID; pBlockTableRecord->appendAcDbEntity(biaoID, pDim); pBlockTable->close(); pBlockTableRecord->close(); pDim->close(); } //定义粗糙度标注符号--------------------------- void createRoughness1 (AcGePoint3d pt,const ACHAR *zhi) { double pi=3.1415926; AcGePoint3d pt1=biandian(pt,-1.5,3*cos(30*pi/180)); AcGePoint3d pt2=biandian(pt,1.5,3*cos(30*pi/180)); AcGePoint3d pt3=biandian(pt2,5*cos(60*pi/180),5*sin(60*pi/180)); AcGePoint3d pt4=biandian(pt1,-3.5,1); huazixian(pt,pt1,NULL,1,AcDb::kLnWt000); huazixian(pt1,pt2,NULL,1,AcDb::kLnWt000); huazixian(pt,pt2,NULL,1,AcDb::kLnWt000); huazixian(pt2,pt3,NULL,1,AcDb::kLnWt000); wenzhi(pt4,zhi,NULL,2.5,0); } void createRoughness2(AcGePoint3d pt,const ACHAR *zhi) { double pi=3.1415926; AcGePoint3d pt1=biandian(pt,3*cos(30*pi/180),1.5); AcGePoint3d pt2=biandian(pt,3*cos(30*pi/180),-1.5); AcGePoint3d pt3=biandian(pt2,5*cos(30*pi/180),-5*sin(30*pi/180)); AcGePoint3d pt4=biandian(pt1,1,1.8); huazixian(pt,pt1,NULL,1,AcDb::kLnWt000); huazixian(pt1,pt2,NULL,1,AcDb::kLnWt000); huazixian(pt,pt2,NULL,1,AcDb::kLnWt000); huazixian(pt2,pt3,NULL,1,AcDb::kLnWt000); double u=-pi*90/180; wenzhi(pt4,zhi,NULL,2.5,u); } ///////////////////////////// void CreateHatch(AcDbObjectIdArray objIds,const ACHAR* patName, bool bAssociative)//剖面线 { Acad::ErrorStatus es; AcDbHatch *pHatch = new AcDbHatch(); // 设置填充平面 AcGeVector3d normal(0, 0, 1); pHatch->setNormal(normal); pHatch->setElevation(0); pHatch->setAssociative(bAssociative); // 设置填充图案 pHatch->setPattern(AcDbHatch::kPreDefined, patName); // 添加填充边界 es = pHatch->appendLoop(AcDbHatch::kExternal, objIds); // 显示填充对象 es = pHatch->evaluateHatch(); // 添加到模型空间 AcDbBlockTable *pBlockTable; acdbHostApplicationServices()->workingDatabase() ->getBlockTable(pBlockTable, AcDb::kForRead); AcDbBlockTableRecord *pBlockTableRecord; pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite); AcDbObjectId tianID; pBlockTableRecord->appendAcDbEntity(tianID, pHatch); pBlockTable->close(); pBlockTableRecord->close(); pHatch->close(); } //加载线型------------------------------------------------------------- void loadLineType() { AcDbLinetypeTable *pLinetypeTbl; AcDbObjectId lineTypeId; acdbHostApplicationServices()->workingDatabase()->getLinetypeTable(pLinetypeTbl,AcDb::k ForRead); const ACHAR *lyName = _T("DASHED"); if ((pLinetypeTbl->getAt(lyName,lineTypeId))!=Acad::eOk); { pLinetypeTbl->close(); acdbHostApplicationServices()->workingDatabase()->loadLineTypeFile(lyName,_T("acadiso.li n")); } lyName = _T("CENTER2"); if ((pLinetypeTbl->getAt(lyName,lineTypeId))!=Acad::eOk); { pLinetypeTbl->close(); acdbHostApplicationServices()->workingDatabase()->loadLineTypeFile(lyName,_T("acadiso.li n")); } lyName = _T("DOT"); if ((pLinetypeTbl->getAt(lyName,lineTypeId))!=Acad::eOk); { pLinetypeTbl->close(); acdbHostApplicationServices()->workingDatabase()->loadLineTypeFile(lyName,_T("acadiso.li n")); } pLinetypeTbl->close(); } void createTolerance(AcGePoint3d tian)//标注公差 { AcGePoint3d tian1=biandian(tian,15,-10); AcGePoint3d tian2=biandian(tian1,8,0); AcGePoint3d dian=tian2; huazixian(tian, tian1,NULL,1,AcDb::kLnWt000); huazixian(tian1, tian2,NULL,1,AcDb::kLnWt000); AcGePoint3d dian1=biandian(dian,3,0); AcGePoint3d dian2=biandian(dian,12,0); AcGePoint3d dian3=biandian(dian,15,0); AcGePoint3d dian4=biandian(dian,0,4); AcGePoint3d dian5=biandian(dian,3,4); AcGePoint3d dian6=biandian(dian,12,4); AcGePoint3d dian7=biandian(dian,15,4); huazixian(dian, dian3,NULL,1,AcDb::kLnWt000); huazixian(dian4, dian7,NULL,1,AcDb::kLnWt000); huazixian(dian, dian4,NULL,1,AcDb::kLnWt000); huazixian(dian5, dian1,NULL,1,AcDb::kLnWt000); huazixian(dian6, dian2,NULL,1,AcDb::kLnWt000); huazixian(dian7, dian3,NULL,1,AcDb::kLnWt000); AcGePoint3d dian8=biandian(dian,0.2,0.5); AcGePoint3d dian9=biandian(dian1,0.2,0.5); AcGePoint3d dian10=biandian(dian2,0.2,0.5); double uuu=-25*3.141592/180; wenzhi(dian8,_T("?"),NULL,3,uuu); wenzhi(dian9,_T("0.03"),NULL,2.5,0); wenzhi(dian10,_T("A"),NULL,2.5,0); } //基准-------------------------- void createDatum(AcGePoint3d dian1)//标注基准 { AcGePoint3d dian2=biandian(dian1,15,0); AcGePoint3d dian3=biandian(dian2,-6,-2); AcGePoint3d dian4=biandian(dian2,0,-2); AcGePoint3d dian5=biandian(dian4,-3,0); AcGePoint3d dian6=biandian(dian5,0,-5); AcGePoint3d dian7=biandian(dian6,0,-3); AcGePoint3d dian8=biandian(dian7,-1,-1); huazixian(dian1, dian2,NULL,1,AcDb::kLnWt000); huazixian(dian3, dian4,NULL,0,AcDb::kLnWt040); huazixian(dian5, dian6,NULL,0,AcDb::kLnWt000); createArc(dian7,3,0,6.28318,NULL,0,AcDb::kLnWt000); wenzhi(dian8,_T("A"),NULL,2.5,0); }
本文档为【arx函数集合】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321575
暂无简介~
格式:doc
大小:35KB
软件:Word
页数:12
分类:工学
上传时间:2017-10-12
浏览量:18