博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【原创】Amodeler实体与ACAD实体之间进行转换
阅读量:6483 次
发布时间:2019-06-23

本文共 1138 字,大约阅读时间需要 3 分钟。

本文档主要是针对于自定义实体(基于Amodeler::Body)与Objectarx中的AcDb3dSolid实体之间的转换。

1.       从Amodeler::Body到AcDb3dSolid的转换

a)         传统的方式:由于Amodeler::Body中,你可以迭代得到它的基本几何元素(面、线、点、表面等),你可以根据这些数据,对应生成AcDb3dSolid应该要包括的基本几何元素,从而实体转换。

b)         中间文本方式:我们都知道Amodeler和ACAD都是基本ACIS几何内核的,而ACIS几何内核都可以用SAT文件来描述,所以,我们可以把Amodeler或ACAD中的几何模型导出成SAT文件,然后再导入,实现两种实体之间的转换;经学习,发现ACAD公司对Amodeler的导出接口重新进行了包装,竟然还可以导出由ACAD公司描述的颜色属性,但遗憾的是ACAD公司对Amodeler的导入接口没有实现。

Example:

                   AModeler::Body body = AModeler::Body::box(AModeler::Point3d(0,0,0),AModeler::Vector3d(100,100,100));

                   ACHAR bodyFileName[] = _T("cd.txt");

                   body.saveToSat(bodyFileName,true);

                  AcDbVoidPtrArray createArray;

                  es = AcDbBody::acisIn(bodyFileName,createArray);

                void* pVoid = createArray.at(0);

                AcDbEntity* pEntity = static_cast<AcDbEntity*>(pVoid);

                if( pEntity->isKindOf(AcDb3dSolid::desc()))

                {

                          AcDb3dSolid* pBox = static_cast<AcDb3dSolid*>(pEntity);

                          if( append(pBox))

                          {

                                   pBox->close();

                          }

                          else

                          {

                                   delete pBox;

                          }

}

2.       从AcDb3dSolid到Amodeler::Body的转换

a)         传统的方式:参考utils\brep\samples\brepsamp中的例子,把AcDb3dSolid中的基本几何元素读出来,然后根据数据生成Amodeler库中对应的基本几何元素,压进创建的Body中。

 

 

如有什么不对,请大家指正。

转载于:https://www.cnblogs.com/lihao102/archive/2013/04/14/3020239.html

你可能感兴趣的文章
Shell编程-环境变量配置文件
查看>>
Struts2和Spring MVC的区别
查看>>
git代码冲突
查看>>
git bash 风格调整
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
190行代码实现mvvm模式
查看>>
兼容几乎所有浏览器的透明背景效果
查看>>
Linux VNC server的安装及简单配置使用
查看>>
阿里宣布开源Weex ,亿级应用匠心打造跨平台移动开发工具
查看>>
Android项目——实现时间线程源码
查看>>
招商银行信用卡重要通知:消费提醒服务调整,300元以下消费不再逐笔发送短信...
查看>>
数据库运维体系_SZMSD
查看>>
js的AJAX请求有关知识总结
查看>>
三分 POJ 2420 A Star not a Tree?
查看>>
修改OBS为仅直播音频
查看>>
OCA读书笔记(3) - 使用DBCA创建Oracle数据库
查看>>
Python基础进阶之路(一)之运算符和输入输出
查看>>
ClickStat业务
查看>>
spring3.0.7中各个jar包的作用总结
查看>>