Ejemplo n.º 1
0
void Additional_Class::SetLayerIsOff( CString strLayerName)
{
	AcDbLayerTable *pLayTbl = NULL; 
	acdbCurDwg()->getLayerTable(pLayTbl, AcDb::kForWrite); 
	if(!pLayTbl->has(strLayerName)) 
	{ 
		pLayTbl->close(); //该图层不存在 
		return; 
	} 

	AcDbLayerTableRecord *pLayTblRec = NULL; 
	AcDbObjectId objId; 
	pLayTbl->getAt(strLayerName, pLayTblRec, AcDb::kForWrite); 
	pLayTbl->close(); 

	//pLayTblRec->isInUse();
	
	if (pLayTblRec==NULL) 
	{ 
		return; 
	} 
	bool tempBool = pLayTblRec->isOff();
	if (tempBool == false)
	{
		pLayTblRec->setIsOff(true); 
	}
	else
	{
		pLayTblRec->setIsOff(false);
	}
	pLayTblRec->close(); 
	return; 
}
Ejemplo n.º 2
0
CLayerState::CLayerState(const AcDbObjectId& idLayer)
{
	m_idLayer = idLayer;
	AcDbLayerTableRecord* pLayer = NULL;
	if (acdbOpenObject(pLayer, m_idLayer, AcDb::kForRead) == Acad::eOk) {
		m_bOff = pLayer->isOff();
		m_bFrozen = pLayer->isFrozen();
		m_bLocked = pLayer->isLocked();
		pLayer->close();
	} else  {
		m_bOff = false;
		m_bFrozen = false;
		m_bLocked = false;
	}
}