本文整理汇总了C++中AcDbLayerTableRecord::setName方法的典型用法代码示例。如果您正苦于以下问题:C++ AcDbLayerTableRecord::setName方法的具体用法?C++ AcDbLayerTableRecord::setName怎么用?C++ AcDbLayerTableRecord::setName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AcDbLayerTableRecord
的用法示例。
在下文中一共展示了AcDbLayerTableRecord::setName方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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"));
}
}
示例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: ASSERT
Acad::ErrorStatus
ArxDbgUtils::addNewLayer(LPCTSTR layerName, AcDbDatabase* db)
{
ASSERT(db != NULL);
// if layer already exists, then just return
AcDbLayerTable* layTbl;
Acad::ErrorStatus es = db->getSymbolTable(layTbl, AcDb::kForRead);
if (es != Acad::eOk)
return es;
if (layTbl->has(layerName)) {
layTbl->close();
return Acad::eOk;
}
// upgrade to write
es = layTbl->upgradeOpen();
if (es != Acad::eOk) {
ASSERT(0);
layTbl->close();
return es;
}
// make sure the name gets set ok
AcDbLayerTableRecord* newRec = new AcDbLayerTableRecord;
es = newRec->setName(layerName);
if (es != Acad::eOk) {
delete newRec;
layTbl->close();
return Acad::eInvalidInput;
}
// look up value for default linetype CONTINUOUS,
// AcDbLayerTableRecord doesn't set this automatically (at least it didn't in Sedona)
newRec->setLinetypeObjectId(db->continuousLinetype());
es = layTbl->add(newRec);
if (es != Acad::eOk)
delete newRec;
else
newRec->close();
layTbl->close();
return es;
}
示例4: Create
Acad::ErrorStatus TWArxLayer::Create( OUT AcDbObjectId& IdLayer ) const
{
if( m_strName.IsEmpty() ) return Acad::eInvalidInput;
AcDbDatabase* pDb = GetWorkingDB();
Acad::ErrorStatus es = Acad::eKeyNotFound;
AcDbLayerTable* pLayerTb = NULL;
es = pDb->getLayerTable( pLayerTb,AcDb::kForRead );
if( pLayerTb == NULL ) return es;
es = pLayerTb->getAt( m_strName, IdLayer );
if( es == Acad::eOk )
{
pLayerTb->close();
return es;
}
es = pLayerTb->upgradeOpen();
AcDbLayerTableRecord* pLtr = new AcDbLayerTableRecord;
pLtr->setName( m_strName );
pLtr->setIsFrozen( m_bIsFrozen );
pLtr->setIsLocked( m_bIsLocked );
pLtr->setIsOff( m_bIsOff );
es = pLayerTb->add( IdLayer, pLtr );
pLayerTb->close();
if( es == Acad::eOk )
{
pLtr->close();
return es;
}
TWFreePtr( pLtr );
return es;
}
示例5: SetCurLayler
void Additional_Class::SetCurLayler( CString LaylerName )
{
AcDbDatabase *pCurDb = NULL;
pCurDb = acdbHostApplicationServices()->workingDatabase();
/*pCurDb->setClayer()*/
int n = 0;//判断是否找到图层
//////////////////////////////////////////////////////////////////////////
AcDbLayerTable *pLayerTbl;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pLayerTbl, AcDb::kForWrite);
// 建立图层遍历器
AcDbLayerTableIterator *pLayerIterator;
pLayerTbl->newIterator(pLayerIterator);
//
AcDbLayerTableRecord *pLayerTableRcd;
ACHAR *pLtName;
ACHAR *pLtNameTT;
CString pLtNameStr;
for (; !pLayerIterator->done(); pLayerIterator->step())
{
pLayerIterator->getRecord(pLayerTableRcd, AcDb::kForWrite);
pLayerTableRcd->getName(pLtName);
pLayerTableRcd->close();
pLtNameStr = pLtName;
if (pLtNameStr == LaylerName)
{
pCurDb->setClayer(pLayerTableRcd->id());
free(pLtName);
n = 1;//如果图层找到,则将n赋值为1
delete pLayerIterator;
pLayerTbl->close();
return;
}
else
{
free(pLtName);
}
}
if (n == 0)
{
// 新建图层
AcDbLayerTableRecord *pLayerTableRecordTT = new AcDbLayerTableRecord;
pLayerTableRecordTT->setName(LaylerName);
AcDbObjectId pLayerId;
pLayerTbl->add(pLayerId, pLayerTableRecordTT);
pLayerTableRecordTT->getName(pLtNameTT);
pLayerTableRecordTT->close();
//struct resbuf pResult;
//::acedGetVar(_T("CLAYER"),&pResult);//取得当前图层
//char *p = (LPSTR)(LPCTSTR)LaylerName;
//pResult.resval.rstring = pLtNameTT;
//int s=acedSetVar(_T("CLAYER"), &pResult);//将输入的图层设为当前层
//相当于命令 CLAYER LAYERNAME
//acutPrintf(_T("\nLinetype name is: %s"), pResult.resval.rstring);
//acutPrintf(_T("\nLinetype name is: %d"), s);
n = 1;//如果图层找到,则将n赋值为1
delete pLayerIterator;
pLayerTbl->close();
struct resbuf pResults;
::acedGetVar(_T("CLAYER"),&pResults);//取得当前图层
//pLtNameTT = "0";
pResults.resval.rstring = pLtNameTT;
::acedSetVar(_T("CLAYER"), &pResults);//将输入的图层设为当前层
free(pLtNameTT);
}
// acutPrintf(_T("\nLinetype name"));
// acutPrintf(_T("\nLinetype name is: %s"), pResult.resval.rstring);
}
示例6: OnCreateLine
void CMyDlg::OnCreateLine()
{
// TODO: Add your control notification handler code here
acDocManager->lockDocument(curDoc());
int i;
int m, n;
char *buf = (char*)malloc(20);
AcDbObjectId LineId;
AcDbLine *pLine = NULL;
//块表
AcDbBlockTable *pTb = NULL;
//块表记录
AcDbBlockTableRecord *pTbr = NULL;
//层表
AcDbLayerTable *pLyr = NULL;
//层表记录
AcDbLayerTableRecord* pLyrr = NULL;
//图形数据库
AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase();
Acad::ErrorStatus es;
CListCtrl *pListCtr = (CListCtrl *)GetDlgItem( IDC_LIST1 );
//设置随机数种子
srand(time(NULL));
//更新数据
UpdateData(TRUE);
m_VecSize += m_Edit5;
m_xVec.resize(m_VecSize);
m_yVec.resize(m_VecSize);
//acutPrintf("%d\n", m_Edit1);
es = pDb->getLayerTable(pLyr, AcDb::kForWrite); //以写的方式打开层表
es = pDb->getBlockTable(pTb, AcDb::kForRead); //以读的方式打开块表
es = pTb->getAt(ACDB_MODEL_SPACE, pTbr, AcDb::kForWrite);//以写的方式打开块表记录
//创建图层GalLineTest
if (!pLyr->has("GalLineTest"))
{
pLyrr = new AcDbLayerTableRecord; //创建层记录
pLyrr->setName("GalLineTest"); //设置名字
//pLyrr->setColor(color); //设置颜色
//pLyrr->setLineWeight(lnWt); //设置线宽
if (Acad::eOk != pLyr->add(pLyrr)) //添加该层记录到层表
{
//添加失败
delete pLyrr; //释放内存
pLyr->close(); //关闭层表
}
//关闭层表记录
pLyrr->close();
}
//关闭层表
pLyr->close();
//生成点坐标
for (i = 0; i < m_Edit5; ++i)
{
if ((m_Edit2 != 0) && (m_Edit4 != 0))
{
m_xVec[i] = rand() % m_Edit2 + m_Edit1;
m_yVec[i] = rand() % m_Edit4 + m_Edit3;
}
else
{
m_xVec[i] = 0;
m_yVec[i] = 0;
}
}
//遍历点坐标
for (m = 0; m < m_Edit5; ++m)
{
for (n = (m+1); n < m_Edit5; ++n)
{
if ((m_xVec[m] != m_xVec[n]) && (m_yVec[m] != m_yVec[n]))
{
AcGePoint3d ptStart(m_xVec[m], m_yVec[m], 0);
AcGePoint3d ptEnd(m_xVec[n], m_yVec[n], 0);
pLine = new AcDbLine(ptStart, ptEnd);
//pLine->setColor();
pLine->setLayer("GalLineTest");
//创建线段
es = pTbr->appendAcDbEntity(LineId, pLine);
if (Acad::eOk == es)
{
++m_lLineCnt;
}
//acutPrintf("%d\n", LineId);
sprintf(buf, "%d", LineId);
m_ListCtr.InsertItem(m_Row, buf);
//.........这里部分代码省略.........
示例7: 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);
}
}
示例8: AddEntityToLayer
// This command demonstrates the use of kCleanup / kReuse flags
void AddEntityToLayer (AsdkHlrCollector &collector, ACHAR *layerName) {
//----- Check layer
if ( layerName != NULL && *layerName != ACRX_T('\0') ) {
AcDbDatabase *pDb =acdbHostApplicationServices ()->workingDatabase () ;
AcDbLayerTable *pLayerTable ;
pDb->getLayerTable (pLayerTable, AcDb::kForRead) ;
if ( !pLayerTable->has (layerName) ) {
AcDbLayerTableRecord *pLayerRecord =new AcDbLayerTableRecord ;
pLayerRecord->setName (layerName) ;
pLayerTable->upgradeOpen () ;
pLayerTable->add (pLayerRecord) ;
pLayerTable->downgradeOpen () ;
pLayerRecord->close () ;
pLayerTable->close () ;
applyCurDwgLayerTableChanges () ;
} else {
pLayerTable->close () ;
}
} else {
layerName =NULL ;
}
//----- Assign color to the resulting entities
//----- red for visible edges
//----- blue for non-visible edges
//----- yellow for internal edges
int n =collector.mOutputData.logicalLength () ;
for ( int i =0 ; i < n ; i++ ) {
AsdkHlrData *p =collector.mOutputData [i] ;
AcDbEntity *pEnt =p->getResultEntity () ;
AsdkHlrData::Visibility vis =p->getVisibility () ;
if ( vis == AsdkHlrData::kVisible ) {
pEnt->setColorIndex (1) ; //----- Read
} else if ( vis == AsdkHlrData::kInternallyHidden ) {
if ( p->getHlrVisibility () == AsdkHlrData::kVisible )
pEnt->setColorIndex (2) ; //----- Yellow
else
pEnt->setColorIndex (3) ; //----- Green
} else {
pEnt->setColorIndex (5) ; //----- Blue
}
if ( layerName != NULL )
pEnt->setLayer (layerName) ;
AcDbObjectId id ;
if ( postToDatabase (NULL, pEnt, id) != Acad::eOk ) {
acutPrintf (_T("Failed to add entity to current space.\n")) ;
break ;
}
//----- Entity originator path for block reference entities
AcDbObjectIdArray ids =p->getObjectIds () ;
if ( ids.logicalLength () > 0 ) {
acutPrintf (ACRX_T("\n%ld, "), pEnt->objectId ().asOldId ()) ;
for ( int j =0 ; j < ids.logicalLength () ; j++ ) {
acutPrintf (ACRX_T("%ld, "), ids.at (j).asOldId ()) ;
}
}
pEnt->close () ;
}
}