在黑暗中举起探索的火炬的网志
在喧闹、混杂的生活中
你应该与你的心灵和平相处
尽管这世上有很多假冒和欺骗
有很多单调乏味的工作
和众多破灭的梦幻
它仍然是一个美好的世界
记住:你应该努力去追求幸福。
是的,记住:你应该努力去追求幸福。
每个早晨灿烂的太阳升起的时候,
每个人都应
-
2004-02-18
[原创]用Arx在ACAD中创建一个新层 - [ObjectArx开发专辑]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
此类用于创建一个新层,如果已经存在则提示用户. //外部调用函数 void Create_New_layer() { CCreate_New_Layer* pCreate_New_Layer=new CCreate_New_Layer(); pCreate_New_Layer->Setup_LayerTableRecord(); if(pCreate_New_Layer->GetCreateFlag()) pCreate_New_Layer->Set_LayerName(); if(pCreate_New_Layer->GetCreateFlag()) pCreate_New_Layer->Setup_LayerTable(); if(pCreate_New_Layer->GetCreateFlag()) pCreate_New_Layer->Setup_LineTypeTable(); if(pCreate_New_Layer->GetCreateFlag()) pCreate_New_Layer->Create_LineTypeObjectId(); if(pCreate_New_Layer->GetCreateFlag()) pCreate_New_Layer->add_TableRecord_To_LayerTable(); if(pCreate_New_Layer->GetCreateFlag()) { delete pCreate_New_Layer; pCreate_New_Layer=0; } } /****************************************************************** ** File name :Create_New_Layer.h ** Copyright (c) 2004-2005 ** Description :create a new layer in ACAD ** Version :1.00 ******************************************************************/ #if !defined CREATE_NEW_LAYER_H #define CREATE_NEW_LAYER_H #include "global.h" class CCreate_New_Layer { public: CCreate_New_Layer(); virtual ~CCreate_New_Layer(); BOOL GetCreateFlag() const { return m_bCreateFlag; }; Acad::ErrorStatus Setup_LayerTableRecord(); Acad::ErrorStatus Set_LayerName(CString strLayerName="MYLAYER"); Acad::ErrorStatus Setup_LayerTable(); Acad::ErrorStatus Setup_LineTypeTable(); Acad::ErrorStatus Create_LineTypeObjectId(); Acad::ErrorStatus add_TableRecord_To_LayerTable(); private://functions void Set_LayerAttibutes(); void Delete_LayerTableRecord(); private://variables BOOL m_bCreateFlag;//the flagment in the process of creating a new layer AcDbLayerTableRecord* m_pLayerTableRecord;//the pointer of new layer table record AcDbLayerTable* m_pLayerTable;//the pointer of LayerTable in ACAD workspace AcDbLinetypeTable* m_pLinetypeTbl;//the pointer of LineLayerTable in ACAD workspace AcDbObjectId m_ltypeObjId;//new layer table record ’s id }; #endif /****************************************************************** ** File name :Create_New_Layer.cpp ** Copyright (c) 2004-2005 ** Description :create a new layer in ACAD ** Version :1.00 ******************************************************************/ #include "stdafx.h" #include "resource.h" #include "Create_New_Layer.h" CCreate_New_Layer::CCreate_New_Layer() { m_pLayerTableRecord=NULL; m_bCreateFlag=TRUE; m_pLayerTable=NULL; m_pLinetypeTbl=NULL; } CCreate_New_Layer::~CCreate_New_Layer() { Acad::ErrorStatus es; es=m_pLayerTable->close(); if(es!=Acad::eOk) { ads_printf("\nApp fialed to close layer."); } es=m_pLayerTableRecord->close(); if(es!=Acad::eOk) { ads_printf("\nApp fialed to close layer record"); } } Acad::ErrorStatus CCreate_New_Layer::Setup_LayerTableRecord() { m_pLayerTableRecord=new AcDbLayerTableRecord; if(NULL==m_pLayerTableRecord) { m_bCreateFlag=FALSE; ads_printf("\nOut of memory."); return Acad::eOutOfMemory; } return Acad::eOk; } Acad::ErrorStatus CCreate_New_Layer::Set_LayerName(CString strLayerName) { Acad::ErrorStatus es=m_pLayerTableRecord->setName(strLayerName); if(es!=Acad::eOk) { Delete_LayerTableRecord(); m_bCreateFlag=FALSE; ads_printf("\nApp fialed to set LayerName."); return es; } else { Set_LayerAttibutes(); return Acad::eOk; } } void CCreate_New_Layer::Set_LayerAttibutes() { m_pLayerTableRecord->setIsFrozen(0); m_pLayerTableRecord->setIsOff(0); m_pLayerTableRecord->setVPDFLT(0); m_pLayerTableRecord->setIsLocked(0); AcCmColor color; color.setColorIndex(3); m_pLayerTableRecord->setColor(color); } Acad::ErrorStatus CCreate_New_Layer::Setup_LayerTable() { Acad::ErrorStatus es; es=acdbHostApplicationServices()->workingDatabase()->getSymbolTable(m_pLayerTable,AcDb::kForWrite); if(es!=Acad::eOk) { Delete_LayerTableRecord(); m_pLayerTable=NULL; m_bCreateFlag=FALSE;
http://junglesong.yourblog.org/logs/106887.html
随机文章:
[轉貼] 人生致命的八个经典问题---你想过了吗 2004-06-22[原创] Block_Manager V1.00 2004-04-29[转载] 漫谈程序员与编程(下) 作者:侯捷 2004-03-25[原创]用ARX进行对象筛选 2004-02-19[转载]男人25岁前的忠告 2004-02-11
收藏到:Del.icio.us





