- UID
- 11237
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-10-12
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- [FONT=courier new]
- OOL InsertDwgBlock(ads_point insertpt, double scale, double angle,CString m_formname)
- {
- char filename[100], temp[100];
- strcpy(temp, m_formname);
- strlwr(temp);
- if (ads_findfile(temp, filename) != RTNORM) return FALSE;
- ads_point basept;
- if (!ReadDwgBlock(basept, filename)) return FALSE;
- // 读取图形块
- AcDbDatabase *dwgBlock = new AcDbDatabase(Adesk::kFalse);
- Acad::ErrorStatus es;
- es = dwgBlock->readDwgFile(filename);
- if (es != Acad::eOk)
- {
- AfxMessageBox("sdd");
- delete dwgBlock;
- return FALSE;
- }
- AcGePoint3d inbase(basept[0], basept[1], 0.0);
- dwgBlock->setInsbase(inbase);
- double oldscale = dwgBlock->dimscale();
- // 插入图形块
- AcGeMatrix3d matrix, m1, m2, m3;
- matrix = m1 = m2 = m3 = AcGeMatrix3d::kIdentity;
- AcGePoint3d base(insertpt[0], insertpt[1], 0.0);
- AcGePoint3d base2(insertpt[0], insertpt[1]+5, 0.0);
- AcGeLine3d line(base,base2);
- m1.setToScaling(scale/oldscale, base);
- AcGeVector3d axis(0, 0, 1);
- if(angle == 180.00)
- {
- m2.setToMirroring(line);
-
- AcGeVector3d vector(insertpt[0]-basept[0], insertpt[1]-basept[1], 0.0);
- m3.setToTranslation(vector);
- matrix = m1*m2*m3;
- }
- else
- {
- AcGeVector3d vector(insertpt[0]-basept[0], insertpt[1]-basept[1], 0.0);
- m3.setToTranslation(vector);
- matrix = m1*m3;
- }
- es = pDb->insert(matrix, dwgBlock);
- if (es != Acad::eOk)
- {
- delete dwgBlock;
- return FALSE;
- }
- delete dwgBlock;
- return TRUE;
- }
- [/FONT]
复制代码
我用上述函数时,当转角为180时,我的本意是将图镜像,程序执行时,连文字也镜像了!!
如何解决???? |
|