ObjectARX怎么生成exe文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ObjectARX怎么生成exe文件相关的知识,希望对你有一定的参考价值。
AutoCAD 运用ObjectARX二次开发怎么生成.exe文件,以前生成的都是.arx文件,求高手回答,另外怎么给CAD添加新的菜单项
参考技术A 第一个问题:acad的二次开发方式就是这样的,我们开发出的程序以dll的形式被动态加载到acad.exe的进程空间,再以命令驱动的方式运行。
也许你说的是打包安装文件,那个可以用installershield或setupFactory或VS中的打包msi功能。
第二个问题:
有两种方法:
一是自定义cui文件,以acad支持路径的方法在启动时加载你的cui文件。
二是通过acad提供的tlb库导出的CAcadMenuGroup\CAcadMenu等com类实时创建。
ObjectARX-给cad实体贴图
做cad二次开发的时候,有时会生成三维实体,例如生成3d的钢筋,但是使用3d生成的钢筋比较难看,可以使用下面代码对实体进行贴图,比如找一张铁锈的图片放在钢筋上,就会显示的比较生动
AcDbObjectId CBaseDwg::CreateMaterial(const CString & materialName, COLORREF clr, const CString & pictureFilePath, AcDbDatabase * pDb)
{
if (NULL == pDb)
pDb = acdbCurDwg();
AcDbObjectId idMater = AcDbObjectId::kNull;
AcDbDictionary* pMatDict = NULL;
if (Acad::eOk != pDb->getMaterialDictionary(pMatDict, AcDb::kForWrite))
return idMater;
if (pMatDict->has(materialName))
{
pMatDict->getAt(materialName, idMater);
}
else
{
AcDbMaterial* pmatObj = new AcDbMaterial;
pMatDict->setAt(materialName, pmatObj, idMater);
//材质设置
AcGiMaterialColor clrMat;
clrMat.setMethod(AcGiMaterialColor::kOverride);
clrMat.setFactor(1.0);
clrMat.setColor(AcCmEntityColor(GetRValue(clr), GetGValue(clr), GetBValue(clr)));
//添加图片
AcGiImageFileTexture diffuseMapFile;
diffuseMapFile.setSourceFileName(pictureFilePath);
//diffuse map
AcGiMaterialMap diffuseMap;
diffuseMap.setTexture(&diffuseMapFile);
//控制贴图比例
AcGeMatrix3d transform;
transform.setToIdentity();
transform.setToScaling(0.1);
AcGiMapper mapper;
mapper = diffuseMap.mapper();
mapper.setTransform(transform);
diffuseMap.setMapper(mapper);
pmatObj->setDiffuse(clrMat, diffuseMap);
pmatObj->setMode(AcGiMaterialTraits::kRealistic);
double value = 1.0;
AcGiMaterialMap opacityMap;
pmatObj->opacity(value, opacityMap);
pmatObj->setOpacity(20, opacityMap);//?
pmatObj->close();
}
pMatDict->close();
return idMater;
}
void CBaseDwg::SetMaterialToEntity(const AcDbObjectId &entId, const AcDbObjectId & materialId)
{
AcDbEntityPointer pointer;
if (Acad::eOk != pointer.open(entId, AcDb::kForWrite))
return;
pointer->setMaterial(materialId, Adesk::kFalse);
}
函数里面有很多参数,这个要根据图片等细节去进行设置,可以考虑追加一个配置文件进行处理
以上是关于ObjectARX怎么生成exe文件的主要内容,如果未能解决你的问题,请参考以下文章
Objectarx 2010 安装时inc 和inc-win32在VS08中应该加哪个进入包含文件?