2012년 3월 7일 수요일
Reference Objects in the Object Hierarchy 객체 계층 구조의 참조 객체
string strFName, strBlkName;
Autodesk.AutoCAD.DatabaseServices.ObjectId objId;
strFName = "c:/clients/Proj 123/grid.dwg";
strBlkName = System.IO.Path.GetFileNameWithoutExtension(strFName);
objId = Application.DocumentManager.MdiActiveDocument.Database.AttachXref(strFName, strBlkName);
//현제도면의 데이터베이스에 그림파일을 첨부
//데이터베이스 객체에서 AttachXref()메소드가 호출됀다.
Autodesk.AutoCAD.DatabaseServices.Database acCurDb;
acCurDb = Application.DocumentManager.MdiActiveDocument.Database;
//Autodesk.AutoCAD.DatabaseServices.Database의 변수 (acCurDb)를 정의하고
//현재 문서의 데이터베이스를 넘겨줌.
string strFName, strBlkName;
Autodesk.AutoCAD.DatabaseServices.ObjectId objId;
strFName = "c:/clients/Proj 123/grid.dwg";
strBlkName = System.IO.Path.GetFileNameWithoutExtension(strFName);
objId = acCurDb.AttachXref(strFName, strBlkName);
//acCurDb를 이용해서 그림첨부
//현제활성됀 문서(도면)에 참조문서(도면)을 첨부한다.
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
[CommandMethod("ListEntities")]
public static void ListEntities()
{
// Get the current document and database, and start a transaction
Document acDoc = Application.DocumentManager.MdiActiveDocument;
//문서객체타입의 변수를 만들고 현제활성 문서를 저장.
Database acCurDb = acDoc.Database;
//데이터베이스객체타입의 변수에 현제문서의 데이터베이스를 저장.
using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
{
//트렌잭션 시작 데이터베이스에 접근해서 변경이나 값을 읽어 올수있다.
// Open the Block table record for read
BlockTable acBlkTbl;
acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,
OpenMode.ForRead) as BlockTable;
// Open the Block table record Model space for read
BlockTableRecord acBlkTblRec;
acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
OpenMode.ForRead) as BlockTableRecord;
int nCnt = 0;
acDoc.Editor.WriteMessage("\nModel space objects: ");
// Step through each object in Model space and
// display the type of object found
foreach (ObjectId acObjId in acBlkTblRec)
{
acDoc.Editor.WriteMessage("\n" + acObjId.ObjectClass.DxfName);
nCnt = nCnt + 1;
}
// If no objects are found then display a message
if (nCnt == 0)
{
acDoc.Editor.WriteMessage("\n No objects found");
}
// Dispose of the transaction
}
}
출처
http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/index.html
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기