本文整理汇总了C++中AcDbLayerTableRecord::setColor方法的典型用法代码示例。如果您正苦于以下问题:C++ AcDbLayerTableRecord::setColor方法的具体用法?C++ AcDbLayerTableRecord::setColor怎么用?C++ AcDbLayerTableRecord::setColor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AcDbLayerTableRecord
的用法示例。
在下文中一共展示了AcDbLayerTableRecord::setColor方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ModifyLayerProp
void ModifyLayerProp()
{
CString strLayerName(_T("NewLayer"));
AcDbLayerTable* pLayerTbl = NULL;
acdbHostApplicationServices()->workingDatabase()->getLayerTable(pLayerTbl, AcDb::kForRead);
if (!pLayerTbl->has(strLayerName))
{
pLayerTbl->close();
acutPrintf(_T("\nNo existed layer:\"%s\"."), strLayerName);
return;
}
Acad::ErrorStatus es;
AcDbLayerTableRecord* pLayerTblRcd = NULL;
pLayerTbl->getAt(strLayerName, pLayerTblRcd, AcDb::kForWrite);
AcCmColor oldColor = pLayerTblRcd->color();
int nCurColor = oldColor.colorIndex();
int nNewColor = oldColor.colorIndex();
if (acedSetColorDialog(nNewColor, Adesk::kFalse, nCurColor))
{
AcCmColor color;
color.setColorIndex(nNewColor);
pLayerTblRcd->setColor(color);
acutPrintf(_T("\nThe color of layer:\"%s\" has modified!"), strLayerName);
}
pLayerTblRcd->close();
pLayerTbl->close();
}
示例2: CheakLayerExit
static void CheakLayerExit(CString layerName,int colorIndx, AcDb::LineWeight lineWeigt)
{
//int colorIndx = 7; //默认的颜色为白色
//AcDb::LineWeight lineWeigt = AcDb::kLnWt000;
//lineWeigt = AcDb::kLnWt030;
AcDbLayerTable* pLayerTbl = NULL;
// 获取当前的数据库
AcDbDatabase*pDB=acdbHostApplicationServices()->workingDatabase();
// 因为要创建新的图层,所以先要以写的方式获取图层表
pDB->getSymbolTable(pLayerTbl,AcDb::kForWrite);
// 检查图层是否存在
if (!pLayerTbl->has(layerName)) {
// 初始化一个新的对象,并且设置它的属性
AcDbLayerTableRecord *pLayerTblRcd = new AcDbLayerTableRecord;
pLayerTblRcd->setName(layerName);
pLayerTblRcd->setIsFrozen(0); // 图层设置为THAWED(解冻的)
pLayerTblRcd->setIsOff(0); // 图层设置为ON(开着的)
pLayerTblRcd->setIsLocked(0); // 图层 un-locked(解锁的)
AcCmColor color;
color.setColorIndex(colorIndx); // 图层的颜色设置
pLayerTblRcd->setColor(color);
pLayerTblRcd->setLineWeight(lineWeigt);
// 增加一个新的图层到容器(表)中
pLayerTbl->add(pLayerTblRcd);
// 把新建的图层关闭(不要删除它)
pLayerTblRcd->close();
// 关闭容器(表)
pLayerTbl->close();
}
else {
// 如果这个图层已经存在,仅仅需要关闭表继续就是
AcDbLayerTableRecord *pLayerTblRcd;
pLayerTbl->getAt(layerName, pLayerTblRcd, AcDb::kForWrite);
AcCmColor color;
color.setColorIndex(colorIndx); // 图层的颜色设置
pLayerTblRcd->setColor(color);
pLayerTblRcd->setLineWeight(lineWeigt);
pLayerTblRcd->close();
pLayerTbl->close();
//acutPrintf(_T("\nMYLAYER already exists"));
}
}
示例3: acdbHostApplicationServices
// This function creates a new AcDbLayerTableRecord, fills
// it in, and adds it to the layer table
//
// THE FOLLOWING CODE APPEARS IN THE SDK DOCUMENT.
//
void
addLayer()
{
AcDbLayerTable *pLayerTbl;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pLayerTbl, AcDb::kForWrite);
if (!pLayerTbl->has(_T("ASDK_TESTLAYER"))) {
AcDbLayerTableRecord *pLayerTblRcd
= new AcDbLayerTableRecord;
pLayerTblRcd->setName(_T("ASDK_TESTLAYER"));
pLayerTblRcd->setIsFrozen(0);// layer to THAWED
pLayerTblRcd->setIsOff(0); // layer to ON
pLayerTblRcd->setVPDFLT(0); // viewport default
pLayerTblRcd->setIsLocked(0);// un-locked
AcCmColor color;
color.setColorIndex(1); // set color to red
pLayerTblRcd->setColor(color);
// For linetype, we need to provide the object ID of
// the linetype record for the linetype we want to
// use. First, we need to get the object ID.
//
AcDbLinetypeTable *pLinetypeTbl;
AcDbObjectId ltId;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pLinetypeTbl, AcDb::kForRead);
if ((pLinetypeTbl->getAt(_T("DASHED"), ltId))
!= Acad::eOk)
{
acutPrintf(_T("\nUnable to find DASHED")
_T(" linetype. Using CONTINUOUS"));
// CONTINUOUS is in every drawing, so use it.
//
pLinetypeTbl->getAt(_T("CONTINUOUS"), ltId);
}
pLinetypeTbl->close();
pLayerTblRcd->setLinetypeObjectId(ltId);
pLayerTbl->add(pLayerTblRcd);
pLayerTblRcd->close();
pLayerTbl->close();
} else {
pLayerTbl->close();
acutPrintf(_T("\nlayer already exists"));
}
}
示例4: CreateLayer
void CreateLayer()
{
Acad::ErrorStatus es;
ACHAR szNewName[255];
_tcscpy(szNewName, _T("NewLayer"));
AcDbDatabase* pCurDb = acdbHostApplicationServices()->workingDatabase();
if (pCurDb == NULL)
{
acutPrintf(_T("\nError:Current database is NULL!"));
return;
}
AcDbLayerTableRecord* pNewLayer = new AcDbLayerTableRecord;
es = pNewLayer->setName(szNewName);
if (es != Acad::eOk)
{
acutPrintf(_T("\nFailed setName of the layer!"));
delete pNewLayer;
return;
}
AcCmColor cmColor;
cmColor.setColorIndex(1);
pNewLayer->setColor(cmColor);
pNewLayer->setIsFrozen(false);
pNewLayer->setIsOff(false);
pNewLayer->setVPDFLT(false);
pNewLayer->setIsLocked(false);
bool bStat = false;
AcDbLayerTable* pLayerTbl = NULL;
es = pCurDb->getLayerTable(pLayerTbl, AcDb::kForWrite);
if (es == Acad::eOk)
{
if (pLayerTbl->has(szNewName))
{
acutPrintf(_T("\nThe Layer \"%s\" has existed!"), szNewName);
delete pNewLayer;
}
else
{
es = pLayerTbl->add(pNewLayer);
if (es == Acad::eOk)
{
bStat = true;
pNewLayer->close();
}
else
{
acutPrintf(_T("\nFailed to add a new layer in LayerTable!"));
delete pNewLayer;
}
}
pLayerTbl->close();
}
if (bStat)
{
acutPrintf(_T("\nCreated the new layer: \"%s\" successfully!"), szNewName);
}
else
{
acutPrintf(_T("\nFailed to create the layer: \"%s\""), szNewName);
}
}